Kategória: Linux všeobecne

Zmenené: 28. október 2012

Preklady aplikácií Java

V poslednej dobe som sa dostal k prekladom programov napísaných v jazyku Java. Pôvodný systém lokalizácie Java používa súbory .properties, ktoré sú tvorené prostým textovým súborom, kde sú uložené dvojice kľúč=hodnota. Ale udržiavanie týchto súborov s prekladmi môže byť problém.

Pri slovenčine je s týmito súbormi menší problém, a to ten, že tieto súbory používajú len znakovú sadu ASCII, a teda nepoznajú slovenské národné písmená. Tento problém Java obchádza tak, že národné znaky sú zakódované do podoby kódu Unicode, napríklad uXYZW, kde XYZW je Unicode kód daného znaku. Napríklad:

_PLEASE_FILL_ALL_FIELDS=Pros\u00edm, vypl\u0148te v\u0161etky polia

Hoci je možné preklad vytvoriť prakticky v ľubovoľnom kódovaní, na to, aby bol preklad v jave správne zobrazený, je potrebné urobiť prevod do spomínaného formátu Unicode, na čo Java poskytuje nástroj native2ascii. Ale nástroj na spätné dekódovanie do UTF-8 už Java neposkytuje, čo robí úpravu (či opravu a aktualizáciu) v ASCII zakódovaného textu, pomocou bežných textových editorov, prakticky nemožnú.

Rozhodol som sa preto pohľadať, či neexistuje nástroj, ktorý by dokázal toto de/kódovanie transparentne (za behu). Najprv ma upozornil jeden môj známy (autor programu Nyagua) na interný editor, ktorý je súčasťou vývojového prostredie Netbeans IDE. Avšak inštaláciu Netbeans IDE nepovažujem za vhodný spôsob pre prekladateľov, preto som pátral ďalej. Výsledky svojho pátrania (samozrejme zameraného na slobodné nástroje) predstavím v poradí, ako som ich našiel.

properties-editor

Properties-editor je jednoduchý program, ktorý umožňuje jednoduchú manipuláciu s prekladom. Medzi poskytované funkcie patrí:

  • otvoriť súbor
  • uložiť súbor
  • odstrániť/pridať kľúč

Projekt properties-editor rastie na http://sourceforge.net/projects/properties-edit, kde je dostupný na stiahnutie archív ZIP, ktorý obsahuje skripty (sh a bat) na spustenie no a samotný súbor JAR. Po spustení sa objaví jednoduché rozhranie:

properties-editor

Prostredie properties-editor

Ako môžete sami vidieť, editor zvláda prevod medzi Unicode značkami kódovaným ASCII do UTF-8 bez problémov, ale to je asi tak všetko. No, tento nástroj ma veľmi nenadchol, ale je lepší ako nič.

JLokalize

JLokalize je editor párov kľúč=hodnota vo formáte súboru .properties Javy a jeho domovskú stránku nájdete na http://jlokalize.sourceforge.net/, kde je k dispozícii aj používateľský manuál vo formáte PDF. Nástroj umožňuje pridávať komentáre a má aj zabudovanú funkciu na vrátenie zmien i kontrolu preklepov. Funkcia kontroly preklepov nebola v mojom systéme dostupná, ale to je spôsobené chýbajúcou knižnicou JOrtho alebo chýbajúcim slovníkom, neviem. Pri prvom spustení vás požiada o výber jazyka rozhrania, ktorý možno zmeniť aj neskôr (menu Help -> Choose language).

JLokalize

Prostredie JLokalize

Okrem spomínaných funkcií, autori deklarujú, že dokáže poskytovať štatistiky o použití kľúča v aplikácii, čo som neskúšal, pretože som ho netestoval s kompletným zdrojovým kódom aplikácie. Celkovo na mňa urobil oveľa lepší dojem ako predošlý, je to komplexnejšia aplikácia, ktorá by mala dokonca zvládať aj rozpoznanie nových kľúčov.

MeOr

Projekt MeOr rastie na http://sourceforge.net/projects/meor a mne sa ho nepodarilo spustiť. Čo však stojí za zmienku, je, že v archíve ZIP, ktorý je odstupný na stiahnutie, obsahuje niekoľko zaujímavých nástrojov:

  • ant.xml obsahuje kód pre ant na zostavenie katalógu správ pri kompilácii,
  • i18n-xml.xsl a i18n.xsl obsahuje transformácie XSL na prevod súborov XML na súbory properties a naopak.

Ani jeden z týchto nástrojov XML a XLS som neskúšal, ale myslím, že ich môžu oceniť iní.

TapiJI

Aby som bol úprimný, tento nástroj som nenašiel ja, ale i tak ho predstavím. Nástroj TapiJI je dostupný v dvoch podobách, jedna ako zásuvný modul do vývojového prostredia Eclipse a druhý ako samostatná aplikácia. Ja som sa zameral výhradne na samostatnú aplikáciu, pomenovanú TapiJI Translator. Projekt rastie na http://code.google.com/a/eclipselabs.org/p/tapiji/ a v porovnaní so všetkými predchádzajúcimi má archív na stiahnutie obrovských približne 68 MB, ale vyzerá to, že jednoducho obsahuje aj potrebné časti Eclipse.

TapiJI

Prostredie TapiJI

Môj prvý dojem bol veľmi pozitívny, najmä čo sa týka rýchlosti odozvy grafického rozhrania. Milo ma prekvapila možnosť vytvárať si pamäť prekladov (Glossary), no a nemilo ma prekvapila chýbajúca možnosť vyhľadávania nepreložených reťazcov. Ale tento projekt vyzerá veľmi nádejne a možno chýbajúce funkcie ešte doplnia.

PrEd

PrEd je trochu iný nástroj a venujem mu samostatnú časť, pretože to čím sa líši považujem za unikátne. PrEd totiž umožňuje upravovať preklad priamo v archíve JAR, čo oceníte, ak nemáte k dispozícii zdrojový kód. nenašiel som síce spôsob ako do archívu pridať nový preklad, ale i tak ho považujem za šikovný, a to napriek tomu, že je pomerne starý (rok 2004) a dialóg s nastaveniami mi nefungoval.

pred

Prostredie PrEd

Program som síce skúšal len letmo, ale úspešne zmenil preklad priamo v archíve JAR, takže napriek veku jeho hlavná funkcia stále funguje.

Ostatné nástroje

Okrem spomínaných nástrojov som na SourceForge našiel ešte ďalšie, ktoré sú však staršieho vydania, a preto som ich ani neskúšal, avšak pre úplnosť ich tu spomeniem:

Záver

Na záver môžem napísať len jedno, ak potrebujete prekladať program napísaný v Jave, ktorý používa na lokalizáciu súbory properties, skúste použiť JLokalize. alebo TapiJI. Ja som však úspešný nebol a nakoniec používam Translation Toolkit, pomocou ktorého robím konverziu do PO(T) a späť.

A aby som nezabudol, všetky vyskúšané nástroje sú napísané v Jave, a tak na ich spustenie budete potrebovať Java VM (JRE alebo JDK), ja som ich všetky skúšal pod OpenJDK 7. Všetky, ktoré sa mi podarilo spustiť, tiež menili poradie kľúčov pri uložení súboru, takže s nástrojom diff zmeny nezistíte (bude ich veľa), no a žiadna nie je zatiaľ preložená do slovenčiny.