Zápis viacjazyčného textu a preklady do ďalších jazykov

Všetky texty v systéme sú písané v anglickom jazyku a prekladané do ostatných jazykov pomocou gettext i18n knižnice. Návod popisuje najbežnejšie situácie a aj odporúčania pre tvorbu kvalitných viacjazyčných šablón

1) Základný zápis viacjazyčného textu

  • bez dynamického obsahu, bez špecifického kontextu, atď.
  • odporúča sa pre prekladanie celých viet, slovných spojení, atď.
  • nie je vhodný pre slová, ktoré môžu mať v rozličných situáciach rozdielny význam:
    • to isté je v angličtine podstatné meno aj sloveso (work = práca, work = pracovať, record, atď.)
    • to isté slovo môže znamenať v rozličných kontextoch niečo iné (table = stôl, table = tabuľka, atď.)
<t:template xmlns:t="uri:t">

${_('Multilingual text written in English')}

</t:template>
<?php

print _('Multilingual text written in English');

?>
// text v jazyku stránky
i18n.content()._('Multilingual text written in English');

// text v jazyku preferovaného uzívateľského rozhrania
$.ice._('Multilingual text written in English');

2) Rožšírený zápis s definíciou kontextu

  • odporúča sa pre prekladanie jednotlivých slov, názvov akcií atď.
<t:template xmlns:t="uri:t">

${pgettext('verb', 'work')} // pracovať

${pgettext('noun', 'work')} // práca

</t:template>
<?php

print pgettext('test-gettext-context', 'test-gettext');

?>
TODO

3) Zápis pre podstatné mena v množnom čísle

  • nutné používať v kombinácii s bodom 4) pre všetky podstatné mena v množnom čísle
  • pr. skloňovanie podstatného mena "záznam":
    • 0 záznamov
    • 1 záznam
    • 2 záznamy
    • 5 a viac záznamov
<t:template xmlns:t="uri:t">

$[ngettext('test-gettext-plural', 'test-gettext-plurals', $count)]

</t:template>
<?php

print pgettext('test-gettext-context', 'test-gettext');

?>
TODO

4) Viacjazyčný text obsahujúci dynamickú hodnotu (premennú)

  • TODO
<t:template xmlns:t="uri:t">

$[pgettext('test-gettext-context', 'test-gettext')]

</t:template>
<?php

print pgettext('test-gettext-context', 'test-gettext');

?>
TODO

5) Viacjazyčný text obsahujúci HTML kód

  • TODO
<t:template xmlns:t="uri:t">

$[pgettext('test-gettext-context', 'test-gettext')]

</t:template>
<?php

print pgettext('test-gettext-context', 'test-gettext');

?>
TODO

6) Ako vygenerovať preklady (.po, .mo súbory)

  • aktualizovať zoznam viacjazyčných textov použitých v šablónach:
    • cd /www/nge/locale/build && phing
  • doplniť preklady do .po súborov v /locale/po/*.po
    • preklady sa dopisujú do msgstr ""
      (možné využiť aj grafické rozhranie programu PoEdit)

  • buildnuť preklady
    • cd /www/nge/locale/build && phing
  • reštartovať Apache
    • v Dockeri - 
    • na Windowse - cez services (služby) alebo v admin cmd príkazmi httpd -k stop a httpd -k start
Značky článkov
# gettext # i18n # multilanguage

Mohlo by Vás zaujímať:

Nasadenie heureky

Vytvorenie konkrétnych cien na časové obdobie

Eshop so skladom / bez skladu

Captcha - neviditeľná

Komentáre a hodnotenia

Prázdny