Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Pokud jste pouze překladatel, není nutné znát všechny metody úpravy zdrojového kódu. Spíše musíte znát několik nástrojů pro práci s překlady a jak to celé funguje. Překladatelská část bude počítat se standardní složkou po.
Jedna z možností, které u překladu programu mohou nastat, je, že do vašeho jazyka ještě program nebyl přeložen. V tomto případě je nutné vygenerovat šablonu pro překlad a tu pak přeložit. Vlezte si proto v terminálu do složky po (nachází se ve složce se zdrojovým kódem programu a soubory jako Makefile.am a configure.ac).
cd po
A vygenerujeme si novou šablonu (.pot soubor) – k tomu slouží program intltool-update:
intltool-update -p
Parametr -p řekne programu, aby vygeneroval pouze .pot šablonu. Měl by se tam vytvořit soubor nazevprogramu.pot. Ten si otevřete v textovém editoru a upravte podle části „Testujeme“ ve vývojářské části.
Po úpravách jej přejmenujte na cs.po (pokud překládáte do češtiny). Teď je soubor připraven k překladu. Pro další překlad budete potřebovat nějaký překladatelský nástroj. Jak už bylo zmíněno ve vývojářské části, dva nejlepší jsou POEdit a KBabel (jeden je pro Gtk+, druhý pro Qt/KDE). Já doporučuji nainstalovat POedit. Po instalaci si jej spusťte. Zeptá se vás na určité údaje, vyplňte je, budou se zaznamenávat do překladu. Potom si ním už můžete otevřít váš cs.po. Rozhraní je velice jednoduché a nemyslím, že by s ním měl mít někdo problémy. Další věci už popíše následující obrázek:
Lišta menu nahoře:
Dále můžete vidět toolbar (nástrojovou lištu) a pod ním seznam přeložených/nepřeložených/starých řetězců. Ty se barevně odlišují:
Pod seznamem jsou dvě pole. To horní je původní řetězec. Překlad tedy probíhá tak, že pomocí Alt+C zkopírujete horní do spodního a spodní přeložíte. Až bude vše přeloženo, uložte soubor. Pokud budete chtít svůj překlad později aktualizovat, vygenerujte si nový .pot pomocí intltool-update a z menu Katalog vyberte Aktualizovat z POT souboru.
Nyní, když máte přeloženo, zbývá upravit soubor LINGUAS ve složce po – vypadá nějak takhle:
fr it km pl
Prostě kódy zemí oddělené mezerami. Kódy MUSÍ být seřazeny podle abecedy. Upravte si soubor, aby vypadal takto:
cs fr it km pl
Jeho obsah závisí na počtu překladů. Pokud program ještě nebyl překládán, je prázdný. Tím by byla práce hotova.
Pokud program využívá jiný systém, jako třeba vlastní Makefile, pak vám intltool-update nebude fungovat a pro vytvoření POT souboru budete muset použít xgettext:
xgettext --keyword=_ --keyword=N_ --keyword=D_ --keyword=DN_ *.c -o program.pot
Při překladu postupujte stejně, ale systém skladování po souborů a jejich instalace se může lišit, podle Makefile.
Pokud je program psán v jazyce Python, místo xgettext použijte pygettext:
pygettext --keyword=_ --keyword=N_ --keyword=D_ --keyword=DN_ *.py -o program.pot
Programy, které se chovají stejně jako volby v POEditu, ale jsou do příkazové řádky. Často mají parametr -D(--directory), který určuje složku, kde se má hledat vstupní soubor(y).
Použití:
msgfmt cs.po -o myapp.mo # vytvoří z cs.po myapp.mo
Použití:
msginit -i my.pot -o my.po # vytvoří z my.pot my.po
Použití:
msgmerge -U my.po my.pot # aktualizuje my.po z my.pot
Použití:
msgunfmt myapp.mo -o cs.po # udělá z myapp.mo soubor cs.po
Použití:
msgattrib --translated cs.po # vypíše přeložené řetězce
Použití:
msgcat one.po two.po -o three.po # sloučí one.po a two.po do souboru three.po
Použití:
msgcmp my.po program.pot # porovná my.po a program.pot
Použití:
msgcomm one.po two.po # porovná dva po soubory
Použití:
msgconf --to-code=utf-8 -o utf.po cp1250.po # převede cs1250.po do utf-8 kódování a výsledek zapíše do utf.po
Použití:
msgen my.pot -o en.po # vyplní pot šablonu
Použití:
msgexec -i my.po cat # vypíše přeložené řetězce + hlavičku .po souboru (řádky jako language-team atd.)
Použití:
msgfilter -i en.po sed -e 's/error/success/g' # nahradí v překladu všechna slova „error“ za „success“
Použití:
msggrep --msgstr -F -e "error" en.po # vypíše všechny přeložené řetězce, které obsahují slovo „error“; # pokud nahradíte --msgstr s --msgid, tak vypíše z předloh, # pokud nahradíte -F za -E, můžete zadat regulární výraz
Použití:
msguniq -o unified.po my.po # sloučí duplicitní řetězce v my.po a uloží jako unified.po
Návod se blíží ke konci.. pokud potřebujete další informace, zde je kompletní manuál k gettextu:
http:#www.gnu.org/software/gettext/manual/gettext.htmlV článku se bohužel nedalo popsat vše, ale alespoň určitý základ a nejdůležitější věci nutné pro správu překladů jsem popsal. Při psaní článku jsem čerpal z výše uvedeného odkazu a vlastních zkušeností (většinou pokus-omyl). Na další věci se také můžete ptát v diskusi. Kompletní projekt jak se standardním Makefile, tak s autotools je přiložen k článku.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
Soubor uložte jako gettexttest.po a nepokoušejte se jej překládat.Proc ne??? Ja to vzdycky otevren ve vimu a prekladal jsem. Co je na tom za problem?
Nejenom kódování, ale také jméno posledního překladatele, časovou značku poslední úpravy překladu.
Na druhou stranu musím říct, že já mám univerzální Makefile, který tohle (a spoustu jiných věcí jako odeslání překladu robotovi) za mě dělá a používám taky vim. Grafické nástroje mě neoslovili (asi protože mám zkušenost jen s příšerným linguistem).
pybabel extract -F babel.cfg -o app.pot app pybabel update -i app.pot -d . -D app -l sk
Gettext umí podle klíčových slov hlídat syntaxi mezi msgid a msgstr. Například printf(3) escapovací sekvence:
#: ../src/aosd/aosd_ui.c:242 #, c-format msgid "monitor %i" msgstr "monitoru %i"
Nevíte, jestli lze ve zdrojovém kódu vyznačit, že daný řetězec není formátovací printf řetězec?
V jednom programu je použito něco jako _("100% during")
a xgettext takovému msgid přidává příznak c-format, což je samozřejmě špatně. Kontrolní mechanismy pak křičí, že v překladu nesedí formátovací sekvence kolem procentítka. A mně nebaví opakovaně odmazávat příznak c-format.
Čekal bych, že gettext něco takového bude umět, protože zrovna tak umí extrahovat kontextové komentáře zdrojového kódu ohledně překladu (často se používá na upozornění překladatelů programátorem, že určité slovo v hlášce je lexikál nebo vlastní jméno).