![]() * Add and update missing translations - updated in Firmware/ files the missing `c=xx` column and `r=yy` rows. - added missing translations to lang/lang_en*.txt Everyone is developing and adding messages to serial and especially to LCD PLEASE add `//// c=xx` or `//// c=xx r=yy` comments. Preparing translations files without that information is a pain in the ... and takes way more time for somebody else to review to code as it would take you. * No need to have `MSG_abcde` again in comments `////` in `messages.c` * German translation * Missed a space * Use the same format as somewhere else * French translation. I am not a native French speaking person, so please excuse my mistakes I may have done. * Spanish translation. I am not a native Spanish speaking person, so please excuse my mistakes I may have done. * CZ translation * Fix typos * Another fix It is Dimmwert and not Dim Wert * Fix issues reported by `lang-check.py` * Add "difficult" messages containing `%` * Updated MSG and German translation * removed a translation as it breaks the language selection * No need to wait until any-key is pressed * No need to wait any-key is pressed * Fixed two LF issues * Updated PO files ready to be send to translators * Add missing italian translations * Improve some existing italian translations * More italian fixes * More italian fixes * Add exceptions in editorconfig for po files to avoid recoding * Fix typo Thanks @DRracer for pointing out * Italian translation by @wavexx * Update po/new/*.po files * Update after merging MK3 branch * Update French translation and some c=xx comments Big thanks to @awenelo @carlin57 for helping with the french translations and their comments. * Update po files after French translation * Fixed most `lang-check.py` reported translation errors for Czech and German. Two Czech have to be reviewed as these are too long. One German is correct as it is shown in c=20 r=2 but is 1 char longer than this to split the message. One German translation seams to be to long but have to review the actual max length * Fix `lang-check.py` Spanish translation errors There have been quite lot TOO long messages, Can't imagine that nobody every complained about that. * Fix `lang-check.py` Italian translations errors * Update not_tran and not_used files after fixing several translations * Some more error fixes and update of `po` files * Polish translation * Czech updated * Fix typo * no need to translate `\x00` if it is the same * Polish: Runouts->Koniec * Polish: Runouts->Konce f ... hopefully the last change * Added MK2.5/s auto power mode to eeprom doxygen * Final updates. - Compiled all versions with multi-languages - Compiled all versions with EN_ONLY - updated all /lang/po/Firmware*.* files * Add crlf attributes for po files As done for editorconfig, this similarly forces git to handle po files consistently in DOS format. * Further improvent of IT translations * Updated translation Added cleanup to PF-build.sh * remove lang/not_tran* and lang/not_used mistakenly added into the PR Co-authored-by: DRracer <drracer@seznam.cz> Co-authored-by: Yuri D'Elia <wavexx@thregr.org> Co-authored-by: D.R.racer <drracer@drracer.eu> |
||
---|---|---|
.. | ||
po | ||
config.sh | ||
fw-build.sh | ||
fw-clean.sh | ||
iso639-1.txt | ||
lang-add.sh | ||
lang-build.sh | ||
lang-check.py | ||
lang-check.sh | ||
lang-clean.sh | ||
lang-export.sh | ||
lang-import.sh | ||
lang_en.txt | ||
lang_en_cz.txt | ||
lang_en_de.txt | ||
lang_en_es.txt | ||
lang_en_fr.txt | ||
lang_en_it.txt | ||
lang_en_pl.txt | ||
progmem.sh | ||
readme.txt | ||
textaddr.sh | ||
translations.md | ||
update_lang.sh |
Nova podpora vice jazyku ve firmware Zmeny oproti stavajicimu frameworku: 1. Deklarace lokalizovanych textu primo v kodu, neni nutne udrzovat tabulky. 2. Zatim dvoj jazycna verze (en_cz, en_de atd). Moznost rozsirit na vicejazycnou (en_cz_de - pro MK2). 3. Moznost vyberu druheho jazyka ulozeneho v SPI flash (nebude zabirat misto v interni flash, pouze MK3). 5. Bash postbuild proces namisto perloveho skriptu + nastroje na spravu slovniku. Popis: Novy framework je trochu podobny jako znamy i18n20, ale sity na miru pro AVR atmega s ohledem na maximalni jednoduchost a usporu interni flashe. Stringy ktere maji byt prelozene se deklaruji pomoci specialnich maker, zbytek obstara postbuild. Vsechny lokalizovane texty se nachazi ve specialni sekci, v pripade AVR musi byt stringy umisteny v dolnich 64kB flash - tzv 'progmem'. Po zbuildovani arduinem bude fungovat pouze anglictina, je treba spustit postbuild ktery na zaklade slovniku doplni data sekundarniho jazka a vytvori modifikovany hexfile. Jedina data ktera je treba udrzovat jsou slovniky pro preklad. Jsou to textove soubory kde je vzdy sparovan anglicky text s prelozenym textem. Kazdy text ve slovniku je jeden radek, muze obsahovat specialni znaky v hexadecimalni podobe (e.g. '\x0a'). Nasledujici radek je vzdy prelozeny text. Tento jednoduchy format je zvolen proto aby bylo mozno slovniky a proces prekladu spravovat jen pomoci gitu a nekolika skriptu. Pokud pridame nebo zmenime nejaky text v kodu, zmeni se po zbuildovani a spusteni nastroje 'update.sh' soubor lang_en_code.txt. To je generovany soubor ktery obsahuje vsechny lokalizovane texty pouzite v kodu setridene podle abecedy. V gitu uvidime zmenu kterou rucne preneseme do slovniku lang_en_xx.txt, zaroven vytvorime pozadavek na preklad ci korekturu pozadovaneho textu. Pokud pridame nebo zmenime nejaky text ve slovnikach, zmeni se po spusteni nastroje 'update.sh' soubor lang_en_dict.txt. Ten obsahuje vsechny lokalizovane texty ze slovniku (v anglictine), respektive mnozinu jejich sjednoceni. V idealnim pripade by soubory lang_en_code.txt a lang_en_dict.txt mely byt totozne. Pokud se zmeni slovnik, je treba znovu vygenerovat binarni soubory lang_en_xx.bin. Pouziti v kodu, priklady: 1. deklarace lokalizovaneho textu v kodu - makro '_i': puts_P(_i("Kill all humans!")); //v cz vypise "Zabit vsechny lidi!" 2. deklarace lokalizovaneho textu jako globalni konstanty - makro 'PROGMEM_I1' a 'ISTR': const char MSG_PREHEAT[] PROGMEM_I1 = ISTR("Preheat"); //deklarace puts_P(get_translation(MSG_PREHEAT)); //v cz vypise "Predehrev" 3. fukce get_translation - zkratka makro '_T': puts_P(_T(MSG_PREHEAT)); //v cz vypise "Predehrev" 4. deklarace lokalizovaneho textu jako lokalni promenne - makro '_I': const char* text = preheat?_I("Preheat"):_I("Cooldown"); puts_P(_T(text)); //v cz vypise "Predehrev" nebo "Zchlazeni" 5. deklarace nelokalizovaneho textu - makro 'PROGMEM_N1' a '_n' nebo '_N': const char MSG_MK3[] PROGMEM_N1 = "MK3"; //deklarace const char* text = _n("MK3"); nebo const char* text = _N("MK3");