Proč se vaše překlady nezobrazují ve WordPressu (Průvodce řešením problémů)

Ve vývoji pro WordPress není nic frustrujícího než „tiché selhání“.
Udělali jste vše správně. Přeložili jste soubor .po. Zkompilovali jste ho do souboru .mo. Nahráli jste ho na server pomocí FTP. Vymazali jste mezipaměť.
Obnovíte stránku a očekáváte, že uvidíte španělštinu, francouzštinu nebo němčinu. Místo toho vidíte... angličtinu.
Žádná chybová zpráva, žádná bílá obrazovka – jen tvrdohlavý, nepřeložený text. Než si začnete rvát vlasy, přečtěte si tohoto průvodce. Zde je 5 nejčastějších důvodů, proč se překlady ve WordPressu nenačítají, a jak je opravit.
1. Špatně jste pojmenovali soubor
WordPress je neuvěřitelně přísný ohledně pojmenování souborů. Pokud vynecháte jediný znak, soubor se nenačte.
Standardní formát je: {text-domain}-{locale}.mo
- Textová doména: Jedná se o unikátní ID šablony nebo pluginu (např.
woocommerce,twentytwentyfour,my-custom-plugin). - Locale: Kód WP locale (např.
es_ESpro španělštinu ve Španělsku,fr_FRpro francouzštinu ve Francii).
Běžné chyby:
- Pojmenování souboru pouze
es_ES.mo(To funguje pouze pro globální soubory jádra WordPressu, nikoli pro pluginy). - Použití špatného znaku:
my_plugin_es_ES.mo(podtržítko) místomy-plugin-es_ES.mo(pomlčka). - Hádání textové domény. Musíte zkontrolovat kód pluginu (hlavička
style.cssnebo funkceload_plugin_textdomain), abyste našli přesný slug.
2. Umístili jste soubor do špatné složky
Místo, kam soubor nahrajete, je stejně důležité jako to, jak ho pojmenujete. WordPress hledá v konkrétních adresářích ve specifickém pořadí.
- "Bezpečná" systémová složka:
/wp-content/languages/plugins/nebo/wp-content/languages/themes/.- Výhody: Je to bezpečné před aktualizacemi pluginů.
- Nevýhody: Musíte soubor pojmenovat
textdomain-locale.mo.
- Složka autora:
/wp-content/plugins/plugin-name/languages/.- Výhody: Snadno se najde.
- Nevýhody: NEBEZPEČÍ. Při aktualizaci pluginu se tato složka kompletně vymaže. Vaše překlady zmizí.
Doporučený postup: Vždy ukládejte své vlastní soubory .mo do globálního adresáře /wp-content/languages/, abyste zabránili ztrátě dat během aktualizací.
3. „Tichý zabiják“: Poškozená syntaxe v souboru .po
Toto je nejobtížnější problém k ladění a často se vyskytuje u obecných nástrojů pro překlad pomocí AI.
WordPress čte binární soubory .mo, které jsou kompilovány z textových souborů .po. Pokud váš soubor .po obsahuje syntaktické chyby, soubor .mo může být vygenerován, ale bude interně „rozbitý“.
Jak k tomu dochází? Pokud překladatel (člověk nebo AI) pokazí formátování Gettext, řetězec se stane neplatným.
- Příklad: Chybějící koncová uvozovka
". - Příklad: Rozbití proměnné (změna
%sna% s). - Příklad: Popletení počtu
msgid_plural.
Když WordPress narazí na poškozený záznam v souboru .mo, často ho přeskočí nebo přestane soubor číst úplně a vrátí se k původní angličtině.
4. Zapomněli jste na kompilaci (.po vs .mo)
WordPress nemůže číst soubory .po přímo. Je to běžná mylná představa.
.po= Čitelné pro lidi (Portable Object)..mo= Čitelné pro stroje (Machine Object).
Pokud nahrajete soubor my-theme-es_ES.po, ale zapomenete vygenerovat odpovídající soubor .mo, nic se nestane. Musíte jej zkompilovat.
5. Caching (Obvyklý podezřelý)
Pokud používáte caching pluginy (WP Rocket, LiteSpeed) nebo caching na straně serveru (Varnish, Redis), vaše stránka může obsluhovat uloženou verzi HTML z doby před nahráním překladu.
Oprava: vymažte všechny mezipaměti, včetně mezipaměti prohlížeče a objektové mezipaměti.
Nejlepší oprava: Platné soubory od začátku
Řešení problémů s cestami a názvy souborů je snadné. Řešení problémů s poškozenou syntaxí (důvod č. 3) je noční můra.
Pokud používáte nástroj, který poruší vaše proměnné kódu nebo poškodí strukturu Gettext, strávíte hodiny přemýšlením, proč soubor nefunguje, aniž byste si uvědomili, že samotný soubor je „otrávený“.
Proto jsme vytvořili SimplePoTranslate.
- Uzamčení syntaxe: Zajišťujeme, že každý jednotlivý řetězec je syntakticky platný ještě před stažením. Uzamykáme proměnné jako
%s, aby nemohly být porušeny. - Perfektní formátování: Generujeme čisté, standardní soubory
.po, které se kompilují do funkčních souborů.move 100 % případů. - Nejsou vyžadovány žádné pluginy: Stáhnete si soubor a víte, že funguje. Stačí jej nahrát do správné složky.
- WordPress Plugin: Dáváte přednost vynechání ručního nahrávání? Náš oficiální SimplePoTranslate WordPress plugin automaticky detekuje vaše soubory šablon a pluginů
.pot, překládá je v cloudu a nasazuje výsledek do správného adresáře se správným názvem souboru. Už žádné špatně pojmenované soubory, žádné špatné cesty ke složkám – dva nejčastější důvody, proč se překlady nezobrazují.
Přestaňte hádat, proč jsou vaše překlady neviditelné. Začněte se souborem, kterému můžete věřit.
Jste připraveni překládat bez bolestí hlavy? Začněte zdarma na SimplePoTranslate.com