From e9980a9b8b4d15d9e64890147a6a66a57a5faede Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 20:57:28 +0100 Subject: [PATCH 01/17] Create fr.yml --- config/locales/fr.yml | 59 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 config/locales/fr.yml diff --git a/config/locales/fr.yml b/config/locales/fr.yml new file mode 100644 index 00000000000..426f3928a18 --- /dev/null +++ b/config/locales/fr.yml @@ -0,0 +1,59 @@ +--- +en: + about: + about_instance: "%{instance} is a Mastodon instance." + about_mastodon: Mastodon is a free, open-source social network server. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Anyone can run Mastodon and participate in the social network seamlessly. + get_started: Get started + source_code: Source code + terms: Terms + accounts: + follow: Follow + followers: Followers + following: Following + nothing_here: There is nothing here! + people_followed_by: People whom %{name} follows + people_who_follow: People who follow %{name} + posts: Posts + unfollow: Unfollow + application_mailer: + signature: Mastodon notifications from %{instance} + auth: + change_password: Change password + didnt_get_confirmation: Didn't receive confirmation instructions? + forgot_password: Forgot your password? + login: Log in + register: Sign up + resend_confirmation: Resend confirmation instructions + reset_password: Reset password + set_new_password: Set new password + generic: + changes_saved_msg: Changes successfully saved! + powered_by: powered by %{link} + save_changes: Save changes + validation_errors: + one: Something isn't quite right yet! Please review the error below + other: Something isn't quite right yet! Please review %{count} errors below + notification_mailer: + favourite: + body: 'Your status was favourited by %{name}:' + subject: "%{name} favourited your status" + follow: + body: "%{name} is now following you!" + subject: "%{name} is now following you" + mention: + body: 'You were mentioned by %{name} in:' + subject: You were mentioned by %{name} + reblog: + body: 'Your status was reblogged by %{name}:' + subject: "%{name} reblogged your status" + pagination: + next: Next + prev: Prev + settings: + edit_profile: Edit profile + preferences: Preferences + stream_entries: + favourited: favourited a post by + is_now_following: is now following + will_paginate: + page_gap: "…" From 8504110d455883a88a398a022793c35459db679d Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 20:58:43 +0100 Subject: [PATCH 02/17] Create simple_form.fr.yml --- config/locales/simple_form.fr.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 config/locales/simple_form.fr.yml diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml new file mode 100644 index 00000000000..b8a69a0751e --- /dev/null +++ b/config/locales/simple_form.fr.yml @@ -0,0 +1,27 @@ +--- +en: + simple_form: + labels: + defaults: + avatar: Avatar + confirm_new_password: Confirm new password + confirm_password: Confirm password + current_password: Current password + display_name: Display name + email: E-mail address + header: Header + locale: Language + new_password: New password + note: Bio + password: Password + username: Username + notification_emails: + favourite: Send e-mail when someone favourites your status + follow: Send e-mail when someone follows you + mention: Send e-mail when someone mentions you + reblog: Send e-mail when someone reblogs your status + 'no': 'No' + required: + mark: "*" + text: required + 'yes': 'Yes' From 753115ff577ef167905948e1b916eecbb1380268 Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 20:59:13 +0100 Subject: [PATCH 03/17] Create doorkeeper.fr.yml --- config/locales/doorkeeper.fr.yml | 112 +++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 config/locales/doorkeeper.fr.yml diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml new file mode 100644 index 00000000000..aaf5df6fcf7 --- /dev/null +++ b/config/locales/doorkeeper.fr.yml @@ -0,0 +1,112 @@ +--- +en: + activerecord: + attributes: + doorkeeper/application: + name: Name + redirect_uri: Redirect URI + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: cannot contain a fragment. + invalid_uri: must be a valid URI. + relative_uri: must be an absolute URI. + secured_uri: must be an HTTPS/SSL URI. + doorkeeper: + applications: + buttons: + authorize: Authorize + cancel: Cancel + destroy: Destroy + edit: Edit + submit: Submit + confirmations: + destroy: Are you sure? + edit: + title: Edit application + form: + error: Whoops! Check your form for possible errors + help: + native_redirect_uri: Use %{native_redirect_uri} for local tests + redirect_uri: Use one line per URI + scopes: Separate scopes with spaces. Leave blank to use the default scopes. + index: + callback_url: Callback URL + name: Name + new: New Application + title: Your applications + new: + title: New Application + show: + actions: Actions + application_id: Application Id + callback_urls: Callback urls + scopes: Scopes + secret: Secret + title: 'Application: %{name}' + authorizations: + buttons: + authorize: Authorize + deny: Deny + error: + title: An error has occurred + new: + able_to: It will be able to + prompt: Application %{client_name} requests access to your account + title: Authorization required + show: + title: Authorization code + authorized_applications: + buttons: + revoke: Revoke + confirmations: + revoke: Are you sure? + index: + application: Application + created_at: Created At + date_format: "%Y-%m-%d %H:%M:%S" + title: Your authorized applications + errors: + messages: + access_denied: The resource owner or authorization server denied the request. + credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured. + invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method. + invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. + invalid_redirect_uri: The redirect uri included is not valid. + invalid_request: The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed. + invalid_resource_owner: The provided resource owner credentials are not valid, or resource owner cannot be found + invalid_scope: The requested scope is invalid, unknown, or malformed. + invalid_token: + expired: The access token expired + revoked: The access token was revoked + unknown: The access token is invalid + resource_owner_authenticator_not_configured: Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged. + server_error: The authorization server encountered an unexpected condition which prevented it from fulfilling the request. + temporarily_unavailable: The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server. + unauthorized_client: The client is not authorized to perform this request using this method. + unsupported_grant_type: The authorization grant type is not supported by the authorization server. + unsupported_response_type: The authorization server does not support this response type. + flash: + applications: + create: + notice: Application created. + destroy: + notice: Application deleted. + update: + notice: Application updated. + authorized_applications: + destroy: + notice: Application revoked. + layouts: + admin: + nav: + applications: Applications + oauth2_provider: OAuth2 Provider + application: + title: OAuth authorization required + scopes: + follow: follow, block, unblock and unfollow accounts + read: read your account's data + write: post on your behalf From 05823c325cd3a42712d5197386d0b810c7fad7f9 Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 20:59:41 +0100 Subject: [PATCH 04/17] Create devise.fr.yml --- config/locales/devise.fr.yml | 61 ++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 config/locales/devise.fr.yml diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml new file mode 100644 index 00000000000..32ac92cf9b9 --- /dev/null +++ b/config/locales/devise.fr.yml @@ -0,0 +1,61 @@ +--- +en: + devise: + confirmations: + confirmed: Your email address has been successfully confirmed. + send_instructions: You will receive an email with instructions for how to confirm your email address in a few minutes. + send_paranoid_instructions: If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes. + failure: + already_authenticated: You are already signed in. + inactive: Your account is not activated yet. + invalid: Invalid %{authentication_keys} or password. + last_attempt: You have one more attempt before your account is locked. + locked: Your account is locked. + not_found_in_database: Invalid %{authentication_keys} or password. + timeout: Your session expired. Please sign in again to continue. + unauthenticated: You need to sign in or sign up before continuing. + unconfirmed: You have to confirm your email address before continuing. + mailer: + confirmation_instructions: + subject: 'Mastodon: Confirmation instructions' + password_change: + subject: 'Mastodon: Password changed' + reset_password_instructions: + subject: 'Mastodon: Reset password instructions' + unlock_instructions: + subject: 'Mastodon: Unlock instructions' + omniauth_callbacks: + failure: Could not authenticate you from %{kind} because "%{reason}". + success: Successfully authenticated from %{kind} account. + passwords: + no_token: You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided. + send_instructions: You will receive an email with instructions on how to reset your password in a few minutes. + send_paranoid_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. + updated: Your password has been changed successfully. You are now signed in. + updated_not_active: Your password has been changed successfully. + registrations: + destroyed: Bye! Your account has been successfully cancelled. We hope to see you again soon. + signed_up: Welcome! You have signed up successfully. + signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated. + signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked. + signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account. + update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address. + updated: Your account has been updated successfully. + sessions: + already_signed_out: Signed out successfully. + signed_in: Signed in successfully. + signed_out: Signed out successfully. + unlocks: + send_instructions: You will receive an email with instructions for how to unlock your account in a few minutes. + send_paranoid_instructions: If your account exists, you will receive an email with instructions for how to unlock it in a few minutes. + unlocked: Your account has been unlocked successfully. Please sign in to continue. + errors: + messages: + already_confirmed: was already confirmed, please try signing in + confirmation_period_expired: needs to be confirmed within %{period}, please request a new one + expired: has expired, please request a new one + not_found: not found + not_locked: was not locked + not_saved: + one: '1 error prohibited this %{resource} from being saved:' + other: "%{count} errors prohibited this %{resource} from being saved:" From fc87243c392a6ec88cdd2f45915447c0efc74bf1 Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 21:25:27 +0100 Subject: [PATCH 05/17] First version for fr.yml --- config/locales/fr.yml | 84 +++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 426f3928a18..bd7f741d60d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1,59 +1,59 @@ --- -en: +fr: about: - about_instance: "%{instance} is a Mastodon instance." - about_mastodon: Mastodon is a free, open-source social network server. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Anyone can run Mastodon and participate in the social network seamlessly. - get_started: Get started - source_code: Source code - terms: Terms + about_instance: "%{instance} est une instance de Mastodon." + about_mastodon: "Mastodon est un serveur libre de réseautage social. Alternative décentralisée aux plateformes commerciales, la monopolisation de vos communications par une entreprise unique est évitée. Tout un chacun peut faire tourner Mastodon et participer au réseau social de manière transparente." + get_started: "Rejoindre le réseau" + source_code: "Code source" + terms: "Conditions d’utilisation" accounts: - follow: Follow - followers: Followers - following: Following - nothing_here: There is nothing here! - people_followed_by: People whom %{name} follows - people_who_follow: People who follow %{name} - posts: Posts - unfollow: Unfollow + follow: "S’abonner" + followers: "Abonnés" + following: "Abonnements" + nothing_here: "Rien à voir ici !" + people_followed_by: "Personnes suivies par %{name}" + people_who_follow: "Personnes qui suivent %{name}" + posts: "Statuts" + unfollow: "Se désabonner" application_mailer: - signature: Mastodon notifications from %{instance} + signature: "Notifications de Mastodon depuis %{instance}" auth: - change_password: Change password - didnt_get_confirmation: Didn't receive confirmation instructions? - forgot_password: Forgot your password? - login: Log in - register: Sign up - resend_confirmation: Resend confirmation instructions - reset_password: Reset password - set_new_password: Set new password + change_password: "Changer de mot de passe" + didnt_get_confirmation: "Vous n’avez pas reçu les consignes de confirmation ?" + forgot_password: "Mode passe oublié ?" + login: "Se connecter" + register: "S’inscrire" + resend_confirmation: "Envoyer à nouveau les consignes de confirmation" + reset_password: "Réinitialiser le mot de passe" + set_new_password: "Établir le nouveau mot de passe" generic: - changes_saved_msg: Changes successfully saved! - powered_by: powered by %{link} - save_changes: Save changes + changes_saved_msg: "Les modifications sont enregistrées avec succès !" + powered_by: "propulsée par %{link}" + save_changes: "Enregistrer les modifications" validation_errors: - one: Something isn't quite right yet! Please review the error below - other: Something isn't quite right yet! Please review %{count} errors below + one: "Il y a quelque chose qui ne va pas ! Vérifiez l’erreur ci-dessous" + other: "Il y a quelques choses qui ne vont pas ! Vérifiez les erreurs ci-dessous" notification_mailer: favourite: - body: 'Your status was favourited by %{name}:' - subject: "%{name} favourited your status" + body: "%{name} a ajouté votre statut à ses favoris :" + subject: "%{name} a ajouté votre statut à ses favoris" follow: - body: "%{name} is now following you!" - subject: "%{name} is now following you" + body: "%{name} s’est abonné⋅e à vos statuts !" + subject: "%{name} s’est abonné⋅e à vos statuts" mention: - body: 'You were mentioned by %{name} in:' - subject: You were mentioned by %{name} + body: "%{name} vous a mentionné⋅e dans :" + subject: "%{name} vous a mentionné⋅e" reblog: - body: 'Your status was reblogged by %{name}:' - subject: "%{name} reblogged your status" + body: "%{name} a partagé votre statut :" + subject: "%{name} a partagé votre statut" pagination: - next: Next - prev: Prev + next: "Suivant" + prev: "Précédent" settings: - edit_profile: Edit profile - preferences: Preferences + edit_profile: "Modifier le profil" + preferences: "Préférences" stream_entries: - favourited: favourited a post by - is_now_following: is now following + favourited: "a ajouté à ses favoris un statut de" + is_now_following: "s’est abonné⋅e à" will_paginate: page_gap: "…" From a3afea7b9d0f2b2d78f4b244def663342daf6982 Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 21:30:13 +0100 Subject: [PATCH 06/17] First version for simple_form.fr.yml --- config/locales/simple_form.fr.yml | 40 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index b8a69a0751e..11fdaa76ebc 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -1,27 +1,27 @@ --- -en: +fr: simple_form: labels: defaults: - avatar: Avatar - confirm_new_password: Confirm new password - confirm_password: Confirm password - current_password: Current password - display_name: Display name - email: E-mail address - header: Header - locale: Language - new_password: New password - note: Bio - password: Password - username: Username + avatar: "Image de profil" + confirm_new_password: "Confirmez le nouveau mot de passe" + confirm_password: "Confirmez le mot de passe" + current_password: "Mot de passe actuel" + display_name: "Nom public" + email: "Adresse courriel" + header: "Image d’en-tête" + locale: "Langue" + new_password: "Nouveau mot de passe" + note: "Présentation" + password: "Mot de passe" + username: "Nom d’utilisateur" notification_emails: - favourite: Send e-mail when someone favourites your status - follow: Send e-mail when someone follows you - mention: Send e-mail when someone mentions you - reblog: Send e-mail when someone reblogs your status - 'no': 'No' + favourite: "M’envoyer un courriel lorsque quelqu’un ajoute un de mes statuts à ses favoris" + follow: "M’envoyer un courriel lorsque quelqu’un s’abonne à mes statuts" + mention: "M’envoyer un courriel lorsque quelqu’un me mentionne" + reblog: "M’envoyer un courriel lorsque quelqu’un partage un de mes statuts" + 'no': "Non" required: mark: "*" - text: required - 'yes': 'Yes' + text: "Champs requis" + 'yes': "Oui" From 6b6243a186385689a9aa6d9290045da7f53bc87c Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 21:51:34 +0100 Subject: [PATCH 07/17] Create fr.jsx --- .../javascripts/components/locales/fr.jsx | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 app/assets/javascripts/components/locales/fr.jsx diff --git a/app/assets/javascripts/components/locales/fr.jsx b/app/assets/javascripts/components/locales/fr.jsx new file mode 100644 index 00000000000..3815dd44f94 --- /dev/null +++ b/app/assets/javascripts/components/locales/fr.jsx @@ -0,0 +1,55 @@ +const fr = { + "column_back_button.label": "Back", + "lightbox.close": "Close", + "loading_indicator.label": "Loading...", + "status.mention": "Mention", + "status.delete": "Delete", + "status.reply": "Reply", + "status.reblog": "Reblog", + "status.favourite": "Favourite", + "status.reblogged_by": "{name} reblogged", + "video_player.toggle_sound": "Toggle sound", + "account.mention": "Mention", + "account.edit_profile": "Edit profile", + "account.unblock": "Unblock", + "account.unfollow": "Unfollow", + "account.block": "Block", + "account.follow": "Follow", + "account.block": "Block", + "account.posts": "Posts", + "account.follows": "Follows", + "account.followers": "Followers", + "account.follows_you": "Follows you", + "getting_started.heading": "Getting started", + "getting_started.about_addressing": "You can follow people if you know their username and the domain they are on by entering an e-mail-esque address into the form at the top of the sidebar.", + "getting_started.about_shortcuts": "If the target user is on the same domain as you, just the username will work. The same rule applies to mentioning people in statuses.", + "getting_started.about_developer": "The developer of this project can be followed as Gargron@mastodon.social", + "column.home": "Home", + "column.mentions": "Mentions", + "column.public": "Public", + "column.notifications": "Notifications", + "tabs_bar.compose": "Compose", + "tabs_bar.home": "Home", + "tabs_bar.mentions": "Mentions", + "tabs_bar.public": "Public", + "tabs_bar.notifications": "Notifications", + "compose_form.placeholder": "What is on your mind?", + "compose_form.publish": "Publish", + "navigation_bar.settings": "Settings", + "navigation_bar.public_timeline": "Public timeline", + "navigation_bar.logout": "Logout", + "reply_indicator.cancel": "Cancel", + "search.placeholder": "Search", + "search.account": "Account", + "search.hashtag": "Hashtag", + "suggestions_box.who_to_follow": "Who to follow", + "suggestions_box.refresh": "Refresh", + "upload_button.label": "Add media", + "upload_form.undo": "Undo", + "notification.follow": "{name} followed you", + "notification.favourite": "{name} favourited your status", + "notification.reblog": "{name} reblogged your status", + "notification.mention": "{name} mentioned you" +}; + +export default fr; From 835d5483feeeadc0b6c3ecaa55cb00a18ef26cd7 Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 22:06:05 +0100 Subject: [PATCH 08/17] First version for fr.jsx --- .../javascripts/components/locales/fr.jsx | 89 +++++++++---------- 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/app/assets/javascripts/components/locales/fr.jsx b/app/assets/javascripts/components/locales/fr.jsx index 3815dd44f94..6da4d6f8cf9 100644 --- a/app/assets/javascripts/components/locales/fr.jsx +++ b/app/assets/javascripts/components/locales/fr.jsx @@ -1,55 +1,54 @@ const fr = { - "column_back_button.label": "Back", - "lightbox.close": "Close", - "loading_indicator.label": "Loading...", - "status.mention": "Mention", - "status.delete": "Delete", - "status.reply": "Reply", - "status.reblog": "Reblog", - "status.favourite": "Favourite", - "status.reblogged_by": "{name} reblogged", - "video_player.toggle_sound": "Toggle sound", - "account.mention": "Mention", - "account.edit_profile": "Edit profile", - "account.unblock": "Unblock", - "account.unfollow": "Unfollow", - "account.block": "Block", - "account.follow": "Follow", - "account.block": "Block", - "account.posts": "Posts", - "account.follows": "Follows", - "account.followers": "Followers", - "account.follows_you": "Follows you", - "getting_started.heading": "Getting started", - "getting_started.about_addressing": "You can follow people if you know their username and the domain they are on by entering an e-mail-esque address into the form at the top of the sidebar.", - "getting_started.about_shortcuts": "If the target user is on the same domain as you, just the username will work. The same rule applies to mentioning people in statuses.", - "getting_started.about_developer": "The developer of this project can be followed as Gargron@mastodon.social", - "column.home": "Home", + "column_back_button.label": "Retour", + "lightbox.close": "Fermer", + "loading_indicator.label": "Chargement…", + "status.mention": "Mentionner", + "status.delete": "Effacer", + "status.reply": "Répondre", + "status.reblog": "Partager", + "status.favourite": "Ajouter aux favoris", + "status.reblogged_by": "{name} a partagé", + "video_player.toggle_sound": "Mettre/Couper le son", + "account.mention": "Mentionner", + "account.edit_profile": "Modifier le profil", + "account.unblock": "Débloquer", + "account.unfollow": "Se désabonner", + "account.block": "Bloquer", + "account.follow": "S’abonner", + "account.posts": "Statuts", + "account.follows": "Abonnements", + "account.followers": "Abonnés", + "account.follows_you": "Vous suit", + "getting_started.heading": "Pour commencer", + "getting_started.about_addressing": "Vous pouvez vous abonner aux statuts de quelqu’un en entrant dans le champs en haut de la colonne de gauche leur nom d’utilisateur et le nom de domaine de leur instance, séparés par un @ à la manière d’une adresse courriel.", + "getting_started.about_shortcuts": "Si cette personne utilise la même instance que vous, le nom d’utilisateur suffit. C’est le même principe pour mentionner quelqu’un dans vos statuts.", + "getting_started.about_developer": "Pour s’abonner au développeur de ce projet, c’est Gargron@mastodon.social", + "column.home": "Accueil", "column.mentions": "Mentions", "column.public": "Public", "column.notifications": "Notifications", - "tabs_bar.compose": "Compose", - "tabs_bar.home": "Home", + "tabs_bar.compose": "Composer", + "tabs_bar.home": "Accueil", "tabs_bar.mentions": "Mentions", "tabs_bar.public": "Public", "tabs_bar.notifications": "Notifications", - "compose_form.placeholder": "What is on your mind?", - "compose_form.publish": "Publish", - "navigation_bar.settings": "Settings", - "navigation_bar.public_timeline": "Public timeline", - "navigation_bar.logout": "Logout", - "reply_indicator.cancel": "Cancel", - "search.placeholder": "Search", - "search.account": "Account", - "search.hashtag": "Hashtag", - "suggestions_box.who_to_follow": "Who to follow", - "suggestions_box.refresh": "Refresh", - "upload_button.label": "Add media", - "upload_form.undo": "Undo", - "notification.follow": "{name} followed you", - "notification.favourite": "{name} favourited your status", - "notification.reblog": "{name} reblogged your status", - "notification.mention": "{name} mentioned you" + "compose_form.placeholder": "Qu’avez vous en tête ?", + "compose_form.publish": "Publier", + "navigation_bar.settings": "Paramètres", + "navigation_bar.public_timeline": "Fil public", + "navigation_bar.logout": "Se déconnecter", + "reply_indicator.cancel": "Annuler", + "search.placeholder": "Chercher", + "search.account": "Compte", + "search.hashtag": "Mot-clé", + "suggestions_box.who_to_follow": "Suggestions", + "suggestions_box.refresh": "Rafraîchir", + "upload_button.label": "Joindre un média", + "upload_form.undo": "Annuler", + "notification.follow": "{name} s’est abonné⋅e à vos statuts", + "notification.favourite": "{name} a ajouté votre statut à ses favoris", + "notification.reblog": "{name} a partagé votre statut", + "notification.mention": "{name} vous a mentionné" }; export default fr; From 12e9f789aba820edeb1b86b785d90999a9fdee1e Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 22:34:50 +0100 Subject: [PATCH 09/17] Importing devise.fr.yml From https://gist.github.com/qsypoq/4cf3b858ff8242ffb013 --- config/locales/devise.fr.yml | 91 ++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index 32ac92cf9b9..3148764986d 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -1,61 +1,62 @@ +# Translation from https://gist.github.com/qsypoq/4cf3b858ff8242ffb013 --- -en: +fr: devise: confirmations: - confirmed: Your email address has been successfully confirmed. - send_instructions: You will receive an email with instructions for how to confirm your email address in a few minutes. - send_paranoid_instructions: If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes. + 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 e-mail existe dans notre base de données, vous allez bientôt recevoir un e-mail contenant les instructions de confirmation de votre compte." failure: - already_authenticated: You are already signed in. - inactive: Your account is not activated yet. - invalid: Invalid %{authentication_keys} or password. - last_attempt: You have one more attempt before your account is locked. - locked: Your account is locked. - not_found_in_database: Invalid %{authentication_keys} or password. - timeout: Your session expired. Please sign in again to continue. - unauthenticated: You need to sign in or sign up before continuing. - unconfirmed: You have to confirm your email address before continuing. + already_authenticated: "Vous êtes déjà connecté" + inactive: "Votre compte n'est pas encore activé." + invalid: "Email ou mot de passe incorrect." + last_attempt: "Vous avez droit à une tentative avant que votre compte ne soit verrouillé." + locked: "Votre compte est verrouillé." + not_found_in_database: "Email ou mot de passe invalide." + timeout: "Votre session est expirée. Veuillez vous reconnecter pour continuer." + unauthenticated: "Vous devez vous connecter ou vous inscrire pour continuer." + unconfirmed: "Vous devez valider votre compte pour continuer." mailer: confirmation_instructions: - subject: 'Mastodon: Confirmation instructions' - password_change: - subject: 'Mastodon: Password changed' + subject: "Instructions de confirmation" reset_password_instructions: - subject: 'Mastodon: Reset password instructions' + subject: "Instructions pour changer le mot de passe" unlock_instructions: - subject: 'Mastodon: Unlock instructions' + subject: "Instructions pour déverrouiller le compte" + password_change: + subject: "Votre mot de passe a été modifié avec succés." omniauth_callbacks: - failure: Could not authenticate you from %{kind} because "%{reason}". - success: Successfully authenticated from %{kind} account. + failure: "Nous n'avons pas pu vous authentifier via %{kind} : '%{reason}'." + success: "Authentifié avec succès via %{kind}." passwords: - no_token: You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided. - send_instructions: You will receive an email with instructions on how to reset your password in a few minutes. - send_paranoid_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. - updated: Your password has been changed successfully. You are now signed in. - updated_not_active: Your password has been changed successfully. + no_token: "Vous ne pouvez accéder à cette page sans passer par un e-mail de réinitialisation de mot de passe. Si vous êtes passé par un e-mail 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 e-mail existe dans notre base de données, vous allez recevoir un lien de réinitialisation par e-mail" + updated: "Votre mot de passe a été édité avec succès, vous êtes maintenant connecté" + updated_not_active: "Votre mot de passe a été changé avec succès." registrations: - destroyed: Bye! Your account has been successfully cancelled. We hope to see you again soon. - signed_up: Welcome! You have signed up successfully. - signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated. - signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked. - signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account. - update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address. - updated: Your account has been updated successfully. + destroyed: "Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt." + signed_up: "Bienvenue, vous êtes connecté." + signed_up_but_inactive: "Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte n'est pas encore activé." + signed_up_but_locked: "Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé." + signed_up_but_unconfirmed: "Un message contenant un lien de confirmation a été envoyé à votre adresse email. Ouvrez ce lien pour activer votre compte." + update_needs_confirmation: "Votre compte a bien été mis à jour mais nous devons vérifier votre nouvelle adresse email. Merci de vérifier vos emails et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse." + updated: "Votre compte a été modifié avec succès." sessions: - already_signed_out: Signed out successfully. - signed_in: Signed in successfully. - signed_out: Signed out successfully. + signed_in: "Connecté." + signed_out: "Déconnecté." + already_signed_out: "Déconnecté." unlocks: - send_instructions: You will receive an email with instructions for how to unlock your account in a few minutes. - send_paranoid_instructions: If your account exists, you will receive an email with instructions for how to unlock it in a few minutes. - unlocked: Your account has been unlocked successfully. Please sign in to continue. + 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 email contenant les instructions pour le déverrouiller." + unlocked: "Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté." errors: messages: - already_confirmed: was already confirmed, please try signing in - confirmation_period_expired: needs to be confirmed within %{period}, please request a new one - expired: has expired, please request a new one - not_found: not found - not_locked: was not locked + already_confirmed: "a déjà été validé(e), veuillez essayer de vous connecter" + confirmation_period_expired: "à confirmer dans les %{period}, merci de faire une nouvelle demande" + expired: "a expiré, merci d'en faire une nouvelle demande" + not_found: "n'a pas été trouvé(e)" + not_locked: "n'était pas verrouillé(e)" not_saved: - one: '1 error prohibited this %{resource} from being saved:' - other: "%{count} errors prohibited this %{resource} from being saved:" + one: "1 erreur a empêché ce(tte) %{resource} d'être sauvegardé(e) :" +other: "%{count} erreurs ont empêché ce(tte) %{resource} d'être sauvegardé(e) :" From 46d9076e996cdffed9cb74701b5be4af76c89d0b Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 22:39:20 +0100 Subject: [PATCH 10/17] Importing doorkeeper.fr.yml From https://github.com/doorkeeper-gem/doorkeeper-i18n/blob/master/rails/locales/fr.yml --- config/locales/doorkeeper.fr.yml | 158 +++++++++++++++++-------------- 1 file changed, 86 insertions(+), 72 deletions(-) diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index aaf5df6fcf7..d65f9aad4a5 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -1,112 +1,126 @@ +# Translation from https://github.com/doorkeeper-gem/doorkeeper-i18n/blob/master/rails/locales/fr.yml --- -en: +fr: activerecord: attributes: doorkeeper/application: - name: Name - redirect_uri: Redirect URI + name: "Nom" + redirect_uri: "L'URL de redirection" errors: models: doorkeeper/application: attributes: redirect_uri: - fragment_present: cannot contain a fragment. - invalid_uri: must be a valid URI. - relative_uri: must be an absolute URI. - secured_uri: must be an HTTPS/SSL URI. + fragment_present: "ne peut contenir un fragment." + invalid_uri: "doit être une URL valide." + relative_uri: "doit être une URL absolue." + secured_uri: "doit être une URL HTTP/SSL." + doorkeeper: applications: - buttons: - authorize: Authorize - cancel: Cancel - destroy: Destroy - edit: Edit - submit: Submit confirmations: - destroy: Are you sure? - edit: - title: Edit application + destroy: "Êtes-vous certain?" + buttons: + edit: "Modifier" + destroy: "Détruire" + submit: "Envoyer" + cancel: "Annuler" + authorize: "Autoriser" form: - error: Whoops! Check your form for possible errors + error: "Oups! Vérifier votre formulaire pour des erreurs possibles" help: - native_redirect_uri: Use %{native_redirect_uri} for local tests - redirect_uri: Use one line per URI - scopes: Separate scopes with spaces. Leave blank to use the default scopes. + redirect_uri: "Utiliser une ligne par URL" + native_redirect_uri: "Utiliser %{native_redirect_uri} pour les tests locaux" + scopes: ~ + edit: + title: "Modifier l'application" index: - callback_url: Callback URL - name: Name - new: New Application - title: Your applications + title: "Vos applications" + new: "Nouvelle application" + name: "Nom" + callback_url: "URL de retour d'appel" new: - title: New Application + title: "Nouvelle application" show: - actions: Actions - application_id: Application Id - callback_urls: Callback urls - scopes: Scopes - secret: Secret - title: 'Application: %{name}' + title: "Application : %{name}" + application_id: "ID de l'application" + secret: "Secret" + scopes: ~ + callback_urls: "URL du retour d'appel" + actions: "Actions" + authorizations: buttons: - authorize: Authorize - deny: Deny + authorize: "Autoriser" + deny: "Refuser" error: - title: An error has occurred + title: "Une erreur est survenue" new: - able_to: It will be able to - prompt: Application %{client_name} requests access to your account - title: Authorization required + title: "Autorisation requise" + prompt: "Autorisez %{client_name} à utiliser votre compte?" + able_to: "Cette application pourra" show: - title: Authorization code + title: "Code d'autorisation" + authorized_applications: - buttons: - revoke: Revoke confirmations: - revoke: Are you sure? + revoke: "Êtes-vous certain?" + buttons: + revoke: "Annuler" index: - application: Application - created_at: Created At + title: "Vos applications autorisées" + application: "Application" + created_at: "Créé le" date_format: "%Y-%m-%d %H:%M:%S" - title: Your authorized applications + errors: messages: - access_denied: The resource owner or authorization server denied the request. - credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured. - invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method. - invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. - invalid_redirect_uri: The redirect uri included is not valid. - invalid_request: The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed. - invalid_resource_owner: The provided resource owner credentials are not valid, or resource owner cannot be found - invalid_scope: The requested scope is invalid, unknown, or malformed. + # Common error messages + invalid_request: "La demande manque un paramètre requis, inclut une valeur de paramètre non prise en charge, ou est autrement mal formée." + invalid_redirect_uri: "L'URL de redirection n'est pas valide." + unauthorized_client: "Le client n'est pas autorisé à effectuer cette demande à l'aide de cette méthode." + access_denied: "Le propriétaire de la ressource ou le serveur d'autorisation a refusé la demande." + invalid_scope: "Le scope demandé n'est pas valide, est inconnu, ou est mal formé." + server_error: "Le serveur d'autorisation a rencontré une condition inattendue qui l'a empêché de remplir la demande." + temporarily_unavailable: "Le serveur d'autorisation est actuellement incapable de traiter la demande à cause d'une surcharge ou d'un entretien temporaire du serveur." + + #configuration error messages + credential_flow_not_configured: "Le flux des identifiants du mot de passe du propriétaire de la ressource a échoué en raison de Doorkeeper.configure.resource_owner_from_credentials n'est pas configuré." + resource_owner_authenticator_not_configured: "La recherche du propriétaire de la ressource a échoué en raison de Doorkeeper.configure.resource_owner_authenticator n'est pas configuré." + + # Access grant errors + unsupported_response_type: "Le serveur d'autorisation ne prend pas en charge ce type de réponse." + + # Access token errors + 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 demande d'autorisation, ou a été émis à un autre client." + unsupported_grant_type: "Le type de consentement d'autorisation n'est pas pris en charge par le serveur d'autorisation." + + # Password Access token errors + invalid_resource_owner: "Les identifiants fournis du propriétaire de la ressource ne sont pas valides, ou le propriétaire de la ressource ne peut être trouvé" + invalid_token: - expired: The access token expired - revoked: The access token was revoked - unknown: The access token is invalid - resource_owner_authenticator_not_configured: Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged. - server_error: The authorization server encountered an unexpected condition which prevented it from fulfilling the request. - temporarily_unavailable: The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server. - unauthorized_client: The client is not authorized to perform this request using this method. - unsupported_grant_type: The authorization grant type is not supported by the authorization server. - unsupported_response_type: The authorization server does not support this response type. + revoked: "Le jeton d'accès a été annulé" + expired: "Le jeton d'accès a expiré" + unknown: "Le jeton d'accès n'est pas valide" + flash: applications: create: - notice: Application created. + notice: "Application créée." destroy: - notice: Application deleted. + notice: "Application supprimée." update: - notice: Application updated. + notice: "Application mise à jour." authorized_applications: destroy: - notice: Application revoked. + notice: "Application annulée." + layouts: admin: nav: - applications: Applications - oauth2_provider: OAuth2 Provider + oauth2_provider: "Fournisseur OAuth2" + applications: "Applications" + home: 'Home' application: - title: OAuth authorization required - scopes: - follow: follow, block, unblock and unfollow accounts - read: read your account's data - write: post on your behalf + title: "Autorisation OAuth requise" From 64cfbbcc554616fc4d1cd9243a16a0cc1ba1caa8 Mon Sep 17 00:00:00 2001 From: nicolas Date: Mon, 21 Nov 2016 22:46:59 +0100 Subject: [PATCH 11/17] Adding French locale --- config/application.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/application.rb b/config/application.rb index c53d78a4c77..7ba13bfbe02 100644 --- a/config/application.rb +++ b/config/application.rb @@ -20,7 +20,7 @@ module Mastodon # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] - config.i18n.available_locales = [:en, :de, :es] + config.i18n.available_locales = [:en, :de, :es, :fr] config.i18n.default_locale = :en # config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb') From 115ce905783a2d9c301868f5bc0bfb52991790a0 Mon Sep 17 00:00:00 2001 From: nicolas Date: Tue, 22 Nov 2016 10:20:28 +0100 Subject: [PATCH 12/17] Adding French locale to settings_helper.rb --- app/helpers/settings_helper.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 66ecc56c6b9..75ee2f8d918 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -5,6 +5,7 @@ module SettingsHelper en: 'English', de: 'Deutsch', es: 'Español', + fr: 'Français', }.freeze def human_locale(locale) From f9bd3d8808e4e83426913e5fbf18174b9121f3e4 Mon Sep 17 00:00:00 2001 From: nicolas Date: Tue, 22 Nov 2016 10:21:56 +0100 Subject: [PATCH 13/17] Adding French locale to mastodon.jsx --- app/assets/javascripts/components/containers/mastodon.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/components/containers/mastodon.jsx b/app/assets/javascripts/components/containers/mastodon.jsx index 3528ef81ca7..87c7c65f342 100644 --- a/app/assets/javascripts/components/containers/mastodon.jsx +++ b/app/assets/javascripts/components/containers/mastodon.jsx @@ -38,6 +38,7 @@ import { IntlProvider, addLocaleData } from 'react-intl'; import en from 'react-intl/locale-data/en'; import de from 'react-intl/locale-data/de'; import es from 'react-intl/locale-data/es'; +import fr from 'react-intl/locale-data/fr'; import getMessagesForLocale from '../locales'; const store = configureStore(); @@ -46,7 +47,7 @@ const browserHistory = useRouterHistory(createBrowserHistory)({ basename: '/web' }); -addLocaleData([...en, ...de, ...es]); +addLocaleData([...en, ...de, ...es, ...fr]); const Mastodon = React.createClass({ From ba4c03de71b61eacae14557c3cf809c3bfe2351c Mon Sep 17 00:00:00 2001 From: nicolas Date: Tue, 22 Nov 2016 10:32:43 +0100 Subject: [PATCH 14/17] Update simple_form.fr.yml silenced mode + edits --- config/locales/simple_form.fr.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 11fdaa76ebc..4f34b582f42 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -4,8 +4,8 @@ fr: labels: defaults: avatar: "Image de profil" - confirm_new_password: "Confirmez le nouveau mot de passe" - confirm_password: "Confirmez le mot de passe" + confirm_new_password: "Confirmation du nouveau mot de passe" + confirm_password: "Confirmation du mot de passe" current_password: "Mot de passe actuel" display_name: "Nom public" email: "Adresse courriel" @@ -15,11 +15,12 @@ fr: note: "Présentation" password: "Mot de passe" username: "Nom d’utilisateur" + silenced: "Ne pas apparaître dans le fil public" notification_emails: - favourite: "M’envoyer un courriel lorsque quelqu’un ajoute un de mes statuts à ses favoris" - follow: "M’envoyer un courriel lorsque quelqu’un s’abonne à mes statuts" - mention: "M’envoyer un courriel lorsque quelqu’un me mentionne" - reblog: "M’envoyer un courriel lorsque quelqu’un partage un de mes statuts" + favourite: "Envoyer un courriel lorsque quelqu’un ajoute un de mes statuts à ses favoris" + follow: "Envoyer un courriel lorsque quelqu’un s’abonne à mes statuts" + mention: "Envoyer un courriel lorsque quelqu’un me mentionne" + reblog: "Envoyer un courriel lorsque quelqu’un partage un de mes statuts" 'no': "Non" required: mark: "*" From 82cb34916ab5ad672b3dd28dbb10f30d54f1ad0c Mon Sep 17 00:00:00 2001 From: nicolas Date: Tue, 22 Nov 2016 10:39:15 +0100 Subject: [PATCH 15/17] Update fr.yml --- config/locales/fr.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/locales/fr.yml b/config/locales/fr.yml index bd7f741d60d..c9258381cdc 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -11,8 +11,8 @@ fr: followers: "Abonnés" following: "Abonnements" nothing_here: "Rien à voir ici !" - people_followed_by: "Personnes suivies par %{name}" - people_who_follow: "Personnes qui suivent %{name}" + people_followed_by: "Personnes auxquelles %{name} est abonné⋅e" + people_who_follow: "Personnes abonnées à %{name}" posts: "Statuts" unfollow: "Se désabonner" application_mailer: @@ -27,12 +27,12 @@ fr: reset_password: "Réinitialiser le mot de passe" set_new_password: "Établir le nouveau mot de passe" generic: - changes_saved_msg: "Les modifications sont enregistrées avec succès !" - powered_by: "propulsée par %{link}" + 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: "Il y a quelque chose qui ne va pas ! Vérifiez l’erreur ci-dessous" - other: "Il y a quelques choses qui ne vont pas ! Vérifiez les erreurs ci-dessous" + one: "Quelque chose ne va pas ! Vérifiez l’erreur ci-dessous." + other: "Quelques choses ne vont pas ! Vérifiez les erreurs ci-dessous." notification_mailer: favourite: body: "%{name} a ajouté votre statut à ses favoris :" From c7031fd535249e3140bc780ca98f099496ccd959 Mon Sep 17 00:00:00 2001 From: nicolas Date: Tue, 22 Nov 2016 10:49:50 +0100 Subject: [PATCH 16/17] Update fr.jsx --- app/assets/javascripts/components/locales/fr.jsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/components/locales/fr.jsx b/app/assets/javascripts/components/locales/fr.jsx index 6da4d6f8cf9..d6e24c523a8 100644 --- a/app/assets/javascripts/components/locales/fr.jsx +++ b/app/assets/javascripts/components/locales/fr.jsx @@ -20,12 +20,12 @@ const fr = { "account.followers": "Abonnés", "account.follows_you": "Vous suit", "getting_started.heading": "Pour commencer", - "getting_started.about_addressing": "Vous pouvez vous abonner aux statuts de quelqu’un en entrant dans le champs en haut de la colonne de gauche leur nom d’utilisateur et le nom de domaine de leur instance, séparés par un @ à la manière d’une adresse courriel.", + "getting_started.about_addressing": "Vous pouvez vous abonner aux statuts de quelqu’un en entrant dans le champs de recherche leur nom d’utilisateur et le domaine de leur instance, séparés par un @ à la manière d’une adresse courriel.", "getting_started.about_shortcuts": "Si cette personne utilise la même instance que vous, le nom d’utilisateur suffit. C’est le même principe pour mentionner quelqu’un dans vos statuts.", "getting_started.about_developer": "Pour s’abonner au développeur de ce projet, c’est Gargron@mastodon.social", "column.home": "Accueil", "column.mentions": "Mentions", - "column.public": "Public", + "column.public": "Fil public", "column.notifications": "Notifications", "tabs_bar.compose": "Composer", "tabs_bar.home": "Accueil", @@ -35,7 +35,7 @@ const fr = { "compose_form.placeholder": "Qu’avez vous en tête ?", "compose_form.publish": "Publier", "navigation_bar.settings": "Paramètres", - "navigation_bar.public_timeline": "Fil public", + "navigation_bar.public_timeline": "Public", "navigation_bar.logout": "Se déconnecter", "reply_indicator.cancel": "Annuler", "search.placeholder": "Chercher", @@ -48,7 +48,7 @@ const fr = { "notification.follow": "{name} s’est abonné⋅e à vos statuts", "notification.favourite": "{name} a ajouté votre statut à ses favoris", "notification.reblog": "{name} a partagé votre statut", - "notification.mention": "{name} vous a mentionné" + "notification.mention": "{name} vous a mentionné⋅e" }; export default fr; From 4a422650bb0bb5cf5f62bd05ef886ce1c9ba4dc8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 22 Nov 2016 11:34:36 +0100 Subject: [PATCH 17/17] Fix broken locales --- config/locales/devise.fr.yml | 90 +++++++++-------- config/locales/doorkeeper.fr.yml | 158 ++++++++++++++---------------- config/locales/simple_form.de.yml | 6 +- config/locales/simple_form.en.yml | 2 +- config/locales/simple_form.es.yml | 4 +- config/locales/simple_form.fr.yml | 40 ++++---- 6 files changed, 142 insertions(+), 158 deletions(-) diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index 3148764986d..b64601e7b54 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -1,62 +1,60 @@ -# Translation from https://gist.github.com/qsypoq/4cf3b858ff8242ffb013 --- 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 e-mail existe dans notre base de données, vous allez bientôt recevoir un e-mail contenant les instructions de confirmation de votre compte." + 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 e-mail existe dans notre base de données, vous allez bientôt recevoir un e-mail contenant les instructions de confirmation de votre compte. failure: - already_authenticated: "Vous êtes déjà connecté" - inactive: "Votre compte n'est pas encore activé." - invalid: "Email ou mot de passe incorrect." - last_attempt: "Vous avez droit à une tentative avant que votre compte ne soit verrouillé." - locked: "Votre compte est verrouillé." - not_found_in_database: "Email ou mot de passe invalide." - timeout: "Votre session est expirée. Veuillez vous reconnecter pour continuer." - unauthenticated: "Vous devez vous connecter ou vous inscrire pour continuer." - unconfirmed: "Vous devez valider votre compte pour continuer." + already_authenticated: Vous êtes déjà connecté + inactive: Votre compte n'est pas encore activé. + invalid: Email ou mot de passe incorrect. + last_attempt: Vous avez droit à une tentative avant que votre compte ne soit verrouillé. + locked: Votre compte est verrouillé. + not_found_in_database: Email ou mot de passe invalide. + timeout: Votre session est expirée. Veuillez vous reconnecter pour continuer. + unauthenticated: Vous devez vous connecter ou vous inscrire pour continuer. + unconfirmed: Vous devez valider votre compte pour continuer. mailer: confirmation_instructions: - subject: "Instructions de confirmation" - reset_password_instructions: - subject: "Instructions pour changer le mot de passe" - unlock_instructions: - subject: "Instructions pour déverrouiller le compte" + subject: Instructions de confirmation password_change: - subject: "Votre mot de passe a été modifié avec succés." + subject: Votre mot de passe a été modifié avec succés. + reset_password_instructions: + subject: Instructions pour changer le mot de passe + unlock_instructions: + subject: Instructions pour déverrouiller le compte omniauth_callbacks: - failure: "Nous n'avons pas pu vous authentifier via %{kind} : '%{reason}'." - success: "Authentifié avec succès via %{kind}." + 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 e-mail de réinitialisation de mot de passe. Si vous êtes passé par un e-mail 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 e-mail existe dans notre base de données, vous allez recevoir un lien de réinitialisation par e-mail" - updated: "Votre mot de passe a été édité avec succès, vous êtes maintenant connecté" - updated_not_active: "Votre mot de passe a été changé avec succès." + no_token: Vous ne pouvez accéder à cette page sans passer par un e-mail de réinitialisation de mot de passe. Si vous êtes passé par un e-mail 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 e-mail existe dans notre base de données, vous allez recevoir un lien de réinitialisation par e-mail + updated: Votre mot de passe a été édité avec succès, vous êtes maintenant connecté + updated_not_active: Votre mot de passe a été changé avec succès. registrations: - destroyed: "Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt." - signed_up: "Bienvenue, vous êtes connecté." - signed_up_but_inactive: "Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte n'est pas encore activé." - signed_up_but_locked: "Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé." - signed_up_but_unconfirmed: "Un message contenant un lien de confirmation a été envoyé à votre adresse email. Ouvrez ce lien pour activer votre compte." - update_needs_confirmation: "Votre compte a bien été mis à jour mais nous devons vérifier votre nouvelle adresse email. Merci de vérifier vos emails et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse." - updated: "Votre compte a été modifié avec succès." + destroyed: Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt. + signed_up: Bienvenue, vous êtes connecté. + signed_up_but_inactive: Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte n'est pas encore activé. + signed_up_but_locked: Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé. + signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse email. Ouvrez ce lien pour activer votre compte. + update_needs_confirmation: Votre compte a bien été mis à jour mais nous devons vérifier votre nouvelle adresse email. Merci de vérifier vos emails et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. + updated: Votre compte a été modifié avec succès. sessions: - signed_in: "Connecté." - signed_out: "Déconnecté." - already_signed_out: "Déconnecté." + already_signed_out: Déconnecté. + 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 email contenant les instructions pour le déverrouiller." - unlocked: "Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté." + 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 email contenant les instructions pour le déverrouiller. + unlocked: Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté. errors: messages: - already_confirmed: "a déjà été validé(e), veuillez essayer de vous connecter" - confirmation_period_expired: "à confirmer dans les %{period}, merci de faire une nouvelle demande" - expired: "a expiré, merci d'en faire une nouvelle demande" - not_found: "n'a pas été trouvé(e)" - not_locked: "n'était pas verrouillé(e)" + already_confirmed: a déjà été validé(e), veuillez essayer de vous connecter + confirmation_period_expired: à confirmer dans les %{period}, merci de faire une nouvelle demande + expired: a expiré, merci d'en faire une nouvelle demande + not_found: n'a pas été trouvé(e) + not_locked: n'était pas verrouillé(e) not_saved: - one: "1 erreur a empêché ce(tte) %{resource} d'être sauvegardé(e) :" -other: "%{count} erreurs ont empêché ce(tte) %{resource} d'être sauvegardé(e) :" + one: '1 erreur a empêché ce(tte) %{resource} d''être sauvegardé(e) :' diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index d65f9aad4a5..c04e378b6a1 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -1,126 +1,112 @@ -# Translation from https://github.com/doorkeeper-gem/doorkeeper-i18n/blob/master/rails/locales/fr.yml --- fr: activerecord: attributes: doorkeeper/application: - name: "Nom" - redirect_uri: "L'URL de redirection" + name: Nom + redirect_uri: L'URL de redirection errors: models: doorkeeper/application: attributes: redirect_uri: - fragment_present: "ne peut contenir un fragment." - invalid_uri: "doit être une URL valide." - relative_uri: "doit être une URL absolue." - secured_uri: "doit être une URL HTTP/SSL." - + fragment_present: ne peut contenir un fragment. + invalid_uri: doit être une URL valide. + relative_uri: doit être une URL absolue. + secured_uri: doit être une URL HTTP/SSL. doorkeeper: applications: - confirmations: - destroy: "Êtes-vous certain?" buttons: - edit: "Modifier" - destroy: "Détruire" - submit: "Envoyer" - cancel: "Annuler" - authorize: "Autoriser" - form: - error: "Oups! Vérifier votre formulaire pour des erreurs possibles" - help: - redirect_uri: "Utiliser une ligne par URL" - native_redirect_uri: "Utiliser %{native_redirect_uri} pour les tests locaux" - scopes: ~ + authorize: Autoriser + cancel: Annuler + destroy: Détruire + edit: Modifier + submit: Envoyer + confirmations: + destroy: Êtes-vous certain? edit: - title: "Modifier l'application" + title: Modifier l'application + form: + 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: index: - title: "Vos applications" - new: "Nouvelle application" - name: "Nom" - callback_url: "URL de retour d'appel" + callback_url: URL de retour d'appel + name: Nom + new: Nouvelle application + title: Vos applications new: - title: "Nouvelle application" + title: Nouvelle application show: - title: "Application : %{name}" - application_id: "ID de l'application" - secret: "Secret" - scopes: ~ - callback_urls: "URL du retour d'appel" - actions: "Actions" - + actions: Actions + application_id: ID de l'application + callback_urls: URL du retour d'appel + scopes: + secret: Secret + title: 'Application : %{name}' authorizations: buttons: - authorize: "Autoriser" - deny: "Refuser" + authorize: Autoriser + deny: Refuser error: - title: "Une erreur est survenue" + title: Une erreur est survenue new: - title: "Autorisation requise" - prompt: "Autorisez %{client_name} à utiliser votre compte?" - able_to: "Cette application pourra" + able_to: Cette application pourra + prompt: Autorisez %{client_name} à utiliser votre compte? + title: Autorisation requise show: - title: "Code d'autorisation" - + title: Code d'autorisation authorized_applications: - confirmations: - revoke: "Êtes-vous certain?" buttons: - revoke: "Annuler" + revoke: Annuler + confirmations: + revoke: Êtes-vous certain? index: - title: "Vos applications autorisées" - application: "Application" - created_at: "Créé le" + application: Application + created_at: Créé le date_format: "%Y-%m-%d %H:%M:%S" - + title: Vos applications autorisées errors: messages: - # Common error messages - invalid_request: "La demande manque un paramètre requis, inclut une valeur de paramètre non prise en charge, ou est autrement mal formée." - invalid_redirect_uri: "L'URL de redirection n'est pas valide." - unauthorized_client: "Le client n'est pas autorisé à effectuer cette demande à l'aide de cette méthode." - access_denied: "Le propriétaire de la ressource ou le serveur d'autorisation a refusé la demande." - invalid_scope: "Le scope demandé n'est pas valide, est inconnu, ou est mal formé." - server_error: "Le serveur d'autorisation a rencontré une condition inattendue qui l'a empêché de remplir la demande." - temporarily_unavailable: "Le serveur d'autorisation est actuellement incapable de traiter la demande à cause d'une surcharge ou d'un entretien temporaire du serveur." - - #configuration error messages - credential_flow_not_configured: "Le flux des identifiants du mot de passe du propriétaire de la ressource a échoué en raison de Doorkeeper.configure.resource_owner_from_credentials n'est pas configuré." - resource_owner_authenticator_not_configured: "La recherche du propriétaire de la ressource a échoué en raison de Doorkeeper.configure.resource_owner_authenticator n'est pas configuré." - - # Access grant errors - unsupported_response_type: "Le serveur d'autorisation ne prend pas en charge ce type de réponse." - - # Access token errors - 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 demande d'autorisation, ou a été émis à un autre client." - unsupported_grant_type: "Le type de consentement d'autorisation n'est pas pris en charge par le serveur d'autorisation." - - # Password Access token errors - invalid_resource_owner: "Les identifiants fournis du propriétaire de la ressource ne sont pas valides, ou le propriétaire de la ressource ne peut être trouvé" - + access_denied: Le propriétaire de la ressource ou le serveur d'autorisation a refusé la demande. + credential_flow_not_configured: Le flux des identifiants du mot de passe du propriétaire de la ressource a échoué en raison de 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 demande d'autorisation, ou a été émis à un autre client. + invalid_redirect_uri: L'URL de redirection n'est pas valide. + invalid_request: La demande manque 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 du propriétaire de la ressource ne sont pas valides, ou le propriétaire de la ressource ne peut être trouvé + invalid_scope: Le scope demandé n'est pas valide, est inconnu, ou est mal formé. invalid_token: - revoked: "Le jeton d'accès a été annulé" - expired: "Le jeton d'accès a expiré" - unknown: "Le jeton d'accès n'est pas valide" - + expired: Le jeton d'accès a expiré + revoked: Le jeton d'accès a été annulé + 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é en raison de Doorkeeper.configure.resource_owner_authenticator n'est pas configuré. + server_error: Le serveur d'autorisation a rencontré une condition inattendue qui l'a empêché de remplir la demande. + temporarily_unavailable: Le serveur d'autorisation est actuellement incapable de traiter la demande à cause d'une surcharge ou d'un entretien temporaire du serveur. + unauthorized_client: Le client n'est pas autorisé à effectuer cette demande à 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: - notice: "Application créée." + notice: Application créée. destroy: - notice: "Application supprimée." + notice: Application supprimée. update: - notice: "Application mise à jour." + notice: Application mise à jour. authorized_applications: destroy: - notice: "Application annulée." - + notice: Application annulée. layouts: admin: nav: - oauth2_provider: "Fournisseur OAuth2" - applications: "Applications" - home: 'Home' + applications: Applications + oauth2_provider: Fournisseur OAuth2 application: - title: "Autorisation OAuth requise" + title: Autorisation OAuth requise + scopes: + follow: + read: + write: diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 65714dbd527..36c5141a2c5 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -14,15 +14,15 @@ de: new_password: Neues Passwort note: Über mich password: Passwort - username: Nutzername silenced: Öffentliche Beiträge nicht auflisten + username: Nutzername notification_emails: favourite: E-mail senden, wenn jemand meinen Beitrag favorisiert follow: E-mail senden, wenn mir jemand folgt mention: E-mail senden, wenn mich jemand erwähnt reblog: E-mail senden, wenn jemand meinen Beitrag teilt - 'no': 'Nein' + 'no': Nein required: mark: "*" text: Pflichtfeld - 'yes': 'Ja' + 'yes': Ja diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 5b66fccd5df..a7d958c06d7 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -14,8 +14,8 @@ en: new_password: New password note: Bio password: Password - username: Username silenced: Unlisted mode + username: Username notification_emails: favourite: Send e-mail when someone favourites your status follow: Send e-mail when someone follows you diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 1909474a115..bfe000b3333 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -14,8 +14,8 @@ es: new_password: Nueva contraseña note: Biografía password: Contraseña - username: Nombre de usuario silenced: No listado + username: Nombre de usuario notification_emails: favourite: Enviar correo electrónico cuando alguien de a favorito en su publicación follow: Enviar correo electrónico cuando alguien le siga @@ -25,4 +25,4 @@ es: required: mark: "*" text: necesario - 'yes': 'Sí' + 'yes': Sí diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 4f34b582f42..7333c9e1170 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -3,26 +3,26 @@ fr: simple_form: labels: defaults: - avatar: "Image de profil" - confirm_new_password: "Confirmation du nouveau mot de passe" - confirm_password: "Confirmation du mot de passe" - current_password: "Mot de passe actuel" - display_name: "Nom public" - email: "Adresse courriel" - header: "Image d’en-tête" - locale: "Langue" - new_password: "Nouveau mot de passe" - note: "Présentation" - password: "Mot de passe" - username: "Nom d’utilisateur" - silenced: "Ne pas apparaître dans le fil public" + avatar: Image de profil + confirm_new_password: Confirmation du nouveau mot de passe + confirm_password: Confirmation du mot de passe + current_password: Mot de passe actuel + display_name: Nom public + email: Adresse courriel + header: Image d’en-tête + locale: Langue + new_password: Nouveau mot de passe + note: Présentation + password: Mot de passe + silenced: Ne pas apparaître dans le fil public + username: Nom d’utilisateur notification_emails: - favourite: "Envoyer un courriel lorsque quelqu’un ajoute un de mes statuts à ses favoris" - follow: "Envoyer un courriel lorsque quelqu’un s’abonne à mes statuts" - mention: "Envoyer un courriel lorsque quelqu’un me mentionne" - reblog: "Envoyer un courriel lorsque quelqu’un partage un de mes statuts" - 'no': "Non" + favourite: Envoyer un courriel lorsque quelqu’un ajoute un de mes statuts à ses favoris + follow: Envoyer un courriel lorsque quelqu’un s’abonne à mes statuts + mention: Envoyer un courriel lorsque quelqu’un me mentionne + reblog: Envoyer un courriel lorsque quelqu’un partage un de mes statuts + 'no': Non required: mark: "*" - text: "Champs requis" - 'yes': "Oui" + text: Champs requis + 'yes': Oui