feat(i18n): add french language
This commit is contained in:
parent
0bb943d453
commit
ef7937fdd3
|
@ -35,7 +35,8 @@
|
||||||
"backgroundColor": "transparent",
|
"backgroundColor": "transparent",
|
||||||
"languages": [
|
"languages": [
|
||||||
"zh-CN",
|
"zh-CN",
|
||||||
"en-US"
|
"en-US",
|
||||||
|
"fr-FR"
|
||||||
],
|
],
|
||||||
"showNameOnTiles": true,
|
"showNameOnTiles": true,
|
||||||
"setBuildNumber": true
|
"setBuildNumber": true
|
||||||
|
|
|
@ -80,7 +80,8 @@ class AppTab extends React.Component<AppTabProps, AppTabState> {
|
||||||
languageOptions = (): IDropdownOption[] => [
|
languageOptions = (): IDropdownOption[] => [
|
||||||
{ key: "default", text: intl.get("followSystem") },
|
{ key: "default", text: intl.get("followSystem") },
|
||||||
{ key: "en-US", text: "English" },
|
{ key: "en-US", text: "English" },
|
||||||
{ key: "zh-CN", text: "中文(简体)"}
|
{ key: "zh-CN", text: "中文(简体)"},
|
||||||
|
{ key: "fr-FR", text: "Français"},
|
||||||
]
|
]
|
||||||
|
|
||||||
toggleStatus = () => {
|
toggleStatus = () => {
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
import en_US from "./en-US.json"
|
import en_US from "./en-US.json"
|
||||||
import zh_CN from "./zh-CN.json"
|
import zh_CN from "./zh-CN.json"
|
||||||
|
import fr_FR from "./fr-FR.json"
|
||||||
|
|
||||||
const locales = {
|
const locales = {
|
||||||
"en-US": en_US,
|
"en-US": en_US,
|
||||||
"zh-CN": zh_CN,
|
"zh-CN": zh_CN,
|
||||||
|
"fr-FR": fr_FR,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default locales
|
export default locales
|
|
@ -0,0 +1,148 @@
|
||||||
|
{
|
||||||
|
"allArticles": "Tous les articles",
|
||||||
|
"add": "Ajouter",
|
||||||
|
"create": "Créer",
|
||||||
|
"icon": "Icône",
|
||||||
|
"name": "Nom",
|
||||||
|
"openExternal": "Ouvrir dans le navigateur",
|
||||||
|
"emptyName": "Ce champ ne peut pas être vide.",
|
||||||
|
"followSystem": "Suivre le système",
|
||||||
|
"more": "Plus",
|
||||||
|
"close": "Fermer",
|
||||||
|
"search": "Rechercher",
|
||||||
|
"loadMore": "Charger plus",
|
||||||
|
"dangerButton": "Confirmer {action} ?",
|
||||||
|
"confirmMarkAll": "Voulez-vous vraiment marquer tous les articles de cette page comme lus ?",
|
||||||
|
"confirm": "Confirmer",
|
||||||
|
"cancel": "Annuler",
|
||||||
|
"time": {
|
||||||
|
"m": "{m, plural, =1 {# minute} other {# minutes}}",
|
||||||
|
"h": "{h, plural, =1 {# heure} other {# heures}}",
|
||||||
|
"d": "{d, plural, =1 {# jour} other {# jours}}"
|
||||||
|
},
|
||||||
|
"log": {
|
||||||
|
"empty": "Aucune notification",
|
||||||
|
"fetchFailure": "Échec du chargement de la source \"{name}\".",
|
||||||
|
"fetchSuccess": "Récupération réussi de {count, plural, =1 {# article} other {# articles}}."
|
||||||
|
},
|
||||||
|
"nav": {
|
||||||
|
"menu": "Menu",
|
||||||
|
"refresh": "Actualiser",
|
||||||
|
"markAllRead": "Marquer tout comme lu",
|
||||||
|
"notifications": "Notifications",
|
||||||
|
"view": "Affichage",
|
||||||
|
"settings": "Paramètres",
|
||||||
|
"minimize": "Réduire",
|
||||||
|
"maximize": "Agrandir"
|
||||||
|
},
|
||||||
|
"menu": {
|
||||||
|
"close": "Fermer le menu",
|
||||||
|
"subscriptions": "Abonnements"
|
||||||
|
},
|
||||||
|
"article": {
|
||||||
|
"empty": "Pas d'articles",
|
||||||
|
"untitled": "(Sans titre)",
|
||||||
|
"hide": "Masquer l'article",
|
||||||
|
"unhide": "Afficher l'article",
|
||||||
|
"markRead": "Marquer comme lu",
|
||||||
|
"markUnread": "Marquer comme non lu",
|
||||||
|
"star": "Mettre en favori",
|
||||||
|
"unstar": "Supprimer le favori",
|
||||||
|
"fontSize": "Taille de la police",
|
||||||
|
"loadWebpage": "Charger la page web"
|
||||||
|
},
|
||||||
|
"context": {
|
||||||
|
"read": "Lu",
|
||||||
|
"copyTitle": "Copier le titre",
|
||||||
|
"copyURL": "Copier le lien",
|
||||||
|
"copy": "Copier",
|
||||||
|
"search": "Rechercher \"{text}\" sur Google",
|
||||||
|
"view": "Affichage",
|
||||||
|
"cardView": "Vue par carte",
|
||||||
|
"listView": "vue par liste",
|
||||||
|
"filter": "Filtrer",
|
||||||
|
"unreadOnly": "Non lu uniquement",
|
||||||
|
"starredOnly": "Favoris uniquement",
|
||||||
|
"fullSearch": "Recherche dans le texte complet",
|
||||||
|
"showHidden": "Afficher les articles cachés",
|
||||||
|
"manageSources": "Gérer les sources"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"writeError": "Une erreur s'est produite lors de l'écriture du fichier.",
|
||||||
|
"name": "Paramètres",
|
||||||
|
"fetching": "Mise à jour des sources, veuillez patienter…",
|
||||||
|
"exit": "Fermer les paramètres",
|
||||||
|
"sources": "Sources",
|
||||||
|
"grouping": "Groupes",
|
||||||
|
"app": "Préférences",
|
||||||
|
"about": "À propos",
|
||||||
|
"version": "Version",
|
||||||
|
"shortcuts": "Raccourcis",
|
||||||
|
"openSource": "Open source",
|
||||||
|
"feedback": "Feedback"
|
||||||
|
},
|
||||||
|
"sources": {
|
||||||
|
"untitled": "Source",
|
||||||
|
"errorAdd": "Une erreur s'est produite lors de l'ajout de la source.",
|
||||||
|
"errorImport": "Erreur d'importation pour {count, plural, =1 {# source} other {# sources}}.",
|
||||||
|
"opmlFile": "Fichier OPML",
|
||||||
|
"name": "Nom de la source",
|
||||||
|
"editName": "Modifier le nom",
|
||||||
|
"fetchFrequency": "Limitation de la fréquence de collecte des données",
|
||||||
|
"unlimited": "Illimité",
|
||||||
|
"openTarget": "Mode d'ouverture par défaut des articles",
|
||||||
|
"delete": "Supprimer la source",
|
||||||
|
"add": "Ajouter la source",
|
||||||
|
"import": "Importer",
|
||||||
|
"export": "Exporter",
|
||||||
|
"rssText": "Texte complet RSS",
|
||||||
|
"loadWebpage": "Charger la page web",
|
||||||
|
"inputUrl": "Saisissez l'adresse URL",
|
||||||
|
"badUrl": "Adresse URL invalide",
|
||||||
|
"deleteWarning": "La source et tous les articles sauvegardés seront supprimés.",
|
||||||
|
"selected": "Source sélectionnée"
|
||||||
|
},
|
||||||
|
"groups": {
|
||||||
|
"type": "Type",
|
||||||
|
"group": "Groupe",
|
||||||
|
"source": "Source",
|
||||||
|
"capacity": "Contenu",
|
||||||
|
"exitGroup": "Retour aux groupes",
|
||||||
|
"deleteSource": "Supprimer du groupe",
|
||||||
|
"sourceHint": "Glisser-déposer les sources pour les réorganiser.",
|
||||||
|
"create": "Créer un groupe",
|
||||||
|
"selectedGroup": "Groupe sélectionné",
|
||||||
|
"selectedSource": "Source sélectionnée",
|
||||||
|
"enterName": "Saisissez un nom",
|
||||||
|
"editName": "Modifier le nom",
|
||||||
|
"deleteGroup": "Supprimer le groupe",
|
||||||
|
"chooseGroup": "Selectionner un groupe",
|
||||||
|
"addToGroup": "Ajouter à ...",
|
||||||
|
"groupHint": "Double-cliquez sur le groupe pour modifier ses sources. Faites un glisser-déposer pour réorganiser les sources."
|
||||||
|
},
|
||||||
|
"app": {
|
||||||
|
"cleanup": "Nettoyage",
|
||||||
|
"cache": "Supprimer le cache",
|
||||||
|
"cacheSize": "{size} de données mises en cache",
|
||||||
|
"deleteChoices": "Supprimer les articles antérieurs à ... jours",
|
||||||
|
"confirmDelete": "Supprimer",
|
||||||
|
"daysAgo": "{days} jours",
|
||||||
|
"deleteAll": "Supprimer tous les articles",
|
||||||
|
"calculatingSize": "Calcul de la taille...",
|
||||||
|
"itemSize": "Environ {size} du stockage local est occupé par des articles",
|
||||||
|
"confirmImport": "Voulez-vous vraiment importer des données du fichier de sauvegarde ? Toutes les données actuelles seront effacées.",
|
||||||
|
"data": "Données de l'appplication",
|
||||||
|
"backup": "Sauvegarder",
|
||||||
|
"restore": "Restorer",
|
||||||
|
"frData": "Données de Fluent Reader",
|
||||||
|
"language": "Langue d'affichage",
|
||||||
|
"theme": "Thème",
|
||||||
|
"lightTheme": "Mode jour",
|
||||||
|
"darkTheme": "Mode nuit",
|
||||||
|
"enableProxy": "Activer le Proxy",
|
||||||
|
"badUrl": "Adresse URL invalide",
|
||||||
|
"pac": "Adresse PAC",
|
||||||
|
"setPac": "Définir PAC",
|
||||||
|
"pacHint": "Pour les proxies Sockets, il est recommandé que le PAC retourne \"SOCKS5\" pour le DNS côté proxies. La désactivation du proxy nécessite un redémarrage."
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue