Podle potřeby můžete kombinovat oba způsoby vytváření překladů.
Zdroje:
- https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/
- https://codex.wordpress.org/I18n_for_WordPress_Developers
- https://www.gnu.org/software/gettext/manual/html_node/
- Získání překladů - Obalte všechny fráze, které chcete přeložit do některé z následujících překladových funkcí:
__(),esc_html__(),esc_attr__(),_e(),esc_html_e(),esc_attr_e()viz dokumentace. Načtěte ze zdrojového kódu fráze pomocí příkazu:composer run translates:extract, který uloží vyextrahované fráze do šablonytemplate.potv adresáři/languagesdo polemsgid "". Polemsgstring ""zůstane prázdné. Tento POT soubor (soubor s příponou.pot; Portable Object Template) se předá překladateli na překlad nebo se v našem případě přeloží pomocí ChatGPT do daného jazyka (zkopírujeme obsah souboru a necháme ChatGPT, aby naplnil polemsgstr ""překlady pro námi zvolený jazyk. Soubor uložíme jako PO soubor (soubor s příponou.po; Portable Object) do adresáře/languages. Tento PO soubor musí mít název pluginu a kód jazyka pro danou lokalizaci (např.:woosms-sms-module-for-woocommerce-cs.ponebowoosms-sms-module-for-woocommerce-cs_CZ.popro češtinu) viz dokumentace. - Aktualizace překladů - Pokud potřebujeme přidat do pluginu nové fráze, provedeme krok číslo 1. Pak pomocí příkazu
composer run translates:updatevložíme nové fráze z aktualizovaného POT souboru do existujících PO souborů. Ty jsou samozřejmě nepřeložené a je potřeba je přeložit. - Kompilace překladů - Aby mohli být překlady v pluginu použity musí se PO soubory zkompilovat do MO souborů (soubory s příponou
.mo; Machine Objects). To provedeme příkazemcomposer run translates:compile. Ten je vytvoří v adresáři/languages. Tyto soubory v gitu netrackujeme, slouží k testování překladů v lokálním prostředí. - Vložení nového jazyka - Nejjednodušší způsob jak vytvořit překlad do nového jazyka je zkopírovat kterýkoli, pro jiný jazyk vytvořený
.posoubor, změnit jeho název - kód země (první část názvuwoosms-sms-module-for-woocommerceje povinná), údaje v hlavičce (Language:aPlural forms:) a nahraďit všechna polemsgstringnovými překlady. Nebo použijte šablonutemplate.pota spusťte příkazmsginit --locale=fr_CA --input=languages/template.pot --output=languages/woosms-sms-module-for-woocommerce-fr_CA.po, který inicializuje metainformace v hlavičce hodnotami z uživatelského prostředí (např.: do hlavičky automaticky doplní hodnotuPlural forms:, ale je třeba upravitContent-type:charset=UTF-8)
- Otevřete nástroj Poedit (zdarma ke stažení na adrese https://poedit.net/download).
Soubor->Nový(CTRL + N)- Vyberte jazyk překladu ze seznamu pro vybranou zemi (např.: kanadská francouzština) a potvrďte -
OK. - Uložte soubor (
CTRL + S) - zobrazí se dialogové oknoUložit jako. Vložte textový název domény s kódem jazyka a země (např.:woosms-sms-module-for-woocommerce-fr_CA.po). Vyberte adresář v rámci vašeho projektu, kam má být soubor uložen (/languages) - Uložte
- V PhpStormu přejděte do adresáře s překlady (
/languages) a zkopírujte obsah libovolného již přeloženého.posouboru i s hlavičkou. - Přejděte do ChatGPT a vložte
- V ChatGPT nechte přeložit obsah
.posouboru (s vyplněnýmimsgid "Original text") do vybraného jazyka. Přeložené texty se doplní domsgstr "Přeložený text". - Zkopírujte výstup a vložte jej do souboru vybraného jazyka (
woosms-sms-module-for-woocommerce-fr_CA.po) v adresáři/languages. Poeditem automaticky vygenerovaná hlavička je nahrazena. - Přepněte se zpět do Poeditu, kde se objeví nové překlady. Překlady zkontrolujte, popřípadě upravte.
- Uložte (pokud máte v
Soubor->Nastavení->Obecné->Editacezaškrtnutou volbuPři uložení automaticky zkompilovat MO souborvytvoří se vám ve stejném adresáři nový zkompilovanýwoosms-sms-module-for-woocommerce-fr_CA.mosoubor) - Pokud nechcete
.mosoubory ukládat (tyto soubory v gitu netrackujeme, slouží například pro testováni na localhostu) zrušte zaškrtnutí této volby. - Při instalaci pluginu se .po soubory automaticky zkompilují do .mo formátu (release.yml) - GitHub Actions
- Ve zdrojovém kódu souboru (například Meta.php) vložte novou frázi v angličtině (EN slouží jako default v případě, že nemáme překlad do daného jazyka) do překladové funkce podle použití - např.:
esc_html__('New translation')(dokumentace funkcí zde - https://developer.wordpress.org/reference/functions/) - Otevřete program Poedit a otevřete soubor s překladem v jazyce, který chcete překládat (např.:
woosms-sms-module-for-woocommerce-fr_CA.po). - Dejte
Překlad->Aktualizovat za zdrojového kódunebo klikněte na tlačítkoAktualizovat z kódu. V dialogovém okněVýsledek aktualizacepotvrďte vložení nového řetězce. - Přeložte nebo uložte a dejte na překlad.
- Uložte soubor.