diff --git a/frontend/app_flowy/assets/translations/fr.json b/frontend/app_flowy/assets/translations/fr.json new file mode 100644 index 0000000000..27c752d212 --- /dev/null +++ b/frontend/app_flowy/assets/translations/fr.json @@ -0,0 +1,145 @@ +{ + "appName": "AppFlowy", + "defaultUsername": "Moi", + "welcomeText": "Bienvenue à @:appName", + "githubStarText": "Favorier sur GitHub", + "subscribeNewsletterText": "S'inscrire à la Bulletin", + "letsGoButtonText": "Allons-y", + "title": "Titre", + "signUp": { + "buttonText": "S'inscrire", + "title": "Inscrivez-vous pour @:appName", + "getStartedText": "Commencer", + "emptyPasswordError": "Mot de passe ne peut pas être vide", + "repeatPasswordEmptyError": "Le mot de passe de répétition ne peut pas être vide", + "unmatchedPasswordError": "Le mot de passe de répétition n'est pas le même que le mot de passe", + "alreadyHaveAnAccount": "Vous avez déjà un compte?", + "emailHint": "Email", + "passwordHint": "Mot de passe", + "repeatPasswordHint": "Répéter le mot de passe" + }, + "signIn": { + "loginTitle": "Connexion à @:appName", + "loginButtonText": "Connexion", + "buttonText": "Se connecter", + "forgotPassword": "Mot de passe oublié?", + "emailHint": "Email", + "passwordHint": "Mot de passe", + "dontHaveAnAccount": "Don't have an account?", + "repeatPasswordEmptyError": "Le mot de passe de répétition ne peut pas être vide", + "unmatchedPasswordError": "Le mot de passe de répétition n'est pas le même que le mot de passe" + }, + "workspace": { + "create": "Créer un espace de travail", + "hint": "espace de travail", + "notFoundError": "L'espace de travail pas trouvé" + }, + "shareAction": { + "buttonText": "Partager", + "workInProgress": "Bientôt disponible", + "markdown": "Markdown", + "copyLink": "Copier Lien" + }, + "disclosureAction": { + "rename": "Renommer", + "delete": "Supprimer", + "duplicate": "Dupliquer" + }, + "blankPageTitle": "Page vierge", + "newPageText": "Nouvelle page", + "trash": { + "text": "Corbeille", + "restoreAll": "Restaurer Tout", + "deleteAll": "Supprimer Tout", + "pageHeader": { + "fileName": "Nom de fichier", + "lastModified": "Dernière Modification", + "created": "Créé" + } + }, + "deletePagePrompt": { + "text": "Cette page est dans la corbeille", + "restore": "Restaurer la page", + "deletePermanent": "Supprimer définitivement" + }, + "dialogCreatePageNameHint": "Nom de la page", + "questionBubble": { + "whatsNew": "Nouveautés", + "help": "Aide et Support", + "debug": { + "name": "Informations de Débogage", + "success": "Informations de débogage copiées dans le presse-papiers!", + "fail": "Impossible de copier informations de débogage dans le presse-papiers" + } + }, + "menuAppHeader": { + "addPageTooltip": "Ajoutez rapidement une page à l'intérieur", + "defaultNewPageName": "Sans-titre", + "renameDialog": "Renommer" + }, + "toolbar": { + "undo": "Annuler", + "redo": "Rétablir", + "bold": "Gras", + "italic": "Italique", + "underline": "Souligner", + "strike": "Barré", + "numList": "Liste Numérotée", + "bulletList": "Liste à Puces", + "checkList": "Liste de Contrôle", + "inlineCode": "Code en Ligne", + "quote": "Bloc Citation", + "header": "En-tête", + "highlight": "Surligner" + }, + "tooltip": { + "lightMode": "Passer en Mode Clair", + "darkMode": "Passer en Mode Sombre" + }, + "contactsPage": { + "title": "Contacts", + "whatsHappening": "Que se passe-t-il cette semaine?", + "addContact": "Ajouter un contact", + "editContact": "Modifier le contact" + }, + "button": { + "OK": "OK", + "Cancel": "Annuler", + "signIn": "Se Connecter", + "signOut": "Se Déconnecter", + "complete": "Complêt", + "save": "Enregistrer" + }, + "label": { + "welcome": "Bienvenue!", + "firstName": "Prénom", + "middleName": "Deuxième prénom", + "lastName": "Nom", + "stepX": "Étape {X}" + }, + "oAuth": { + "err": { + "failedTitle": "Impossible de se connecter à votre compte.", + "failedMsg": "Assurez-vous d'avoir terminé le processus de connexion dans votre navigateur." + }, + "google": { + "title": "CONNEXION GOOGLE", + "instruction1": "Pour importer vos contacts Google, vous devez autoriser cette application à l'aide de votre navigateur web.", + "instruction2": "Copiez ce code dans votre presse-papiers en cliquant sur l'icône ou en sélectionnant le texte:", + "instruction3": "Accédez au lien suivant dans votre navigateur web et saisissez le code ci-dessus:", + "instruction4": "Appuyez sur le bouton ci-dessous lorsque vous avez terminé votre inscription:" + } + }, + "settings": { + "title": "Paramètres", + "menu": { + "appearance": "Apparence", + "language": "Langue", + "open": "Ouvrir les Paramètres" + }, + "appearance": { + "lightLabel": "Mode Clair", + "darkLabel": "Mode Sombre" + } + } +} diff --git a/frontend/app_flowy/lib/startup/tasks/application_widget.dart b/frontend/app_flowy/lib/startup/tasks/application_widget.dart index 5b41a7a761..92759ba079 100644 --- a/frontend/app_flowy/lib/startup/tasks/application_widget.dart +++ b/frontend/app_flowy/lib/startup/tasks/application_widget.dart @@ -32,6 +32,7 @@ class AppWidgetTask extends LaunchTask { // In alphabetical order Locale('en'), Locale('es', 'VE'), + Locale('fr'), Locale('fr', 'CA'), Locale('it', 'IT'), Locale('ru', 'RU'),