diff --git a/app/controllers/activitypub/follows_controller.rb b/app/controllers/activitypub/follows_controller.rb new file mode 100644 index 00000000000..8b1cddeb4d0 --- /dev/null +++ b/app/controllers/activitypub/follows_controller.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class ActivityPub::FollowsController < Api::BaseController + include SignatureVerification + + def show + render( + json: FollowRequest.includes(:account).references(:account).find_by!( + id: params.require(:id), + accounts: { domain: nil, username: params.require(:account_username) }, + target_account: signed_request_account + ), + serializer: ActivityPub::FollowSerializer, + adapter: ActivityPub::Adapter, + content_type: 'application/activity+json' + ) + end +end diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index d699a69dfd7..f1bb465d949 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -50,6 +50,7 @@ "column_header.unpin": "فك التدبيس", "column_subheading.navigation": "التصفح", "column_subheading.settings": "الإعدادات", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "حسابك ليس {locked}. يمكن لأي شخص متابعتك و عرض المنشورات.", "compose_form.lock_disclaimer.lock": "مقفل", "compose_form.placeholder": "فيمَ تفكّر؟", @@ -213,6 +214,7 @@ "search_popout.tips.user": "مستخدِم", "search_results.total": "{count, number} {count, plural, one {result} و {results}}", "standalone.public_title": "نظرة على ...", + "status.block": "Block @{name}", "status.cannot_reblog": "تعذرت ترقية هذا المنشور", "status.delete": "إحذف", "status.embed": "إدماج", @@ -221,6 +223,7 @@ "status.media_hidden": "الصورة مستترة", "status.mention": "أذكُر @{name}", "status.more": "المزيد", + "status.mute": "Mute @{name}", "status.mute_conversation": "كتم المحادثة", "status.open": "وسع هذه المشاركة", "status.pin": "تدبيس على الملف الشخصي", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 1c04b3bfa3e..c0a24dacb31 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Settings", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", "compose_form.placeholder": "Какво си мислиш?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "This post cannot be boosted", "status.delete": "Изтриване", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Media hidden", "status.mention": "Споменаване", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Expand this status", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 62d85a5e1ec..3d2fe28392d 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -50,6 +50,7 @@ "column_header.unpin": "Deslligar", "column_subheading.navigation": "Navegació", "column_subheading.settings": "Configuració", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "El teu compte no està bloquejat {locked}. Tothom pot seguir-te i veure els teus missatges a seguidors.", "compose_form.lock_disclaimer.lock": "bloquejat", "compose_form.placeholder": "En què estàs pensant?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "usuari", "search_results.total": "{count, number} {count, plural, un {result} altres {results}}", "standalone.public_title": "Una mirada a l'interior ...", + "status.block": "Block @{name}", "status.cannot_reblog": "Aquesta publicació no pot ser retootejada", "status.delete": "Esborrar", "status.embed": "Incrustar", @@ -221,6 +223,7 @@ "status.media_hidden": "Multimèdia amagat", "status.mention": "Esmentar @{name}", "status.more": "Més", + "status.mute": "Mute @{name}", "status.mute_conversation": "Silenciar conversació", "status.open": "Ampliar aquest estat", "status.pin": "Fixat en el perfil", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 6354f18b6d7..9b6c857e4f8 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -50,6 +50,7 @@ "column_header.unpin": "Lösen", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Einstellungen", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.", "compose_form.lock_disclaimer.lock": "gesperrt", "compose_form.placeholder": "Worüber möchtest du schreiben?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {Ergebnis} other {Ergebnisse}}", "standalone.public_title": "Ein kleiner Einblick …", + "status.block": "Block @{name}", "status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden", "status.delete": "Löschen", "status.embed": "Einbetten", @@ -221,6 +223,7 @@ "status.media_hidden": "Medien versteckt", "status.mention": "@{name} erwähnen", "status.more": "Mehr", + "status.mute": "Mute @{name}", "status.mute_conversation": "Thread stummschalten", "status.open": "Diesen Beitrag öffnen", "status.pin": "Im Profil anheften", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index 65e20c17ae1..acf051de5d5 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -727,6 +727,10 @@ { "defaultMessage": "locked", "id": "compose_form.lock_disclaimer.lock" + }, + { + "defaultMessage": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "id": "compose_form.hashtag_warning" } ], "path": "app/javascript/mastodon/features/compose/containers/warning_container.json" @@ -1053,7 +1057,7 @@ "id": "lists.delete" }, { - "defaultMessage": "There is nothing in this list yet.", + "defaultMessage": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", "id": "empty_column.list" } ], @@ -1244,6 +1248,22 @@ "defaultMessage": "Favourite", "id": "status.favourite" }, + { + "defaultMessage": "Mute @{name}", + "id": "status.mute" + }, + { + "defaultMessage": "Mute conversation", + "id": "status.mute_conversation" + }, + { + "defaultMessage": "Unmute conversation", + "id": "status.unmute_conversation" + }, + { + "defaultMessage": "Block @{name}", + "id": "status.block" + }, { "defaultMessage": "Report @{name}", "id": "status.report" @@ -1276,6 +1296,14 @@ { "defaultMessage": "Are you sure you want to delete this status?", "id": "confirmations.delete.message" + }, + { + "defaultMessage": "Block", + "id": "confirmations.block.confirm" + }, + { + "defaultMessage": "Are you sure you want to block {name}?", + "id": "confirmations.block.message" } ], "path": "app/javascript/mastodon/features/status/index.json" diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 098bebf8f7d..b1dbaa69802 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -54,6 +54,7 @@ "column_subheading.lists": "Lists", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Settings", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", "compose_form.placeholder": "What is on your mind?", @@ -220,6 +221,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "This post cannot be boosted", "status.delete": "Delete", "status.embed": "Embed", @@ -228,6 +230,7 @@ "status.media_hidden": "Media hidden", "status.mention": "Mention @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Expand this status", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 9e66c379fce..eab8c09a6fe 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -50,6 +50,7 @@ "column_header.unpin": "Depingli", "column_subheading.navigation": "Navigado", "column_subheading.settings": "Agordoj", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Via konta ne estas ŝlosita. Iu ajn povas sekvi vin por vidi viajn privatajn pepojn.", "compose_form.lock_disclaimer.lock": "ŝlosita", "compose_form.placeholder": "Pri kio vi pensas?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "uzanto", "search_results.total": "{count, number} {count, plural, one {rezultato} other {rezultatoj}}", "standalone.public_title": "Rigardeti…", + "status.block": "Block @{name}", "status.cannot_reblog": "Tiun publikaĵon oni ne povas diskonigi", "status.delete": "Forigi", "status.embed": "Enmeti", @@ -221,6 +223,7 @@ "status.media_hidden": "Sonbildaĵo kaŝita", "status.mention": "Mencii @{name}", "status.more": "Pli", + "status.mute": "Mute @{name}", "status.mute_conversation": "Silentigi konversacion", "status.open": "Disfaldi statkonigon", "status.pin": "Pingli al la profilo", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 6122a79abd2..8a8110b1e14 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -50,6 +50,7 @@ "column_header.unpin": "Dejar de fijar", "column_subheading.navigation": "Navegación", "column_subheading.settings": "Ajustes", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.", "compose_form.lock_disclaimer.lock": "bloqueado", "compose_form.placeholder": "¿En qué estás pensando?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "usuario", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "standalone.public_title": "Un pequeño vistazo...", + "status.block": "Block @{name}", "status.cannot_reblog": "Este toot no puede retootearse", "status.delete": "Borrar", "status.embed": "Incrustado", @@ -221,6 +223,7 @@ "status.media_hidden": "Contenido multimedia oculto", "status.mention": "Mencionar", "status.more": "Más", + "status.mute": "Mute @{name}", "status.mute_conversation": "Silenciar conversación", "status.open": "Expandir estado", "status.pin": "Fijar", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 75057a7dd8f..f6c6f5ced47 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -50,6 +50,7 @@ "column_header.unpin": "رهاکردن", "column_subheading.navigation": "گشت و گذار", "column_subheading.settings": "تنظیمات", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "حساب شما {locked} نیست. هر کسی می‌تواند پیگیر شما شود و نوشته‌های ویژهٔ پیگیران شما را ببیند.", "compose_form.lock_disclaimer.lock": "قفل", "compose_form.placeholder": "تازه چه خبر؟", @@ -213,6 +214,7 @@ "search_popout.tips.user": "کاربر", "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}", "standalone.public_title": "نگاهی به کاربران این سرور...", + "status.block": "Block @{name}", "status.cannot_reblog": "این نوشته را نمی‌شود بازبوقید", "status.delete": "پاک‌کردن", "status.embed": "جاگذاری", @@ -221,6 +223,7 @@ "status.media_hidden": "تصویر پنهان شده", "status.mention": "نام‌بردن از @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "بی‌صداکردن گفتگو", "status.open": "این نوشته را باز کن", "status.pin": "نوشتهٔ ثابت نمایه", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 4ddc1cca747..74ab699c4ab 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Settings", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", "compose_form.placeholder": "Mitä sinulla on mielessä?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "This post cannot be boosted", "status.delete": "Poista", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Media hidden", "status.mention": "Mainitse @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Expand this status", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index ecfff87c864..e77107fc527 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -50,6 +50,7 @@ "column_header.unpin": "Retirer", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Paramètres", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.", "compose_form.lock_disclaimer.lock": "verrouillé", "compose_form.placeholder": "Qu’avez-vous en tête ?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "utilisateur⋅ice", "search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}", "standalone.public_title": "Jeter un coup d’œil…", + "status.block": "Block @{name}", "status.cannot_reblog": "Cette publication ne peut être boostée", "status.delete": "Effacer", "status.embed": "Intégrer", @@ -221,6 +223,7 @@ "status.media_hidden": "Média caché", "status.mention": "Mentionner", "status.more": "Plus", + "status.mute": "Mute @{name}", "status.mute_conversation": "Masquer la conversation", "status.open": "Déplier ce statut", "status.pin": "Épingler sur le profil", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 6398daa1104..523dcc92422 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -50,6 +50,7 @@ "column_header.unpin": "Soltar", "column_subheading.navigation": "Navegación", "column_subheading.settings": "Axustes", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "A súa conta non está {locked}. Calquera pode seguila para ver as súas mensaxes só-para-seguidoras.", "compose_form.lock_disclaimer.lock": "bloqueado", "compose_form.placeholder": "A qué andas?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "usuaria", "search_results.total": "{count, number} {count,plural,one {result} outros {results}}", "standalone.public_title": "Ollada dentro...", + "status.block": "Block @{name}", "status.cannot_reblog": "Esta mensaxe non pode ser promocionada", "status.delete": "Eliminar", "status.embed": "Incrustar", @@ -221,6 +223,7 @@ "status.media_hidden": "Medios ocultos", "status.mention": "Mencionar @{name}", "status.more": "Máis", + "status.mute": "Mute @{name}", "status.mute_conversation": "Acalar conversa", "status.open": "Expandir este estado", "status.pin": "Fixar no perfil", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 5444c8e34f6..2eb18617387 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -50,6 +50,7 @@ "column_header.unpin": "שחרור קיבוע", "column_subheading.navigation": "ניווט", "column_subheading.settings": "אפשרויות", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "חשבונך אינו {locked}. כל אחד יוכל לעקוב אחריך כדי לקרוא את הודעותיך המיועדות לעוקבים בלבד.", "compose_form.lock_disclaimer.lock": "נעול", "compose_form.placeholder": "מה עובר לך בראש?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "משתמש(ת)", "search_results.total": "{count, number} {count, plural, one {תוצאה} other {תוצאות}}", "standalone.public_title": "הצצה פנימה...", + "status.block": "Block @{name}", "status.cannot_reblog": "לא ניתן להדהד הודעה זו", "status.delete": "מחיקה", "status.embed": "הטמעה", @@ -221,6 +223,7 @@ "status.media_hidden": "מדיה מוסתרת", "status.mention": "פניה אל @{name}", "status.more": "עוד", + "status.mute": "Mute @{name}", "status.mute_conversation": "השתקת שיחה", "status.open": "הרחבת הודעה", "status.pin": "לקבע באודות", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index f70c66223ce..00dea67f72a 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigacija", "column_subheading.settings": "Postavke", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Tvoj račun nije {locked}. Svatko te može slijediti kako bi vidio postove namijenjene samo tvojim sljedbenicima.", "compose_form.lock_disclaimer.lock": "zaključan", "compose_form.placeholder": "Što ti je na umu?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "Ovaj post ne može biti boostan", "status.delete": "Obriši", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Sakriven media sadržaj", "status.mention": "Spomeni @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Utišaj razgovor", "status.open": "Proširi ovaj status", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 7cb816fe939..e1048519b3d 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Settings", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", "compose_form.placeholder": "Mire gondolsz?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "This post cannot be boosted", "status.delete": "Törlés", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Media hidden", "status.mention": "Említés", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Expand this status", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 429b7718260..0942bc33c10 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigasi", "column_subheading.settings": "Pengaturan", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Akun anda tidak {locked}. Semua orang dapat mengikuti anda untuk melihat postingan khusus untuk pengikut anda.", "compose_form.lock_disclaimer.lock": "dikunci", "compose_form.placeholder": "Apa yang ada di pikiran anda?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count} {count, plural, one {hasil} other {hasil}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "This post cannot be boosted", "status.delete": "Hapus", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Media disembunyikan", "status.mention": "Balasan @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Tampilkan status ini", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 3e5c8edb9be..cfd8e299f52 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Settings", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", "compose_form.placeholder": "Quo esas en tua spirito?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezulti}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "This post cannot be boosted", "status.delete": "Efacar", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Kontenajo celita", "status.mention": "Mencionar @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Detaligar ca mesajo", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index e2ad1632a61..e14fa410c10 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Settings", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", "compose_form.placeholder": "A cosa stai pensando?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count} {count, plural, one {risultato} other {risultati}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "This post cannot be boosted", "status.delete": "Elimina", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Allegato nascosto", "status.mention": "Nomina @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Espandi questo post", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 614ef881559..19885056c04 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -54,6 +54,7 @@ "column_subheading.lists": "リスト", "column_subheading.navigation": "ナビゲーション", "column_subheading.settings": "設定", + "compose_form.hashtag_warning": "このトゥートは未収載なのでハッシュタグの一覧に表示されません。公開トゥートだけがハッシュタグで検索できます。", "compose_form.lock_disclaimer": "あなたのアカウントは{locked}になっていません。誰でもあなたをフォローすることができ、フォロワー限定の投稿を見ることができます。", "compose_form.lock_disclaimer.lock": "非公開", "compose_form.placeholder": "今なにしてる?", @@ -96,7 +97,7 @@ "empty_column.hashtag": "このハッシュタグはまだ使われていません。", "empty_column.home": "まだ誰もフォローしていません。{public}を見に行くか、検索を使って他のユーザーを見つけましょう。", "empty_column.home.public_timeline": "連合タイムライン", - "empty_column.list": "このリストにはまだなにもありません。", + "empty_column.list": "このリストにはまだなにもありません。このリストのメンバーが新しいトゥートをするとここに表示されます。", "empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。", "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のインスタンスのユーザーをフォローしたりしていっぱいにしましょう", "follow_request.authorize": "許可", @@ -220,6 +221,7 @@ "search_popout.tips.user": "ユーザー", "search_results.total": "{count, number}件の結果", "standalone.public_title": "今こんな話をしています...", + "status.block": "@{name}をブロック", "status.cannot_reblog": "この投稿はブーストできません", "status.delete": "削除", "status.embed": "埋め込み", @@ -228,6 +230,7 @@ "status.media_hidden": "非表示のメディア", "status.mention": "返信", "status.more": "もっと見る", + "status.mute": "@{name}をミュート", "status.mute_conversation": "会話をミュート", "status.open": "詳細を表示", "status.pin": "プロフィールに固定表示", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 7e77b78244d..321e3ce472b 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -50,6 +50,7 @@ "column_header.unpin": "고정 해제", "column_subheading.navigation": "내비게이션", "column_subheading.settings": "설정", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.", "compose_form.lock_disclaimer.lock": "비공개", "compose_form.placeholder": "지금 무엇을 하고 있나요?", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index e154d1ab253..f85cc75c507 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -50,6 +50,7 @@ "column_header.unpin": "Losmaken", "column_subheading.navigation": "Navigatie", "column_subheading.settings": "Instellingen", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en toots zien die je alleen aan volgers hebt gericht.", "compose_form.lock_disclaimer.lock": "besloten", "compose_form.placeholder": "Wat wil je kwijt?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "gebruiker", "search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}", "standalone.public_title": "Een kijkje binnenin...", + "status.block": "Block @{name}", "status.cannot_reblog": "Deze toot kan niet geboost worden", "status.delete": "Verwijderen", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Media verborgen", "status.mention": "Vermeld @{name}", "status.more": "Meer", + "status.mute": "Mute @{name}", "status.mute_conversation": "Negeer conversatie", "status.open": "Toot volledig tonen", "status.pin": "Aan profielpagina vastmaken", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index bf2b6259a04..5fbc51ff383 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -50,6 +50,7 @@ "column_header.unpin": "Løsne", "column_subheading.navigation": "Navigasjon", "column_subheading.settings": "Innstillinger", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Hva har du på hjertet?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "Denne posten kan ikke fremheves", "status.delete": "Slett", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Media skjult", "status.mention": "Nevn @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Demp samtale", "status.open": "Utvid denne statusen", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 0d1f7c97160..6ebd40f5bcd 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -50,6 +50,7 @@ "column_header.unpin": "Despenjar", "column_subheading.navigation": "Navigacion", "column_subheading.settings": "Paramètres", + "compose_form.hashtag_warning": "Aqueste tut serà pas ligat a cap etiqueta estant qu’es pas listat. Òm pas cercar que los tuts publics per etiqueta.", "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.", "compose_form.lock_disclaimer.lock": "clavat", "compose_form.placeholder": "A de qué pensatz ?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "utilizaire", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", "standalone.public_title": "Una ulhada dedins…", + "status.block": "Blocar @{name}", "status.cannot_reblog": "Aqueste estatut pòt pas èsser partejat", "status.delete": "Escafar", "status.embed": "Embarcar", @@ -221,6 +223,7 @@ "status.media_hidden": "Mèdia rescondut", "status.mention": "Mencionar", "status.more": "Mai", + "status.mute": "Rescondre @{name}", "status.mute_conversation": "Rescondre la conversacion", "status.open": "Desplegar aqueste estatut", "status.pin": "Penjar al perfil", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 9295ab93732..334178e032f 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -50,6 +50,7 @@ "column_header.unpin": "Cofnij przypięcie", "column_subheading.navigation": "Nawigacja", "column_subheading.settings": "Ustawienia", + "compose_form.hashtag_warning": "Ten wpis nie będzie widoczny pod podanymi hashtagami, ponieważ jest oznaczony jako niewidoczny. Tylko publiczne wpisy mogą zostać znalezione z użyciem hashtagów.", "compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię śledzi, może wyświetlać Twoje wpisy przeznaczone tylko dla śledzących.", "compose_form.lock_disclaimer.lock": "zablokowane", "compose_form.placeholder": "Co Ci chodzi po głowie?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "użytkownik", "search_results.total": "{count, number} {count, plural, one {wynik} few {wyniki} many {wyników} more {wyników}}", "standalone.public_title": "Spojrzenie w głąb…", + "status.block": "Zablokuj @{name}", "status.cannot_reblog": "Ten wpis nie może zostać podbity", "status.delete": "Usuń", "status.embed": "Osadź", @@ -221,6 +223,7 @@ "status.media_hidden": "Zawartość multimedialna ukryta", "status.mention": "Wspomnij o @{name}", "status.more": "Więcej", + "status.mute": "Wycisz @{name}", "status.mute_conversation": "Wycisz konwersację", "status.open": "Rozszerz ten wpis", "status.pin": "Przypnij do profilu", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 70632846c91..bc6ae928d49 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -50,6 +50,7 @@ "column_header.unpin": "Desafixar", "column_subheading.navigation": "Navegação", "column_subheading.settings": "Configurações", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "A sua conta não está {locked}. Qualquer pessoa pode te seguir e visualizar postagens direcionadas a apenas seguidores.", "compose_form.lock_disclaimer.lock": "trancada", "compose_form.placeholder": "No que você está pensando?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "usuário", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "standalone.public_title": "Dê uma espiada...", + "status.block": "Block @{name}", "status.cannot_reblog": "Esta postagem não pode ser compartilhada", "status.delete": "Excluir", "status.embed": "Incorporar", @@ -221,6 +223,7 @@ "status.media_hidden": "Mídia escondida", "status.mention": "Mencionar @{name}", "status.more": "Mais", + "status.mute": "Mute @{name}", "status.mute_conversation": "Silenciar conversa", "status.open": "Expandir", "status.pin": "Fixar no perfil", diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json index 15d5deb932a..f9db2ad0802 100644 --- a/app/javascript/mastodon/locales/pt.json +++ b/app/javascript/mastodon/locales/pt.json @@ -50,6 +50,7 @@ "column_header.unpin": "Remover fixar", "column_subheading.navigation": "Navegação", "column_subheading.settings": "Preferências", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "A tua conta não está {locked}. Qualquer pessoa pode seguir-te e ver as publicações direcionadas apenas a seguidores.", "compose_form.lock_disclaimer.lock": "bloqueada", "compose_form.placeholder": "Em que estás a pensar?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "utilizador", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "standalone.public_title": "Espreitar lá dentro...", + "status.block": "Block @{name}", "status.cannot_reblog": "Este post não pode ser partilhado", "status.delete": "Eliminar", "status.embed": "Incorporar", @@ -221,6 +223,7 @@ "status.media_hidden": "Media escondida", "status.mention": "Mencionar @{name}", "status.more": "Mais", + "status.mute": "Mute @{name}", "status.mute_conversation": "Silenciar conversa", "status.open": "Expandir", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index e9925b675b2..0fec70df09d 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -50,6 +50,7 @@ "column_header.unpin": "Открепить", "column_subheading.navigation": "Навигация", "column_subheading.settings": "Настройки", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Ваш аккаунт не {locked}. Любой человек может подписаться на Вас и просматривать посты для подписчиков.", "compose_form.lock_disclaimer.lock": "закрыт", "compose_form.placeholder": "О чем Вы думаете?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "пользователь", "search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}", "standalone.public_title": "Прямо сейчас", + "status.block": "Block @{name}", "status.cannot_reblog": "Этот статус не может быть продвинут", "status.delete": "Удалить", "status.embed": "Встроить", @@ -221,6 +223,7 @@ "status.media_hidden": "Медиаконтент скрыт", "status.mention": "Упомянуть @{name}", "status.more": "Больше", + "status.mute": "Mute @{name}", "status.mute_conversation": "Заглушить тред", "status.open": "Развернуть статус", "status.pin": "Закрепить в профиле", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index aacbc076ab4..41ebfbd0e04 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -1,214 +1,262 @@ { - "account.block": "Blokovať @{name}", - "account.block_domain": "Blokovať všetko z {domain}", - "account.disclaimer_full": "Inofrmácie nižšie nemusia reflektovať použivateľský účet kompletne.", - "account.edit_profile": "Upraviť profil", - "account.follow": "Sledovať", - "account.followers": "Sledujúci", - "account.follows": "Sledovaní", - "account.follows_you": "Sleduje teba", - "account.media": "Média", - "account.mention": "Napísať @{name}", - "account.mute": "Ignorovať @{name}", - "account.posts": "Správ", - "account.report": "Nahlásiť @{name}", - "account.requested": "Čaká na schválenie. Klikni na zrušenie žiadosti", - "account.share": "Zdieľať @{name} profil", - "account.unblock": "Odblokovať @{name}", - "account.unblock_domain": "Prestať blokovať {domain}", - "account.unfollow": "Prestať nasledovať", - "account.unmute": "Prestať ignorovať @{name}", - "account.view_full_profile": "Pozri celý profil", - "boost_modal.combo": "Nabudúce môžeš kliknúť {combo} a preskočiť", - "bundle_column_error.body": "Nastala chyba pri načítaní tohto komponentu.", - "bundle_column_error.retry": "Skús znova", - "bundle_column_error.title": "Chyba siete", - "bundle_modal_error.close": "Zatvoriť", - "bundle_modal_error.message": "Nastala chyba pri načítaní tohto komponentu.", - "bundle_modal_error.retry": "Skúsiť znova", - "column.blocks": "Blokovaní používatelia", - "column.community": "Lokálna časová os", - "column.favourites": "Obľúbené", - "column.follow_requests": "Žiadosti", - "column.home": "Moja časová os", - "column.mutes": "Ignorovaní používatelia", - "column.notifications": "Notifikácie", - "column.pins": "Pripnuté toots", - "column.public": "Federovaná časová os", - "column_back_button.label": "Späť", - "column_header.hide_settings": "Skryť nastavenia", - "column_header.moveLeft_settings": "Presunúť stĺpec doľava", - "column_header.moveRight_settings": "Presunúť stĺpec doprava", - "column_header.pin": "Pripnúť", - "column_header.show_settings": "Ukázať nastavenia", - "column_header.unpin": "Odopnúť", - "column_subheading.navigation": "Navigácia", - "column_subheading.settings": "Nastavenia", - "compose_form.lock_disclaimer": "Tvoj účet nie je zamknutý. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.", - "compose_form.lock_disclaimer.lock": "zamknutý", - "compose_form.placeholder": "Čo máš na mysli?", - "compose_form.publish": "Toot", - "compose_form.publish_loud": "{publish}!", - "compose_form.sensitive": "Označ súbor ako chúlostivý", - "compose_form.spoiler": "Skryť text za varovanie", - "compose_form.spoiler_placeholder": "Napíš sem tvoje varovanie", - "confirmation_modal.cancel": "Zrušiť", - "confirmations.block.confirm": "Blokovať", - "confirmations.block.message": "Naozaj chceš blokovať {name}?", - "confirmations.delete.confirm": "Zmazať", - "confirmations.delete.message": "Naozaj chceš zmazať túto správu?", - "confirmations.domain_block.confirm": "Skryť celú doménu", - "confirmations.domain_block.message": "Si si naozaj istý, že chceš blokovať celú {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať daných používateľov.", - "confirmations.mute.confirm": "Ignoruj", - "confirmations.mute.message": "Naozaj chceš ignorovať {name}?", - "confirmations.unfollow.confirm": "Nesledovať", - "confirmations.unfollow.message": "Naozaj chceš prestať sledovať {name}?", - "embed.instructions": "Skopíruj kód nižšie a ridaj tento status na tvoju web stránku.", - "embed.preview": "Tu je ukážka ako to bude vyzerať:", - "emoji_button.activity": "Aktivity", - "emoji_button.custom": "Vlastné", - "emoji_button.flags": "Vlajky", - "emoji_button.food": "Jedlá a nápoje", - "emoji_button.label": "Vlož emoji", - "emoji_button.nature": "Zvieratká", - "emoji_button.not_found": "Nenájdené", - "emoji_button.objects": "Predmety", - "emoji_button.people": "Ľudia", - "emoji_button.recent": "Často používané", - "emoji_button.search": "Hľadaj...", - "emoji_button.search_results": "Nájdené", - "emoji_button.symbols": "Symboly", - "emoji_button.travel": "Cestovanie a miesta", - "empty_column.community": "Lokálna časová os je prázdna. Napíš niečo aby sa to začalo hýbať!", - "empty_column.hashtag": "Ešte nič nie je v tomto hashtag-u.", - "empty_column.home": "Ešte nesleduješ nikoho. Pre začiatok pozri {public} alebo použi vyhľadávanie aby si našiel ostatných používateľov.", - "empty_column.home.inactivity": "Tvoja časová os je prázdna. Ak si bol dlho neaktívny, za krátku chvíľku bude obnovená.", - "empty_column.home.public_timeline": "verejnú časovú os", - "empty_column.notifications": "Nemáš žiadne notifikácie. Napíš niekomu, nasleduj niekoho alebo komunikuj s ostatnými.", - "empty_column.public": "Ešte tu nič nie je. Napíš niečo verejne alebo začni sledovať používateľov z iných Mastodon serverov aby tu niečo bolo", - "follow_request.authorize": "Potvrdiť", - "follow_request.reject": "Odmietnúť", - "getting_started.appsshort": "Aplikácie", - "getting_started.faq": "FAQ", - "getting_started.heading": "Začíname", - "getting_started.open_source_notice": "Mastodon má otvorený kód. Reportovať chyby alebo prispievať vlastným kódom môžeš na GitHube v {github}.", - "getting_started.userguide": "Používateľská príručka", - "home.column_settings.advanced": "Rozšírené", - "home.column_settings.basic": "Základné", - "home.column_settings.filter_regex": "Filtrovať použitím regulárnych výrazov", - "home.column_settings.show_reblogs": "Zobraziť boosts", - "home.column_settings.show_replies": "Zobraziť odpovede", - "home.settings": "Nastavenia stĺpcov", - "lightbox.close": "Zavrieť", - "lightbox.next": "Ďalší", - "lightbox.previous": "Predchádzajúci", - "loading_indicator.label": "Nahrávam...", - "media_gallery.toggle_visible": "Zapnúť/Vypnúť viditeľnosť", - "missing_indicator.label": "Nenájdené", - "navigation_bar.blocks": "Blokovaní používatelia", - "navigation_bar.community_timeline": "Lokálna časová os", - "navigation_bar.edit_profile": "Upraviť profil", - "navigation_bar.favourites": "Obľúbené", - "navigation_bar.follow_requests": "Žiadosti", - "navigation_bar.info": "O tomto Mastodon serveri", - "navigation_bar.logout": "Odhlásiť", - "navigation_bar.mutes": "Ignorovaní používatelia", - "navigation_bar.pins": "Pripnuté toots", - "navigation_bar.preferences": "Možnosti", - "navigation_bar.public_timeline": "Federovaná časová os", - "notification.favourite": "{name} sa páči tvoj status", - "notification.follow": "{name} ťa začal(a) sledovať", - "notification.mention": "{name} ťa zmienil", - "notification.reblog": "{name} re-tootol tvoj status", - "notifications.clear": "Vymazať notifikácie", - "notifications.clear_confirmation": "Naozaj chceš vymazať všetky tvoje notifikácie?", - "notifications.column_settings.alert": "Bublinové notifikácie", - "notifications.column_settings.favourite": "Obľúbené:", - "notifications.column_settings.follow": "Nový nasledujúci:", - "notifications.column_settings.mention": "Zmienenia:", - "notifications.column_settings.push": "Push notifikácie", - "notifications.column_settings.push_meta": "Toto zariadenie", - "notifications.column_settings.reblog": "Re-toots:", - "notifications.column_settings.show": "Zobraziť v stĺpci", - "notifications.column_settings.sound": "Prehrať zvuk", - "onboarding.done": "Koniec", - "onboarding.next": "Ďalej", - "onboarding.page_five.public_timelines": "Lokálna časová os zobrazuje verejné správy od všetkých na {domain}. Federovaná časová os zobrazuje verejné správy od všetkých ľudí ktoré {domain} nasleduje. Tieto sú takzvané Verejné Časové Osi, výborná možnosť ako nájsť a spoznať nových ľudí.", - "onboarding.page_four.home": "Domovská časová os zobrazí správy od ľudí ktorých sleduješ.", - "onboarding.page_four.notifications": "Stĺpec s notifikáciami zobrazí keď budeš s niekým komunikovať.", - "onboarding.page_one.federation": "Mastodon je sieť nezávislých serverov spojením ktorých vzniká jedna veľká federovaná sociálna sieť.", - "onboarding.page_one.handle": "Ty si na {domain}, takže tvoje celý nickname je {handle}", - "onboarding.page_one.welcome": "Vitajte v Mastodon!", - "onboarding.page_six.admin": "Správca tohto servera je {admin}.", - "onboarding.page_six.almost_done": "Takmer hotovo...", - "onboarding.page_six.appetoot": "Bon Appetoot!", - "onboarding.page_six.apps_available": "Aplikácie {apps} sú dostupné na pre iOS, Android and ďalšie platformy.", - "onboarding.page_six.github": "Mastodon je free open-source software. Chyby, nové funkcie alebo prispievať svojím kódom mǒžeš na {github}.", - "onboarding.page_six.guidelines": "pravidlá komunity", - "onboarding.page_six.read_guidelines": "Prosím prečítajte si {domain} pravidlá {guidelines}!", - "onboarding.page_six.various_app": "mobilné applikácie", - "onboarding.page_three.profile": "Uprav svoj profile a zmeň svoj avatar, bio a meno ktoré bude zobrazené. V nastaveniach nájdeš ďalšie možnosti.", - "onboarding.page_three.search": "Použi vyhľadávacie políčko na nájdenie ľudí a hashtagov, ako napríklad {slovensko}, {slovakia} alebo {pivo}. Na nájdenie človeka ktorý je registrovaný na inom Mastodon serveri použi jeho celý nickname.", - "onboarding.page_two.compose": "Správy píš zo stĺpca na komponovanie. Môžeš nahrávať obrázky, meniť nastavenia súkromia správ a pridávať varovania ikonkami nižšie.", - "onboarding.skip": "Preskočiť", - "privacy.change": "Zmeň viditeľnosť statusu", - "privacy.direct.long": "Pošli priamo iba spomenutým používateľom", - "privacy.direct.short": "Súkromne", - "privacy.private.long": "Pošli iba sledujúcim", - "privacy.private.short": "Iba sledujúci", - "privacy.public.long": "Pošli všetkým", - "privacy.public.short": "Verejne", - "privacy.unlisted.long": "Neposielať verejne", - "privacy.unlisted.short": "Nie je v zozname", - "reply_indicator.cancel": "Zrušiť", - "report.placeholder": "Ďalšie komentáre", - "report.submit": "Poslať", - "report.target": "Reportovať {target}", - "search.placeholder": "Hľadaj", - "search_results.total": "{count, number} nájdených", - "standalone.public_title": "Čo tam nájdeš...", - "status.cannot_reblog": "Tento príspevok nemôže byť re-tootnutý", - "status.delete": "Zmazať", - "status.embed": "Embed", - "status.favourite": "Páči sa mi", - "status.load_more": "Zobraziť viac", - "status.media_hidden": "Skryté médiá", - "status.mention": "Napísať @{name}", - "status.mute_conversation": "Ignorovať konverzáciu", - "status.open": "Otvoriť", - "status.pin": "Pripnúť na profil", - "status.reblog": "Re-toot", - "status.reblogged_by": "{name} re-tootol", - "status.reply": "Odpovedať", - "status.replyAll": "Odpovedať všetkým", - "status.report": "Nahlásiť @{name}", - "status.sensitive_toggle": "Klikni pre zobrazenie", - "status.sensitive_warning": "Chúlostivý obsah", - "status.share": "Zdieľať", - "status.show_less": "Zobraziť menej", - "status.show_more": "Zobraziť viac", - "status.unmute_conversation": "Prestať ignorovať konverzáciu", - "status.unpin": "Odopnúť z profilu", - "tabs_bar.compose": "Napísať", - "tabs_bar.federated_timeline": "Federovaná", - "tabs_bar.home": "Domov", - "tabs_bar.local_timeline": "Local", - "tabs_bar.notifications": "Notifikácie", - "upload_area.title": "Ťahaj a pusti pre nahratie", - "upload_button.label": "Pridať", - "upload_form.undo": "Späť", - "upload_progress.label": "Nahrávam...", - "video.close": "Zavrieť video", - "video.exit_fullscreen": "Vpnúť zobrazenie na celú obrazovku", - "video.expand": "Zväčšiť video", - "video.fullscreen": "Zapnúť zobrazenie na celú obrazovku", - "video.hide": "Skryť video", - "video.mute": "Vypnúť zvuk", - "video.pause": "Pauza", - "video.play": "Prehrať", - "video.unmute": "Zapnúť zvuk", - "video_player.expand": "Zväčšiť video", - "video_player.toggle_sound": "Zapnúť/Vypnúť zvuk", - "video_player.toggle_visible": "Zapnúť/Vypnúť video", - "video_player.video_error": "Video nebolo možné prehrať" + "account.block": "Blokovať @{name}", + "account.block_domain": "Blokovať všetko z {domain}", + "account.disclaimer_full": "Inofrmácie nižšie nemusia reflektovať použivateľský účet kompletne.", + "account.edit_profile": "Upraviť profil", + "account.follow": "Sledovať", + "account.followers": "Sledujúci", + "account.follows": "Sledovaní", + "account.follows_you": "Sleduje teba", + "account.hide_reblogs": "Hide boosts from @{name}", + "account.media": "Média", + "account.mention": "Napísať @{name}", + "account.moved_to": "{name} has moved to:", + "account.mute": "Ignorovať @{name}", + "account.mute_notifications": "Mute notifications from @{name}", + "account.posts": "Správ", + "account.report": "Nahlásiť @{name}", + "account.requested": "Čaká na schválenie. Klikni na zrušenie žiadosti", + "account.share": "Zdieľať @{name} profil", + "account.show_reblogs": "Show boosts from @{name}", + "account.unblock": "Odblokovať @{name}", + "account.unblock_domain": "Prestať blokovať {domain}", + "account.unfollow": "Prestať nasledovať", + "account.unmute": "Prestať ignorovať @{name}", + "account.unmute_notifications": "Unmute notifications from @{name}", + "account.view_full_profile": "Pozri celý profil", + "boost_modal.combo": "Nabudúce môžeš kliknúť {combo} a preskočiť", + "bundle_column_error.body": "Nastala chyba pri načítaní tohto komponentu.", + "bundle_column_error.retry": "Skús znova", + "bundle_column_error.title": "Chyba siete", + "bundle_modal_error.close": "Zatvoriť", + "bundle_modal_error.message": "Nastala chyba pri načítaní tohto komponentu.", + "bundle_modal_error.retry": "Skúsiť znova", + "column.blocks": "Blokovaní používatelia", + "column.community": "Lokálna časová os", + "column.favourites": "Obľúbené", + "column.follow_requests": "Žiadosti", + "column.home": "Moja časová os", + "column.lists": "Lists", + "column.mutes": "Ignorovaní používatelia", + "column.notifications": "Notifikácie", + "column.pins": "Pripnuté toots", + "column.public": "Federovaná časová os", + "column_back_button.label": "Späť", + "column_header.hide_settings": "Skryť nastavenia", + "column_header.moveLeft_settings": "Presunúť stĺpec doľava", + "column_header.moveRight_settings": "Presunúť stĺpec doprava", + "column_header.pin": "Pripnúť", + "column_header.show_settings": "Ukázať nastavenia", + "column_header.unpin": "Odopnúť", + "column_subheading.navigation": "Navigácia", + "column_subheading.settings": "Nastavenia", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.lock_disclaimer": "Tvoj účet nie je zamknutý. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.", + "compose_form.lock_disclaimer.lock": "zamknutý", + "compose_form.placeholder": "Čo máš na mysli?", + "compose_form.publish": "Toot", + "compose_form.publish_loud": "{publish}!", + "compose_form.sensitive": "Označ súbor ako chúlostivý", + "compose_form.spoiler": "Skryť text za varovanie", + "compose_form.spoiler_placeholder": "Napíš sem tvoje varovanie", + "confirmation_modal.cancel": "Zrušiť", + "confirmations.block.confirm": "Blokovať", + "confirmations.block.message": "Naozaj chceš blokovať {name}?", + "confirmations.delete.confirm": "Zmazať", + "confirmations.delete.message": "Naozaj chceš zmazať túto správu?", + "confirmations.delete_list.confirm": "Delete", + "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.domain_block.confirm": "Skryť celú doménu", + "confirmations.domain_block.message": "Si si naozaj istý, že chceš blokovať celú {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať daných používateľov.", + "confirmations.mute.confirm": "Ignoruj", + "confirmations.mute.message": "Naozaj chceš ignorovať {name}?", + "confirmations.unfollow.confirm": "Nesledovať", + "confirmations.unfollow.message": "Naozaj chceš prestať sledovať {name}?", + "embed.instructions": "Skopíruj kód nižšie a ridaj tento status na tvoju web stránku.", + "embed.preview": "Tu je ukážka ako to bude vyzerať:", + "emoji_button.activity": "Aktivity", + "emoji_button.custom": "Vlastné", + "emoji_button.flags": "Vlajky", + "emoji_button.food": "Jedlá a nápoje", + "emoji_button.label": "Vlož emoji", + "emoji_button.nature": "Zvieratká", + "emoji_button.not_found": "Nenájdené", + "emoji_button.objects": "Predmety", + "emoji_button.people": "Ľudia", + "emoji_button.recent": "Často používané", + "emoji_button.search": "Hľadaj...", + "emoji_button.search_results": "Nájdené", + "emoji_button.symbols": "Symboly", + "emoji_button.travel": "Cestovanie a miesta", + "empty_column.community": "Lokálna časová os je prázdna. Napíš niečo aby sa to začalo hýbať!", + "empty_column.hashtag": "Ešte nič nie je v tomto hashtag-u.", + "empty_column.home": "Ešte nesleduješ nikoho. Pre začiatok pozri {public} alebo použi vyhľadávanie aby si našiel ostatných používateľov.", + "empty_column.home.public_timeline": "verejnú časovú os", + "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", + "empty_column.notifications": "Nemáš žiadne notifikácie. Napíš niekomu, nasleduj niekoho alebo komunikuj s ostatnými.", + "empty_column.public": "Ešte tu nič nie je. Napíš niečo verejne alebo začni sledovať používateľov z iných Mastodon serverov aby tu niečo bolo", + "follow_request.authorize": "Potvrdiť", + "follow_request.reject": "Odmietnúť", + "getting_started.appsshort": "Aplikácie", + "getting_started.faq": "FAQ", + "getting_started.heading": "Začíname", + "getting_started.open_source_notice": "Mastodon má otvorený kód. Reportovať chyby alebo prispievať vlastným kódom môžeš na GitHube v {github}.", + "getting_started.userguide": "Používateľská príručka", + "home.column_settings.advanced": "Rozšírené", + "home.column_settings.basic": "Základné", + "home.column_settings.filter_regex": "Filtrovať použitím regulárnych výrazov", + "home.column_settings.show_reblogs": "Zobraziť boosts", + "home.column_settings.show_replies": "Zobraziť odpovede", + "home.settings": "Nastavenia stĺpcov", + "keyboard_shortcuts.back": "to navigate back", + "keyboard_shortcuts.boost": "to boost", + "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.compose": "to focus the compose textarea", + "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.down": "to move down in the list", + "keyboard_shortcuts.enter": "to open status", + "keyboard_shortcuts.favourite": "to favourite", + "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.legend": "to display this legend", + "keyboard_shortcuts.mention": "to mention author", + "keyboard_shortcuts.reply": "to reply", + "keyboard_shortcuts.search": "to focus search", + "keyboard_shortcuts.toot": "to start a brand new toot", + "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", + "keyboard_shortcuts.up": "to move up in the list", + "lightbox.close": "Zavrieť", + "lightbox.next": "Ďalší", + "lightbox.previous": "Predchádzajúci", + "lists.account.add": "Add to list", + "lists.account.remove": "Remove from list", + "lists.delete": "Delete list", + "lists.edit": "Edit list", + "lists.new.create": "Add list", + "lists.new.title_placeholder": "New list title", + "lists.search": "Search among people you follow", + "lists.subheading": "Your lists", + "loading_indicator.label": "Nahrávam...", + "media_gallery.toggle_visible": "Zapnúť/Vypnúť viditeľnosť", + "missing_indicator.label": "Nenájdené", + "mute_modal.hide_notifications": "Hide notifications from this user?", + "navigation_bar.blocks": "Blokovaní používatelia", + "navigation_bar.community_timeline": "Lokálna časová os", + "navigation_bar.edit_profile": "Upraviť profil", + "navigation_bar.favourites": "Obľúbené", + "navigation_bar.follow_requests": "Žiadosti", + "navigation_bar.info": "O tomto Mastodon serveri", + "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", + "navigation_bar.lists": "Lists", + "navigation_bar.logout": "Odhlásiť", + "navigation_bar.mutes": "Ignorovaní používatelia", + "navigation_bar.pins": "Pripnuté toots", + "navigation_bar.preferences": "Možnosti", + "navigation_bar.public_timeline": "Federovaná časová os", + "notification.favourite": "{name} sa páči tvoj status", + "notification.follow": "{name} ťa začal(a) sledovať", + "notification.mention": "{name} ťa zmienil", + "notification.reblog": "{name} re-tootol tvoj status", + "notifications.clear": "Vymazať notifikácie", + "notifications.clear_confirmation": "Naozaj chceš vymazať všetky tvoje notifikácie?", + "notifications.column_settings.alert": "Bublinové notifikácie", + "notifications.column_settings.favourite": "Obľúbené:", + "notifications.column_settings.follow": "Nový nasledujúci:", + "notifications.column_settings.mention": "Zmienenia:", + "notifications.column_settings.push": "Push notifikácie", + "notifications.column_settings.push_meta": "Toto zariadenie", + "notifications.column_settings.reblog": "Re-toots:", + "notifications.column_settings.show": "Zobraziť v stĺpci", + "notifications.column_settings.sound": "Prehrať zvuk", + "onboarding.done": "Koniec", + "onboarding.next": "Ďalej", + "onboarding.page_five.public_timelines": "Lokálna časová os zobrazuje verejné správy od všetkých na {domain}. Federovaná časová os zobrazuje verejné správy od všetkých ľudí ktoré {domain} nasleduje. Tieto sú takzvané Verejné Časové Osi, výborná možnosť ako nájsť a spoznať nových ľudí.", + "onboarding.page_four.home": "Domovská časová os zobrazí správy od ľudí ktorých sleduješ.", + "onboarding.page_four.notifications": "Stĺpec s notifikáciami zobrazí keď budeš s niekým komunikovať.", + "onboarding.page_one.federation": "Mastodon je sieť nezávislých serverov spojením ktorých vzniká jedna veľká federovaná sociálna sieť.", + "onboarding.page_one.handle": "Ty si na {domain}, takže tvoje celý nickname je {handle}", + "onboarding.page_one.welcome": "Vitajte v Mastodon!", + "onboarding.page_six.admin": "Správca tohto servera je {admin}.", + "onboarding.page_six.almost_done": "Takmer hotovo...", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "Aplikácie {apps} sú dostupné na pre iOS, Android and ďalšie platformy.", + "onboarding.page_six.github": "Mastodon je free open-source software. Chyby, nové funkcie alebo prispievať svojím kódom mǒžeš na {github}.", + "onboarding.page_six.guidelines": "pravidlá komunity", + "onboarding.page_six.read_guidelines": "Prosím prečítajte si {domain} pravidlá {guidelines}!", + "onboarding.page_six.various_app": "mobilné applikácie", + "onboarding.page_three.profile": "Uprav svoj profile a zmeň svoj avatar, bio a meno ktoré bude zobrazené. V nastaveniach nájdeš ďalšie možnosti.", + "onboarding.page_three.search": "Použi vyhľadávacie políčko na nájdenie ľudí a hashtagov, ako napríklad {slovensko}, {slovakia} alebo {pivo}. Na nájdenie človeka ktorý je registrovaný na inom Mastodon serveri použi jeho celý nickname.", + "onboarding.page_two.compose": "Správy píš zo stĺpca na komponovanie. Môžeš nahrávať obrázky, meniť nastavenia súkromia správ a pridávať varovania ikonkami nižšie.", + "onboarding.skip": "Preskočiť", + "privacy.change": "Zmeň viditeľnosť statusu", + "privacy.direct.long": "Pošli priamo iba spomenutým používateľom", + "privacy.direct.short": "Súkromne", + "privacy.private.long": "Pošli iba sledujúcim", + "privacy.private.short": "Iba sledujúci", + "privacy.public.long": "Pošli všetkým", + "privacy.public.short": "Verejne", + "privacy.unlisted.long": "Neposielať verejne", + "privacy.unlisted.short": "Nie je v zozname", + "relative_time.days": "{number}d", + "relative_time.hours": "{number}h", + "relative_time.just_now": "now", + "relative_time.minutes": "{number}m", + "relative_time.seconds": "{number}s", + "reply_indicator.cancel": "Zrušiť", + "report.placeholder": "Ďalšie komentáre", + "report.submit": "Poslať", + "report.target": "Reportovať {target}", + "search.placeholder": "Hľadaj", + "search_popout.search_format": "Advanced search format", + "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.status": "status", + "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.user": "user", + "search_results.total": "{count, number} nájdených", + "standalone.public_title": "Čo tam nájdeš...", + "status.block": "Block @{name}", + "status.cannot_reblog": "Tento príspevok nemôže byť re-tootnutý", + "status.delete": "Zmazať", + "status.embed": "Embed", + "status.favourite": "Páči sa mi", + "status.load_more": "Zobraziť viac", + "status.media_hidden": "Skryté médiá", + "status.mention": "Napísať @{name}", + "status.more": "More", + "status.mute": "Mute @{name}", + "status.mute_conversation": "Ignorovať konverzáciu", + "status.open": "Otvoriť", + "status.pin": "Pripnúť na profil", + "status.reblog": "Re-toot", + "status.reblogged_by": "{name} re-tootol", + "status.reply": "Odpovedať", + "status.replyAll": "Odpovedať všetkým", + "status.report": "Nahlásiť @{name}", + "status.sensitive_toggle": "Klikni pre zobrazenie", + "status.sensitive_warning": "Chúlostivý obsah", + "status.share": "Zdieľať", + "status.show_less": "Zobraziť menej", + "status.show_more": "Zobraziť viac", + "status.unmute_conversation": "Prestať ignorovať konverzáciu", + "status.unpin": "Odopnúť z profilu", + "tabs_bar.compose": "Napísať", + "tabs_bar.federated_timeline": "Federovaná", + "tabs_bar.home": "Domov", + "tabs_bar.local_timeline": "Local", + "tabs_bar.notifications": "Notifikácie", + "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "upload_area.title": "Ťahaj a pusti pre nahratie", + "upload_button.label": "Pridať", + "upload_form.description": "Describe for the visually impaired", + "upload_form.undo": "Späť", + "upload_progress.label": "Nahrávam...", + "video.close": "Zavrieť video", + "video.exit_fullscreen": "Vpnúť zobrazenie na celú obrazovku", + "video.expand": "Zväčšiť video", + "video.fullscreen": "Zapnúť zobrazenie na celú obrazovku", + "video.hide": "Skryť video", + "video.mute": "Vypnúť zvuk", + "video.pause": "Pauza", + "video.play": "Prehrať", + "video.unmute": "Zapnúť zvuk" } diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index c8e4573e672..7824be2b276 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -50,6 +50,7 @@ "column_header.unpin": "Откачи", "column_subheading.navigation": "Навигација", "column_subheading.settings": "Поставке", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.", "compose_form.lock_disclaimer.lock": "закључан", "compose_form.placeholder": "Шта Вам је на уму?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "корисник", "search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}", "standalone.public_title": "Поглед изнутра...", + "status.block": "Block @{name}", "status.cannot_reblog": "Овај статус не може да се подржи", "status.delete": "Обриши", "status.embed": "Угради на сајт", @@ -221,6 +223,7 @@ "status.media_hidden": "Мултимедија сакривена", "status.mention": "Помени корисника @{name}", "status.more": "Још", + "status.mute": "Mute @{name}", "status.mute_conversation": "Мутирај преписку", "status.open": "Прошири овај статус", "status.pin": "Прикачи на профил", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 9d9646509ff..edfa9b8c238 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -50,6 +50,7 @@ "column_header.unpin": "Ångra fäst", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Inställningar", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vemsomhelst kan följa dig och även se dina inlägg skrivna för endast dina följare.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Vad funderar du på?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "användare", "search_results.total": "{count, number} {count, plural, ett {result} andra {results}}", "standalone.public_title": "En titt inuti...", + "status.block": "Block @{name}", "status.cannot_reblog": "Detta inlägg kan inte knuffas", "status.delete": "Ta bort", "status.embed": "Bädda in", @@ -221,6 +223,7 @@ "status.media_hidden": "Media dold", "status.mention": "Omnämn @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Tysta konversation", "status.open": "Utvidga denna status", "status.pin": "Fäst i profil", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index cc18a609622..06323ebfce3 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Settings", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", "compose_form.placeholder": "What is on your mind?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "This post cannot be boosted", "status.delete": "Delete", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Media hidden", "status.mention": "Mention @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Expand this status", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index c51f3e41772..ce6434ca68e 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Navigasyon", "column_subheading.settings": "Ayarlar", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Hesabınız {locked} değil. Sadece takipçilerle paylaştığınız gönderileri görebilmek için sizi herhangi bir kullanıcı takip edebilir.", "compose_form.lock_disclaimer.lock": "kilitli", "compose_form.placeholder": "Ne düşünüyorsun?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuçlar}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "Bu gönderi boost edilemez", "status.delete": "Sil", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Gizli görsel", "status.mention": "Bahset @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", "status.open": "Bu gönderiyi genişlet", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 86c0ce76d7d..46d22ac8330 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -50,6 +50,7 @@ "column_header.unpin": "Unpin", "column_subheading.navigation": "Навігація", "column_subheading.settings": "Налаштування", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Ваш акаунт не {locked}. Кожен може підписатися на Вас та бачити Ваші приватні пости.", "compose_form.lock_disclaimer.lock": "приватний", "compose_form.placeholder": "Що у Вас на думці?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} {count, plural, one {результат} few {результати} many {результатів} other {результатів}}", "standalone.public_title": "A look inside...", + "status.block": "Block @{name}", "status.cannot_reblog": "Цей допис не може бути передмухнутий", "status.delete": "Видалити", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "Медіаконтент приховано", "status.mention": "Згадати", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "Заглушити діалог", "status.open": "Розгорнути допис", "status.pin": "Pin on profile", diff --git a/app/javascript/mastodon/locales/whitelist_sk.json b/app/javascript/mastodon/locales/whitelist_sk.json new file mode 100644 index 00000000000..0d4f101c7a3 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_sk.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/whitelist_sr.json b/app/javascript/mastodon/locales/whitelist_sr.json new file mode 100644 index 00000000000..0d4f101c7a3 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_sr.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 9be6a9f736f..ce16dcd8e99 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -50,6 +50,7 @@ "column_header.unpin": "取消固定", "column_subheading.navigation": "导航", "column_subheading.settings": "设置", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "你的帐户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。", "compose_form.lock_disclaimer.lock": "开启保护", "compose_form.placeholder": "在想啥?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "用户", "search_results.total": "共 {count, number} 个结果", "standalone.public_title": "大家都在干啥?", + "status.block": "Block @{name}", "status.cannot_reblog": "无法转嘟这条嘟文", "status.delete": "删除", "status.embed": "嵌入", @@ -221,6 +223,7 @@ "status.media_hidden": "隐藏媒体内容", "status.mention": "提及 @{name}", "status.more": "更多", + "status.mute": "Mute @{name}", "status.mute_conversation": "隐藏此对话", "status.open": "展开嘟文", "status.pin": "在个人资料页面置顶", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 15a68c915b1..7745da622c4 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -50,6 +50,7 @@ "column_header.unpin": "取下", "column_subheading.navigation": "瀏覽", "column_subheading.settings": "設定", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "你的用戶狀態為「{locked}」,任何人都能立即關注你,然後看到「只有關注者能看」的文章。", "compose_form.lock_disclaimer.lock": "公共", "compose_form.placeholder": "你在想甚麼?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} 項結果", "standalone.public_title": "站點一瞥…", + "status.block": "Block @{name}", "status.cannot_reblog": "這篇文章無法被轉推", "status.delete": "刪除", "status.embed": "鑲嵌", @@ -221,6 +223,7 @@ "status.media_hidden": "隱藏媒體內容", "status.mention": "提及 @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "靜音對話", "status.open": "展開文章", "status.pin": "置頂到資料頁", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 1bdc883a88d..876fb0e1387 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -50,6 +50,7 @@ "column_header.unpin": "取下", "column_subheading.navigation": "瀏覽", "column_subheading.settings": "設定", + "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "你的帳號沒有{locked}。任何人都可以關注你,看到發給關注者的貼文。", "compose_form.lock_disclaimer.lock": "上鎖", "compose_form.placeholder": "在想些什麼?", @@ -213,6 +214,7 @@ "search_popout.tips.user": "user", "search_results.total": "{count, number} 項結果", "standalone.public_title": "站點一瞥…", + "status.block": "Block @{name}", "status.cannot_reblog": "此貼文無法轉推", "status.delete": "刪除", "status.embed": "Embed", @@ -221,6 +223,7 @@ "status.media_hidden": "媒體已隱藏", "status.mention": "提到 @{name}", "status.more": "More", + "status.mute": "Mute @{name}", "status.mute_conversation": "消音對話", "status.open": "展開這個狀態", "status.pin": "置頂到個人資訊頁", diff --git a/app/lib/activitypub/activity/accept.rb b/app/lib/activitypub/activity/accept.rb index bd90c901944..d0082483c89 100644 --- a/app/lib/activitypub/activity/accept.rb +++ b/app/lib/activitypub/activity/accept.rb @@ -2,16 +2,18 @@ class ActivityPub::Activity::Accept < ActivityPub::Activity def perform - case @object['type'] - when 'Follow' - accept_follow + if @object.respond_to?(:[]) && + @object['type'] == 'Follow' && @object['actor'].present? + accept_follow_from @object['actor'] + else + accept_follow_object @object end end private - def accept_follow - target_account = account_from_uri(target_uri) + def accept_follow_from(actor) + target_account = account_from_uri(value_or_id(actor)) return if target_account.nil? || !target_account.local? @@ -19,7 +21,8 @@ class ActivityPub::Activity::Accept < ActivityPub::Activity follow_request&.authorize! end - def target_uri - @target_uri ||= value_or_id(@object['actor']) + def accept_follow_object(object) + follow_request = ActivityPub::TagManager.instance.uri_to_resource(value_or_id(object), FollowRequest) + follow_request&.authorize! end end diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb index 0708713e646..1c35e1672da 100644 --- a/app/lib/activitypub/tag_manager.rb +++ b/app/lib/activitypub/tag_manager.rb @@ -28,6 +28,8 @@ class ActivityPub::TagManager return target.uri if target.respond_to?(:local?) && !target.local? case target.object_type + when :follow + account_follow_url(target.account.username, target) when :person account_url(target) when :note, :comment, :activity @@ -97,6 +99,12 @@ class ActivityPub::TagManager case klass.name when 'Account' klass.find_local(uri_to_local_id(uri, :username)) + when 'FollowRequest' + params = Rails.application.routes.recognize_path(uri) + klass.joins(:account).find_by!( + accounts: { domain: nil, username: params[:account_username] }, + id: params[:id] + ) else StatusFinder.new(uri).status end diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index f5bf64cc7ac..8c0f8cebce5 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -171,10 +171,10 @@ class Formatter end def link_to_url(entity) - normalized_url = Addressable::URI.parse(entity[:url]).normalize - html_attrs = { target: '_blank', rel: 'nofollow noopener' } + url = Addressable::URI.parse(entity[:url]) + html_attrs = { target: '_blank', rel: 'nofollow noopener' } - Twitter::Autolink.send(:link_to_text, entity, link_html(entity[:url]), normalized_url, html_attrs) + Twitter::Autolink.send(:link_to_text, entity, link_html(entity[:url]), url, html_attrs) rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError encode(entity[:url]) end diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb index ebf6959cef7..33e5fec1201 100644 --- a/app/models/follow_request.rb +++ b/app/models/follow_request.rb @@ -21,6 +21,10 @@ class FollowRequest < ApplicationRecord validates :account_id, uniqueness: { scope: :target_account_id } + def object_type + :follow + end + def authorize! account.follow!(target_account, reblogs: show_reblogs) MergeWorker.perform_async(target_account.id, account.id) diff --git a/app/serializers/activitypub/follow_serializer.rb b/app/serializers/activitypub/follow_serializer.rb index 86c9992fe32..eecd6470164 100644 --- a/app/serializers/activitypub/follow_serializer.rb +++ b/app/serializers/activitypub/follow_serializer.rb @@ -1,11 +1,12 @@ # frozen_string_literal: true class ActivityPub::FollowSerializer < ActiveModel::Serializer - attributes :id, :type, :actor + attributes :type, :actor + attribute :id, if: :dereferencable? attribute :virtual_object, key: :object def id - [ActivityPub::TagManager.instance.uri_for(object.account), '#follows/', object.id].join + ActivityPub::TagManager.instance.uri_for(object) end def type @@ -19,4 +20,8 @@ class ActivityPub::FollowSerializer < ActiveModel::Serializer def virtual_object ActivityPub::TagManager.instance.uri_for(object.target_account) end + + def dereferencable? + object.respond_to?(:object_type) + end end diff --git a/app/views/accounts/_header.html.haml b/app/views/accounts/_header.html.haml index b0062752c2e..aae01c3115a 100644 --- a/app/views/accounts/_header.html.haml +++ b/app/views/accounts/_header.html.haml @@ -9,7 +9,7 @@ = fa_icon 'user-times' = t('accounts.unfollow') - else - = link_to account_follow_path(account), data: { method: :post }, class: 'icon-button' do + = link_to account_follows_path(account), data: { method: :post }, class: 'icon-button' do = fa_icon 'user-plus' = t('accounts.follow') - elsif !user_signed_in? diff --git a/app/views/user_mailer/confirmation_instructions.pl.html.erb b/app/views/user_mailer/confirmation_instructions.pl.html.erb index 9739501844d..2285b5c6e1d 100644 --- a/app/views/user_mailer/confirmation_instructions.pl.html.erb +++ b/app/views/user_mailer/confirmation_instructions.pl.html.erb @@ -1,4 +1,4 @@ -

