v2.0: Full localization (6 languages), first-run language screen, aircraft detail overhaul, aircraft-model API fallback, and multiple bugfixes

This commit is contained in:
Eiswolf-BG
2026-08-04 01:32:44 +02:00
parent 4e8bfcd30c
commit 665130e8bb
45 changed files with 2705 additions and 240 deletions

138
src/i18n_fr.h Normal file
View File

@@ -0,0 +1,138 @@
#pragma once
#include "i18n.h"
static const char* const I18N_FR[] = {
"OK",
"Annuler",
"Retour",
"< Retour",
"Chargement...",
"Ajouter",
"ON",
"OFF",
"Jamais",
"Carte SD: OK",
"Connexion WiFi...",
"WiFi OK: ",
"ECHEC WiFi",
"Localisation...",
"Pret !",
"Pour cette appli une",
"carte SD est",
"requise",
"Inserez une carte et redemarrez l'appareil",
"Etalonnage tactile",
"Touchez le cercle :",
"Haut gauche",
"Haut droite",
"Bas droite",
"Bas gauche",
"Etalonnage enregistre !",
"Recherche WiFi...",
"Aucun reseau trouve",
"Choisir WiFi :",
"Connecte !",
"Echec de connexion.",
"Retour a la liste...",
"Mot de passe :",
"Espace",
"Connecter",
"Retour a la liste",
"Deja 3 reseaux enregistres.",
"Supprimez-en un d'abord.",
"Connexion...",
"WiFi : ",
"Reglages",
"Reglages (2/2)",
"Etalonner le tactile",
"Ecran : inverse (touchez)",
"Ecran : normal (touchez)",
"Gerer les reseaux WiFi",
"Positions enregistrees",
"Extinction ecran : ",
"Statistiques",
"Fichiers du journal",
"Plus de reglages >",
"Alerte urgence : ",
"LED de proximite : ",
"Battement LED : ",
"Journal de vol : ",
"Masquer vehicules au sol : ",
"Filtre compagnies",
"Sauvegarder reglages",
"Restaurer reglages",
"Sauvegarde enregistree.",
"Echec de la sauvegarde.",
"Restaure. Redemarrez l'appareil !",
"Echec de la restauration.",
"Langue",
"Unites",
"Compagnies masquees",
"Les avions de ces compagnies sont",
"masques du radar.",
"Ajouter une compagnie",
"Ajouter (code OACI)",
"Positions enregistrees",
"Auto (GPS/IP)",
"Position",
"(vide)",
"Ajouter une position",
"Latitude (ex. 48.6833)",
"Longitude (ex. 9.8333)",
"Statistiques",
"Avions enregistres aujourd'hui",
"Avions enregistres au total",
"Jours avec observations",
"Moyenne par jour",
"Reinitialiser le journal",
"Retouchez pour confirmer !",
"Journal reinitialise.",
"Duree de fonctionnement : ",
"Fichiers du journal",
"Aucune entree pour le moment.",
"Affichage des ",
" derniers sur ",
" jours",
" avions",
"Touchez pour les details",
"Modele : ",
"Type : ",
"chargement...",
"inconnu",
"Alt. : ",
"Vitesse : ",
"Dist. : ",
"Cap : ",
"Sieges (estime) : ",
"Sieges : inconnu",
"Touchez ailleurs pour fermer",
"Montee : ",
"Descente : ",
"Vol en palier",
"Squawk : ",
"Enregistre : ",
"Echec de la capture d'ecran",
"Unites",
"Auto (selon la position)",
"Metrique (km, m, km/h)",
"Imperial (ft, kt, nm)",
"Langue",
};
static_assert(sizeof(I18N_FR) / sizeof(I18N_FR[0]) == (size_t)StringId::COUNT,
"I18N_FR table size must match StringId::COUNT");