FunkcePluginCeníkZdroje
Změnit jazyk
ZdrojeJak překládat .po soubory bez poškození proměnných v kódu (%s, HTML)

Jak překládat .po soubory bez poškození proměnných v kódu (%s, HTML)

SimplePoTranslate Team25. listopadu 2025
Jak překládat .po soubory bez poškození proměnných v kódu (%s, HTML)

Začíná to jednoduchým úkolem: přeložíte svou WordPress šablonu do španělštiny. Nahrajete soubor .mo, obnovíte stránku a...

Fatal error: Uncaught ArgumentCountError: Too few arguments to function sprintf()...

Nebo se možná vaše stránka načte, ale rozvržení je zničené, protože se z uzavíracího tagu </div> stalo </ div>.

To je největší obava každého vývojáře, který pracuje s lokalizací. Pokud používáte obecné překladatelské nástroje (jako je Google Translate nebo základní AI obálky) na technické soubory .po, nezachází s kódem jinak než s textem. Snaží se "přeložit" vaše proměnné, a tím rozbijí váš web.

V tomto průvodci si vysvětlíme, proč se to děje a jak zajistit 100% bezpečnost kódu ve vašich automatizovaných překladech.

Anatomie katastrofy: Proč %s ničí weby

WordPress používá systém Gettext a PHP funkce jako sprintf() pro práci s dynamickým textem.

Například můžete mít řetězec jako tento: msgid "Search results for %s"

%s je zástupná proměnná, kam PHP vloží vyhledávací dotaz uživatele.

Jak to obecná AI pokazí

Když tento řetězec vložíte do standardního velkého jazykového modelu (LLM) nebo překladatelského API, vidí %s jako další podivné slovo. Může se pokusit opravit gramatiku nebo interpunkci kolem něj.

Tady jsou nejčastější syntaktické chyby, které vidíme:

  1. Přidaná mezera:

    • Originál: Hello %s
    • Špatný překlad: Hola % s
    • Výsledek: PHP hledá %s, ale vidí % s. Proměnná se nenačte, což často způsobí fatální chybu.
  2. HTML halucinace:

    • Originál: Click <strong>here</strong> to login.
    • Špatný překlad: Haga clic <strong>aquí</ strong> para iniciar sesión.
    • Výsledek: AI přidala mezeru do uzavíracího tagu </ strong>. Vaše CSS se rozbije a zbytek stránky se zobrazí tučně.
  3. Prohození argumentů:

    • Originál: Page %1$s of %2$s
    • Špatný překlad: Página %2$s de %1$s
    • Výsledek: AI usoudila, že věta zní lépe, když se čísla prohodí. Nyní vaše stránkování říká "Strana 10 z 1".

Past "manuální opravy"

Většina vývojářů se to snaží vyřešit ruční kontrolou souboru. Pokud máte malý plugin s 50 řetězci, je to v pořádku. Ale pokud překládáte WooCommerce obchod s 5 000 řetězci?

Prohledávání 5 000 řádků kódu kvůli jedinému chybějícímu středníku nebo mezeře uvnitř proměnné %s je nemožné. Trvá to hodiny a lidské oko nevyhnutelně něco přehlédne.

Regex (regulární výrazy) skripty mohou pomoci ověřit přítomnost, ale zřídka zachytí problémy s přeuspořádáním specifické pro kontext nebo jemné poškození atributů HTML.

Řešení: "Uzamčení syntaxe"

Jediný způsob, jak bezpečně přeložit soubor .po, je zabránit AI, aby se kódu vůbec dotkla. To vyžaduje proces zvaný Uzamčení syntaxe.

To je základní technologie SimplePoTranslate.

Na rozdíl od obecných nástrojů jen tak nenaházíme text do AI. Nejprve analyzujeme strukturu Gettext. Zde je postup, jak funguje náš "Bezpečný režim":

  1. Analýza: Prohledáme váš soubor .po a identifikujeme každou proměnnou (%s, %d), každý poziční argument (%1$s) a každý HTML tag (<br/>, <span>).
  2. Extrakce a uzamčení: Dočasně odstraníme tyto prvky z řetězce a nahradíme je neměnnými tokeny.
    • Vstup: Hello <strong>%s</strong>
    • Co AI vidí: Hello [TOKEN_1][TOKEN_2]
  3. Překlad: AI přeloží text "Hello" na "Hola", ale nemůže fyzicky změnit [TOKEN_1] nebo [TOKEN_2], protože jsou uzamčeny.
  4. Rekonstrukce: Znovu vložíme původní kód do přeloženého řetězce přesně tam, kam patří.

Výsledek: Nula poškozených webů

Vzhledem k tomu, že AI nikdy neinteraguje se skutečnými znaky %s nebo HTML, je matematicky nemožné, aby překladový engine přidal mezeru do proměnné nebo poškodil tag.

Dokonce zvládáme složitá pravidla pluralizace (msgid_plural) pro jazyky jako ruština nebo polština, což zajišťuje, že se pro správný počet použije správná proměnná.

Přestaňte hazardovat se svým kódem

Neměli byste držet palce pokaždé, když nahrajete jazykový soubor. Lokalizace by měla být o oslovení nových zákazníků, nikoli o ladění PHP chyb.

SimplePoTranslate je nejbezpečnější a nejpokročilejší cloudový nástroj pro vývojáře, kterým záleží na integritě kódu.

  • Cloudové řešení: Není třeba instalovat žádné pluginy.
  • Kontextově orientované: Používá AI třídy Gemini/GPT-4 pro přirozené fráze.
  • Syntaxe uzamčena: Zaručená ochrana vašich proměnných.

Jste připraveni překládat bez bolestí hlavy? Začněte zdarma na SimplePoTranslate.com

Související témata