Witaj, <%= @resource.email %> !

+

Witaj, <%= @resource.email %>!

Właśnie utworzyłeś konto na instancji <%= @instance %>.

diff --git a/app/views/user_mailer/confirmation_instructions.pl.text.erb b/app/views/user_mailer/confirmation_instructions.pl.text.erb index 9640d8ddd96..f20082e1664 100644 --- a/app/views/user_mailer/confirmation_instructions.pl.text.erb +++ b/app/views/user_mailer/confirmation_instructions.pl.text.erb @@ -1,4 +1,4 @@ -Witaj, <%= @resource.email %> ! +Witaj, <%= @resource.email %>! Właśnie utworzyłeś konto na instancji <%= @instance %>. diff --git a/app/views/user_mailer/email_changed.ja.html.erb b/app/views/user_mailer/email_changed.ja.html.erb new file mode 100644 index 00000000000..c66f409c61e --- /dev/null +++ b/app/views/user_mailer/email_changed.ja.html.erb @@ -0,0 +1,13 @@ +

こんにちは<%= @resource.email %>さん

+ +<% if @resource&.unconfirmed_email? %> +

<%= @instance %>で使っているメールアドレスが<%= @resource.unconfirmed_email %>に変更されようとしています。

+<% else %> +

<%= @instance %>で使っているメールアドレスが<%= @resource.email %>に変更されました。

+<% end %> + +

+ メールアドレスを変更した覚えがない場合、誰かがあなたのアカウントにアクセスしたおそれがあります。すぐにパスワードを変更するか、アカウントにアクセスできない場合はインスタンスの管理者に連絡してください。 +

+ +

<%= @instance %>チームより

diff --git a/app/views/user_mailer/email_changed.ja.text.erb b/app/views/user_mailer/email_changed.ja.text.erb new file mode 100644 index 00000000000..33ee6d10b67 --- /dev/null +++ b/app/views/user_mailer/email_changed.ja.text.erb @@ -0,0 +1,11 @@ +Hello <%= @resource.email %>! + +<% if @resource&.unconfirmed_email? %> +<%= @instance %>で使っているメールアドレスが<%= @resource.unconfirmed_email %>に変更されようとしています。 +<% else %> +<%= @instance %>で使っているメールアドレスが<%= @resource.email %>に変更されました。 +<% end %> + +メールアドレスを変更した覚えがない場合、誰かがあなたのアカウントにアクセスしたおそれがあります。すぐにパスワードを変更するか、アカウントにアクセスできない場合はインスタンスの管理者に連絡してください。 + +<%= @instance %>チームより diff --git a/app/views/user_mailer/email_changed.pl.html.erb b/app/views/user_mailer/email_changed.pl.html.erb new file mode 100644 index 00000000000..9ed122b0f35 --- /dev/null +++ b/app/views/user_mailer/email_changed.pl.html.erb @@ -0,0 +1,15 @@ +

Witaj, <%= @resource.email %>!

+ +<% if @resource&.unconfirmed_email? %> +

Informujemy, że e-mail używany przez Ciebie na <%= @instance %> został zmieniony na <%= @resource.unconfirmed_email %>.

+<% else %> +

Informujemy, że e-mail używany przez Ciebie na <%= @instance %> został zmieniony na <%= @resource.email %>.

+<% end %> + +

+ Jeżeli to nie Ty, prawdopodobnie ktoś uzyskał dostęp do Twojego konta. Zalecana jest natychmiastowa zmiana hasła lub skontaktowanie się z administratorem, jeżeli nie masz dostępu do swojego konta. +

+ +

Z pozdrowieniami,

+ +

Zespół <%= @instance %>

diff --git a/app/views/user_mailer/email_changed.pl.text.erb b/app/views/user_mailer/email_changed.pl.text.erb new file mode 100644 index 00000000000..134a79e9555 --- /dev/null +++ b/app/views/user_mailer/email_changed.pl.text.erb @@ -0,0 +1,13 @@ +Witaj, <%= @resource.email %>! + +<% if @resource&.unconfirmed_email? %> +Informujemy, że e-mail używany przez Ciebie na <%= @instance %> został zmieniony na <%= @resource.unconfirmed_email %>. +<% else %> +Informujemy, że e-mail używany przez Ciebie na <%= @instance %> został zmieniony na <%= @resource.email %>. +<% end %> + +Jeżeli to nie Ty, prawdopodobnie ktoś uzyskał dostęp do Twojego konta. Zalecana jest natychmiastowa zmiana hasła lub skontaktowanie się z administratorem, jeżeli nie masz dostępu do swojego konta. + +Z pozdrowieniami, + +Zespół <%= @instance %> diff --git a/app/views/user_mailer/reconfirmation_instructions.ja.html.erb b/app/views/user_mailer/reconfirmation_instructions.ja.html.erb new file mode 100644 index 00000000000..caa53032ab6 --- /dev/null +++ b/app/views/user_mailer/reconfirmation_instructions.ja.html.erb @@ -0,0 +1,13 @@ +

