From 2a9805b987537d0327ab4623049e2a4d3180f8e4 Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Tue, 27 Jun 2017 23:14:02 +0200 Subject: i18n: Minor fix in devise.pl.yml (#3978) --- config/locales/devise.pl.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'config') diff --git a/config/locales/devise.pl.yml b/config/locales/devise.pl.yml index 792e0d81e..1c692f7a8 100644 --- a/config/locales/devise.pl.yml +++ b/config/locales/devise.pl.yml @@ -8,10 +8,10 @@ pl: failure: already_authenticated: Jesteś już zalogowany/zalogowana. inactive: Twoje konto nie zostało jeszcze aktywowane. - invalid: Błędne %{authentication_keys} lub hasło. + invalid: Nieprawidłowy %{authentication_keys} lub hasło. last_attempt: Masz jeszcze jedną próbę; Twoje konto zostanie zablokowane jeśli się nie powiedzie. locked: Twoje konto zostało zablokowane. - not_found_in_database: Błędne %{authentication_keys} lub hasło. + not_found_in_database: Nieprawidłowy %{authentication_keys} lub hasło. timeout: Twoja sesja wygasła. Zaloguj się ponownie aby kontynuować.. unauthenticated: Zapisz się lub zaloguj aby kontynuować. unconfirmed: Zweryfikuj adres e-mail aby kontynuować. -- cgit From fb421a1f46d956e62d27d0227e6853c709f2c88e Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Wed, 28 Jun 2017 14:07:53 +0200 Subject: i18n: added email to activerecord.pl.yml (#3981) --- config/locales/activerecord.pl.yml | 3 +++ 1 file changed, 3 insertions(+) (limited to 'config') diff --git a/config/locales/activerecord.pl.yml b/config/locales/activerecord.pl.yml index 627f612bb..f82e1b875 100644 --- a/config/locales/activerecord.pl.yml +++ b/config/locales/activerecord.pl.yml @@ -1,5 +1,8 @@ pl: activerecord: + attributes: + user: + email: adres e-mail errors: models: account: -- cgit From e4fee6c138b7fdab3820e9cf6406b1d5195269e8 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Wed, 28 Jun 2017 23:45:21 +0900 Subject: Add Japanese translations (#3985) ref #3929, #3935, #3949, #3981 --- config/locales/activerecord.ja.yml | 3 +++ config/locales/ja.yml | 45 +++++++++++++++++++++++++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) (limited to 'config') diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml index 6e6b48496..975912f0f 100644 --- a/config/locales/activerecord.ja.yml +++ b/config/locales/activerecord.ja.yml @@ -1,5 +1,8 @@ ja: activerecord: + attributes: + user: + email: メールアドレス errors: models: account: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 80169339d..a60811e50 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -193,6 +193,10 @@ ja: title: PubSubHubbub topic: トピック title: 管理 + admin_mailer: + new_report: + body: "%{reporter} が %{target} を通報しました" + subject: "%{instance} の新しい通報 (#%{id})" application_mailer: settings: 'メール設定の変更: %{link}' signature: Mastodon %{instance} インスタンスからの通知 @@ -320,6 +324,43 @@ ja: missing_resource: リダイレクト先が見つかりませんでした proceed: フォローする prompt: 'フォローしようとしています:' + sessions: + activity: 最後のアクティビティ + browser: ブラウザ + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + firefox: Firefox + generic: 不明なブラウザ + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi Browser + opera: Opera + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UCBrowser + weibo: Weibo + current_session: 現在のセッション + description: "%{browser} on %{platform}" + explanation: あなたのMastodonアカウントに現在ログインしているウェブブラウザの一覧です。 + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: Mac + other: 不明なプラットフォーム + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + title: セッション settings: authorized_apps: 認証済みアプリ back: 戻る @@ -354,13 +395,15 @@ ja: description_html: "二段階認証を有効にするとログイン時、電話でコードを受け取る必要があります。" disable: 無効 enable: 有効 + enabled: 二段階認証は有効になっています enabled_success: 二段階認証が有効になりました generate_recovery_codes: リカバリーコードを生成 instructions_html: "Google Authenticatorか、もしくはほかのTOTPアプリでこのQRコードをスキャンしてください。これ以降、ログインするときはそのアプリで生成されるコードが必要になります。" lost_recovery_codes: リカバリーコードを使用すると携帯電話を紛失した場合でもアカウントにアクセスできるようになります。 リカバリーコードを紛失した場合もここで再生成することができますが、古いリカバリーコードは無効になります。 manual_instructions: 'QRコードがスキャンできず、手動での登録を希望の場合はこのシークレットコードを利用してください。:' + recovery_codes: リカバリーコード recovery_codes_regenerated: リカバリーコードが再生成されました。 - recovery_instructions_html: 携帯電話を紛失した場合、以下の内どれかのリカバリーコードを使用してアカウントへアクセスすることができます。 リカバリーコードは印刷して安全に保管してください。 + recovery_instructions_html: 携帯電話を紛失した場合、以下の内どれかのリカバリーコードを使用してアカウントへアクセスすることができます。リカバリーコードは大切に保全してください。たとえば印刷してほかの重要な書類と一緒に保管することができます。 setup: 初期設定 wrong_code: コードが間違っています。サーバー上の時間とデバイス上の時間が一致していることを確認してください。 users: -- cgit From 968354923ec5063946d561e41194870ce37ec43a Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Fri, 30 Jun 2017 04:43:26 -0700 Subject: Fix webpack-dev-server on Windows (#4000) * Fix webpack-dev-server on Windows * Serve webpack from 0.0.0.0, access at 127.0.0.1 --- bin/webpack-dev-server | 2 +- config/webpacker.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'config') diff --git a/bin/webpack-dev-server b/bin/webpack-dev-server index a867f2c01..0beec3175 100755 --- a/bin/webpack-dev-server +++ b/bin/webpack-dev-server @@ -23,7 +23,7 @@ end begin dev_server = YAML.load_file(CONFIG_FILE)["development"]["dev_server"] - DEV_SERVER_HOST = "http#{"s" if args('--https') || dev_server["https"]}://#{args('--host') || dev_server["host"]}:#{args('--port') || dev_server["port"]}" + DEV_SERVER_HOST = "http#{"s" if args('--https') || dev_server["https"]}://#{dev_server["host"]}:#{args('--port') || dev_server["port"]}" rescue Errno::ENOENT, NoMethodError puts "Webpack dev_server configuration not found in #{CONFIG_FILE}." diff --git a/config/webpacker.yml b/config/webpacker.yml index c1cd6e93b..aa429a1dd 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -19,7 +19,7 @@ development: <<: *default dev_server: - host: 0.0.0.0 + host: 127.0.0.1 port: 8080 https: false -- cgit From d1d94216d1534243180e99245232f769542639d3 Mon Sep 17 00:00:00 2001 From: unarist Date: Sun, 2 Jul 2017 04:18:38 +0900 Subject: Update Japanese translation (Credentials -> Security) (#4025) --- config/locales/ja.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config') diff --git a/config/locales/ja.yml b/config/locales/ja.yml index a60811e50..52752e7d1 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -204,7 +204,7 @@ ja: applications: invalid_url: URLが無効です auth: - change_password: ログイン情報 + change_password: セキュリティ delete_account: アカウントの削除 delete_account_html: アカウントを削除したい場合、こちらから手続きが行えます。削除前には確認画面があります。 didnt_get_confirmation: 確認メールを受信できませんか? -- cgit From 133b892e0d95c27de28c22e3d0efe284c75f7700 Mon Sep 17 00:00:00 2001 From: Damien Erambert Date: Sun, 2 Jul 2017 09:36:35 -0700 Subject: Update French locales (#4034) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add missing locales for French translation * accent "Media" in the front-end locales * images => médias * Change 'rapport' to 'signalement' in French locales to be more coherent * fix typo * remove duplicate EN locale * translate missing locales * update missing locale * fix typo * unify with "utilisateur⋅ice⋅s" * address PR comments --- app/javascript/mastodon/locales/fr.json | 16 ++--- config/locales/fr.yml | 122 ++++++++++++++++++++++++++++++-- 2 files changed, 123 insertions(+), 15 deletions(-) (limited to 'config') diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 1a69235c8..fd2b30444 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -7,7 +7,7 @@ "account.followers": "Abonné⋅e⋅s", "account.follows": "Abonnements", "account.follows_you": "Vous suit", - "account.media": "Media", + "account.media": "Média", "account.mention": "Mentionner", "account.mute": "Masquer", "account.posts": "Statuts", @@ -61,11 +61,11 @@ "emoji_button.travel": "Lieux et voyages", "empty_column.community": "Le fil public local est vide. Écrivez-donc quelque chose pour le remplir !", "empty_column.hashtag": "Il n’y a encore aucun contenu relatif à ce hashtag", - "empty_column.home": "Vous ne suivez encore personne. Visitez {public} ou bien utilisez la recherche pour vous connecter à d’autres utilisateurs⋅trices.", + "empty_column.home": "Vous ne suivez encore personne. Visitez {public} ou bien utilisez la recherche pour vous connecter à d’autres utilisateur⋅ice⋅s.", "empty_column.home.inactivity": "Votre accueil est vide. Si vous ne vous êtes pas connecté⋅e depuis un moment, il se remplira automatiquement très bientôt.", "empty_column.home.public_timeline": "le fil public", - "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres utilisateurs⋅trices pour débuter la conversation.", - "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateurs⋅trices d’autres instances pour remplir le fil public.", + "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres utilisateur⋅ice⋅s pour débuter la conversation.", + "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateur⋅ice⋅s d’autres instances pour remplir le fil public.", "follow_request.authorize": "Autoriser", "follow_request.reject": "Rejeter", "getting_started.appsshort": "Applications", @@ -108,11 +108,11 @@ "notifications.column_settings.sound": "Émettre un son", "onboarding.done": "Effectué", "onboarding.next": "Suivant", - "onboarding.page_five.public_timelines": "Le fil public global affiche les posts de tou⋅te⋅s les utilisateurs⋅trices suivi⋅es par les membres de {domain}. Le fil public local est identique mais se limite aux utilisateurs⋅trices de {domain}.", - "onboarding.page_four.home": "L’Accueil affiche les posts de tou⋅te⋅s les utilisateurs⋅trices que vous suivez", + "onboarding.page_five.public_timelines": "Le fil public global affiche les posts de tou⋅te⋅s les utilisateur⋅ice⋅s suivi⋅es par les membres de {domain}. Le fil public local est identique mais se limite aux utilisateur⋅ice⋅s de {domain}.", + "onboarding.page_four.home": "L’Accueil affiche les posts de tou⋅te⋅s les utilisateur⋅ice⋅s que vous suivez", "onboarding.page_four.notifications": "Les Notifications vous informent lorsque quelqu’un interagit avec vous", "onboarding.page_one.federation": "Mastodon est un réseau social qui appartient à tou⋅te⋅s.", - "onboarding.page_one.handle": "Vous êtes sur {domain}, une des nombreuses instances indépendantes de Mastodon. Votre nom d’utilisateur⋅trice complet est {handle}", + "onboarding.page_one.handle": "Vous êtes sur {domain}, une des nombreuses instances indépendantes de Mastodon. Votre nom d'utilisateur⋅ice complet est {handle}", "onboarding.page_one.welcome": "Bienvenue sur Mastodon !", "onboarding.page_six.admin": "L’administrateur⋅trice de votre instance est {admin}", "onboarding.page_six.almost_done": "Nous y sommes presque…", @@ -123,7 +123,7 @@ "onboarding.page_six.read_guidelines": "S’il vous plaît, n’oubliez pas de lire les {guidelines} !", "onboarding.page_six.various_app": "applications mobiles", "onboarding.page_three.profile": "Modifiez votre profil pour changer votre avatar, votre description ainsi que votre nom. Vous y trouverez également d’autres préférences.", - "onboarding.page_three.search": "Utilisez la barre de recherche pour trouver des utilisateurs⋅trices et regarder des hashtags tels que {illustration} et {introductions}. Pour trouver quelqu’un qui n’est pas sur cette instance, utilisez son nom d’utilisateur⋅trice complet.", + "onboarding.page_three.search": "Utilisez la barre de recherche pour trouver des utilisateur⋅ice⋅s et regarder des hashtags tels que {illustration} et {introductions}. Pour trouver quelqu’un qui n’est pas sur cette instance, utilisez son nom d'utilisateur⋅ice complet.", "onboarding.page_two.compose": "Écrivez depuis la colonne de composition. Vous pouvez ajouter des images, changer les réglages de confidentialité, et ajouter des avertissements de contenu (Content Warning) grâce aux icônes en dessous.", "onboarding.skip": "Passer", "privacy.change": "Ajuster la confidentialité du message", diff --git a/config/locales/fr.yml b/config/locales/fr.yml index dfe5ff990..5a3e0c552 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -27,8 +27,9 @@ fr: status_count_after: posts status_count_before: Ayant publié terms: Conditions d’utilisation - user_count_after: utilisateurs⋅trices + user_count_after: utilisateur⋅ice⋅s user_count_before: Abrite + version: Version accounts: follow: Suivre followers: Abonné⋅es @@ -38,10 +39,23 @@ fr: people_who_follow: Personnes qui suivent %{name} posts: Statuts remote_follow: Suivre à distance + reserved_username: Ce nom d'utilisateur⋅ice est réservé unfollow: Ne plus suivre + activitypub: + activity: + announce: + name: "%{account_name} a partagé une activité." + create: + name: "%{account_name} a créé une note." + outbox: + name: "Boîte d'envoi de %{account_name}" + summary: Liste d'activités de %{account_name} admin: accounts: - are_you_sure: Êtes-vous certain ? + are_you_sure: Êtes-vous certain⋅e ? + confirm: Confirmer + confirmed: Confirmé + disable_two_factor_authentication: Désactiver l'authentification à deux facteurs display_name: Nom affiché domain: Domaine edit: Éditer @@ -49,6 +63,7 @@ fr: feed_url: URL du flux followers: Abonné⋅es follows: Abonnements + ip: Adresse IP location: all: Tous local: Local @@ -71,14 +86,24 @@ fr: profile_url: URL du profil public: Public push_subscription_expires: Expiration de l'abonnement PuSH + redownload: Rafraîchir les avatars + reset: Réinitialiser reset_password: Réinitialiser le mot de passe + resubscribe: Se réabonner salmon_url: URL Salmon + search: Rechercher + show: + created_reports: Signalements créés par ce compte + report: signalement + targeted_reports: Signalements créés visant ce compte silence: Rendre muet statuses: Statuts + subscribe: S'abonner title: Comptes undo_silenced: Annuler le silence undo_suspension: Annuler la suspension - username: Nom d'utilisateur + unsubscribe: Se désabonner + username: Nom d'utilisateur⋅ice web: Web domain_blocks: add_new: Ajouter @@ -110,14 +135,24 @@ fr: undo: Annuler title: Blocage de domaines undo: Annuler + instances: + account_count: Comptes connus + domain_name: Domaine + title: Instances connues reports: + action_taken_by: Intervention de + are_you_sure: Êtes vous certain⋅e? comment: label: Commentaire none: Aucun delete: Supprimer id: ID mark_as_resolved: Marquer comme résolu + nsfw: + 'false': Ré-afficher les médias + 'true': Masquer les médias report: 'Signalement #%{id}' + report_contents: Contenu reported_account: Compte signalé reported_by: Signalé par resolved: Résolus @@ -132,7 +167,7 @@ fr: contact_information: email: Entrez une adresse courriel publique label: Informations de contact - username: Entrez un nom d'utilisateur + username: Entrez un nom d'utilisateur⋅ice registrations: closed_message: desc_html: Affiché sur la page d'accueil lorsque les inscriptions sont fermées
Vous pouvez utiliser des balises HTML @@ -158,6 +193,10 @@ fr: title: PubSubHubbub topic: Sujet title: Administration + admin_mailer: + new_report: + body: "%{reporter} a signalé %{target}" + subject: Nouveau signalement sur %{instance} (#%{id}) application_mailer: settings: 'Changer les préférences courriel : %{link}' signature: Notifications de Mastodon depuis %{instance} @@ -166,6 +205,8 @@ fr: invalid_url: L'URL fournie est invalide auth: change_password: Changer de mot de passe + delete_account: Supprimer le compte + delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. didnt_get_confirmation: Vous n’avez pas reçu les consignes de confirmation ? forgot_password: Mot de passe oublié ? login: Se connecter @@ -199,18 +240,41 @@ fr: x_minutes: "%{count}min" x_months: "%{count}mois" x_seconds: "%{count}s" + deletes: + bad_password_msg: Bien essayé ! Mot de passe incorrect + confirm_password: Entrez votre mot de passe pour vérifier votre identité + description_html: Cela va supprimer votre compte et le désactiver de manière permanente et irréversible. Votre nom d'utilisateur⋅ice restera réservé afin d'éviter la confusion + proceed: Supprimer compte + success_msg: Votre compte a été supprimé avec succès + warning_html: Seule la suppression du contenu depuis cette instance est garantie. Le contenu qui a été partagé est susceptible de laisser des traces. Les serveurs hors-lignes ainsi que ceux n'étant plus abonnés à vos publications ne mettront pas leur base de données à jour. + warning_title: Disponibilité du contenu disséminé errors: + '403': Vous n'avez pas accès à cette page. '404': La page que vous recherchez n'existe pas. '410': La page que vous recherchez n'existe plus. '422': content: Vérification de sécurité échouée. Bloquez-vous les cookies ? title: Vérification de sécurité échouée + '429': Trop de requêtes émises dans un délai donné. + noscript: Pour utiliser Mastodon, veuillez activer JavaScript exports: blocks: Vous bloquez csv: CSV follows: Vous suivez mutes: Vous faites taire storage: Médias stockés + followers: + domain: Domaine + explanation_html: Si vous voulez être sûr⋅e que vos status restent privés, vous devez savoir qui vous suit. Vos status privés seront diffusés à toutes les instances des utilisateur⋅ice⋅s qui vous suivent. Vous voudrez peut-être les passer en revue et les supprimer si vous n'êtes pas sûr⋅e que votre vie privée sera respectée par l'administration ou le logiciel de ces instances. + followers_count: Nombre d'abonné⋅es + lock_link: Rendez votre compte privé + purge: Retirer de la liste d'abonné⋅es + success: + one: Suppression des abonné⋅es venant d'un domaine en cours... + other: Suppression des abonné⋅es venant de %{count} domaines en cours... + true_privacy_html: Soyez conscient⋅es qu'une vraie confidentialité ne peut être atteinte que par un chiffrement de bout-en-bout. + unlocked_warning_html: N'importe qui peut vous suivre et voir vos status privés. %{lock_link} afin de pouvoir vérifier et rejeter des abonné⋅es. + unlocked_warning_title: Votre compte n'est pas privé generic: changes_saved_msg: Les modifications ont été enregistrées avec succès ! powered_by: propulsé par %{link} @@ -222,9 +286,9 @@ fr: preface: Vous pouvez importer certaines données comme les personnes que vous suivez ou bloquez sur votre compte sur cette instance à partir de fichiers créés sur une autre instance. success: Vos données ont été importées avec succès et seront traitées en temps et en heure types: - blocking: Liste d'utilisateurs⋅trices bloqué⋅es - following: Liste d'utilisateurs⋅trices suivi⋅es - muting: Liste d'utilisateurs⋅trices que vous faites taire + blocking: Liste d'utilisateur⋅ice⋅s bloqué⋅es + following: Liste d'utilisateur⋅ice⋅s suivi⋅es + muting: Liste d'utilisateur⋅ice⋅s que vous faites taire upload: Importer landing_strip_html: %{name} utilise %{link_to_root_path}. Vous pouvez le/la suivre et interagir si vous possédez un compte quelque part dans le "fediverse". landing_strip_signup_html: Si ce n'est pas le cas, vous pouvez en créer un ici. @@ -265,11 +329,50 @@ fr: missing_resource: L'URL de redirection n'a pas pu être trouvée proceed: Continuez pour suivre prompt: 'Vous allez suivre :' + sessions: + activity: Dernière activité + browser: Navigateur + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + firefox: Firefox + generic: Navigateur inconnu + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi Browser + opera: Opera + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UCBrowser + weibo: Weibo + current_session: Session courante + description: "%{browser} sur %{platform}" + explanation: Ceci est la liste des navigateurs actuellement connectés à votre compte Mastodon. + ip: Adresse IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: Mac + other: système inconnu + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + title: Sessions settings: authorized_apps: Applications autorisées back: Retour vers Mastodon + delete: Suppression de compte edit_profile: Modifier le profil export: Export de données + followers: Abonné⋅es autorisé⋅es import: Import de données preferences: Préférences settings: Réglages @@ -280,8 +383,11 @@ fr: show_more: Afficher plus visibilities: private: Abonné⋅es uniquement + private_long: Seul⋅es vos abonné⋅es verront vos status public: Public + public_long: Tout le monde peut voir vos status unlisted: Public sans être affiché sur le fil public + unlisted_long: Tout le monde peut voir vos status mais ils ne seront pas sur listés sur les fils publics stream_entries: click_to_show: Cliquer pour afficher reblogged: partagé @@ -294,11 +400,13 @@ fr: description_html: Si vous activez l'identification à deux facteurs, vous devrez être en possession de votre téléphone afin de générer un code de connexion. disable: Désactiver enable: Activer + enabled: L'authentification à deux facteurs est activée enabled_success: Identification à deux facteurs activée avec succès generate_recovery_codes: Générer les codes de récupération instructions_html: "Scannez ce QR code grâce à Google Authenticator, Authy ou une application similaire sur votre téléphone. Désormais, cette application générera des jetons que vous devrez saisir à chaque connexion." lost_recovery_codes: Les codes de récupération vous permettent de retrouver les accès à votre comptre si vous perdez votre téléphone. Si vous perdez vos codes de récupération, vous pouvez les générer à nouveau ici. Vos anciens codes de récupération seront invalidés. manual_instructions: 'Si vous ne pouvez pas scanner ce QR code et devez l''entrer manuellement, voici le secret en clair :' + recovery_codes: Codes de récupération recovery_codes_regenerated: Codes de récupération régénérés avec succès recovery_instructions_html: Si vous perdez l'accès à votre téléphone, vous pouvez utiliser un des codes de récupération ci-dessous pour récupérer l'accès à votre compte. Conservez les codes de récupération en toute sécurité, par exemple, en les imprimant et en les stockant avec vos autres documents importants. setup: Installer -- cgit From 331f0953e9c1855b8195af756e83fee98600d1b8 Mon Sep 17 00:00:00 2001 From: Ratmir Karabut Date: Mon, 3 Jul 2017 02:30:22 +0300 Subject: Update Russian translation (sessions) (#4041) * Add Russian translation (ru) * Fix a missing comma * Fix the wording for better consistency * Update Russian translation * Arrange Russian setting alphabetically * Fix syntax error * Update Russian translation * Fix formatting error * Update Russian translation * Update Russian translation * Update ru.jsx * Fix syntax error * Remove two_factor_auth.warning (appears obsolete) * Add missing strings in ru.yml A lot of new strings translated, especially for the newly added admin section * Fix translation consistency * Update Russian translation * Update Russian translation (pluralizations) * Update Russian translation * Update Russian translation * Update Russian translation (pin) * Update Russian translation (account deletion) * Fix extra line * Update Russian translation (sessions) --- config/locales/ru.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'config') diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 9cf067d88..6321e96eb 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -292,6 +292,43 @@ ru: missing_resource: Поиск требуемого перенаправления URL для Вашего аккаунта завершился неудачей proceed: Продолжить подписку prompt: 'Вы хотите подписаться на:' + sessions: + activity: Последняя активность + browser: Браузер + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + firefox: Firefox + generic: Неизвестный браузер + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi Browser + opera: Opera + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UCBrowser + weibo: Weibo + current_session: Текущая сессия + description: "%{browser} на %{platform}" + explanation: Это веб-браузеры, в которых на данный момент выполнен вход в Ваш аккаунт Mastodon. + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: Mac + other: неизвестной платформе + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + title: Сессии settings: authorized_apps: Авторизованные приложения back: Назад в Mastodon -- cgit From be94f9e35d4fbb1558fa772a618276562039fd96 Mon Sep 17 00:00:00 2001 From: のら Date: Mon, 3 Jul 2017 18:02:59 +0900 Subject: Update Japanese translation (#4051) --- config/locales/ja.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config') diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 52752e7d1..b45e06d3a 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -385,7 +385,7 @@ ja: unlisted_long: 誰でも見ることができますが、公開タイムラインには表示されません stream_entries: click_to_show: クリックして表示 - reblogged: ブーストされました + reblogged: さんにブーストされました sensitive_content: 閲覧注意 time: formats: -- cgit From 275c5b51ed7e22734d18db6acb2b87ba26bd435f Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Tue, 4 Jul 2017 22:19:24 +0900 Subject: Customizable privacy policy from admin interface (#4062) --- app/controllers/about_controller.rb | 2 +- app/controllers/admin/settings_controller.rb | 1 + app/presenters/instance_presenter.rb | 1 + app/views/about/terms.en.html.haml | 76 ---------------------------- app/views/about/terms.html.haml | 8 +++ app/views/about/terms.ja.html.haml | 76 ---------------------------- app/views/about/terms.no.html.haml | 76 ---------------------------- app/views/admin/settings/edit.html.haml | 7 +++ config/locales/en.yml | 73 ++++++++++++++++++++++++++ config/locales/ja.yml | 70 +++++++++++++++++++++++++ config/locales/no.yml | 70 +++++++++++++++++++++++++ config/settings.yml | 1 + 12 files changed, 232 insertions(+), 229 deletions(-) delete mode 100644 app/views/about/terms.en.html.haml create mode 100644 app/views/about/terms.html.haml delete mode 100644 app/views/about/terms.ja.html.haml delete mode 100644 app/views/about/terms.no.html.haml (limited to 'config') diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb index 04e7ddacf..c0addbecc 100644 --- a/app/controllers/about_controller.rb +++ b/app/controllers/about_controller.rb @@ -2,7 +2,7 @@ class AboutController < ApplicationController before_action :set_body_classes - before_action :set_instance_presenter, only: [:show, :more] + before_action :set_instance_presenter, only: [:show, :more, :terms] def show; end diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index fcd42c79c..7542f55e8 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -8,6 +8,7 @@ module Admin site_title site_description site_extended_description + site_terms open_registrations closed_registrations_message ).freeze diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index 9a69809d0..63ef23d5d 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -7,6 +7,7 @@ class InstancePresenter :open_registrations, :site_description, :site_extended_description, + :site_terms, to: Setting ) diff --git a/app/views/about/terms.en.html.haml b/app/views/about/terms.en.html.haml deleted file mode 100644 index 7e0fb94c2..000000000 --- a/app/views/about/terms.en.html.haml +++ /dev/null @@ -1,76 +0,0 @@ -- content_for :page_title do - #{site_hostname} Terms of Service and Privacy Policy - -.wrapper - %h2 Privacy Policy - - %h3#collect What information do we collect? - - %p We collect information from you when you register on our site and gather data when you participate in the forum by reading, writing, and evaluating the content shared here. - - %p When registering on our site, you may be asked to enter your name and e-mail address. You may, however, visit our site without registering. Your e-mail address will be verified by an email containing a unique link. If that link is visited, we know that you control the e-mail address. - - %p When registered and posting, we record the IP address that the post originated from. We also may retain server logs which include the IP address of every request to our server. - - %h3#use What do we use your information for? - - %p Any of the information we collect from you may be used in one of the following ways: - - %ul - %li To personalize your experience — your information helps us to better respond to your individual needs. - %li To improve our site — we continually strive to improve our site offerings based on the information and feedback we receive from you. - %li To improve customer service — your information helps us to more effectively respond to your customer service requests and support needs. - %li To send periodic emails — The email address you provide may be used to send you information, notifications that you request about changes to topics or in response to your user name, respond to inquiries, and/or other requests or questions. - - %h3#protect How do we protect your information? - - %p We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. - - %h3#data-retention What is your data retention policy? - - %p We will make a good faith effort to: - - %ul - %li Retain server logs containing the IP address of all requests to this server no more than 90 days. - %li Retain the IP addresses associated with registered users and their posts no more than 5 years. - - %h3#cookies Do we use cookies? - - %p Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account. - - %p We use cookies to understand and save your preferences for future visits and compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We may contract with third-party service providers to assist us in better understanding our site visitors. These service providers are not permitted to use the information collected on our behalf except to help us conduct and improve our business. - - %h3#disclose Do we disclose any information to outside parties? - - %p We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses. - - %h3#third-party Third party links - - %p Occasionally, at our discretion, we may include or offer third party products or services on our site. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these sites. - - %h3#coppa Children's Online Privacy Protection Act Compliance - - %p - Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA - = surround '(', '),' do - = link_to 'Children\'s Online Privacy Protection Act', 'https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act' - do not use this site. - - %h3#online Online Privacy Policy Only - - %p This online privacy policy applies only to information collected through our site and not to information collected offline. - - %h3#consent Your Consent - - %p By using our site, you consent to our web site privacy policy. - - %h3#changes Changes to our Privacy Policy - - %p If we decide to change our privacy policy, we will post those changes on this page. - - %p This document is CC-BY-SA. It was last updated May 31, 2013. - - %p - Originally adapted from the - = succeed '.' do - = link_to 'Discourse privacy policy', 'https://github.com/discourse/discourse' diff --git a/app/views/about/terms.html.haml b/app/views/about/terms.html.haml new file mode 100644 index 000000000..58064f0be --- /dev/null +++ b/app/views/about/terms.html.haml @@ -0,0 +1,8 @@ +- content_for :page_title do + = t('terms.title', instance: site_hostname) + +.wrapper + - if @instance_presenter.site_terms.present? + = raw @instance_presenter.site_terms + - else + = t('terms.body_html') diff --git a/app/views/about/terms.ja.html.haml b/app/views/about/terms.ja.html.haml deleted file mode 100644 index 5c546b3e0..000000000 --- a/app/views/about/terms.ja.html.haml +++ /dev/null @@ -1,76 +0,0 @@ -- content_for :page_title do - #{site_hostname} 利用規約・プライバシーポリシー - -.wrapper - %h2 プライバシーポリシー - - %h3#collect どのような情報を収集するのですか? - - %p あなたがこのサイトに登録すると、ここで共有された情報を読んだり、書いたり、評価したりして、フォーラムでの情報を集める事ができます。 - - %p このサイトに登録する際には、名前とメールアドレスの入力を求めることがあります。ただし、登録をすることなくこのサイトを利用することも可能です。あなたのメールアドレスは、固有のリンクを含んだメールで確認されます。そのリンクにアクセスした場合にメールアドレスを制御することとなります。 - - %p アカウントを登録し、投稿を行った際にはその投稿が行われたIPアドレスを記録します。また、このサーバーに対する全てのリクエストはIPアドレスを含むサーバーログとして保管されます。 - - %h3#use 自分の情報を何に使うのですか? - - %p このサイトで収集された情報は、次のいくつかの方法で使用されます: - - %ul - %li パーソナライズ・エクスペリエンス — あなたの情報は、あなたや他のユーザーのニーズに対応するために役立ちます。 - %li サイトの改善・最適化 — このサービスはあなたから受け取った情報やフィードバックに基づいて提供されるサイトの改善を行いつづけます。 - %li サービスの向上 — あなたの情報は、ユーザーからの要求やサポートへより効果的に対応するために役立ちます。 - %li 定期メールの送信 — メールアドレスは、情報の送信、トピックの変更やユーザー名に関係するお知らせ、お問い合わせに関する返答、その他のリクエストや質問に関してお知らせするために使用されます。 - - %h3#protect 自分の情報はどのように保護されるのですか? - - %p このサービスはあなたの個人情報の入力、送信、またはアクセスに際してあなたの個人情報の安全性を維持するために様々なセキュリティ手段をとっています。 - - %h3#data-retention データ保持のポリシーはどのようになっていますか? - - %p このサービスはデータ保持に関して次のことを行うよう努めます。: - - %ul - %li このサーバーへのすべての要求に対して、IPアドレスを含むサーバーログを90日以内に渡って保持します。 - %li 登録されたユーザーとその投稿に関連付けされたIPアドレスを5年以内に渡って保持します。 - - %h3#cookies クッキーを使用していますか? - - %p はい。クッキーはあなたがウェブブラウザ上で許可した場合にコンピュータのストレージに転送される小さなファイルです。これらのクッキーを使用すると、サイトでブラウザが識別され、登録済みのアカウントを持っている場合は登録済みのアカウントに関連付けがされます。 - - %p クッキーを使用して、今後再度閲覧された場合に前回のデータから設定を呼び出したり、今後の改善のためにサイトのトラフィックやサイトの相互作用に関する集計データを作成します。このサービスは、サイトを訪れた方との理解を深めるために、第三者のサービス提供者と契約することがあります。これらのサービス提供者というものは、このサービスでの業務を行ったり、改善するためにこのサービスの代わって収集された情報を使用することはできません。 - - %h3#disclose このサイトは外部に何らかの情報を開示していますか? - - %p 私たちは、個人を特定出来る情報を外部へ販売、取引、または他の方法で渡すことはありません。これには、このサイトを操作したり、業務を行ったり、サービスを提供するのに役立つ信頼できる第三者は含まれません。法令遵守、サイトポリシーの施行、このサービスや他の人の権利、財産または安全の保護のために適切であると判断した場合に、あなたの情報を公開する場合があります。ただし、マーケティングや広告、その他の目的で匿名での訪問者情報を他者へ提供することができます。 - - %h3#third-party サードパーティのリンク - - %p 必要に応じて、このサービスの方針にもとづいてこのサイトや第三者のサービスを提供することがあります。これらの第三者のサイトには、個別の独立したプライバシーポリシーがあります。従って、これらのリンク先のサイトに関するコンテンツや活動にかんしては一切責任を負いません。ですが、サイトの完全性やこれらのサイトに関するフィードバックは非常に重要なものであると認識しております。 - - %h3#coppa 子供のオンライン・プライバシー保護法 - - %p - このサイト、製品、サービスはすべて13歳以上の人を対象としております。このサーバーが米国にあり、13歳未満の場合はCOPPA - = surround '(', '),' do - = link_to 'Children\'s Online Privacy Protection Act', 'https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act' - にもとづいてこのサイトを使用しないでください。 - - %h3#online オンライン限定のプライバシーポリシー - - %p このオンライン・プライバシーポリシーは、このサイトを通じて収集された情報のみに適用され、オフラインで収集される情報には適用されません。 - - %h3#consent あなたの同意 - - %p このサービスを使用することにより、このサイトのプライバシーポリシーに同意するものとします。 - - %h3#changes プライバシーポリシーの変更 - - %p プライバシーポリシーを変更する場合は、このページへ変更内容を掲載します。 - - %p この文章のライセンスはCC-BY-SAです。このページは2017年5月6日が最終更新です。 - - %p - オリジナルの出典 - = succeed '.' do - = link_to 'Discourse privacy policy', 'https://github.com/discourse/discourse' diff --git a/app/views/about/terms.no.html.haml b/app/views/about/terms.no.html.haml deleted file mode 100644 index 46f62950d..000000000 --- a/app/views/about/terms.no.html.haml +++ /dev/null @@ -1,76 +0,0 @@ -- content_for :page_title do - #{site_hostname} Personvern og villkår for bruk av nettstedet - -.wrapper - %h2 Personvernserklæring - - %h3#collect Hvilke opplysninger samler vi? - - %p Vi samler opplysninger fra deg når du registrerer deg på nettstedet vårt, og vi samler data når du deltar på forumet ved å lese, skrive og evaluere innholdet som deles her. - - %p Når du registrerer deg på nettstedet vårt, kan du bli bedt om å oppgi navnet og e-postadressen din. Imidlertid kan du besøke nettstedet vårt uten å registrere deg. E-postadressen din vil bli bekreftet med en e-post som inneholder en unik lenke. Hvis siden den lenker til, blir besøkt, vet vi at du har kontroll over e-postadressen. - - %p Når du registrerer deg og skriver innlegg, registrerer vi IP-adressen som innlegget stammer fra. Vi kan også oppbevare logger som inkluderer IP-adressen til alle forespørslene sendt til tjeneren vår. - - %h3#use Hva bruker vi opplysningene dine til? - - %p Alle opplysningene vi samler fra deg, kan bli brukt på en av følgende måter: - - %ul - %li For å gjøre opplevelsen din mer personlig. Opplysningene dine hjelper oss å svare bedre på dine individuelle behov. - %li For å forbedre nettstedet vårt. Vi jobber konstant for å forbedre nettstedets tilbud basert på opplysningene og tilbakemeldingene vi mottar fra deg. - %li For å forbedre vår kundeservice. Dine opplysninger hjelper oss å svare mer effektivt på dine forespørsler sendt til kundeservice eller behov om støtte. - %li For å sende periodiske e-poster. E-postadressen du oppgir, kan bli brukt til å sende deg informasjon, påminnelser som du ber om ved endringer av emner eller ved svar til brukernavnet ditt, til henvendelser, og/eller andre forspørsler eller andre spørsmål. - - %h3#protect Hvordan sikrer vi opplysningene? - - %p Vi gjennomfører flere sikkerhetstiltak for å holde personopplysningene dine sikre når du skriver inn, lagrer eller henter dem. - - %h3#data-retention Hva er retningslinjene deres for lagring av data? - - %p Vi vil forsøke i god tro å: - - %ul - %li Ikke oppbevare tjener-logger som inneholder IP-adressen til alle forespørslene til denne tjeneren i lenger enn i 90 dager. - %li Ikke oppbevare IP-adressene forbundet med registrerte brukere og deres innlegg lenger enn i 5 år. - - %h3#cookies Bruker vi informasjonskapsler? - - %p Ja. Informasjonskapsler er små filer som et nettsted eller dets tjenesteleverandør overfører til harddisken på datamaskinen din gjennom nettleseren din (dersom du tillater det). Disse informasjonskapslene gjør det mulig for nettstedet å gjenkjenne nettleseren din og, dersom du har en konto, knytte nettleseren til den. - - %p Vi bruker informasjonskapsler for å forstå og lagre preferansene dine for fremtidige besøk og for å samle aggregatdata om trafikk på og samhandling med nettstedet slik at vi kan tilby bedre opplevelser og verktøy på nettstedet i fremtiden. Vi kan inngå avtaler med tredjeparts tjenesteleverandører for å bistå oss i å forstå besøkerne våres bedre. Disse tjenesteleverandørene har ikke lov til å bruke opplysningene samlet på våres vegne unntatt til å hjelpe oss å gjennomføre og forbedre anliggendet vårt. - - %h3#disclose Gir vi noen opplysninger videre til andre parter? - - %p Vi verken selger, handler med eller overfører på noen annen måte til andre parter dine identifiserbare personopplysninger. Dette inkluderer ikke tredjeparter som har vår tillit og bistår oss i å drive nettstedet, utføre våre anliggender eller yter tjenester til deg, så lenge disse partene samtykker til å behandle disse opplysningene fortrolig. Vi kan også frigi opplysningene dine dersom vi tror at å frigi dem er hensiktsmessig for å overholde loven, håndheve nettstedet retningslinjer eller beskytte våre og andres rettigheter. Imidlertid kan opplysninger som ikke er personlig identifiserbare, bli delt med andre parter for markedsføring, reklame eller annet bruk. - - %h3#third-party Tredjeparts lenker - - %p Av og til, etter skjønn, kan vil inkludere eller tilby tredjeparts produkter eller tjenester på nettstedet vårt. Disse tredjeparts nettstedene har separate og selvstendige personvernerklæringer. Vi bærer derfor intet ansvar eller forpliktelser for innholdet eller aktivitetene til disse nettstedene det lenkes til. Ikke mindre prøver vi å bevare vår eget nettsteds integritet og ønsker enhver tilbakemelding om disse nettstedene velkomne. - - %h3#coppa Overensstemmelse med Children's Online Privacy Protection Act - - %p - Nettstedet er rettet mot folk som er minst 13 år gamle. Dersom denne tjeneren er i USA, og du er under 13 år i henhold til kravene i COPPA - = surround '(', '),' do - = link_to 'Children\'s Online Privacy Protection Act', 'https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act' - ikke bruk dette nettstedet. - - %h3#online Personvernerklæring bare for nettet - - %p Denne nett-personvernerklæringen gjelder bare for informasjon samlet gjennom nettstedet vårt og ikke for opplysninger samlet når en er frakoblet. - - %h3#consent Ditt samtykke - - %p Ved å bruke dette nettstedet samtykker du til nettstedets personvernerklæring. - - %h3#changes Endringer i vår personvernerklæring - - %p Dersom vi beslutter å endre personvernerklæringen vår, vil vi publisere disse endringene på denne siden. - - %p Dette dokumentet er lisensiert under CC-BY-SA. De ble sist oppdatert 12. april 2017. - - %p - Dokumentet er en adoptert og endret versjon fra - = succeed '.' do - = link_to 'Discourse privacy policy', 'https://github.com/discourse/discourse' diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index edb69e360..3096a958d 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -40,6 +40,13 @@ %td= text_area_tag :site_extended_description, @settings['site_extended_description'].value, rows: 8 + %tr + %td + %strong= t('admin.settings.site_terms.title') + %p= t('admin.settings.site_terms.desc_html') + %td= text_area_tag :site_terms, + @settings['site_terms'].value, + rows: 8 %tr %td %strong= t('admin.settings.registrations.open.title') diff --git a/config/locales/en.yml b/config/locales/en.yml index 944c24c60..60e192491 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -183,6 +183,9 @@ en: site_description_extended: desc_html: Displayed on extended information page
You can use HTML tags title: Extended site description + site_terms: + desc_html: Displayed on terms page
You can use HTML tags + title: Site Privacy Policy site_title: Site title title: Site Settings subscriptions: @@ -387,6 +390,76 @@ en: click_to_show: Click to show reblogged: boosted sensitive_content: Sensitive content + terms: + body_html: | +

Privacy Policy

+ +

What information do we collect?

+ +

We collect information from you when you register on our site and gather data when you participate in the forum by reading, writing, and evaluating the content shared here.

+ +

When registering on our site, you may be asked to enter your name and e-mail address. You may, however, visit our site without registering. Your e-mail address will be verified by an email containing a unique link. If that link is visited, we know that you control the e-mail address.

+ +

When registered and posting, we record the IP address that the post originated from. We also may retain server logs which include the IP address of every request to our server.

+ +

What do we use your information for?

+ +

Any of the information we collect from you may be used in one of the following ways:

+ +
    +
  • To personalize your experience — your information helps us to better respond to your individual needs.
  • +
  • To improve our site — we continually strive to improve our site offerings based on the information and feedback we receive from you.
  • +
  • To improve customer service — your information helps us to more effectively respond to your customer service requests and support needs.
  • +
  • To send periodic emails — The email address you provide may be used to send you information, notifications that you request about changes to topics or in response to your user name, respond to inquiries, and/or other requests or questions.
  • +
+ +

How do we protect your information?

+ +

We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information.

+ +

What is your data retention policy?

+ +

We will make a good faith effort to:

+ +
    +
  • Retain server logs containing the IP address of all requests to this server no more than 90 days.
  • +
  • Retain the IP addresses associated with registered users and their posts no more than 5 years.
  • +
+ +

Do we use cookies?

+ +

Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

+ +

We use cookies to understand and save your preferences for future visits and compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We may contract with third-party service providers to assist us in better understanding our site visitors. These service providers are not permitted to use the information collected on our behalf except to help us conduct and improve our business.

+ +

Do we disclose any information to outside parties?

+ +

We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses.

+ +

Third party links

+ +

Occasionally, at our discretion, we may include or offer third party products or services on our site. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these sites.

+ +

Children's Online Privacy Protection Act Compliance

+ +

Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

+ +

Online Privacy Policy Only

+ +

This online privacy policy applies only to information collected through our site and not to information collected offline.

+ + + +

By using our site, you consent to our web site privacy policy.

+ +

Changes to our Privacy Policy

+ +

If we decide to change our privacy policy, we will post those changes on this page.

+ +

This document is CC-BY-SA. It was last updated May 31, 2013.

+ +

Originally adapted from the Discourse privacy policy. + title: "%{instance} Terms of Service and Privacy Policy" time: formats: default: "%b %d, %Y, %H:%M" diff --git a/config/locales/ja.yml b/config/locales/ja.yml index b45e06d3a..347270af2 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -387,6 +387,76 @@ ja: click_to_show: クリックして表示 reblogged: さんにブーストされました sensitive_content: 閲覧注意 + terms: + body_html: | +

プライバシーポリシー

+ +

どのような情報を収集するのですか?

+ +

あなたがこのサイトに登録すると、ここで共有された情報を読んだり、書いたり、評価したりして、フォーラムでの情報を集める事ができます。

+ +

このサイトに登録する際には、名前とメールアドレスの入力を求めることがあります。ただし、登録をすることなくこのサイトを利用することも可能です。あなたのメールアドレスは、固有のリンクを含んだメールで確認されます。そのリンクにアクセスした場合にメールアドレスを制御することとなります。

+ +

アカウントを登録し、投稿を行った際にはその投稿が行われたIPアドレスを記録します。また、このサーバーに対する全てのリクエストはIPアドレスを含むサーバーログとして保管されます。

+ +

自分の情報を何に使うのですか?

+ +

このサイトで収集された情報は、次のいくつかの方法で使用されます:

+ +
    +
  • パーソナライズ・エクスペリエンス — あなたの情報は、あなたや他のユーザーのニーズに対応するために役立ちます。
  • +
  • サイトの改善・最適化 — このサービスはあなたから受け取った情報やフィードバックに基づいて提供されるサイトの改善を行いつづけます。
  • +
  • サービスの向上 — あなたの情報は、ユーザーからの要求やサポートへより効果的に対応するために役立ちます。
  • +
  • 定期メールの送信 — メールアドレスは、情報の送信、トピックの変更やユーザー名に関係するお知らせ、お問い合わせに関する返答、その他のリクエストや質問に関してお知らせするために使用されます。
  • +
+ +

自分の情報はどのように保護されるのですか?

+ +

このサービスはあなたの個人情報の入力、送信、またはアクセスに際してあなたの個人情報の安全性を維持するために様々なセキュリティ手段をとっています。

+ +

クッキーを使用していますか?

+ +

はい。クッキーはあなたがウェブブラウザ上で許可した場合にコンピュータのストレージに転送される小さなファイルです。これらのクッキーを使用すると、サイトでブラウザが識別され、登録済みのアカウントを持っている場合は登録済みのアカウントに関連付けがされます。

+ +

クッキーを使用して、今後再度閲覧された場合に前回のデータから設定を呼び出したり、今後の改善のためにサイトのトラフィックやサイトの相互作用に関する集計データを作成します。このサービスは、サイトを訪れた方との理解を深めるために、第三者のサービス提供者と契約することがあります。これらのサービス提供者というものは、このサービスでの業務を行ったり、改善するためにこのサービスの代わって収集された情報を使用することはできません。

+ +

このサイトは外部に何らかの情報を開示していますか?

+ +

私たちは、個人を特定出来る情報を外部へ販売、取引、または他の方法で渡すことはありません。これには、このサイトを操作したり、業務を行ったり、サービスを提供するのに役立つ信頼できる第三者は含まれません。法令遵守、サイトポリシーの施行、このサービスや他の人の権利、財産または安全の保護のために適切であると判断した場合に、あなたの情報を公開する場合があります。ただし、マーケティングや広告、その他の目的で匿名での訪問者情報を他者へ提供することができます。

+ +

サードパーティのリンク

+ +

必要に応じて、このサービスの方針にもとづいてこのサイトや第三者のサービスを提供することがあります。これらの第三者のサイトには、個別の独立したプライバシーポリシーがあります。従って、これらのリンク先のサイトに関するコンテンツや活動にかんしては一切責任を負いません。ですが、サイトの完全性やこれらのサイトに関するフィードバックは非常に重要なものであると認識しております。

+ +

子供のオンライン・プライバシー保護法

+ +

このサイト、製品、サービスはすべて13歳以上の人を対象としております。このサーバーが米国にあり、13歳未満の場合はCOPPA (Children's Online Privacy Protection Act) にもとづいてこのサイトを使用しないでください。

+ +

オンライン限定のプライバシーポリシー

+ +

このオンライン・プライバシーポリシーは、このサイトを通じて収集された情報のみに適用され、オフラインで収集される情報には適用されません。

+ + + +

このサービスを使用することにより、このサイトのプライバシーポリシーに同意するものとします。

+ +

プライバシーポリシーの変更

+ +

プライバシーポリシーを変更する場合は、このページへ変更内容を掲載します。

+ +

この文章のライセンスはCC-BY-SAです。このページは2017年5月6日が最終更新です。

+ +

オリジナルの出典 Discourse privacy policy. + title: "%{instance} 利用規約・プライバシーポリシー" time: formats: default: "%Y年%m月%d日 %H:%M" diff --git a/config/locales/no.yml b/config/locales/no.yml index f71c08c6a..5fd63f121 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -321,6 +321,76 @@ click_to_show: Klikk for å vise reblogged: fremhevde sensitive_content: Følsomt innhold + terms: + body_html: | +

Personvernserklæring

+ +

Hvilke opplysninger samler vi?

+ +

Vi samler opplysninger fra deg når du registrerer deg på nettstedet vårt, og vi samler data når du deltar på forumet ved å lese, skrive og evaluere innholdet som deles her.

+ +

Når du registrerer deg på nettstedet vårt, kan du bli bedt om å oppgi navnet og e-postadressen din. Imidlertid kan du besøke nettstedet vårt uten å registrere deg. E-postadressen din vil bli bekreftet med en e-post som inneholder en unik lenke. Hvis siden den lenker til, blir besøkt, vet vi at du har kontroll over e-postadressen.

+ +

Når du registrerer deg og skriver innlegg, registrerer vi IP-adressen som innlegget stammer fra. Vi kan også oppbevare logger som inkluderer IP-adressen til alle forespørslene sendt til tjeneren vår.

+ +

Hva bruker vi opplysningene dine til?

+ +

Alle opplysningene vi samler fra deg, kan bli brukt på en av følgende måter:

+ +
    +
  • For å gjøre opplevelsen din mer personlig. Opplysningene dine hjelper oss å svare bedre på dine individuelle behov.
  • +
  • For å forbedre nettstedet vårt. Vi jobber konstant for å forbedre nettstedets tilbud basert på opplysningene og tilbakemeldingene vi mottar fra deg.
  • +
  • For å forbedre vår kundeservice. Dine opplysninger hjelper oss å svare mer effektivt på dine forespørsler sendt til kundeservice eller behov om støtte.
  • +
  • For å sende periodiske e-poster. E-postadressen du oppgir, kan bli brukt til å sende deg informasjon, påminnelser som du ber om ved endringer av emner eller ved svar til brukernavnet ditt, til henvendelser, og/eller andre forspørsler eller andre spørsmål.
  • +
+ +

Hvordan sikrer vi opplysningene?

+ +

Vi gjennomfører flere sikkerhetstiltak for å holde personopplysningene dine sikre når du skriver inn, lagrer eller henter dem.

+ +

Hva er retningslinjene deres for lagring av data?

+ +

Vi vil forsøke i god tro å:

+ +
    +
  • Ikke oppbevare tjener-logger som inneholder IP-adressen til alle forespørslene til denne tjeneren i lenger enn i 90 dager.
  • +
  • Ikke oppbevare IP-adressene forbundet med registrerte brukere og deres innlegg lenger enn i 5 år.
  • +
+ +

Bruker vi informasjonskapsler?

+ +

Ja. Informasjonskapsler er små filer som et nettsted eller dets tjenesteleverandør overfører til harddisken på datamaskinen din gjennom nettleseren din (dersom du tillater det). Disse informasjonskapslene gjør det mulig for nettstedet å gjenkjenne nettleseren din og, dersom du har en konto, knytte nettleseren til den.

+ +

Vi bruker informasjonskapsler for å forstå og lagre preferansene dine for fremtidige besøk og for å samle aggregatdata om trafikk på og samhandling med nettstedet slik at vi kan tilby bedre opplevelser og verktøy på nettstedet i fremtiden. Vi kan inngå avtaler med tredjeparts tjenesteleverandører for å bistå oss i å forstå besøkerne våres bedre. Disse tjenesteleverandørene har ikke lov til å bruke opplysningene samlet på våres vegne unntatt til å hjelpe oss å gjennomføre og forbedre anliggendet vårt.

+ +

Gir vi noen opplysninger videre til andre parter?

+ +

Vi verken selger, handler med eller overfører på noen annen måte til andre parter dine identifiserbare personopplysninger. Dette inkluderer ikke tredjeparter som har vår tillit og bistår oss i å drive nettstedet, utføre våre anliggender eller yter tjenester til deg, så lenge disse partene samtykker til å behandle disse opplysningene fortrolig. Vi kan også frigi opplysningene dine dersom vi tror at å frigi dem er hensiktsmessig for å overholde loven, håndheve nettstedet retningslinjer eller beskytte våre og andres rettigheter. Imidlertid kan opplysninger som ikke er personlig identifiserbare, bli delt med andre parter for markedsføring, reklame eller annet bruk.

+ +

Tredjeparts lenker

+ +

Av og til, etter skjønn, kan vil inkludere eller tilby tredjeparts produkter eller tjenester på nettstedet vårt. Disse tredjeparts nettstedene har separate og selvstendige personvernerklæringer. Vi bærer derfor intet ansvar eller forpliktelser for innholdet eller aktivitetene til disse nettstedene det lenkes til. Ikke mindre prøver vi å bevare vår eget nettsteds integritet og ønsker enhver tilbakemelding om disse nettstedene velkomne.

+ +

Overensstemmelse med Children's Online Privacy Protection Act

+ +

Nettstedet er rettet mot folk som er minst 13 år gamle. Dersom denne tjeneren er i USA, og du er under 13 år i henhold til kravene i COPPA (Children's Online Privacy Protection Act), ikke bruk dette nettstedet.

+ +

Personvernerklæring bare for nettet

+ +

Denne nett-personvernerklæringen gjelder bare for informasjon samlet gjennom nettstedet vårt og ikke for opplysninger samlet når en er frakoblet.

+ + + +

Ved å bruke dette nettstedet samtykker du til nettstedets personvernerklæring.

+ +

Endringer i vår personvernerklæring

+ +

Dersom vi beslutter å endre personvernerklæringen vår, vil vi publisere disse endringene på denne siden.

+ +

Dette dokumentet er lisensiert under CC-BY-SA. De ble sist oppdatert 12. april 2017.

+ +

Dokumentet er en adoptert og endret versjon fra Discourse privacy policy.

+ title: "%{instance} Personvern og villkår for bruk av nettstedet" time: formats: default: "%-d. %b %Y, %H:%M" diff --git a/config/settings.yml b/config/settings.yml index 7b78b6cdb..5aea232e7 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -10,6 +10,7 @@ defaults: &defaults site_title: Mastodon site_description: '' site_extended_description: '' + site_terms: '' site_contact_username: '' site_contact_email: '' open_registrations: true -- cgit From 4cddef1cea3b7c44c5c951b2cd6a118edd0332c5 Mon Sep 17 00:00:00 2001 From: Gyuhwan Park Date: Tue, 4 Jul 2017 23:11:23 +0900 Subject: i18n: Add korean translation (#4064) * Added Korean Translation (based on japanese) * Update korean translation * Update korean translation: fix syntax error * Updated korean translation * Update korean translation * Update ko.json Translate non-translated parts * Update ko.yml Translated missed parts - and fixed some typos * Create simple_form.ko.yml * Updated korean translation * i18n: fix test fails --- app/helpers/settings_helper.rb | 1 + app/javascript/mastodon/locales/ko.json | 176 +++++++++ app/javascript/mastodon/locales/whitelist_ko.json | 2 + config/application.rb | 1 + config/locales/ko.yml | 411 ++++++++++++++++++++++ config/locales/simple_form.ko.yml | 58 +++ 6 files changed, 649 insertions(+) create mode 100644 app/javascript/mastodon/locales/ko.json create mode 100644 app/javascript/mastodon/locales/whitelist_ko.json create mode 100644 config/locales/ko.yml create mode 100644 config/locales/simple_form.ko.yml (limited to 'config') diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 847eff2e7..af950aa63 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -19,6 +19,7 @@ module SettingsHelper io: 'Ido', it: 'Italiano', ja: '日本語', + ko: '한국어', nl: 'Nederlands', no: 'Norsk', oc: 'Occitan', diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json new file mode 100644 index 000000000..0a2d76d3a --- /dev/null +++ b/app/javascript/mastodon/locales/ko.json @@ -0,0 +1,176 @@ +{ + "account.block": "차단", + "account.block_domain": "{domain} 전체를 숨김", + "account.disclaimer": "이 사용자는 다른 인스턴스에 소속되어 있으므로, 수치가 정확하지 않을 수도 있습니다.", + "account.edit_profile": "프로필 편집", + "account.follow": "팔로우", + "account.followers": "팔로워", + "account.follows": "팔로우", + "account.follows_you": "날 팔로우합니다", + "account.media": "미디어", + "account.mention": "답장", + "account.mute": "뮤트", + "account.posts": "포스트", + "account.report": "신고", + "account.requested": "승인 대기 중", + "account.unblock": "차단 해제", + "account.unblock_domain": "{domain} 숨김 해제", + "account.unfollow": "팔로우 해제", + "account.unmute": "뮤트 해제", + "boost_modal.combo": "다음부터 {combo}를 누르면 이 과정을 건너뛸 수 있습니다.", + "column.blocks": "차단 중인 사용자", + "column.community": "로컬 타임라인", + "column.favourites": "즐겨찾기", + "column.follow_requests": "팔로우 요청", + "column.home": "홈", + "column.mutes": "뮤트 중인 사용자", + "column.notifications": "알림", + "column.public": "연합 타임라인", + "column_back_button.label": "돌아가기", + "column_header.pin": "고정하기", + "column_header.unpin": "고정 해제", + "column_subheading.navigation": "내비게이션", + "column_subheading.settings": "설정", + "compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.", + "compose_form.lock_disclaimer.lock": "비공개", + "compose_form.placeholder": "지금 무엇을 하고 있나요?", + "compose_form.privacy_disclaimer": "이 계정의 비공개 포스트는 멘션된 사용자가 소속된 {domains}으로 전송됩니다. {domainsCount, plural, one {이 서버를} other {이 서버들을}} 신뢰할 수 있습니까? 포스팅의 프라이버시 보호는 Mastodon 서버에서만 유효합니다. {domains}가 Mastodon 인스턴스가 아닐 경우, 이 투고가 사적인 것으로 취급되지 않은 채 부스트 되거나 원하지 않는 사용자에게 보여질 가능성이 있습니다.", + "compose_form.publish": "Toot", + "compose_form.publish_loud": "{publish}!", + "compose_form.sensitive": "이 미디어를 민감한 미디어로 취급", + "compose_form.spoiler": "텍스트 숨기기", + "compose_form.spoiler_placeholder": "경고", + "confirmation_modal.cancel": "취소", + "confirmations.block.confirm": "차단", + "confirmations.block.message": "정말로 {name}를 차단하시겠습니까?", + "confirmations.delete.confirm": "삭제", + "confirmations.delete.message": "정말로 삭제하시겠습니까?", + "confirmations.domain_block.confirm": "도메인 전체를 숨김", + "confirmations.domain_block.message": "정말로 {domain} 전체를 숨기시겠습니까? 대부분의 경우 개별 차단이나 뮤트로 충분합니다.", + "confirmations.mute.confirm": "뮤트", + "confirmations.mute.message": "정말로 {name}를 뮤트하시겠습니까?", + "emoji_button.activity": "활동", + "emoji_button.flags": "국기", + "emoji_button.food": "음식", + "emoji_button.label": "emoji를 추가", + "emoji_button.nature": "자연", + "emoji_button.objects": "물건", + "emoji_button.people": "사람들", + "emoji_button.search": "검색...", + "emoji_button.symbols": "기호", + "emoji_button.travel": "여행과 장소", + "empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!", + "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.", + "empty_column.home": "아직 아무도 팔로우 하고 있지 않습니다. {public}를 보러 가거나, 검색하여 다른 사용자를 찾아 보세요.", + "empty_column.home.inactivity": "홈 피드에 아무 것도 없습니다. 한동안 활동하지 않은 경우 곧 원래대로 돌아올 것입니다.", + "empty_column.home.public_timeline": "연합 타임라인", + "empty_column.notifications": "아직 알림이 없습니다. 다른 사람과 대화를 시작해 보세요!", + "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 인스턴스 유저를 팔로우 해서 가득 채워보세요!", + "follow_request.authorize": "허가", + "follow_request.reject": "거부", + "getting_started.appsshort": "어플리케이션", + "getting_started.faq": "자주 있는 질문", + "getting_started.heading": "시작", + "getting_started.open_source_notice": "Mastodon은 오픈 소스 소프트웨어입니다. 누구나 GitHub({github})에서 개발에 참여하거나, 문제를 보고할 수 있습니다.", + "getting_started.userguide": "사용자 가이드", + "home.column_settings.advanced": "고급 사용자용", + "home.column_settings.basic": "기본 설정", + "home.column_settings.filter_regex": "정규 표현식으로 필터링", + "home.column_settings.show_reblogs": "부스트 표시", + "home.column_settings.show_replies": "답글 표시", + "home.settings": "컬럼 설정", + "lightbox.close": "닫기", + "loading_indicator.label": "불러오는 중...", + "media_gallery.toggle_visible": "표시 전환", + "missing_indicator.label": "찾을 수 없습니다", + "navigation_bar.blocks": "차단한 사용자", + "navigation_bar.community_timeline": "로컬 타임라인", + "navigation_bar.edit_profile": "프로필 편집", + "navigation_bar.favourites": "즐겨찾기", + "navigation_bar.follow_requests": "팔로우 요청", + "navigation_bar.info": "이 인스턴스에 대해서", + "navigation_bar.logout": "로그아웃", + "navigation_bar.mutes": "뮤트 중인 사용자", + "navigation_bar.preferences": "사용자 설정", + "navigation_bar.public_timeline": "연합 타임라인", + "notification.favourite": "{name}님이 즐겨찾기 했습니다", + "notification.follow": "{name}님이 나를 팔로우 했습니다", + "notification.mention": "{name}님이 답글을 보냈습니다", + "notification.reblog": "{name}님이 부스트 했습니다", + "notifications.clear": "알림 지우기", + "notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?", + "notifications.column_settings.alert": "데스크탑 알림", + "notifications.column_settings.favourite": "즐겨찾기", + "notifications.column_settings.follow": "새 팔로워", + "notifications.column_settings.mention": "답글", + "notifications.column_settings.reblog": "부스트", + "notifications.column_settings.show": "컬럼에 표시", + "notifications.column_settings.sound": "효과음 재생", + "onboarding.done": "완료", + "onboarding.next": "다음", + "onboarding.page_five.public_timelines": "연합 타임라인에서는 {domain}의 사람들이 팔로우 중인 Mastodon 전체 인스턴스의 공개 포스트를 표시합니다. 로컬 타임라인에서는 {domain} 만의 공개 포스트를 표시합니다.", + "onboarding.page_four.home": "홈 타임라인에서는 내가 팔로우 중인 사람들의 포스트를 표시합니다.", + "onboarding.page_four.notifications": "알림에서는 다른 사람들과의 연결을 표시합니다.", + "onboarding.page_one.federation": "Mastodon은 누구나 참가할 수 있는 SNS입니다.", + "onboarding.page_one.handle": "여러분은 지금 수많은 Mastodon 인스턴스 중 하나인 {domain}에 있습니다. あなたのフルハンドルは{handle}です。", + "onboarding.page_one.welcome": "Mastodon에 어서 오세요!", + "onboarding.page_six.admin": "이 인스턴스의 관리자는 {admin}입니다.", + "onboarding.page_six.almost_done": "이상입니다.", + "onboarding.page_six.appetoot": "Bon Appetoot!", + "onboarding.page_six.apps_available": "iOS、Android 또는 다른 플랫폼에서 사용할 수 있는 {apps}이 있습니다.", + "onboarding.page_six.github": "Mastodon는 오픈 소스 소프트웨어입니다. 버그 보고나 기능 추가 요청, 기여는 {github}에서 할 수 있습니다.", + "onboarding.page_six.guidelines": "커뮤니티 가이드라인", + "onboarding.page_six.read_guidelines": "{guidelines}을 확인하는 것을 잊지 마세요.", + "onboarding.page_six.various_app": "다양한 모바일 어플리케이션", + "onboarding.page_three.profile": "[프로필 편집] 에서 자기 소개나 이름을 변경할 수 있습니다. 또한 다른 설정도 변경할 수 있습니다.", + "onboarding.page_three.search": "검색 바에서 {illustration} 나 {introductions} 와 같이 특정 해시태그가 달린 포스트를 보거나, 사용자를 찾을 수 있습니다.", + "onboarding.page_two.compose": "이 폼에서 포스팅 할 수 있습니다. 이미지나 공개 범위 설정, 스포일러 경고 설정은 아래 아이콘으로 설정할 수 있습니다.", + "onboarding.skip": "건너뛰기", + "privacy.change": "포스트의 프라이버시 설정을 변경", + "privacy.direct.long": "멘션한 사용자에게만 공개", + "privacy.direct.short": "다이렉트", + "privacy.private.long": "팔로워에게만 공개", + "privacy.private.short": "비공개", + "privacy.public.long": "공개 타임라인에 표시", + "privacy.public.short": "공개", + "privacy.unlisted.long": "공개 타임라인에 표시하지 않음", + "privacy.unlisted.short": "Unlisted", + "reply_indicator.cancel": "취소", + "report.heading": "신고", + "report.placeholder": "코멘트", + "report.submit": "신고하기", + "report.target": "문제가 된 사용자", + "search.placeholder": "검색", + "search_results.total": "{count, number}건의 결과", + "status.cannot_reblog": "이 포스트는 부스트 할 수 없습니다", + "status.delete": "삭제", + "status.favourite": "즐겨찾기", + "status.load_more": "더 보기", + "status.media_hidden": "미디어 숨겨짐", + "status.mention": "답장", + "status.mute_conversation": "이 대화를 뮤트", + "status.open": "상세 정보 표시", + "status.reblog": "부스트", + "status.reblogged_by": "{name}님이 부스트 했습니다", + "status.reply": "답장", + "status.replyAll": "전원에게 답장", + "status.report": "신고", + "status.sensitive_toggle": "클릭해서 표시하기", + "status.sensitive_warning": "민감한 미디어", + "status.show_less": "숨기기", + "status.show_more": "더 보기", + "status.unmute_conversation": "이 대화의 뮤트 해제하기", + "tabs_bar.compose": "포스트", + "tabs_bar.federated_timeline": "연합", + "tabs_bar.home": "홈", + "tabs_bar.local_timeline": "로컬", + "tabs_bar.notifications": "알림", + "upload_area.title": "드래그 & 드롭으로 업로드", + "upload_button.label": "미디어 추가", + "upload_form.undo": "재시도", + "upload_progress.label": "업로드 중...", + "video_player.expand": "동영상 자세히 보기", + "video_player.toggle_sound": "소리 토글하기", + "video_player.toggle_visible": "표시 전환", + "video_player.video_error": "동영상 재생에 실패했습니다" +} diff --git a/app/javascript/mastodon/locales/whitelist_ko.json b/app/javascript/mastodon/locales/whitelist_ko.json new file mode 100644 index 000000000..0d4f101c7 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_ko.json @@ -0,0 +1,2 @@ +[ +] diff --git a/config/application.rb b/config/application.rb index 6b121009e..6bd47cd6c 100644 --- a/config/application.rb +++ b/config/application.rb @@ -45,6 +45,7 @@ module Mastodon :io, :it, :ja, + :ko, :nl, :no, :oc, diff --git a/config/locales/ko.yml b/config/locales/ko.yml new file mode 100644 index 000000000..7f238ab73 --- /dev/null +++ b/config/locales/ko.yml @@ -0,0 +1,411 @@ +--- +ko: + about: + about_mastodon: Mastodon 은자유로운 오픈 소스소셜 네트워크입니다. 상용 플랫폼의 대체로써 분산형 구조를 채택해, 여러분의 대화가 한 회사에 독점되는 것을 방지합니다. 신뢰할 수 있는 인스턴스를 선택하세요 — 어떤 인스턴스를 고르더라도, 누구와도 대화할 수 있습니다. 누구나 자신만의 Mastodon 인스턴스를 만들 수 있으며, Seamless하게 소셜 네트워크에 참가할 수 있습니다. + about_this: 이 인스턴스에 대해서 + apps: 어플리케이션 + business_email: '비즈니스 메일 주소:' + closed_registrations: 현재 이 인스턴스에서는 신규 등록을 받고 있지 않습니다. + contact: 연락처 + description_headline: "%{domain} 는 무엇인가요?" + domain_count_after: 개의 인스턴스 + domain_count_before: 연결됨 + features: + api: 어플리케이션이나 그 외 서비스에 API를 공개 + blocks: 강력한 차단 및 뮤트 기능 + characters: 한번에 500자까지 포스팅 가능 + chronology: 시간 순서의 타임라인 + ethics: 광고도 트래킹도 없습니다 + gifv: GIFV나 짧은 동영상도 지원 + privacy: 각 포스팅마다 공개 범위를 상세히 설정 가능 + public: 공개 타임라인 + features_headline: Mastodon 의 특징 + get_started: 참가하기 + links: 링크 + other_instances: 다른 인스턴스 + source_code: 소스 코드 + status_count_after: Toot + status_count_before: Toot 수 + terms: 개인 정보 보호 정책 + user_count_after: 명 + user_count_before: 사용자 수 + version: 버전 + accounts: + follow: 팔로우 + followers: 팔로워 + following: 팔로잉 + nothing_here: 아무 것도 없습니다. + people_followed_by: "%{name} 님이 팔로우 중인 계정" + people_who_follow: "%{name} 님을 팔로우 중인 계정" + posts: 포스트 + remote_follow: 리모트 팔로우 + reserved_username: 이 사용자 명은 예약되어 있습니다. + unfollow: 팔로우 해제 + activitypub: + activity: + announce: + name: "%{account_name} 님이 액티비티를 공유했습니다" + create: + name: "%{account_name} 님이 노트를 작성했습니다" + outbox: + name: "%{account_name} 님의 송신함" + summary: "%{account_name} 님의 액티비티 모음" + admin: + accounts: + are_you_sure: 정말로 실행하시겠습니까? + confirm: 확인 + confirmed: 확인됨 + disable_two_factor_authentication: 2단계 인증을 비활성화 + display_name: 계정명 + domain: 도메인 + edit: 편집 + email: E-mail + feed_url: 피드 URL + followers: 팔로워 수 + follows: 팔로잉 수 + ip: IP + location: + all: 전체 + local: 로컬 + remote: 리모트 + title: 위치 + media_attachments: 첨부된 미디어 + moderation: + all: 전체 + silenced: 침묵 중 + suspended: 정지 중 + title: 모더레이션 + most_recent_activity: 최근 활동 + most_recent_ip: 최근 IP + not_subscribed: 구독하지 않음 + order: + alphabetic: 알파벳 순 + most_recent: 최근 활동 순 + title: 순서 + perform_full_suspension: 완전히 정지시키기 + profile_url: 프로필 URL + public: 전체 공개 + push_subscription_expires: PuSH 구독 기간 만료 + redownload: 아바타 업데이트 + reset: 초기화 + reset_password: 비밀번호 초기화 + resubscribe: 다시 구독 + salmon_url: Salmon URL + search: 검색 + show: + created_reports: 이 계정에서 제출된 신고 + report: 신고 + targeted_reports: 이 계정에 대한 신고 + silence: 침묵 + statuses: Toot 수 + subscribe: 구독하기 + title: 계정 + undo_silenced: 침묵 해제 + undo_suspension: 정지 해제 + unsubscribe: 구독 해제 + username: 사용자명 + web: Web + domain_blocks: + add_new: 추가하기 + created_msg: 도메인 차단 처리를 완료했습니다. + destroyed_msg: 도메인 차단을 해제했습니다. + domain: 도메인 + new: + create: 차단 추가 + hint: 도메인 차단은 내부 데이터베이스에 계정이 생성되는 것까지는 막을 수 없지만, 그 도메인에서 생성된 계정에 자동적으로 특정한 모더레이션을 적용하게 할 수 있습니다. + severity: + desc_html: "침묵은 계정을 팔로우 하지 않고 있는 사람들에겐 계정의 Toot을 보이지 않게 합니다. 정지는 계정의 컨텐츠, 미디어, 프로필 데이터를 삭제합니다." + silence: 침묵 + suspend: 정지 + title: 새로운 도메인 차단 + reject_media: 미디어 파일 거부하기 + reject_media_hint: 로컬에 저장된 미디어 파일을 삭제하고, 이후로도 다운로드를 거부합니다. 정지하고는 관계 없습니다. + severities: + silence: 침묵 + suspend: 정지 + severity: 심각도 + show: + affected_accounts: + one: 데이터베이스 중 1개의 계정에 영향을 끼칩니다 + other: 데이터베이스 중 %{count}개의 계정에 영향을 끼칩니다 + retroactive: + silence: 이 도메인에 존재하는 모든 계정의 침묵를 해제 + suspend: 이 도메인에 존재하는 모든 계정의 계정 정지를 해제 + title: "%{domain}의 도메인 차단을 해제" + undo: 실행 취소 + title: 도메인 차단 + undo: 실행 취소 + instances: + account_count: 알려진 계정의 수 + domain_name: 도메인 이름 + title: 알려진 인스턴스들 + reports: + action_taken_by: 신고 처리자 + are_you_sure: 정말로 실행하시겠습니까? + comment: + label: 코멘트 + none: 없음 + delete: 삭제 + id: ID + mark_as_resolved: 해결 완료 처리 + nsfw: + 'false': NSFW 꺼짐 + 'true': NSFW 켜짐 + report: "신고 #%{id}" + report_contents: 내용 + reported_account: 신고 대상 계정 + reported_by: 신고자 + resolved: 해결됨 + silence_account: 계정을 침묵 처리 + status: 상태 + suspend_account: 계정을 정지 + target: 대상 + title: 신고 + unresolved: 미해결 + view: 표시 + settings: + contact_information: + email: 공개할 메일 주소를 입력 + label: 연락처 정보 + username: 사용자명을 입력 + registrations: + closed_message: + desc_html: 신규 등록을 받지 않을 때 프론트 페이지에 표시됩니다.
HTML 태그를 사용할 수 있습니다. + title: 신규 등록 정지 시 메시지 + open: + disabled: 꺼짐 + enabled: 켜짐 + title: 신규 등록을 받음 + setting: 설정 + site_description: + desc_html: 탑 페이지와 meta 태그에 사용됩니다.
HTML 태그, 예를 들어<a> 태그와 <em> 태그를 사용할 수 있습니다. + title: 사이트 설명 + site_description_extended: + desc_html: 인스턴스 정보 페이지에 표시됩니다.
HTML 태그를 사용할 수 있습니다. + title: 사이트 상세 설명 + site_title: 사이트 이름 + title: 사이트 설정 + subscriptions: + callback_url: 콜백 URL + confirmed: 확인됨 + expires_in: 기한 + last_delivery: 최종 발송 + title: PubSubHubbub + topic: 토픽 + title: 관리 + admin_mailer: + new_report: + body: "%{reporter} 가 %{target} 를 신고했습니다" + subject: "%{instance} 에 새 신고 등록됨 (#%{id})" + application_mailer: + settings: '메일 설정을 변경: %{link}' + signature: Mastodon %{instance} 인스턴스로에서 알림 + view: 'View:' + applications: + invalid_url: 올바르지 않은 URL입니다 + auth: + change_password: 보안 + delete_account: 계정 삭제 + delete_account_html: 계정을 삭제하고 싶은 경우, 여기서 삭제할 수 있습니다. 삭제 전 확인 화면이 표시됩니다. + didnt_get_confirmation: 확인 메일을 받지 못하셨습니까? + forgot_password: 비밀번호를 잊어버리셨습니까? + login: 로그인 + logout: 로그아웃 + register: 등록하기 + resend_confirmation: 확인 메일을 다시 보내기 + reset_password: 비밀번호 재설정 + set_new_password: 새 비밀번호 + authorize_follow: + error: 리모트 팔로우 도중 오류가 발생했습니다. + follow: 팔로우 + prompt_html: '나(%{self}) 는 아래 계정의 팔로우를 요청했습니다:' + title: "%{acct} 를 팔로우" + datetime: + distance_in_words: + about_x_hours: "%{count}시간" + about_x_months: "%{count}월" + about_x_years: "%{count}년" + almost_x_years: "%{count}년" + half_a_minute: 지금 + less_than_x_minutes: "%{count}분" + less_than_x_seconds: 지금 + over_x_years: "%{count}년" + x_days: "%{count}일" + x_minutes: "%{count}분" + x_months: "%{count}월" + x_seconds: "%{count}초" + deletes: + bad_password_msg: 비밀번호가 올바르지 않습니다 + confirm_password: 본인 확인을 위해, 현재 사용 중인 비밀번호를 입력해 주십시오. + description_html: 계정에 업로드된 모든 컨텐츠가 삭제되며, 계정은 비활성화 됩니다. 이것은 영구적으로 이루어지는 것이므로 되돌릴 수 없습니다. 사칭 행위를 방지하기 위해 같은 계정명으로 다시 등록하는 것은 불가능합니다. + proceed: 계정 삭제 + success_msg: 계정이 정상적으로 삭제되었습니다. + warning_html: 삭제가 보장되는 것은 이 인스턴스 상에서의 컨텐츠에 한합니다. 타 인스턴스 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다. + warning_title: 공유된 컨텐츠에 대해서 + errors: + '403': 이 페이지를 표시할 권한이 없습니다 + '404': 페이지를 찾을 수 없습니다 + '410': 이 페이지는 더 이상 존재하지 않습니다 + '422': + content: 보안 인증에 실패했습니다. Cookie를 차단하고 있진 않습니까? + title: 보안 인증 실패 + '429': 요청 횟수 제한에 도달했습니다. + noscript: Mastodon을 사용하기 위해서는 JavaScript를 켜 주십시오. + exports: + blocks: 차단 + csv: CSV + follows: 팔로우 + mutes: 뮤트 + storage: 미디어 + followers: + domain: 도메인 + explanation_html: 프라이버시를 확보하고 싶은 경우, 누가 여러분을 팔로우 하고 있는지 파악해둘 필요가 있습니다. 프라이빗 포스팅은 여러분의 팔로워가 소속하는 모든 인스턴스로 배달됩니다. 팔로워가 소속된 인스턴스 관리자나 소프트웨어가 여러분의 프라이버시를 존중하고 있는지 잘 모를 경우, 그 팔로워를 삭제하는 것이 좋을 수도 있습니다. + followers_count: 팔로워 수 + lock_link: 비공개 계정 + purge: 팔로워에서 삭제 + success: + one: 1개 도메인에서 팔로워를 soft-block 처리 중... + other: "%{count}개 도메인에서 팔로워를 soft-block 처리 중..." + true_privacy_html: "프라이버시 보호는 End-to-End 암호화로만 이루어 질 수 있다는 것에 유의해 주십시오." + unlocked_warning_html: 누구든 여러분을 팔로우 할 수 있으며, 여러분의 프라이빗 투고를 볼 수 있습니다. 팔로우 할 수 있는 사람을 제한하고 싶은 경우 %{lock_link}에서 설정해 주십시오. + unlocked_warning_title: 이 계정은 비공개로 설정되어 있지 않습니다. + generic: + changes_saved_msg: 정상적으로 변경되었습니다. + powered_by: powered by %{link} + save_changes: 변경 사항을 저장 + validation_errors: + one: 오류가 발생했습니다. 아래 오류를 확인해 주십시오 + other: 오류가 발생했습니다. 아래 %{count}개 오류를 확인해 주십시오 + imports: + preface: 다른 인스턴스에서 내보내기 한 파일에서 팔로우 / 차단 정보를 이 인스턴스 계정으로 불러올 수 있습니다. + success: 파일이 정상적으로 업로드 되었으며, 현재 처리 중입니다. 잠시 후 다시 확인해 주십시오. + types: + blocking: 차단한 계정 목록 + following: 팔로우 중인 계정 목록 + muting: 뮤트 중인 계정 목록 + upload: 업로드 + landing_strip_html: "%{name} 님은 %{link_to_root_path} 인스턴스의 사용자입니다. 계정을 가지고 있다면 팔로우 하거나 대화할 수 있습니다." + landing_strip_signup_html: 아직 계정이 없다면 여기서 등록할 수 있습니다. + media_attachments: + validations: + images_and_video: 이미 사진이 첨부되어 있으므로 동영상을 첨부할 수 없습니다. + too_many: 최대 4개까지 첨부할 수 있습니다. + notification_mailer: + digest: + body: "%{instance} 에서 마지막 로그인 뒤로 일어난 일:" + mention: "%{name} 님이 답장했습니다:" + new_followers_summary: + one: 새 팔로워를 획득했습니다 + other: "%{count} 명의 새 팔로워를 획득했습니다!" + subject: + one: "1건의 새로운 알림 \U0001F418" + other: "%{count}건의 새로운 알림 \U0001F418" + favourite: + body: '%{name} 님이 내 Toot을 즐겨찾기에 등록했습니다.' + subject: "%{name} 님이 내 Toot을 즐겨찾기에 등록했습니다" + follow: + body: "%{name} 님이 나를 팔로우 했습니다" + subject: "%{name} 님이 나를 팔로우 했습니다" + follow_request: + body: "%{name} 님이 내게 팔로우 요청을 보냈습니다." + subject: "%{name} 님으로터의 팔로우 요청" + mention: + body: "%{name} 님이 답장을 보냈습니다:" + subject: "%{name} 님이 답장을 보냈습니다" + reblog: + body: "%{name} 님이 내 Toot을 부스트 했습니다:" + subject: "%{name} 님이 내 Toot을 부스트 했습니다" + pagination: + next: 다음 + prev: 이전 + truncate: "…" + remote_follow: + acct: 사용자명@도메인을 입력해 주십시오 + missing_resource: 리디렉션 대상을 찾을 수 없습니다 + proceed: 팔로우 하기 + prompt: '팔로우 하려 하고 있습니다' + sessions: + activity: 마지막 활동 + browser: 브라우저 + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + firefox: Firefox + generic: 알 수 없는 브라우저 + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi Browser + opera: Opera + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UCBrowser + weibo: Weibo + current_session: 현재 세션 + description: "%{browser} on %{platform}" + explanation: 내 Mastodon 계정에 현재 로그인 중인 웹 브라우저 목록입니다. + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: Mac + other: 알 수 없는 플랫폼 + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + title: 세션 + settings: + authorized_apps: 인증된 어플리케이션 + back: 돌아가기 + delete: 계정 삭제 + edit_profile: 프로필 편집 + export: 데이터 내보내기 + followers: 신뢰 중인 인스턴스 + import: 데이터 가져오기 + preferences: 사용자 설정 + settings: 설정 + two_factor_authentication: 2단계 인증 + statuses: + open_in_web: Web으로 열기 + over_character_limit: 최대 %{max}자까지 입력할 수 있습니다 + show_more: 더 보기 + visibilities: + private: 비공개 + private_long: 팔로워에게만 표시됩니다 + public: 공개 + public_long: 누구나 볼 수 있으며, 공개 타임라인에 표시됩니다 + unlisted: Unlisted + unlisted_long: 누구나 볼 수 있지만, 공개 타임라인에는 표시되지 않습니다 + stream_entries: + click_to_show: 클릭해서 표시 + reblogged: 님이 부스트 했습니다 + sensitive_content: 민감한 컨텐츠 + time: + formats: + default: "%Y년 %m월 %d일 %H:%M" + two_factor_authentication: + code_hint: 확인하기 위해서 인증 어플리케이션에서 표시된 코드를 입력해 주십시오 + description_html: "2단계 인증을 활성화 하면 로그인 시 전화로 인증 코드를 받을 필요가 있습니다." + disable: 비활성화 + enable: 활성화 + enabled: 2단계 인증이 활성화 되어 있습니다 + enabled_success: 2단계 인증이 활성화 되었습니다 + generate_recovery_codes: 복구 코드 생성 + instructions_html: "Google Authenticator, 또는 타 TOTP 어플리케이션에서 이 QR 코드를 스캔해 주십시오. 이후 로그인 시에는 이 어플리케이션에서 생성되는 코드가 필요합니다." + lost_recovery_codes: 복구 코드를 사용하면 휴대전화를 분실한 경우에도 계정에 접근할 수 있게 됩니다. 복구 코드를 분실한 경우에도 여기서 다시 생성할 수 있지만, 예전 복구 코드는 비활성화 됩니다. + manual_instructions: 'QR 코드를 스캔할 수 없어 수동으로 등록을 원하시는 경우 이 비밀 코드를 사용해 주십시오: ' + recovery_codes: 복구 코드 + recovery_codes_regenerated: 복구 코드가 다시 생성되었습니다. + recovery_instructions_html: 휴대전화를 분실한 경우, 아래 복구 코드 중 하나를 사용해 계정에 접근할 수 있습니다. 복구 코드는 안전하게 보관해 주십시오. 이 코드를 인쇄해 중요한 서류와 함께 보관하는 것도 좋습니다. + setup: 초기 설정 + wrong_code: 코드가 올바르지 않습니다. 서버와 휴대전화 간 시간이 일치하는지 확인해 주십시오. + users: + invalid_email: 메일 주소가 올바르지 않습니다 + invalid_otp_token: 2단계 인증 코드가 올바르지 않습니다 diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml new file mode 100644 index 000000000..85abddcf3 --- /dev/null +++ b/config/locales/simple_form.ko.yml @@ -0,0 +1,58 @@ +--- +ko: + simple_form: + hints: + defaults: + avatar: PNG, GIF 혹은 JPG. 최대 2MB. 120x120px로 다운스케일 됨 + display_name: + one: 1 글자 남음 + other: %{count} 글자 남음 + header: PNG, GIF 혹은 JPG. 최대 2MB. 700x335px로 다운스케일 됨 + locked: 수동으로 팔로워를 승인하고, 기본 Toot 프라이버시 설정을 팔로워 전용으로 변경 + note: + one: 1 글자 남음 + other: %{count} 글자 남음 + imports: + data: 다른 마스토돈 인스턴스에서 추출된 CSV 파일 + sessions: + otp: 2단계 인증 코드를 휴대전화를 보고 입력하거나, 복구 코드 중 하나를 사용 + user: + filtered_languages: 선택된 언어가 공개 타임라인에서 제외 될 것입니다. + labels: + defaults: + avatar: 아바타 + confirm_new_password: 새로운 비밀번호를 입력 + confirm_password: 현재 비밀번호를 다시 입력 + current_password: 현재 비밀번호를 입력 + data: 데이터 + display_name: 표시되는 이름 + email: 이메일 주소 + header: 헤더 + locale: 언어 + locked: 계정 잠금 + new_password: 새로운 비밀번호 + note: 자기소개 + otp_attempt: 2단계 인증 코드 + password: 비밀번호 + setting_auto_play_gif: 애니메이션 GIF를 자동 재생 + setting_boost_modal: 부스트 전 확인 창을 보여주기 + setting_default_privacy: Toot 프라이버시 + setting_delete_modal: Toot 삭제 전 확인 창을 보여주기 + severity: 심각도 + type: 불러오기 종류 + username: 유저 이름 + interactions: + must_be_follower: 나를 팔로우 하지 않는 사람에게서 온 알림을 차단 + must_be_following: 내가 팔로우 하지 않는 사람에게서 온 알림을 차단 + notification_emails: + digest: 요약 이메일 보내기 + favourite: 누군가 내 상태를 즐겨찾기로 등록했을 때 이메일 보내기 + follow: 누군가 나를 팔로우 했을 때 이메일 보내기 + follow_request: 누군가 나를 팔로우 하길 원할 때 이메일 보내기 + mention: 누군가 나에게 답장했을 때 이메일 보내기 + reblog: 누군가 내 Toot을 부스트 했을 때 이메일 보내기 + 'no': '아니오' + required: + mark: "*" + text: 필수 항목 + 'yes': '네' -- cgit From 976c18aa5f159d91b26c8aa0d410a519b7b2e3fd Mon Sep 17 00:00:00 2001 From: Minori Hiraoka Date: Tue, 4 Jul 2017 23:48:22 +0900 Subject: Fix Korean translation (#4065) * Added Korean Translation (based on japanese) * Update korean translation * Update korean translation: fix syntax error * Updated korean translation * Update korean translation * Update ko.json Translate non-translated parts * Update ko.yml Translated missed parts - and fixed some typos * Create simple_form.ko.yml * Update simple_form.ko.yml Translation error fix - password change form * Update simple_form.ko.yml * Update ko.json Missing translation --- app/javascript/mastodon/locales/ko.json | 2 +- config/locales/simple_form.ko.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'config') diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 0a2d76d3a..e88d4a531 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -112,7 +112,7 @@ "onboarding.page_four.home": "홈 타임라인에서는 내가 팔로우 중인 사람들의 포스트를 표시합니다.", "onboarding.page_four.notifications": "알림에서는 다른 사람들과의 연결을 표시합니다.", "onboarding.page_one.federation": "Mastodon은 누구나 참가할 수 있는 SNS입니다.", - "onboarding.page_one.handle": "여러분은 지금 수많은 Mastodon 인스턴스 중 하나인 {domain}에 있습니다. あなたのフルハンドルは{handle}です。", + "onboarding.page_one.handle": "여러분은 지금 수많은 Mastodon 인스턴스 중 하나인 {domain}에 있습니다. 당신의 유저 이름은 {handle} 입니다.", "onboarding.page_one.welcome": "Mastodon에 어서 오세요!", "onboarding.page_six.admin": "이 인스턴스의 관리자는 {admin}입니다.", "onboarding.page_six.almost_done": "이상입니다.", diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index 85abddcf3..b7dbc8bef 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -21,16 +21,16 @@ ko: labels: defaults: avatar: 아바타 - confirm_new_password: 새로운 비밀번호를 입력 - confirm_password: 현재 비밀번호를 다시 입력 - current_password: 현재 비밀번호를 입력 + confirm_new_password: 새로운 비밀번호 다시 입력 + confirm_password: 현재 비밀번호 다시 입력 + current_password: 현재 비밀번호 입력 data: 데이터 display_name: 표시되는 이름 email: 이메일 주소 header: 헤더 locale: 언어 locked: 계정 잠금 - new_password: 새로운 비밀번호 + new_password: 새로운 비밀번호 입력 note: 자기소개 otp_attempt: 2단계 인증 코드 password: 비밀번호 -- cgit From 1921ab40ea93c5c082cd53abd6f94da3947a9f73 Mon Sep 17 00:00:00 2001 From: Gyuhwan Park Date: Wed, 5 Jul 2017 00:09:17 +0900 Subject: i18n: Update korean translation (#4066) * Added Korean Translation (based on japanese) * Update korean translation * Update korean translation: fix syntax error * Updated korean translation * Update korean translation * Update ko.json Translate non-translated parts * Update ko.yml Translated missed parts - and fixed some typos * Create simple_form.ko.yml * Updated korean translation * i18n: fix test fails * Updated korean translation --- config/locales/ko.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'config') diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 7f238ab73..844e78908 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -39,7 +39,7 @@ ko: people_who_follow: "%{name} 님을 팔로우 중인 계정" posts: 포스트 remote_follow: 리모트 팔로우 - reserved_username: 이 사용자 명은 예약되어 있습니다. + reserved_username: 이 아이디는 예약되어 있습니다. unfollow: 팔로우 해제 activitypub: activity: @@ -56,7 +56,7 @@ ko: confirm: 확인 confirmed: 확인됨 disable_two_factor_authentication: 2단계 인증을 비활성화 - display_name: 계정명 + display_name: 이름 domain: 도메인 edit: 편집 email: E-mail @@ -103,7 +103,7 @@ ko: undo_silenced: 침묵 해제 undo_suspension: 정지 해제 unsubscribe: 구독 해제 - username: 사용자명 + username: 아이디 web: Web domain_blocks: add_new: 추가하기 @@ -167,7 +167,7 @@ ko: contact_information: email: 공개할 메일 주소를 입력 label: 연락처 정보 - username: 사용자명을 입력 + username: 아이디를 입력 registrations: closed_message: desc_html: 신규 등록을 받지 않을 때 프론트 페이지에 표시됩니다.
HTML 태그를 사용할 수 있습니다. @@ -237,7 +237,7 @@ ko: deletes: bad_password_msg: 비밀번호가 올바르지 않습니다 confirm_password: 본인 확인을 위해, 현재 사용 중인 비밀번호를 입력해 주십시오. - description_html: 계정에 업로드된 모든 컨텐츠가 삭제되며, 계정은 비활성화 됩니다. 이것은 영구적으로 이루어지는 것이므로 되돌릴 수 없습니다. 사칭 행위를 방지하기 위해 같은 계정명으로 다시 등록하는 것은 불가능합니다. + description_html: 계정에 업로드된 모든 컨텐츠가 삭제되며, 계정은 비활성화 됩니다. 이것은 영구적으로 이루어지는 것이므로 되돌릴 수 없습니다. 사칭 행위를 방지하기 위해 같은 아이디로 다시 등록하는 것은 불가능합니다. proceed: 계정 삭제 success_msg: 계정이 정상적으로 삭제되었습니다. warning_html: 삭제가 보장되는 것은 이 인스턴스 상에서의 컨텐츠에 한합니다. 타 인스턴스 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다. @@ -295,8 +295,8 @@ ko: body: "%{instance} 에서 마지막 로그인 뒤로 일어난 일:" mention: "%{name} 님이 답장했습니다:" new_followers_summary: - one: 새 팔로워를 획득했습니다 - other: "%{count} 명의 새 팔로워를 획득했습니다!" + one: 새 팔로워가 생겼습니다! + other: "%{count} 명의 팔로워가 생겼습니다!" subject: one: "1건의 새로운 알림 \U0001F418" other: "%{count}건의 새로운 알림 \U0001F418" @@ -308,7 +308,7 @@ ko: subject: "%{name} 님이 나를 팔로우 했습니다" follow_request: body: "%{name} 님이 내게 팔로우 요청을 보냈습니다." - subject: "%{name} 님으로터의 팔로우 요청" + subject: "%{name} 님이 보낸 팔로우 요청" mention: body: "%{name} 님이 답장을 보냈습니다:" subject: "%{name} 님이 답장을 보냈습니다" @@ -320,7 +320,7 @@ ko: prev: 이전 truncate: "…" remote_follow: - acct: 사용자명@도메인을 입력해 주십시오 + acct: 아이디@도메인을 입력해 주십시오 missing_resource: 리디렉션 대상을 찾을 수 없습니다 proceed: 팔로우 하기 prompt: '팔로우 하려 하고 있습니다' @@ -405,7 +405,7 @@ ko: recovery_codes_regenerated: 복구 코드가 다시 생성되었습니다. recovery_instructions_html: 휴대전화를 분실한 경우, 아래 복구 코드 중 하나를 사용해 계정에 접근할 수 있습니다. 복구 코드는 안전하게 보관해 주십시오. 이 코드를 인쇄해 중요한 서류와 함께 보관하는 것도 좋습니다. setup: 초기 설정 - wrong_code: 코드가 올바르지 않습니다. 서버와 휴대전화 간 시간이 일치하는지 확인해 주십시오. + wrong_code: 코드가 올바르지 않습니다. 서버와 휴대전화 간의 시간이 일치하는지 확인해 주십시오. users: invalid_email: 메일 주소가 올바르지 않습니다 invalid_otp_token: 2단계 인증 코드가 올바르지 않습니다 -- cgit From a38b34c37a7c87c205f3d0b327649166c9f4f3f8 Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Tue, 4 Jul 2017 23:34:00 +0200 Subject: i18n: Updated Polish translation (#4068) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * i18n: Updated Polish translation Signed-off-by: Marcin Mikołajczak * fuggin nano --- config/locales/pl.yml | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) (limited to 'config') diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 113d7f235..1bf3d9724 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -48,7 +48,7 @@ pl: create: name: "%{account_name} utworzył(a) wpis." outbox: - name: Skrzynka %{account_name} + name: "Skrzynka %{account_name}" summary: Zbiór aktywności użytkownika %{account_name}. admin: accounts: @@ -183,6 +183,9 @@ pl: site_description_extended: desc_html: Wyświetlany w rozszerzonych informacjach o stronie
Możesz korzystać z tagów HTML title: Extended site description + site_terms: + desc_html: Wyświetlana na stronie zasad użytkowania
Możesz używać tagów HTML + title: Polityka prywatności strony site_title: Tytuł strony title: Ustawienia strony subscriptions: @@ -391,6 +394,76 @@ pl: click_to_show: Naciśnij aby wyświetlić reblogged: podbito sensitive_content: Wrażliwa zawartość + terms: + body_html: | +

Polityka prywatności

+ +

Jakie informacje zbieramy?

+ +

Zbieramy informacje podane przy rejestracji i treści utworzone w trakcie korzystania z serwisu.

+ +

Podczas rejestracji, możesz otrzymać prośbę o podanie adresu e-mail. Możesz jednak odwiedzać stronę bez rejestracji. Adres zostanie zweryfikowany przez kliknięcie w link wysłany w wiadomości. Dzięki temu wiemy, że jesteś właścicielem tego adresu.

+ +

Podczas rejestracji i tworzenia postów, Twój adres IP jest zapisywany na naszych serwerach. Możemy też przechowywać adres IP użyty przy każdej operacji w serwisie.

+ +

Jak wykorzystujemy zebrane informacje?

+ +

Zebrane informacje mogą zostać w jednym z następujących celach:

+ +
    +
  • Aby poprawić wrażenia — informacje o Tobie pomagają w dostosowywaniu serwisu do Twoich potrzeb.
  • +
  • Aby usprawnić stronę — nieustannie staramy się ulepszyć stronę na podstawie informacji o Tobie i Twoich opinii.
  • +
  • Aby usprawnić obsługę klienta — informacje pomogą obsłudze klienta utrzymywać kontakt z Tobą.
  • +
  • Aby okazjonalnie wysyłać wiadomości e-mail — Na podany adres e-mail mogą zostać wysłane wiadomości o wspomnieniu o Tobie we wpisach, przejrzeniu Twojego zgłoszenia i innych interakcji z Tobą.
  • +
+ +

Jak zabezpieczamy dane?

+ +

Korzystamy z wielu zabezpieczeń, aby utrudnić osobom niepowołanym dostęp do danych, które wprowadzasz, publikujesz i czytasz.

+ +

Jak długo przechowujecie dane?

+ +

Dołożymy wszelkich starań, aby przechowywać:

+ +
    +
  • dzienniki serwera zawierające adresy IP przypisane do każdych operacji nie dłużej niż 90 dni.
  • +
  • adresy IP przypisane do użytkowników i ich wpisów nie dłużej niż 5 lat.
  • +
+ +

Czy używamy plików cookies?

+ +

Tak. Pliki cookies (zwane często ciasteczkami) są małymi zbiorami danych przechowywanych na Twoim dysku przez stronę internetową, aby rozpoznawać przeglądarkę i powiązać ją (jeżeli jesteś zarejestrowany/a) z Twoim kontem, jeżeli na to pozwolisz.

+ +

Możemy używać ciasteczek, aby skonfigurować stronę na podstawie zapisanych preferencji, oraz dostosować ją do potrzeb innych użytkowników. Możemy korzystać z usług firm trzecich pomagających w zrozumieniu potrzeb użytkownika. Te usługi nie mogą korzystać ze zdobytych danych w celach innych niż analiza pomagająca ulepszać ten serwis.

+ +

Czy przekazujecie dane podmiotów trzecim?

+ +

Nie dokonujemy transakcji danych pozwalających na identyfikację Twojej osoby umieszczonych na tym serwisie. Nie oznacza to, że nie przekazujemy ich zaufanym podmiotom, które korzystają z nich poufnie. Możemy jednak udostępniać dane, jeżeli jest to wymagane prawnie, lub dla utrzymania bezpieczeństwa strony i innych użytkowników. W celach marketingowych (i podobnych) mogą zostać użyte jedynie dane niepozwalające na identyfikację osoby.

+ +

Odnośniki do treści stron trzecich

+ +

Czasem na stronie mogą pojawić się odnośniki do stron trzecich. Mają one odrębne regulaminy i politykę prywatności. Nie odpowiadamy więc za zawartość tych stron. Dokładamy jednak wszelkich starań, aby nie stanowiły one zagrożenia, prosimy jednak o opinie na temat ich wykorzystania.

+ +

Children's Online Privacy Protection Act Compliance

+ +

Ta strona i usługa jest przeznaczona dla osób, które ukończyły 13 lat. Jeżeli serwer znajduje się na terenie USA i nie masz ukończonych 13 lat, zgodnie z amerykańską ustawą COPPA (Children's Online Privacy Protection Act) nie możesz korzystać z tego serwisu.

+ +

Polityka prywatności dotyczy tylko Internetu

+ +

Ta polityka prywatności dotyczy jedynie danych zbieranych w Internecie, nie tych, które przechowywane są na Twoim kompurerze, np. pliki cookies.

+ + + +

Korzystanie ze strony jest równoznaczne z akceptacją naszej polityki prywatności.

+ +

Zmiany w naszej polityce prywatności

+ +

Jeżeli zdecydujemy się na zmiany w polityce prywatności, zmiany pojawią się na tej stronie.

+ +

Dokument jest dostępny na licencji CC-BY-SA. Ostatnio modyfikowany 31 maja 2013, przetłumaczony 4 lipca 2017. Tłumaczenie (mimo dołożenia wszelkich starań) może nie być w pełni poprawne.

+ +

Tekst bazuje na polityce prywatności Discourse. + title: "Zasady korzystania i polityka prywatności %{instance}" time: formats: default: "%b %d, %Y, %H:%M" -- cgit From 6d106d3943f47cc48fb4799712bc6dd673b2506b Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Thu, 6 Jul 2017 15:25:27 +0200 Subject: i18n: minor changes in Polish translation (#4087) * i18n: minor changes in Polish translation * Update pl.json --- app/javascript/mastodon/locales/pl.json | 2 +- config/locales/pl.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'config') diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index bf425501f..2a69824ee 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -6,7 +6,7 @@ "account.follow": "Obserwuj", "account.followers": "Obserwujący", "account.follows": "Obserwacje", - "account.follows_you": "Obserwują cię", + "account.follows_you": "Obserwuje cię", "account.media": "Media", "account.mention": "Wspomnij o @{name}", "account.mute": "Wycisz @{name}", diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 1bf3d9724..f0546dd0c 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -209,9 +209,9 @@ pl: auth: change_password: Bezpieczeństwo delete_account: Usunięcie konta - delete_account_html: Jeżeli próbowałeś usunąć konto, przejdź tutaj. Otrzymasz prośbę o potwierdzenie. + delete_account_html: Jeżeli chcesz usunąć konto, przejdź tutaj. Otrzymasz prośbę o potwierdzenie. didnt_get_confirmation: Nie otrzymałeś instrukcji weryfikacji? - forgot_password: Zapomniane hasło + forgot_password: Nie pamiętasz hasła? login: Zaloguj się logout: Wyloguj się register: Rejestracja -- cgit From 26949607d25872d4549f96ecf38c317c2774c225 Mon Sep 17 00:00:00 2001 From: Quent-in Date: Thu, 6 Jul 2017 21:10:12 +0200 Subject: l10n Occitan locale (#4089) * Small adjustments About the report part. * Update time format --- app/javascript/mastodon/locales/oc.json | 10 +++++----- config/locales/oc.yml | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'config') diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index a2a82ae9f..5f226bc70 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -34,7 +34,7 @@ "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.", "compose_form.lock_disclaimer.lock": "clavat", "compose_form.placeholder": "A de qué pensatz ?", - "compose_form.privacy_disclaimer": "Vòstre estatut privat serà enviat a las personas mencionadas sus {domains}. Vos fisatz d’aqueste{domainsCount, plural, one { servidor} other {s servidors}} per divulgar pas vòstre estatut ? Los estatuts privats foncionan pas que sus las instàncias a Mastodons. Se {domains} {domainsCount, plural, one {es pas una instància a Mastodon} other {son pas d'instàncias a Mastodon}}, i aurà pas d’indicacion disent que vòstre estatut es privat e poirà èsser partejat o èsser visible a de mond pas prevists", + "compose_form.privacy_disclaimer": "Vòstre estatut privat serà enviat a las personas mencionadas sus {domains}. Vos fisatz d’aqueste {domainsCount, plural, one { servidor} other {s servidors}} per divulgar pas vòstre estatut ? Los estatuts privats foncionan pas que sus las instàncias de Mastodon. Se {domains} {domainsCount, plural, one {es pas una instància a Mastodon} other {son pas d'instàncias a Mastodon}}, i aurà pas d’indicacion disent que vòstre estatut es privat e poirà èsser partejat o èsser visible a de mond pas prevists", "compose_form.publish": "Tut", "compose_form.publish_loud": "{publish} !", "compose_form.sensitive": "Marcar lo mèdia coma sensible", @@ -51,7 +51,7 @@ "confirmations.mute.message": "Sètz segur de voler metre en silenci {name} ?", "emoji_button.activity": "Activitat", "emoji_button.flags": "Drapèus", - "emoji_button.food": "Manjar e beure", + "emoji_button.food": "Beure e manjar", "emoji_button.label": "Inserir un emoji", "emoji_button.nature": "Natura", "emoji_button.objects": "Objèctes", @@ -136,10 +136,10 @@ "privacy.unlisted.long": "Mostrar pas dins los fluxes publics", "privacy.unlisted.short": "Pas-listat", "reply_indicator.cancel": "Anullar", - "report.heading": "Nòu senhalament", + "report.heading": "Senhalar {target}", "report.placeholder": "Comentaris addicionals", - "report.submit": "Mandat", - "report.target": "Senhalament", + "report.submit": "Mandar", + "report.target": "Senhalar {target}", "search.placeholder": "Recercar", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", "status.cannot_reblog": "Aqueste estatut pòt pas èsser partejat", diff --git a/config/locales/oc.yml b/config/locales/oc.yml index c882b43a1..631133f74 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -242,9 +242,9 @@ oc: - divendres - dissabte formats: - default: "%d/%m/%Y" - long: Lo %B %d de %Y - short: "%b %d" + default: "%e/%m/%Y" + long: Lo %e %B de %Y + short: "%e %b" month_names: - - de genièr -- cgit From 18d3fa953b5af8ab17cc93c33cb95cec37127712 Mon Sep 17 00:00:00 2001 From: Damien Erambert Date: Thu, 6 Jul 2017 13:39:56 -0700 Subject: Add a setting allowing the use of system's default font in Web UI (#4033) * add a system_font_ui setting on the server * Plug the system_font_ui on the front-end * add EN/FR locales for the new setting * put Roboto after all other fonts * remove trailing whitespace so CodeClimate is happy * fix user_spec.rb * correctly write user_spect this time * slightly better way of adding the classes * add comments to the system-font stack for clarification * use .system-font for the class instead * don't use multiple lines for comments * remove trailing whitespace * use the classnames module for consistency * use `mastodon-font-sans-serif` instead of Roboto directly --- app/controllers/settings/preferences_controller.rb | 1 + app/javascript/mastodon/features/ui/index.js | 14 ++++++++++++-- app/javascript/styles/basics.scss | 15 +++++++++++++++ app/lib/user_settings_decorator.rb | 5 +++++ app/models/user.rb | 4 ++++ app/views/home/initial_state.json.rabl | 1 + app/views/settings/preferences/show.html.haml | 1 + config/locales/simple_form.en.yml | 1 + config/locales/simple_form.fr.yml | 1 + config/settings.yml | 1 + spec/lib/user_settings_decorator_spec.rb | 7 +++++++ spec/models/user_spec.rb | 8 ++++++++ 12 files changed, 57 insertions(+), 2 deletions(-) (limited to 'config') diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index 71f5a7c04..a15c26031 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -37,6 +37,7 @@ class Settings::PreferencesController < ApplicationController :setting_boost_modal, :setting_delete_modal, :setting_auto_play_gif, + :setting_system_font_ui, notification_emails: %i(follow follow_request reblog favourite mention digest), interactions: %i(must_be_follower must_be_following) ) diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index 08d087da1..54e623d99 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -1,4 +1,5 @@ import React from 'react'; +import classNames from 'classnames'; import Switch from 'react-router-dom/Switch'; import Route from 'react-router-dom/Route'; import Redirect from 'react-router-dom/Redirect'; @@ -72,12 +73,17 @@ class WrappedRoute extends React.Component { } -@connect() +const mapStateToProps = state => ({ + systemFontUi: state.getIn(['meta', 'system_font_ui']), +}); + +@connect(mapStateToProps) export default class UI extends React.PureComponent { static propTypes = { dispatch: PropTypes.func.isRequired, children: PropTypes.node, + systemFontUi: PropTypes.bool, }; state = { @@ -176,8 +182,12 @@ export default class UI extends React.PureComponent { const { width, draggingOver } = this.state; const { children } = this.props; + const className = classNames('ui', { + 'system-font': this.props.systemFontUi, + }); + return ( -

+
diff --git a/app/javascript/styles/basics.scss b/app/javascript/styles/basics.scss index 0cb271ddd..4da698e81 100644 --- a/app/javascript/styles/basics.scss +++ b/app/javascript/styles/basics.scss @@ -63,3 +63,18 @@ button { align-items: center; justify-content: center; } + +.system-font { + // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+) + // -apple-system => Safari <11 specific + // BlinkMacSystemFont => Chrome <56 on macOS specific + // Segoe UI => Windows 7/8/10 + // Oxygen => KDE + // Ubuntu => Unity/Ubuntu + // Cantarell => GNOME + // Fira Sans => Firefox OS + // Droid Sans => Older Androids (<4.0) + // Helvetica Neue => Older macOS <10.11 + // mastodon-font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0) + font-family: system-ui, -apple-system,BlinkMacSystemFont, "Segoe UI","Oxygen", "Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",mastodon-font-sans-serif, sans-serif; +} diff --git a/app/lib/user_settings_decorator.rb b/app/lib/user_settings_decorator.rb index af264bbd5..9c0cb4545 100644 --- a/app/lib/user_settings_decorator.rb +++ b/app/lib/user_settings_decorator.rb @@ -21,6 +21,7 @@ class UserSettingsDecorator user.settings['boost_modal'] = boost_modal_preference user.settings['delete_modal'] = delete_modal_preference user.settings['auto_play_gif'] = auto_play_gif_preference + user.settings['system_font_ui'] = system_font_ui_preference end def merged_notification_emails @@ -43,6 +44,10 @@ class UserSettingsDecorator boolean_cast_setting 'setting_delete_modal' end + def system_font_ui_preference + boolean_cast_setting 'setting_system_font_ui' + end + def auto_play_gif_preference boolean_cast_setting 'setting_auto_play_gif' end diff --git a/app/models/user.rb b/app/models/user.rb index c31a0c644..e2bb3d0ed 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -91,6 +91,10 @@ class User < ApplicationRecord settings.auto_play_gif end + def setting_system_font_ui + settings.system_font_ui + end + def activate_session(request) session_activations.activate(session_id: SecureRandom.hex, user_agent: request.user_agent, diff --git a/app/views/home/initial_state.json.rabl b/app/views/home/initial_state.json.rabl index e305f8e7a..291ff806b 100644 --- a/app/views/home/initial_state.json.rabl +++ b/app/views/home/initial_state.json.rabl @@ -11,6 +11,7 @@ node(:meta) do boost_modal: current_account.user.setting_boost_modal, delete_modal: current_account.user.setting_delete_modal, auto_play_gif: current_account.user.setting_auto_play_gif, + system_font_ui: current_account.user.setting_system_font_ui, } end diff --git a/app/views/settings/preferences/show.html.haml b/app/views/settings/preferences/show.html.haml index 721ce6a21..26fbfdf82 100644 --- a/app/views/settings/preferences/show.html.haml +++ b/app/views/settings/preferences/show.html.haml @@ -44,6 +44,7 @@ .fields-group = f.input :setting_auto_play_gif, as: :boolean, wrapper: :with_label + = f.input :setting_system_font_ui, as: :boolean, wrapper: :with_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 3e769fb96..d8d3b8a6f 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -38,6 +38,7 @@ en: setting_boost_modal: Show confirmation dialog before boosting setting_default_privacy: Post privacy setting_delete_modal: Show confirmation dialog before deleting a toot + setting_system_font_ui: Use system's default font severity: Severity type: Import type username: Username diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index ae4975143..446c56947 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -28,6 +28,7 @@ fr: password: Mot de passe setting_boost_modal: Afficher un dialogue de confirmation avant de partager setting_default_privacy: Confidentialité des statuts + setting_system_font_ui: Utiliser la police par défaut du système severity: Séverité type: Type d'import username: Identifiant diff --git a/config/settings.yml b/config/settings.yml index 5aea232e7..18b70b51f 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -19,6 +19,7 @@ defaults: &defaults boost_modal: false auto_play_gif: true delete_modal: true + system_font_ui: false notification_emails: follow: false reblog: false diff --git a/spec/lib/user_settings_decorator_spec.rb b/spec/lib/user_settings_decorator_spec.rb index 66e42fa0e..e1ba56d97 100644 --- a/spec/lib/user_settings_decorator_spec.rb +++ b/spec/lib/user_settings_decorator_spec.rb @@ -48,5 +48,12 @@ describe UserSettingsDecorator do settings.update(values) expect(user.settings['auto_play_gif']).to eq false end + + it 'updates the user settings value for system font in UI' do + values = { 'setting_system_font_ui' => '0' } + + settings.update(values) + expect(user.settings['system_font_ui']).to eq false + end end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index a6df3fb26..2019ec0f6 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -184,6 +184,14 @@ RSpec.describe User, type: :model do expect(user.setting_auto_play_gif).to eq false end end + + describe '#setting_system_font_ui' do + it 'returns system font ui setting' do + user = Fabricate(:user) + user.settings[:system_font_ui] = false + expect(user.setting_system_font_ui).to eq false + end + end describe '#setting_boost_modal' do it 'returns boost modal setting' do -- cgit From 2083000027451249836c369eb961300d7faf5f99 Mon Sep 17 00:00:00 2001 From: "Akihiko Odaki (@fn_aki@pawoo.net)" Date: Fri, 7 Jul 2017 07:12:12 +0900 Subject: Set default From address in config (#3756) The old implementation sets default From address in mailers. It sets the address from SMTP_FROM_ADDRESS, or notifications@localhost. The behavior is occasionally undesired results. In production environment, notifications@localhost is likely to be incorrect. In testing environment, the email address should not be varied by a environment variable. After appling this change, In production environment, it will throw an exception when launching Mastodon. In testing environment, the address will be fixed with notifications@localhost. --- app/mailers/application_mailer.rb | 1 - app/mailers/user_mailer.rb | 1 - config/environments/development.rb | 2 ++ config/environments/production.rb | 2 ++ config/environments/test.rb | 2 ++ 5 files changed, 6 insertions(+), 2 deletions(-) (limited to 'config') diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 2e730c19b..95b770ff1 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true class ApplicationMailer < ActionMailer::Base - default from: ENV.fetch('SMTP_FROM_ADDRESS') { 'notifications@localhost' } layout 'mailer' helper :instance diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 6abf9c9ca..1517c027e 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true class UserMailer < Devise::Mailer - default from: ENV.fetch('SMTP_FROM_ADDRESS') { 'notifications@localhost' } layout 'mailer' helper :instance diff --git a/config/environments/development.rb b/config/environments/development.rb index c81cf7bbe..406fa970b 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -62,6 +62,8 @@ Rails.application.configure do # routes, locales, etc. This feature depends on the listen gem. # config.file_watcher = ActiveSupport::EventedFileUpdateChecker + config.action_mailer.default_options = { from: 'notifications@localhost' } + # If using a Heroku, Vagrant or generic remote development environment, # use letter_opener_web, accessible at /letter_opener. # Otherwise, use letter_opener, which launches a browser window to view sent mail. diff --git a/config/environments/production.rb b/config/environments/production.rb index bd87d79a7..d9c9da684 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -73,6 +73,8 @@ Rails.application.configure do config.action_mailer.perform_caching = false # E-mails + config.action_mailer.default_options = { from: ENV.fetch('SMTP_FROM_ADDRESS') } + config.action_mailer.smtp_settings = { :port => ENV['SMTP_PORT'], :address => ENV['SMTP_SERVER'], diff --git a/config/environments/test.rb b/config/environments/test.rb index db98263a6..bde69eba1 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -30,6 +30,8 @@ Rails.application.configure do config.action_controller.allow_forgery_protection = false config.action_mailer.perform_caching = false + config.action_mailer.default_options = { from: 'notifications@localhost' } + # Tell Action Mailer not to deliver emails to the real world. # The :test delivery method accumulates sent emails in the # ActionMailer::Base.deliveries array. -- cgit From 76eda2fc21dfe16fb470a235edacbed06f608d59 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Fri, 7 Jul 2017 21:12:16 +0900 Subject: Add recursive object support to API response (#4095) --- config/initializers/active_model_serializers.rb | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 config/initializers/active_model_serializers.rb (limited to 'config') diff --git a/config/initializers/active_model_serializers.rb b/config/initializers/active_model_serializers.rb new file mode 100644 index 000000000..b0230267d --- /dev/null +++ b/config/initializers/active_model_serializers.rb @@ -0,0 +1,3 @@ +ActiveModelSerializers.config.tap do |config| + config.default_includes = '**' +end -- cgit From 9fe6cfca48b005158979583e2266d7899e84dbe0 Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Fri, 7 Jul 2017 17:35:47 +0200 Subject: i18n: @18d3fa9 (pl) (#4101) --- config/locales/simple_form.pl.yml | 1 + 1 file changed, 1 insertion(+) (limited to 'config') diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 09e76eba0..2a3756d4d 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -43,6 +43,7 @@ pl: setting_boost_modal: Pytaj o potwierdzenie przed podbiciem setting_default_privacy: Widoczność posta setting_delete_modal: Pytaj o potwierdzenie przed usunięciem postu + setting_system_font_ui: Używaj domyślnej czcionki systemu severity: Priorytet type: Typ importu username: Nazwa użytkownika -- cgit From 7a549f830e0d77af3020243617c5ab8bd811fd8d Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Fri, 7 Jul 2017 20:01:17 +0200 Subject: i18n: improve consistency (pl) (#4104) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Mikołajczak --- config/locales/pl.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'config') diff --git a/config/locales/pl.yml b/config/locales/pl.yml index f0546dd0c..bf9d5e034 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -61,8 +61,8 @@ pl: edit: Edytuj email: Adres e-mail feed_url: Adres kanału - followers: Obserwujący - follows: Obserwacje + followers: Śledzący + follows: Śledzeni ip: Adres IP location: all: Wszystkie @@ -114,7 +114,7 @@ pl: create: Utwórz blokadę hint: Blokada domen nie zabroni tworzenia wpisów kont w bazie danych, ale pozwoli na automatyczną moderację kont do nich należących. severity: - desc_html: "Wyciszenie uczyni wpisy użytkownika niewidoczne dla osób, które go nie obserwują. Zawieszenie spowoduje usunięcie całej zawartości dodanej przez użytkownika." + desc_html: "Wyciszenie uczyni wpisy użytkownika widoczne tylko dla osób, które go śledzą. Zawieszenie spowoduje usunięcie całej zawartości dodanej przez użytkownika." silence: Wycisz suspend: Zawieś title: Nowa blokada domen @@ -262,15 +262,15 @@ pl: storage: Urządzenie przechowujące dane followers: domain: Domena - explanation_html: Jeżeli chcesz mieć pewność, kto może przeczytać Twoje statusy, musisz kontrolować, kto Cię obserwuje. Twoje prywatne statusy są dostarczane na te instancje, na których jesteś obserwowany. Możesz sprawdzać swoich obserwowanych i blokować ich, jeśli nie ufasz właścicielom lub oprogramowaniu danej instancji. - followers_count: Liczba obserwujących + explanation_html: Jeżeli chcesz mieć pewność, kto może przeczytać Twoje statusy, musisz kontrolować, kto śledzi Twój profil. Twoje prywatne statusy są dostarczane na te instancje, na których jesteś śledzony. Możesz sprawdzać, kto Cię śledzi i blokować ich, jeśli nie ufasz właścicielom lub oprogramowaniu danej instancji. + followers_count: Liczba śledzących lock_link: Zablokuj swoje konto - purge: Usuń z obserwujących + purge: Przestań śledzić success: - one: W trakcie usuwania obserwujcych z jednej domeny… - other: W trakcie usuwania obserwujących z %{count} domen… + one: W trakcie usuwania śledzących z jednej domeny… + other: W trakcie usuwania śledzących z %{count} domen… true_privacy_html: Pamiętaj, że rzeczywista prywatność może zostać uzyskana wyłącznie dzięki szyfrowaniu end-to-end. - unlocked_warning_html: Każdy może cię zaobserwować, aby natychmiastowo zobaczyć twoje statusy. %{lock_link} aby móc kontrolować obserwujących. + unlocked_warning_html: Każdy może cię śledzić, aby natychmiastowo zobaczyć twoje statusy. %{lock_link} aby móc kontrolować, kto Cię śledzi. unlocked_warning_title: Twoje konto nie jest zablokowane generic: changes_saved_msg: Ustawienia zapisane! @@ -374,7 +374,7 @@ pl: delete: Usuń konto edit_profile: Edytuj profil export: Eksportuj dane - followers: Autoryzowani obserwujący + followers: Autoryzowani śledzący import: Importuj dane preferences: Preferencje settings: Ustawienia @@ -385,7 +385,7 @@ pl: show_more: Pokaż więcej visibilities: private: Tylko dla śledzących - private_long: Widoczne tylko obserwowanych + private_long: Widoczne tylko dla śledzących public: Publiczny public_long: Widoczne dla wszystkich unlisted: Niewypisany -- cgit From 00df69bc89f1b5ffdf290bde8359b3854e2b1395 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 7 Jul 2017 23:25:15 +0200 Subject: Fix #4058 - Use a long-lived cookie to keep track of user-level sessions (#4091) * Fix #4058 - Use a long-lived cookie to keep track of user-level sessions * Fix tests, smooth migrate from previous session-based identifier --- app/controllers/application_controller.rb | 2 +- config/initializers/devise.rb | 20 ++++++++++++++++---- spec/rails_helper.rb | 11 ++++++++--- 3 files changed, 25 insertions(+), 8 deletions(-) (limited to 'config') diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 865fcd125..b3c2db02b 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -70,7 +70,7 @@ class ApplicationController < ActionController::Base end def current_session - @current_session ||= SessionActivation.find_by(session_id: session['auth_id']) + @current_session ||= SessionActivation.find_by(session_id: cookies.signed['_session_id']) end def cache_collection(raw, klass) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index d51471d30..bf61ea0ea 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -1,17 +1,29 @@ Warden::Manager.after_set_user except: :fetch do |user, warden| - SessionActivation.deactivate warden.raw_session['auth_id'] - warden.raw_session['auth_id'] = user.activate_session(warden.request) + SessionActivation.deactivate warden.cookies.signed['_session_id'] + + warden.cookies.signed['_session_id'] = { + value: user.activate_session(warden.request), + expires: 1.year.from_now, + httponly: true, + } end Warden::Manager.after_fetch do |user, warden| - unless user.session_active?(warden.raw_session['auth_id']) + if user.session_active?(warden.cookies.signed['_session_id'] || warden.raw_session['auth_id']) + warden.cookies.signed['_session_id'] = { + value: warden.cookies.signed['_session_id'] || warden.raw_session['auth_id'], + expires: 1.year.from_now, + httponly: true, + } + else warden.logout throw :warden, message: :unauthenticated end end Warden::Manager.before_logout do |_, warden| - SessionActivation.deactivate warden.raw_session['auth_id'] + SessionActivation.deactivate warden.cookies.signed['_session_id'] + warden.cookies.delete('_session_id') end Devise.setup do |config| diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 9a4c8fd3c..4f7399505 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -20,11 +20,16 @@ Sidekiq::Logging.logger = nil Devise::Test::ControllerHelpers.module_eval do alias_method :original_sign_in, :sign_in - def sign_in(resource, deprecated = nil, scope: nil) + def sign_in(resource, _deprecated = nil, scope: nil) original_sign_in(resource, scope: scope) - SessionActivation.deactivate warden.raw_session["auth_id"] - warden.raw_session["auth_id"] = resource.activate_session(warden.request) + SessionActivation.deactivate warden.cookies.signed['_session_id'] + + warden.cookies.signed['_session_id'] = { + value: resource.activate_session(warden.request), + expires: 1.year.from_now, + httponly: true, + } end end -- cgit From 8fecd8010801c17d0d086fbb27d4d9a67ccbb6af Mon Sep 17 00:00:00 2001 From: Sylvhem Date: Sat, 8 Jul 2017 01:27:22 +0200 Subject: Various fixes in the French translation (#4107) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Changement de « Changement de mot de passe » en « Sécurité » * Suppression de « (Two-factor auth) » Change la valeur de la chaîne « two_factor_authentication » de « Identification à deux facteurs (Two-factor auth) » à « Identification à deux facteurs ». La traduction anglaise entre parathentèse était redondante et gênait la lecture. Change the value of the "two_factor_authentication" from "Identification à deux facteurs (Two-factor auth)" to "Identification à deux facteurs". The English translation in brackets was superflous and was getting in the way of the reader. * Remplace « ' » par « ’ » Retire de la traduction les apostrophes droites « ' » (U+0027) au profit des apostrophes typographiques « ’ » (U+2019). En typographie française, les apostrophes typographiques sont utilisées à la place des apostrophes droites. La traduction était jusqu’ici incohérente et utilisait les deux. Remove from the translation all the vertical apostrophes (U+0027) in favor of the curly ones (U+2019). In French typography, typographic apostrophes are used instead of vertical ones. The translation was incoherent and used both. * Remplace « ... » par « … » Remplace les séries de trois points par le caractère dédié « … » (U+2026). Replace all the series of three dots by the dedicated character "…" (U+2026). * Mise à jour Crée config/locales/activerecord.fr.yml, ajoute de nouvelles chaînes et met à jour certains textes. Les compteurs de caractères pour le pseudonyme et la biographie devrait maintenant pouvoir fonctionner même quand l’interface est en français. Create config/locales/activerecord.fr.yml, add new strings et update some textes. The caracters counters for the username and the biography should now work even when the interface is in French. * Remplace « A » par « À » Remplace « A » par « À » aux endroits où le mot est mal orthographié. Replace "A" by "À" when the wrong word is used. * Ajout d’espaces insécables Ajoute des espaces insécables suivant les régles nécessaires en typographie française. Add non-breaking spaces following rules of French typography. * Remplace « certain » par « certain·e » Harmonise la traduction en remplaçant « certain » par sa forme épicène. Harmonize the translation by replacing "certain" (sure) by its epicene form. * Corrige un angliscisme Remplace « adresse e-mail » par « adresse électronique ». Replace "adresse e-mail" (e-mail address) by "adresse électronique" (electronic address). --- app/javascript/mastodon/locales/fr.json | 46 ++++---- .../confirmation_instructions.fr.html.erb | 4 +- .../confirmation_instructions.fr.text.erb | 6 +- .../reset_password_instructions.fr.html.erb | 6 +- .../reset_password_instructions.fr.text.erb | 6 +- config/locales/activerecord.fr.yml | 12 ++ config/locales/devise.fr.yml | 16 +-- config/locales/doorkeeper.fr.yml | 54 ++++----- config/locales/fr.yml | 130 ++++++++++----------- config/locales/simple_form.fr.yml | 24 ++-- 10 files changed, 163 insertions(+), 141 deletions(-) create mode 100644 config/locales/activerecord.fr.yml (limited to 'config') diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index fd2b30444..cb7e1b5a7 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -31,10 +31,10 @@ "column_header.unpin": "Retirer", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Paramètres", - "compose_form.lock_disclaimer": "Votre compte n'est pas {locked}. Tout le monde peut vous suivre et voir vos pouets restreints.", + "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets restreints.", "compose_form.lock_disclaimer.lock": "verrouillé", - "compose_form.placeholder": "Qu’avez-vous en tête ?", - "compose_form.privacy_disclaimer": "Votre statut privé va être transmis aux personnes mentionnées sur {domains}. Avez-vous confiance en {domainsCount, plural, one {ce serveur} other {ces serveurs}} pour ne pas divulguer votre statut ? Les statuts privés ne fonctionnent que sur les instances de Mastodon. Si {domains} {domainsCount, plural, one {n’est pas une instance de Mastodon} other {ne sont pas des instances de Mastodon}}, il n’y aura aucune indication que votre statut est privé, et il pourrait être partagé ou rendu visible d’une autre manière à d’autres personnes imprévues.", + "compose_form.placeholder": "Qu’avez-vous en tête ?", + "compose_form.privacy_disclaimer": "Votre statut privé va être transmis aux personnes mentionnées sur {domains}. Avez-vous confiance en {domainsCount, plural, one {ce serveur} other {ces serveurs}} pour ne pas divulguer votre statut ? Les statuts privés ne fonctionnent que sur les instances de Mastodon. Si {domains} {domainsCount, plural, one {n’est pas une instance de Mastodon} other {ne sont pas des instances de Mastodon}}, il n’y aura aucune indication que votre statut est privé, et il pourrait être partagé ou rendu visible d’une autre manière à d’autres personnes imprévues.", "compose_form.publish": "Pouet ", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive": "Marquer le média comme délicat", @@ -42,13 +42,13 @@ "compose_form.spoiler_placeholder": "Avertissement", "confirmation_modal.cancel": "Annuler", "confirmations.block.confirm": "Bloquer", - "confirmations.block.message": "Confirmez vous le blocage de {name} ?", + "confirmations.block.message": "Confirmez vous le blocage de {name} ?", "confirmations.delete.confirm": "Supprimer", - "confirmations.delete.message": "Confirmez vous la suppression de ce pouet ?", + "confirmations.delete.message": "Confirmez vous la suppression de ce pouet ?", "confirmations.domain_block.confirm": "Masquer le domaine entier", - "confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou silenciations ciblés sont suffisants et préférables.", + "confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou silenciations ciblés sont suffisants et préférables.", "confirmations.mute.confirm": "Silencer", - "confirmations.mute.message": "Confirmez vous la silenciation {name} ?", + "confirmations.mute.message": "Confirmez vous la silenciation {name} ?", "emoji_button.activity": "Activités", "emoji_button.flags": "Drapeaux", "emoji_button.food": "Boire et manger", @@ -59,20 +59,20 @@ "emoji_button.search": "Recherche…", "emoji_button.symbols": "Symboles", "emoji_button.travel": "Lieux et voyages", - "empty_column.community": "Le fil public local est vide. Écrivez-donc quelque chose pour le remplir !", + "empty_column.community": "Le fil public local est vide. Écrivez-donc quelque chose pour le remplir !", "empty_column.hashtag": "Il n’y a encore aucun contenu relatif à ce hashtag", "empty_column.home": "Vous ne suivez encore personne. Visitez {public} ou bien utilisez la recherche pour vous connecter à d’autres utilisateur⋅ice⋅s.", "empty_column.home.inactivity": "Votre accueil est vide. Si vous ne vous êtes pas connecté⋅e depuis un moment, il se remplira automatiquement très bientôt.", "empty_column.home.public_timeline": "le fil public", "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres utilisateur⋅ice⋅s pour débuter la conversation.", - "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateur⋅ice⋅s d’autres instances pour remplir le fil public.", + "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateur⋅ice⋅s d’autres instances pour remplir le fil public.", "follow_request.authorize": "Autoriser", "follow_request.reject": "Rejeter", "getting_started.appsshort": "Applications", "getting_started.faq": "FAQ", "getting_started.heading": "Pour commencer", "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.", - "getting_started.userguide": "Guide d'utilisation", + "getting_started.userguide": "Guide d’utilisation", "home.column_settings.advanced": "Avancé", "home.column_settings.basic": "Basique", "home.column_settings.filter_regex": "Filtrer avec une expression rationnelle", @@ -93,17 +93,17 @@ "navigation_bar.mutes": "Comptes silencés", "navigation_bar.preferences": "Préférences", "navigation_bar.public_timeline": "Fil public global", - "notification.favourite": "{name} a ajouté à ses favoris :", + "notification.favourite": "{name} a ajouté à ses favoris :", "notification.follow": "{name} vous suit.", - "notification.mention": "{name} vous a mentionné⋅e :", - "notification.reblog": "{name} a partagé votre statut :", + "notification.mention": "{name} vous a mentionné⋅e :", + "notification.reblog": "{name} a partagé votre statut :", "notifications.clear": "Nettoyer", - "notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?", + "notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?", "notifications.column_settings.alert": "Notifications locales", - "notifications.column_settings.favourite": "Favoris :", - "notifications.column_settings.follow": "Nouveaux⋅elles abonn⋅é⋅s :", - "notifications.column_settings.mention": "Mentions :", - "notifications.column_settings.reblog": "Partages :", + "notifications.column_settings.favourite": "Favoris :", + "notifications.column_settings.follow": "Nouveaux⋅elles abonn⋅é⋅s :", + "notifications.column_settings.mention": "Mentions :", + "notifications.column_settings.reblog": "Partages :", "notifications.column_settings.show": "Afficher dans la colonne", "notifications.column_settings.sound": "Émettre un son", "onboarding.done": "Effectué", @@ -112,18 +112,18 @@ "onboarding.page_four.home": "L’Accueil affiche les posts de tou⋅te⋅s les utilisateur⋅ice⋅s que vous suivez", "onboarding.page_four.notifications": "Les Notifications vous informent lorsque quelqu’un interagit avec vous", "onboarding.page_one.federation": "Mastodon est un réseau social qui appartient à tou⋅te⋅s.", - "onboarding.page_one.handle": "Vous êtes sur {domain}, une des nombreuses instances indépendantes de Mastodon. Votre nom d'utilisateur⋅ice complet est {handle}", - "onboarding.page_one.welcome": "Bienvenue sur Mastodon !", + "onboarding.page_one.handle": "Vous êtes sur {domain}, une des nombreuses instances indépendantes de Mastodon. Votre nom d’utilisateur⋅ice complet est {handle}", + "onboarding.page_one.welcome": "Bienvenue sur Mastodon !", "onboarding.page_six.admin": "L’administrateur⋅trice de votre instance est {admin}", "onboarding.page_six.almost_done": "Nous y sommes presque…", "onboarding.page_six.appetoot": "Bon Appetoot!", "onboarding.page_six.apps_available": "De nombreuses {apps} sont disponibles pour iOS, Android et autres. Et maintenant… Bon Appetoot!", "onboarding.page_six.github": "Mastodon est un logiciel libre, gratuit et open-source. Vous pouvez rapporter des bogues, suggérer des fonctionnalités, ou contribuer à son développement sur {github}.", "onboarding.page_six.guidelines": "règles de la communauté", - "onboarding.page_six.read_guidelines": "S’il vous plaît, n’oubliez pas de lire les {guidelines} !", + "onboarding.page_six.read_guidelines": "S’il vous plaît, n’oubliez pas de lire les {guidelines} !", "onboarding.page_six.various_app": "applications mobiles", "onboarding.page_three.profile": "Modifiez votre profil pour changer votre avatar, votre description ainsi que votre nom. Vous y trouverez également d’autres préférences.", - "onboarding.page_three.search": "Utilisez la barre de recherche pour trouver des utilisateur⋅ice⋅s et regarder des hashtags tels que {illustration} et {introductions}. Pour trouver quelqu’un qui n’est pas sur cette instance, utilisez son nom d'utilisateur⋅ice complet.", + "onboarding.page_three.search": "Utilisez la barre de recherche pour trouver des utilisateur⋅ice⋅s et regarder des hashtags tels que {illustration} et {introductions}. Pour trouver quelqu’un qui n’est pas sur cette instance, utilisez son nom d’utilisateur⋅ice complet.", "onboarding.page_two.compose": "Écrivez depuis la colonne de composition. Vous pouvez ajouter des images, changer les réglages de confidentialité, et ajouter des avertissements de contenu (Content Warning) grâce aux icônes en dessous.", "onboarding.skip": "Passer", "privacy.change": "Ajuster la confidentialité du message", @@ -151,7 +151,7 @@ "status.mute_conversation": "Masquer la conversation", "status.open": "Déplier ce statut", "status.reblog": "Partager", - "status.reblogged_by": "{name} a partagé :", + "status.reblogged_by": "{name} a partagé :", "status.reply": "Répondre", "status.replyAll": "Répondre au fil", "status.report": "Signaler @{name}", diff --git a/app/views/user_mailer/confirmation_instructions.fr.html.erb b/app/views/user_mailer/confirmation_instructions.fr.html.erb index b0b3d0f51..fe3f0a010 100644 --- a/app/views/user_mailer/confirmation_instructions.fr.html.erb +++ b/app/views/user_mailer/confirmation_instructions.fr.html.erb @@ -5,10 +5,10 @@

Pour confirmer votre inscription, merci de cliquer sur le lien suivant :
<%= link_to 'Confirmer mon compte', confirmation_url(@resource, confirmation_token: @token) %>

-

Après votre première connexion, vous pourrez accéder à la documentation de l'outil.

+

Après votre première connexion, vous pourrez accéder à la documentation de l’outil.

Pensez également à jeter un œil à nos <%= link_to 'conditions d\'utilisation', terms_url %>.

Amicalement,

-

L'équipe <%= @instance %>

\ No newline at end of file +

L’équipe <%= @instance %>

diff --git a/app/views/user_mailer/confirmation_instructions.fr.text.erb b/app/views/user_mailer/confirmation_instructions.fr.text.erb index cf8e39689..7730715f8 100644 --- a/app/views/user_mailer/confirmation_instructions.fr.text.erb +++ b/app/views/user_mailer/confirmation_instructions.fr.text.erb @@ -5,10 +5,10 @@ Vous venez de vous créer un compte sur <%= @instance %> et nous vous en remerci Pour confirmer votre inscription, merci de cliquer sur le lien suivant : <%= confirmation_url(@resource, confirmation_token: @token) %> -Après votre première connexion, vous pourrez accéder à la documentation de l'outil. +Après votre première connexion, vous pourrez accéder à la documentation de l’outil. -Pour rappel, nos conditions d'utilisation sont indiquées ici <%= terms_url %> +Pour rappel, nos conditions d’utilisation sont indiquées ici <%= terms_url %> Amicalement, -L'équipe <%= @instance %> \ No newline at end of file +L’équipe <%= @instance %> diff --git a/app/views/user_mailer/reset_password_instructions.fr.html.erb b/app/views/user_mailer/reset_password_instructions.fr.html.erb index 95789e387..db55c5884 100644 --- a/app/views/user_mailer/reset_password_instructions.fr.html.erb +++ b/app/views/user_mailer/reset_password_instructions.fr.html.erb @@ -1,8 +1,8 @@

Bonjour <%= @resource.email %> !

-

Quelqu'un a demandé à réinitialiser votre mot de passe sur Mastodon. Vous pouvez effectuer la réinitialisation en cliquant sur le lien ci-dessous.

+

Quelqu’un a demandé à réinitialiser votre mot de passe sur Mastodon. Vous pouvez effectuer la réinitialisation en cliquant sur le lien ci-dessous.

<%= link_to 'Modifier mon mot de passe', edit_password_url(@resource, reset_password_token: @token) %>

-

Si vous n'êtes pas à l'origine de cette demande, vous pouvez ignorer ce message.

-

Votre mot de passe ne sera pas modifié tant que vous n'accéderez pas au lien ci-dessus et n'en choisirez pas un nouveau.

+

Si vous n’êtes pas à l’origine de cette demande, vous pouvez ignorer ce message.

+

Votre mot de passe ne sera pas modifié tant que vous n’accéderez pas au lien ci-dessus et n’en choisirez pas un nouveau.

diff --git a/app/views/user_mailer/reset_password_instructions.fr.text.erb b/app/views/user_mailer/reset_password_instructions.fr.text.erb index 73160cb4c..07fa3644a 100644 --- a/app/views/user_mailer/reset_password_instructions.fr.text.erb +++ b/app/views/user_mailer/reset_password_instructions.fr.text.erb @@ -1,8 +1,8 @@ Bonjour <%= @resource.email %> ! -Quelqu'un a demandé à réinitialiser votre mot de passe sur Mastodon. Vous pouvez effectuer la réinitialisation en cliquant sur le lien ci-dessous. +Quelqu’un a demandé à réinitialiser votre mot de passe sur Mastodon. Vous pouvez effectuer la réinitialisation en cliquant sur le lien ci-dessous. <%= edit_password_url(@resource, reset_password_token: @token) %> -Si vous n'êtes pas à l'origine de cette demande, vous pouvez ignorer ce message. -Votre mot de passe ne sera pas modifié tant que vous n'accéderez pas au lien ci-dessus et n'en choisirez pas un nouveau. +Si vous n’êtes pas à l’origine de cette demande, vous pouvez ignorer ce message. +Votre mot de passe ne sera pas modifié tant que vous n’accéderez pas au lien ci-dessus et n’en choisirez pas un nouveau. diff --git a/config/locales/activerecord.fr.yml b/config/locales/activerecord.fr.yml new file mode 100644 index 000000000..858777c0e --- /dev/null +++ b/config/locales/activerecord.fr.yml @@ -0,0 +1,12 @@ +fr: + activerecord: + errors: + models: + account: + attributes: + username: + invalid: seulement des lettres, des nombres et des tirets bas + status: + attributes: + reblog: + taken: du statut existe déjà diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index c4dbc62e0..6805e4f38 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -3,8 +3,8 @@ fr: devise: confirmations: confirmed: Votre compte a été validé. - send_instructions: Vous allez recevoir les instructions nécessaires à la confirmation de votre compte dans quelques minutes. - send_paranoid_instructions: Si votre adresse e-mail existe dans notre base de données, vous allez bientôt recevoir un courriel contenant les instructions de confirmation de votre compte. + send_instructions: Vous allez recevoir les instructions nécessaires à la confirmation de votre compte dans quelques minutes. S’il vous plaît, dans le cas où vous ne recevriez pas ce message, vérifiez votre dossier d’indésirables. + send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez bientôt recevoir un courriel contenant les instructions de confirmation de votre compte. S’il vous plaît, dans le cas où vous ne recevriez pas ce message, vérifiez votre dossier d’indésirables. failure: already_authenticated: Vous êtes déjà connecté⋅e inactive: Votre compte n’est pas encore activé. @@ -25,12 +25,12 @@ fr: unlock_instructions: subject: Instructions pour déverrouiller votre compte omniauth_callbacks: - failure: 'Nous n’avons pas pu vous authentifier via %{kind} : ''%{reason}''.' + failure: 'Nous n’avons pas pu vous authentifier via %{kind} : ''%{reason}''.' success: Authentifié avec succès via %{kind}. passwords: - no_token: Vous ne pouvez accéder à cette page sans passer par un courriel de réinitialisation de mot de passe. Si vous êtes passé⋅e par un courriel de ce type, assurez-vous d'utiliser l'URL complète. - send_instructions: Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants - send_paranoid_instructions: Si votre addresse e-mail existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel + no_token: Vous ne pouvez accéder à cette page sans passer par un courriel de réinitialisation de mot de passe. Si vous êtes passé⋅e par un courriel de ce type, assurez-vous d’utiliser l’URL complète. + send_instructions: Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants. S’il vous plaît, dans le cas où vous ne recevriez pas ce message, vérifiez votre dossier d’indésirables. + send_paranoid_instructions: Si votre addresse électronique existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel. S’il vous plaît, dans le cas où vous ne recevriez pas ce message, vérifiez votre dossier d’indésirables. updated: Votre mot de passe a été modifié avec succès, vous êtes maintenant connecté⋅e updated_not_active: Votre mot de passe a été modifié avec succès. registrations: @@ -46,8 +46,8 @@ fr: signed_in: Connecté. signed_out: Déconnecté. unlocks: - send_instructions: Vous allez recevoir les instructions nécessaires au déverrouillage de votre compte dans quelques instants - send_paranoid_instructions: Si votre compte existe, vous allez bientôt recevoir un courriel contenant les instructions pour le déverrouiller. + send_instructions: Vous allez recevoir les instructions nécessaires au déverrouillage de votre compte dans quelques instants. S’il vous plaît, dans le cas où vous ne recevriez pas ce message, vérifiez votre dossier d’indésirables. + send_paranoid_instructions: Si votre compte existe, vous allez bientôt recevoir un courriel contenant les instructions pour le déverrouiller. S’il vous plaît, dans le cas où vous ne recevriez pas ce message, vérifiez votre dossier d’indésirables. unlocked: Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté⋅e. errors: messages: diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index 24538bc48..0e74532c1 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -6,12 +6,12 @@ fr: remote_follow: attributes: acct: - blank: Le nom d'utilisateur ne doit pas être vide + blank: Le nom d’utilisateur ne doit pas être vide activerecord: attributes: doorkeeper/application: name: Nom - redirect_uri: L'URL de redirection + redirect_uri: L’URL de redirection errors: messages: record_invalid: Données invalides @@ -50,17 +50,17 @@ fr: edit: Modifier submit: Envoyer confirmations: - destroy: Êtes-vous certain ? + destroy: Êtes-vous certain·e ? edit: - title: Modifier l'application + title: Modifier l’application form: - error: Oups ! Vérifier votre formulaire pour des erreurs possibles + error: Oups ! Vérifier votre formulaire pour des erreurs possibles help: native_redirect_uri: Utiliser %{native_redirect_uri} pour les tests locaux redirect_uri: Utiliser une ligne par URL scopes: Séparer les portées avec des espaces. Laisser vide pour utiliser les portées par défaut. index: - callback_url: URL de retour d'appel + callback_url: URL de retour d’appel name: Nom new: Nouvelle application title: Vos applications @@ -68,11 +68,11 @@ fr: title: Nouvelle application show: actions: Actions - application_id: ID de l'application - callback_urls: URL du retour d'appel + application_id: ID de l’application + callback_urls: URL du retour d’appel scopes: Portées secret: Secret - title: 'Application : %{name}' + title: 'Application : %{name}' authorizations: buttons: authorize: Autoriser @@ -81,15 +81,15 @@ fr: title: Une erreur est survenue new: able_to: Cette application pourra - prompt: Autoriser %{client_name} à utiliser votre compte ? + prompt: Autoriser %{client_name} à utiliser votre compte ? title: Autorisation requise show: - title: Code d'autorisation + title: Code d’autorisation authorized_applications: buttons: revoke: Annuler confirmations: - revoke: Êtes-vous certain ? + revoke: Êtes-vous certain·e ? index: application: Application created_at: Créé le @@ -98,24 +98,24 @@ fr: title: Vos applications autorisées errors: messages: - access_denied: Le propriétaire de la ressource ou le serveur d'autorisation a refusé la requête. - credential_flow_not_configured: Le flux des identifiants du mot de passe du propriétaire de la ressource a échoué car Doorkeeper.configure.resource_owner_from_credentials n'est pas configuré. - invalid_client: L'authentification du client a échoué à cause d'un client inconnu, d'aucune authentification de client incluse ou d'une méthode d'authentification non prise en charge. - invalid_grant: Le consentement d'autorisation accordé n'est pas valide, a expiré, est annulé, ne concorde pas avec l'URL de redirection utilisée dans la requête d'autorisation ou a été émis à un autre client. - invalid_redirect_uri: L'URL de redirection n'est pas valide. + access_denied: Le propriétaire de la ressource ou le serveur d’autorisation a refusé la requête. + credential_flow_not_configured: Le flux des identifiants du mot de passe du propriétaire de la ressource a échoué car Doorkeeper.configure.resource_owner_from_credentials n’est pas configuré. + invalid_client: L’authentification du client a échoué à cause d’un client inconnu, d’aucune authentification de client incluse ou d’une méthode d’authentification non prise en charge. + invalid_grant: Le consentement d’autorisation accordé n’est pas valide, a expiré, est annulé, ne concorde pas avec l’URL de redirection utilisée dans la requête d’autorisation ou a été émis à un autre client. + invalid_redirect_uri: L’URL de redirection n’est pas valide. invalid_request: La requête omet un paramètre requis, inclut une valeur de paramètre non prise en charge ou est autrement mal formée. invalid_resource_owner: Les identifiants fournis par le propriétaire de la ressource ne sont pas valides ou le propriétaire de la ressource ne peut être trouvé - invalid_scope: La portée demandée n'est pas valide, est inconnue ou mal formée. + invalid_scope: La portée demandée n’est pas valide, est inconnue ou mal formée. invalid_token: - expired: Le jeton d'accès a expiré - revoked: Le jeton d'accès a été révoqué - unknown: Le jeton d'accès n'est pas valide - resource_owner_authenticator_not_configured: La recherche du propriétaire de la ressource a échoué car Doorkeeper.configure.resource_owner_authenticator n'est pas configuré. - server_error: Le serveur d'autorisation a rencontré une condition inattendue l'empêchant de faire aboutir la requête. - temporarily_unavailable: Le serveur d'autorisation est actuellement incapable de traiter la requête à cause d'une surcharge ou d'une maintenance temporaire du serveur. - unauthorized_client: Le client n'est pas autorisé à effectuer cette requête à l'aide de cette méthode. - unsupported_grant_type: Le type de consentement d'autorisation n'est pas pris en charge par le serveur d'autorisation. - unsupported_response_type: Le serveur d'autorisation ne prend pas en charge ce type de réponse. + expired: Le jeton d’accès a expiré + revoked: Le jeton d’accès a été révoqué + unknown: Le jeton d’accès n’est pas valide + resource_owner_authenticator_not_configured: La recherche du propriétaire de la ressource a échoué car Doorkeeper.configure.resource_owner_authenticator n’est pas configuré. + server_error: Le serveur d’autorisation a rencontré une condition inattendue l’empêchant de faire aboutir la requête. + temporarily_unavailable: Le serveur d’autorisation est actuellement incapable de traiter la requête à cause d’une surcharge ou d’une maintenance temporaire du serveur. + unauthorized_client: Le client n’est pas autorisé à effectuer cette requête à l’aide de cette méthode. + unsupported_grant_type: Le type de consentement d’autorisation n’est pas pris en charge par le serveur d’autorisation. + unsupported_response_type: Le serveur d’autorisation ne prend pas en charge ce type de réponse. flash: applications: create: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 5a3e0c552..fcf5f6f9e 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -7,7 +7,7 @@ fr: business_email: Courriel professionnel closed_registrations: Les inscriptions sont actuellement fermées sur cette instance. contact: Contact - description_headline: Qu'est-ce que %{domain} ? + description_headline: Qu’est-ce que %{domain} ? domain_count_after: autres instances domain_count_before: Connectés à features: @@ -34,12 +34,12 @@ fr: follow: Suivre followers: Abonné⋅es following: Abonnements - nothing_here: Rien à voir ici ! + nothing_here: Rien à voir ici ! people_followed_by: Personnes suivies par %{name} people_who_follow: Personnes qui suivent %{name} posts: Statuts remote_follow: Suivre à distance - reserved_username: Ce nom d'utilisateur⋅ice est réservé + reserved_username: Ce nom d’utilisateur⋅ice est réservé unfollow: Ne plus suivre activitypub: activity: @@ -48,14 +48,14 @@ fr: create: name: "%{account_name} a créé une note." outbox: - name: "Boîte d'envoi de %{account_name}" - summary: Liste d'activités de %{account_name} + name: "Boîte d’envoi de %{account_name}" + summary: Liste d’activités de %{account_name} admin: accounts: - are_you_sure: Êtes-vous certain⋅e ? + are_you_sure: Êtes-vous certain⋅e ? confirm: Confirmer confirmed: Confirmé - disable_two_factor_authentication: Désactiver l'authentification à deux facteurs + disable_two_factor_authentication: Désactiver l’authentification à deux facteurs display_name: Nom affiché domain: Domaine edit: Éditer @@ -85,7 +85,7 @@ fr: perform_full_suspension: Effectuer une suspension complète profile_url: URL du profil public: Public - push_subscription_expires: Expiration de l'abonnement PuSH + push_subscription_expires: Expiration de l’abonnement PuSH redownload: Rafraîchir les avatars reset: Réinitialiser reset_password: Réinitialiser le mot de passe @@ -98,12 +98,12 @@ fr: targeted_reports: Signalements créés visant ce compte silence: Rendre muet statuses: Statuts - subscribe: S'abonner + subscribe: S’abonner title: Comptes undo_silenced: Annuler le silence undo_suspension: Annuler la suspension unsubscribe: Se désabonner - username: Nom d'utilisateur⋅ice + username: Nom d’utilisateur⋅ice web: Web domain_blocks: add_new: Ajouter @@ -112,14 +112,14 @@ fr: domain: Domaine new: create: Créer le blocage - hint: Le blocage de domaine n'empêchera pas la création de comptes dans la base de données, mais il appliquera automatiquement et rétrospectivement des méthodes de modération spécifiques sur ces comptes. + hint: Le blocage de domaine n’empêchera pas la création de comptes dans la base de données, mais il appliquera automatiquement et rétrospectivement des méthodes de modération spécifiques sur ces comptes. severity: desc_html: "Silence rendra les messages des comptes concernés invisibles à ceux qui ne les suivent pas. Suspend supprimera tout le contenu des comptes concernés, les médias, et les données du profil." silence: Muet suspend: Suspendre title: Nouveau blocage de domaine reject_media: Fichiers média rejetés - reject_media_hint: Supprime localement les fichiers média stockés et refuse d'en télécharger ultérieurement. Ne concerne pas les suspensions. + reject_media_hint: Supprime localement les fichiers média stockés et refuse d’en télécharger ultérieurement. Ne concerne pas les suspensions. severities: silence: Rendre muet suspend: Suspendre @@ -167,10 +167,10 @@ fr: contact_information: email: Entrez une adresse courriel publique label: Informations de contact - username: Entrez un nom d'utilisateur⋅ice + username: Entrez un nom d’utilisateur⋅ice registrations: closed_message: - desc_html: Affiché sur la page d'accueil lorsque les inscriptions sont fermées
Vous pouvez utiliser des balises HTML + desc_html: Affiché sur la page d’accueil lorsque les inscriptions sont fermées
Vous pouvez utiliser des balises HTML title: Message de fermeture des inscriptions open: disabled: Désactivées @@ -178,10 +178,10 @@ fr: title: Inscriptions setting: Paramètre site_description: - desc_html: Affichée sous la forme d'un paragraphe sur la page d'accueil et utilisée comme balise meta.
Vous pouvez utiliser des balises HTML, en particulier <a> et <em>. + desc_html: Affichée sous la forme d’un paragraphe sur la page d’accueil et utilisée comme balise meta.
Vous pouvez utiliser des balises HTML, en particulier <a> et <em>. title: Description du site site_description_extended: - desc_html: Affichée sur la page d'informations complémentaires du site
Vous pouvez utiliser des balises HTML + desc_html: Affichée sur la page d’informations complémentaires du site
Vous pouvez utiliser des balises HTML title: Description étendue du site site_title: Titre du site title: Paramètres du site @@ -198,17 +198,17 @@ fr: body: "%{reporter} a signalé %{target}" subject: Nouveau signalement sur %{instance} (#%{id}) application_mailer: - settings: 'Changer les préférences courriel : %{link}' + settings: 'Changer les préférences courriel : %{link}' signature: Notifications de Mastodon depuis %{instance} - view: 'Voir :' + view: 'Voir :' applications: - invalid_url: L'URL fournie est invalide + invalid_url: L’URL fournie est invalide auth: - change_password: Changer de mot de passe + change_password: Sécurité delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. - didnt_get_confirmation: Vous n’avez pas reçu les consignes de confirmation ? - forgot_password: Mot de passe oublié ? + didnt_get_confirmation: Vous n’avez pas reçu les consignes de confirmation ? + forgot_password: Mot de passe oublié ? login: Se connecter logout: Se déconnecter register: S’inscrire @@ -218,7 +218,7 @@ fr: authorize_follow: error: Malheureusement, il y a eu une erreur en cherchant les détails du compte distant follow: Suivre - prompt_html: 'Vous (%{self}) avez demandé à suivre :' + prompt_html: 'Vous (%{self}) avez demandé à suivre :' title: Suivre %{acct} datetime: distance_in_words: @@ -230,9 +230,9 @@ fr: almost_x_years: one: un an other: "%{count} ans" - half_a_minute: A l'instant + half_a_minute: À l’instant less_than_x_minutes: "%{count}min" - less_than_x_seconds: A l'instant + less_than_x_seconds: À l’instant over_x_years: one: un an other: "%{count} ans" @@ -241,19 +241,19 @@ fr: x_months: "%{count}mois" x_seconds: "%{count}s" deletes: - bad_password_msg: Bien essayé ! Mot de passe incorrect + bad_password_msg: Bien essayé ! Mot de passe incorrect confirm_password: Entrez votre mot de passe pour vérifier votre identité - description_html: Cela va supprimer votre compte et le désactiver de manière permanente et irréversible. Votre nom d'utilisateur⋅ice restera réservé afin d'éviter la confusion + description_html: Cela va supprimer votre compte et le désactiver de manière permanente et irréversible. Votre nom d’utilisateur⋅ice restera réservé afin d’éviter la confusion proceed: Supprimer compte success_msg: Votre compte a été supprimé avec succès - warning_html: Seule la suppression du contenu depuis cette instance est garantie. Le contenu qui a été partagé est susceptible de laisser des traces. Les serveurs hors-lignes ainsi que ceux n'étant plus abonnés à vos publications ne mettront pas leur base de données à jour. + warning_html: Seule la suppression du contenu depuis cette instance est garantie. Le contenu qui a été partagé est susceptible de laisser des traces. Les serveurs hors-lignes ainsi que ceux n’étant plus abonnés à vos publications ne mettront pas leur base de données à jour. warning_title: Disponibilité du contenu disséminé errors: - '403': Vous n'avez pas accès à cette page. - '404': La page que vous recherchez n'existe pas. - '410': La page que vous recherchez n'existe plus. + '403': Vous n’avez pas accès à cette page. + '404': La page que vous recherchez n’existe pas. + '410': La page que vous recherchez n’existe plus. '422': - content: Vérification de sécurité échouée. Bloquez-vous les cookies ? + content: Vérification de sécurité échouée. Bloquez-vous les cookies ? title: Vérification de sécurité échouée '429': Trop de requêtes émises dans un délai donné. noscript: Pour utiliser Mastodon, veuillez activer JavaScript @@ -265,70 +265,70 @@ fr: storage: Médias stockés followers: domain: Domaine - explanation_html: Si vous voulez être sûr⋅e que vos status restent privés, vous devez savoir qui vous suit. Vos status privés seront diffusés à toutes les instances des utilisateur⋅ice⋅s qui vous suivent. Vous voudrez peut-être les passer en revue et les supprimer si vous n'êtes pas sûr⋅e que votre vie privée sera respectée par l'administration ou le logiciel de ces instances. - followers_count: Nombre d'abonné⋅es + explanation_html: Si vous voulez être sûr⋅e que vos status restent privés, vous devez savoir qui vous suit. Vos status privés seront diffusés à toutes les instances des utilisateur⋅ice⋅s qui vous suivent. Vous voudrez peut-être les passer en revue et les supprimer si vous n’êtes pas sûr⋅e que votre vie privée sera respectée par l’administration ou le logiciel de ces instances. + followers_count: Nombre d’abonné⋅es lock_link: Rendez votre compte privé - purge: Retirer de la liste d'abonné⋅es + purge: Retirer de la liste d’abonné⋅es success: - one: Suppression des abonné⋅es venant d'un domaine en cours... - other: Suppression des abonné⋅es venant de %{count} domaines en cours... - true_privacy_html: Soyez conscient⋅es qu'une vraie confidentialité ne peut être atteinte que par un chiffrement de bout-en-bout. - unlocked_warning_html: N'importe qui peut vous suivre et voir vos status privés. %{lock_link} afin de pouvoir vérifier et rejeter des abonné⋅es. - unlocked_warning_title: Votre compte n'est pas privé + one: Suppression des abonné⋅es venant d’un domaine en cours… + other: Suppression des abonné⋅es venant de %{count} domaines en cours… + true_privacy_html: Soyez conscient⋅es qu’une vraie confidentialité ne peut être atteinte que par un chiffrement de bout-en-bout. + unlocked_warning_html: N’importe qui peut vous suivre et voir vos status privés. %{lock_link} afin de pouvoir vérifier et rejeter des abonné⋅es. + unlocked_warning_title: Votre compte n’est pas privé generic: - changes_saved_msg: Les modifications ont été enregistrées avec succès ! + changes_saved_msg: Les modifications ont été enregistrées avec succès ! powered_by: propulsé par %{link} save_changes: Enregistrer les modifications validation_errors: - one: Quelque chose ne va pas ! Vérifiez l’erreur ci-dessous. - other: Certaines choses ne vont pas ! Vérifiez les erreurs ci-dessous. + one: Quelque chose ne va pas ! Vérifiez l’erreur ci-dessous. + other: Certaines choses ne vont pas ! Vérifiez les erreurs ci-dessous. imports: preface: Vous pouvez importer certaines données comme les personnes que vous suivez ou bloquez sur votre compte sur cette instance à partir de fichiers créés sur une autre instance. success: Vos données ont été importées avec succès et seront traitées en temps et en heure types: - blocking: Liste d'utilisateur⋅ice⋅s bloqué⋅es - following: Liste d'utilisateur⋅ice⋅s suivi⋅es - muting: Liste d'utilisateur⋅ice⋅s que vous faites taire + blocking: Liste d’utilisateur⋅ice⋅s bloqué⋅es + following: Liste d’utilisateur⋅ice⋅s suivi⋅es + muting: Liste d’utilisateur⋅ice⋅s que vous faites taire upload: Importer landing_strip_html: %{name} utilise %{link_to_root_path}. Vous pouvez le/la suivre et interagir si vous possédez un compte quelque part dans le "fediverse". - landing_strip_signup_html: Si ce n'est pas le cas, vous pouvez en créer un ici. + landing_strip_signup_html: Si ce n’est pas le cas, vous pouvez en créer un ici. media_attachments: validations: images_and_video: Impossible de joindre une vidéo à un statut contenant déjà des images too_many: Impossible de joindre plus de 4 fichiers notification_mailer: digest: - body: 'Voici ce que vous avez raté sur ${instance} depuis votre dernière visite (%{}) :' + body: 'Voici ce que vous avez raté sur ${instance} depuis votre dernière visite (%{}) :' mention: "%{name} vous a mentionné⋅e" new_followers_summary: - one: Vous avez un⋅e nouvel⋅le abonné⋅e ! Youpi ! - other: Vous avez %{count} nouveaux⋅elles abonné⋅e⋅s ! Incroyable ! + one: Vous avez un⋅e nouvel⋅le abonné⋅e ! Youpi ! + other: Vous avez %{count} nouveaux⋅elles abonné⋅e⋅s ! Incroyable ! subject: one: "Une nouvelle notification depuis votre dernière visite \U0001F418" other: "%{count} nouvelles notifications depuis votre dernière visite \U0001F418" favourite: - body: "%{name} a ajouté votre post à ses favoris :" + body: "%{name} a ajouté votre post à ses favoris :" subject: "%{name} a ajouté votre post à ses favoris" follow: - body: "%{name} vous suit !" + body: "%{name} vous suit !" subject: "%{name} vous suit" follow_request: body: "%{name} a demandé à vous suivre" - subject: 'Abonné⋅es en attente : %{name}' + subject: 'Abonné⋅es en attente : %{name}' mention: - body: "%{name} vous a mentionné⋅e dans :" + body: "%{name} vous a mentionné⋅e dans :" subject: "%{name} vous a mentionné⋅e" reblog: - body: "%{name} a partagé votre statut :" + body: "%{name} a partagé votre statut :" subject: "%{name} a partagé votre statut" pagination: next: Suivant prev: Précédent remote_follow: acct: Entrez votre pseudo@instance depuis lequel vous voulez suivre ce⋅tte utilisateur⋅trice - missing_resource: L'URL de redirection n'a pas pu être trouvée + missing_resource: L’URL de redirection n’a pas pu être trouvée proceed: Continuez pour suivre - prompt: 'Vous allez suivre :' + prompt: 'Vous allez suivre :' sessions: activity: Dernière activité browser: Navigateur @@ -376,7 +376,7 @@ fr: import: Import de données preferences: Préférences settings: Réglages - two_factor_authentication: Identification à deux facteurs (Two-factor auth) + two_factor_authentication: Identification à deux facteurs statuses: open_in_web: Ouvrir sur le web over_character_limit: limite de caractères dépassée de %{max} caractères @@ -397,20 +397,20 @@ fr: default: "%d %b %Y, %H:%M" two_factor_authentication: code_hint: Entrez le code généré par votre application pour confirmer - description_html: Si vous activez l'identification à deux facteurs, vous devrez être en possession de votre téléphone afin de générer un code de connexion. + description_html: Si vous activez l’identification à deux facteurs, vous devrez être en possession de votre téléphone afin de générer un code de connexion. disable: Désactiver enable: Activer - enabled: L'authentification à deux facteurs est activée + enabled: L’authentification à deux facteurs est activée enabled_success: Identification à deux facteurs activée avec succès generate_recovery_codes: Générer les codes de récupération instructions_html: "Scannez ce QR code grâce à Google Authenticator, Authy ou une application similaire sur votre téléphone. Désormais, cette application générera des jetons que vous devrez saisir à chaque connexion." lost_recovery_codes: Les codes de récupération vous permettent de retrouver les accès à votre comptre si vous perdez votre téléphone. Si vous perdez vos codes de récupération, vous pouvez les générer à nouveau ici. Vos anciens codes de récupération seront invalidés. - manual_instructions: 'Si vous ne pouvez pas scanner ce QR code et devez l''entrer manuellement, voici le secret en clair :' + manual_instructions: 'Si vous ne pouvez pas scanner ce QR code et devez l’entrer manuellement, voici le secret en clair :' recovery_codes: Codes de récupération recovery_codes_regenerated: Codes de récupération régénérés avec succès - recovery_instructions_html: Si vous perdez l'accès à votre téléphone, vous pouvez utiliser un des codes de récupération ci-dessous pour récupérer l'accès à votre compte. Conservez les codes de récupération en toute sécurité, par exemple, en les imprimant et en les stockant avec vos autres documents importants. + recovery_instructions_html: Si vous perdez l’accès à votre téléphone, vous pouvez utiliser un des codes de récupération ci-dessous pour récupérer l’accès à votre compte. Conservez les codes de récupération en toute sécurité, par exemple, en les imprimant et en les stockant avec vos autres documents importants. setup: Installer - wrong_code: Les codes entrés sont incorrects ! L'heure du serveur et celle de votre appareil sont-elles correctes ? + wrong_code: Les codes entrés sont incorrects ! L’heure du serveur et celle de votre appareil sont-elles correctes ? users: - invalid_email: L'adresse courriel est invalide - invalid_otp_token: Le code d'authentification à deux facteurs est invalide + invalid_email: L’adresse courriel est invalide + invalid_otp_token: Le code d’authentification à deux facteurs est invalide diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 446c56947..8717a4abd 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -4,12 +4,20 @@ fr: hints: defaults: avatar: Au format PNG, GIF ou JPG. 2Mo maximum. Sera réduit à 120x120px - display_name: 30 caractères maximum + display_name: + one: 1 caractère restant + other: %{count} caractères restants header: Au format PNG, GIF ou JPG. 2Mo maximum. Sera réduit à 700x335px - locked: Vous devrez approuver chaque abonné⋅e et vos statuts ne s'afficheront qu'à vos abonné⋅es - note: 160 caractères maximum + locked: Vous devrez approuver chaque abonné⋅e et vos statuts ne s’afficheront qu’à vos abonné⋅es + note: + one: 1 caractère restant + other: %{count} caractères restants imports: data: Un fichier CSV généré par une autre instance de Mastodon + sessions: + otp: Entrez le code d’authentification à deux facteurs depuis votre téléphone ou utilisez un de vos codes de récupération. + user: + filtered_languages: Les langues sélectionnées seront retirées de vos fils publics. labels: defaults: avatar: Image de profil @@ -21,16 +29,18 @@ fr: email: Adresse courriel header: Image d’en-tête locale: Langue - locked: Rendre le compte privé + locked: Verrouiller le compte new_password: Nouveau mot de passe note: Présentation - otp_attempt: Code d'identification à deux facteurs + otp_attempt: Code d’identification à deux facteurs password: Mot de passe + setting_auto_play_gif: Lire automatiquement les GIFs animés setting_boost_modal: Afficher un dialogue de confirmation avant de partager setting_default_privacy: Confidentialité des statuts + setting_delete_modal: Afficher un dialogue de confirmation avant de supprimer un pouet setting_system_font_ui: Utiliser la police par défaut du système severity: Séverité - type: Type d'import + type: Type d’import username: Identifiant interactions: must_be_follower: Masquer les notifications des personnes qui ne vous suivent pas @@ -39,7 +49,7 @@ fr: digest: Envoyer des courriels récapitulatifs favourite: Envoyer un courriel lorsque quelqu’un ajoute mes statuts à ses favoris follow: Envoyer un courriel lorsque quelqu’un me suit - follow_request: Envoyer un courriel lorsque quelqu'un demande à me suivre + follow_request: Envoyer un courriel lorsque quelqu’un demande à me suivre mention: Envoyer un courriel lorsque quelqu’un me mentionne reblog: Envoyer un courriel lorsque quelqu’un partage mes statuts 'no': Non -- cgit From 0324f807f4f7b557bb0c38f0dbb4cfd98490957d Mon Sep 17 00:00:00 2001 From: Jeroen Date: Sat, 8 Jul 2017 17:17:02 +0200 Subject: Update and improvement Dutch language strings (#4117) * Update * Update --- app/javascript/mastodon/locales/nl.json | 10 ++-- config/locales/nl.yml | 102 +++++++++++++++++++++++++------- 2 files changed, 86 insertions(+), 26 deletions(-) (limited to 'config') diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 38ca6518a..05a9e3a12 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -10,7 +10,7 @@ "account.media": "Media", "account.mention": "Vermeld @{name}", "account.mute": "Negeer @{name}", - "account.posts": "Berichten", + "account.posts": "Toots", "account.report": "Rapporteer @{name}", "account.requested": "Wacht op goedkeuring", "account.unblock": "Deblokkeer @{name}", @@ -22,7 +22,7 @@ "column.community": "Lokale tijdlijn", "column.favourites": "Favorieten", "column.follow_requests": "Volgverzoeken", - "column.home": "Jouw tijdlijn", + "column.home": "Start", "column.mutes": "Genegeerde gebruikers", "column.notifications": "Meldingen", "column.public": "Globale tijdlijn", @@ -62,7 +62,7 @@ "empty_column.community": "De lokale tijdlijn is leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!", "empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.", "empty_column.home": "Jij volgt nog niemand. Bezoek {public} of gebruik het zoekvenster om andere mensen te ontmoeten.", - "empty_column.home.inactivity": "Jouw tijdlijn is leeg. Wanneer je een tijdje inactief bent geweest wordt deze snel opnieuw aangemaakt.", + "empty_column.home.inactivity": "Deze tijdlijn is leeg. Wanneer je een tijdje inactief bent geweest wordt deze snel opnieuw aangemaakt.", "empty_column.home.public_timeline": "de globale tijdlijn", "empty_column.notifications": "Je hebt nog geen meldingen. Heb interactie met andere mensen om het gesprek aan te gaan.", "empty_column.public": "Er is hier helemaal niks! Toot iets in het openbaar of volg mensen van andere Mastodon-servers om het te vullen.", @@ -109,7 +109,7 @@ "onboarding.done": "Klaar", "onboarding.next": "Volgende", "onboarding.page_five.public_timelines": "De lokale tijdlijn toont openbare toots van iedereen op {domain}. De globale tijdlijn toont openbare toots van iedereen die door gebruikers van {domain} worden gevolgd, dus ook mensen van andere Mastodon-servers. Dit zijn de openbare tijdlijnen en vormen een uitstekende manier om nieuwe mensen te ontdekken.", - "onboarding.page_four.home": "Jouw tijdlijn laat toots zien van mensen die jij volgt.", + "onboarding.page_four.home": "Deze tijdlijn laat toots zien van mensen die jij volgt.", "onboarding.page_four.notifications": "De kolom met meldingen toont alle interacties die je met andere Mastodon-gebruikers hebt.", "onboarding.page_one.federation": "Mastodon is een netwerk van onafhankelijke servers die samen een groot sociaal netwerk vormen.", "onboarding.page_one.handle": "Je bevindt je nu op {domain}, dus is jouw volledige Mastodon-adres {handle}", @@ -162,7 +162,7 @@ "status.unmute_conversation": "Conversatie niet meer negeren", "tabs_bar.compose": "Schrijven", "tabs_bar.federated_timeline": "Globaal", - "tabs_bar.home": "Jouw tijdlijn", + "tabs_bar.home": "Start", "tabs_bar.local_timeline": "Lokaal", "tabs_bar.notifications": "Meldingen", "upload_area.title": "Hierin slepen om te uploaden", diff --git a/config/locales/nl.yml b/config/locales/nl.yml index d9b02e09c..306ce6b1f 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -36,10 +36,33 @@ nl: nothing_here: Hier is niets! people_followed_by: Mensen die %{name} volgt people_who_follow: Mensen die %{name} volgen - posts: Berichten + posts: Toots remote_follow: Extern volgen unfollow: Ontvolgen admin: + reports: + action_taken_by: Actie uitgevoerd door + are_you_sure: Weet je het zeker? + comment: + label: Opmerking + none: Geen + delete: Verwijderen + id: ID + mark_as_resolved: Markeer als opgelost + nsfw: + 'false': Media tonen + 'true': Media verbergen + report: 'Gerapporteerde toot #%{id}' + reported_account: Gerapporteerde account + reported_by: Gerapporteerd door + resolved: Opgelost + silence_account: Account stilzwijgen + status: Toot + suspend_account: Account blokkeren + target: Target + title: Gerapporteerde toots + unresolved: Onopgelost + view: Weergeven settings: contact_information: email: Vul een openbaar gebruikt e-mailadres in @@ -62,24 +85,11 @@ nl: title: Uitgebreide omschrijving Mastodon-server site_title: Naam Mastodon-server title: Server-instellingen - admin.reports: - comment: - label: Opmerking - none: Geen - delete: Verwijderen - id: ID - mark_as_resolved: Markeer als opgelost - report: 'Gerapporteerde toot #%{id}' - reported_account: Gerapporteerde account - reported_by: Gerapporteerd door - resolved: Opgelost - silence_account: Account stilzwijgen - status: Toot - suspend_account: Account blokkeren - target: Target - title: Gerapporteerde toots - unresolved: Onopgelost - view: Weergeven + title: Beheer + admin_mailer: + new_report: + body: "%{reporter} heeft %{target} gerapporteerd" + subject: Nieuwe toots gerapporteerd op %{instance} (#%{id}) application_mailer: settings: 'E-mailvoorkeuren wijzigen: %{link}' signature: Mastodon-meldingen van %{instance} @@ -87,7 +97,9 @@ nl: applications: invalid_url: De opgegevens URL is ongeldig auth: - change_password: Inloggegevens + change_password: Beveiliging + delete_account: Account verwijderen + delete_account_html: Wanneer je jouw account graag wilt verwijderen, kan je dat hier doen. We vragen jou daar om een bevestiging. didnt_get_confirmation: Geen bevestigingsinstructies ontvangen? forgot_password: Wachtwoord vergeten? login: Aanmelden @@ -115,12 +127,23 @@ nl: x_minutes: "%{count}m" x_months: "%{count}ma" x_seconds: "%{count}s" + deletes: + bad_password_msg: Goed geprobeerd hackers! Ongeldig wachtwoord + confirm_password: Voer jouw huidige wachtwoord in om jouw identiteit te bevestigen + description_html: Hierdoor worden alle gegevens van jouw account permanent, onomkeerbaar verwijderd en wordt deze gedeactiveerd. Om toekomstige identiteitsdiefstal te voorkomen, kan op deze server jouw gebruikersnaam niet meer gebruikt worden. + proceed: Account verwijderen + success_msg: Jouw account is succesvol verwijderd + warning_html: We kunnen alleen garanderen dat jouw gegevens op deze server worden verwijderd. Berichten (toots), incl. media, die veel zijn gedeeld laten mogelijk sporen achter. Offline servers en servers die niet meer op jouw updates zijn geabonneerd zullen niet hun databases updaten. + warning_title: Verwijdering gegevens op andere servers errors: + '403': Jij hebt geen toestemming om deze pagina te bekijken. '404': De pagina waarnaar jij op zoek bent bestaat niet. '410': De pagina waarnaar jij op zoek bent bestaat niet meer. '422': content: Veiligheidsverificatie mislukt. Blokkeer je toevallig cookies? title: Veiligheidsverificatie mislukt + '429': Te veel verbindingsaanvragen. + noscript: Schakel JavaScript in om Mastodon te kunnen gebruiken. exports: blocks: Jij blokkeert csv: CSV @@ -141,7 +164,7 @@ nl: unlocked_warning_title: Jouw account is niet besloten generic: changes_saved_msg: Wijzigingen succesvol opgeslagen! - powered_by: mogelijk gemaakt door %{link} + powered_by: wordt mogelijk gemaakt door %{link} save_changes: Wijzigingen opslaan validation_errors: one: Er is iets niet helemaal goed! Bekijk onderstaande fout @@ -189,6 +212,43 @@ nl: missing_resource: Kon vereiste doorverwijzings-URL voor jouw account niet vinden proceed: Ga door om te volgen prompt: 'Jij gaat volgen:' + sessions: + activity: Laatst actief + browser: Webbrowser + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + firefox: Firefox + generic: Onbekende webbrowser + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi Browser + opera: Opera + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UCBrowser + weibo: Weibo + current_session: Huidige sessie + description: "%{browser} op %{platform}" + explanation: Dit zijn de webbrowsers die momenteel met jouw Mastodon-account zijn ingelogd. + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: Mac + other: Onbekend platform + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + title: Sessies settings: authorized_apps: Geautoriseerde apps back: Terug naar Mastodon -- cgit From 8781a8e2030b6b75d9412cddd7a696506c4633f0 Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Sun, 9 Jul 2017 12:17:00 +0200 Subject: i18n: minor change (pl) (#4124) --- config/locales/pl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config') diff --git a/config/locales/pl.yml b/config/locales/pl.yml index bf9d5e034..0dc1da8b4 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -392,7 +392,7 @@ pl: unlisted_long: Widoczne dla wszystkich, ale nie wyświetlane na publicznych osiach czasu stream_entries: click_to_show: Naciśnij aby wyświetlić - reblogged: podbito + reblogged: podbił sensitive_content: Wrażliwa zawartość terms: body_html: | -- cgit From 4aa6cd66fce2940b1a26859de942fc5ec7ea4127 Mon Sep 17 00:00:00 2001 From: Sadiq Saif Date: Sun, 9 Jul 2017 22:49:48 -0400 Subject: Change default for auto_play_fit to false for a11y (#4132) This is per issue #3876 --- config/settings.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config') diff --git a/config/settings.yml b/config/settings.yml index 18b70b51f..be2a7a1f8 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -17,7 +17,7 @@ defaults: &defaults closed_registrations_message: '' open_deletion: true boost_modal: false - auto_play_gif: true + auto_play_gif: false delete_modal: true system_font_ui: false notification_emails: -- cgit From 2b9721d1b38319d70bed98e76a0fe1d648780298 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Mon, 10 Jul 2017 21:00:32 +0900 Subject: Add setting a always mark media as sensitive (#4136) --- app/controllers/settings/preferences_controller.rb | 1 + app/javascript/mastodon/reducers/compose.js | 7 +++++++ app/lib/user_settings_decorator.rb | 5 +++++ app/models/user.rb | 4 ++++ app/serializers/initial_state_serializer.rb | 1 + app/serializers/rest/credential_account_serializer.rb | 1 + app/views/settings/preferences/show.html.haml | 2 ++ config/locales/simple_form.en.yml | 1 + spec/lib/user_settings_decorator_spec.rb | 7 +++++++ 9 files changed, 29 insertions(+) (limited to 'config') diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index a15c26031..cac5b0ba8 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -34,6 +34,7 @@ class Settings::PreferencesController < ApplicationController def user_settings_params params.require(:user).permit( :setting_default_privacy, + :setting_default_sensitive, :setting_boost_modal, :setting_delete_modal, :setting_auto_play_gif, diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index d0b47a85c..752377739 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -45,6 +45,7 @@ const initialState = Immutable.Map({ suggestions: Immutable.List(), me: null, default_privacy: 'public', + default_sensitive: false, resetFileKey: Math.floor((Math.random() * 0x10000)), idempotencyKey: null, }); @@ -75,6 +76,8 @@ function clearAll(state) { }; function appendMedia(state, media) { + const prevSize = state.get('media_attachments').size; + return state.withMutations(map => { map.update('media_attachments', list => list.push(media)); map.set('is_uploading', false); @@ -82,6 +85,10 @@ function appendMedia(state, media) { map.update('text', oldText => `${oldText.trim()} ${media.get('text_url')}`); map.set('focusDate', new Date()); map.set('idempotencyKey', uuid()); + + if (prevSize === 0 && state.get('default_sensitive')) { + map.set('sensitive', true); + } }); }; diff --git a/app/lib/user_settings_decorator.rb b/app/lib/user_settings_decorator.rb index 9c0cb4545..e0e92b19d 100644 --- a/app/lib/user_settings_decorator.rb +++ b/app/lib/user_settings_decorator.rb @@ -18,6 +18,7 @@ class UserSettingsDecorator user.settings['notification_emails'] = merged_notification_emails user.settings['interactions'] = merged_interactions user.settings['default_privacy'] = default_privacy_preference + user.settings['default_sensitive'] = default_sensitive_preference user.settings['boost_modal'] = boost_modal_preference user.settings['delete_modal'] = delete_modal_preference user.settings['auto_play_gif'] = auto_play_gif_preference @@ -36,6 +37,10 @@ class UserSettingsDecorator settings['setting_default_privacy'] end + def default_sensitive_preference + boolean_cast_setting 'setting_default_sensitive' + end + def boost_modal_preference boolean_cast_setting 'setting_boost_modal' end diff --git a/app/models/user.rb b/app/models/user.rb index e2bb3d0ed..c80115a08 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -79,6 +79,10 @@ class User < ApplicationRecord settings.default_privacy || (account.locked? ? 'private' : 'public') end + def setting_default_sensitive + settings.default_sensitive + end + def setting_boost_modal settings.boost_modal end diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index 84f9e23a6..49ff9e377 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -23,6 +23,7 @@ class InitialStateSerializer < ActiveModel::Serializer { me: object.current_account.id, default_privacy: object.current_account.user.setting_default_privacy, + default_sensitive: object.current_account.user.setting_default_sensitive, } end diff --git a/app/serializers/rest/credential_account_serializer.rb b/app/serializers/rest/credential_account_serializer.rb index 094b831c9..870d8b71f 100644 --- a/app/serializers/rest/credential_account_serializer.rb +++ b/app/serializers/rest/credential_account_serializer.rb @@ -7,6 +7,7 @@ class REST::CredentialAccountSerializer < REST::AccountSerializer user = object.user { privacy: user.setting_default_privacy, + sensitive: user.setting_default_sensitive, note: object.note, } end diff --git a/app/views/settings/preferences/show.html.haml b/app/views/settings/preferences/show.html.haml index 26fbfdf82..56a261ab6 100644 --- a/app/views/settings/preferences/show.html.haml +++ b/app/views/settings/preferences/show.html.haml @@ -24,6 +24,8 @@ = f.input :setting_default_privacy, collection: Status.visibilities.keys - ['direct'], wrapper: :with_label, include_blank: false, label_method: lambda { |visibility| safe_join([I18n.t("statuses.visibilities.#{visibility}"), content_tag(:span, I18n.t("statuses.visibilities.#{visibility}_long"), class: 'hint')]) }, required: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + = f.input :setting_default_sensitive, as: :boolean, wrapper: :with_label + .fields-group = f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff| = ff.input :follow, as: :boolean, wrapper: :with_label diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index d8d3b8a6f..fc5ab5ec8 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -37,6 +37,7 @@ en: setting_auto_play_gif: Auto-play animated GIFs setting_boost_modal: Show confirmation dialog before boosting setting_default_privacy: Post privacy + setting_default_sensitive: Always mark media as sensitive setting_delete_modal: Show confirmation dialog before deleting a toot setting_system_font_ui: Use system's default font severity: Severity diff --git a/spec/lib/user_settings_decorator_spec.rb b/spec/lib/user_settings_decorator_spec.rb index e1ba56d97..a67487779 100644 --- a/spec/lib/user_settings_decorator_spec.rb +++ b/spec/lib/user_settings_decorator_spec.rb @@ -28,6 +28,13 @@ describe UserSettingsDecorator do expect(user.settings['default_privacy']).to eq 'public' end + it 'updates the user settings value for sensitive' do + values = { 'setting_default_sensitive' => '1' } + + settings.update(values) + expect(user.settings['default_sensitive']).to eq true + end + it 'updates the user settings value for boost modal' do values = { 'setting_boost_modal' => '1' } -- cgit From 63baab088d734a982d21a5df538db554091188ad Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Mon, 10 Jul 2017 21:02:18 +0900 Subject: Fix regular expression for RFC 5646 (regression from #3604) (#4133) --- app/javascript/mastodon/locales/ar.json | 7 ++- app/javascript/mastodon/locales/bg.json | 7 ++- app/javascript/mastodon/locales/ca.json | 7 ++- app/javascript/mastodon/locales/de.json | 7 ++- .../mastodon/locales/defaultMessages.json | 55 +++++++++++++--------- app/javascript/mastodon/locales/en.json | 7 ++- app/javascript/mastodon/locales/eo.json | 7 ++- app/javascript/mastodon/locales/es.json | 7 ++- app/javascript/mastodon/locales/fa.json | 7 ++- app/javascript/mastodon/locales/fi.json | 7 ++- app/javascript/mastodon/locales/fr.json | 7 ++- app/javascript/mastodon/locales/he.json | 7 ++- app/javascript/mastodon/locales/hr.json | 7 ++- app/javascript/mastodon/locales/hu.json | 7 ++- app/javascript/mastodon/locales/id.json | 7 ++- app/javascript/mastodon/locales/io.json | 7 ++- app/javascript/mastodon/locales/it.json | 7 ++- app/javascript/mastodon/locales/ja.json | 7 ++- app/javascript/mastodon/locales/ko.json | 7 ++- app/javascript/mastodon/locales/nl.json | 7 ++- app/javascript/mastodon/locales/no.json | 7 ++- app/javascript/mastodon/locales/oc.json | 7 ++- app/javascript/mastodon/locales/pl.json | 7 ++- app/javascript/mastodon/locales/pt-BR.json | 9 ++-- app/javascript/mastodon/locales/pt.json | 7 ++- app/javascript/mastodon/locales/ru.json | 7 ++- app/javascript/mastodon/locales/th.json | 7 ++- app/javascript/mastodon/locales/tr.json | 7 ++- app/javascript/mastodon/locales/uk.json | 7 ++- .../mastodon/locales/whitelist_zh-HK.json | 1 - app/javascript/mastodon/locales/zh-CN.json | 9 ++-- app/javascript/mastodon/locales/zh-HK.json | 9 ++-- app/javascript/mastodon/locales/zh-TW.json | 9 ++-- config/webpack/translationRunner.js | 2 +- 34 files changed, 221 insertions(+), 62 deletions(-) (limited to 'config') diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index c13bc73d3..6992e7e0f 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -18,6 +18,12 @@ "account.unfollow": "إلغاء المتابعة", "account.unmute": "إلغاء الكتم عن @{name}", "boost_modal.combo": "يمكنك ضغط {combo} لتخطّي هذه في المرّة القادمة", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "الحسابات المحجوبة", "column.community": "الخيط العام المحلي", "column.favourites": "المفضلة", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "لا تقم بإدراجه على الخيوط العامة", "privacy.unlisted.short": "غير مدرج", "reply_indicator.cancel": "إلغاء", - "report.heading": "تقرير جديد", "report.placeholder": "تعليقات إضافية", "report.submit": "إرسال", "report.target": "إبلاغ", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 3b6f228c6..7a56e1446 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -18,6 +18,12 @@ "account.unfollow": "Не следвай", "account.unmute": "Unmute @{name}", "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blocked users", "column.community": "Local timeline", "column.favourites": "Favourites", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Do not show in public timelines", "privacy.unlisted.short": "Unlisted", "reply_indicator.cancel": "Отказ", - "report.heading": "New report", "report.placeholder": "Additional comments", "report.submit": "Submit", "report.target": "Reporting", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 8e8c95d56..b2673915a 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -18,6 +18,12 @@ "account.unfollow": "Deixar de seguir", "account.unmute": "Treure silenci de @{name}", "boost_modal.combo": "Pots premer {combo} per saltar-te això el proper cop", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Usuaris bloquejats", "column.community": "Línia de temps local", "column.favourites": "Favorits", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "No publicar en línies de temps públiques", "privacy.unlisted.short": "No llistat", "reply_indicator.cancel": "Cancel·lar", - "report.heading": "Nou informe", "report.placeholder": "Comentaris addicionals", "report.submit": "Enviar", "report.target": "Informes", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 55499c0a3..4b62403c3 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -18,6 +18,12 @@ "account.unfollow": "Entfolgen", "account.unmute": "@{name} nicht mehr stummschalten", "boost_modal.combo": "Du kannst {combo} drücken, um dies beim nächsten Mal zu überspringen", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blockierte Benutzer", "column.community": "Lokale Zeitleiste", "column.favourites": "Favoriten", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Nicht in öffentlichen Zeitleisten anzeigen", "privacy.unlisted.short": "Nicht gelistet", "reply_indicator.cancel": "Abbrechen", - "report.heading": "Neue Meldung", "report.placeholder": "Zusätzliche Kommentare", "report.submit": "Absenden", "report.target": "Melden", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index ccf2e6303..88f0f9c30 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -928,27 +928,6 @@ ], "path": "app/javascript/mastodon/features/public_timeline/index.json" }, - { - "descriptors": [ - { - "defaultMessage": "New report", - "id": "report.heading" - }, - { - "defaultMessage": "Additional comments", - "id": "report.placeholder" - }, - { - "defaultMessage": "Submit", - "id": "report.submit" - }, - { - "defaultMessage": "Reporting", - "id": "report.target" - } - ], - "path": "app/javascript/mastodon/features/report/index.json" - }, { "descriptors": [ { @@ -1008,6 +987,40 @@ ], "path": "app/javascript/mastodon/features/ui/components/boost_modal.json" }, + { + "descriptors": [ + { + "defaultMessage": "Network error", + "id": "bundle_column_error.title" + }, + { + "defaultMessage": "Something went wrong while loading this component.", + "id": "bundle_column_error.body" + }, + { + "defaultMessage": "Try again", + "id": "bundle_column_error.retry" + } + ], + "path": "app/javascript/mastodon/features/ui/components/bundle_column_error.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Something went wrong while loading this component.", + "id": "bundle_modal_error.message" + }, + { + "defaultMessage": "Try again", + "id": "bundle_modal_error.retry" + }, + { + "defaultMessage": "Close", + "id": "bundle_modal_error.close" + } + ], + "path": "app/javascript/mastodon/features/ui/components/bundle_modal_error.json" + }, { "descriptors": [ { diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 253db7110..778f33269 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -18,6 +18,12 @@ "account.unfollow": "Unfollow", "account.unmute": "Unmute @{name}", "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blocked users", "column.community": "Local timeline", "column.favourites": "Favourites", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Do not post to public timelines", "privacy.unlisted.short": "Unlisted", "reply_indicator.cancel": "Cancel", - "report.heading": "Report {target}", "report.placeholder": "Additional comments", "report.submit": "Submit", "report.target": "Reporting {target}", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 330fe831d..2648a6840 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -18,6 +18,12 @@ "account.unfollow": "Malsekvi", "account.unmute": "Unmute @{name}", "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blocked users", "column.community": "Loka tempolinio", "column.favourites": "Favourites", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Do not show in public timelines", "privacy.unlisted.short": "Unlisted", "reply_indicator.cancel": "Rezigni", - "report.heading": "New report", "report.placeholder": "Additional comments", "report.submit": "Submit", "report.target": "Reporting", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 6469aa6f2..c42930380 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -18,6 +18,12 @@ "account.unfollow": "Dejar de seguir", "account.unmute": "Unmute @{name}", "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Usuarios bloqueados", "column.community": "Historia local", "column.favourites": "Favoritos", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "No mostrar en la historia federada", "privacy.unlisted.short": "Sin federar", "reply_indicator.cancel": "Cancelar", - "report.heading": "New report", "report.placeholder": "Additional comments", "report.submit": "Submit", "report.target": "Reporting", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 3835caab1..c9f1888b5 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -18,6 +18,12 @@ "account.unfollow": "پایان پیگیری", "account.unmute": "باصدا کردن @{name}", "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "کاربران مسدودشده", "column.community": "نوشته‌های محلی", "column.favourites": "پسندیده‌ها", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "عمومی، ولی فهرست نکن", "privacy.unlisted.short": "فهرست‌نشده", "reply_indicator.cancel": "لغو", - "report.heading": "گزارش تازه", "report.placeholder": "توضیح اضافه", "report.submit": "بفرست", "report.target": "گزارش‌دادن", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index dae911799..b836d2f5d 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -18,6 +18,12 @@ "account.unfollow": "Lopeta seuraaminen", "account.unmute": "Unmute @{name}", "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blocked users", "column.community": "Paikallinen aikajana", "column.favourites": "Favourites", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Do not show in public timelines", "privacy.unlisted.short": "Unlisted", "reply_indicator.cancel": "Peruuta", - "report.heading": "New report", "report.placeholder": "Additional comments", "report.submit": "Submit", "report.target": "Reporting", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index cb7e1b5a7..eaa01638c 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -18,6 +18,12 @@ "account.unfollow": "Ne plus suivre", "account.unmute": "Ne plus masquer", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour pouvoir passer ceci, la prochaine fois", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Comptes bloqués", "column.community": "Fil public local", "column.favourites": "Favoris", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Ne pas afficher dans les fils publics", "privacy.unlisted.short": "Non-listé", "reply_indicator.cancel": "Annuler", - "report.heading": "Nouveau signalement", "report.placeholder": "Commentaires additionnels", "report.submit": "Envoyer", "report.target": "Signalement", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index db3d00394..98c7ea021 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -18,6 +18,12 @@ "account.unfollow": "הפסקת מעקב", "account.unmute": "הפסקת השתקת @{name}", "boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "חסימות", "column.community": "ציר זמן מקומי", "column.favourites": "חיבובים", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "לא יופיע בפידים הציבוריים המשותפים", "privacy.unlisted.short": "לא לפיד הכללי", "reply_indicator.cancel": "ביטול", - "report.heading": "דווח חדש", "report.placeholder": "הערות נוספות", "report.submit": "שליחה", "report.target": "דיווח", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index f85eb8a3f..fdf5c11c0 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -18,6 +18,12 @@ "account.unfollow": "Prestani slijediti", "account.unmute": "Poništi utišavanje @{name}", "boost_modal.combo": "Možeš pritisnuti {combo} kako bi ovo preskočio sljedeći put", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blokirani korisnici", "column.community": "Lokalni timeline", "column.favourites": "Favoriti", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Ne prikazuj u javnim timelineovima", "privacy.unlisted.short": "Unlisted", "reply_indicator.cancel": "Otkaži", - "report.heading": "Nova prijava", "report.placeholder": "Dodatni komentari", "report.submit": "Pošalji", "report.target": "Prijavljivanje", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 350410c4b..baf762c8d 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -18,6 +18,12 @@ "account.unfollow": "Követés abbahagyása", "account.unmute": "Unmute @{name}", "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blocked users", "column.community": "Local timeline", "column.favourites": "Favourites", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Do not show in public timelines", "privacy.unlisted.short": "Unlisted", "reply_indicator.cancel": "Mégsem", - "report.heading": "New report", "report.placeholder": "Additional comments", "report.submit": "Submit", "report.target": "Reporting", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 6e9bc5ba9..6f6d688e9 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -18,6 +18,12 @@ "account.unfollow": "Berhenti mengikuti", "account.unmute": "Berhenti membisukan @{name}", "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Pengguna diblokir", "column.community": "Linimasa Lokal", "column.favourites": "Favorit", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Tidak ditampilkan di linimasa publik", "privacy.unlisted.short": "Tak Terdaftar", "reply_indicator.cancel": "Batal", - "report.heading": "Laporan baru", "report.placeholder": "Komentar tambahan", "report.submit": "Kirim", "report.target": "Melaporkan", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 005dd4f56..25e0adc8a 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -18,6 +18,12 @@ "account.unfollow": "Ne plus sequar", "account.unmute": "Ne plus celar @{name}", "boost_modal.combo": "Tu povas presar sur {combo} por omisar co en la venonta foyo", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blokusita uzeri", "column.community": "Lokala tempolineo", "column.favourites": "Favorati", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Ne montrar en publika tempolinei", "privacy.unlisted.short": "Ne enlistigota", "reply_indicator.cancel": "Nihiligar", - "report.heading": "Nova denunco", "report.placeholder": "Plusa komenti", "report.submit": "Sendar", "report.target": "Denuncante", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 4a5b218e8..4881b0f08 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -18,6 +18,12 @@ "account.unfollow": "Non seguire", "account.unmute": "Non silenziare @{name}", "boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Utenti bloccati", "column.community": "Timeline locale", "column.favourites": "Apprezzati", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Non mostrare sulla timeline pubblica", "privacy.unlisted.short": "Non elencato", "reply_indicator.cancel": "Annulla", - "report.heading": "Nuova segnalazione", "report.placeholder": "Commenti aggiuntivi", "report.submit": "Invia", "report.target": "Invio la segnalazione", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index cb8074b5d..a133e6330 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -18,6 +18,12 @@ "account.unfollow": "フォロー解除", "account.unmute": "ミュート解除", "boost_modal.combo": "次からは{combo}を押せば、これをスキップできます。", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "ブロックしたユーザー", "column.community": "ローカルタイムライン", "column.favourites": "お気に入り", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "公開TLで表示しない", "privacy.unlisted.short": "未収載", "reply_indicator.cancel": "キャンセル", - "report.heading": "新規通報", "report.placeholder": "コメント", "report.submit": "通報する", "report.target": "問題のユーザー", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index e88d4a531..5e1aaac85 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -18,6 +18,12 @@ "account.unfollow": "팔로우 해제", "account.unmute": "뮤트 해제", "boost_modal.combo": "다음부터 {combo}를 누르면 이 과정을 건너뛸 수 있습니다.", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "차단 중인 사용자", "column.community": "로컬 타임라인", "column.favourites": "즐겨찾기", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "공개 타임라인에 표시하지 않음", "privacy.unlisted.short": "Unlisted", "reply_indicator.cancel": "취소", - "report.heading": "신고", "report.placeholder": "코멘트", "report.submit": "신고하기", "report.target": "문제가 된 사용자", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 05a9e3a12..479d157f3 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -18,6 +18,12 @@ "account.unfollow": "Ontvolgen", "account.unmute": "@{name} niet meer negeren", "boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Geblokkeerde gebruikers", "column.community": "Lokale tijdlijn", "column.favourites": "Favorieten", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Niet op openbare tijdlijnen tonen", "privacy.unlisted.short": "Minder openbaar", "reply_indicator.cancel": "Annuleren", - "report.heading": "Rapporteren", "report.placeholder": "Extra opmerkingen", "report.submit": "Verzenden", "report.target": "Rapporteren van", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index a3c956279..4bbf14938 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -18,6 +18,12 @@ "account.unfollow": "Avfølg", "account.unmute": "Avdemp @{name}", "boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blokkerte brukere", "column.community": "Lokal tidslinje", "column.favourites": "Likt", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Ikke vis i offentlige tidslinjer", "privacy.unlisted.short": "Uoppført", "reply_indicator.cancel": "Avbryt", - "report.heading": "Ny rapport", "report.placeholder": "Tilleggskommentarer", "report.submit": "Send inn", "report.target": "Rapporterer", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 5f226bc70..2c119ef41 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -18,6 +18,12 @@ "account.unfollow": "Quitar de sègre", "account.unmute": "Quitar de rescondre @{name}", "boost_modal.combo": "Podètz botar {combo} per passar aquò lo còp que ven", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Personas blocadas", "column.community": "Flux d’actualitat public local", "column.favourites": "Favorits", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Mostrar pas dins los fluxes publics", "privacy.unlisted.short": "Pas-listat", "reply_indicator.cancel": "Anullar", - "report.heading": "Senhalar {target}", "report.placeholder": "Comentaris addicionals", "report.submit": "Mandar", "report.target": "Senhalar {target}", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 2a69824ee..b547a1737 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -18,6 +18,12 @@ "account.unfollow": "Przestań obserwować", "account.unmute": "Cofnij wyciszenie @{name}", "boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Zablokowani użytkownicy", "column.community": "Lokalna oś czasu", "column.favourites": "Ulubione", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Niewidoczne na publicznych osiach czasu", "privacy.unlisted.short": "Niewidoczne", "reply_indicator.cancel": "Anuluj", - "report.heading": "Zgłoś {target}", "report.placeholder": "Dodatkowe komentarze", "report.submit": "Wyślij", "report.target": "Zgłaszanie {target}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 5e5834a0e..b199a39ce 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -18,6 +18,12 @@ "account.unfollow": "Deixar de seguir", "account.unmute": "Não silenciar @{name}", "boost_modal.combo": "Pode clicar {combo} para não voltar a ver", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Utilizadores Bloqueados", "column.community": "Local", "column.favourites": "Favoritos", @@ -72,7 +78,6 @@ "getting_started.faq": "FAQ", "getting_started.heading": "Primeiros passos", "getting_started.open_source_notice": "Mastodon é software de fonte aberta. Podes contribuir ou repostar problemas no GitHub do projecto: {github}.", - "getting_started.support": "{faq} • {userguide} • {apps}", "getting_started.userguide": "User Guide", "home.column_settings.advanced": "Avançado", "home.column_settings.basic": "Básico", @@ -107,7 +112,6 @@ "notifications.column_settings.reblog": "Partilhas:", "notifications.column_settings.show": "Mostrar nas colunas", "notifications.column_settings.sound": "Reproduzir som", - "notifications.settings": "Parâmetros da listagem de Notificações", "onboarding.done": "Done", "onboarding.next": "Next", "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", @@ -138,7 +142,6 @@ "privacy.unlisted.long": "Não publicar nos feeds públicos", "privacy.unlisted.short": "Não listar", "reply_indicator.cancel": "Cancelar", - "report.heading": "Nova denúncia", "report.placeholder": "Comentários adicionais", "report.submit": "Enviar", "report.target": "Denunciar", diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json index 4ebfe0c60..b199a39ce 100644 --- a/app/javascript/mastodon/locales/pt.json +++ b/app/javascript/mastodon/locales/pt.json @@ -18,6 +18,12 @@ "account.unfollow": "Deixar de seguir", "account.unmute": "Não silenciar @{name}", "boost_modal.combo": "Pode clicar {combo} para não voltar a ver", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Utilizadores Bloqueados", "column.community": "Local", "column.favourites": "Favoritos", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Não publicar nos feeds públicos", "privacy.unlisted.short": "Não listar", "reply_indicator.cancel": "Cancelar", - "report.heading": "Nova denúncia", "report.placeholder": "Comentários adicionais", "report.submit": "Enviar", "report.target": "Denunciar", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index f561f0151..f9f48a48d 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -18,6 +18,12 @@ "account.unfollow": "Отписаться", "account.unmute": "Снять глушение", "boost_modal.combo": "Нажмите {combo}, чтобы пропустить это в следующий раз", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Список блокировки", "column.community": "Локальная лента", "column.favourites": "Понравившееся", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Не показывать в лентах", "privacy.unlisted.short": "Скрытый", "reply_indicator.cancel": "Отмена", - "report.heading": "Новая жалоба", "report.placeholder": "Комментарий", "report.submit": "Отправить", "report.target": "Жалуемся на", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 608d911e9..8a39beacb 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -18,6 +18,12 @@ "account.unfollow": "Unfollow", "account.unmute": "Unmute @{name}", "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Blocked users", "column.community": "Local timeline", "column.favourites": "Favourites", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Do not post to public timelines", "privacy.unlisted.short": "Unlisted", "reply_indicator.cancel": "Cancel", - "report.heading": "New report", "report.placeholder": "Additional comments", "report.submit": "Submit", "report.target": "Reporting", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 7512971f5..203e4a09e 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -18,6 +18,12 @@ "account.unfollow": "Takipten vazgeç", "account.unmute": "Sesi aç @{name}", "boost_modal.combo": "Bir dahaki sefere {combo} tuşuna basabilirsiniz", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Engellenen kullanıcılar", "column.community": "Yerel zaman tüneli", "column.favourites": "Favoriler", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Herkese açık zaman tüneline gönderme", "privacy.unlisted.short": "Listelenmemiş", "reply_indicator.cancel": "İptal", - "report.heading": "Yeni rapor", "report.placeholder": "Ek yorumlar", "report.submit": "Gönder", "report.target": "Raporlama", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index a117c854b..c0f4a8dbb 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -18,6 +18,12 @@ "account.unfollow": "Відписатися", "account.unmute": "Зняти глушення", "boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "Заблоковані користувачі", "column.community": "Локальна стрічка", "column.favourites": "Вподобане", @@ -136,7 +142,6 @@ "privacy.unlisted.long": "Не показувати у публічних стрічках", "privacy.unlisted.short": "Прихований", "reply_indicator.cancel": "Відмінити", - "report.heading": "Нова скарга", "report.placeholder": "Додаткові коментарі", "report.submit": "Відправити", "report.target": "Скаржимося на", diff --git a/app/javascript/mastodon/locales/whitelist_zh-HK.json b/app/javascript/mastodon/locales/whitelist_zh-HK.json index d5fddc3bc..0d4f101c7 100644 --- a/app/javascript/mastodon/locales/whitelist_zh-HK.json +++ b/app/javascript/mastodon/locales/whitelist_zh-HK.json @@ -1,3 +1,2 @@ [ - "getting_started.support" ] diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 68648f2dd..998e1c8da 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -18,6 +18,12 @@ "account.unfollow": "取消关注", "account.unmute": "取消 @{name} 的静音", "boost_modal.combo": "如你想在下次路过时显示,请按{combo},", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "屏蔽用户", "column.community": "本站时间轴", "column.favourites": "赞过的嘟文", @@ -72,7 +78,6 @@ "getting_started.faq": "FAQ", "getting_started.heading": "开始使用", "getting_started.open_source_notice": "Mastodon 是一个开放源码的软件。你可以在官方 GitHub ({github}) 贡献或者回报问题。", - "getting_started.support": "{faq} • {userguide} • {apps}", "getting_started.userguide": "User Guide", "home.column_settings.advanced": "高端", "home.column_settings.basic": "基本", @@ -107,7 +112,6 @@ "notifications.column_settings.reblog": "你的嘟文被转嘟:", "notifications.column_settings.show": "在通知栏显示", "notifications.column_settings.sound": "播放音效", - "notifications.settings": "字段设置", "onboarding.done": "出发!", "onboarding.next": "下一步", "onboarding.page_five.public_timelines": "本站时间轴显示来自 {domain} 的所有人的公共嘟文。 跨站公共时间轴显示 {domain} 上的各位关注的来自所有Mastodon服务器实例上的人发表的公共嘟文。这些就是寻人好去处的公共时间轴啦。", @@ -138,7 +142,6 @@ "privacy.unlisted.long": "公开,但不在公共时间轴显示", "privacy.unlisted.short": "公开", "reply_indicator.cancel": "取消", - "report.heading": "举报", "report.placeholder": "额外消息", "report.submit": "提交", "report.target": "Reporting", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index a9844a625..1079d5429 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -18,6 +18,12 @@ "account.unfollow": "取消關注", "account.unmute": "取消 @{name} 的靜音", "boost_modal.combo": "如你想在下次路過這顯示,請按{combo},", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "封鎖用戶", "column.community": "本站時間軸", "column.favourites": "喜歡的文章", @@ -72,7 +78,6 @@ "getting_started.faq": "常見問題", "getting_started.heading": "開始使用", "getting_started.open_source_notice": "Mastodon(萬象)是一個開放源碼的軟件。你可以在官方 GitHub ({github}) 貢獻或者回報問題。", - "getting_started.support": "{faq} • {userguide} • {apps}", "getting_started.userguide": "使用指南", "home.column_settings.advanced": "進階", "home.column_settings.basic": "基本", @@ -107,7 +112,6 @@ "notifications.column_settings.reblog": "轉推你的文章:", "notifications.column_settings.show": "在通知欄顯示", "notifications.column_settings.sound": "播放音效", - "notifications.settings": "欄位設定", "onboarding.done": "開始使用", "onboarding.next": "繼續", "onboarding.page_five.public_timelines": "「本站時間軸」顯示在 {domain} 各用戶的公開文章。「跨站時間軸」顯示在 {domain} 各人關注的所有用戶(包括其他服務站)的公開文章。這些都是「公共時間軸」,是認識新朋友的好地方。", @@ -138,7 +142,6 @@ "privacy.unlisted.long": "公開,但不在公共時間軸顯示", "privacy.unlisted.short": "公開", "reply_indicator.cancel": "取消", - "report.heading": "舉報", "report.placeholder": "額外訊息", "report.submit": "提交", "report.target": "舉報", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 5497becf0..6240b8879 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -18,6 +18,12 @@ "account.unfollow": "取消關注", "account.unmute": "不再消音 @{name}", "boost_modal.combo": "下次你可以按 {combo} 來跳過", + "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.retry": "Try again", + "bundle_column_error.title": "Network error", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", "column.blocks": "封鎖的使用者", "column.community": "本地時間軸", "column.favourites": "最愛", @@ -72,7 +78,6 @@ "getting_started.faq": "FAQ", "getting_started.heading": "馬上開始", "getting_started.open_source_notice": "Mastodon 是開源軟體。你可以在 GitHub {github} 上做出貢獻或是回報問題。", - "getting_started.support": "{faq} • {userguide} • {apps}", "getting_started.userguide": "使用者指南", "home.column_settings.advanced": "進階", "home.column_settings.basic": "基本", @@ -107,7 +112,6 @@ "notifications.column_settings.reblog": "轉推:", "notifications.column_settings.show": "顯示在欄位中", "notifications.column_settings.sound": "播放音效", - "notifications.settings": "欄位設定", "onboarding.done": "完成", "onboarding.next": "下一步", "onboarding.page_five.public_timelines": "本地時間軸顯示 {domain} 上所有人的公開貼文。聯盟時間軸顯示 {domain} 上所有人關注的公開貼文。這就是公開時間軸,發現新朋友的好地方。", @@ -138,7 +142,6 @@ "privacy.unlisted.long": "不要貼到公開時間軸", "privacy.unlisted.short": "不列出來", "reply_indicator.cancel": "取消", - "report.heading": "新的通報", "report.placeholder": "更多訊息", "report.submit": "送出", "report.target": "通報中", diff --git a/config/webpack/translationRunner.js b/config/webpack/translationRunner.js index 097099b48..d616c7839 100644 --- a/config/webpack/translationRunner.js +++ b/config/webpack/translationRunner.js @@ -2,7 +2,7 @@ const fs = require('fs'); const path = require('path'); const { default: manageTranslations } = require('react-intl-translations-manager'); -const RFC5646_REGEXP = /^[a-z]{2,3}(?:|[A-Z]+)$/; +const RFC5646_REGEXP = /^[a-z]{2,3}(?:|-[A-Z]+)$/; const rootDirectory = path.resolve(__dirname, '..', '..'); const translationsDirectory = path.resolve(rootDirectory, 'app', 'javascript', 'mastodon', 'locales'); -- cgit From ca45bd0361fa1d182a505cf2eff1a69bc7712a39 Mon Sep 17 00:00:00 2001 From: のら Date: Mon, 10 Jul 2017 21:04:05 +0900 Subject: Add Japanese translation of terms and flash (#4137) --- app/controllers/admin/settings_controller.rb | 2 +- config/locales/ja.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'config') diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 7542f55e8..f27a1f4d4 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -24,7 +24,7 @@ module Admin setting.update(value: value_for_update(key, value)) end - flash[:notice] = 'Success!' + flash[:notice] = I18n.t('generic.changes_saved_msg') redirect_to edit_admin_settings_path end diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 347270af2..9cb2428f7 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -183,6 +183,9 @@ ja: site_description_extended: desc_html: インスタンスについてのページに表示されます。
HTMLタグが利用可能です。 title: サイトの詳細な説明 + site_terms: + desc_html: プライバシーポリシーのページに表示されます。
HTMLタグが利用可能です。 + title: サイトのプライバシーポリシー site_title: サイトのタイトル title: サイト設定 subscriptions: -- cgit From 31490e0d6ce5f967146da7f7bafa73a1ecb65fb9 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Mon, 10 Jul 2017 23:32:17 +0900 Subject: Add Japanese translations (#4140) * Add Japanese translations for #3879 * Add Japanese translations for #4033 * Add Japanese translations for #4136 --- app/javascript/mastodon/locales/ja.json | 12 ++++++------ config/locales/simple_form.ja.yml | 2 ++ 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'config') diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index a133e6330..f62072852 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -18,12 +18,12 @@ "account.unfollow": "フォロー解除", "account.unmute": "ミュート解除", "boost_modal.combo": "次からは{combo}を押せば、これをスキップできます。", - "bundle_column_error.body": "Something went wrong while loading this component.", - "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", - "bundle_modal_error.close": "Close", - "bundle_modal_error.message": "Something went wrong while loading this component.", - "bundle_modal_error.retry": "Try again", + "bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。", + "bundle_column_error.retry": "再試行", + "bundle_column_error.title": "ネットワークエラー", + "bundle_modal_error.close": "閉じる", + "bundle_modal_error.message": "コンポーネントの読み込み中に問題が発生しました。", + "bundle_modal_error.retry": "再試行", "column.blocks": "ブロックしたユーザー", "column.community": "ローカルタイムライン", "column.favourites": "お気に入り", diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index b9f11d7b3..9342398a8 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -34,7 +34,9 @@ ja: setting_auto_play_gif: アニメーションGIFを自動再生する setting_boost_modal: ブーストする前に確認ダイアログを表示する setting_default_privacy: 投稿の公開範囲 + setting_default_sensitive: メディアを常に閲覧注意としてマークする setting_delete_modal: トゥートを削除する前に確認ダイアログを表示する + setting_system_font_ui: システムのデフォルトフォントを使う severity: 重大性 type: インポートする項目 username: ユーザー名 -- cgit From d081d4a4226ba317a1b653aa6eef57543cbe4430 Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Mon, 10 Jul 2017 18:04:43 +0200 Subject: i18n: @2b9721d (pl) (#4143) --- config/locales/simple_form.pl.yml | 1 + 1 file changed, 1 insertion(+) (limited to 'config') diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 2a3756d4d..e4c4d7c8c 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -42,6 +42,7 @@ pl: setting_auto_play_gif: Automatycznie odtwarzaj animowane GIFy setting_boost_modal: Pytaj o potwierdzenie przed podbiciem setting_default_privacy: Widoczność posta + setting_default_sensitive: Zawsze oznaczaj zawartość multimedialną jako wrażliwą setting_delete_modal: Pytaj o potwierdzenie przed usunięciem postu setting_system_font_ui: Używaj domyślnej czcionki systemu severity: Priorytet -- cgit From 7a889a8e125a03e109b225cd83b0abcbdc76d95b Mon Sep 17 00:00:00 2001 From: STJrInuyasha Date: Mon, 10 Jul 2017 09:05:06 -0700 Subject: Remote following success page (#4129) * Added a success page to remote following Includes follow-through links to web (the old redirect target) and back to the remote user's profile * Use Account.new in spec instead of a fake with only id (fixes spec) * Fabricate(:account) over Account.new * Remove self from the success text (and all HTML with it) --- app/controllers/authorize_follows_controller.rb | 2 +- app/javascript/styles/forms.scss | 9 +++++++++ app/views/authorize_follows/success.html.haml | 16 ++++++++++++++++ config/locales/en.yml | 6 ++++++ spec/controllers/authorize_follows_controller_spec.rb | 4 ++-- 5 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 app/views/authorize_follows/success.html.haml (limited to 'config') diff --git a/app/controllers/authorize_follows_controller.rb b/app/controllers/authorize_follows_controller.rb index da4ef022a..dccd1c209 100644 --- a/app/controllers/authorize_follows_controller.rb +++ b/app/controllers/authorize_follows_controller.rb @@ -15,7 +15,7 @@ class AuthorizeFollowsController < ApplicationController if @account.nil? render :error else - redirect_to web_url("accounts/#{@account.id}") + render :success end rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError render :error diff --git a/app/javascript/styles/forms.scss b/app/javascript/styles/forms.scss index 7a181f36b..414dc4fe8 100644 --- a/app/javascript/styles/forms.scss +++ b/app/javascript/styles/forms.scss @@ -375,3 +375,12 @@ code { width: 50%; } } + +.post-follow-actions { + text-align: center; + color: $ui-primary-color; + + div { + margin-bottom: 4px; + } +} diff --git a/app/views/authorize_follows/success.html.haml b/app/views/authorize_follows/success.html.haml new file mode 100644 index 000000000..f0b495689 --- /dev/null +++ b/app/views/authorize_follows/success.html.haml @@ -0,0 +1,16 @@ +- content_for :page_title do + = t('authorize_follow.title', acct: @account.acct) + +.form-container + .follow-prompt + - if @account.locked? + %h2= t('authorize_follow.follow_request') + - else + %h2= t('authorize_follow.following') + + = render 'card', account: @account + + .post-follow-actions + %div= link_to t('authorize_follow.post_follow.web'), web_url("accounts/#{@account.id}"), class: 'button button--block' + %div= link_to t('authorize_follow.post_follow.return'), @account.url, class: 'button button--block' + %div= t('authorize_follow.post_follow.close') diff --git a/config/locales/en.yml b/config/locales/en.yml index 60e192491..8bb893d1c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -221,6 +221,12 @@ en: authorize_follow: error: Unfortunately, there was an error looking up the remote account follow: Follow + following: 'Success! You are now following:' + follow_request: 'You have sent a follow request to:' + post_follow: + web: Go to web + return: Return to the user's profile + close: Or, you can just close this window. prompt_html: 'You (%{self}) have requested to follow:' title: Follow %{acct} datetime: diff --git a/spec/controllers/authorize_follows_controller_spec.rb b/spec/controllers/authorize_follows_controller_spec.rb index b801aa661..26e46a23c 100644 --- a/spec/controllers/authorize_follows_controller_spec.rb +++ b/spec/controllers/authorize_follows_controller_spec.rb @@ -94,7 +94,7 @@ describe AuthorizeFollowsController do end it 'follows account when found' do - target_account = double(id: '123') + target_account = Fabricate(:account) result_account = double(target_account: target_account) service = double allow(FollowService).to receive(:new).and_return(service) @@ -103,7 +103,7 @@ describe AuthorizeFollowsController do post :create, params: { acct: 'acct:user@hostname' } expect(service).to have_received(:call).with(account, 'user@hostname') - expect(response).to redirect_to(web_url('accounts/123')) + expect(response).to render_template(:success) end end end -- cgit From a3d93e8bbede04ddbbab10168360a32aedc6bcf7 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 10 Jul 2017 18:46:46 +0200 Subject: Fix #4059 - Remove ModuleConcatenationPlugin (#4139) It increased memory usage of Webpack 1.5x fold with little benefits --- config/webpack/production.js | 1 - 1 file changed, 1 deletion(-) (limited to 'config') diff --git a/config/webpack/production.js b/config/webpack/production.js index 0d2c9acfb..303fca81b 100644 --- a/config/webpack/production.js +++ b/config/webpack/production.js @@ -12,7 +12,6 @@ module.exports = merge(sharedConfig, { stats: 'normal', plugins: [ - new webpack.optimize.ModuleConcatenationPlugin(), new webpack.optimize.UglifyJsPlugin({ sourceMap: true, mangle: true, -- cgit From 958fe0f7db6702d65791def89fceef77d6f43589 Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Mon, 10 Jul 2017 19:42:37 +0200 Subject: i18n: @7a889a8 (pl) (#4144) * i18n: @7a889a8 (pl) * Update pl.yml --- config/locales/pl.yml | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'config') diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 0dc1da8b4..321b1590e 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -221,6 +221,12 @@ pl: authorize_follow: error: Niestety, podczas sprawdzania zdalnego konta wystąpił błąd follow: Śledź + following: 'Pomyślnie! Od teraz śledzisz:' + follow_request: 'Wysłano prośbę o pozwolenie na obserwację:' + post_follow: + web: Przejdź do sieci + return: Powróć do strony użytkownika + close: Ewentualnie, możesz po prostu zamknąć tą stronę. prompt_html: 'Ty (%{self}) chcesz śledzić:' title: Śledź %{acct} datetime: -- cgit From e19eefe219c46ea9f763d0279029f03c5cf4554f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 11 Jul 2017 15:27:59 +0200 Subject: Redesign the landing page, mount public timeline on it (#4122) * Redesign the landing page, mount public timeline on it * Adjust the standalone mounted component to the lacking of router * Adjust auth layout pages to new design * Fix tests * Standalone public timeline polling every 5 seconds * Remove now obsolete translations * Add responsive design for new landing page * Address reviews * Add floating clouds behind frontpage form * Use access token from public page when available * Fix mentions and hashtags links, cursor on status content in standalone mode * Add footer link to source code * Fix errors on pages that don't embed the component, use classnames * Fix tests * Change anonymous autoPlayGif default to false * When gif autoplay is disabled, hover to play * Add option to hide the timeline preview * Slightly improve alt layout * Add elephant friend to new frontpage * Display "back to mastodon" in place of "login" when logged in on frontpage * Change polling time to 3s --- app/controllers/about_controller.rb | 13 +- app/controllers/admin/settings_controller.rb | 9 +- app/controllers/home_controller.rb | 16 +- .../fonts/montserrat/Montserrat-Medium.ttf | Bin 0 -> 192488 bytes app/javascript/images/cloud2.png | Bin 0 -> 4973 bytes app/javascript/images/cloud3.png | Bin 0 -> 5860 bytes app/javascript/images/cloud4.png | Bin 0 -> 5273 bytes app/javascript/images/elephant-fren.png | Bin 0 -> 40859 bytes app/javascript/images/logo.svg | 2 +- .../mastodon/components/dropdown_menu.js | 19 +- .../mastodon/components/media_gallery.js | 38 +- app/javascript/mastodon/components/permalink.js | 4 +- app/javascript/mastodon/components/status.js | 8 +- .../mastodon/components/status_action_bar.js | 11 +- .../mastodon/components/status_content.js | 17 +- app/javascript/mastodon/components/video_player.js | 22 +- .../mastodon/containers/timeline_container.js | 39 ++ .../features/standalone/public_timeline/index.js | 76 ++++ app/javascript/packs/public.js | 10 + app/javascript/styles/about.scss | 448 ++++++++++++++++++--- app/javascript/styles/basics.scss | 7 +- app/javascript/styles/boost.scss | 4 + app/javascript/styles/components.scss | 32 +- app/javascript/styles/containers.scss | 48 +-- app/javascript/styles/fonts/montserrat.scss | 8 + app/javascript/styles/forms.scss | 39 +- app/presenters/instance_presenter.rb | 1 + app/serializers/initial_state_serializer.rb | 35 +- app/views/about/_features.html.haml | 25 ++ app/views/about/_registration.html.haml | 20 +- app/views/about/show.html.haml | 120 +++--- app/views/admin/settings/edit.html.haml | 43 +- app/views/auth/registrations/new.html.haml | 6 +- app/views/layouts/auth.html.haml | 3 +- config/locales/ar.yml | 13 +- config/locales/bg.yml | 13 +- config/locales/ca.yml | 17 +- config/locales/de.yml | 13 - config/locales/en.yml | 43 +- config/locales/eo.yml | 23 +- config/locales/es.yml | 13 +- config/locales/fa.yml | 13 - config/locales/fi.yml | 13 +- config/locales/fr.yml | 15 +- config/locales/he.yml | 13 - config/locales/hr.yml | 13 +- config/locales/id.yml | 13 - config/locales/io.yml | 13 - config/locales/it.yml | 13 +- config/locales/ja.yml | 15 +- config/locales/ko.yml | 19 +- config/locales/nl.yml | 21 +- config/locales/no.yml | 13 - config/locales/oc.yml | 17 +- config/locales/pl.yml | 19 +- config/locales/pt-BR.yml | 13 - config/locales/pt.yml | 13 - config/locales/ru.yml | 13 - config/locales/th.yml | 13 - config/locales/tr.yml | 13 - config/locales/uk.yml | 13 - config/locales/zh-CN.yml | 13 - config/locales/zh-HK.yml | 13 - config/locales/zh-TW.yml | 13 - config/settings.yml | 1 + lib/tasks/mastodon.rake | 8 +- spec/requests/localization_spec.rb | 8 +- spec/views/about/show.html.haml_spec.rb | 9 +- 68 files changed, 956 insertions(+), 655 deletions(-) create mode 100644 app/javascript/fonts/montserrat/Montserrat-Medium.ttf create mode 100644 app/javascript/images/cloud2.png create mode 100644 app/javascript/images/cloud3.png create mode 100644 app/javascript/images/cloud4.png create mode 100644 app/javascript/images/elephant-fren.png create mode 100644 app/javascript/mastodon/containers/timeline_container.js create mode 100644 app/javascript/mastodon/features/standalone/public_timeline/index.js create mode 100644 app/views/about/_features.html.haml (limited to 'config') diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb index c0addbecc..47690e81e 100644 --- a/app/controllers/about_controller.rb +++ b/app/controllers/about_controller.rb @@ -4,7 +4,10 @@ class AboutController < ApplicationController before_action :set_body_classes before_action :set_instance_presenter, only: [:show, :more, :terms] - def show; end + def show + serializable_resource = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(initial_state_params), serializer: InitialStateSerializer) + @initial_state_json = serializable_resource.to_json + end def more; end @@ -15,6 +18,7 @@ class AboutController < ApplicationController def new_user User.new.tap(&:build_account) end + helper_method :new_user def set_instance_presenter @@ -24,4 +28,11 @@ class AboutController < ApplicationController def set_body_classes @body_classes = 'about-body' end + + def initial_state_params + { + settings: {}, + token: current_session&.token, + } + end end diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index f27a1f4d4..29b590d7a 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -11,8 +11,15 @@ module Admin site_terms open_registrations closed_registrations_message + open_deletion + timeline_preview + ).freeze + + BOOLEAN_SETTINGS = %w( + open_registrations + open_deletion + timeline_preview ).freeze - BOOLEAN_SETTINGS = %w(open_registrations).freeze def edit @settings = Setting.all_as_records diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 218da6906..8a8b9ec76 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -15,12 +15,16 @@ class HomeController < ApplicationController end def set_initial_state_json - state = InitialStatePresenter.new(settings: Web::Setting.find_by(user: current_user)&.data || {}, - current_account: current_account, - token: current_session.token, - admin: Account.find_local(Setting.site_contact_username)) - - serializable_resource = ActiveModelSerializers::SerializableResource.new(state, serializer: InitialStateSerializer) + serializable_resource = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(initial_state_params), serializer: InitialStateSerializer) @initial_state_json = serializable_resource.to_json end + + def initial_state_params + { + settings: Web::Setting.find_by(user: current_user)&.data || {}, + current_account: current_account, + token: current_session.token, + admin: Account.find_local(Setting.site_contact_username), + } + end end diff --git a/app/javascript/fonts/montserrat/Montserrat-Medium.ttf b/app/javascript/fonts/montserrat/Montserrat-Medium.ttf new file mode 100644 index 000000000..88d70b89c Binary files /dev/null and b/app/javascript/fonts/montserrat/Montserrat-Medium.ttf differ diff --git a/app/javascript/images/cloud2.png b/app/javascript/images/cloud2.png new file mode 100644 index 000000000..f325ca6de Binary files /dev/null and b/app/javascript/images/cloud2.png differ diff --git a/app/javascript/images/cloud3.png b/app/javascript/images/cloud3.png new file mode 100644 index 000000000..ab194d0b8 Binary files /dev/null and b/app/javascript/images/cloud3.png differ diff --git a/app/javascript/images/cloud4.png b/app/javascript/images/cloud4.png new file mode 100644 index 000000000..98323f5a2 Binary files /dev/null and b/app/javascript/images/cloud4.png differ diff --git a/app/javascript/images/elephant-fren.png b/app/javascript/images/elephant-fren.png new file mode 100644 index 000000000..3b64edf08 Binary files /dev/null and b/app/javascript/images/elephant-fren.png differ diff --git a/app/javascript/images/logo.svg b/app/javascript/images/logo.svg index c233db842..16cb3a944 100644 --- a/app/javascript/images/logo.svg +++ b/app/javascript/images/logo.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.js index 12e1b44fa..98323b069 100644 --- a/app/javascript/mastodon/components/dropdown_menu.js +++ b/app/javascript/mastodon/components/dropdown_menu.js @@ -14,6 +14,7 @@ export default class DropdownMenu extends React.PureComponent { size: PropTypes.number.isRequired, direction: PropTypes.string, ariaLabel: PropTypes.string, + disabled: PropTypes.bool, }; static defaultProps = { @@ -68,9 +69,19 @@ export default class DropdownMenu extends React.PureComponent { } render () { - const { icon, items, size, direction, ariaLabel } = this.props; - const { expanded } = this.state; + const { icon, items, size, direction, ariaLabel, disabled } = this.props; + const { expanded } = this.state; const directionClass = (direction === 'left') ? 'dropdown__left' : 'dropdown__right'; + const iconStyle = { fontSize: `${size}px`, width: `${size}px`, lineHeight: `${size}px` }; + const iconClassname = `fa fa-fw fa-${icon} dropdown__icon`; + + if (disabled) { + return ( +
+ +
+ ); + } const dropdownItems = expanded && (