From 8e05c252731897a0931c08e9efcfa138e3c369b4 Mon Sep 17 00:00:00 2001 From: Hugues Tavernier Date: Sat, 31 Aug 2024 22:21:20 +0200 Subject: [PATCH] add french language support --- .gitignore | 3 + i18next-parser.config.ts | 2 +- src/i18n.ts | 1 + src/locales/fr/translation.json | 192 ++++++++++++++++++++++++++++++++ 4 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 src/locales/fr/translation.json diff --git a/.gitignore b/.gitignore index 7fef4e63..d9cb3aaf 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,6 @@ public /cypress/screenshots /dist/ /desktop/version.go + +# IDE +.vscode/ diff --git a/i18next-parser.config.ts b/i18next-parser.config.ts index 02551f08..9503e147 100644 --- a/i18next-parser.config.ts +++ b/i18next-parser.config.ts @@ -1,6 +1,6 @@ export default { output: 'src/locales/$LOCALE/$NAMESPACE.json', - locales: [ 'ja', 'he','zh' ], + locales: [ 'fr', 'ja', 'he','zh' ], // Because some keys are dynamically generated, i18next-parser can't detect them. // We add these keys manually, so we don't want to remove them. diff --git a/src/i18n.ts b/src/i18n.ts index 765e498e..cfd530d5 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -4,6 +4,7 @@ import resourcesToBackend from "i18next-resources-to-backend"; import { initReactI18next } from "react-i18next"; export const supportedLanguages = { + "fr": "Français", "en": "English", "ja": "日本語", "he": "עברית", diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json new file mode 100644 index 00000000..6852a3e0 --- /dev/null +++ b/src/locales/fr/translation.json @@ -0,0 +1,192 @@ +{ + "Input value": "Valeur d'entrée", + "Data value": "Valeur des données", + "Output value": "Valeur de sortie", + "Function": "Fonction", + "Select a type of data scale (default is 'categorical').": "Sélectionnez un type d'échelle de données (par défaut 'categorical').", + "Base": "Base", + "Input a data property to base styles off of.": "Entrez une propriété de données pour baser les styles.", + "Default": "Par défaut", + "Stops": "Arrêts", + "Zoom": "Zoom", + "Add stop": "Ajouter un arrêt", + "Convert to expression": "Convertir en expression", + "Remove zoom level from stop": "Supprimer le niveau de zoom de l'arrêt", + "Revert from expression": "Annuler l'expression", + "Delete expression": "Supprimer l'expression", + "Convert property into a zoom function": "Convertir la propriété en fonction de zoom", + "Convert property to data function": "Convertir la propriété en fonction de données", + "Layer <1>{formatLayerId(layerId)}: {parsed.data.message}": "Calque <1>{formatLayerId(layerId)} : {parsed.data.message}", + "switch to layer": "changer de calque", + "Map": "Carte", + "Inspect": "Inspecter", + "Deuteranopia filter": "Filtre Deutéranopie", + "Protanopia filter": "Filtre Protanopie", + "Tritanopia filter": "Filtre Tritanopie", + "Achromatopsia filter": "Filtre Achromatopsie", + "Layers list": "Liste des calques", + "Layer editor": "Éditeur de calque", + "Map view": "Vue de la carte", + "Maputnik on GitHub": "Maputnik sur GitHub", + "Open": "Ouvrir", + "Export": "Exporter", + "Data Sources": "Sources de données", + "Style Settings": "Paramètres du style", + "View": "Vue", + "Color accessibility": "Accessibilité des couleurs", + "Language": "Langue", + "Help": "Aide", + "Comments for the current layer. This is non-standard and not in the spec.": "Commentaires pour le calque actuel. Ceci n'est pas standard et n'est pas dans la spécification.", + "Comments": "Commentaires", + "Comment...": "Votre commentaire...", + "Max Zoom": "Zoom max", + "Min Zoom": "Zoom min", + "Source": "Source", + "Source Layer": "Calque Source", + "Type": "Type", + "Nested filters are not supported.": "Les filtres imbriqués ne sont pas pris en charge.", + "Upgrade to expression": "Mettre à niveau vers une expression", + "Filter": "Filtre", + "every filter matches": "tous les filtres correspondent", + "no filter matches": "aucun filtre ne correspond", + "any filter matches": "l'un des filtres correspond", + "Add filter": "Ajouter un filtre", + "You've entered an old style filter.": "Vous avez entré un ancien style de filtre.", + "Switch to filter editor.": "Passer à l'éditeur de filtre.", + "Delete filter block": "Supprimer le bloc de filtre", + "Add value": "Ajouter une valeur", + "Remove array item": "Supprimer l'élément de tableau", + "Press <1>ESC to lose focus": "Appuyez sur <1>Échap pour perdre le focus", + "Must provide protocol: <1>https://": "Protocole requis : <1>https://", + "Must provide protocol: <1>http:// or <3>https://": "Protocole requis : <1>http:// ou <3>https://", + "CORS policy won't allow fetching resources served over http from https, use a <1>https:// domain": "La politique CORS ne permet pas de récupérer des ressources servies sur http depuis https, utilisez un protocole <1>https://", + "Layer": "Calque", + "JSON Editor": "Éditeur JSON", + "Delete": "Supprimer", + "Duplicate": "Dupliquer", + "Show": "Afficher", + "Hide": "Cacher", + "Move layer up": "Monter le calque", + "Move layer down": "Descendre le calque", + "Layer: {{layerId}}": "Calque : {{layerId}}", + "Layers": "Calques", + "Collapse": "Réduire", + "Expand": "Développer", + "Add Layer": "Ajouter un calque", + "Zoom:": "Zoom :", + "Search": "Recherche", + "Close popup": "Fermer la fenêtre", + "cursor:": "curseur :", + "center:": "centre :", + "rotation:": "rotation :", + "Close modal": "Fermer la fenêtre modale", + "Debug": "Déboguer", + "Options": "Options", + "<0>Open in OSM — Opens the current view on openstreetmap.org": "<0>Ouvrir dans OSM — Ouvre la vue actuelle sur openstreetmap.org", + "Export Style": "Exporter le style", + "Download Style": "Télécharger le style", + "Download a JSON style to your computer.": "Téléchargez un style JSON sur votre ordinateur.", + "Download HTML": "Télécharger HTML", + "Cancel": "Annuler", + "Open Style": "Ouvrir le style", + "Upload Style": "Transférer un style", + "Upload a JSON style from your computer.": "Transférer un style JSON depuis votre ordinateur.", + "Style file": "Fichier de style", + "Upload": "Transférer", + "Load from URL": "Charger depuis une URL", + "Load from a URL. Note that the URL must have <1>CORS enabled.": "Charger depuis une URL. Notez que l'URL doit avoir les <1>CORS activés.", + "Style URL": "URL du style", + "Enter URL...": "Entrez l'URL...", + "Gallery Styles": "Styles de la galerie", + "Open one of the publicly available styles to start from.": "Ouvrez l'un des styles publics disponibles pour commencer.", + "Loading style": "Chargement du style", + "Loading: {{requestUrl}}": "Chargement : {{requestUrl}}", + "Name": "Nom", + "Owner": "Propriétaire", + "Owner ID of the style. Used by Mapbox or future style APIs.": "ID du propriétaire du style. Utilisé par Mapbox ou les futures API de style.", + "Sprite URL": "URL du sprite", + "Glyphs URL": "URL des glyphes", + "Center": "Centre", + "Bearing": "Orientation", + "Pitch": "Inclinaison", + "Light anchor": "Ancrage de la lumière", + "Light color": "Couleur de la lumière", + "Light intensity": "Intensité de la lumière", + "Light position": "Position de la lumière", + "Terrain source": "Source du terrain", + "Terrain exaggeration": "Exagération du terrain", + "Transition delay": "Délai de transition", + "Transition duration": "Durée de transition", + "Open Layers (experimental)": "Open Layers (expérimental)", + "Shortcuts menu": "Menu des raccourcis", + "Open modal": "Ouvrir (modale)", + "Export modal": "Exporter (modale)", + "Data Sources modal": "Sources de données (modale)", + "Style Settings modal": "Paramètres de style (modale)", + "Toggle inspect": "Activer/désactiver l'inspection", + "Focus map": "Focus sur la carte", + "Debug modal": "Déboguer (modale)", + "Increase the zoom level by 1.": "Augmenter le niveau de zoom de 1.", + "Increase the zoom level by 2.": "Augmenter le niveau de zoom de 2.", + "Decrease the zoom level by 1.": "Diminuer le niveau de zoom de 1.", + "Decrease the zoom level by 2.": "Diminuer le niveau de zoom de 2.", + "Pan up by 100 pixels.": "Déplacer vers le haut de 100 pixels.", + "Pan down by 100 pixels.": "Déplacer vers le bas de 100 pixels.", + "Pan left by 100 pixels.": "Déplacer vers la gauche de 100 pixels.", + "Pan right by 100 pixels.": "Déplacer vers la droite de 100 pixels.", + "Increase the rotation by 15 degrees.": "Augmenter l'angle de rotation de 15 degrés.", + "Decrease the rotation by 15 degrees.": "Diminuer l'angle de rotation de 15 degrés.", + "Increase the pitch by 10 degrees.": "Augmenter l'inclinaison de 10 degrés.", + "Decrease the pitch by 10 degrees.": "Diminuer l'inclinaison de 10 degrés.", + "Shortcuts": "Raccourcis", + "Press <1>ESC to lose focus of any active elements, then press one of:": "Appuyez sur <1>Échap pour perdre le focus des éléments actifs, puis appuyez sur l'un des éléments suivants :", + "If the Map is in focused you can use the following shortcuts": "Si la carte a le focus, vous pouvez utiliser les raccourcis suivants", + "Remove '{{sourceId}}' source": "Supprimer la source '{{sourceId}}'", + "Source ID": "ID de la source", + "Unique ID that identifies the source and is used in the layer to reference the source.": "ID unique qui identifie la source et est utilisé dans le calque pour référencer la source.", + "Source Type": "Type de source", + "GeoJSON (JSON)": "GeoJSON (JSON)", + "GeoJSON (URL)": "GeoJSON (URL)", + "Vector (TileJSON URL)": "Vecteur (URL TileJSON)", + "Vector (XYZ URLs)": "Vecteur (URLs XYZ)", + "Raster (TileJSON URL)": "Raster (URL TileJSON)", + "Raster (XYZ URL)": "Raster (URL XYZ)", + "Raster DEM (TileJSON URL)": "Raster DEM (URL TileJSON)", + "Raster DEM (XYZ URLs)": "Raster DEM (URLs XYZ)", + "Image": "Image", + "Video": "Vidéo", + "Add Source": "Ajouter une source", + "Sources": "Sources", + "Active Sources": "Sources actives", + "Choose Public Source": "Choisir une source publique", + "Add one of the publicly available sources to your style.": "Ajoutez l'une des sources publiques disponibles à votre style.", + "Add New Source": "Ajouter une nouvelle source", + "Add a new source to your style. You can only choose the source type and id at creation time!": "Ajoutez une nouvelle source à votre style. Vous ne pouvez choisir le type et l'ID de la source qu'au moment de la création !", + "TileJSON URL": "URL TileJSON", + "Tile URL": "URL de la tuile", + "Coord top left": "Coordonnée en haut à gauche", + "Coord top right": "Coordonnée en haut à droite", + "Coord bottom right": "Coordonnée en bas à droite", + "Coord bottom left": "Coordonnée en bas à gauche", + "Image URL": "URL de l'image", + "Video URL": "URL de la vidéo", + "GeoJSON URL": "URL GeoJSON", + "GeoJSON": "GeoJSON", + "Cluster": "Cluster", + "Encoding": "Encodage", + "Error:": "Erreur :", + "MapTiler Access Token": "Jeton d'accès MapTiler", + "Public access token for MapTiler Cloud.": "Jeton d'accès public pour MapTiler Cloud.", + "Thunderforest Access Token": "Jeton d'accès Thunderforest", + "Public access token for Thunderforest services.": "Jeton d'accès public pour les services Thunderforest.", + "Style Renderer": "Moteur de rendu pour le style", + "Choose the default Maputnik renderer for this style.": "Choisissez le moteur de rendu Maputnik par défaut pour ce style.", + "Layer options": "Options du calque", + "Paint properties": "Propriétés de peinture", + "Layout properties": "Propriétés de mise en page", + "General layout properties": "Propriétés générales de mise en page", + "Text layout properties": "Propriétés de mise en page du texte", + "Icon layout properties": "Propriétés de mise en page de l'icône", + "Text paint properties": "Propriétés de peinture du texte", + "Icon paint properties": "Propriétés de peinture de l'icône" +}