こんにちは<%= @resource.unconfirmed_email %>さん

+ +

<%= @instance %>で使っているメールアドレスの変更をあなたがリクエストしました。

+ +

新しいメールアドレスを確認するには次のリンクをクリックしてください:
+<%= link_to 'わたしのメールアドレスを確認する', confirmation_url(@resource, confirmation_token: @token) %>

+ +

上記のリンクがうまくいかなかった場合はこのURLをコピーしてアドレスバーに貼り付けてください:
+<%= confirmation_url(@resource, confirmation_token: @token) %> + +

また<%= link_to '利用規約', terms_url %>もご確認ください。

+ +

<%= @instance %>チームより

diff --git a/app/views/user_mailer/reconfirmation_instructions.ja.text.erb b/app/views/user_mailer/reconfirmation_instructions.ja.text.erb new file mode 100644 index 00000000000..5326e45126c --- /dev/null +++ b/app/views/user_mailer/reconfirmation_instructions.ja.text.erb @@ -0,0 +1,10 @@ +こんにちは<%= @resource.unconfirmed_email %>さん + +<%= @instance %>で使っているメールアドレスの変更をあなたがリクエストしました。 + +新しいメールアドレスを確認するには次のリンクをクリックしてください: +<%= confirmation_url(@resource, confirmation_token: @token) %> + +また利用規約もご確認ください <%= terms_url %> + +<%= @instance %>チームより diff --git a/app/views/user_mailer/reconfirmation_instructions.pl.html.erb b/app/views/user_mailer/reconfirmation_instructions.pl.html.erb new file mode 100644 index 00000000000..57cdc42e1bf --- /dev/null +++ b/app/views/user_mailer/reconfirmation_instructions.pl.html.erb @@ -0,0 +1,15 @@ +

