commit: 95db6cbe28acc193ff0c898790a6740c4ff3d473
parent: 1788164352db23917c540e42a839908ecc4e0463
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Tue, 22 Nov 2016 11:35:15 +0100
Merge branch 'nclm-french-translation'
Diffstat:
11 files changed, 323 insertions(+), 8 deletions(-)
diff --git 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({
diff --git a/app/assets/javascripts/components/locales/fr.jsx b/app/assets/javascripts/components/locales/fr.jsx
@@ -0,0 +1,54 @@
+const fr = {
+ "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 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": "Fil public",
+ "column.notifications": "Notifications",
+ "tabs_bar.compose": "Composer",
+ "tabs_bar.home": "Accueil",
+ "tabs_bar.mentions": "Mentions",
+ "tabs_bar.public": "Public",
+ "tabs_bar.notifications": "Notifications",
+ "compose_form.placeholder": "Qu’avez vous en tête ?",
+ "compose_form.publish": "Publier",
+ "navigation_bar.settings": "Paramètres",
+ "navigation_bar.public_timeline": "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é⋅e"
+};
+
+export default fr;
diff --git 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)
diff --git 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')
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
@@ -0,0 +1,60 @@
+---
+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.
+ 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.
+ mailer:
+ confirmation_instructions:
+ subject: Instructions de confirmation
+ password_change:
+ 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}.
+ 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.
+ 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.
+ sessions:
+ 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é.
+ 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)
+ not_saved:
+ 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
@@ -0,0 +1,112 @@
+---
+fr:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ 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.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Autoriser
+ cancel: Annuler
+ destroy: Détruire
+ edit: Modifier
+ submit: Envoyer
+ confirmations:
+ destroy: Êtes-vous certain?
+ edit:
+ 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:
+ callback_url: URL de retour d'appel
+ name: Nom
+ new: Nouvelle application
+ title: Vos applications
+ new:
+ title: Nouvelle application
+ show:
+ 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
+ error:
+ title: Une erreur est survenue
+ new:
+ able_to: Cette application pourra
+ prompt: Autorisez %{client_name} à utiliser votre compte?
+ title: Autorisation requise
+ show:
+ title: Code d'autorisation
+ authorized_applications:
+ buttons:
+ revoke: Annuler
+ confirmations:
+ revoke: Êtes-vous certain?
+ index:
+ application: Application
+ created_at: Créé le
+ date_format: "%Y-%m-%d %H:%M:%S"
+ title: Vos applications autorisées
+ errors:
+ messages:
+ 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:
+ 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.
+ destroy:
+ notice: Application supprimée.
+ update:
+ notice: Application mise à jour.
+ authorized_applications:
+ destroy:
+ notice: Application annulée.
+ layouts:
+ admin:
+ nav:
+ applications: Applications
+ oauth2_provider: Fournisseur OAuth2
+ application:
+ title: Autorisation OAuth requise
+ scopes:
+ follow:
+ read:
+ write:
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
@@ -0,0 +1,59 @@
+---
+fr:
+ about:
+ about_instance: "<em>%{instance}</em> est une instance de Mastodon."
+ about_mastodon: "Mastodon est un serveur <em>libre</em> de réseautage social. Alternative <em>décentralisée</em> 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 <em>réseau social</em> de manière transparente."
+ get_started: "Rejoindre le réseau"
+ source_code: "Code source"
+ terms: "Conditions d’utilisation"
+ accounts:
+ follow: "S’abonner"
+ followers: "Abonnés"
+ following: "Abonnements"
+ nothing_here: "Rien à voir ici !"
+ people_followed_by: "Personnes auxquelles %{name} est abonné⋅e"
+ people_who_follow: "Personnes abonnées à %{name}"
+ posts: "Statuts"
+ unfollow: "Se désabonner"
+ application_mailer:
+ signature: "Notifications de Mastodon depuis %{instance}"
+ auth:
+ 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: "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: "Quelques choses ne vont pas ! Vérifiez les erreurs ci-dessous."
+ notification_mailer:
+ favourite:
+ body: "%{name} a ajouté votre statut à ses favoris :"
+ subject: "%{name} a ajouté votre statut à ses favoris"
+ follow:
+ body: "%{name} s’est abonné⋅e à vos statuts !"
+ subject: "%{name} s’est abonné⋅e à vos statuts"
+ mention:
+ body: "%{name} vous a mentionné⋅e dans :"
+ subject: "%{name} vous a mentionné⋅e"
+ reblog:
+ body: "%{name} a partagé votre statut :"
+ subject: "%{name} a partagé votre statut"
+ pagination:
+ next: "Suivant"
+ prev: "Précédent"
+ settings:
+ edit_profile: "Modifier le profil"
+ preferences: "Préférences"
+ stream_entries:
+ favourited: "a ajouté à ses favoris un statut de"
+ is_now_following: "s’est abonné⋅e à"
+ will_paginate:
+ page_gap: "…"
diff --git 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
@@ -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
@@ -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
@@ -0,0 +1,28 @@
+---
+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
+ 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
+ required:
+ mark: "*"
+ text: Champs requis
+ 'yes': Oui