diff --git a/locale/fr.yml b/locale/fr.yml index 3ef6f191..8049dfeb 100644 --- a/locale/fr.yml +++ b/locale/fr.yml @@ -1,140 +1,141 @@ fr: - no new messages: ~ - 1 of 1 nodes online: ~ - 'uptime 00:00:00': ~ + no new messages: 0 nouveau message + 1 of 1 nodes online: 1 sur 1 noeud actif + 'uptime 00:00:00': 'Activité: 00:00:00' "Heap: 0\nLVGL: 0": ~ - DEL: ~ - 'User name: ': ~ - 'Modem Preset: LONG FAST': ~ - 'Channel: LongFast': ~ - 'Role: Client': ~ - 'Screen Timeout: 60s': ~ - 'Screen Lock: off': ~ + DEL: DEL + 'User name: ': 'Nom:' + 'Modem Preset: LONG FAST': 'Préréglages: LONG FAST' + 'Channel: LongFast': 'Canal: LongFast' + 'Role: Client': 'Rôle: Client' + 'Screen Timeout: 60s': 'Extinction Écran: 60s' + 'Screen Lock: off': 'Verr. écran: off' 'Screen Brightness: 60%': ~ - 'Theme: Dark': ~ - 'Screen Calibration: default': ~ + 'Theme: Dark': 'Thème: Sombre' + "Screen Calibration: default": "Calibr. d'écran: défaut" 'Input Control: none/none': ~ - 'Message Alert Buzzer: on': ~ - 'Language: English': ~ - Configuration Reset: ~ - Reboot / Shutdown: ~ - Mesh Detector: ~ - Signal Scanner: ~ - Trace Route: ~ - Neighbors: ~ - Statistics: ~ - Packet Log: ~ + 'Message Alert Buzzer: on': 'Sonnerie: on' + 'Language: English': 'Langue: Français' + Configuration Reset: Réinitialisation + Reboot / Shutdown: Redémarrer / Arrêter + Mesh Detector: Détecteur de Mesh + Signal Scanner: Qualité du Signal + Trace Route: Trace route + Neighbors: Voisins + Statistics: Statistiques + Packet Log: Journaux de paquets Meshtastic: ~ - Group Channels: ~ - no messages: ~ - Settings & Tools: ~ - Settings (advanced): ~ - Locations Map: ~ - no chats: ~ - Node Search: ~ - Packet Statistics: ~ - Node Options: ~ - Short Name: ~ - Long Name: ~ - : ~ + Group Channels: Canaux de groupes + no messages: aucun message + Settings & Tools: Outils et Configuration + Settings (advanced): Configur. avancée + 'Locations Map': 'Carte / Localisations' + no chats: Aucune conversation + Node Search: Recherche noeud + Packet Statistics: Statistiques des paquets + Node Options: Options Noeud + Short Name: Nom court + Long Name: Nom complet + '': '' "LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO": ~ "Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker": ~ - 'Brightness: 60%': ~ - "Dark\nLight": ~ + 'Brightness: 60%': 'Luminosité: 60%' + "Dark\nLight": "Sombre\nLumineux" 'Timeout: 60s': ~ - Screen Lock: ~ - Lock PIN: ~ - Mouse: ~ + Screen Lock: Verrou. PIN + Lock PIN: Code PIN + Mouse: Souris none: ~ - Keyboard: ~ - Message Alert: ~ - Ringtone: ~ - Default: ~ - Zone: ~ - City: ~ - "NodeDB Reset\nFactory Reset": ~ - Channel Name: ~ - Pre-shared Key: ~ - Unknown: ~ - Offline: ~ - Public Key: ~ - Hops away: ~ - MQTT: ~ - Position: ~ - Name: ~ - Active Chat: ~ - Telemetry: ~ + Keyboard: Clavier + "Message Alert": "Notifications" + Ringtone: Sonnerie + Default: défaut + Zone: Zone + City: Ville + "NodeDB Reset\nFactory Reset": "Reinit. NodeDB\nReinit. Usine" + Channel Name: Nom du Canal + Pre-shared Key: Clé pré-partagée + Unknown: Inconnu + Offline: Hors ligne + Public Key: Clé Publique + Hops away: Sauts + MQTT: MQTT + Position: Position + Name: Nom + Active Chat: Chat Actif + Telemetry: Télémétrie IAQ: ~ - Start: ~ - "New Message from\n": ~ + Start: Marche + "New Message from\n": "Nouveau message de\\n" Resynch...: ~ OK: ~ - Cancel: ~ + Cancel: Annuler 'FrequencySlot: %d (%g MHz)': ~ - 'Brightness: %d%%': ~ - 'Timeout: off': ~ + 'Brightness: %d%%': 'Luminosité : %d%%' + 'Timeout: off': 'Timeout: désactivé' 'Timeout: %ds': ~ - 'Screen Calibration: %s': ~ - done: ~ - default: ~ - Stop: ~ - "choose\nnode": ~ - choose target node: ~ - 'heard: !%08x': ~ - 'Packet Log: %d': ~ - 'Language: %s': ~ - 'Screen Timeout: off': ~ - 'Screen Timeout: %ds': ~ - 'Screen Brightness: %d%%': ~ - 'Theme: %s': ~ - 'User name: %s': ~ - 'Device Role: %s': ~ - 'Region: %s': ~ - 'Modem Preset: %s': ~ - 'Channel: %s': ~ - 'Screen Lock: %s': ~ - 'on': ~ - 'off': ~ - 'Message Alert: %s': ~ + "Screen Calibration: %s": "Calibration d'écran: %s" + done: fait + default: défaut + Stop: Arrêt + "choose\nnode": "choix du\nnoeud" + choose target node: Choix du noeud cible + 'heard: !%08x': 'Vu: !%08x' + 'Packet Log: %d': 'Journaux des paquets: %d' + 'Language: %s': 'Langue: %s' + 'Screen Timeout: off': "Extin. d'écran: off" + 'Screen Timeout: %ds': "Écran allumé: %ds" + 'Screen Brightness: %d%%': "Luminosité d'écran: %d%%" + 'Theme: %s': 'Thème: %s' + 'User name: %s': 'Nom: %s' + 'Device Role: %s': 'Rôle: %s' + 'Region: %s': 'Region: %s' + 'Modem Preset: %s': 'Préréglages: %s' + 'Channel: %s': 'Canal: %s' + 'Screen Lock: %s': 'Verrou. PIN: %s' + 'on': 'On' + 'off': 'Off' + 'Message Alert: %s': 'Notifications: %s' Util %0.1f%% Air %0.1f%%: ~ - 'hops: %d': ~ - unknown: ~ - : ~ - '%d active chat(s)': ~ - "New message from \n%s": ~ + 'hops: %d': "sauts: %d" + unknown: inconnu + '': '' + '%d active chat(s)': "%d chat(s) actif(s)" + "New message from \n%s": "Nouveau message de:\n%s" 'Input Control: %s/%s': ~ - '%d of %d nodes online': ~ - Filtering ...: ~ - 'Filter: %d of %d nodes': ~ - now: ~ - '%d new message': ~ - '%d new messages': ~ - 'uptime: %02d:%02d:%02d': ~ + '%d of %d nodes online': "%d sur %d noeuds actifs" + Filtering ...: Filtrage ... + 'Filter: %d of %d nodes': 'Filtre: %d sur %d noeuds' + now: maintenant + '%d new message': '%d nouveau message' + '%d new messages': '%d nouveaux messages' + 'uptime: %02d:%02d:%02d': 'Activité: %02d:%02d:%02d' "Heap: %d (%d%%)\nLVGL: %d (%d%%)": ~ - Settings: ~ - Tools: ~ - Filter: ~ - Highlight: ~ - Primary Channel: ~ - Secondary Channels: ~ + Settings: Configuration + Tools: Outils + Filter: Filtrer + Highlight: Surbrillance + Primary Channel: Canal Primaire + Secondary Channels: Canaux Secondaires Resynch ...: ~ - Rebooting ...: ~ - Shutting down ...: ~ + Rebooting ...: Redémarrage ... + Shutting down ...: Arrêt... LoRa 0.0 MHz: ~ - silent: ~ - 'WiFi: ': ~ - 'Lock: off/off': ~ - LoRa TX off!: ~ - WiFi SSID: ~ - WiFi pre-shared Key: ~ - Settings Lock: ~ - 'Lock: %s/%s': ~ - Enter Text ...: ~ - '!Enter Filter ...': ~ - Enter Filter ...: ~ - 'WiFi: %s': ~ - : ~ - region unset: ~ - Banner & Sound: ~ - Banner only: ~ - Sound only: ~ + silent: silencieux + 'WiFi: ': 'WiFi: ' + 'Lock: off/off': 'Verrouillage: non/non' + LoRa TX off!: LoRa TX off! + WiFi SSID: SSID WiFi + WiFi pre-shared Key: Clé WiFi + Settings Lock: Verr. des param. + 'Lock: %s/%s': 'Verrouillage: %s/%s' + Enter Text ...: Écrire votre message... + '!Enter Filter ...': '!Filtrer...' + Enter Filter ...: Filtrer... + 'WiFi: %s': 'WiFi: %s' + '': '' + region unset: Région non configurée + Banner & Sound: Visuelle et sonore + Banner only: Alerte Visuelle + Sound only: Sonnerie Seule + no signal: aucun signal diff --git a/locale/lv_i18n.c b/locale/lv_i18n.c index 4f9b0427..85bddea1 100644 --- a/locale/lv_i18n.c +++ b/locale/lv_i18n.c @@ -474,6 +474,144 @@ static const lv_i18n_lang_t fi_lang = {.locale_name = "fi", .locale_plural_fn = fi_plural_fn}; +static lv_i18n_phrase_t fr_singulars[] = { + {"no new messages", "0 nouveau message"}, + {"1 of 1 nodes online", "1 sur 1 noeud actif"}, + {"DEL", "DEL"}, + {"User name: ", "Nom:"}, + {"Modem Preset: LONG FAST", "Préréglages: LONG FAST"}, + {"Modem Preset: %s", "Préréglages: %s"}, + {"Channel: LongFast", "Canal: LongFast"}, + {"Role: Client", "Rôle: Client"}, + {"Screen Timeout: 60s", "Extinction Écran: 60s"}, + {"Screen Brightness: 60%", "Luminosité: 60%"}, + {"Screen Calibration: default", "Calibr. d'écran: défaut"}, + {"Message Alert Buzzer: on", "Sonnerie: on"}, + {"Language: English", "Langue: Français"}, + {"Configuration Reset", "Réinitialisation"}, + {"Reboot / Shutdown", "Redémarrer / Arrêter"}, + {"Group Channels", "Canaux de groupes"}, + {"no messages", "aucun message"}, + {"Settings", "Configuration"}, + {"Settings (advanced)", "Configur. avancée"}, + {"Locations Map", "Carte / Localisations"}, + {"no chats", "Aucune conversation"}, + {"Node Options", "Options Noeud"}, + {"Short Name", "Nom court"}, + {"Long Name", "Nom complet"}, + {"", ""}, + {"Brightness: 60%", "Luminosité: 60%"}, + {"Mouse", "Souris"}, + {"Keyboard", "Clavier"}, + {"Message Alert", "Notifications"}, + {"NodeDB Reset\nFactory Reset", "Reinit. NodeDB\nReinit. Usine"}, + {"Channel Name", "Nom du Canal"}, + {"Pre-shared Key", "Clé pré-partagée"}, + {"New Message from\\n", "Nouveau message de\\n"}, + {"User name: %s", "Nom: %s"}, + {"Device Role: %s", "Rôle: %s"}, + {"Screen Calibration: %s", "Calibration d'écran: %s"}, + {"done", "fait"}, + {"default", "défaut"}, + {"Region: %s", "Region: %s"}, + {"Channel: %s", "Canal: %s"}, + {"Language: %s", "Langue: %s"}, + {"Screen Lock: off", "Verr. écran: off"}, + {"Theme: Dark", "Thème: Sombre"}, + {"Mesh Detector", "Détecteur de Mesh"}, + {"Signal Scanner", "Qualité du Signal"}, + {"Trace Route", "Traceroute"}, + {"Neighbors", "Voisins"}, + {"Statistics", "Statistiques"}, + {"Packet Log", "Journaux de paquets"}, + {"Settings & Tools", "Outils et Configuration"}, + {"Node Search", "Recherche noeud"}, + {"Screen Lock", "Verrou. PIN"}, + {"Lock PIN", "Code PIN"}, + {"Ringtone", "Sonnerie"}, + {"Zone", "Zone"}, + {"City", "Ville"}, + {"Unknown", "Inconnu"}, + {"Offline", "Hors ligne"}, + {"Public Key", "Clé Publique"}, + {"Hops away", "Sauts"}, + {"Position", "Position"}, + {"Name", "Nom"}, + {"Active Chat", "Chat Actif"}, + {"Telemetry", "Télémétrie"}, + {"Start", "Marche"}, + {"Theme: %s", "Thème: %s"}, + {"Packet Statistics", "Statistiques des paquets"}, + {"LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO", + "LONG FAST\nLONG SLOW\n-- obsoleto --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"}, + {"Client\nClient Mute\nRouter\n-- deprecated --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker", + "Client\nClient Mute\nRouter\n-- obsoleto --\nRepeater\nTracker\nSensor\nTAK\nClient Hidden\nLost & Found\nTAK Tracker"}, + {"Dark\nLight", "Sombre\nLumineux"}, + {"Cancel", "Annuler"}, + {"Brightness: %d%%", "Luminosité : %d%%"}, + {"Stop", "Arrêt"}, + {"choose\nnode", "choix du\nnoeud"}, + {"choose target node", "Choix du noeud cible"}, + {"heard: !%08x", "Vu: !%08x"}, + {"Packet Log: %d", "Journaux des paquets: %d"}, + {"Screen Timeout: off", "Extin. d'écran: off"}, + {"Screen Timeout: %ds", "Écran allumé: %ds"}, + {"Screen Brightness: %d%%", "Luminosité d'écran: %d%%"}, + {"Screen Lock: %s", "Verrou. PIN: %s"}, + {"on", "On"}, + {"off", "Off"}, + {"Message Alert: %s", "Notifications: %s"}, + {"Util %0.1f%% Air %0.1f%%", "Util %0.1f%% Air %0.1f%%"}, + {"hops: %d", "sauts: %d"}, + {"unknown", "inconnu"}, + {"", ""}, + {"%d active chat(s)", "%d chat(s) actifs"}, + {"New message from \n%s", "Nouveau message de:\n%s"}, + {"%d of %d nodes online", "%d sur %d noeuds actifs"}, + {"Filtering ...", "Filtrage ..."}, + {"Filter: %d of %d nodes", "Filtre: %d sur %d noeuds"}, + {"now", "maintenant"}, + {"%d new message", "%d nouveau message"}, + {"%d new messages", "%d nouveaux messages"}, + {"uptime: %02d:%02d:%02d", "Activité: %02d:%02d:%02d"}, + {"uptime 00:00:00", "Activité: 00:00:00"}, + {"Tools", "Outils"}, + {"Filter", "Filtrer"}, + {"Highlight", "Surbrillance"}, + {"Primary Channel", "Canal Primaire"}, + {"Secondary Channels", "Canaux Secondaires"}, + {"Resynch ...", "Resynch ..."}, + {"Rebooting ...", "Redémarrage ..."}, + {"Shutting down ...", "Arrêt..."}, + {"silent", "silencieux"}, + {"WiFi: ", "WiFi: "}, + {"WiFi: %s", "WiFi: %s"}, + {"LoRa TX off!", "LoRa TX off!"}, + {"WiFi SSID", "SSID WiFi"}, + {"WiFi pre-shared Key", "Clé WiFi"}, + {"", ""}, + {"Banner & Sound", "Visuelle et sonore"}, + {"Banner only", "Alerte Visuelle"}, + {"Sound only", "Sonnerie Seule"}, + {"Lock: off/off", "Verrouillage: non/non"}, + {"Settings Lock", "Verr. des param."}, + {"Lock: %s/%s", "Verrouillage: %s/%s"}, + {"Enter Text ...", "Écrire votre message..."}, + {"!Enter Filter ...", "!Filtrer ..."}, + {"Enter Filter ...", "Filtrer ..."}, + {"region unset", "Région non configurée"}, + {"no signal", "aucun signal"}, + {NULL, NULL} // End mark +}; + +static lv_i18n_phrase_t fr_plurals_one[] = { + {"%d active chat(s)", "%d chat actif"}, {"%d sur %d nodes online", "1 noeud connecté"}, {NULL, NULL} // End mark +}; + +static lv_i18n_phrase_t fr_plurals_other[] = { + {"%d active chat(s)", "%d chats actifs"}, {"%d of %d nodes online", "%d/%d noeuds connectés"}, {NULL, NULL} // End mark +}; + static uint8_t fr_plural_fn(int32_t num) { uint32_t n = op_n(num); @@ -487,8 +625,10 @@ static uint8_t fr_plural_fn(int32_t num) } static const lv_i18n_lang_t fr_lang = {.locale_name = "fr", - - .locale_plural_fn = fr_plural_fn}; + .singulars = fr_singulars, + .plurals[LV_I18N_PLURAL_TYPE_ONE] = fr_plurals_one, + .plurals[LV_I18N_PLURAL_TYPE_OTHER] = fr_plurals_other, + .locale_plural_fn = fr_plural_fn}; static lv_i18n_phrase_t it_singulars[] = { {"no new messages", "nessun messaggio"},