Witaj, <%= @resource.unconfirmed_email %>!

+ +

Dokonano próby zmiany adresu e-mail, którego używasz na <%= @instance %>.

+ +

Aby potwierdzić posiadanie tego adresu e-mail, kliknij na poniższy odnośnik:
+<%= link_to 'Potwierdź mój adres e-mail', confirmation_url(@resource, confirmation_token: @token) %>

+ +

Jeżeli ten odnośnik nie działa, wklej następujący adres w pasek adresu Twojej przeglądarki:
+<%= confirmation_url(@resource, confirmation_token: @token) %> + +

Pamiętaj o przeczytaniu naszych <%= link_to 'zasad użytkowania', terms_url %>.

+ +

Z pozdrowieniami,

+ +

Zespół <%= @instance %>

diff --git a/app/views/user_mailer/reconfirmation_instructions.pl.text.erb b/app/views/user_mailer/reconfirmation_instructions.pl.text.erb new file mode 100644 index 00000000000..032718f8115 --- /dev/null +++ b/app/views/user_mailer/reconfirmation_instructions.pl.text.erb @@ -0,0 +1,12 @@ +Witaj, <%= @resource.unconfirmed_email %>! + +Dokonano próby zmiany adresu e-mail, którego używasz na <%= @instance %>. + +Aby potwierdzić posiadanie tego adresu e-mail, kliknij na poniższy odnośnik: +<%= confirmation_url(@resource, confirmation_token: @token) %> + +Pamiętaj o przeczytaniu naszych zasad użytkowania: <%= terms_url %> + +Z pozdrowieniami, + +Zespół <%= @instance %> diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml index 1a46b80b5f0..118186877be 100644 --- a/config/locales/devise.ja.yml +++ b/config/locales/devise.ja.yml @@ -18,8 +18,12 @@ ja: mailer: confirmation_instructions: subject: 'Mastodon: メールアドレスの確認' + email_changed: + subject: 'Mastodon: メールアドレスの変更' password_change: subject: 'Mastodon: パスワードが変更されました' + reconfirmation_instructions: + subject: 'Mastodon: %{instance}のメールを確認する' reset_password_instructions: subject: 'Mastodon: パスワード再発行' unlock_instructions: diff --git a/config/locales/devise.oc.yml b/config/locales/devise.oc.yml index 266f8737303..de87ac1e26f 100644 --- a/config/locales/devise.oc.yml +++ b/config/locales/devise.oc.yml @@ -18,8 +18,12 @@ oc: mailer: confirmation_instructions: subject: Mercés de confirmar vòstra inscripcion sus %{instance} + email_changed: + subject: 'Mastodon : corrièl cambiat' password_change: subject: Mastodon : senhal cambiat + reconfirmation_instructions: + subject: 'Mastodon : Confirmatz l’adreça per %{instance}' reset_password_instructions: subject: Mastodon : instruccions per reïnicializar lo senhal unlock_instructions: diff --git a/config/locales/devise.pl.yml b/config/locales/devise.pl.yml index 4b1eb2c60e4..6a296046304 100644 --- a/config/locales/devise.pl.yml +++ b/config/locales/devise.pl.yml @@ -18,8 +18,12 @@ pl: mailer: confirmation_instructions: subject: 'Mastodon: Instrukcje weryfikacji adresu e-mail' + email_changed: + subject: 'Mastodon: Zmieniono adres e-mail' password_change: - subject: 'Mastodon: Hasło zmienione' + subject: 'Mastodon: Zmieniono hasło' + reconfirmation_instructions: + subject: 'Mastodon: Potwierdź adres e-mail na &{instance}' reset_password_instructions: subject: 'Mastodon: Instrukcje ustawienia nowego hasła' unlock_instructions: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 8974a8f82ee..b3898c1f1f6 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -116,6 +116,7 @@ ja: roles: admin: 管理者 moderator: モデレーター + staff: スタッフ user: ユーザー salmon_url: Salmon URL search: 検索 @@ -160,6 +161,7 @@ ja: update_status: "%{name} さんが %{target} さんの投稿を更新しました" title: 操作履歴 custom_emojis: + by_domain: ドメイン copied_msg: 絵文字のコピーをローカルに作成しました copy: コピー copy_failed_msg: 絵文字のコピーをローカルに作成できませんでした @@ -263,12 +265,18 @@ ja: unresolved: 未解決 view: 表示 settings: + activity_api_enabled: + desc_html: ローカルに投稿されたトゥート数、アクティブなユーザー数、週ごとの新規登録者数 + title: ユーザーアクティビティに関する統計を公開する bootstrap_timeline_accounts: desc_html: 複数のユーザー名はコンマで区切ります。ローカルの公開アカウントのみ有効です。指定しない場合は管理者がデフォルトで指定されます。 title: 新規ユーザーが自動フォローするアカウント contact_information: email: ビジネスメールアドレス username: 連絡先のユーザー名 + peers_api_enabled: + desc_html: 連合内でこのインスタンスが遭遇したドメインの名前 + title: 接続しているインスタンスのリストを公開する registrations: closed_message: desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 97d20bdf8f9..40387de7035 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -265,12 +265,18 @@ oc: unresolved: Pas resolguts view: Veire settings: + activity_api_enabled: + desc_html: Nombre d’estatuts publicats, utilizaires actius e novèlas inscripcions en rapòrt setmanièr + title: Publica las estatisticas totalas de l’activitat dels utilizaires bootstrap_timeline_accounts: desc_html: Separatz los noms d’utilizaire amb de virgula. Pas que los comptes locals e pas clavats foncionaràn. Se lo camp es void los admins seràn selecionats. - title: Per defaut los nouvenguts sègon + title: Per defaut los nòuvenguts sègon contact_information: email: Picatz una adreça de corrièl username: Picatz un nom d’utilizaire + peers_api_enabled: + desc_html: Noms de domeni qu’aquesta instància a trobats pel fediverse + title: Publica la lista de las instàncias conegudas registrations: closed_message: desc_html: Afichat sus las pagina d’acuèlh quand las inscripcions son tampadas.
Podètz utilizar de balisas HTML diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 905557a259c..8b6d97b94bc 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -264,12 +264,18 @@ pl: unresolved: Nierozwiązane view: Wyświetl settings: + activity_api_enabled: + desc_html: Liczy publikowane lokalnie wpisy, aktywnych użytkowników i nowe rejestracje w ciągu danego tygodnia + title: Publikuj zbiorowe statystyki o aktywności użytkowników bootstrap_timeline_accounts: desc_html: Oddzielaj nazwy użytkowników przecinkami. Działa tylko dla niezablokowanych kont w obrębie instancji. Jeżeli puste, zostaną użyte konta administratorów instancji. title: Domyślnie obserwowani użytkownicy contact_information: email: Służbowy adres e-mail username: Nazwa użytkownika do kontaktu + peers_api_enabled: + desc_html: Nazwy domen, z którymi ta instancja wchodziła w interakcje + title: Publikuj listę znanych instancji registrations: closed_message: desc_html: Wyświetlana na stronie głównej, gdy możliwość otwarej rejestracji nie jest dostępna. Możesz korzystać z tagów HTML @@ -480,7 +486,7 @@ pl: acct: nazwa@domena nowego konta currently_redirecting: 'Obecnie Twoje konto przekierowuje do:' proceed: Zapisz - updated_msg: Pomyślnie zaktualizowano ustawienia i migracji Twojego konta! + updated_msg: Pomyślnie zaktualizowano ustawienia migracji Twojego konta! moderation: title: Moderacja notification_mailer: diff --git a/config/routes.rb b/config/routes.rb index f45684519da..075df822549 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -54,7 +54,8 @@ Rails.application.routes.draw do resources :followers, only: [:index], controller: :follower_accounts resources :following, only: [:index], controller: :following_accounts - resource :follow, only: [:create], controller: :account_follow + resources :follows, only: [:show], module: :activitypub + resource :follow, only: [:create], controller: :account_follow, as: :follows resource :unfollow, only: [:create], controller: :account_unfollow resource :outbox, only: [:show], module: :activitypub resource :inbox, only: [:create], module: :activitypub diff --git a/spec/controllers/activitypub/follows_controller_spec.rb b/spec/controllers/activitypub/follows_controller_spec.rb new file mode 100644 index 00000000000..6026cd353fc --- /dev/null +++ b/spec/controllers/activitypub/follows_controller_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ActivityPub::FollowsController, type: :controller do + let(:follow_request) { Fabricate(:follow_request, account: account) } + + render_views + + context 'with local account' do + let(:account) { Fabricate(:account, domain: nil) } + + it 'returns follow request' do + signed_request = Request.new(:get, account_follow_url(account, follow_request)) + signed_request.on_behalf_of(follow_request.target_account) + request.headers.merge! signed_request.headers + + get :show, params: { id: follow_request, account_username: account.username } + + expect(body_as_json[:id]).to eq ActivityPub::TagManager.instance.uri_for(follow_request) + expect(response).to have_http_status :success + end + + it 'returns http 404 without signature' do + get :show, params: { id: follow_request, account_username: account.username } + expect(response).to have_http_status 404 + end + end + + context 'with remote account' do + let(:account) { Fabricate(:account, domain: Faker::Internet.domain_name) } + + it 'returns http 404' do + signed_request = Request.new(:get, account_follow_url(account, follow_request)) + signed_request.on_behalf_of(follow_request.target_account) + request.headers.merge! signed_request.headers + + get :show, params: { id: follow_request, account_username: account.username } + + expect(response).to have_http_status 404 + end + end +end diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb index 6503c83e37a..9f43be35ddf 100644 --- a/spec/lib/activitypub/activity/accept_spec.rb +++ b/spec/lib/activitypub/activity/accept_spec.rb @@ -3,36 +3,49 @@ require 'rails_helper' RSpec.describe ActivityPub::Activity::Accept do let(:sender) { Fabricate(:account) } let(:recipient) { Fabricate(:account) } - - let(:json) do - { - '@context': 'https://www.w3.org/ns/activitystreams', - id: 'foo', - type: 'Accept', - actor: ActivityPub::TagManager.instance.uri_for(sender), - object: { - id: 'bar', - type: 'Follow', - actor: ActivityPub::TagManager.instance.uri_for(recipient), - object: ActivityPub::TagManager.instance.uri_for(sender), - }, - }.with_indifferent_access - end + let!(:follow_request) { Fabricate(:follow_request, account: recipient, target_account: sender) } describe '#perform' do subject { described_class.new(json, sender) } before do - Fabricate(:follow_request, account: recipient, target_account: sender) subject.perform end - it 'creates a follow relationship' do - expect(recipient.following?(sender)).to be true + context 'with concerete object representation' do + let(:json) do + { + '@context': 'https://www.w3.org/ns/activitystreams', + id: 'foo', + type: 'Accept', + actor: ActivityPub::TagManager.instance.uri_for(sender), + object: { + type: 'Follow', + actor: ActivityPub::TagManager.instance.uri_for(recipient), + object: ActivityPub::TagManager.instance.uri_for(sender), + }, + }.with_indifferent_access + end + + it 'creates a follow relationship' do + expect(recipient.following?(sender)).to be true + end end - it 'removes the follow request' do - expect(recipient.requested?(sender)).to be false + context 'with object represented by id' do + let(:json) do + { + '@context': 'https://www.w3.org/ns/activitystreams', + id: 'foo', + type: 'Accept', + actor: ActivityPub::TagManager.instance.uri_for(sender), + object: ActivityPub::TagManager.instance.uri_for(follow_request), + }.with_indifferent_access + end + + it 'creates a follow relationship' do + expect(recipient.following?(sender)).to be true + end end end end diff --git a/spec/lib/formatter_spec.rb b/spec/lib/formatter_spec.rb index e79be3645ce..67fbfe92de3 100644 --- a/spec/lib/formatter_spec.rb +++ b/spec/lib/formatter_spec.rb @@ -17,7 +17,7 @@ RSpec.describe Formatter do let(:text) { 'http://google.com' } it 'has valid URL' do - is_expected.to include 'href="http://google.com/"' + is_expected.to include 'href="http://google.com"' end end @@ -25,7 +25,7 @@ RSpec.describe Formatter do let(:text) { 'https://nic.みんな/' } it 'has valid URL' do - is_expected.to include 'href="https://nic.xn--q9jyb4c/"' + is_expected.to include 'href="https://nic.みんな/"' end it 'has display URL' do @@ -53,7 +53,7 @@ RSpec.describe Formatter do let(:text) { 'http://www.google.com!' } it 'has valid URL' do - is_expected.to include 'href="http://www.google.com/"' + is_expected.to include 'href="http://www.google.com"' end end @@ -61,7 +61,7 @@ RSpec.describe Formatter do let(:text) { "http://www.google.com'" } it 'has valid URL' do - is_expected.to include 'href="http://www.google.com/"' + is_expected.to include 'href="http://www.google.com"' end end @@ -69,7 +69,7 @@ RSpec.describe Formatter do let(:text) { 'http://www.google.com>' } it 'has valid URL' do - is_expected.to include 'href="http://www.google.com/"' + is_expected.to include 'href="http://www.google.com"' end end @@ -93,7 +93,7 @@ RSpec.describe Formatter do let(:text) { 'https://ja.wikipedia.org/wiki/日本' } it 'has valid URL' do - is_expected.to include 'href="https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC"' + is_expected.to include 'href="https://ja.wikipedia.org/wiki/日本"' end end @@ -101,7 +101,7 @@ RSpec.describe Formatter do let(:text) { 'https://ko.wikipedia.org/wiki/대한민국' } it 'has valid URL' do - is_expected.to include 'href="https://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD"' + is_expected.to include 'href="https://ko.wikipedia.org/wiki/대한민국"' end end @@ -109,7 +109,7 @@ RSpec.describe Formatter do let(:text) { 'https://baike.baidu.com/item/中华人民共和国' } it 'has valid URL' do - is_expected.to include 'href="https://baike.baidu.com/item/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD"' + is_expected.to include 'href="https://baike.baidu.com/item/中华人民共和国"' end end @@ -117,7 +117,7 @@ RSpec.describe Formatter do let(:text) { 'https://zh.wikipedia.org/wiki/臺灣' } it 'has valid URL' do - is_expected.to include 'href="https://zh.wikipedia.org/wiki/%E8%87%BA%E7%81%A3"' + is_expected.to include 'href="https://zh.wikipedia.org/wiki/臺灣"' end end diff --git a/spec/models/follow_request_spec.rb b/spec/models/follow_request_spec.rb index 7bc93a2aae8..18f61e7cbcb 100644 --- a/spec/models/follow_request_spec.rb +++ b/spec/models/follow_request_spec.rb @@ -34,4 +34,12 @@ RSpec.describe FollowRequest, type: :model do expect(follow_request.account.muting_reblogs?(target)).to be true end end + + describe '#object_type' do + let(:follow_request) { Fabricate(:follow_request) } + + it 'equals to :follow' do + expect(follow_request.object_type).to eq :follow + end + end end