abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:55 | Nová verze

    Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.

    Ladislav Hagara | Komentářů: 10
    včera 17:11 | Komunita

    Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.

    Ladislav Hagara | Komentářů: 3
    včera 12:55 | Nová verze

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 11:22 | Zajímavý článek

    David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …

    Ladislav Hagara | Komentářů: 9
    30.5. 22:44 | Nová verze

    Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.

    Ladislav Hagara | Komentářů: 0
    30.5. 21:22 | Zajímavý článek

    Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:44 | Pozvánky

    V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:22 | Nová verze

    Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 14
    29.5. 22:11 | Nová verze

    Byla vydána verze 3.0 (@, 𝕏) svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.

    Ladislav Hagara | Komentářů: 7
    Rozcestník

    Linuxové překladatelské nástroje III.

    3.10.2006 15:23 | Přečteno: 1119× | Za vším hledej Linux

    Minulé pojednání jsem věnoval systému lokalizace přes PO soubory. Toto je věnováno dalšímu systému lokalizace, který používá např. KDE a další aplikace založené na Qt knihovnách.

    Lokalizace přes TS soubory (Qt)

    Lokalizační soubory s příponou ts používá jako výchozí zdroj pro překlady Qt. V podstatě je to XML dokument ve kterém se - na rozdíl od po souboru - každý řetězec vyskytuje v určitém kontextu. Znamená to v podstatě tolik, že zatím co u lokalizace přes gettext stačí přeložit původní řetezec pouze jednou a systém pak nahrazuje u aplikace všechny jeho výskyty jedním překladem, tak v případě ts je nutno přeložit každý řetězec samostatně. Má to však i svou výhodu. Pro různý kontext lze použít různý překlad téhož řetězce originálního textu, kdežto u po je třeba dobře promyslet nejenom obsah překládaného ale i cílového textu. (Možná si někteří vzpomenou na žabomyší spor, který se týkal překladu tlačítka "Budiž" v Gnome)

    Výchozí ts soubor se generuje podobně jako u gettextu z předhozeného seznamu souborů

    lupdate `find ./zdroj_programu -type f | egrep -e '(c$|h$|cpp$)'` -ts soubor_k_překladu.ts
    

    Hotový překlad se pak převede do binární formy, což je soubor, který má příponu qm. A to tak že buď otevřu .ts soubor v aplikaci linguist a zvolím v menu Soubor -> Release, nebo jej převedu konzolovým nástrojem lrelease

    Na rozdíl od gettextu, lokalizace přes Qt nemá pevně dané umístění lokalizačních souborů, ani jejich pojmenování. Zpravidla záleží na programátorovi, kde bude aplikace tyto soubory hledat a pod jakým názvem.
    S qm soubory se nejspíš setkáte v adresářích jednotlivých aplikací v /usr/share ale není to pravidlem. Například poměrně známá aplikace Scribus si je rve do adresáře /usr/lib (fuj!). Také pojmenování bývá rozmanité. někdy je místo názvu jen kód cílového jazyka. Někdy je kód jazyka mezi názvem aplikace a příponou qm, atd.

    Výhody a nevýhody

    Jak už jsem naznačil u po souborů, u ts je výhodou že u řetězce zůstává zachován kontext, a tak překlad může být výstižnější. Na druhou stranu se snadno může stát, že se na nějaký řetězec pozapomene. Dosti výraznou nevýhodou je fakt, že z qm verzí Qt>=3 se ts soubor zpátky vykuchat nedá.

           

    Hodnocení: 83 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    3.10.2006 21:20 Boris
    Rozbalit Rozbalit vše Re: Linuxové překladatelské nástroje III.
    Místo toho krkolomného find a spol a shellové gymnastiky nabízí Trolltech čistší řešení: do projektového souboru (mujprojekt.pro) dát toto:
    TRANSLATIONS += preklad_cs.ts \
    preklad_de.ts \
    preklad_ru.ts \
    preklad_ar.ts

    a pak stačí udělat

    lupdate mujprojekt.pro,

    a protože v .pro souboru je vždy seznam všech zdrojáků (a ten .pro soubor se seznamem se dá vygenerovat pomocí spuštění qmake -project v projektovém adresáři), tak lupdate ví, odkud má překládané řetězce extrahovat a které překladové soubory vytvořit (nebo updatovat). A s releasem (vytvořením binárních .qm variant) je to stejné:

    lrelease mujproject.pro
    3.10.2006 21:49 Boris
    Rozbalit Rozbalit vše Re: Linuxové překladatelské nástroje III.
    A pokud by někoho zajímalo, jak pak v aplikaci překlad načíst, je zde ukázkový kód:

    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        QTranslator translator;
    
        translator.load("mujprogram_cs");
        app.installTranslator(&translator);
        ...
    }
    

    A pokud se předpokládá LC_LANG-aware chování, tak prostě:
        ...
        translator.load(QString ("mujprogram_") + QLocale::system().name());
    
    4.10.2006 09:07 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Linuxové překladatelské nástroje III.
    Dík. To jsou věci které jsem neznal.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.