From af37f4a70fe1881184c68ddc7549daf7ff568e35 Mon Sep 17 00:00:00 2001 From: "Renato \"Lond\" Cerqueira" Date: Wed, 19 Dec 2018 13:07:05 +0100 Subject: Weblate translations (2018-12-19) (#9578) * Translated using Weblate (Greek) Currently translated at 99.7% (715 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/el/ * Translated using Weblate (Czech) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/cs/ * Translated using Weblate (Japanese) Currently translated at 97.5% (699 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ja/ * Translated using Weblate (Slovak) Currently translated at 99.7% (715 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/ * Translated using Weblate (Dutch) Currently translated at 99.7% (715 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/nl/ * Translated using Weblate (Galician) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/gl/ * Translated using Weblate (Korean) Currently translated at 100.0% (717 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ko/ * Translated using Weblate (Korean) Currently translated at 100.0% (350 of 350 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ko/ * Translated using Weblate (Korean) Currently translated at 100.0% (93 of 93 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ko/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.9% (709 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/pt_BR/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.8% (91 of 93 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/pt_BR/ * Translated using Weblate (Corsican) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/co/ * Translated using Weblate (French) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/fr/ * Translated using Weblate (French) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/fr/ * Translated using Weblate (Arabic) Currently translated at 96.8% (90 of 93 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ar/ * Translated using Weblate (Arabic) Currently translated at 96.8% (694 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/ * Translated using Weblate (Dutch) Currently translated at 100,0% (717 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/nl/ * Translated using Weblate (Czech) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/cs/ * Translated using Weblate (Slovak) Currently translated at 99.7% (715 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/ * Translated using Weblate (Czech) Currently translated at 100.0% (350 of 350 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/cs/ * Translated using Weblate (Czech) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/cs/ * Translated using Weblate (Italian) Currently translated at 100,0% (93 of 93 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/it/ * Translated using Weblate (Czech) Currently translated at 99,9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/cs/ * Translated using Weblate (Catalan) Currently translated at 100,0% (93 of 93 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ca/ * Translated using Weblate (Catalan) Currently translated at 100,0% (717 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ca/ * Translated using Weblate (Czech) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/cs/ * Translated using Weblate (Occitan) Currently translated at 100,0% (350 of 350 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/oc/ * Translated using Weblate (Occitan) Currently translated at 99,7% (715 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/oc/ * Translated using Weblate (Occitan) Currently translated at 100,0% (93 of 93 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/oc/ * Translated using Weblate (Czech) Currently translated at 99.9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/cs/ * Translated using Weblate (Greek) Currently translated at 99.7% (715 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/el/ * Translated using Weblate (Greek) Currently translated at 100.0% (350 of 350 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/el/ * Translated using Weblate (French) Currently translated at 100.0% (93 of 93 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/fr/ * Translated using Weblate (German) Currently translated at 100,0% (93 of 93 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/de/ * Translated using Weblate (German) Currently translated at 99,9% (716 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/de/ * Translated using Weblate (Japanese) Currently translated at 97,5% (699 of 717 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ja/ * Translated using Weblate (Korean) Currently translated at 100,0% (350 of 350 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ko/ * Translated using Weblate (Czech) Currently translated at 100.0% (350 of 350 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/cs/ * Normalize translations * Normalize translations, remove unused, add missing plurals --- config/locales/ar.yml | 14 ++++++++++++++ config/locales/ca.yml | 21 +++++++++++++++++++++ config/locales/co.yml | 4 ++++ config/locales/cs.yml | 18 +++++++++++------- config/locales/de.yml | 11 +++++++++++ config/locales/el.yml | 16 ++++++++++------ config/locales/fr.yml | 4 ++++ config/locales/gl.yml | 4 ++++ config/locales/ko.yml | 21 +++++++++++++++++++++ config/locales/nl.yml | 4 ++++ config/locales/oc.yml | 4 ++++ config/locales/pt-BR.yml | 21 +++++++++++++++++++++ config/locales/simple_form.ar.yml | 2 ++ config/locales/simple_form.ca.yml | 4 ++++ config/locales/simple_form.de.yml | 4 ++++ config/locales/simple_form.fr.yml | 2 +- config/locales/simple_form.it.yml | 2 ++ config/locales/simple_form.ko.yml | 4 ++++ config/locales/simple_form.oc.yml | 3 +++ config/locales/simple_form.pt-BR.yml | 4 ++++ config/locales/sk.yml | 22 +++++++++++++--------- 21 files changed, 166 insertions(+), 23 deletions(-) (limited to 'config/locales') diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 4de1e4e26..2fa075273 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -393,6 +393,9 @@ ar: preview_sensitive_media: desc_html: روابط المُعَاينة على مواقع الويب الأخرى ستقوم بعرض صُوَر مصغّرة حتى و إن كانت الوسائط حساسة title: إظهار الصور الحساسة في مُعاينات أوبن غراف + profile_directory: + desc_html: السماح للمستخدمين الكشف عن حساباتهم + title: تفعيل سجل الملفات الشخصية registrations: closed_message: desc_html: يتم عرضه على الصفحة الرئيسية عندما يتم غلق تسجيل الحسابات الجديدة. يمكنكم إستخدام علامات الأيتش تي أم أل HTML @@ -460,8 +463,10 @@ ar: tags: accounts: الحسابات hidden: المخفية + hide: الإخفاء عن سجل الحسابات name: الوسم title: الوسوم + unhide: إظهاره في سجل حسابات المستخدمين visible: ظاهر title: الإدارة admin_mailer: @@ -540,7 +545,16 @@ ar: success_msg: تم حذف حسابك بنجاح warning_title: توافر المحتوى المنشور و المبعثَر directories: + directory: سِجلّ الحسابات + explanation: استكشف مستخدِمين آخرين حسب المواضيع التي تهمهم explore_mastodon: استكشف %{title} + people: + few: "%{count} شخص" + many: "%{count} شخص" + one: "%{count} شخص" + other: "%{count} شخص" + two: "%{count} شخص" + zero: "%{count} شخص" errors: '403': ليس لك الصلاحيات الكافية لعرض هذه الصفحة. '404': إنّ الصفحة التي تبحث عنها لا وجود لها أصلا. diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 9540c9a41..1575b32ea 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -48,6 +48,7 @@ ca: other: Seguidors following: Seguint joined: Unit des de %{date} + last_active: darrer actiu link_verified_on: La propietat d'aquest enllaç s'ha verificat el %{date} media: Mèdia moved_html: "%{name} s'ha mogut a %{new_profile_link}:" @@ -114,6 +115,7 @@ ca: media_attachments: Adjunts multimèdia memorialize: Converteix-lo en memorial moderation: + active: Actiu all: Tot silenced: Silenciat suspended: Suspès @@ -227,6 +229,7 @@ ca: config: Configuració feature_deletions: Supressions del compte feature_invites: Enllaços de convits + feature_profile_directory: Directori de perfils feature_registrations: Registres feature_relay: Relay de la Federació features: Característiques @@ -374,6 +377,9 @@ ca: preview_sensitive_media: desc_html: Les visualitzacions prèvies d'enllaços d'altres llocs web mostraran una miniatura encara que els mitjans de comunicació estiguin marcats com a sensibles title: Mostra els mitjans sensibles a les previsualitzacions d'OpenGraph + profile_directory: + desc_html: Permet als usuaris ser descoberts + title: Habilita el directori de perfils registrations: closed_message: desc_html: Apareix en la primera pàgina quan es tanquen els registres. Pots utilitzar etiquetes HTML @@ -439,6 +445,14 @@ ca: proceed: Procedeix title: Suspèn %{acct} warning_html: 'Suspenen aquest compte esborrarà irreversiblement les dades del compte, incloent:' + tags: + accounts: Comptes + hidden: Amagat + hide: Ocult del directori + name: Etiqueta + title: Etiquetes + unhide: Mostra en el directori + visible: Visible title: Administració admin_mailer: new_report: @@ -517,6 +531,13 @@ ca: success_msg: El compte s'ha eliminat correctament warning_html: Només és garantida l'eliminació d'aquesta particular instància. El contingut que s'ha compartit àmpliament deixa petjades. Els servidors fora de línia i els que ja no estan subscrits no actualitzaran les seves bases de dades. warning_title: Disponibilitat de contingut disseminat + directories: + directory: Directori de perfils + explanation: Descobreix usuaris segons els seus interessos + explore_mastodon: Explora %{title} + people: + one: "%{count} persona" + other: "%{count} gent" errors: '403': No tens permís per a veure aquesta pàgina. '404': La pàgina que estàs cercant no existeix. diff --git a/config/locales/co.yml b/config/locales/co.yml index 80d2decd3..c15f241c6 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -229,6 +229,7 @@ co: config: Cunfigurazione feature_deletions: Sguassamenti di conti feature_invites: Ligami d'invitazione + feature_profile_directory: Annuariu di i prufili feature_registrations: Arregistramenti feature_relay: Ripetitore di federazione features: Funziunalità @@ -376,6 +377,9 @@ co: preview_sensitive_media: desc_html: E priviste di i ligami nant'à l'altri siti mustreranu una vignetta ancu s'ellu hè marcatu cum'è sensibile u media title: Vede media sensibili in e viste OpenGraph + profile_directory: + desc_html: Auturizà a scuperta di l'utilizatori + title: Attivà l'annuariu di i prufili registrations: closed_message: desc_html: Affissatu nant’a pagina d’accolta quandu l’arregistramenti sò chjosi. Pudete fà usu di u furmattu HTML diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 1bba55f0f..d25ca6c2c 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -57,7 +57,7 @@ cs: moved_html: 'Účet %{name} byl přesunut na %{new_profile_link}:' network_hidden: Tato informace není k dispozici nothing_here: Tady nic není! - people_followed_by: Lidé, které %{name} sleduje + people_followed_by: Lidé, které sleduje %{name} people_who_follow: Lidé, kteří sledují uživatele %{name} pin_errors: following: Musíte již sledovat osobu, kterou chcete podpořit @@ -107,7 +107,7 @@ cs: feed_url: URL proudu followers: Sledovatelé followers_url: URL sledovatelů - follows: Sleduje + follows: Sledovaní inbox_url: URL přijatých zpráv ip: IP location: @@ -233,6 +233,7 @@ cs: config: Konfigurace feature_deletions: Smazání účtů feature_invites: Pozvánky + feature_profile_directory: Adresář profilů feature_registrations: Registrace feature_relay: Federovací most features: Vlastnosti @@ -362,7 +363,7 @@ cs: title: Publikovat hromadné statistiky o uživatelské aktivitě bootstrap_timeline_accounts: desc_html: Je-li uživatelskch jmen více, oddělujte je čárkami. Lze zadat pouze místní a odemknuté účty. Je-li tohle prázdné, jsou výchozí hodnotou všichni místní administrátoři. - title: Výchozí sledování pro nové uživatele + title: Výchozí sledovaní pro nové uživatele contact_information: email: Pracovní e-mail username: Uživatelské jméno kontaktu @@ -381,6 +382,9 @@ cs: preview_sensitive_media: desc_html: Náhledy odkazů na jiných stránkách budou zobrazeny i pokud jsou media označena jako citlivá title: Zobrazovat v náhledech OpenGraph i citlivá média + profile_directory: + desc_html: Dovolit uživatelům být objevitelní + title: Povolit adresář profilů registrations: closed_message: desc_html: Zobrazí se na hlavní stránce, jsou-li registrace uzavřeny. Můžete použít i HTML značky @@ -392,7 +396,7 @@ cs: disabled: Nikdo title: Povolit pozvánky od open: - desc_html: Povolit každému vytvořit si účet + desc_html: Dovolit každému vytvořit si účet title: Zpřístupnit registraci show_known_fediverse_at_about_page: desc_html: Je-li toto zapnuto, zobrazí se v náhledu tooty ze všech známých serverů na fediverse. Jinak budou zobrazeny pouze místní tooty. @@ -605,7 +609,7 @@ cs: validation_errors: few: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyby níže one: Něco ještě není úplně v pořádku! Prosím zkontrolujte chybu níže - other: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyb níže + other: Něco není úplně v pořádku! Prosím zkontrolujte %{count} pochybení níže imports: preface: Můžete importovat data, která jste exportoval/a z jiné instance, jako například seznam lidí, které sledujete či blokujete. success: Vaše data byla úspěšně nahrána a nyní budou zpracována v daný čas @@ -660,7 +664,7 @@ cs: new_followers_summary: few: Navíc jste získal/a %{count} nové sledovatele, zatímco jste byl/a pryč! Hurá! one: Navíc jste získal/a jednoho nového sledovatele, zatímco jste byl/a pryč! Hurá! - other: Navíc jste získal/a %{count} nových sledovatelů, zatímco jste byl/a pryč! Hurá! + other: Taktéž jste získal/a %{count} nových sledovatelů, zatímco jste byl/a pryč! Vynikající! subject: few: "%{count} nová oznámení od vaší poslední návštěvy \U0001F418" one: "1 nové oznámení od vaší poslední návštěvy \U0001F418" @@ -825,7 +829,7 @@ cs: diff --git a/config/locales/de.yml b/config/locales/de.yml index 988fa45a6..945d5a0ff 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -229,6 +229,7 @@ de: config: Konfiguration feature_deletions: Kontolöschung feature_invites: Einladungslinks + feature_profile_directory: Profilverzeichnis feature_registrations: Registrierung feature_relay: Föderations-Relay features: Eigenschaften @@ -376,6 +377,9 @@ de: preview_sensitive_media: desc_html: Linkvorschauen auf anderen Webseiten werden ein Vorschaubild anzeigen, obwohl die Medien als heikel gekennzeichnet sind title: Heikle Medien in OpenGraph-Vorschauen anzeigen + profile_directory: + desc_html: Erlaube Benutzer auffindbar zu sein + title: Aktiviere Profilverzeichnis registrations: closed_message: desc_html: Wird auf der Frontseite angezeigt, wenn die Registrierung geschlossen ist. Du kannst HTML-Tags benutzen @@ -527,6 +531,13 @@ de: success_msg: Dein Konto wurde erfolgreich gelöscht warning_html: Wir können nur dafür garantieren, dass die Inhalte auf dieser einen Instanz gelöscht werden. Bei Inhalten, die weit verbreitet wurden, ist es wahrscheinlich, dass Spuren bleiben werden. Server, die offline sind oder keine Benachrichtigungen von deinem Konto mehr empfangen, werden ihre Datenbanken nicht bereinigen. warning_title: Verfügbarkeit verstreuter Inhalte + directories: + directory: Profilverzeichnis + explanation: Entdecke Benutzer basierend auf deren Interessen + explore_mastodon: Entdecke %{title} + people: + one: "%{count} Person" + other: "%{count} Leute" errors: '403': Dir fehlt die Befugnis, diese Seite sehen zu können. '404': Diese Seite existiert nicht. diff --git a/config/locales/el.yml b/config/locales/el.yml index 9d41f353f..66393f213 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -19,7 +19,7 @@ el: humane_approach_body: Μαθαίνοντας από τις αποτυχίες άλλων δικτύων, το Mastodon στοχεύει να κάνει σχεδιαστικά ηθικές επιλογές για να καταπολεμήσει την κακόβουλη χρήση των κοινωνικών δικτύων. humane_approach_title: Μια πιο ανθρώπινη προσέγγιση not_a_product_body: Το Mastodon δεν είναι ένα εμπορικό δίκτυο. Δεν έχει διαφημίσεις, δεν έχει εξόρυξη δεδομένων, δεν έχει περιφραγμένους κήπους. Δεν υπάρχει κεντρικό σημείο ελέγχου. - not_a_product_title: Είσαι ένας άνθρωπος, όχι κάποιο προϊόν + not_a_product_title: Είσαι άνθρωπος, όχι προϊόν real_conversation_body: Με 500 χαρακτήρες στη διάθεσή σου και υποστήριξη για λεπτομερή έλεγχο και προειδοποιήσεις πολυμέσων, μπορείς να εκφραστείς με τον τρόπο που θέλεις. real_conversation_title: Φτιαγμένο για αληθινή συζήτηση within_reach_body: Οι πολλαπλές εφαρμογές για το iOS, το Android και τις υπόλοιπες πλατφόρμες, χάρη σε ένα φιλικό προς τους προγραμματιστές οικοσύστημα API, σου επιτρέπουν να κρατάς επαφή με τους φίλους και τις φίλες σου οπουδήποτε. @@ -222,13 +222,14 @@ el: title: Προσαρμοσμένα emoji unlisted: Μη καταχωρημένα update_failed_msg: Αδυναμία ενημέρωσης του emoji - updated_msg: Επιτυχής ενημέρωση του Emoji! + updated_msg: Επιτυχής ενημέρωση του emoji! upload: Ανέβασμα dashboard: backlog: χρονοκαθυστερημένες εργασίες config: Διαμόρφωση feature_deletions: Διαγραφή λογαριασμών feature_invites: Σύνδεσμοι προσκλήσεων + feature_profile_directory: Κατάλογος χρηστών feature_registrations: Εγγραφές feature_relay: Ανταποκριτής ομοσπονδίας features: Λειτουργίες @@ -267,7 +268,7 @@ el: noop: Κανένα silence: Αποσιώπηση suspend: Αναστολή - severity: Αυστηρότητα + severity: Βαρύτητα show: affected_accounts: one: Επηρεάζεται ένας λογαριασμός στη βάση δεδομένων @@ -331,14 +332,14 @@ el: assigned: Αρμόδιος συντονιστής comment: none: Κανένα - created_at: Αναφέρθηκε + created_at: Καταγγέλθηκε mark_as_resolved: Σημειωμένο ως επιλυμένο mark_as_unresolved: Σημειωμένο ως ανεπίλυτο notes: create: Πρόσθεσε σημείωση create_and_resolve: Επίλυσε με σημείωση create_and_unresolve: Ξανάνοιξε με σημείωση - delete: Διέγραψε + delete: Διαγραφή placeholder: Περιέγραψε τις ενέργειες που έγιναν, ή οποιαδήποτε άλλη ενημέρωση... reopen: Ξανάνοιξε την καταγγελία report: 'Καταγγελία #%{id}' @@ -376,6 +377,9 @@ el: preview_sensitive_media: desc_html: Οι προεπισκοπήσεις συνδέσμων σε τρίτους ιστότοπους θα είναι ορατές ακόμα κι όταν το πολυμέσο έχει σημειωθεί ως ευαίσθητο title: Εμφάνιση ευαίσθητων πολυμέσων στις προεπισκοπήσεις OpenGraph + profile_directory: + desc_html: Να επιτρέπεται ο εντοπισμός των χρηστών + title: Ενεργοποίηση του καταλόγου χρηστών registrations: closed_message: desc_html: Εμφανίζεται στην εισαγωγική σελίδα όταν οι εγγραφές είναι κλειστές. Μπορείς να χρησιμοποιήσεις HTML tags @@ -508,7 +512,7 @@ el: datetime: distance_in_words: about_x_hours: "%{count}ω" - about_x_months: "%{count}μη" + about_x_months: "%{count}μ" about_x_years: "%{count}ε" almost_x_years: "%{count}ε" half_a_minute: Μόλις τώρα diff --git a/config/locales/fr.yml b/config/locales/fr.yml index c171d9342..3d33cd40c 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -229,6 +229,7 @@ fr: config: Configuration feature_deletions: Suppressions de comptes feature_invites: Liens d’invitation + feature_profile_directory: Annuaire des profils feature_registrations: Inscriptions feature_relay: Relais de fédération features: Fonctionnalités @@ -376,6 +377,9 @@ fr: preview_sensitive_media: desc_html: Les liens de prévisualisation sur les autres sites web afficheront une vignette même si le média est sensible title: Afficher les médias sensibles dans les prévisualisations OpenGraph + profile_directory: + desc_html: Permettre aux utilisateurs d'être découverts + title: Activer l'annuaire des profils registrations: closed_message: desc_html: Affiché sur la page d’accueil lorsque les inscriptions sont fermées
Vous pouvez utiliser des balises HTML diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 5f4e420cb..de1557fb9 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -229,6 +229,7 @@ gl: config: Axustes feature_deletions: Borrado de contas feature_invites: Ligazóns de convite + feature_profile_directory: Directorio do perfil feature_registrations: Rexistros feature_relay: Repetidores de federación features: Características @@ -376,6 +377,9 @@ gl: preview_sensitive_media: desc_html: A vista previa de ligazóns de outros sitios web mostrará unha imaxe incluso si os medios están marcados como sensibles title: Mostrar medios sensibles con vista previa OpenGraph + profile_directory: + desc_html: Permitir que as usuarias poidan ser descubertas + title: Activar o directorio de perfil registrations: closed_message: desc_html: Mostrado na páxina de portada cando o rexistro está pechado. Pode utilizar etiquetas HTML diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 7c948e8ba..40dab2d79 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -48,6 +48,7 @@ ko: other: 팔로워 following: 팔로잉 joined: "%{date}에 가입함" + last_active: 최근 활동 link_verified_on: "%{date}에 이 링크의 소유가 확인되었습니다" media: 미디어 moved_html: "%{name}은 %{new_profile_link}으로 이동되었습니다:" @@ -114,6 +115,7 @@ ko: media_attachments: 첨부된 미디어 memorialize: 메모리엄으로 전환 moderation: + active: 활동 all: 전체 silenced: 침묵 중 suspended: 정지 중 @@ -227,6 +229,7 @@ ko: config: 설정 feature_deletions: 계정 삭제 feature_invites: 초대 링크 + feature_profile_directory: 프로필 디렉토리 feature_registrations: 가입 feature_relay: 연합 릴레이 features: 기능 @@ -376,6 +379,9 @@ ko: preview_sensitive_media: desc_html: 민감한 미디어로 설정되었더라도 다른 웹사이트에서 링크 미리보기에 썸네일을 보여줍니다 title: 민감한 미디어를 오픈그래프 미리보기에 보여주기 + profile_directory: + desc_html: 유저들이 발견 될 수 있도록 허용 + title: 프로필 디렉토리 활성화 registrations: closed_message: desc_html: 신규 등록을 받지 않을 때 프론트 페이지에 표시됩니다. HTML 태그를 사용할 수 있습니다 @@ -441,6 +447,14 @@ ko: proceed: 완전히 정지시키기 title: "%{acct} 정지하기" warning_html: '이 계정을 정지하면 계정의 데이터를 모두 삭제하며 되돌릴 수 없습니다. 이것은 다음을 포함합니다:' + tags: + accounts: 계정들 + hidden: 숨겨짐 + hide: 디렉토리에서 숨기기 + name: 해시태그 + title: 해시태그 + unhide: 디렉토리에 표시 + visible: 보여짐 title: 관리 admin_mailer: new_report: @@ -519,6 +533,13 @@ ko: success_msg: 계정이 성공적으로 삭제되었습니다 warning_html: 삭제가 보장되는 것은 이 인스턴스 상에서의 컨텐츠에 한합니다. 타 인스턴스 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다. warning_title: 공유된 컨텐츠에 대해서 + directories: + directory: 프로필 디렉토리 + explanation: 관심사에 대한 유저들을 발견합니다 + explore_mastodon: "%{title} 탐사하기" + people: + one: "%{count}명" + other: "%{count}명" errors: '403': 이 페이지를 표시할 권한이 없습니다. '404': 당신이 찾으려는 페이지는 존재하지 않습니다. diff --git a/config/locales/nl.yml b/config/locales/nl.yml index b5229d241..d0578bc74 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -229,6 +229,7 @@ nl: config: Configuratie feature_deletions: Verwijderen van account feature_invites: Uitnodigingen + feature_profile_directory: Gebruikersgids feature_registrations: Registraties feature_relay: Federatierelay features: Functies @@ -376,6 +377,9 @@ nl: preview_sensitive_media: desc_html: Linkvoorvertoningen op andere websites hebben een thumbnail, zelfs als een afbeelding of video als gevoelig is gemarkeerd title: Gevoelige afbeeldingen en video's in OpenGraph-voorvertoningen tonen + profile_directory: + desc_html: Gebruikers toestaan om vindbaar te zijn + title: Gebruikersgids inschakelen registrations: closed_message: desc_html: Wordt op de voorpagina weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld
En ook hier kan je HTML gebruiken diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 9015997fc..0468fac86 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -229,6 +229,7 @@ oc: config: Configuracion feature_deletions: Supressions de comptes feature_invites: Ligams convidat + feature_profile_directory: Annuari de perfils feature_registrations: Inscripcions feature_relay: Relai de federacion features: Foncionalitats @@ -376,6 +377,9 @@ oc: preview_sensitive_media: desc_html: Los apercebuts dels ligams sus los autres sites mostraràn una vinheta encara que lo mèdia siá marcat coma sensible title: Mostrar los mèdias sensibles dins los apercebuts OpenGraph + profile_directory: + desc_html: Permet als utilizaires d’èsser trobats + title: Activar l’annuari de perfils registrations: closed_message: desc_html: Mostrat sus las pagina d’acuèlh quand las inscripcions son tampadas.
Podètz utilizar de balisas HTML diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index e774def3c..27f3b820c 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -48,6 +48,7 @@ pt-BR: other: Seguidores following: Seguindo joined: Participa desde %{date} + last_active: última atividade link_verified_on: A posse desse link foi checada em %{date} media: Mídia moved_html: "%{name} se mudou para %{new_profile_link}:" @@ -114,6 +115,7 @@ pt-BR: media_attachments: Mídia(s) anexada(s) memorialize: Tornar um memorial moderation: + active: Ativo all: Todos silenced: Silenciados suspended: Suspensos @@ -227,6 +229,7 @@ pt-BR: config: Configuração feature_deletions: Remoção de contas feature_invites: Convites + feature_profile_directory: Diretório de perfis feature_registrations: Cadastros feature_relay: Repetidor da federação features: Funcionalidades @@ -374,6 +377,9 @@ pt-BR: preview_sensitive_media: desc_html: A pré-visualização do link em outros sites vai incluir uma miniatura mesmo se a mídia estiver marcada como sensível title: Mostrar mídia sensível em pré-visualizações OpenGraph + profile_directory: + desc_html: Permitir que usuários possam ser descobertos + title: Ativar diretório de perfis registrations: closed_message: desc_html: Exibido na página inicial quando cadastros estão fechados. Você pode usar tags HTML @@ -439,6 +445,14 @@ pt-BR: proceed: Prosseguir title: Suspender %{acct} warning_html: 'Suspender essa conta vai remover irreversivelmente dados dessa conta, o que inclui:' + tags: + accounts: Contas + hidden: Escondido + hide: Esconder do diretório + name: Hashtag + title: Hashtags + unhide: Mostrar no diretório + visible: Visível title: Administração admin_mailer: new_report: @@ -517,6 +531,13 @@ pt-BR: success_msg: A sua conta foi excluída com sucesso warning_html: Apenas a exclusão de conteúdo desta instância em particular é garantida. Conteúdo que tenha sido largamente compartilhado muito provavelmente deixará traços. Servidores offline e servidores que se desinscreveram de suas atualizações não irão atualizar as suas bases de dados. warning_title: Disponibilidade de conteúdo disseminado + directories: + directory: Diretório de perfis + explanation: Descobrir usuários baseado em seus interesses + explore_mastodon: Explorar %{title} + people: + one: "%{count} pessoas" + other: "%{count} pessoa" errors: '403': Você não tem permissão para ver esta página. '404': A página pela qual você está procurando não existe. diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index cdd3ddf25..ae05d9e7f 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -47,6 +47,7 @@ ar: context: تصفية السياقات current_password: كلمة السر الحالية data: البيانات + discoverable: القيام بإدراج هذا الحساب في قائمة دليل الحسابات display_name: الإسم المعروض email: عنوان البريد الإلكتروني expires_in: تنتهي مدة صلاحيته بعد @@ -62,6 +63,7 @@ ar: otp_attempt: رمز المصادقة بخطوتين password: كلمة السر phrase: كلمة مفتاح أو عبارة + setting_aggregate_reblogs: جمع الترقيات في خيوط زمنية setting_auto_play_gif: تشغيل تلقائي لِوَسائط جيف المتحركة setting_boost_modal: إظهار مربع حوار للتأكيد قبل ترقية أي تبويق setting_default_language: لغة النشر diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index a895d38d0..ef12bb6a7 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -8,6 +8,7 @@ ca: bot: Aquest compte realitza principalment accions automatitzades i pot no estar controlat per cap persona context: Un o diversos contextos on s'ha d'aplicar el filtre digest: Només s'envia després d'un llarg període d'inactivitat amb un resum de les mencions que has rebut en la teva absència + discoverable_html: El directori permet trobar usuaris en funció dels interessos i activitat. Requereix almenys %{min_followers} seguidors email: Se t'enviarà un correu electrònic de confirmació fields: Pots tenir fins a 4 elements que es mostren com a taula al teu perfil header: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px @@ -18,6 +19,7 @@ ca: password: Utilitza com a mínim 8 caràcters phrase: Es combinarà independentment del format en el text o l'avís de contingut d'un toot scopes: A quines API es permetrà l'accés a l'aplicació. Si selecciones un àmbit d'alt nivell, no cal que seleccionis un d'individual. + setting_aggregate_reblogs: No mostra els nous impulsos dels toots que ja s'han impulsat recentment (només afecta als impulsos nous rebuts) setting_default_language: La llengua dels teus toots pot ser detectada automàticament però no sempre acuradament setting_display_media_default: Amaga els multimèdia marcats com a sensibles setting_display_media_hide_all: Sempre oculta tots els multimèdia @@ -48,6 +50,7 @@ ca: context: Filtre els contextos current_password: Contrasenya actual data: Informació + discoverable: Mostra aquest compte en el directori display_name: Nom visible email: Adreça de correu electrònic expires_in: Expira després @@ -63,6 +66,7 @@ ca: otp_attempt: Codi de dos factors password: Contrasenya phrase: Paraula clau o frase + setting_aggregate_reblogs: Agrupa impulsos en les línies de temps setting_auto_play_gif: Reproducció automàtica de GIFs animats setting_boost_modal: Mostra la finestra de confirmació abans d'impulsar setting_default_language: Llengua de les publicacions diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 9c2defd9e..8b9ca1b17 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -8,6 +8,7 @@ de: bot: Dieses Konto führt lediglich automatisierte Aktionen durch und wird möglicherweise nicht überwacht context: Ein oder mehrere Aspekte, wo der Filter greifen soll digest: Wenn du lange Zeit inaktiv bist, wird dir eine Zusammenfassung von Erwähnungen in deiner Abwesenheit zugeschickt + discoverable_html: Das Verzeichnis lässt dich neue Benutzerkonten finden basierend auf Interessen und Aktivitäten. Dies benötigt mindestens %{min_followers} Follower email: Du wirst ein Bestätigungs-E-Mail erhalten fields: Du kannst bis zu 4 Elemente als Tabelle dargestellt auf deinem Profil anzeigen lassen header: PNG, GIF oder JPG. Maximal %{size}. Wird auf %{dimensions} px herunterskaliert @@ -18,6 +19,7 @@ de: password: Verwende mindestens 8 Zeichen phrase: Wird unabhängig vom umgebenen Text oder Inhaltswarnung eines Beitrags verglichen scopes: Welche Schnittstellen der Applikation erlaubt sind. Wenn du einen Top-Level-Scope auswählst, dann musst du nicht jeden einzelnen darunter auswählen. + setting_aggregate_reblogs: Zeige keine neuen Boosts für Beiträge, die nicht kürzlich geboostet wurden (dies betrifft nur neulich erhaltene Boosts) setting_default_language: Die Sprache der Beiträge kann automatisch erkannt werden, aber dies ist nicht immer genau setting_display_media_default: Verstecke Medien, die als sensibel markiert sind setting_display_media_hide_all: Alle Medien immer verstecken @@ -48,6 +50,7 @@ de: context: Aspekte filtern current_password: Derzeitiges Passwort data: Daten + discoverable: Dieses Benutzerkonto im Verzeichnis auflisten display_name: Anzeigename email: E-Mail-Adresse expires_in: Läuft ab @@ -63,6 +66,7 @@ de: otp_attempt: Zwei-Faktor-Authentisierungs-Code password: Passwort phrase: Schlagwort oder Phrase + setting_aggregate_reblogs: Gruppenboosts in Zeitleisten setting_auto_play_gif: Animierte GIFs automatisch abspielen setting_boost_modal: Bestätigungsdialog anzeigen, bevor ein Beitrag geteilt wird setting_default_language: Beitragssprache diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index d68bee6c8..c7cdcfe08 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -8,7 +8,7 @@ fr: bot: Ce compte exécute principalement des actions automatisées et pourrait ne pas être surveillé context: Un ou plusieurs contextes où le filtre devrait s’appliquer digest: Uniquement envoyé après une longue période d’inactivité et uniquement si vous avez reçu des messages personnels pendant votre absence - discoverable_html: Le répertoire permet aux gens de trouver des comptes en se basant sur les intérêts et les activités. Nécessite au moins %{min_followers} 2 abonnés + discoverable_html: L'annuaire permet aux gens de trouver des comptes en se basant sur les intérêts et les activités. Nécessite au moins %{min_followers} abonnés email: Vous recevrez un courriel de confirmation fields: Vous pouvez avoir jusqu’à 4 éléments affichés en tant que tableau sur votre profil header: Au format PNG, GIF ou JPG. %{size} maximum. Sera réduit à %{dimensions}px diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index 0fc1b5ba6..591b3ab0a 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -19,6 +19,7 @@ it: password: Usa almeno 8 caratteri phrase: Il confronto sarà eseguito ignorando minuscole/maiuscole e i content warning scopes: A quali API l'applicazione potrà avere accesso. Se selezionate un ambito di alto livello, non c'è bisogno di selezionare quelle singole. + setting_aggregate_reblogs: Non mostrare nuove condivisioni per toot che sono stati condivisi di recente (ha effetto solo sulle nuove condivisioni) setting_default_language: La lingua dei tuoi toot può essere individuata automaticamente, ma il risultato non è sempre accurato setting_display_media_default: Nascondi media segnati come sensibili setting_display_media_hide_all: Nascondi sempre tutti i media @@ -65,6 +66,7 @@ it: otp_attempt: Codice due-fattori password: Password phrase: Parola chiave o frase + setting_aggregate_reblogs: Raggruppa condivisioni in timeline setting_auto_play_gif: Play automatico GIF animate setting_boost_modal: Mostra dialogo di conferma prima del boost setting_default_language: Lingua dei post diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index 86a459110..02583b5bc 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -8,6 +8,7 @@ ko: bot: 사람들에게 계정이 사람이 아님을 알립니다 context: 필터를 적용 할 한 개 이상의 컨텍스트 digest: 오랫동안 활동하지 않았을 때 받은 멘션들에 대한 요약 받기 + discoverable_html: 디렉토리 는 사람들의 관심사와 활동에 관련 된 계정들을 찾을 수 있게 해 줍니다. 최소 %{min_followers}명의 팔로어가 필요합니다 email: 당신은 확인 메일을 받게 됩니다 fields: 당신의 프로파일에 최대 4개까지 표 형식으로 나타낼 수 있습니다 header: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 다운스케일 됨 @@ -18,6 +19,7 @@ ko: password: 최소 8글자 phrase: 툿 내용이나 CW 내용 안에서 대소문자 구분 없이 매칭 됩니다 scopes: 애플리케이션에 허용할 API들입니다. 최상위 스코프를 선택하면 개별적인 것은 선택하지 않아도 됩니다. + setting_aggregate_reblogs: 내가 부스트 했던 툿은 새로 부스트 되어도 보여주지 않습니다 setting_default_language: 작성한 툿의 언어는 자동으로 인식할 수 있지만, 언제나 정확한 건 아닙니다 setting_display_media_default: 민감함으로 설정 된 미디어 가리기 setting_display_media_hide_all: 항상 모든 미디어를 가리기 @@ -48,6 +50,7 @@ ko: context: 필터 컨텍스트 current_password: 현재 비밀번호 입력 data: 데이터 + discoverable: 이 계정을 디렉토리에서 찾을 수 있도록 합니다 display_name: 표시되는 이름 email: 이메일 주소 expires_in: 만료시각 @@ -63,6 +66,7 @@ ko: otp_attempt: 2단계 인증 코드 password: 비밀번호 phrase: 키워드 또는 문장 + setting_aggregate_reblogs: 타임라인의 부스트를 그룹화 setting_auto_play_gif: 애니메이션 GIF를 자동 재생 setting_boost_modal: 부스트 전 확인 창을 표시 setting_default_language: 게시물 언어 diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml index 8694952e5..3ceed0ed4 100644 --- a/config/locales/simple_form.oc.yml +++ b/config/locales/simple_form.oc.yml @@ -19,6 +19,7 @@ oc: password: Utilizatz almens 8 caractèrs phrase: Serà pres en compte que siá en majuscula o minuscula o dins un avertiment de contengut sensible scopes: A quinas APIs poiràn accedir las aplicacions. Se seleccionatz un encastre de naut nivèl, fa pas mestièr de seleccionar los nivèls mai basses. + setting_aggregate_reblogs: Mostrar pas los nòus partatges que son estats partejats recentament (afecta pas que los nòus partatges recebuts) setting_default_language: La lenga de vòstres tuts pòt èsser detectada automaticament, mas de còps es pas corrèctament determinada setting_display_media_default: Rescondre los mèdias marcats coma sensibles setting_display_media_hide_all: Totjorn rescondre los mèdias @@ -49,6 +50,7 @@ oc: context: Contèxte del filtre current_password: Senhal actual data: Donadas + discoverable: Far aparéisser aqueste compte a l’annuari display_name: Escais email: Corrièl expires_in: Expira aprèp @@ -64,6 +66,7 @@ oc: otp_attempt: Còdi Two-factor password: Senhal phrase: Senhal o frasa + setting_aggregate_reblogs: Agropar los partatges dins lo flux d’actualitat setting_auto_play_gif: Lectura automatica dels GIFS animats setting_boost_modal: Afichar una fenèstra de confirmacion abans de partejar un estatut setting_default_language: Lenga de publicacion diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 71aff333e..3d4e7414d 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -8,6 +8,7 @@ pt-BR: bot: Essa conta executa principalmente ações automatizadas e pode não ser monitorada context: Um ou mais contextos onde o filtro deve ser aplicado digest: Enviado após um longo período de inatividade com um resumo das menções que você recebeu em sua ausência + discoverable_html: O diretório permite encontrar contas baseado em seus interesses e atividades. Requer pelo menos %{min_followers} seguidores email: Você receberá um email de confirmação fields: Você pode ter até 4 itens exibidos em forma de tabela no seu perfil header: PNG, GIF or JPG. Arquivos de até %{size}. Eles serão diminuídos para %{dimensions}px @@ -18,6 +19,7 @@ pt-BR: password: Use pelo menos 8 caracteres phrase: Vai coincidir, independente de maiúsculas ou minúsculas, no texto ou no aviso de conteúdo de um toot scopes: Quais APIs a aplicação vai ter permissão de acessar. Se você selecionar um escopo de alto nível, você não precisa selecionar individualmente os outros. + setting_aggregate_reblogs: Não mostrar novos compartilhamentos para toots que foram compartilhados recentemente (afeta somente novos compartilhamentos recebidos) setting_default_language: O idioma de seus toots pode ser detectado automaticamente, mas isso nem sempre é preciso setting_display_media_default: Esconder mídia marcada como sensível setting_display_media_hide_all: Sempre esconder todas as mídias @@ -48,6 +50,7 @@ pt-BR: context: Contextos de filtro current_password: Senha atual data: Dados + discoverable: Listar essa conta no diretório display_name: Nome de exibição email: Endereço de e-mail expires_in: Expira em @@ -63,6 +66,7 @@ pt-BR: otp_attempt: Código de autenticação em dois passos password: Senha phrase: Palavra-chave ou frase + setting_aggregate_reblogs: Agrupar compartilhamentos nas timelines setting_auto_play_gif: Reproduzir GIFs automaticamente setting_boost_modal: Mostrar diálogo de confirmação antes de compartilhar postagem setting_default_language: Idioma das postagens diff --git a/config/locales/sk.yml b/config/locales/sk.yml index bea4ac334..3458c699c 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -233,6 +233,7 @@ sk: config: Nastavenia feature_deletions: Vymazanie účtov feature_invites: Pozvánky + feature_profile_directory: Katalóg profilov feature_registrations: Registrácie feature_relay: Federovací mostík features: Vymoženosti @@ -381,6 +382,9 @@ sk: preview_sensitive_media: desc_html: Náhľad adresy z iných instancií, bude zobrazený aj vtedy, keď sú dané médiá označené ako senzitívne title: Ukazuj aj chúlostivé médiá v náhľadoch OpenGraph + profile_directory: + desc_html: Povoliť užívateľom aby boli nájdení + title: Zapni profilový katalóg registrations: closed_message: desc_html: Toto sa zobrazí na hlavnej stránke v prípade že sú registrácie uzavreté. Možno tu použiť aj HTML kód @@ -533,7 +537,7 @@ sk: warning_html: Iba vymazanie obsahu z tejto konkrétnej instancie je zaručené. Obsah, ktorý bol zdieľaný široko-ďaleko pravdepodobne zanechá nejaké stopy. Servery ktoré sú offline a tie ktoré ignorujú tvoje zmeny teda nezaktualizujú svoje databázy. warning_title: Dostupnosť rozšírovaného obsahu directories: - directory: Databáza profilov + directory: Katalóg profilov explanation: Pátraj po užívateľoch podľa ich záujmov explore_mastodon: Prebádaj %{title} people: @@ -605,10 +609,10 @@ sk: validation_errors: few: Niečo ešte stále nieje v poriadku! Prosím skontroluj všetky %{count} chyby one: Niečo nieje úplne v poriadku! Prosím skontroluj danú chybu - other: Niečo ešte stále nieje v poriadku! Prosím skontroluj všetkých %{count} chýb + other: Niečo ešte stále nieje v poriadku! Prosím skontroluj všetky %{count} nižšie uvedené pochybenia imports: - preface: Môžeš importovať dáta ktoré si exportoval/a z iného Mastodon serveru, ako sú napríklad zoznamy ľudí ktorých sleduješ, alebo blokuješ. - success: Tvoje dáta boli nahraté úspešne, a budú teraz spracované v danom čase + preface: Môžeš nahrať dáta ktoré si exportoval/a z iného Mastodon serveru, ako sú napríklad zoznamy ľudí ktorých sleduješ, alebo blokuješ. + success: Tvoje dáta boli nahraté úspešne, a teraz budú spracované v danom čase types: blocking: Zoznam blokovaných following: Zoznam sledovaných @@ -795,12 +799,12 @@ sk: few: 'obsahoval nepovolené hashtagy: %{tags}' one: 'obsahoval nepovolený hashtag: %{tags}' other: 'obsahoval nepovolené hashtagy: %{tags}' - language_detection: Jazyk zisti automaticky - open_in_web: Otvor v okne prehliadača - over_character_limit: limit počtu %{max} znakov bol presiahnutý + language_detection: Zisti automaticky + open_in_web: Otvor v okne na webe + over_character_limit: limit %{max} znakov bol presiahnutý pin_errors: - limit: Už ste si pripli ten najvyšší možný počet príspevkov - ownership: Nemožno pripnúť príspevok od niekoho iného + limit: Už si si pripol ten najvyšší možný počet hlášok + ownership: Nieje možné pripnúť hlášku od niekoho iného private: Neverejné príspevky nemôžu byť pripnuté reblog: Pozdvihnutie sa nedá pripnúť show_more: Ukáž viac -- cgit From 3c033c4352f8b156887cd7157b4a89c23a545838 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 22 Dec 2018 20:02:09 +0100 Subject: Add moderation warnings (#9519) * Add moderation warnings Replace individual routes for disabling, silencing, and suspending a user, as well as the report update route, with a unified account action controller that allows you to select an action (none, disable, silence, suspend) as well as whether it should generate an e-mail notification with optional custom text. That notification, with the optional custom text, is saved as a warning. Additionally, there are warning presets you can configure to save time when performing the above. * Use Account#local_username_and_domain --- .../admin/account_actions_controller.rb | 36 ++++++ .../admin/account_moderation_notes_controller.rb | 1 + app/controllers/admin/accounts_controller.rb | 23 ++-- app/controllers/admin/reports_controller.rb | 79 ++++-------- app/controllers/admin/silences_controller.rb | 27 ----- app/controllers/admin/suspensions_controller.rb | 60 --------- .../admin/warning_presets_controller.rb | 58 +++++++++ app/helpers/admin/action_logs_helper.rb | 7 +- app/javascript/images/icon_flag.svg | 4 + app/javascript/images/mailer/icon_warning.png | Bin 0 -> 371 bytes app/javascript/styles/mailer.scss | 4 + app/javascript/styles/mastodon/admin.scss | 4 + app/mailers/user_mailer.rb | 12 ++ app/models/account.rb | 8 ++ app/models/account_warning.rb | 23 ++++ app/models/account_warning_preset.rb | 15 +++ app/models/admin/account_action.rb | 134 +++++++++++++++++++++ app/models/concerns/account_associations.rb | 2 + app/models/form/admin_suspension_confirmation.rb | 7 -- app/policies/account_policy.rb | 4 + app/policies/account_warning_preset_policy.rb | 19 +++ app/views/admin/account_actions/new.html.haml | 26 ++++ .../account_warnings/_account_warning.html.haml | 6 + app/views/admin/accounts/show.html.haml | 14 ++- app/views/admin/reports/show.html.haml | 17 +-- app/views/admin/suspensions/new.html.haml | 25 ---- app/views/admin/warning_presets/edit.html.haml | 11 ++ app/views/admin/warning_presets/index.html.haml | 30 +++++ app/views/user_mailer/warning.html.haml | 63 ++++++++++ app/views/user_mailer/warning.text.erb | 9 ++ app/views/user_mailer/welcome.text.erb | 2 +- config/locales/ar.yml | 5 - config/locales/ast.yml | 2 - config/locales/ca.yml | 6 - config/locales/co.yml | 6 - config/locales/cs.yml | 6 - config/locales/cy.yml | 6 - config/locales/da.yml | 6 - config/locales/de.yml | 6 - config/locales/el.yml | 6 - config/locales/en.yml | 32 ++++- config/locales/eo.yml | 5 - config/locales/es.yml | 6 - config/locales/eu.yml | 6 - config/locales/fa.yml | 6 - config/locales/fr.yml | 6 - config/locales/gl.yml | 6 - config/locales/it.yml | 6 - config/locales/ja.yml | 6 - config/locales/ko.yml | 6 - config/locales/nl.yml | 6 - config/locales/oc.yml | 6 - config/locales/pl.yml | 6 - config/locales/pt-BR.yml | 6 - config/locales/ru.yml | 6 - config/locales/simple_form.en.yml | 19 +++ config/locales/sk.yml | 6 - config/locales/sr.yml | 6 - config/routes.rb | 16 ++- .../20181213184704_create_account_warnings.rb | 12 ++ ...0181213185533_create_account_warning_presets.rb | 9 ++ db/schema.rb | 21 +++- spec/controllers/admin/accounts_controller_spec.rb | 52 -------- spec/controllers/admin/reports_controller_spec.rb | 84 ++++--------- spec/controllers/admin/silences_controller_spec.rb | 33 ----- .../admin/suspensions_controller_spec.rb | 39 ------ spec/fabricators/account_warning_fabricator.rb | 5 + .../account_warning_preset_fabricator.rb | 3 + spec/mailers/previews/user_mailer_preview.rb | 5 + spec/models/account_warning_preset_spec.rb | 5 + spec/models/account_warning_spec.rb | 5 + spec/models/admin/account_action_spec.rb | 4 + 72 files changed, 682 insertions(+), 536 deletions(-) create mode 100644 app/controllers/admin/account_actions_controller.rb delete mode 100644 app/controllers/admin/silences_controller.rb delete mode 100644 app/controllers/admin/suspensions_controller.rb create mode 100644 app/controllers/admin/warning_presets_controller.rb create mode 100644 app/javascript/images/icon_flag.svg create mode 100644 app/javascript/images/mailer/icon_warning.png create mode 100644 app/models/account_warning.rb create mode 100644 app/models/account_warning_preset.rb create mode 100644 app/models/admin/account_action.rb delete mode 100644 app/models/form/admin_suspension_confirmation.rb create mode 100644 app/policies/account_warning_preset_policy.rb create mode 100644 app/views/admin/account_actions/new.html.haml create mode 100644 app/views/admin/account_warnings/_account_warning.html.haml delete mode 100644 app/views/admin/suspensions/new.html.haml create mode 100644 app/views/admin/warning_presets/edit.html.haml create mode 100644 app/views/admin/warning_presets/index.html.haml create mode 100644 app/views/user_mailer/warning.html.haml create mode 100644 app/views/user_mailer/warning.text.erb create mode 100644 db/migrate/20181213184704_create_account_warnings.rb create mode 100644 db/migrate/20181213185533_create_account_warning_presets.rb delete mode 100644 spec/controllers/admin/silences_controller_spec.rb delete mode 100644 spec/controllers/admin/suspensions_controller_spec.rb create mode 100644 spec/fabricators/account_warning_fabricator.rb create mode 100644 spec/fabricators/account_warning_preset_fabricator.rb create mode 100644 spec/models/account_warning_preset_spec.rb create mode 100644 spec/models/account_warning_spec.rb create mode 100644 spec/models/admin/account_action_spec.rb (limited to 'config/locales') diff --git a/app/controllers/admin/account_actions_controller.rb b/app/controllers/admin/account_actions_controller.rb new file mode 100644 index 000000000..e847495f1 --- /dev/null +++ b/app/controllers/admin/account_actions_controller.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Admin + class AccountActionsController < BaseController + before_action :set_account + + def new + @account_action = Admin::AccountAction.new(type: params[:type], report_id: params[:report_id], send_email_notification: true) + @warning_presets = AccountWarningPreset.all + end + + def create + account_action = Admin::AccountAction.new(resource_params) + account_action.target_account = @account + account_action.current_account = current_account + + account_action.save! + + if account_action.with_report? + redirect_to admin_report_path(account_action.report) + else + redirect_to admin_account_path(@account.id) + end + end + + private + + def set_account + @account = Account.find(params[:account_id]) + end + + def resource_params + params.require(:admin_account_action).permit(:type, :report_id, :warning_preset_id, :text, :send_email_notification) + end + end +end diff --git a/app/controllers/admin/account_moderation_notes_controller.rb b/app/controllers/admin/account_moderation_notes_controller.rb index 7d5b9bf52..44f6e34f8 100644 --- a/app/controllers/admin/account_moderation_notes_controller.rb +++ b/app/controllers/admin/account_moderation_notes_controller.rb @@ -14,6 +14,7 @@ module Admin else @account = @account_moderation_note.target_account @moderation_notes = @account.targeted_moderation_notes.latest + @warnings = @account.targeted_account_warnings.latest.custom render template: 'admin/accounts/show' end diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb index 771302db8..10abd1e6a 100644 --- a/app/controllers/admin/accounts_controller.rb +++ b/app/controllers/admin/accounts_controller.rb @@ -2,9 +2,9 @@ module Admin class AccountsController < BaseController - before_action :set_account, only: [:show, :subscribe, :unsubscribe, :redownload, :remove_avatar, :remove_header, :enable, :disable, :memorialize] + before_action :set_account, only: [:show, :subscribe, :unsubscribe, :redownload, :remove_avatar, :remove_header, :enable, :memorialize] before_action :require_remote_account!, only: [:subscribe, :unsubscribe, :redownload] - before_action :require_local_account!, only: [:enable, :disable, :memorialize] + before_action :require_local_account!, only: [:enable, :memorialize] def index authorize :account, :index? @@ -13,8 +13,10 @@ module Admin def show authorize @account, :show? + @account_moderation_note = current_account.account_moderation_notes.new(target_account: @account) - @moderation_notes = @account.targeted_moderation_notes.latest + @moderation_notes = @account.targeted_moderation_notes.latest + @warnings = @account.targeted_account_warnings.latest.custom end def subscribe @@ -43,10 +45,17 @@ module Admin redirect_to admin_account_path(@account.id) end - def disable - authorize @account.user, :disable? - @account.user.disable! - log_action :disable, @account.user + def unsilence + authorize @account, :unsilence? + @account.unsilence! + log_action :unsilence, @account + redirect_to admin_account_path(@account.id) + end + + def unsuspend + authorize @account, :unsuspend? + @account.unsuspend! + log_action :unsuspend, @account redirect_to admin_account_path(@account.id) end diff --git a/app/controllers/admin/reports_controller.rb b/app/controllers/admin/reports_controller.rb index e97ddb9b6..f138376b2 100644 --- a/app/controllers/admin/reports_controller.rb +++ b/app/controllers/admin/reports_controller.rb @@ -13,75 +13,42 @@ module Admin authorize @report, :show? @report_note = @report.notes.new - @report_notes = (@report.notes.latest + @report.history).sort_by(&:created_at) + @report_notes = (@report.notes.latest + @report.history + @report.target_account.targeted_account_warnings.latest.custom).sort_by(&:created_at) @form = Form::StatusBatch.new end - def update + def assign_to_self authorize @report, :update? - process_report - - if @report.action_taken? - redirect_to admin_reports_path, notice: I18n.t('admin.reports.resolved_msg') - else - redirect_to admin_report_path(@report) - end + @report.update!(assigned_account_id: current_account.id) + log_action :assigned_to_self, @report + redirect_to admin_report_path(@report) end - private - - def process_report - case params[:outcome].to_s - when 'assign_to_self' - @report.update!(assigned_account_id: current_account.id) - log_action :assigned_to_self, @report - when 'unassign' - @report.update!(assigned_account_id: nil) - log_action :unassigned, @report - when 'reopen' - @report.unresolve! - log_action :reopen, @report - when 'resolve' - @report.resolve!(current_account) - log_action :resolve, @report - when 'disable' - @report.resolve!(current_account) - @report.target_account.user.disable! - - log_action :resolve, @report - log_action :disable, @report.target_account.user - - resolve_all_target_account_reports - when 'silence' - @report.resolve!(current_account) - @report.target_account.update!(silenced: true) - - log_action :resolve, @report - log_action :silence, @report.target_account - - resolve_all_target_account_reports - else - raise ActiveRecord::RecordNotFound - end - - @report.reload + def unassign + authorize @report, :update? + @report.update!(assigned_account_id: nil) + log_action :unassigned, @report + redirect_to admin_report_path(@report) end - def resolve_all_target_account_reports - unresolved_reports_for_target_account.update_all(action_taken: true, action_taken_by_account_id: current_account.id) + def reopen + authorize @report, :update? + @report.unresolve! + log_action :reopen, @report + redirect_to admin_report_path(@report) end - def unresolved_reports_for_target_account - Report.where( - target_account: @report.target_account - ).unresolved + def resolve + authorize @report, :update? + @report.resolve!(current_account) + log_action :resolve, @report + redirect_to admin_reports_path, notice: I18n.t('admin.reports.resolved_msg') end + private + def filtered_reports - ReportFilter.new(filter_params).results.order(id: :desc).includes( - :account, - :target_account - ) + ReportFilter.new(filter_params).results.order(id: :desc).includes(:account, :target_account) end def filter_params diff --git a/app/controllers/admin/silences_controller.rb b/app/controllers/admin/silences_controller.rb deleted file mode 100644 index 4c06a9c0c..000000000 --- a/app/controllers/admin/silences_controller.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -module Admin - class SilencesController < BaseController - before_action :set_account - - def create - authorize @account, :silence? - @account.update!(silenced: true) - log_action :silence, @account - redirect_to admin_accounts_path - end - - def destroy - authorize @account, :unsilence? - @account.update!(silenced: false) - log_action :unsilence, @account - redirect_to admin_accounts_path - end - - private - - def set_account - @account = Account.find(params[:account_id]) - end - end -end diff --git a/app/controllers/admin/suspensions_controller.rb b/app/controllers/admin/suspensions_controller.rb deleted file mode 100644 index f9bbf36fb..000000000 --- a/app/controllers/admin/suspensions_controller.rb +++ /dev/null @@ -1,60 +0,0 @@ -# frozen_string_literal: true - -module Admin - class SuspensionsController < BaseController - before_action :set_account - - def new - @suspension = Form::AdminSuspensionConfirmation.new(report_id: params[:report_id]) - end - - def create - authorize @account, :suspend? - - @suspension = Form::AdminSuspensionConfirmation.new(suspension_params) - - if suspension_params[:acct] == @account.acct - resolve_report! if suspension_params[:report_id].present? - perform_suspend! - mark_reports_resolved! - redirect_to admin_accounts_path - else - flash.now[:alert] = I18n.t('admin.suspensions.bad_acct_msg') - render :new - end - end - - def destroy - authorize @account, :unsuspend? - @account.unsuspend! - log_action :unsuspend, @account - redirect_to admin_accounts_path - end - - private - - def set_account - @account = Account.find(params[:account_id]) - end - - def suspension_params - params.require(:form_admin_suspension_confirmation).permit(:acct, :report_id) - end - - def resolve_report! - report = Report.find(suspension_params[:report_id]) - report.resolve!(current_account) - log_action :resolve, report - end - - def perform_suspend! - @account.suspend! - Admin::SuspensionWorker.perform_async(@account.id) - log_action :suspend, @account - end - - def mark_reports_resolved! - Report.where(target_account: @account).unresolved.update_all(action_taken: true, action_taken_by_account_id: current_account.id) - end - end -end diff --git a/app/controllers/admin/warning_presets_controller.rb b/app/controllers/admin/warning_presets_controller.rb new file mode 100644 index 000000000..37be842c5 --- /dev/null +++ b/app/controllers/admin/warning_presets_controller.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +module Admin + class WarningPresetsController < BaseController + before_action :set_warning_preset, except: [:index, :create] + + def index + authorize :account_warning_preset, :index? + + @warning_presets = AccountWarningPreset.all + @warning_preset = AccountWarningPreset.new + end + + def create + authorize :account_warning_preset, :create? + + @warning_preset = AccountWarningPreset.new(warning_preset_params) + + if @warning_preset.save + redirect_to admin_warning_presets_path + else + @warning_presets = AccountWarningPreset.all + render :index + end + end + + def edit + authorize @warning_preset, :update? + end + + def update + authorize @warning_preset, :update? + + if @warning_preset.update(warning_preset_params) + redirect_to admin_warning_presets_path + else + render :edit + end + end + + def destroy + authorize @warning_preset, :destroy? + + @warning_preset.destroy! + redirect_to admin_warning_presets_path + end + + private + + def set_warning_preset + @warning_preset = AccountWarningPreset.find(params[:id]) + end + + def warning_preset_params + params.require(:account_warning_preset).permit(:text) + end + end +end diff --git a/app/helpers/admin/action_logs_helper.rb b/app/helpers/admin/action_logs_helper.rb index 68cf8c75d..359d60b60 100644 --- a/app/helpers/admin/action_logs_helper.rb +++ b/app/helpers/admin/action_logs_helper.rb @@ -23,6 +23,8 @@ module Admin::ActionLogsHelper link_to record.domain, "https://#{record.domain}" when 'Status' link_to record.account.acct, TagManager.instance.url_for(record) + when 'AccountWarning' + link_to record.target_account.acct, admin_account_path(record.target_account_id) end end @@ -34,6 +36,7 @@ module Admin::ActionLogsHelper link_to attributes['domain'], "https://#{attributes['domain']}" when 'Status' tmp_status = Status.new(attributes.except('reblogs_count', 'favourites_count')) + if tmp_status.account link_to tmp_status.account&.acct || "##{tmp_status.account_id}", admin_account_path(tmp_status.account_id) else @@ -81,6 +84,8 @@ module Admin::ActionLogsHelper 'envelope' when 'Status' 'pencil' + when 'AccountWarning' + 'warning' end end @@ -104,6 +109,6 @@ module Admin::ActionLogsHelper private def opposite_verbs?(log) - %w(DomainBlock EmailDomainBlock).include?(log.target_type) + %w(DomainBlock EmailDomainBlock AccountWarning).include?(log.target_type) end end diff --git a/app/javascript/images/icon_flag.svg b/app/javascript/images/icon_flag.svg new file mode 100644 index 000000000..3939c9d2b --- /dev/null +++ b/app/javascript/images/icon_flag.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/javascript/images/mailer/icon_warning.png b/app/javascript/images/mailer/icon_warning.png new file mode 100644 index 000000000..7baaac61c Binary files /dev/null and b/app/javascript/images/mailer/icon_warning.png differ diff --git a/app/javascript/styles/mailer.scss b/app/javascript/styles/mailer.scss index d83bd4d96..74d1df8ed 100644 --- a/app/javascript/styles/mailer.scss +++ b/app/javascript/styles/mailer.scss @@ -426,6 +426,10 @@ h5 { background: $success-green; } + &.alert-icon td { + background: $error-red; + } + img { max-width: 32px; width: 32px; diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index b6c771abf..e8f331932 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -542,6 +542,10 @@ a.name-tag, border-left-color: lighten($error-red, 12%); } + &.warning { + border-left-color: $gold-star; + } + &__bubble { padding: 16px; padding-left: 14px; diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index aa76b4dfe..8f3a4ab3a 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -78,4 +78,16 @@ class UserMailer < Devise::Mailer mail to: @resource.email, subject: I18n.t('user_mailer.backup_ready.subject') end end + + def warning(user, warning) + @resource = user + @warning = warning + @instance = Rails.configuration.x.local_domain + + I18n.with_locale(@resource.locale || I18n.default_locale) do + mail to: @resource.email, + subject: I18n.t("user_mailer.warning.subject.#{@warning.action}", acct: "@#{user.account.local_username_and_domain}"), + reply_to: Setting.site_contact_email + end + end end diff --git a/app/models/account.rb b/app/models/account.rb index 5a7a9c580..16ef6c187 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -155,6 +155,14 @@ class Account < ApplicationRecord ResolveAccountService.new.call(acct) end + def silence! + update!(silenced: true) + end + + def unsilence! + update!(silenced: false) + end + def suspend! transaction do user&.disable! if local? diff --git a/app/models/account_warning.rb b/app/models/account_warning.rb new file mode 100644 index 000000000..157e6c04d --- /dev/null +++ b/app/models/account_warning.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true +# == Schema Information +# +# Table name: account_warnings +# +# id :bigint(8) not null, primary key +# account_id :bigint(8) +# target_account_id :bigint(8) +# action :integer default("none"), not null +# text :text default(""), not null +# created_at :datetime not null +# updated_at :datetime not null +# + +class AccountWarning < ApplicationRecord + enum action: %i(none disable silence suspend), _suffix: :action + + belongs_to :account, inverse_of: :account_warnings + belongs_to :target_account, class_name: 'Account', inverse_of: :targeted_account_warnings + + scope :latest, -> { order(created_at: :desc) } + scope :custom, -> { where.not(text: '') } +end diff --git a/app/models/account_warning_preset.rb b/app/models/account_warning_preset.rb new file mode 100644 index 000000000..ba8ceabb3 --- /dev/null +++ b/app/models/account_warning_preset.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: account_warning_presets +# +# id :bigint(8) not null, primary key +# text :text default(""), not null +# created_at :datetime not null +# updated_at :datetime not null +# + +class AccountWarningPreset < ApplicationRecord + validates :text, presence: true +end diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb new file mode 100644 index 000000000..84c3f880d --- /dev/null +++ b/app/models/admin/account_action.rb @@ -0,0 +1,134 @@ +# frozen_string_literal: true + +class Admin::AccountAction + include ActiveModel::Model + include AccountableConcern + include Authorization + + TYPES = %w( + none + disable + silence + suspend + ).freeze + + attr_accessor :target_account, + :current_account, + :type, + :text, + :report_id, + :warning_preset_id, + :send_email_notification + + attr_reader :warning + + def save! + ApplicationRecord.transaction do + process_action! + process_warning! + end + + queue_email! + process_reports! + end + + def report + @report ||= Report.find(report_id) if report_id.present? + end + + def with_report? + !report.nil? + end + + class << self + def types_for_account(account) + if account.local? + TYPES + else + TYPES - %w(none disable) + end + end + end + + private + + def process_action! + case type + when 'disable' + handle_disable! + when 'silence' + handle_silence! + when 'suspend' + handle_suspend! + end + end + + def process_warning! + return unless warnable? + + authorize(target_account, :warn?) + + @warning = AccountWarning.create!(target_account: target_account, + account: current_account, + action: type, + text: text_for_warning) + + # A log entry is only interesting if the warning contains + # custom text from someone. Otherwise it's just noise. + log_action(:create, warning) if warning.text.present? + end + + def process_reports! + return if report_id.blank? + + authorize(report, :update?) + + if type == 'none' + log_action(:resolve, report) + report.resolve!(current_account) + else + Report.where(target_account: target_account).unresolved.update_all(action_taken: true, action_taken_by_account_id: current_account.id) + end + end + + def handle_disable! + authorize(target_account.user, :disable?) + log_action(:disable, target_account.user) + target_account.user&.disable! + end + + def handle_silence! + authorize(target_account, :silence?) + log_action(:silence, target_account) + target_account.silence! + end + + def handle_suspend! + authorize(target_account, :suspend?) + log_action(:suspend, target_account) + target_account.suspend! + queue_suspension_worker! + end + + def text_for_warning + [warning_preset&.text, text].compact.join("\n\n") + end + + def queue_suspension_worker! + Admin::SuspensionWorker.perform_async(target_account.id) + end + + def queue_email! + return unless warnable? + + UserMailer.warning(target_account.user, warning).deliver_later! + end + + def warnable? + send_email_notification && target_account.local? + end + + def warning_preset + @warning_preset ||= AccountWarningPreset.find(warning_preset_id) if warning_preset_id.present? + end +end diff --git a/app/models/concerns/account_associations.rb b/app/models/concerns/account_associations.rb index ae50860ed..a894b5eed 100644 --- a/app/models/concerns/account_associations.rb +++ b/app/models/concerns/account_associations.rb @@ -39,6 +39,8 @@ module AccountAssociations # Moderation notes has_many :account_moderation_notes, dependent: :destroy, inverse_of: :account has_many :targeted_moderation_notes, class_name: 'AccountModerationNote', foreign_key: :target_account_id, dependent: :destroy, inverse_of: :target_account + has_many :account_warnings, dependent: :destroy, inverse_of: :account + has_many :targeted_account_warnings, class_name: 'AccountWarning', foreign_key: :target_account_id, dependent: :destroy, inverse_of: :target_account # Lists (that the account is on, not owned by the account) has_many :list_accounts, inverse_of: :account, dependent: :destroy diff --git a/app/models/form/admin_suspension_confirmation.rb b/app/models/form/admin_suspension_confirmation.rb deleted file mode 100644 index c34b5b30e..000000000 --- a/app/models/form/admin_suspension_confirmation.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -class Form::AdminSuspensionConfirmation - include ActiveModel::Model - - attr_accessor :acct, :report_id -end diff --git a/app/policies/account_policy.rb b/app/policies/account_policy.rb index 07bae68ef..9c145979d 100644 --- a/app/policies/account_policy.rb +++ b/app/policies/account_policy.rb @@ -9,6 +9,10 @@ class AccountPolicy < ApplicationPolicy staff? end + def warn? + staff? && !record.user&.staff? + end + def suspend? staff? && !record.user&.staff? end diff --git a/app/policies/account_warning_preset_policy.rb b/app/policies/account_warning_preset_policy.rb new file mode 100644 index 000000000..bccbd33ef --- /dev/null +++ b/app/policies/account_warning_preset_policy.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AccountWarningPresetPolicy < ApplicationPolicy + def index? + staff? + end + + def create? + staff? + end + + def update? + staff? + end + + def destroy? + staff? + end +end diff --git a/app/views/admin/account_actions/new.html.haml b/app/views/admin/account_actions/new.html.haml new file mode 100644 index 000000000..97286c8e5 --- /dev/null +++ b/app/views/admin/account_actions/new.html.haml @@ -0,0 +1,26 @@ +- content_for :page_title do + = t('admin.account_actions.title', acct: @account.acct) + += simple_form_for @account_action, url: admin_account_action_path(@account.id) do |f| + = f.input :report_id, as: :hidden + + .fields-group + = f.input :type, collection: Admin::AccountAction.types_for_account(@account), include_blank: false, wrapper: :with_block_label, label_method: ->(type) { I18n.t("simple_form.labels.admin_account_action.types.#{type}")}, hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.acct) + + - if @account.local? + %hr.spacer/ + + .fields-group + = f.input :send_email_notification, as: :boolean, wrapper: :with_label + + %hr.spacer/ + + - unless @warning_presets.empty? + .fields-group + = f.input :warning_preset_id, collection: @warning_presets, label_method: :text, wrapper: :with_block_label + + .fields-group + = f.input :text, as: :text, wrapper: :with_block_label, hint: t('simple_form.hints.admin_account_action.text_html', path: admin_warning_presets_path) + + .actions + = f.button :button, t('admin.account_actions.action'), type: :submit diff --git a/app/views/admin/account_warnings/_account_warning.html.haml b/app/views/admin/account_warnings/_account_warning.html.haml new file mode 100644 index 000000000..8c9c9679c --- /dev/null +++ b/app/views/admin/account_warnings/_account_warning.html.haml @@ -0,0 +1,6 @@ +.speech-bubble.warning + .speech-bubble__bubble + = Formatter.instance.linkify(account_warning.text) + .speech-bubble__owner + = admin_account_link_to account_warning.account + %time.formatted{ datetime: account_warning.created_at.iso8601 }= l account_warning.created_at diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index e9f765107..226aef732 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -64,7 +64,7 @@ = table_link_to 'unlock', t('admin.accounts.enable'), enable_admin_account_path(@account.id), method: :post if can?(:enable, @account.user) - else = t('admin.accounts.enabled') - = table_link_to 'lock', t('admin.accounts.disable'), disable_admin_account_path(@account.id), method: :post if can?(:disable, @account.user) + = table_link_to 'lock', t('admin.accounts.disable'), new_admin_account_action_path(@account.id, type: 'disable') if can?(:disable, @account.user) %tr %th= t('admin.accounts.most_recent_ip') %td= @account.user_current_sign_in_ip @@ -119,18 +119,18 @@ %div{ style: 'float: left' } - if @account.silenced? - = link_to t('admin.accounts.undo_silenced'), admin_account_silence_path(@account.id), method: :delete, class: 'button' if can?(:unsilence, @account) + = link_to t('admin.accounts.undo_silenced'), unsilence_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsilence, @account) - else - = link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button button--destructive' if can?(:silence, @account) + = link_to t('admin.accounts.silence'), new_admin_account_action_path(@account.id, type: 'silence'), class: 'button button--destructive' if can?(:silence, @account) - if @account.local? - unless @account.user_confirmed? = link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button' if can?(:confirm, @account.user) - if @account.suspended? - = link_to t('admin.accounts.undo_suspension'), admin_account_suspension_path(@account.id), method: :delete, class: 'button' if can?(:unsuspend, @account) + = link_to t('admin.accounts.undo_suspension'), unsuspend_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsuspend, @account) - else - = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_suspension_path(@account.id), class: 'button button--destructive' if can?(:suspend, @account) + = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@account.id, type: 'suspend'), class: 'button button--destructive' if can?(:suspend, @account) - if !@account.local? && @account.hub_url.present? %hr.spacer/ @@ -184,6 +184,10 @@ %hr.spacer/ += render @warnings + +%hr.spacer/ + = render @moderation_notes = simple_form_for @account_moderation_note, url: admin_account_moderation_notes_path do |f| diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 3588d151d..863dada9e 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -8,13 +8,14 @@ - if @report.unresolved? %div{ style: 'float: right' } - if @report.target_account.local? - = link_to t('admin.accounts.disable'), admin_report_path(@report, outcome: 'disable'), method: :put, class: 'button button--destructive' - = link_to t('admin.accounts.silence'), admin_report_path(@report, outcome: 'silence'), method: :put, class: 'button button--destructive' - = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_suspension_path(@report.target_account_id, report_id: @report.id), class: 'button button--destructive' + = link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button' + = link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive' + = link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive' + = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive' %div{ style: 'float: left' } - = link_to t('admin.reports.mark_as_resolved'), admin_report_path(@report, outcome: 'resolve'), method: :put, class: 'button' + = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' - else - = link_to t('admin.reports.mark_as_unresolved'), admin_report_path(@report, outcome: 'reopen'), method: :put, class: 'button' + = link_to t('admin.reports.mark_as_unresolved'), reopen_admin_report_path(@report), method: :post, class: 'button' %hr.spacer @@ -67,10 +68,10 @@ = admin_account_link_to @report.assigned_account %td - if @report.assigned_account != current_user.account - = table_link_to 'user', t('admin.reports.assign_to_self'), admin_report_path(@report, outcome: 'assign_to_self'), method: :put + = table_link_to 'user', t('admin.reports.assign_to_self'), assign_to_self_admin_report_path(@report), method: :post %td - if !@report.assigned_account.nil? - = table_link_to 'trash', t('admin.reports.unassign'), admin_report_path(@report, outcome: 'unassign'), method: :put + = table_link_to 'trash', t('admin.reports.unassign'), unassign_admin_report_path(@report), method: :post %hr.spacer @@ -104,7 +105,7 @@ - @report_notes.each do |item| - if item.is_a?(Admin::ActionLog) = render partial: 'action_log', locals: { action_log: item } - - elsif item.is_a?(ReportNote) + - else = render item = simple_form_for @report_note, url: admin_report_notes_path do |f| diff --git a/app/views/admin/suspensions/new.html.haml b/app/views/admin/suspensions/new.html.haml deleted file mode 100644 index f03ecacc3..000000000 --- a/app/views/admin/suspensions/new.html.haml +++ /dev/null @@ -1,25 +0,0 @@ -- content_for :page_title do - = t('admin.suspensions.title', acct: @account.acct) - -= simple_form_for @suspension, url: admin_account_suspension_path(@account.id), method: :post do |f| - %p.hint= t('admin.suspensions.warning_html') - - .fields-group - %ul - %li.negative-hint - = number_to_human @account.statuses_count, strip_insignificant_zeros: true - = t('accounts.posts', count: @account.statuses_count) - %li.negative-hint - = number_to_human @account.following_count, strip_insignificant_zeros: true - = t('accounts.following', count: @account.following_count) - %li.negative-hint - = number_to_human @account.followers_count, strip_insignificant_zeros: true - = t('accounts.followers', count: @account.followers_count) - - %p.hint= t('admin.suspensions.hint_html', value: content_tag(:code, @account.acct)) - - = f.input :acct - = f.input_field :report_id, as: :hidden - - .actions - = f.button :button, t('admin.suspensions.proceed'), type: :submit, class: 'negative' diff --git a/app/views/admin/warning_presets/edit.html.haml b/app/views/admin/warning_presets/edit.html.haml new file mode 100644 index 000000000..9522746cd --- /dev/null +++ b/app/views/admin/warning_presets/edit.html.haml @@ -0,0 +1,11 @@ +- content_for :page_title do + = t('admin.warning_presets.edit_preset') + += simple_form_for @warning_preset, url: admin_warning_preset_path(@warning_preset) do |f| + = render 'shared/error_messages', object: @warning_preset + + .fields-group + = f.input :text, wrapper: :with_block_label + + .actions + = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/warning_presets/index.html.haml b/app/views/admin/warning_presets/index.html.haml new file mode 100644 index 000000000..45913ef73 --- /dev/null +++ b/app/views/admin/warning_presets/index.html.haml @@ -0,0 +1,30 @@ +- content_for :page_title do + = t('admin.warning_presets.title') + +- if can? :create, :account_warning_preset + = simple_form_for @warning_preset, url: admin_warning_presets_path do |f| + = render 'shared/error_messages', object: @warning_preset + + .fields-group + = f.input :text, wrapper: :with_block_label + + .actions + = f.button :button, t('admin.warning_presets.add_new'), type: :submit + + %hr.spacer/ + +- unless @warning_presets.empty? + .table-wrapper + %table.table + %thead + %tr + %th= t('simple_form.labels.account_warning_preset.text') + %th + %tbody + - @warning_presets.each do |preset| + %tr + %td + = Formatter.instance.linkify(preset.text) + %td + = table_link_to 'pencil', t('admin.warning_presets.edit'), edit_admin_warning_preset_path(preset) + = table_link_to 'trash', t('admin.warning_presets.delete'), admin_warning_preset_path(preset), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } diff --git a/app/views/user_mailer/warning.html.haml b/app/views/user_mailer/warning.html.haml new file mode 100644 index 000000000..c5e1f5a28 --- /dev/null +++ b/app/views/user_mailer/warning.html.haml @@ -0,0 +1,63 @@ +%table.email-table{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.email-body + .email-container + %table.content-section{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.content-cell.hero + .email-row + .col-6 + %table.column{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.column-cell.text-center.padded + %table.hero-icon.alert-icon{ align: 'center', cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td + = image_tag full_pack_url('icon_warning.png'), alt: '' + + %h1= t "user_mailer.warning.title.#{@warning.action}" + +%table.email-table{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.email-body + .email-container + %table.content-section{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.content-cell.content-start + .email-row + .col-6 + %table.column{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.column-cell.text-center + - unless @warning.none_action? + %p= t "user_mailer.warning.explanation.#{@warning.action}" + + - unless @warning.text.blank? + = Formatter.instance.linkify(@warning.text) + +%table.email-table{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.email-body + .email-container + %table.content-section{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.content-cell + %table.column{ cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.column-cell.button-cell + %table.button{ align: 'center', cellspacing: 0, cellpadding: 0 } + %tbody + %tr + %td.button-primary + = link_to about_more_url do + %span= t 'user_mailer.warning.review_server_policies' diff --git a/app/views/user_mailer/warning.text.erb b/app/views/user_mailer/warning.text.erb new file mode 100644 index 000000000..b4f2402cb --- /dev/null +++ b/app/views/user_mailer/warning.text.erb @@ -0,0 +1,9 @@ +<%= t "user_mailer.warning.title.#{@warning.action}" %> + +=== + +<% unless @warning.none_action? %> +<%= t "user_mailer.warning.explanation.#{@warning.action}" %> + +<% end %> +<%= @warning.text %> diff --git a/app/views/user_mailer/welcome.text.erb b/app/views/user_mailer/welcome.text.erb index 5bd0cab2a..845458c32 100644 --- a/app/views/user_mailer/welcome.text.erb +++ b/app/views/user_mailer/welcome.text.erb @@ -2,7 +2,7 @@ === -<%= t 'user_mailer.welcome.full_handle' %> (<%= "@#{@resource.account.username}@#{@instance}" %>) +<%= t 'user_mailer.welcome.full_handle' %> (<%= "@#{@resource.account.local_username_and_domain}" %>) <%= t 'user_mailer.welcome.full_handle_hint', instance: @instance %> --- diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 2fa075273..0652089d4 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -455,11 +455,6 @@ ar: last_delivery: آخر إيداع title: WebSub topic: الموضوع - suspensions: - bad_acct_msg: قيمة التأكيد غير متطابقة. متأكد مِن أنك بصدد تعليق الحساب الصحيح؟ - hint_html: 'لتأكيد إجراء تعليق الحساب، يُرجى إدخال %{value} في الحقل التالي:' - proceed: مواصلة - title: تعليق الحساب %{acct} tags: accounts: الحسابات hidden: المخفية diff --git a/config/locales/ast.yml b/config/locales/ast.yml index e6c51b10e..c18c398eb 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -121,8 +121,6 @@ ast: failed_to_execute: Fallu al executar subscriptions: title: WebSub - suspensions: - warning_html: 'El suspender esta cuenta va desaniciar de mou irreversible los sos datos qu''inclúin:' title: Alministración admin_mailer: new_report: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 1575b32ea..b7e3cb7f6 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -439,12 +439,6 @@ ca: last_delivery: Últim lliurament title: WebSub topic: Tema - suspensions: - bad_acct_msg: El valor de confirmació no s'ha trobat. Estàs suspenen el compte correcte? - hint_html: 'Per confirmar la suspensió del compte, introdueix %{value} al camp següent:' - proceed: Procedeix - title: Suspèn %{acct} - warning_html: 'Suspenen aquest compte esborrarà irreversiblement les dades del compte, incloent:' tags: accounts: Comptes hidden: Amagat diff --git a/config/locales/co.yml b/config/locales/co.yml index c15f241c6..3df78f007 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -439,12 +439,6 @@ co: last_delivery: Ultima arricata title: WebSub topic: Sughjettu - suspensions: - bad_acct_msg: U valore di cunfirmazione ùn era micca curretta. Site sicuru·a di suspende u bonu contu? - hint_html: 'Per cunfirmà a suspensione di u contu, entrate %{value} quì sottu:' - proceed: Cuntinuà - title: Suspende %{acct} - warning_html: 'A suspensione di u contu sguasserà di manera irreversibile i so dati, cum''è:' tags: accounts: Conti hidden: Piattatu diff --git a/config/locales/cs.yml b/config/locales/cs.yml index d25ca6c2c..0042d5641 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -444,12 +444,6 @@ cs: last_delivery: Poslední doručení title: WebSub topic: Téma - suspensions: - bad_acct_msg: Hodnota pro potvrzení neodpovídá. Suspendujete správný účet? - hint_html: 'Pro potvrzení suspenzace účtu prosím zadejte do pole níže %{value}:' - proceed: Pokračovat - title: Suspendovat účet %{acct} - warning_html: 'Suspenzace tohoto účtu nenávratně smaže z tohoto účtu data, včetně:' tags: accounts: Účty hidden: Skryté diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 24ae6fa10..2467d3e78 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -423,12 +423,6 @@ cy: last_delivery: Danfoniad diwethaf title: WebSub topic: Pwnc - suspensions: - bad_acct_msg: Nid yw'r gwerthoedd cadarnhau yn cyfateb. Ydych chi'n atal y cyfrif cywir? - hint_html: 'I gadarnhau atal y cyfrif, mewnbynwch %{value} yn y maes isod:' - proceed: Parhau - title: Atal %{acct} - warning_html: 'Mi fydd atal y cyfrif hwn yn dileu data am byth o''r cyfrif hwn, gan gynnwys:' title: Gweinyddiaeth admin_mailer: new_report: diff --git a/config/locales/da.yml b/config/locales/da.yml index c6bdc753a..202f6bfb3 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -427,12 +427,6 @@ da: last_delivery: Sidste levering title: Websub topic: Emne - suspensions: - bad_acct_msg: Bekræftelsværdien stemte ikke overens. Er du ved at udelukke den rigtige konto? - hint_html: 'For at bekræfte udelukkelsen af kontoen, indtast venligst %{value} i nedenstående felt:' - proceed: Fortsæt - title: Udeluk %{acct} - warning_html: 'Udelukkelse af denne konto vil uigenkaldeligt slette al data fra denne konto, hvilket indebærer:' title: Administration admin_mailer: new_report: diff --git a/config/locales/de.yml b/config/locales/de.yml index 945d5a0ff..647897171 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -439,12 +439,6 @@ de: last_delivery: Letzte Zustellung title: WebSub topic: Thema - suspensions: - bad_acct_msg: Der Bestätigungswert stimmt nicht überein. Sperrst du das richtige Benutzerkonto? - hint_html: 'Um die Sperrung des Benutzerkontos zu genehmigen tippe %{value} in das Feld unten ein:' - proceed: Fortfahren - title: "%{acct} sperren" - warning_html: 'Die Sperrung des Benutzerkontos wird unwiederrufliche Schäden hervorrufen und alle Daten löschen, die folgendes beinhalten:' tags: accounts: Konten hidden: Versteckt diff --git a/config/locales/el.yml b/config/locales/el.yml index 66393f213..e03a116d0 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -439,12 +439,6 @@ el: last_delivery: Τελευταία παράδοση title: WebSub topic: Θέμα - suspensions: - bad_acct_msg: Η τιμή επιβεβαίωσης δεν ταιριάζει. Σίγουρα αναστέλλεις το σωστό λογαριασμό; - hint_html: 'Για να επιβεβαιώσεις την αναστολή του λογαριασμού, γράψε %{value} στο ακόλουθο πεδίο:' - proceed: Συνέχεια - title: Αναστολή %{acct} - warning_html: 'Αναστέλλοντας αυτό το λογαριασμό θα διαγραφούν αμετάκλητα δεδομένα του, μεταξύ των οποίων:' tags: accounts: Λογαριασμοί hidden: Κρυμμένες diff --git a/config/locales/en.yml b/config/locales/en.yml index bd0b0c3d5..bea182f0b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -70,6 +70,9 @@ en: moderator: Mod unfollow: Unfollow admin: + account_actions: + action: Perform action + title: Perform moderation action on %{acct} account_moderation_notes: create: Leave note created_msg: Moderation note successfully created! @@ -173,6 +176,7 @@ en: assigned_to_self_report: "%{name} assigned report %{target} to themselves" change_email_user: "%{name} changed the e-mail address of user %{target}" confirm_user: "%{name} confirmed e-mail address of user %{target}" + create_account_warning: "%{name} sent a warning to %{target}" create_custom_emoji: "%{name} uploaded new emoji %{target}" create_domain_block: "%{name} blocked domain %{target}" create_email_domain_block: "%{name} blacklisted e-mail domain %{target}" @@ -441,12 +445,6 @@ en: last_delivery: Last delivery title: WebSub topic: Topic - suspensions: - bad_acct_msg: The confirmation value didn't match up. Are you suspending the right account? - hint_html: 'To confirm the suspension of the account, please enter %{value} into the field below:' - proceed: Proceed - title: Suspend %{acct} - warning_html: 'Suspending this account will irreversibly delete data from this account, which includes:' tags: accounts: Accounts hidden: Hidden @@ -456,6 +454,12 @@ en: unhide: Show in directory visible: Visible title: Administration + warning_presets: + add_new: Add new + delete: Delete + edit: Edit + edit_preset: Edit warning preset + title: Manage warning presets admin_mailer: new_report: body: "%{reporter} has reported %{target}" @@ -922,6 +926,22 @@ en: explanation: You requested a full backup of your Mastodon account. It's now ready for download! subject: Your archive is ready for download title: Archive takeout + warning: + explanation: + disable: While your account is frozen, your account data remains intact, but you cannot perform any actions until it is unlocked. + silence: While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follow you. + suspend: Your account has been suspended, and all of your toots and your uploaded media files have been irreversibly removed from this server, and servers where you had followers. + review_server_policies: Review server policies + subject: + disable: Your account %{acct} has been frozen + none: Warning for %{acct} + silence: Your account %{acct} has been limited + suspend: Your account %{acct} has been suspended + title: + disable: Account frozen + none: Warning + silence: Account limited + suspend: Account suspended welcome: edit_profile_action: Setup profile edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account. diff --git a/config/locales/eo.yml b/config/locales/eo.yml index f944b2a19..6a62f7021 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -427,11 +427,6 @@ eo: last_delivery: Lasta livero title: WebSub topic: Temo - suspensions: - hint_html: 'Por konformi la haltigo de la konto, bonvolu enigi %{value} en la kampo sube:' - proceed: Daŭrigita - title: Haltigi %{acct} - warning_html: 'Haltigi ĉi tiu konton forigos senrevene datumojn de ĉi tiu konto, inklusive de:' title: Administrado admin_mailer: new_report: diff --git a/config/locales/es.yml b/config/locales/es.yml index 4cd1e2a38..8927c3b38 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -433,12 +433,6 @@ es: last_delivery: Última entrega title: WebSub topic: Tópico - suspensions: - bad_acct_msg: El valor de confirmación no cuadra. ¿Estás suspendiendo la cuenta correcta? - hint_html: 'Para confirmar las suspensión de la cuenta, por favor introduce %{value} en el campo de abajo:' - proceed: Proceder - title: Suspender %{acct} - warning_html: 'Suspender esta cuenta borrará irreversiblemente los datos de stra cuenta que incluyen:' title: Administración admin_mailer: new_report: diff --git a/config/locales/eu.yml b/config/locales/eu.yml index c96438bc3..eb148c6a2 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -435,12 +435,6 @@ eu: last_delivery: Azken bidalketa title: WebSub topic: Mintzagaia - suspensions: - bad_acct_msg: Berrespen balioa ez dator bat. Dagokion kontua kanporatzen ari zara? - hint_html: 'Kontuaren kanporatzea berresteko, sartu %{value} beheko eremuan:' - proceed: Jarraitu - title: Kanporatu %{acct} - warning_html: 'Kontu hau kanporatzeak behin betiko ezabatuko ditu kontu honetako datuak, hauek barne:' tags: accounts: Kontuak hidden: Ezkutatuta diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 7802ca98d..a87949183 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -433,12 +433,6 @@ fa: last_delivery: آخرین ارسال title: WebSub topic: موضوع - suspensions: - bad_acct_msg: محتوایی که برای تأیید وارد کردید منطبق نبود. آیا دارید حساب درستی را معلق می‌کنید؟ - hint_html: 'برای تأیید معلق‌کردن حساب، لطفاً در کادر زیر %{value} را وارد کنید:' - proceed: ادامه - title: معلق‌کردن %{acct} - warning_html: 'معلق‌کردن این حساب برای همیشه داده‌هایش را پاک می‌کند. داده‌هایی شامل:' title: مدیریت سرور admin_mailer: new_report: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 3d33cd40c..167c942ee 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -439,12 +439,6 @@ fr: last_delivery: Dernière livraison title: WebSub topic: Sujet - suspensions: - bad_acct_msg: La valeur de confirmation n'a pas correspondu. Êtes-vous certain de suspendre le bon compte ? - hint_html: 'Pour confirmer la suspension du compte, veuillez entrer %{value} dans le champ ci-dessous :' - proceed: Confirmer - title: Suspension de %{acct} - warning_html: 'Suspendre ce compte effacera irréversiblement les données de ce compte, ce qui inclut :' tags: accounts: Comptes hidden: Masqué diff --git a/config/locales/gl.yml b/config/locales/gl.yml index de1557fb9..b6830fb72 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -439,12 +439,6 @@ gl: last_delivery: Última entrega title: WebSub topic: Asunto - suspensions: - bad_acct_msg: O valor de confirmación non é coincidente. Está a suspender a conta correcta? - hint_html: 'Para confirmar a suspensión da conta introduza %{value} no campo inferior:' - proceed: Proceder - title: Suspender %{acct} - warning_html: 'Ao suspender esta conta eliminará de xeito irreversible os datos de esta conta, que inclúe:' tags: accounts: Contas hidden: Ocultas diff --git a/config/locales/it.yml b/config/locales/it.yml index dc62b1bea..e9bf78cdf 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -429,12 +429,6 @@ it: confirmed: Confermato expires_in: Scade in topic: Argomento - suspensions: - bad_acct_msg: Il valore di conferma non corrisponde. Stai sospendendo l'account giusto? - hint_html: 'Per confermare la sospensione dell''account, inserisci %{value} nel campo qui sotto:' - proceed: Continua - title: Sospendi %{acct} - warning_html: 'La sospensione dell''account comporta la cancellazione irreversibile dei suoi dati, che comprendono:' title: Amministrazione application_mailer: notification_preferences: Cambia preferenze email diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 038131a61..292acf52f 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -441,12 +441,6 @@ ja: last_delivery: 最終配送 title: WebSub topic: トピック - suspensions: - bad_acct_msg: 値が一致しませんでした。停止しようとしているアカウントに間違いはありませんか? - hint_html: 'アカウントの停止を確認するには、以下のフィールドに %{value} と入力してください:' - proceed: 完全に活動停止させる - title: "%{acct} を停止" - warning_html: 'このアカウントを停止すると、このアカウントから次のようなデータが不可逆的に削除されます:' tags: accounts: アカウント hidden: 非表示 diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 40dab2d79..6bbc71e0b 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -441,12 +441,6 @@ ko: last_delivery: 최종 발송 title: WebSub topic: 토픽 - suspensions: - bad_acct_msg: 확인값이 일치하지 않습니다. 정지하려는 계정이 맞습니까? - hint_html: '이 계정을 정지하려면 %{value}를 아래 입력칸에 입력하세요:' - proceed: 완전히 정지시키기 - title: "%{acct} 정지하기" - warning_html: '이 계정을 정지하면 계정의 데이터를 모두 삭제하며 되돌릴 수 없습니다. 이것은 다음을 포함합니다:' tags: accounts: 계정들 hidden: 숨겨짐 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index d0578bc74..700217830 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -439,12 +439,6 @@ nl: last_delivery: Laatste bezorging title: WebSub topic: Account - suspensions: - bad_acct_msg: De bevestigingswaarde kwam niet overeen. Schort je wel het juiste account op? - hint_html: Vul in het veld hieronder %{value} in, om het opschorten van dit account te bevestigen. - proceed: Ga verder - title: "%{acct} opschorten" - warning_html: 'Door het opschorten van dit account worden gegevens van dit account permanent verwijderd, waaronder:' tags: accounts: Accounts hidden: Verborgen diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 0468fac86..e647e400c 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -439,12 +439,6 @@ oc: last_delivery: Darrièra distribucion title: WebSub topic: Subjècte - suspensions: - bad_acct_msg: La valor de confirmacion a pas coïncidit. Sètz a suspendre lo bon compte ? - hint_html: 'Per confirmar la suspension del compte, picatz %{value} al camp çai-jos :' - proceed: Tractat - title: Suspension de %{acct} - warning_html: 'Suspendre aqueste compte suprimirà irreversiblament las donadas del compte, aquò compren :' tags: accounts: Comptes hidden: Amagat diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 79ba6f9fb..7fd5df038 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -445,12 +445,6 @@ pl: last_delivery: Ostatnio doręczono title: WebSub topic: Temat - suspensions: - bad_acct_msg: Zawartość potwierdzenia nie zgadza się. Czy próbujesz zawiesić właściwe konto? - hint_html: 'Aby potwierdzić zawieszenie konta, wprowadź %{value} w poniższe pole:' - proceed: Przejdź - title: Zawieś %{acct} - warning_html: 'Zawieszenie konta będzie skutkowało nieodwracalnym usunięciem danych z tego konta, wliczając:' tags: accounts: Konta hidden: Ukryte diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 27f3b820c..e9625628b 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -439,12 +439,6 @@ pt-BR: last_delivery: Última entrega title: WebSub topic: Tópico - suspensions: - bad_acct_msg: Os valores de confirmação não correspondem. Você está suspendendo a conta certa? - hint_html: 'Para confirmar a suspensão da conta, por favor digite %{value} no campo abaixo:' - proceed: Prosseguir - title: Suspender %{acct} - warning_html: 'Suspender essa conta vai remover irreversivelmente dados dessa conta, o que inclui:' tags: accounts: Contas hidden: Escondido diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 9fa85b7c2..dceb41376 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -427,12 +427,6 @@ ru: last_delivery: Последняя доставка title: WebSub topic: Тема - suspensions: - bad_acct_msg: Не удалось найти такое число подтверждения. Вы уверены, что замораживаете нужный аккаунт? - hint_html: 'Чтобы подтвердить заморозку аккаунта, пожалуйста, введите %{value} в поле ниже:' - proceed: Продолжить - title: Заморозить %{acct} - warning_html: 'Заморозка этого аккаунта приведёт к необратимому удалению данных с этого аккаунта, включая:' title: Администрирование admin_mailer: new_report: diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index ce6a62e87..4363c59e4 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -2,6 +2,13 @@ en: simple_form: hints: + account_warning_preset: + text: You can use toot syntax, such as URLs, hashtags and mentions + admin_account_action: + send_email_notification: The user will receive an explanation of what happened with their account + text_html: Optional. You can use toot syntax. You can add warning presets to save time + type_html: Choose what to do with %{acct} + warning_preset_id: Optional. You can still add custom text to end of the preset defaults: autofollow: People who sign up through the invite will automatically follow you avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px @@ -40,6 +47,18 @@ en: fields: name: Label value: Content + account_warning_preset: + text: Preset text + admin_account_action: + send_email_notification: Notify the user per e-mail + text: Custom warning + type: Action + types: + disable: Disable + none: Do nothing + silence: Silence + suspend: Suspend and irreversibly delete account data + warning_preset_id: Use a warning preset defaults: autofollow: Invite to follow your account avatar: Avatar diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 3458c699c..f44d971a4 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -444,12 +444,6 @@ sk: last_delivery: Posledné doručenie title: WebSub topic: Téma - suspensions: - bad_acct_msg: Hodnota pre potvrdenie sa nezhoduje. Si si istý/á že zamrazuješ ten správny účet? - hint_html: 'Pre potvrdenie zamrazenia účtu, prosím napíš %{value} do následujúceho políčka:' - proceed: Pokračuj - title: Zamraziť %{acct} - warning_html: 'Zamrazením tohto účtu budú dáta na tomto účte nenávratne zmazané, zahŕňajúc:' tags: accounts: Účty hidden: Skryté diff --git a/config/locales/sr.yml b/config/locales/sr.yml index da621a910..8dee9fdac 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -443,12 +443,6 @@ sr: last_delivery: Последња достава title: WebSub topic: Topic - suspensions: - bad_acct_msg: Вредност потврде се не поклапа. Да ли суспендујете прави рачун? - hint_html: 'Да бисте потврдили суспензију налога, унесите %{value} у поље испод:' - proceed: Настави - title: Суспендуј %{acct} - warning_html: 'Суспендовање овог налога ће неповратноизбрисати све податке са овог налога, који укључују:' title: Администрација admin_mailer: new_report: diff --git a/config/routes.rb b/config/routes.rb index 0aba433e2..7723a08af 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -139,6 +139,7 @@ Rails.application.routes.draw do resources :domain_blocks, only: [:index, :new, :create, :show, :destroy] resources :email_domain_blocks, only: [:index, :new, :create, :destroy] resources :action_logs, only: [:index] + resources :warning_presets, except: [:new] resource :settings, only: [:edit, :update] resources :invites, only: [:index, :create, :destroy] do @@ -160,7 +161,14 @@ Rails.application.routes.draw do end end - resources :reports, only: [:index, :show, :update] do + resources :reports, only: [:index, :show] do + member do + post :assign_to_self + post :unassign + post :reopen + post :resolve + end + resources :reported_statuses, only: [:create] end @@ -171,7 +179,8 @@ Rails.application.routes.draw do post :subscribe post :unsubscribe post :enable - post :disable + post :unsilence + post :unsuspend post :redownload post :remove_avatar post :remove_header @@ -180,8 +189,7 @@ Rails.application.routes.draw do resource :change_email, only: [:show, :update] resource :reset, only: [:create] - resource :silence, only: [:create, :destroy] - resource :suspension, only: [:new, :create, :destroy] + resource :action, only: [:new, :create], controller: 'account_actions' resources :statuses, only: [:index, :create, :update, :destroy] resource :confirmation, only: [:create] do diff --git a/db/migrate/20181213184704_create_account_warnings.rb b/db/migrate/20181213184704_create_account_warnings.rb new file mode 100644 index 000000000..e768be277 --- /dev/null +++ b/db/migrate/20181213184704_create_account_warnings.rb @@ -0,0 +1,12 @@ +class CreateAccountWarnings < ActiveRecord::Migration[5.2] + def change + create_table :account_warnings do |t| + t.belongs_to :account, foreign_key: { on_delete: :nullify } + t.belongs_to :target_account, foreign_key: { to_table: 'accounts', on_delete: :cascade } + t.integer :action, null: false, default: 0 + t.text :text, null: false, default: '' + + t.timestamps + end + end +end diff --git a/db/migrate/20181213185533_create_account_warning_presets.rb b/db/migrate/20181213185533_create_account_warning_presets.rb new file mode 100644 index 000000000..9c81f1b5e --- /dev/null +++ b/db/migrate/20181213185533_create_account_warning_presets.rb @@ -0,0 +1,9 @@ +class CreateAccountWarningPresets < ActiveRecord::Migration[5.2] + def change + create_table :account_warning_presets do |t| + t.text :text, null: false, default: '' + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 51ac43e1d..51a7b5e74 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2018_12_07_011115) do +ActiveRecord::Schema.define(version: 2018_12_13_185533) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -76,6 +76,23 @@ ActiveRecord::Schema.define(version: 2018_12_07_011115) do t.index ["tag_id"], name: "index_account_tag_stats_on_tag_id", unique: true end + create_table "account_warning_presets", force: :cascade do |t| + t.text "text", default: "", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + create_table "account_warnings", force: :cascade do |t| + t.bigint "account_id" + t.bigint "target_account_id" + t.integer "action", default: 0, null: false + t.text "text", default: "", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["account_id"], name: "index_account_warnings_on_account_id" + t.index ["target_account_id"], name: "index_account_warnings_on_target_account_id" + end + create_table "accounts", force: :cascade do |t| t.string "username", default: "", null: false t.string "domain" @@ -656,6 +673,8 @@ ActiveRecord::Schema.define(version: 2018_12_07_011115) do add_foreign_key "account_pins", "accounts", on_delete: :cascade add_foreign_key "account_stats", "accounts", on_delete: :cascade add_foreign_key "account_tag_stats", "tags", on_delete: :cascade + add_foreign_key "account_warnings", "accounts", column: "target_account_id", on_delete: :cascade + add_foreign_key "account_warnings", "accounts", on_delete: :nullify add_foreign_key "accounts", "accounts", column: "moved_to_account_id", on_delete: :nullify add_foreign_key "admin_action_logs", "accounts", on_delete: :cascade add_foreign_key "backups", "users", on_delete: :nullify diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb index dbcad3c2d..a348ab3d7 100644 --- a/spec/controllers/admin/accounts_controller_spec.rb +++ b/spec/controllers/admin/accounts_controller_spec.rb @@ -191,58 +191,6 @@ RSpec.describe Admin::AccountsController, type: :controller do end end - describe 'POST #disable' do - subject { post :disable, params: { id: account.id } } - - let(:current_user) { Fabricate(:user, admin: current_user_admin) } - let(:account) { Fabricate(:account, user: user) } - let(:user) { Fabricate(:user, disabled: false, admin: target_user_admin) } - - context 'when user is admin' do - let(:current_user_admin) { true } - - context 'when target user is admin' do - let(:target_user_admin) { true } - - it 'fails to disable account' do - is_expected.to have_http_status :forbidden - expect(user.reload).not_to be_disabled - end - end - - context 'when target user is not admin' do - let(:target_user_admin) { false } - - it 'succeeds in disabling account' do - is_expected.to redirect_to admin_account_path(account.id) - expect(user.reload).to be_disabled - end - end - end - - context 'when user is not admin' do - let(:current_user_admin) { false } - - context 'when target user is admin' do - let(:target_user_admin) { true } - - it 'fails to disable account' do - is_expected.to have_http_status :forbidden - expect(user.reload).not_to be_disabled - end - end - - context 'when target user is not admin' do - let(:target_user_admin) { false } - - it 'fails to disable account' do - is_expected.to have_http_status :forbidden - expect(user.reload).not_to be_disabled - end - end - end - end - describe 'POST #redownload' do subject { post :redownload, params: { id: account.id } } diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb index bcc789c57..b428299ee 100644 --- a/spec/controllers/admin/reports_controller_spec.rb +++ b/spec/controllers/admin/reports_controller_spec.rb @@ -46,73 +46,37 @@ describe Admin::ReportsController do end end - describe 'PUT #update' do - describe 'with an unknown outcome' do - it 'rejects the change' do - report = Fabricate(:report) - put :update, params: { id: report, outcome: 'unknown' } - - expect(response).to have_http_status(404) - end - end - - describe 'with an outcome of `resolve`' do - it 'resolves the report' do - report = Fabricate(:report) - - put :update, params: { id: report, outcome: 'resolve' } - expect(response).to redirect_to(admin_reports_path) - report.reload - expect(report.action_taken_by_account).to eq user.account - expect(report.action_taken).to eq true - end - end - - describe 'with an outsome of `silence`' do - it 'silences the reported account' do - report = Fabricate(:report) - - put :update, params: { id: report, outcome: 'silence' } - expect(response).to redirect_to(admin_reports_path) - report.reload - expect(report.action_taken_by_account).to eq user.account - expect(report.action_taken).to eq true - expect(report.target_account).to be_silenced - end - end - - describe 'with an outsome of `reopen`' do - it 'reopens the report' do - report = Fabricate(:report) + describe 'POST #reopen' do + it 'reopens the report' do + report = Fabricate(:report) - put :update, params: { id: report, outcome: 'reopen' } - expect(response).to redirect_to(admin_report_path(report)) - report.reload - expect(report.action_taken_by_account).to eq nil - expect(report.action_taken).to eq false - end + put :reopen, params: { id: report } + expect(response).to redirect_to(admin_report_path(report)) + report.reload + expect(report.action_taken_by_account).to eq nil + expect(report.action_taken).to eq false end + end - describe 'with an outsome of `assign_to_self`' do - it 'reopens the report' do - report = Fabricate(:report) + describe 'POST #assign_to_self' do + it 'reopens the report' do + report = Fabricate(:report) - put :update, params: { id: report, outcome: 'assign_to_self' } - expect(response).to redirect_to(admin_report_path(report)) - report.reload - expect(report.assigned_account).to eq user.account - end + put :assign_to_self, params: { id: report } + expect(response).to redirect_to(admin_report_path(report)) + report.reload + expect(report.assigned_account).to eq user.account end + end - describe 'with an outsome of `unassign`' do - it 'reopens the report' do - report = Fabricate(:report) + describe 'POST #unassign' do + it 'reopens the report' do + report = Fabricate(:report) - put :update, params: { id: report, outcome: 'unassign' } - expect(response).to redirect_to(admin_report_path(report)) - report.reload - expect(report.assigned_account).to eq nil - end + put :unassign, params: { id: report } + expect(response).to redirect_to(admin_report_path(report)) + report.reload + expect(report.assigned_account).to eq nil end end end diff --git a/spec/controllers/admin/silences_controller_spec.rb b/spec/controllers/admin/silences_controller_spec.rb deleted file mode 100644 index 78560eb39..000000000 --- a/spec/controllers/admin/silences_controller_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'rails_helper' - -describe Admin::SilencesController do - render_views - - before do - sign_in Fabricate(:user, admin: true), scope: :user - end - - describe 'POST #create' do - it 'redirects to admin accounts page' do - account = Fabricate(:account, silenced: false) - - post :create, params: { account_id: account.id } - - account.reload - expect(account.silenced?).to eq true - expect(response).to redirect_to(admin_accounts_path) - end - end - - describe 'DELETE #destroy' do - it 'redirects to admin accounts page' do - account = Fabricate(:account, silenced: true) - - delete :destroy, params: { account_id: account.id } - - account.reload - expect(account.silenced?).to eq false - expect(response).to redirect_to(admin_accounts_path) - end - end -end diff --git a/spec/controllers/admin/suspensions_controller_spec.rb b/spec/controllers/admin/suspensions_controller_spec.rb deleted file mode 100644 index 1bc33e490..000000000 --- a/spec/controllers/admin/suspensions_controller_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -require 'rails_helper' - -describe Admin::SuspensionsController do - render_views - - before do - sign_in Fabricate(:user, admin: true), scope: :user - end - - describe 'GET #new' do - it 'returns 200' do - get :new, params: { account_id: Fabricate(:account).id, report_id: Fabricate(:report).id } - expect(response).to have_http_status(200) - end - end - - describe 'POST #create' do - it 'redirects to admin accounts page' do - account = Fabricate(:account, suspended: false) - expect(Admin::SuspensionWorker).to receive(:perform_async).with(account.id) - - post :create, params: { account_id: account.id, form_admin_suspension_confirmation: { acct: account.acct } } - - expect(response).to redirect_to(admin_accounts_path) - end - end - - describe 'DELETE #destroy' do - it 'redirects to admin accounts page' do - account = Fabricate(:account, suspended: true) - - delete :destroy, params: { account_id: account.id } - - account.reload - expect(account.suspended?).to eq false - expect(response).to redirect_to(admin_accounts_path) - end - end -end diff --git a/spec/fabricators/account_warning_fabricator.rb b/spec/fabricators/account_warning_fabricator.rb new file mode 100644 index 000000000..db161d446 --- /dev/null +++ b/spec/fabricators/account_warning_fabricator.rb @@ -0,0 +1,5 @@ +Fabricator(:account_warning) do + account nil + target_account nil + text "MyText" +end diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb new file mode 100644 index 000000000..6c0b87e7c --- /dev/null +++ b/spec/fabricators/account_warning_preset_fabricator.rb @@ -0,0 +1,3 @@ +Fabricator(:account_warning_preset) do + text "MyText" +end diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb index d9cdb9264..53c836494 100644 --- a/spec/mailers/previews/user_mailer_preview.rb +++ b/spec/mailers/previews/user_mailer_preview.rb @@ -39,4 +39,9 @@ class UserMailerPreview < ActionMailer::Preview def backup_ready UserMailer.backup_ready(User.first, Backup.first) end + + # Preview this email at http://localhost:3000/rails/mailers/user_mailer/warning + def warning + UserMailer.warning(User.first, AccountWarning.new(text: '', action: :silence)) + end end diff --git a/spec/models/account_warning_preset_spec.rb b/spec/models/account_warning_preset_spec.rb new file mode 100644 index 000000000..a859a305f --- /dev/null +++ b/spec/models/account_warning_preset_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe AccountWarningPreset, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/account_warning_spec.rb b/spec/models/account_warning_spec.rb new file mode 100644 index 000000000..5286f9177 --- /dev/null +++ b/spec/models/account_warning_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe AccountWarning, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb new file mode 100644 index 000000000..8c55cf4dd --- /dev/null +++ b/spec/models/admin/account_action_spec.rb @@ -0,0 +1,4 @@ +require 'rails_helper' + +RSpec.describe Admin::AccountAction, type: :model do +end -- cgit From bb62827c16dbf35c70da2dc801f602df3c76fcca Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 22 Dec 2018 23:32:00 +0100 Subject: Remove links to bridge.joinmastodon.org (non-functional) (#9608) Add link to profile directory --- app/javascript/mastodon/features/getting_started/index.js | 2 +- app/javascript/mastodon/locales/ar.json | 2 +- app/javascript/mastodon/locales/ast.json | 2 +- app/javascript/mastodon/locales/bg.json | 2 +- app/javascript/mastodon/locales/ca.json | 2 +- app/javascript/mastodon/locales/co.json | 2 +- app/javascript/mastodon/locales/cs.json | 2 +- app/javascript/mastodon/locales/cy.json | 2 +- app/javascript/mastodon/locales/da.json | 2 +- app/javascript/mastodon/locales/de.json | 2 +- app/javascript/mastodon/locales/defaultMessages.json | 4 ++-- app/javascript/mastodon/locales/el.json | 2 +- app/javascript/mastodon/locales/en.json | 2 +- app/javascript/mastodon/locales/eo.json | 2 +- app/javascript/mastodon/locales/es.json | 2 +- app/javascript/mastodon/locales/eu.json | 2 +- app/javascript/mastodon/locales/fa.json | 2 +- app/javascript/mastodon/locales/fi.json | 2 +- app/javascript/mastodon/locales/fr.json | 2 +- app/javascript/mastodon/locales/gl.json | 2 +- app/javascript/mastodon/locales/he.json | 2 +- app/javascript/mastodon/locales/hr.json | 2 +- app/javascript/mastodon/locales/hu.json | 2 +- app/javascript/mastodon/locales/hy.json | 2 +- app/javascript/mastodon/locales/id.json | 2 +- app/javascript/mastodon/locales/io.json | 2 +- app/javascript/mastodon/locales/it.json | 2 +- app/javascript/mastodon/locales/ja.json | 2 +- app/javascript/mastodon/locales/ka.json | 2 +- app/javascript/mastodon/locales/ko.json | 2 +- app/javascript/mastodon/locales/ms.json | 2 +- app/javascript/mastodon/locales/nl.json | 2 +- app/javascript/mastodon/locales/no.json | 2 +- app/javascript/mastodon/locales/oc.json | 2 +- app/javascript/mastodon/locales/pl.json | 2 +- app/javascript/mastodon/locales/pt-BR.json | 2 +- app/javascript/mastodon/locales/pt.json | 2 +- app/javascript/mastodon/locales/ro.json | 2 +- app/javascript/mastodon/locales/ru.json | 2 +- app/javascript/mastodon/locales/sk.json | 2 +- app/javascript/mastodon/locales/sl.json | 2 +- app/javascript/mastodon/locales/sr-Latn.json | 2 +- app/javascript/mastodon/locales/sr.json | 2 +- app/javascript/mastodon/locales/sv.json | 2 +- app/javascript/mastodon/locales/ta.json | 2 +- app/javascript/mastodon/locales/te.json | 2 +- app/javascript/mastodon/locales/th.json | 2 +- app/javascript/mastodon/locales/tr.json | 2 +- app/javascript/mastodon/locales/uk.json | 2 +- app/javascript/mastodon/locales/whitelist_ms.json | 2 ++ app/javascript/mastodon/locales/zh-CN.json | 2 +- app/javascript/mastodon/locales/zh-HK.json | 2 +- app/javascript/mastodon/locales/zh-TW.json | 2 +- app/views/user_mailer/welcome.html.haml | 2 -- app/views/user_mailer/welcome.text.erb | 1 - config/locales/ar.yml | 1 - config/locales/ca.yml | 1 - config/locales/co.yml | 1 - config/locales/cs.yml | 1 - config/locales/cy.yml | 1 - config/locales/da.yml | 1 - config/locales/de.yml | 1 - config/locales/el.yml | 1 - config/locales/en.yml | 1 - config/locales/eo.yml | 1 - config/locales/es.yml | 1 - config/locales/eu.yml | 1 - config/locales/fa.yml | 1 - config/locales/fi.yml | 1 - config/locales/fr.yml | 1 - config/locales/gl.yml | 1 - config/locales/hu.yml | 1 - config/locales/it.yml | 1 - config/locales/ja.yml | 1 - config/locales/ka.yml | 1 - config/locales/ko.yml | 1 - config/locales/nl.yml | 1 - config/locales/no.yml | 1 - config/locales/oc.yml | 1 - config/locales/pl.yml | 1 - config/locales/pt-BR.yml | 1 - config/locales/ru.yml | 1 - config/locales/sk.yml | 1 - config/locales/sr.yml | 1 - config/locales/sv.yml | 1 - config/locales/uk.yml | 1 - config/locales/zh-CN.yml | 1 - config/locales/zh-HK.yml | 1 - config/locales/zh-TW.yml | 1 - 89 files changed, 55 insertions(+), 90 deletions(-) create mode 100644 app/javascript/mastodon/locales/whitelist_ms.json (limited to 'config/locales') diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.js index 0fd9badac..1ca3fbaa1 100644 --- a/app/javascript/mastodon/features/getting_started/index.js +++ b/app/javascript/mastodon/features/getting_started/index.js @@ -136,7 +136,7 @@ class GettingStarted extends ImmutablePureComponent {
    -
  • ·
  • +
  • ·
  • {invitesEnabled &&
  • ·
  • } {multiColumn &&
  • ·
  • }
  • ·
  • diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 2a19f1991..24313cf71 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -132,8 +132,8 @@ "follow_request.authorize": "ترخيص", "follow_request.reject": "رفض", "getting_started.developers": "المُطوِّرون", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "البحث عن أصدقاء على تويتر", "getting_started.heading": "إستعدّ للبدء", "getting_started.invite": "دعوة أشخاص", "getting_started.open_source_notice": "ماستدون برنامج مفتوح المصدر. يمكنك المساهمة، أو الإبلاغ عن تقارير الأخطاء، على جيت هب {github}.", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 2ba6f04a3..e38c45963 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Refugar", "getting_started.developers": "Desendolcadores", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentación", - "getting_started.find_friends": "Alcontrar collacios de Twitter", "getting_started.heading": "Entamu", "getting_started.invite": "Convidar xente", "getting_started.open_source_notice": "Mastodon ye software de códigu abiertu. Pues collaborar o informar de fallos en {github} (GitHub).", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 54be16bdf..b15e20813 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Първи стъпки", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon е софтуер с отворен код. Можеш да помогнеш или да докладваш за проблеми в Github: {github}.", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 38302bbed..f24439312 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autoritzar", "follow_request.reject": "Rebutjar", "getting_started.developers": "Desenvolupadors", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentació", - "getting_started.find_friends": "Troba amics de Twitter", "getting_started.heading": "Començant", "getting_started.invite": "Convida gent", "getting_started.open_source_notice": "Mastodon és un programari de codi obert. Pots contribuir o informar de problemes a GitHub a {github}.", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 4b5e4b9c5..39ca5b7ae 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Auturizà", "follow_request.reject": "Righjittà", "getting_started.developers": "Sviluppatori", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Truvà amichi da Twitter", "getting_started.heading": "Per principià", "getting_started.invite": "Invità ghjente", "getting_started.open_source_notice": "Mastodon ghjè un lugiziale liberu. Pudete cuntribuisce à u codice o a traduzione, o palisà un bug, nant'à GitHub: {github}.", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 3cfb04ff0..49a1b09fb 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorizovat", "follow_request.reject": "Odmítnout", "getting_started.developers": "Vývojáři", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Dokumentace", - "getting_started.find_friends": "Najděte si přátele z Twitteru", "getting_started.heading": "Začínáme", "getting_started.invite": "Pozvat lidi", "getting_started.open_source_notice": "Mastodon je otevřený software. Na GitHubu k němu můžete přispět nebo nahlásit chyby: {github}.", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 438b228f3..e386e7ec0 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Caniatau", "follow_request.reject": "Gwrthod", "getting_started.developers": "Datblygwyr", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Dogfennaeth", - "getting_started.find_friends": "Canfod ffrindiau o Twitter", "getting_started.heading": "Dechrau", "getting_started.invite": "Gwahodd pobl", "getting_started.open_source_notice": "Mae Mastodon yn feddalwedd côd agored. Mae modd cyfrannu neu adrodd materion ar GitHUb ar {github}.", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 625e2a2c5..3f350d9f9 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Godkend", "follow_request.reject": "Afvis", "getting_started.developers": "Udviklere", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Dokumentation", - "getting_started.find_friends": "Find venner fra Twitter", "getting_started.heading": "Kom igang", "getting_started.invite": "Inviter folk", "getting_started.open_source_notice": "Mastodon er et open source software. Du kan bidrage eller rapporterer fejl på GitHub {github}.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 2f689f0fc..350d4d71e 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Erlauben", "follow_request.reject": "Ablehnen", "getting_started.developers": "Entwickler", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Dokumentation", - "getting_started.find_friends": "Finde Freunde von Twitter", "getting_started.heading": "Erste Schritte", "getting_started.invite": "Leute einladen", "getting_started.open_source_notice": "Mastodon ist quelloffene Software. Du kannst auf GitHub unter {github} dazu beitragen oder Probleme melden.", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index 473cb6536..0d66a3706 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -1247,8 +1247,8 @@ "id": "getting_started.heading" }, { - "defaultMessage": "Find friends from Twitter", - "id": "getting_started.find_friends" + "defaultMessage": "Profile directory", + "id": "getting_started.directory" }, { "defaultMessage": "Invite people", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index ce97597b3..e46318f18 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Ενέκρινε", "follow_request.reject": "Απέρριψε", "getting_started.developers": "Ανάπτυξη", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Τεκμηρίωση", - "getting_started.find_friends": "Βρες φίλους από το Twitter", "getting_started.heading": "Αφετηρία", "getting_started.invite": "Προσκάλεσε κόσμο", "getting_started.open_source_notice": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να συνεισφέρεις ή να αναφέρεις ζητήματα στο GitHub στο {github}.", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 04220b75c..1e57b1c8a 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Getting started", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index cd6c2b822..cfeec70b4 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Rajtigi", "follow_request.reject": "Rifuzi", "getting_started.developers": "Programistoj", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Dokumentado", - "getting_started.find_friends": "Trovi amikojn el Twitter", "getting_started.heading": "Por komenci", "getting_started.invite": "Inviti homojn", "getting_started.open_source_notice": "Mastodon estas malfermitkoda programo. Vi povas kontribui aŭ raporti problemojn en GitHub je {github}.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 7fc9bf95c..e3c267b40 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rechazar", "getting_started.developers": "Desarrolladores", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Encuentra a tus amigos desde Twitter", "getting_started.heading": "Primeros pasos", "getting_started.invite": "Invitar usuarios", "getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 436bede2b..b882ae2a7 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Baimendu", "follow_request.reject": "Ukatu", "getting_started.developers": "Garatzaileak", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Dokumentazioa", - "getting_started.find_friends": "Aurkitu Twitter-eko lagunak", "getting_started.heading": "Menua", "getting_started.invite": "Gonbidatu jendea", "getting_started.open_source_notice": "Mastodon software librea da. Ekarpenak egin ditzakezu edo akatsen berri eman GitHub bidez: {github}.", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index f3bb0acc1..e2790d8b6 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -132,8 +132,8 @@ "follow_request.authorize": "اجازه دهید", "follow_request.reject": "اجازه ندهید", "getting_started.developers": "برای برنامه‌نویسان", + "getting_started.directory": "Profile directory", "getting_started.documentation": "راهنما", - "getting_started.find_friends": "یافتن دوستان از توییتر", "getting_started.heading": "آغاز کنید", "getting_started.invite": "دعوت از دوستان", "getting_started.open_source_notice": "ماستدون یک نرم‌افزار آزاد است. می‌توانید در ساخت آن مشارکت کنید یا مشکلاتش را در {github} گزارش دهید.", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index bb1fcca5d..84638af35 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Valtuuta", "follow_request.reject": "Hylkää", "getting_started.developers": "Kehittäjille", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Löydä ystäväsi Twitteristä", "getting_started.heading": "Aloitus", "getting_started.invite": "Kutsu ihmisiä", "getting_started.open_source_notice": "Mastodon on avoimen lähdekoodin ohjelma. Voit avustaa tai raportoida ongelmia GitHubissa: {github}.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 5a6dc76f4..68ff6d8ee 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Accepter", "follow_request.reject": "Rejeter", "getting_started.developers": "Développeurs", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Trouver des amis depuis Twitter", "getting_started.heading": "Pour commencer", "getting_started.invite": "Inviter des gens", "getting_started.open_source_notice": "Mastodon est un logiciel libre. Vous pouvez contribuer et envoyer vos commentaires et rapports de bogues via {github} sur GitHub.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 4670768af..62cd1e9e1 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rexeitar", "getting_started.developers": "Desenvolvedoras", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Atope amigos da Twitter", "getting_started.heading": "Comezando", "getting_started.invite": "Convide a xente", "getting_started.open_source_notice": "Mastodon é software de código aberto. Pode contribuír ou informar de fallos en GitHub en {github}.", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index c364f6248..d0fd75e5f 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -132,8 +132,8 @@ "follow_request.authorize": "קבלה", "follow_request.reject": "דחיה", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "בואו נתחיל", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "מסטודון היא תוכנה חופשית (בקוד פתוח). ניתן לתרום או לדווח על בעיות בגיטהאב: {github}.", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 1b03e13d8..b5685a9a0 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autoriziraj", "follow_request.reject": "Odbij", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Počnimo", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon je softver otvorenog koda. Možeš pridonijeti ili prijaviti probleme na GitHubu {github}.", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 0750af8e7..b87dcd597 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Engedélyez", "follow_request.reject": "Visszautasít", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Első lépések", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon egy nyílt forráskódú szoftver. Hozzájárulás vagy problémák jelentése a GitHub-on {github}.", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 23f28009d..2fb96cbf3 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Վավերացնել", "follow_request.reject": "Մերժել", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Ինչպես սկսել", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Մաստոդոնը բաց ելատեքստով ծրագրակազմ է։ Կարող ես ներդրում անել կամ վրեպներ զեկուցել ԳիթՀաբում՝ {github}։", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index d852ebe57..81fdbc711 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Izinkan", "follow_request.reject": "Tolak", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Mulai", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon adalah perangkat lunak yang bersifat terbuka. Anda dapat berkontribusi atau melaporkan permasalahan/bug di Github {github}.", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index ab7ced42c..e51b074ae 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Yurizar", "follow_request.reject": "Refuzar", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Debuto", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon esas programaro kun apertita kodexo. Tu povas kontributar o signalar problemi en GitHub ye {github}.", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index f9e280b82..b1208f382 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorizza", "follow_request.reject": "Rifiuta", "getting_started.developers": "Sviluppatori", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentazione", - "getting_started.find_friends": "Trova amici da Twitter", "getting_started.heading": "Come iniziare", "getting_started.invite": "Invita qualcuno", "getting_started.open_source_notice": "Mastodon è un software open source. Puoi contribuire o segnalare errori su GitHub all'indirizzo {github}.", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 22d4ff442..4796581b9 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -132,8 +132,8 @@ "follow_request.authorize": "許可", "follow_request.reject": "拒否", "getting_started.developers": "開発", + "getting_started.directory": "Profile directory", "getting_started.documentation": "ドキュメント", - "getting_started.find_friends": "Twitterの友達を探す", "getting_started.heading": "スタート", "getting_started.invite": "招待", "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ( {github} ) から開発に参加したり、問題を報告したりできます。", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 12d026ad3..8a019a476 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -132,8 +132,8 @@ "follow_request.authorize": "ავტორიზაცია", "follow_request.reject": "უარყოფა", "getting_started.developers": "დეველოპერები", + "getting_started.directory": "Profile directory", "getting_started.documentation": "დოკუმენტაცია", - "getting_started.find_friends": "იპოვეთ მეგობრები ტვიტერიდან", "getting_started.heading": "დაწყება", "getting_started.invite": "ხალხის მოწვევა", "getting_started.open_source_notice": "მასტოდონი ღია პროგრამაა. შეგიძლიათ შეუწყოთ ხელი ან შექმნათ პრობემის რეპორტი {github}-ზე.", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 50f4b6e57..ce10a6550 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -132,8 +132,8 @@ "follow_request.authorize": "허가", "follow_request.reject": "거부", "getting_started.developers": "개발자", + "getting_started.directory": "Profile directory", "getting_started.documentation": "문서", - "getting_started.find_friends": "트위터에서 친구 찾기", "getting_started.heading": "시작", "getting_started.invite": "초대", "getting_started.open_source_notice": "Mastodon은 오픈 소스 소프트웨어입니다. 누구나 GitHub({github})에서 개발에 참여하거나, 문제를 보고할 수 있습니다.", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 775f114ce..9e613ce59 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Getting started", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 0c1cc54a3..ec54dea09 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Goedkeuren", "follow_request.reject": "Afkeuren", "getting_started.developers": "Ontwikkelaars", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentatie", - "getting_started.find_friends": "Vind vrienden van Twitter", "getting_started.heading": "Aan de slag", "getting_started.invite": "Mensen uitnodigen", "getting_started.open_source_notice": "Mastodon is vrije software. Je kunt bijdragen of problemen melden op GitHub via {github}.", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 931288ae9..7ffdd78a0 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorisér", "follow_request.reject": "Avvis", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Kom i gang", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidra eller rapportere problemer på GitHub på {github}.", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 79623abac..39e734bee 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Acceptar", "follow_request.reject": "Regetar", "getting_started.developers": "Desvelopaires", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentacion", - "getting_started.find_friends": "Trobar d’amics de Twitter", "getting_started.heading": "Per començar", "getting_started.invite": "Convidar de monde", "getting_started.open_source_notice": "Mastodon es un logicial liure. Podètz contribuir e mandar vòstres comentaris e rapòrt de bug via {github} sus GitHub.", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index e2adeb045..0210ec10f 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autoryzuj", "follow_request.reject": "Odrzuć", "getting_started.developers": "Dla programistów", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Dokumentacja", - "getting_started.find_friends": "Znajdź znajomych z Twittera", "getting_started.heading": "Rozpocznij", "getting_started.invite": "Zaproś znajomych", "getting_started.open_source_notice": "Mastodon jest oprogramowaniem o otwartym źródle. Możesz pomóc w rozwoju lub zgłaszać błędy na GitHubie tutaj: {github}.", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 3aafeaeba..0efcad486 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rejeitar", "getting_started.developers": "Desenvolvedores", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentação", - "getting_started.find_friends": "Encontre amizades do Twitter", "getting_started.heading": "Primeiros passos", "getting_started.invite": "Convide pessoas", "getting_started.open_source_notice": "Mastodon é um software de código aberto. Você pode contribuir ou reportar problemas na página do GitHub do projeto: {github}.", diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json index 4cdb1d621..049a8901a 100644 --- a/app/javascript/mastodon/locales/pt.json +++ b/app/javascript/mastodon/locales/pt.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rejeitar", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Primeiros passos", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon é software de fonte aberta. Podes contribuir ou repostar problemas no GitHub do projecto: {github}.", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 1d0d92283..211f2e660 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Autorizează", "follow_request.reject": "Respinge", "getting_started.developers": "Dezvoltatori", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentație", - "getting_started.find_friends": "Importă din Twitter", "getting_started.heading": "Începe", "getting_started.invite": "Invită oameni", "getting_started.open_source_notice": "Mastodon este o rețea de socializare de tip open source. Puteți contribuii la dezvoltarea ei sau să semnalați erorile pe GitHub la {github}.", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index a18b7e4de..0d10c663a 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Авторизовать", "follow_request.reject": "Отказать", "getting_started.developers": "Для разработчиков", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Документация", - "getting_started.find_friends": "Найти друзей из Twitter", "getting_started.heading": "Добро пожаловать", "getting_started.invite": "Пригласить людей", "getting_started.open_source_notice": "Mastodon - сервис с открытым исходным кодом. Вы можете помочь проекту или сообщить о проблемах на GitHub по адресу {github}.", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index fadb764c9..d5e7c0836 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Povoľ prístup", "follow_request.reject": "Odmietni", "getting_started.developers": "Vývojári", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Dokumentácia", - "getting_started.find_friends": "Nájdi priateľov z Twitteru", "getting_started.heading": "Začni tu", "getting_started.invite": "Pozvať ľudí", "getting_started.open_source_notice": "Mastodon je softvér s otvoreným kódom. Nahlásiť chyby, alebo prispievať môžeš na GitHube v {github}.", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 96431da89..8b7b4586a 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Odobri", "follow_request.reject": "Zavrni", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Prvi koraki", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon je odprtokodna programska oprema. V GitHubu na {github} lahko prispevate ali poročate o napakah.", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 114d0d5ed..310456ca1 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Odobri", "follow_request.reject": "Odbij", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Da počnete", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodont je softver otvorenog koda. Možete mu doprineti ili prijaviti probleme preko GitHub-a na {github}.", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 02d554c16..01f215540 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Одобри", "follow_request.reject": "Одбиј", "getting_started.developers": "Програмери", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Документација", - "getting_started.find_friends": "Пронађите пријатеље са Твитера", "getting_started.heading": "Да почнете", "getting_started.invite": "Позовите људе", "getting_started.open_source_notice": "Мастoдон је софтвер отвореног кода. Можете му допринети или пријавити проблеме преко ГитХаба на {github}.", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index ecc75029a..82fef145e 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Godkänn", "follow_request.reject": "Avvisa", "getting_started.developers": "Utvecklare", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Hitta vänner från Twitter", "getting_started.heading": "Kom igång", "getting_started.invite": "Skicka inbjudningar", "getting_started.open_source_notice": "Mastodon är programvara med öppen källkod. Du kan bidra eller rapportera problem via GitHub på {github}.", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 775f114ce..9e613ce59 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Getting started", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 7136b2347..2df54b6d8 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -132,8 +132,8 @@ "follow_request.authorize": "అనుమతించు", "follow_request.reject": "తిరస్కరించు", "getting_started.developers": "డెవలపర్లు", + "getting_started.directory": "Profile directory", "getting_started.documentation": "డాక్యుమెంటేషన్", - "getting_started.find_friends": "ట్విట్టర్ నుండి స్నేహితులను కనుగొనండి", "getting_started.heading": "మొదలుపెడదాం", "getting_started.invite": "వ్యక్తులను ఆహ్వానించండి", "getting_started.open_source_notice": "మాస్టొడొన్ ఓపెన్ సోర్స్ సాఫ్ట్వేర్. మీరు {github} వద్ద GitHub పై సమస్యలను నివేదించవచ్చు లేదా తోడ్పడచ్చు.", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index e39de72c2..92bb05e7c 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Getting started", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 990e370f7..134285953 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Yetkilendir", "follow_request.reject": "Reddet", "getting_started.developers": "Developers", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "Find friends from Twitter", "getting_started.heading": "Başlangıç", "getting_started.invite": "Invite people", "getting_started.open_source_notice": "Mastodon açık kaynaklı bir yazılımdır. Github {github}. {apps} üzerinden katkıda bulunabilir, hata raporlayabilirsiniz.", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 965779fbb..752112588 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -132,8 +132,8 @@ "follow_request.authorize": "Авторизувати", "follow_request.reject": "Відмовити", "getting_started.developers": "Розробникам", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Документація", - "getting_started.find_friends": "Знайдіть друзів із Twitter", "getting_started.heading": "Ласкаво просимо", "getting_started.invite": "Запросіть людей", "getting_started.open_source_notice": "Mastodon - програма з відкритим вихідним кодом. Ви можете допомогти проекту, або повідомити про проблеми на GitHub за адресою {github}.", diff --git a/app/javascript/mastodon/locales/whitelist_ms.json b/app/javascript/mastodon/locales/whitelist_ms.json new file mode 100644 index 000000000..0d4f101c7 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_ms.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 2b50b5729..54aa84681 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -132,8 +132,8 @@ "follow_request.authorize": "同意", "follow_request.reject": "拒绝", "getting_started.developers": "开发", + "getting_started.directory": "Profile directory", "getting_started.documentation": "文档", - "getting_started.find_friends": "寻找 Twitter 好友", "getting_started.heading": "开始使用", "getting_started.invite": "邀请用户", "getting_started.open_source_notice": "Mastodon 是一个开源软件。欢迎前往 GitHub({github})贡献代码或反馈问题。", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 867831af2..927cf9578 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -132,8 +132,8 @@ "follow_request.authorize": "批准", "follow_request.reject": "拒絕", "getting_started.developers": "開發者", + "getting_started.directory": "Profile directory", "getting_started.documentation": "Documentation", - "getting_started.find_friends": "尋找 Twitter 好友", "getting_started.heading": "開始使用", "getting_started.invite": "邀請使用者", "getting_started.open_source_notice": "Mastodon(萬象)是一個開放源碼的軟件。你可以在官方 GitHub ({github}) 貢獻或者回報問題。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index a796311ee..e5be85ac5 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -132,8 +132,8 @@ "follow_request.authorize": "授權", "follow_request.reject": "拒絕", "getting_started.developers": "開發", + "getting_started.directory": "Profile directory", "getting_started.documentation": "文件", - "getting_started.find_friends": "尋找 Twitter 好友", "getting_started.heading": "馬上開始", "getting_started.invite": "邀請使用者", "getting_started.open_source_notice": "Mastodon 是開源軟體。你可以在 GitHub {github} 上做出貢獻或是回報問題。", diff --git a/app/views/user_mailer/welcome.html.haml b/app/views/user_mailer/welcome.html.haml index d734da67d..4a5788bf6 100644 --- a/app/views/user_mailer/welcome.html.haml +++ b/app/views/user_mailer/welcome.html.haml @@ -136,8 +136,6 @@ %ul %li %span= t 'user_mailer.welcome.tip_mobile_webapp' - %li - %span= t 'user_mailer.welcome.tip_bridge_html', bridge_url: 'https://bridge.joinmastodon.org' %li %span= t 'user_mailer.welcome.tip_following' %li diff --git a/app/views/user_mailer/welcome.text.erb b/app/views/user_mailer/welcome.text.erb index 845458c32..e310d7ca6 100644 --- a/app/views/user_mailer/welcome.text.erb +++ b/app/views/user_mailer/welcome.text.erb @@ -24,7 +24,6 @@ <%= t 'user_mailer.welcome.tips' %> * <%= t 'user_mailer.welcome.tip_mobile_webapp' %> -* <%= strip_tags(t('user_mailer.welcome.tip_bridge_html')) %> (https://bridge.joinmastodon.org) * <%= t 'user_mailer.welcome.tip_following' %> * <%= t 'user_mailer.welcome.tip_local_timeline', instance: @instance %> * <%= t 'user_mailer.welcome.tip_federated_timeline' %> diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 0652089d4..84de592d9 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -869,7 +869,6 @@ ar: full_handle_hint: هذا هو ما يجب تقديمه لأصدقائك قصد أن يكون بإمكانهم متابَعتك أو مُراسَلتك حتى و إن كانت حساباتهم على خوادم أخرى. review_preferences_action: تعديل التفضيلات subject: أهلًا بك على ماستدون - tip_bridge_html: إن كنت قادما مِن تويتر، باستطاعتك العثور على أصدقائك على ماستدون باستخدام تطبيق الجسر بشرط أن يكون أصدقاؤك قد سجلوا حساباتهم على الجسر مِن قبل، و إلّا فلن تنجح العملية ! tip_federated_timeline: الخيط الزمني الفديرالي هو بمثابة شبه نظرة شاملة على شبكة ماستدون. غير أنه لا يشمل إلا على الأشخاص المتابَعين مِن طرف جيرانك و جاراتك، لذا فهذا الخيط لا يعكس كافة الشبكة برُمّتها. tip_following: أنت تتبع تلقائيا مديري و مديرات الخادم. للعثور على أشخاص مميزين أو قد تهمك حساباتهم بإمكانك الإطلاع على الخيوط المحلية و كذا الفدرالية. tip_local_timeline: الخيط الزمني المحلي هو بمثابة نظرة سريعة على الأشخاص المتواجدين على %{instance} يمكن اعتبارهم كجيرانك وجاراتك الأقرب إليك! diff --git a/config/locales/ca.yml b/config/locales/ca.yml index b7e3cb7f6..5b9acd799 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -925,7 +925,6 @@ ca: review_preferences_action: Canviar preferències review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF. subject: Benvingut/da a Mastodon - tip_bridge_html: Si vens de Twitter, pots trobar els teus amics a Mastodon mitjançant l'aplicació bridge . Només funciona si també ells usen aquesta aplicació pont! tip_federated_timeline: La línia de temps federada és el cabal principal de la xarxa Mastodon. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està complet. tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada. tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers! diff --git a/config/locales/co.yml b/config/locales/co.yml index 3df78f007..9b94e84a6 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -925,7 +925,6 @@ co: review_preferences_action: Mudificà e priferenze review_preferences_step: Quì pudete adattà u cumpurtamentu di Mastodon à e vostre priferenze, cum’è l’email che vulete riceve, u nivellu di cunfidenzialità predefinitu di i vostri statuti, o u cumpurtamentu di i GIF animati. subject: Benvenutu·a nant’à Mastodon - tip_bridge_html: S’è voi venite di Twitter, pudete truvà i vostri amichi da quallà chì sò nant’à Mastodon cù a bridge app. Mà ùn marchja chè s’elli l’anu ancu usata! tip_federated_timeline: A linea pubblica glubale mostra i statuti da altre istanze nant’a rete Mastodon, mà ùn hè micca cumpleta perchè ci sò soli i conti à quelli sò abbunati membri di a vostr’istanza. tip_following: Site digià abbunatu·a à l’amministratori di u vostru servore. Per truvà d’altre parsone da siguità, pudete pruvà e linee pubbliche. tip_local_timeline: A linea pubblica lucale ghjè una vista crunulogica di i statuti di a ghjente nant’à %{instance}. Quessi sò i vostri cunvicini! diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 0042d5641..506b7ca24 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -938,7 +938,6 @@ cs: review_preferences_action: Změnit nastavení review_preferences_step: Nezapomeňte si nastavit své volby, například jaké e-maily chcete přijímat či jak soukromé mají být vaše příspěvky ve výchozím stavu. Nemáte-li epilepsii, můžete si nastavit automatické přehrávání obrázků GIF. subject: Vítejte na Mastodonu - tip_bridge_html: Pokud přicházíte z Twitteru, můžete najít vaše přátele na Mastodonu pomocí mostové aplikace. Funguje ovšem pouze, pokud ji oni také někdy použili! tip_federated_timeline: Federovaná časová osa je náhled celé sítě Mastodon. Zahrnuje ovšem pouze lidi, které sledují vaši sousedé, takže není úplná. tip_following: Administrátora/y serveru sledujete automaticky. Chcete-li najít další zajímavé lidi, podívejte se na místní a federované časové osy. tip_local_timeline: Místní časová osa je náhled lidí na %{instance}. Toto jsou vaši nejbližší sousedé! diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 2467d3e78..9f8144ff2 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -877,7 +877,6 @@ cy: review_preferences_action: Newid dewisiadau review_preferences_step: Gwnewch yn siŵr i chi osod eich dewisiadau, megis pa e-byst hoffech eu derbyn, neu ba lefel preifatrwydd hoffech eich tŵtiau ragosod i. Os nad oes gennych salwch symud, gallwch ddewis i ganiatau chwarae GIFs yn awtomatig. subject: Croeso i Mastodon - tip_bridge_html: Os ydych yn dod o Twitter, mae modd i chi ganfod eich ffrindiau ar Mastodon drwy ddefnyddio'r 1ap pontio2. Mae hyn ond yn gweithio os ydynt hwythau yn defnyddio'r ap pontio hefyd! tip_federated_timeline: Mae'r ffrwd ffederasiwn yn olwg firehose o'r rhwydwaith Mastodon. Ond mae ond yn cynnwys y bobl mae eich cymdogion wedi ymrestru iddynt, felly nid yw'n gyflawn. tip_following: Rydych yn dilyn goruwchwyliwr eich gweinydd yn ddiofyn. I ganfod pobl mwy diddorol, edrychwch ar y ffrydiau lleol a'r rhai wedi ei ffedereiddio. tip_local_timeline: Mae'r ffrwd leol yn olwg firehose o bobl ar %{instance}. Dyma eich cymdogion agosaf! diff --git a/config/locales/da.yml b/config/locales/da.yml index 202f6bfb3..f989549d7 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -818,7 +818,6 @@ da: review_preferences_action: Ændre præferencer review_preferences_step: Vær sikker på at sætte dine præferencer, så som hvilke emails du kunne tænke dig at modtage, eller hvilket niveau af privatliv der skal være standard for dine opslag. Hvis du kunne tænke dig ikke at blive køresyg, kan du vælge at aktivere automatisk afspilning af GIFfer. subject: Velkommen til Mastodon - tip_bridge_html: Hvis du kommer fra Twitter, kan du finde dine venner på Mastodon ved at bruge bridge appen. Den virker dog kun hvis de også bruger bridge appen! tip_federated_timeline: Den delte tidslinje er et brandslange agtigt indblik over Mastodon netværket. Men det inkluderer kun folk dine naboer abonnerer på, så den er ikke fuldendt. tip_following: Du følger som standard administratoren(e) for den server du er på. For at finde flere folk, tjek både den lokale og fælles tidslinje. tip_local_timeline: Den lokale tidslinje er et have af folk i %{instance}. Disse er dine umiddelbare naboer! diff --git a/config/locales/de.yml b/config/locales/de.yml index 647897171..c33a6c0db 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -927,7 +927,6 @@ de: review_preferences_action: Einstellungen ändern review_preferences_step: Stelle sicher, dass du deine Einstellungen einstellst, wie zum Beispiel welche E-Mails du gerne erhalten möchtest oder was für Privatsphäreneinstellungen voreingestellt werden sollten. Wenn dir beim Ansehen von GIFs nicht schwindelig wird, dann kannst du auch das automatische Abspielen dieser aktivieren. subject: Willkommen bei Mastodon - tip_bridge_html: Wenn du gerade von Twitter kommst, dann kannst du deine Freunde auf Mastodon mithilfe der Bridge-App finden. Es funktioniert aber auch nur, wenn diese die Bridge-App vorher verwendet haben! tip_federated_timeline: Die föderierte Zeitleiste ist die sehr große Ansicht vom Mastodon-Netzwerk. Sie enthält aber auch nur Leute, denen du und deine Nachbarn folgen, sie ist also nicht komplett. tip_following: Du folgst standardmäßig deinen Server-Admin(s). Um mehr interessante Leute zu finden, kannst du die lokale oder öffentliche Zeitleiste durchsuchen. tip_local_timeline: Die lokale Zeitleiste ist eine Ansicht aller Leute auf %{instance}. Diese sind deine Nachbarn! diff --git a/config/locales/el.yml b/config/locales/el.yml index e03a116d0..4c9a549c6 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -924,7 +924,6 @@ el: review_preferences_action: Αλλαγή προτιμήσεων review_preferences_step: Σιγουρέψου πως έχεις ορίσει τις προτιμήσεις σου, όπως το ποια email θέλεις να λαμβάνεις, ή ποιο επίπεδο ιδιωτικότητας θέλεις να έχουν οι δημοσιεύσεις σου. Αν δεν σε πιάνει ναυτία, μπορείς να ενεργοποιήσεις την αυτόματη αναπαραγωγή των GIF. subject: Καλώς ήρθες στο Mastodon - tip_bridge_html: Αν έχεις έρθει από το Twitter, μπορείς να βρεις τους φίλους και τις φίλες σου στο Mastodon χρησιμοποιώντας την βοηθητική εφαρμογή. Υπόψιν πως δουλεύει μόνο αν την έχουν χρησιμοποιήσει και εκείνοι! tip_federated_timeline: Η ομοσπονδιακή ροή είναι μια όψη πραγματικού χρόνου στο δίκτυο του Mastodon. Παρόλα αυτά, περιλαμβάνει μόνο όσους ακολουθούν οι γείτονές σου, άρα δεν είναι πλήρης. tip_following: Ακολουθείς το διαχειριστή του διακομιστή σου αυτόματα. Για να βρεις περισσότερους ενδιαφέροντες ανθρώπους, έλεγξε την τοπική και την ομοσπονδιακή ροή. tip_local_timeline: Η τοπική ροή είναι η όψη πραγματικού χρόνου των ανθρώπων στον κόμβο %{instance}. Αυτοί είναι οι άμεσοι γείτονές σου! diff --git a/config/locales/en.yml b/config/locales/en.yml index bea182f0b..091a4b72c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -953,7 +953,6 @@ en: review_preferences_action: Change preferences review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level you’d like your posts to default to. If you don’t have motion sickness, you could choose to enable GIF autoplay. subject: Welcome to Mastodon - tip_bridge_html: If you are coming from Twitter, you can find your friends on Mastodon by using the bridge app. It only works if they also used the bridge app though! tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete. tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines. tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours! diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 6a62f7021..24cba67c3 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -819,7 +819,6 @@ eo: review_preferences_action: Ŝanĝi preferojn review_preferences_step: Estu certa ke vi agordis viajn preferojn, kiel kiujn retmesaĝojn vi ŝatus ricevi, aŭ kiun dekomencan privatecan nivelon vi ŝatus ke viaj mesaĝoj havu. Se tio ne ĝenas vin, vi povas ebligi aŭtomatan ekigon de GIF-oj. subject: Bonvenon en Mastodon - tip_bridge_html: Se vi venas de Twitter, vi povas trovi viajn amikojn en Mastodon per uzo de la ponta aplikaĵo. Tamen, tio funkcias nur se ankaŭ ili uzis la pontan aplikaĵon! tip_federated_timeline: La fratara tempolinio estas antaŭvido de la reto de Mastodon. Sed ĝi enhavas nur homojn, kiuj estas sekvataj de aliaj homoj de via nodo, do ĝi ne estas kompleta. tip_following: Vi dekomence sekvas la administrantojn de via servilo. Por trovi pli da interesaj homoj, rigardu la lokan kaj frataran tempoliniojn. tip_local_timeline: La loka tempolinio estas antaŭvido de la homoj en %{instance}. Ĉi tiuj estas viaj apudaj najbaroj! diff --git a/config/locales/es.yml b/config/locales/es.yml index 8927c3b38..117e7ccdd 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -823,7 +823,6 @@ es: review_preferences_action: Cambiar preferencias review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs". subject: Bienvenido a Mastodon - tip_bridge_html: Si esta viniendo desde Twitter, puedes encontrar a tus amigos en Mastodon usando la aplicación puente. Aunque solo funciona si ellos también usaron la aplicación puente! tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada. tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos! diff --git a/config/locales/eu.yml b/config/locales/eu.yml index eb148c6a2..6d39a6533 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -921,7 +921,6 @@ eu: review_preferences_action: Aldatu hobespenak review_preferences_step: Ziurtatu hobespenak ezartzen dituzula, jaso nahi dituzu e-mail mezuak, lehenetsitako pribatutasuna mezu berrietarako. Mareatzen ez bazaitu GIF-ak automatikoki abiatzea ezarri dezakezu ere. subject: Ongi etorri Mastodon-era - tip_bridge_html: Twitter-etik bazatoz, Mastodon-en lagunak aurkitu ditzakezu zubi aplikazioa erabiliz. Beraiek ere zubi aplikazioa erabili badute dabil besterik ez! tip_federated_timeline: Federatutako denbora-lerroan Mastodon sarearen trafikoa ikusten da. Baina zure instantziako auzokideak jarraitutakoak besterik ez daude hor, ez da osoa. tip_following: Lehenetsita zerbitzariko administratzailea jarraitzen duzu. Jende interesgarri gehiago aurkitzeko, egiaztatu denbora-lerro lokala eta federatua. tip_local_timeline: Denbora-lerro lokalean %{instance} instantziako trafikoa ikusten da. Hauek zure instantziako auzokideak dira! diff --git a/config/locales/fa.yml b/config/locales/fa.yml index a87949183..c24465236 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -823,7 +823,6 @@ fa: review_preferences_action: تغییر ترجیحات review_preferences_step: با رفتن به صفحهٔ ترجیحات می‌توانید چیزهای گوناگونی را تنظیم کنید. مثلاً این که چه ایمیل‌های آگاه‌سازی‌ای به شما فرستاده شود، یا حریم خصوصی پیش‌فرض نوشته‌هایتان چه باشد. اگر بیماری سفر (حالت تهوع بر اثر دیدن اجسام متحرک) ندارید، می‌توانید پخش خودکار ویدیوها را فعال کنید. subject: به ماستدون خوش آمدید - tip_bridge_html: اگر پیش از این کاربر توییتر بودید، می‌توانید دوستان توییتری خود را که در ماستدون هستند به کمک bridge app پیدا کنید. البته این فقط وقتی کار می‌کند که آن‌ها هم این اپ را به کار برده باشند! tip_federated_timeline: "«فهرست نوشته‌های همه‌جا» نمایی از کل شبکهٔ بزرگ ماستدون به شما می‌دهد. البته این فهرست فقط افردای را نشان می‌دهد که هم‌سروری‌های شما آن‌ها را پیگیری می‌کنند، و بنابراین ممکن است کامل نباشد." tip_following: شما به طور پیش‌فرض مدیر(های) سرور خود را پی می‌گیرید. برای یافتن افراد جالب دیگر، فهرست «نوشته‌های محلی» و «نوشته‌های همه‌جا» را ببینید. tip_local_timeline: فهرست نوشته‌های محلی نمایی کلی از کاربران روی %{instance} را ارائه می‌دهد. این‌ها همسایه‌های شما هستند! diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 77fca8dec..e210a490c 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -709,7 +709,6 @@ fi: review_preferences_action: Muuta asetuksia review_preferences_step: Käy tarkistamassa, että asetukset ovat haluamallasi tavalla. Voit valita, missä tilanteissa haluat saada sähköpostia, mikä on julkaisujesi oletusnäkyvyys jne. Jos et saa helposti pahoinvointia, voit valita, että GIF-animaatiot toistetaan automaattisesti. subject: Tervetuloa Mastodoniin - tip_bridge_html: Jos tulet Twitteristä, voit etsiä ystäviäsi Mastodonista siltasovelluksen avulla. Se kuitenkin löytää heidät vain, jos hekin käyttävät sitä! tip_federated_timeline: Yleinen aikajana näyttää sisältöä koko Mastodon-verkostosta. Siinä näkyvät kuitenkin vain ne henkilöt, joita oman instanssisi käyttäjät seuraavat. Siinä ei siis näytetä aivan kaikkea. tip_following: Oletusarvoisesti seuraat oman palvelimesi ylläpitäjiä. Etsi lisää kiinnostavia ihmisiä paikalliselta ja yleiseltä aikajanalta. tip_local_timeline: Paikallinen aikajana näyttää instanssin %{instance} käyttäjien julkaisut. He ovat naapureitasi! diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 167c942ee..96542347d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -925,7 +925,6 @@ fr: review_preferences_action: Modifier les préférences review_preferences_step: Assurez-vous de définir vos préférences, telles que les courriels que vous aimeriez recevoir ou le niveau de confidentialité auquel vous aimeriez que vos messages soient soumis par défaut. Si vous n’avez pas le mal des transports, vous pouvez choisir d’activer la lecture automatique des GIF. subject: Bienvenue sur Mastodon - tip_bridge_html: Si vous venez de Twitter, vous pouvez retrouver vos ami·e·s sur Mastodon en utilisant l’application de mise en relation. Cela ne fonctionne que s’il·elle·s ont aussi utilisé cette application ! tip_federated_timeline: La fil public global est une vue en direct du réseau Mastodon. Mais elle n’inclut que les personnes auxquelles vos voisin·es sont abonné·e·s, donc elle n’est pas complète. tip_following: Vous suivez les administrateur·rice·s de votre serveur par défaut. Pour trouver d’autres personnes intéressantes, consultez les fils publics local et global. tip_local_timeline: Le fil public local est une vue des personnes sur %{instance}. Ce sont vos voisines et voisins immédiats ! diff --git a/config/locales/gl.yml b/config/locales/gl.yml index b6830fb72..890b2552f 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -925,7 +925,6 @@ gl: review_preferences_action: Cambiar preferencias review_preferences_step: Lembre establecer as preferencias, tales como qué correos-e lle querería recibir, ou o nivel de intimidade por omisión para as súas mensaxes. Se non lle molestan as imaxes con movemento, pode escoller que os GIF se reproduzan automáticamente. subject: Benvida a Mastodon - tip_bridge_html: Si chega desde a Twitter, pode atopar aos seus amigos en Mastodon utilizando o aplicativo ponte. Só funciona si eles tamén utilizan o aplicativo ponte! tip_federated_timeline: A liña temporal federada é unha visión ampla da rede Mastodon. Pero so inclúe xente a que segue xente que vostede segue, así que non é completa. tip_following: Por omisión vostede segue ao Admin do seu servidor. Para atopar máis xente interesante, mire nas liñas temporais local e federada. tip_local_timeline: A liña temporal local é unha ollada xeral sobre a xente en %{instance}. Son as súas veciñas máis próximas! diff --git a/config/locales/hu.yml b/config/locales/hu.yml index cf2c5f1e4..ab93ba12d 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -631,7 +631,6 @@ hu: review_preferences_action: Beállítások módosítása review_preferences_step: Tekintsd át beállításaidat, például hogy milyen értesítéseket kérsz emailben vagy hogy alapértelmezettként mi legyen a tülkjeid adatvédelmi beállítása. Ha nem vagy szédülős alkat, azt is engedélyezheted, hogy automatikusan lejátsszuk a GIF-eket. subject: Üdvözöl a Mastodon - tip_bridge_html: Ha a Twitterről érkezel, használhatod alkalmazásunkat, amellyel megtalálhatod Twitteres barátaidat a Mastodonon. Az alkalmazás csak azon barátaidat tudja megtalálni, akik maguk is használták azt! tip_federated_timeline: A nyilvános időfolyam a Mastodon ütőere, ahol minden tülk összefolyik. Nem teljes ugyan, mert csak azokat az emberek fogod látni, akiket instanciád többi felhasználója követ. tip_following: Alapértelmezettként instanciád adminisztrátorait követed. Látogasd meg a helyi és a nyilvános időfolyamot, hogy más érdekes emberekre is rátalálj. tip_local_timeline: A helyi időfolyam a saját instanciád (%{instance}) ütőere. Ezek a kedves emberek itt mind a szomszédaid! diff --git a/config/locales/it.yml b/config/locales/it.yml index e9bf78cdf..8f62f34e3 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -786,7 +786,6 @@ it: review_preferences_action: Cambia preferenze review_preferences_step: Dovresti impostare le tue preferenze, ad esempio quali email vuoi ricevere oppure il livello predefinito di privacy per i tuoi post. Se le immagini in movimento non ti danno fastidio, puoi abilitare l'animazione automatica delle GIF. subject: Benvenuto/a su Mastodon - tip_bridge_html: Se vieni da Twitter, puoi trovare i tuoi amici su Mastodon usando laapp bridge. Ma funziona solo se anche loro la usano! tip_federated_timeline: La timeline federata visualizza uno dopo l'altro i messaggi pubblicati su Mastodon. Ma comprende solo gli utenti seguiti dai tuoi vicini, quindi non è completa. tip_following: Per impostazione predefinita, segui l'amministratore/i del tuo server. Per trovare utenti più interessanti, dà un'occhiata alle timeline locale e federata. tip_local_timeline: La timeline locale visualizza uno dopo l'altro i messaggi degli utenti di %{instance}. Questi sono i tuoi vicini! diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 292acf52f..5c8686a4f 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -926,7 +926,6 @@ ja: review_preferences_action: 設定の変更 review_preferences_step: 受け取りたいメールや投稿の公開範囲などの設定を必ず行ってください。不快でないならアニメーション GIF の自動再生を有効にすることもできます。 subject: Mastodon へようこそ - tip_bridge_html: もし Twitter から来られたのであれば、bridge app を使用することで Mastodon での友達のアカウントを探すこともできます。ただし bridge app を使用したことのある相手に限ります! tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じインスタンスの人がフォローしている人だけが含まれるので、それが全てではありません。 tip_following: 標準では自動でインスタンスの管理者をフォローしています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してください。 tip_local_timeline: ローカルタイムラインは %{instance} にいる人々の流れを見られるものです。彼らはあなたと同じインスタンスにいる隣人のようなものです! diff --git a/config/locales/ka.yml b/config/locales/ka.yml index b0d1087c3..7cb767452 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -874,7 +874,6 @@ ka: review_preferences_action: შეცვალეთ პრეფერენსიები review_preferences_step: დარწმუნდით რომ აყენებთ თქვენს პრეფერენსიებს, მაგალითად რა ელ-ფოსტის წერილების მიღება გსურთ, ან კონფიდენციალურობის რა დონე გსურთ ჰქონდეთ თქვენს პოსტებს საწყისად. თუ არ გაღიზიანებთ მოძრაობა, შეგიძლიათ ჩართოთ გიფის ავტო-დაკვრა. subject: კეთილი იყოს თქვენი მობრძანება მასტოდონში - tip_bridge_html: თუ მოდიხართ ტვიტერიდან, შეგიძლიათ იპოვოთ მეგობრები მასტოდონში ხიდის აპლიკაციით. თუმცა, ეს მუშაობს მხოლოდ მაშინ თუ მათაც მოიხმარეს ხიდის აპლიკაცია! tip_federated_timeline: ფედერალური თაიმლაინი მასტოდონის ქსელის ცეცხლოვანი ხედია. ის მოიცავს მხოლოდ იმ ადამიანებს, რომელთაგანაც გამოიწერეს თქვენმა მეზობლებმა, ასე რომ ეს არაა სრული. tip_following: თქვენ საწყისად მიჰყვებით თქვენი სერვერის ადმინისტრატორ(ებ)ს. უფრო საინტერესო ადამიანების მოსაძებნად იხილეთ ლოკალური და ფედერალური თაიმლაინები. tip_local_timeline: ლოკალური თაიმლაინი ცეცხლოვანი ხედია ადამიანებისთვის %{instance}-ზე. ისინი არიან თქვენი უსიტყვო მეზობლები! diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 6bbc71e0b..7ba1df97b 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -927,7 +927,6 @@ ko: review_preferences_action: 설정 바꾸기 review_preferences_step: 당신의 설정을 확인하세요. 어떤 이메일로 알림을 받을 것인지, 기본적으로 어떤 프라이버시 설정을 사용할 것인지, 멀미가 없다면 GIF를 자동 재생하도록 설정할 수도 있습니다. subject: 마스토돈에 오신 것을 환영합니다 - tip_bridge_html: 만약 트위터에서 오셨다면 브리지 앱을 통해 마스토돈에 있는 친구들을 찾을 수 있습니다. 친구들도 이 앱을 사용했을 때만 작동합니다! tip_federated_timeline: 연합 타임라인은 마스토돈 네트워크의 소방호스입니다. 다만 여기엔 당신의 이웃들이 구독 중인 것만 뜹니다, 모든 것이 다 오는 것은 아니예요. tip_following: 기본적으로 서버의 관리자를 팔로우 하도록 되어 있습니다. 흥미로운 사람들을 더 찾으려면 로컬과 연합 타임라인을 확인해 보세요. tip_local_timeline: 로컬 타임라인은 %{instance}의 소방호스입니다. 여기 있는 사람들은 당신의 이웃들이에요! diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 700217830..5a9ecc010 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -925,7 +925,6 @@ nl: review_preferences_action: Instellingen veranderen review_preferences_step: Zorg dat je jouw instellingen naloopt, zoals welke e-mails je wilt ontvangen of voor wie jouw berichten standaard zichtbaar moeten zijn. Wanneer je geen last hebt van bewegende beelden, kun je het afspelen van geanimeerde GIF's inschakelen. subject: Welkom op Mastodon - tip_bridge_html: Wanneer je hiervoor op Twitter zat, kun je jouw vrienden op Mastodon vinden door gebruik te maken van de bridge-app. Het werkt echter alleen wanneer zij ook deze bridge-app hebben gebruikt! tip_federated_timeline: De globale tijdlijn toont berichten in het Mastodonnetwerk. Het bevat echter alleen berichten van mensen waar jouw buren mee zijn verbonden, dus het is niet compleet. tip_following: Je volgt standaard de beheerder(s) van jouw Mastodonserver. Bekijk de lokale en de globale tijdlijnen om meer interessante mensen te vinden. tip_local_timeline: De lokale tijdlijn toont berichten van mensen op %{instance}. Dit zijn jouw naaste buren! diff --git a/config/locales/no.yml b/config/locales/no.yml index 5e06564ac..230e6b3f0 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -631,7 +631,6 @@ review_preferences_action: Endre innstillinger review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner. subject: Velkommen til Mastodon - tip_bridge_html: Hvis du kommer fra Twitter kan du finne dine venner på Mastodon ved å bruke en bro app. Men det fungerer kun dersom de også bruker bro-appen! tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett. tip_following: Du følger din tjeners administrator(er) som standard. For å finne mer interessante personer, sjekk den lokale og forente tidslinjen. tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer! diff --git a/config/locales/oc.yml b/config/locales/oc.yml index e647e400c..da8d9d65a 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -983,7 +983,6 @@ oc: review_preferences_action: Cambiar las preferéncias review_preferences_step: Pensatz de configurar vòstras preferéncias, tal coma los corrièls que volètz recebrer o lo nivèl de confidencialitat de vòstres tuts per defaut. O se l’animacion vos dòna pas enveja de rendre, podètz activar la lectura automatica dels GIF. subject: Benvengut a Mastodon - tip_bridge_html: Se venètz de Twitter, podètz trobar vòstres amics sus Mastodon en utilizant l‘aplicacion de Pont. Aquò fonciona pas que s’utilizan lo Pont tanben ! tip_federated_timeline: Lo flux d’actualitat federat es una vista generala del malhum Mastodon. Mas aquò inclutz solament lo monde que vòstres vesins sègon, doncas es pas complèt. tip_following: Seguètz l’administrator del servidor per defaut. Per trobar de monde mai interessant, agachatz lo flux d’actualitat local e lo global. tip_local_timeline: Lo flux d’actualitat local es una vista del monde de %{instance}. Son vòstres vesins dirèctes ! diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 7fd5df038..759ad1332 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -940,7 +940,6 @@ pl: review_preferences_action: Zmień ustawienia review_preferences_step: Upewnij się, że zmieniłeś(-aś) ustawienia, takie jak maile, które chciałbyś otrzymywać lub domyślne opcje prywatności. Jeżeli nie masz choroby lokomocyjnej, możesz włączyć automatyczne odtwarzanie animacji GIF. subject: Witaj w Mastodonie - tip_bridge_html: Jeżeli przybywasz z Twittera, możesz znaleźć znajomych na Mastodonie używając aplikacji mostku. Działa to tylko, jeżeli oni również z niej korzystali! tip_federated_timeline: Oś czasu federacji przedstawia całą sieć Mastodona. Wyświetla tylko wpisy osób, które śledzą użytkownicy Twojej instancji, więc nie jest kompletna. tip_following: Domyślnie śledzisz administratora/ów swojej instancji. Aby znaleźć więcej ciekawych ludzi, zajrzyj na lokalną i federalną oś czasu. tip_local_timeline: Lokalna oś czasu przedstawia osoby z %{instance}. To Twoi najbliżsi sąsiedzi! diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index e9625628b..39a2a13c0 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -925,7 +925,6 @@ pt-BR: review_preferences_action: Mudar as preferências review_preferences_step: Não se esqueça de configurar suas preferências, como quais e-mails você gostaria de receber, que nível de privacidade você gostaria que seus posts tenham por padrão. Se você não sofre de enjôo com movimento, você pode habilitar GIFs animando automaticamente. subject: Boas-vindas ao Mastodon - tip_bridge_html: Se você está vindo do Twitter, você pode encontrar pessoas conhecidas que estão no Mastodon usando app de associação. Mas só funciona se as pessoas também estiverem usando o app! tip_federated_timeline: A timeline global é uma visão contínua da rede do Mastodon. Mas ela só inclui pessoas que outras pessoas da sua instância estão seguindo, então não é a rede completa. tip_following: Você vai seguir administrador(es) da sua instância por padrão. Para encontrar mais gente interessante, confira as timelines local e global. tip_local_timeline: A timeline local é uma visão contínua das pessoas que estão em %{instance}. Esses são seus vizinhos próximos! diff --git a/config/locales/ru.yml b/config/locales/ru.yml index dceb41376..a9a02caf8 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -907,7 +907,6 @@ ru: review_preferences_action: Изменить настройки review_preferences_step: Проверьте все настройки, например, какие письма Вы хотите получать или уровень приватности статусов по умолчанию. Если Вы не страдаете морской болезнь, можете включить автовоспроизведение GIF. subject: Добро пожаловать в Mastodon - tip_bridge_html: Если Вы пришли из Twitter, можете поискать своих друзей в Mastodon, используя приложение-мост. Но это работает только если они тоже использовали это приложение! tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны Вы и Ваши соседи, поэтому лента может быть неполной. tip_following: По умолчанию Вы подписаны на администратора(-ов) Вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты. tip_local_timeline: В локальной ленте показаны посты от людей с %{instance}. Это Ваши непосредственные соседи! diff --git a/config/locales/sk.yml b/config/locales/sk.yml index f44d971a4..acf03ca7c 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -864,7 +864,6 @@ sk: review_preferences_action: Zmeniť nastavenia review_preferences_step: Daj si záležať na svojích nastaveniach, napríklad že aké emailové notifikácie chceš dostávať, alebo pod aký level súkromia sa tvoje príspevky majú sami automaticky zaradiť. Pokiaľ nemáš malátnosť z pohybu, môžeš si zvoliť aj automatické spúšťanie GIF animácií. subject: Vitaj na Mastodone - tip_bridge_html: Ak prichádzaš z Twitteru, môžeš svojích priateľov nájsť na Mastodone pomocou tzv. mostíkovej aplikácie. Ale tá funguje iba ak ju aj oni niekedy použili! tip_federated_timeline: Federovaná os zobrazuje sieť Mastodonu až po jej hranice. Ale zahŕňa iba ľúdí ktorých ostatní okolo teba sledujú, takže predsa nieje úplne celistvá. tip_following: Správcu servera následuješ automaticky. Môžeš ale nájsť mnoho iných zaujímavých ľudí ak prezrieš tak lokálnu, ako aj globálne federovanú os. tip_local_timeline: Miestna časová os je celkový pohľad na aktivitu užívateľov %{instance}. Toto sú tvoji najbližší susedia! diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 8dee9fdac..9ca5e412b 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -849,7 +849,6 @@ sr: review_preferences_action: Промените подешавања review_preferences_step: Обавезно поставите своја подешавања, као што су какву Е-пошту желите да примите или на који ниво приватности желите да ваше поруке буду постављене. Ако немате морску болест или епилепсију, можете изабрати аутоматско покретање ГИФ-а. subject: Добродошли на Мастодон - tip_bridge_html: Ако долазите са Твитера, можете пронаћи пријатеље користећи апликацију за премошћавање. Ово ради само ако и они користе исту апликацију! tip_federated_timeline: Здружена временска линија пружа комплетан увид у Мастодонову мрежу. Али она само укључује људе на које су ваше комшије претплаћене, тако да није комплетна. tip_following: Аутоматски пратите админа/не вашег сервера. Да пронађете занимљиве људе, проверите локалне и здружене временске линије. tip_local_timeline: Локална временска линија је комплетан увид људи у %{instance}. Ово су вам прве комшије! diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 55ab9b2ba..706e4c570 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -801,7 +801,6 @@ sv: review_preferences_action: Ändra inställningar review_preferences_step: Se till att du ställer in dina inställningar, t.ex. vilka e-postmeddelanden du vill ta emot eller vilken integritetsnivå du vill att dina inlägg ska vara. Om du inte har åksjuka, kan du välja att aktivera automatisk uppspelning av GIF-bilder. subject: Välkommen till Mastodon - tip_bridge_html: Om du kommer från Twitter kan du hitta dina vänner på Mastodon genom att använda bridge-appen. Det fungerar dock bara om de också har använt bridge-appen! tip_federated_timeline: Den förenade tidslinjen är en störtflodsvy av Mastodon-nätverket. Men det inkluderar bara människor som dina grannar följer, så det är inte komplett. tip_following: Du följer din servers administratör(er) som standard. För att hitta fler intressanta personer, kolla de lokala och förenade tidslinjerna. tip_local_timeline: Den lokala tidslinjen är en störtflodsvy av personer på %{instance}. Det här är dina närmaste grannar! diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 28dd7f579..f6d14c854 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -760,7 +760,6 @@ uk: review_preferences_action: Змінити налаштування review_preferences_step: Переконайтеся у тому, що ви налаштували все необхідне, як от які e-mail повідомлення ви хочете отримувати, або який рівень приватності ви хочете встановити вашим постам за замовчуванням. Якщо хочете, ви можете увімкнути автоматичне програвання GIF анімацій. subject: Ласкаво просимо до Mastodon - tip_bridge_html: Якщо ви прийшли до нас із Twitter, ви можете знайти ваших друзів на Mastodon, скориставшись проміжним застосунком. Проте він працює тільки, якщо вони теж користуються проміжним застосунком! tip_federated_timeline: Федерований фід є широким поглядом на мережу Mastodon. Але він включає лише людей, на яких підписані ваші сусіди по сайту, тому він не є повним. tip_following: Ви автоматично підписані на адміністратора(-ів) сервера. Для того, щоб знайти ще цікавих людей, дослідіть локальний та федерований фіди. tip_local_timeline: Локальний фід - це погляд згори на людей на %{instance}. Це ваші прямі сусіди! diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 744648921..2c1005a9a 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -782,7 +782,6 @@ zh-CN: review_preferences_action: 更改首选项 review_preferences_step: 记得调整你的偏好设置,比如你想接收什么类型的邮件,或者你想把你的嘟文可见范围默认设置为什么级别。如果你没有晕动病的话,考虑一下启用“自动播放 GIF 动画”这个选项吧。 subject: 欢迎来到 Mastodon - tip_bridge_html: 如果你刚从 Twitter 来到这里,你可以在桥梁站(bridge app)上寻找你的朋友。当然,前提是他们也登录了桥梁站! tip_federated_timeline: 跨站公共时间轴可以让你一窥更广阔的 Mastodon 网络。不过,由于它只显示你的邻居们所订阅的内容,所以并不是全部。 tip_following: 默认情况下,你会自动关注你所在实例的管理员。想结交更多有趣的人的话,记得多逛逛本站时间轴和跨站公共时间轴哦。 tip_local_timeline: 本站时间轴可以让你一窥 %{instance} 上的用户。他们就是离你最近的邻居! diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index abbaa77d6..c03946f0a 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -717,7 +717,6 @@ zh-HK: review_preferences_action: 更改首選項 review_preferences_step: 記得調整你的偏好設置,比如你想接收什麼類型的郵件,或者你想把你的文章可見範圍默認設定為什麼級別。如果你沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。 subject: 歡迎來到 Mastodon - tip_bridge_html: 如果你剛從 Twitter 來到這裡,你可以在橋樑站(bridge app)上尋找你的朋友。當然,前提是他們也登錄了橋樑站! tip_federated_timeline: 跨站公共時間軸可以讓你一窺更廣闊的 Mastodon 網絡。不過,由於它只顯示你的鄰居們所訂閱的內容,所以並不是全部。 tip_following: 默認情況下,你會自動關注你所在服務站的管理員。想結交更多有趣的人的話,記得多逛逛本站時間軸和跨站公共時間軸哦。 tip_local_timeline: 本站時間軸可以讓你一窺 %{instance} 上的用戶。他們就是離你最近的鄰居! diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index b4c15f6f1..d6a7abea9 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -698,7 +698,6 @@ zh-TW: review_preferences_action: 更改偏好設定 review_preferences_step: 記得調整你的偏好設定,比如你想接收什麼類型的電子郵件,或著你想把你的嘟文可見範圍預設設定什麼級別。如果你沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。 subject: 歡迎來到 Mastodon - tip_bridge_html: 如果你剛從 Twitter 來到這裡,你可以在橋樑站(bridge app)上尋找你的朋友。當然,前提是他們也登入了橋樑站! tip_federated_timeline: 跨站公共時間軸可以讓你一窺更廣闊的 Mastodon 網路。不過,由於它們只顯示你的鄰居們所訂閱的內容,所以並不是全部。 tip_following: 預設情況下,你會自動關注你所在站點的管理員。想結交更多有趣的人的話,記得多逛逛本站時間軸與跨站公共時間軸哦。 tip_local_timeline: 本站時間軸可以讓你一窺 %{instance} 上的使用者。他們就是離你最近的鄰居! -- cgit