forked from treehouse/mastodon
Merge branch 'nclm-french-translation'
commit
95db6cbe28
|
@ -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({
|
||||
|
||||
|
|
|
@ -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;
|
|
@ -5,6 +5,7 @@ module SettingsHelper
|
|||
en: 'English',
|
||||
de: 'Deutsch',
|
||||
es: 'Español',
|
||||
fr: 'Français',
|
||||
}.freeze
|
||||
|
||||
def human_locale(locale)
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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) :'
|
|
@ -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:
|
|
@ -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: "…"
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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í
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue