Překládáme WordPress – 3. část – první překlad

Pro první překlad obvykle zvolíme plugin nebo vzhled, který už je pro lokalizaci připraven. Pozná se to podle toho, že obsahuje nejméně jeden soubor s příponou .pot nebo .po, a obvykle (ne vždy) už nějaký překlad (xxxx.mo), často do němčiny.  Pro první ukázku jsem zvolil opravdu jednoduchý plugin, obsahující pouze několik frází, jehož distribuce je vzorně připravena – obsahuje totiž soubor default.pot, kde jsou připraveny fráze pro vytvoření katalogu v PoEditu. Jedná se plugin „Advanced-Category-Excluder“, který umožňuje vyloučit ze seznamu rubrik ty, které nechceme zobrazovat v menu.

Distribuce pluginu obsahuje adresář /lang, ve kterém je zmíněný soubor default.pot, dále soubory ace-hu_HU.mo a ace-sv_SE.mo. Vidíme, že byl přeložen do maďarštiny a švédštiny, tyhle soubory .mo už nebudeme potřebovat a tak je můžeme klidně vymazat.  Dále obsahuje podadresář /po, ve kterém jsou soubory ace-hu_HU.po a ace-sv_SE.po. Ty nám nijak nevadí, můžeme je ponechat třeba pro studijní účely.

Otevřeme tedy PoEdit, který už máme přednastaven podle předchozího článku. Klikneme na Soubor a zvolíme Nový katalog z POT souboru:

greenshot_2008-08-24_11-07-39

Otevře se nám dialog pro vyhledání souboru, který najdeme na disku a otevřeme:

greenshot_2008-08-24_11-25-38

Otevře se nám dialog pro nastavení katalogu, který musíme patřičně vyplnit. První záložka obsahuje informace o projektu:

greenshot_2008-08-24_11-29-40

Jméno a verze projektu je na nás, obvykle volíme název (ne jméno!) překládaného pluginu a CZ. Verzi můžeme (nebo nemusíme) označit podle autora pluginu nebo podle sebe. Další volby jsou jasné, poslední řádek s formou plurálů nemusíme vyplnit, pokud víme, že soubor POT žádné plurály (__ngetetxt) neobsahuje, ale je dobře si zvyknout na české označení různých plurálů a používat je trvale (pak třeba můžeme nějaké plurály do zdrojového kódu dodatečně doplnit…).

Řetězec pro češtinu:

nplurals=3; plural=n>=2 &amp;&amp; n<=4 ? 1 : n==1 ? 0 : 2;

Udává, že čeština má pro vyjádření počtu 3 tvary: jedna věc – dvě až čtyři věci – pět a více věcí.

Tento řetězec si dobře zapamatujeme (respektive zapíšeme někam, kde ho snadno najdeme), budeme ho totiž mockrát potřebovat. PoEdit tahle defaultní jazyková nastavení okamžitě zapomene, jakmile přejdeme k dalšímu překladu. Ach jo, ale jdeme dál…

Na další záložce určíme cesty, kde má případně PoEdit hledat gettextové řetězce, pokud bychom občerstvovali katalog ze zdrojového kódu. Platí, že tam má být . (tečka) pro nejhloubější adresář, kde se mají řetězce hledat (to je základní cesta, kterou vypíšeme v políčku nahoře – nechápu, proč ji nejde vyhledat na disku přímo a označit, když to jde u databáze překladů…), a .. (dvě tečky) označují úroveň o jednu vyšší. Pozor, NEOZNAČÍME dvě tečky, pokud takový adresář, jako právě v tomto případě, není! (to co vidíte na obrázku je jen příklad, ve skutečnosti tam má být pro tento plugin jen jedna tečka). Jinak by se nám do katalogu zapsaly řetězce ze všech pluginů, které v nadřazeném adresáři /plugins máme!

Ještě k zapisování voleb. Brzy přijdeme na to, že musíme kliknout na ikonu se čtverečkem, zadat parametr a volbu potvrdit Enterem. Kliknutím na OK dole se daný stav zapíše a nastavování skončí, třeba i předčasně. Pozor na to!

greenshot_2008-08-24_12-21-30

Obdobně postupujeme i na další záložce, která určí označení gettextových řetězců. Zadáme tam vždy __(dvě podtržítka) a _e (podtržítko + e). Zadáme-li i __ngettext a __c, nic nepokazíme, ale je to zbytečné, program reaguje na dvě podtržítka i v případě, že je za nimi něco jiného než závorka. Nastavení pak vypadá takto:

greenshot_2008-08-24_11-56-11

A nyní tedy můžeme kliknout na OK. Program se nás zeptá, jak má příslušný soubor .po, který se vzápětí vytvoří, uložit. Určíme, že do adresáře, kde má být potom i přeložený soubor .mo. A pozor, musíme jej správně pojmenovat. V případě pluginu se používá obvykle nazevpluginu-cs_CZ, nebo, jako v tomto případě, zkratkapluginu-cs_CZ – inspirujeme se už hotovým souborem .po (resp.  .mo), pokud existuje, nebo se podíváme do zdrojového kódu, tam najdeme něco jako __(‚text‘,’nazevpluginu‘) a použijeme ten druhý řetězec plus správné označení jazyka (jako WPLANG v souboru wp-config.php).

Po zadání se otevře soubor s frázemi k překládání:

greenshot_2008-08-24_12-05-25

Při překladu postupujeme tak, že buď do spodního pole zapisujeme přímo přeloženou frázi, nebo pomocí voby Alt-C zkopírujeme do překladu originál a ten přepíšeme (užitečné, pokud fráze obsahuje nějaké proměnné nebo HTML značky). Pokud si nejsme jisti, můžeme použít Alt-U a překlad označit jako nepřesný, a vrátit se k němu později, až je nám např. jasný kontext. Pak opět pomocí Alt-U tento překlad označíme jako správný (nebo po jeho opravení se to udělá automaticky). Zdá se vám to trochu pracné? Jistě, ale co je jednoduché, že…Snad až to vyzkoušíte, lépe oceníte ty, kteří to dělají takřka pravidelně a zajišťují překlady jádra WordPressu a důležitých pluginů při jejich aktualizaci.

Příště si řekneme něco o tom, jak správně „ogettextovat“ zdrojový soubor, který autor opomněl připravit k lokalizaci (velmi častý případ u motivů vzhledu).

WordPressPermalink

7 Responses to Překládáme WordPress – 3. část – první překlad

  1. maydalenka says:

    Dík za srozumitelný článek. Přeložila jsme podle něj jeden plugin, soubory .po a .mo jsem nahrála do složky lang, bohužel mám plugin stále v angličtině. Kde jsem udělala chybu? díky

  2. libor says:

    Hezké články, díky za ně.

    Asi máte ale chybu v definici plurálů: místo & by jste měl mít &.

  3. Jack7 says:

    Zdravím!
    Už kdysi jsem si sem přišel pro radu jak nacpat češtinu do pluginu WordTube. A nyní si nemohu vzpomenout jak jsem ho pomocí tvé rady donutil češtinu načíst. Bohužel jsou bývalé komentáře zřejmě smazány a tak nevím jak jinak to zjistit než tě znova poprosit o radu. Předem děkuji 🙂

  4. weber says:

    No to je trochu škoda. Překlád jsem jeden vytvořil ale bohužel bylo to k ničemu nejde rozchodit ani jeden. Takže budu testovat na EN prostředi, pak odepišu jak jsem dopadl 🙂
    Dík za odpověď

  5. admin says:

    Bohužel, tyhle pluginy jsem nezkoušel. A nyní nějak nemám na WP čas, takže zase až asi přijdou dlouhé zimní večery…

  6. weber says:

    Ahoj Pepo. Vše samo sebou OK s tim překladem ale mam par dotazů.
    Zkoušel jsi vícejazyčné pluginy nebo widgety. Protože WP czech verze s žádnym z nich bez potíži nepracuje vubec.
    Jedna se o XLANGUAGE, LANGSWITCH nebo qTranslate. Ani jeden nejde instalovat a sprovoznit bez potíži
    A nejak nepochopil jsem při ukládani nastaveni proč vyskakuje mezi stránka s podivnym kódovanim. Při testu EN a DE verzi tam je vše OK ale v CZ verzi není tomu tak.
    Dik za odpověď a tvou snahu v překladech, jseš jednička 🙂

  7. Bengo says:

    super, aspoň jsem si dodělal překlad na NextGen galerii

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *