abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:22 | Nová verze

    Byla vydána nová verze 9.5 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání a na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | IT novinky

    Dnes a zítra probíhá vývojářská konference Google I/O 2026. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).

    Ladislav Hagara | Komentářů: 0
    včera 19:00 | Nová verze

    Canonical vydal Ubuntu Core 26. Vychází z Ubuntu 26.04 LTS a podporováno bude 15 let. Ubuntu Core je minimální neměnný operační systém určený pro vestavěné systémy.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Bylo vydáno OpenBSD 7.9. Po dlouhé době opět se songem: Diamond in the Rough.

    Ladislav Hagara | Komentářů: 0
    včera 16:00 | Nová verze

    Byl vydán Mozilla Firefox 151.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 151 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    Elon Musk prohrál soudní spor se společností OpenAI, která se podle jeho žaloby odchýlila od původně uváděného cíle vyvíjet umělou inteligenci (AI) ku prospěchu lidstva. Porota včera po necelých dvou hodinách dospěla k jednomyslnému závěru, že Musk žalobu podal příliš pozdě. Musk byl jedním ze spoluzakladatelů společnosti OpenAI, která vznikla v roce 2015 a vyvinula populární chatovací systém ChatGPT. V roce 2018 na svůj post ve vedení

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Nová verze

    Byla vydána nová verze 10.4 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Opraveny jsou zranitelnosti Copy Fail a Dirty Frag. Přibyl nový obraz pro Orange Pi 5B.

    Ladislav Hagara | Komentářů: 0
    včera 07:44 | Zajímavý software

    Pokud je zranitelnost Linuxu v nepoužívaném jaderném modulu, lze ji jednoduše vyřešit zakázáním automatického načítání tohoto konkrétního zranitelného modulu. Projekt ModuleJail si klade za cíl zvýšit bezpečnost Linuxu zakázáním automatického načítání všech nepoužívaných jaderných modulů. Jedná se o skript, který dá všechny nepoužívané jaderné moduly na blacklist (/etc/modprobe.d/modulejail-blacklist.conf).

    Ladislav Hagara | Komentářů: 1
    18.5. 16:11 | Zajímavý článek

    Odborníci z Penn State University zkoumají způsob ukládání informací na lepicí pásku. Principiálně by podle nich bylo možné kombinací odlepení a zpětného přilepení dosáhnout uložení informace, kterou opětovným odlepením dokážou přečíst. Výhodou je, že způsob uložení i přečtení je čistě mechanický. Zde o tom referují ve volně dostupném článku. Zajímavé bude sledovat zda se jim v rámci výzkumu podaří prokázat použitelnost i v jiné než

    … více »
    karkar | Komentářů: 9
    18.5. 13:00 | Zajímavý projekt

    Na GitHubu byl publikován reprodukovatelný návod, jak rozchodit Adobe Lightroom CC na Linuxu a Wine. Návod byl vytvořený pomocí AI Claude Code.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1667 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Linuxové překladatelské nástroje II.

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

    V předchozím pojednání jsem se pokusil nastínit základní problematiku LOCALES a jejich významu. Nyní bych rád - pokud možno ve stručnosti - popsal první ze dvou nejobvyklejších systémů lokalizace.

    Lokalizace přes PO soubory (gettext)

    Tento způsob lokaliyace využívá kromě operačního systému např. také GTK2.
    Aby bylo možné aplikaci lokalizovat, je třeba nejprve vytáhnout z jejích zdrojových kódů přeložitelné řetězce. Dělá se to např. přes aplikaci xgettext, které předhodíme seznam souborů (tento soubor se seznamem se obvykle nazývá POTFILES.in), které tyto řetězce obsahují. Vygenerovanému souboru se pak dává přípona POT. POT soubor se liší od po souboru v podstatě jen tím, že v něm jsou řetězce msgstr a některé položky v hlavičce prázdné.

    Příklad vygenerování POT souboru:

    xgettext -L glade -o xliffeditor.po --debug xliffeditor.glade

    Výsledný soubor xliffeditor.po pak začíná nějak takhle:

    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2006-01-22 14:28+0100\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <pre>\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"
    
    #: xliffeditor.glade:8
    msgid "Transolution Xliff Editor"
    msgstr ""
    
    #: xliffeditor.glade:37
    msgid "_File"
    msgstr ""
    

    Pochopitelně v něm následují další přeložitelné řetězce.
    Než se soubor začne překládat, tak se přejmenuje, aby měl příponu po, a vyplní příslušné údaje v hlavičce. Některé nástroje toto dělají při založení nového katalogu (katalogem se rozumí po soubor).

    Struktura po (i POT) souborů je velmi jednoduchá. Soubor kromě hlavičky obsahuje dvojice textových řetězců - originál je uvozen značkou msgid a překlad značkou msgstr. Vlastní řetězce jsou pak v obyčejných uvozovkách. Jsou však situace, kdy to nestačí a v textu je třeba rozlišit jednotné a množné číslo. To se nastaví v hlavičce, a uvození řetězců, kterých se to týká, pak vypadá trochu jinak (viz ukázka části hlavičky z po souboru):

    "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"

    Všem se omlouvám za odporně roztažené okno prohlížeče. Je to nastavení které používám i já a o kterém vím, že bezpečně funguje (přesvědčit se můžete třeba při manipulaci s instalačními balíky u aplikace Synaptic). Hotový přeložený po soubor připravený ke kompilaci do binární formy pak vypadá takto:

    # translation of cs.po to čeština
    # keny <keny@nativepeople.cz>, 2004.
    # Keny Otter <keny@nativepeople.cz>, 2004.
    # 
    # 
    msgid ""
    msgstr ""
    "Project-Id-Version: Synaptic v. 55\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2004-11-29 22:51+0100\n"
    "PO-Revision-Date: 2004-12-16 11:33+0100\n"
    "Last-Translator: Keny Otter <keny@nativepeople.cz>\n"
    "Language-Team: cs <cs@li.org>\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=UTF-8\n"
    "Content-Transfer-Encoding: 8bit\n"
    "Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
    
    #  TRANSLATORS: Alias for the Debian package section "admin"
    #. TRANSLATORS: Alias for the Debian package section "admin"
    #: common/sections_trans.cc:12
    msgid "System Administration"
    msgstr "Administrace systému"
    
    #: gtk/rgmainwindow.cc:1666
    #, c-format
    msgid ""
    "You have %d broken package on your system!\n"
    "\n"
    "Use the \"Broken\" filter to locate it.You have %i broken packages on your system!\n"
    "\n"
    "Use the \"Broken\" filter to locate them."
    msgstr ""
    "Balíček %d ve vašem systému způsobuje problémy!\n"
    "\n"
    "K jeho nalezení použijte filtr \"Problémové balíky\".Ve vašem systému máte %i problémových balíčků!\n"
    "\n"
    "K jejich identifikaci použijte filtr \"Problémové balíky\"."
    
    #: gtk/rgsummarywindow.cc:416
    #, c-format
    msgid "%d new package will be installed\n"
    msgid_plural "%d new packages will be installed\n"
    msgstr[0] "Bude instalován %d nový balíček\n"
    msgstr[1] "Budou instalovány %d nové balíčky\n"
    msgstr[2] "Bude instalováno %d nových balíčků\n"
    

    Pozn.: Záměrně jsem vybral příklad běžného dialogu, víceřádkového dialogu, dialogu s plurálem a odpovídající hlavičky

    Převod do binárního souboru

    Hotový překlad se pak převede do binární formy. Což je soubor který má příponu mo, má stejný název jako spouštěná aplikace kterou má lokalizovat a je umístěn v adresáři pro příslušné "lokály".
    Pro tento převod se používá aplikace msgfmt, které předhodíme přeložený po soubor. Výsledný binární soubor má příponu mo

    Umístění binárních mo souborů

    Soubory mo se nalézají v podadresáři LC_MESSAGES, který obvykle najdete pro každý jazyk v adresáři /usr/share/locale pod příslušným lokalizačním kódem. Marně byste však hledali adresář cs_CZ - i když nemohu vyloučit že ho najdete, půjde však nejspíš o symlink na adresář cs. Tam totiž hledá gettext hotovou binárku s překladem.

    Výhody a nevýhody lokalizace pomocí gettextu

    Nevýhodné je u po souborů, že se z nich poněkud vytrácí kontext. Proto se u překládaných řetězců používají různé komentáře, tak aby bylo možné alespoň podle původu řetězce zvolit nejvhodnější text. Naopak výhodné je, že na rozdíl od qm souborů (které používá lokalizace Qt3 a výše), lze z mo souborů poměrně jednoduše vytáhnout zpátky po soubor pomocí utility msgunfmt a jeho obsah použít pro naplnění databáze překladů.

           

    Hodnocení: 80 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.