From 5b1680307d999e49a24ce904959f1ab765bf8597 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 28 Jul 2023 12:46:09 +0200 Subject: [PATCH] fix(bw): Missing characters in French and Czech translations (#3827) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: fix fr for bw radio * feat: add utf8 substitution map for French * fix: fix Czech * fix: add more Czech substitutions * Add ň to CZ fonts (thanks to philmoz) --- radio/src/fonts/sqt5/font_cz_04x06.png | Bin 219 -> 4263 bytes radio/src/fonts/sqt5/font_cz_05x07.png | Bin 317 -> 1872 bytes radio/src/fonts/sqt5/font_cz_08x10.png | Bin 287 -> 4576 bytes radio/src/fonts/sqt5/font_cz_10x14.png | Bin 357 -> 4426 bytes radio/src/fonts/std/font_cz_04x06.png | Bin 364 -> 1460 bytes radio/src/fonts/std/font_cz_05x07.png | Bin 384 -> 1680 bytes radio/src/fonts/std/font_cz_08x10.png | Bin 457 -> 1568 bytes radio/src/fonts/std/font_cz_10x14.png | Bin 564 -> 1671 bytes radio/src/gui/common/stdlcd/utf8.cpp | 58 +++++++++++++++++++++++-- radio/src/translations/fr.h | 24 +++++----- 10 files changed, 67 insertions(+), 15 deletions(-) diff --git a/radio/src/fonts/sqt5/font_cz_04x06.png b/radio/src/fonts/sqt5/font_cz_04x06.png index 6e72a100ed8d120beb35a64afc2aeb5f66e79aac..25f02826e2ba2157f2e87641bdc1514b2aee60da 100644 GIT binary patch literal 4263 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 K&t;ucLK6VlAxgvm diff --git a/radio/src/fonts/sqt5/font_cz_05x07.png b/radio/src/fonts/sqt5/font_cz_05x07.png index f7018789e856a3589325fa3b526106f9b28debc6..13c265c5b0b9f3b462a8f5ae921a4345c908a66c 100644 GIT binary patch literal 1872 zcmbVNTWB0r7~UE!X-h2Cm*RsAQy&`InKPHYWDc1o+uf~M%*0%V8ug`T&z#vEvomKp zGs*5ILZMPZ5s@Gw6~ThH`clys1(7^hL|PTRAjD#yL|PCmA{6@)&+KJdOAudlzi_V%xA zwaXuSHcX}VJQ`m+Qg6PspP^n_BE@ng(Iv?pg6WfWx^%Ghz>}HDP3^b7sWKoKvY6C5t;QaZZ-ga(bK>*i( zlGK43)N<@r0#yYmCn&Nh4M8~r<@6z0x&vi>W1$HBFWAD+rh$uC$c~Gu1o&Q+=aNLi z0NEV2tDLJBLH5I8n`=JWjgJ+_+^jybV{R@d(gIhiQn z+Il@@ww=O&du!JIcGtGpgR{LhUMBlIdq_?S;xX!g zodZ{YyYenOLsrVgym@ft%*xawm$?4IYaiZP4Q}r%)^3PD!msM=j-1t?HT<-x^VqQ zsc-M#_1C|D!`^wKeD1HyqW$~LPc9z*`TWg&mzR!z{LgnEtepYxEG)h9S?kidr@nfB gdHkVMe>AQQ{JnQ-WNr0@WAO=BE=?3K9zAjTUrfMZQvd(} literal 317 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 diff --git a/radio/src/fonts/sqt5/font_cz_10x14.png b/radio/src/fonts/sqt5/font_cz_10x14.png index 505a8b194938543701e3a90b9ce43fa60d9b5578..af2c741da148095fad90632c9fda7590d327f7b1 100644 GIT binary patch literal 4426 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 literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^tAJR5kr_ztd0BP|NU;U@gt!9f|Ns9ly*d9bkj0qf z?e4vL>4nJa0`PlBg3pY5H=O_Ir$+0+u3cK6n=ag`Rr4IEF}E zjy-R<>X3r~+k^PHjlBvlbyPlb+_H7tw03U$h7Sy8oE@vD&J_y_+j*)?v$&O2Kfz;j zcXOfH5e+{>>(8S0)(cEdukYl!9)4@p9W~>)wQQD=F+r00`d=ordZ+KP;!O`NyK`js zix+Z6tIhuJ36m1Nx+&uP&d?=~ym!;Vyk_%KRz6_v~an@n3m};vsC??)aZGjXWcPI)BNN2kKcE-ekq>vW!mIw;VFB89%k@#^>bP0l+XkK-b0E= diff --git a/radio/src/fonts/std/font_cz_04x06.png b/radio/src/fonts/std/font_cz_04x06.png index eae7f811d8fac70b3b2455ae82faf50d65e44343..5556a5f0e519c4a807f20cdc3cfec0ecc5f2abe6 100644 GIT binary patch literal 1460 zcmbVMONbOl7_MD}BqoB8Lv}rcPJ2<3?&`-pwhKFEGre&K>~&cOveAn*)zvf2PIq;> zYn_?BWXU0rn^z@=faVl73IQ*ML=XZVgj_-pg7FlH9z+xtVR5XQN26k14)k<&_xFGQ z|NXBomzR$0*}ZQ!0ANpj(OVJs6XJShO8kMZueH7qx7X6ePjUcWe^Xvl;M`X;0PK1g zHCFkme-sfG>o{Ods`uhlT7g4{dnqPslq*fziV|17cjYHli2_&sxa=E#TBGe~aU-M0 zH_|nN7PLt| z&XmX*?BNuex*=5!fdMIS>3Y@~Iu8h>9U9Yw=K^aM*tE?!%iHX4sEg0fI1t(O{ldo! zV~OL!Ma~ya3mM~tybzr?`YDAgG-vA>p$n%)nER!g6xA|{Im;T1btbi1o`kGeCB32? z@G*%JDdON$Ce*{6x~i<3W>huHXqZ)0sv^sI*EEn}jG#UXqOkuQ)NB}Y$SR|9=^3c# zn*ekCui${7kYzCzlA{>6C`^-vcFxG$imV<9lwrVIs+rxZkr0ye<=3|ma~v|aYpA` zB3u8Vp`ZvK%2^yKfzOK^etT+eCvdS0-L=&@I{WCs<+py>e0y{HkGt)^ zDq!%9vG4rm^zEJ7Ub literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^p+L;e2qYK+PuOq+DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{+S z7I;J!Gca%qgD@k*tT_@uLG}_)Usv{rOneN=ij~5OuYp4Go-U3d9M>5`7*_vhc(!+4 zb;y&Q&jP1>V7Oj=w|v+2tyeRnI2c-<8~YR_OBygVR4^o8nr*r)S>md}EC~kZbJeCl zk~Ks*!zvh-JU8@x)M9eM(1C;D`~Uy-|GuyNUU~1wzR#Kw2lXBu23nz zm0Xkxq!^4049#^7jC2i6LJSP7j7_bKjkOI7tqcqtCYwJ&(U6;;l9^VCTZ7@b{s^E3 N22WQ%mvv4FO#oyBY;^zt diff --git a/radio/src/fonts/std/font_cz_05x07.png b/radio/src/fonts/std/font_cz_05x07.png index ff685bdb636cde1ae30ba272974e7cedd26e71e3..0011019c2d8886c3ca90656315d543fb39bd515b 100644 GIT binary patch literal 1680 zcmbVN&2QX96nD~8DlJikIPlfOXxam$*dBlEIv&-OG#kjOIHbu+1j>Q2J-c?Z_88mA z?&bpGL@$8&5Gtzp6Y>ufi38$(~V`@Q#j z@6GeY<)xRW4?lfalBDVSVr_-r-{9w=34W2zeRg$~-yTU9U(Y4!$m8OikiNM5q$C~u zCTgq|Ywj!9XR$&8=24{^r@~4)b-J4pf1MVh19?lPEX83neY z$v#3Fuxy3Q2BuXpO#6ADBi&Guq3VXL85mWtSplO1a)(*a#4ELzM(+5N1H+<7v8r}D z9i?L^ENiKnZQCl+Rb7`kLe6_hLAr91A0IQ+XzpiGT0|@Xf{}P^qi`S(cBmpwOWGtK zWs2ua?UGd06eLs)fPr7)(v7S=a31(7ZPS=0Mb5EWiA_URusmek>aogox+vFrhV4PzQ>-$;gs*)X*$!T3EMFY6v4Vgt{z&Pg=2{o}TI^Y5ASe_lBe zPPTeK{PCsKziJ-qyg2#MuV4a7Q{emSA4`+F*LS7q-OE2~U!}W~kA3^hqrYg)f2MA{ le@yE4|9Yn{F1P!)Ke%DMd+o!SC&WLazOYo=KJ(Ul{{j`87(D<0 literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^@j%SM2qYM`?~xM+QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIcoTrv|Dzq4y z53pK(EMCCMwu?iHp?Ka`%YVr>PtD8fq!?O~1zaCaS@gg>I-uwoh-Zr?oXMBc<-5XwOn1#dL z40Fd7OCJx$wVlu)wt!4hz(U=2Ln~(cK;1>g6b{$|E?JJs{k(LRV=YtV_9Qi+xkI>Y zCJ-L5!3tgBpu7t(Y1TIARUB$!gU!O$T)u8p!o z#KWv2NW1}n#HJMiWz0l68BZwNSQ*H15yV9~&P#C!k}#2ETR)CE^voh0%Rbg}N1s%# z90V>D#agW<)Zzm1N}{AFiU?#;mU)Wc{TU}fb>8v&+6-Cj8=mC`7ID~+5fw-^P&pcG zQ-$qDw2t4(6wR4fN3JLdAXL==nnr|kt6rty+%!a7!8UdRpJJs5>y}AC{4)6)>ge+g z4rq2YE%I^8SZq6T;RnOhR7NWyw?zB;jEluF?31cz;NfW+W?!hrg+m@j0r7M~D(za0 zwnJv+gpgt%(vV>}p@@gCGr?IDV3iB&#)C9316@kPL>kJVm0P)P?F zC}&_Iegl;Djfn#EuVB-FMdI0rO15lN!lLVxI5tWo93mCsQO7j8W)zwR^Nt@N$H4il z%2CyVWtlK3DY8^Z7kGpuz$Xkz<}*nn#iKY%$|+eXBva{z3TmGvMm4N$+ur=2_Pacb zju)!jHcvQoVN<}I<a4&7fKT~u4I z&R?QS?m|90sCUe3U%va~TGVsy`}4h%n?GHBa6kBB`5x)?=W|B4`LWqk7>93ly}tIf zL+81P6~13uo{MpX?mK@2hc4dt{N6u~d~->x=bk>^Z!JBs{Ncjh_mAs896Wd-b9v90 zuD`i1R^0NyqBFlPw%M&6J+-tnIk#zbq3`mw%9W0-U6ZMfiLXxnKCy%O=)fntiZ8$N z-5cJ@3#V$!)BeEOV<%qhJE`=ZiT%3e+JV&`r*pc#{@ad=BTCN)>wAmupsvrvqvzDS nSDe_}KmPgLzQwN>t5*m5!MNn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zS>O>_%)r1c48n{Iv*t(u1=&kHeO=ifGVw7eD^?0Cz6J{I@pN$v;kfR4ZXw?x1CiE; z#ysmA+!k=o@V*pta&d@~ni{9V2@%DkA#W4Cf|gYBda>cb^!TD;y(TU# zeq+&DA5Q7(iwfj!akaVmqvQRfZ`%azwtn<~FMU7n*0t&{D|7$n_WLjx9J{r3u3U$Q zhv7?!C~ehHPy3y0ZpU3FY5nthHcPOKN5wO|_{7HD#vL;!m$+=5;2m!GEGm1YmeqV~ z#qd7KrG{+Vtgd`@a@euu-~Zhcee`={6&-3 zzSn-fKR(}I-PsWimX=hP5Cl=$8VYpc=Qv*FMfgU%wKg8ZkHto4t3?p^RywPQ*gdk0 zAQt_qM!M`SX#$DDAc+~Nq-t(1xaK>GM!9l7D$U!RxiMN=QTr-S%}>$QjLy5vPhEo;osrQP`lVL_ueuC2tO& zL@I9E24I*}D&ahbZGA~53nnbPxgXQW2jsSBD>7gprW09upDCl}e(YwA!^QwjCW5wZ zMsz)~kgJXbmr35^swY=TP*ydE#OfPFPypIUq@29bte5852ShvR%4!nE5MyXDiYx>YH0cT5#D=kVIWHs$ zv}%?OH5s)AL<+NZsj32^u)ZGpppWK#NTEGkRHlWfqR{nqY!oS++{3}1EDJ0j(B(cS zw+r&h|CE2sRB?O3#2xE#n$9T-5K=9iu7P|{Y(m@fyM#(+>i|I6sc(^zox~!A%D-0c zI08AfsW`$){~_Hun59SU6f{v|3`grf6cmHqXPjQlF=1{cnf-P{-!8!MFmSeoL4*&5 zQHC@;zf3%+E-c+zPY^{yYoIZ*?2XN@aqY(%h?X<6#nYs8^z$$8YX&=K4y0c!`(SR! zD1Y$Xp@!;@=JxK8{04T`&aH*e)r*( zY}ciuPrN@dG&1|iFQrQ=h9B4C!Q#Q6I)CRA=k`=~x9vLl_1P`K>hEAhX0${aUM#Nq z=7njh(mY<}@9r0$IYpiv7%S`c!)j?ud=@t?fUcj<+Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSdFNH0^8x4R3_%wA<9Adj=a zBeIx*fm;}a85w5HkpK#^mw5WRvOi?vV^CJC6jprAz`&^P>Eak7aXIw-#w;dB0k#Jd zMRSid-iUZw!*bY6PG_c>tHSz(>EQ+fHb)*PLrg_TO1I{h7rgnOXTqnHhfU%6ML{&30A0?a(%Z6<5L*EBVa5w4=aB z>`ld$tQBW{S3i4it-C$w$0a*iHLH2O$`6wk71r5sR+q58J|cE#zLBH7byG_M$UqIZakd}3`Nxv*NBpo z#FA92 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"