diff --git a/radio/src/fonts/sqt5/font_cz_04x06.png b/radio/src/fonts/sqt5/font_cz_04x06.png index 6e72a100e..25f02826e 100644 Binary files a/radio/src/fonts/sqt5/font_cz_04x06.png and b/radio/src/fonts/sqt5/font_cz_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_cz_05x07.png b/radio/src/fonts/sqt5/font_cz_05x07.png index f7018789e..13c265c5b 100644 Binary files a/radio/src/fonts/sqt5/font_cz_05x07.png and b/radio/src/fonts/sqt5/font_cz_05x07.png differ diff --git a/radio/src/fonts/sqt5/font_cz_08x10.png b/radio/src/fonts/sqt5/font_cz_08x10.png index 25570dedb..8942cd61c 100644 Binary files a/radio/src/fonts/sqt5/font_cz_08x10.png and b/radio/src/fonts/sqt5/font_cz_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_cz_10x14.png b/radio/src/fonts/sqt5/font_cz_10x14.png index 505a8b194..af2c741da 100644 Binary files a/radio/src/fonts/sqt5/font_cz_10x14.png and b/radio/src/fonts/sqt5/font_cz_10x14.png differ diff --git a/radio/src/fonts/std/font_cz_04x06.png b/radio/src/fonts/std/font_cz_04x06.png index eae7f811d..5556a5f0e 100644 Binary files a/radio/src/fonts/std/font_cz_04x06.png and b/radio/src/fonts/std/font_cz_04x06.png differ diff --git a/radio/src/fonts/std/font_cz_05x07.png b/radio/src/fonts/std/font_cz_05x07.png index ff685bdb6..0011019c2 100644 Binary files a/radio/src/fonts/std/font_cz_05x07.png and b/radio/src/fonts/std/font_cz_05x07.png differ diff --git a/radio/src/fonts/std/font_cz_08x10.png b/radio/src/fonts/std/font_cz_08x10.png index 6870d08b7..7729328f4 100644 Binary files a/radio/src/fonts/std/font_cz_08x10.png and b/radio/src/fonts/std/font_cz_08x10.png differ diff --git a/radio/src/fonts/std/font_cz_10x14.png b/radio/src/fonts/std/font_cz_10x14.png index 3d2c93f3f..d86f8ab7c 100644 Binary files a/radio/src/fonts/std/font_cz_10x14.png and b/radio/src/fonts/std/font_cz_10x14.png differ diff --git a/radio/src/gui/common/stdlcd/utf8.cpp b/radio/src/gui/common/stdlcd/utf8.cpp index 4f3aa0ba1..784448f9c 100644 --- a/radio/src/gui/common/stdlcd/utf8.cpp +++ b/radio/src/gui/common/stdlcd/utf8.cpp @@ -28,6 +28,26 @@ static wchar_t _utf8_lut[] = { L'é', L'è', L'à', L'î', L'ç', }; + +#if !defined(COLORLCD) +#define UTF8_SUBS_LUT +static wchar_t _utf8_substitution_lut[] = { + L'Â', L'A', + L'À', L'A', + L'Ê', L'E', + L'É', L'E', + L'È', L'E', +/* Existing but virtually unsused + L'Ä', L'A', + L'Ë', L'E', + L'Ï', L'I', + L'Ö', L'O', + L'Ü', L'U', + L'Û', L'U', + L'Ù', L'U', + */ +}; +#endif #elif defined(TRANSLATIONS_DA) static wchar_t _utf8_lut[] = { L'å', L'æ', L'ø', L'Å', L'Æ', L'Ø', @@ -38,10 +58,24 @@ static wchar_t _utf8_lut[] = { }; #elif defined(TRANSLATIONS_CZ) static wchar_t _utf8_lut[] = { - L'á', L'č', L'é', L'ě', L'í', L'ó', L'ř', - L'š', L'ú', L'ů', L'ý', L'Í', L'Ř', L'Ý', - L'ž', L'É', + L'á', L'č', L'é', L'ě', L'í', L'ó', L'ř', + L'š', L'ú', L'ů', L'ý', L'Á', L'Í', L'Ř', + L'Ý', L'ž', L'É', L'ň', }; + +#if !defined(COLORLCD) +#define UTF8_SUBS_LUT +static wchar_t _utf8_substitution_lut[] = { + L'Ě', L'ě', + L'Š', L'š', + L'Č', L'č', + L'Ž', L'ž', + L'Ú', L'ú', + L'Ů', L'ů', + L'Ó', L'ó', + L'Ň', L'ň', +}; +#endif #elif defined(TRANSLATIONS_ES) static wchar_t _utf8_lut[] = { L'Ñ', L'ñ', L'Á', L'á', L'É', L'é', L'Í', @@ -80,6 +114,17 @@ static unsigned char lookup_utf8_mapping(wchar_t w) } #endif +#if defined(UTF8_SUBS_LUT) +static wchar_t lookup_utf8_substitution(wchar_t w) +{ + for (uint32_t i=0; i < DIM(_utf8_substitution_lut); i+=2) { + if (w == _utf8_substitution_lut[i]) + return _utf8_substitution_lut[i+1]; + } + return w; +} +#endif + unsigned char map_utf8_char(const char*& s, uint8_t& len) { uint8_t c = *s; @@ -107,7 +152,12 @@ unsigned char map_utf8_char(const char*& s, uint8_t& len) return STR_CHAR_BW_GREATEREQUAL; if(w == L'°') return STR_CHAR_BW_DEGREE; -#if !defined(NO_UTF8_LUT) +#if defined(UTF8_SUBS_LUT) + auto w_map = lookup_utf8_substitution(w); + if (w_map> 0x95) + w_map = lookup_utf8_mapping(w_map); + return w_map; +#elif !defined(NO_UTF8_LUT) return lookup_utf8_mapping(w); #else return 0x20; diff --git a/radio/src/translations/fr.h b/radio/src/translations/fr.h index a427bcb12..41c6f977c 100644 --- a/radio/src/translations/fr.h +++ b/radio/src/translations/fr.h @@ -52,8 +52,10 @@ #define TR_TRNMODE "OFF",TR("+=","Ajoute"),TR(":=","Remplace") #define TR_TRNCHN "CH1","CH2","CH3","CH4" #define TR_AUX_SERIAL_MODES "OFF","Recopie Télém.","Télémétrie In","Écolage SBUS","LUA","CLI","GPS","Débug","SpaceMouse","Module externe" -#define TR_SWTYPES "Rien","Inter","2-POS","3-POS" + +#define TR_SWTYPES "Rien","Monostable","2-POS","3-POS" #define TR_POTTYPES "Rien",TR("Pots av. ctr","Pots avec centre"),TR("Multipos.","Inter multi-pos""Potentiomètre"),TR("Pots","Potentiomètre"),"Curseurs" + #define TR_VPERSISTENT "OFF","Vol","Reset Manuel" #define TR_COUNTRY_CODES TR("US","USA"),TR("JP","Japon"),TR("Europe","EU") #define TR_USBMODES TR("Popup","Demander"),TR("Joyst","Joystick"),TR("SDCard","Stockage"),"Série" @@ -288,7 +290,7 @@ #define TR_CHECKTRIMS "\006Vérif\012Trims" #endif #define OFS_CHECKTRIMS (9*FW) -#define TR_SWASHTYPE TR("Type de Plat.", "Type de plateau") +#define TR_SWASHTYPE "Type de plateau" #define TR_COLLECTIVE TR("Collectif", "Source collectif") #define TR_AILERON "Source cyc. lat." #define TR_ELEVATOR "Source cyc. lon." @@ -384,7 +386,7 @@ #define TR_TIMEZONE "Fuseau horaire" #define TR_ADJUST_RTC TR("Ajust. RTC", "Ajust. heure auto") #define TR_GPS "GPS" -#define TR_DEF_CHAN_ORD TR("Ordre can. prédéf.", "Ordre canaux prédéfinis") +#define TR_DEF_CHAN_ORD TR("Ordre ch déf.", "Ordre canaux prédéfinis") #define TR_STICKS "Manches" #define TR_POTS "Potentiomètres" #define TR_SWITCHES "Inters" @@ -444,12 +446,12 @@ #define TR_MODEL "MODÈLE" #define TR_FM "PV" #define TR_EEPROMLOWMEM "EEPROM pleine!" -#define TR_PRESS_ANY_KEY_TO_SKIP "Toucher pour ignorer" +#define TR_PRESS_ANY_KEY_TO_SKIP "Touche pour ignorer" #define TR_THROTTLE_NOT_IDLE "Gaz pas à zéro" #define TR_ALARMSDISABLED "Alarmes désactivées" -#define TR_PRESSANYKEY TR("Toucher pour continuer", "Toucher pour continuer") +#define TR_PRESSANYKEY "Appuyez sur une touche" #define TR_BADEEPROMDATA "EEPROM corrompue" -#define TR_BAD_RADIO_DATA "Absence ou erreur de donnée" +#define TR_BAD_RADIO_DATA "Données invalides" #define TR_RADIO_DATA_RECOVERED TR3("Utilisation des données radio sauvegardées","Utilisation des paramètres radio sauvegardées","Réglages Radio restaurés de la Sauvegarde") #define TR_RADIO_DATA_UNRECOVERABLE TR3("Réglages Radio invalides","Réglages Radio invalides", "Impossible lire réglages radio valides") #define TR_EEPROMFORMATTING "Formatage EEPROM" @@ -464,7 +466,7 @@ #define TR_MENU_RADIO_ANALOGS_CALIB "ANALOG. CALIBRÉS" #define TR_MENU_RADIO_ANALOGS_RAWLOWFPS "RAW ANALOGS (5 Hz)" #define TR_MENUCALIBRATION "CALIBRATION" -#define TR_MENU_FSWITCH "INTERS PARAMÉTRABLES" +#define TR_MENU_FSWITCH "INTERS PARAMETRABLES" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" #else @@ -473,7 +475,7 @@ #define TR_CHANNELS2FAILSAFE "Channels=>Failsafe" #define TR_CHANNEL2FAILSAFE "Channel=>Failsafe" #define TR_MENUMODELSEL "MODÈLES" -#define TR_MENU_MODEL_SETUP TR("CONF. MODÈLE", "CONFIGURATION") +#define TR_MENU_MODEL_SETUP TR("CONF. MODÈLE", "CONFIGURATION") #define TR_MENUFLIGHTMODE "PHASE DE VOL" #define TR_MENUFLIGHTMODES "PHASES DE VOL" #define TR_MENUHELISETUP TR("CONF.HÉLI", "CONFIGURATION HÉLICO") @@ -696,7 +698,7 @@ #define TR_SAVE_TEMPLATE "Sauvegarder comme exemple" #define TR_BLANK_MODEL "Modèle vierge" #define TR_BLANK_MODEL_INFO "Création modèle vierge" -#define TR_FILE_EXISTS "FICHIER DÉJA EXISTANT" +#define TR_FILE_EXISTS "FICHIER DÉJÀ EXISTANT" #define TR_ASK_OVERWRITE "Voulez-vous écraser?" #define TR_BLUETOOTH "Bluetooth" @@ -1051,7 +1053,7 @@ #define TR_BEEP_VOLUME "Volume bips" #define TR_WAV_VOLUME "Volume audio" -#define TR_BG_VOLUME "Volume musique de fond" +#define TR_BG_VOLUME TR("Volume musique", "Volume musique de fond") #define TR_TOP_BAR "Barre titre" #define TR_FLASH_ERASE "Effacer Flash..." @@ -1245,6 +1247,6 @@ #define TR_SERIAL_BUS "Serial bus" #define TR_SYNC "Sync" -#define TR_ENABLED_FEATURES "Fonctionnalités activées" +#define TR_ENABLED_FEATURES TR("Fonctions activées", "Fonctionnalités activées") #define TR_RADIO_MENU_TABS "Onglets Menu Radio" #define TR_MODEL_MENU_TABS "Onglets Menu Modèles"