FunkcePluginCeníkZdroje
Změnit jazyk
ZdrojeJeden soubor na vstupu, pět formátů na výstupu: Jak zajistit, aby vaše překlady WordPress byly odolné vůči budoucnosti

Jeden soubor na vstupu, pět formátů na výstupu: Jak zajistit, aby vaše překlady WordPress byly odolné vůči budoucnosti

SimplePoTranslate Team21. března 2026
Jeden soubor na vstupu, pět formátů na výstupu: Jak zajistit, aby vaše překlady WordPress byly odolné vůči budoucnosti

Strávili jste tři týdny překladem své šablony WordPress do španělštiny. Soubor .po je perfektní – každý řetězec zkontrolovaný, každá proměnná neporušená, každá forma plurálu správná. Poté se váš klient rozhodne migrovat z klasické PHP šablony na headless řešení s Reactem na frontendu.

Náhle je váš soubor .po k ničemu. React aplikace potřebuje .json. Legacy PHP widgety stále potřebují .mo. Freelancer, který se stará o mobilní aplikaci, chce .xliff. A nikdo nemá čas znovu překládat 4 000 řetězců do tří různých formátů.

Nejde o ojedinělý případ. Je to realita moderního vývoje WordPress, kde jsou šablony dodávány s PHP i JavaScript komponentami, pluginy používají kombinaci Gettext a i18next a klienti mění názory na architekturu častěji, než mění hesla.

Proč na formátu překladových souborů záleží více než kdy dříve

Před pěti lety byl překlad WordPress jednoduchý. Měli jste soubor .po (zdroj v čitelné formě) a soubor .mo (kompilovaný binární soubor). To bylo vše. Každá šablona, každý plugin, každý překladatelský nástroj mluvil stejným jazykem.

Dnes ekosystém WordPress používá v produkci alespoň pět formátů překladových souborů:

Pět formátů, které musíte znát

.po (Portable Object) – Zdrojový formát čitelný pro člověka, používaný GNU Gettext. Obsahuje původní řetězce (msgid) a jejich překlady (msgstr). Toto upravují překladatelé.

msgid "Add to Cart"
msgstr "Anadir al carrito"

msgid "Your order has been shipped to %s"
msgstr "Su pedido ha sido enviado a %s"

.mo (Machine Object) – Kompilovaná binární verze souboru .po. WordPress čte soubory .mo za běhu pomocí load_textdomain(). Rychlejší než parsování .po za běhu, ale není upravitelné člověkem.

.json (JavaScript Object Notation) – Používá se wp_set_script_translations() pro překlady založené na JavaScriptu v blocích Gutenberg, React komponentách a moderních šablonách. WordPress očekává specifickou JSON strukturu s klíči locale_data.

{
  "locale_data": {
    "flavor-starter": {
      "Add to Cart": ["Anadir al carrito"],
      "Your order has been shipped to %s": ["Su pedido ha sido enviado a %s"]
    }
  }
}

.php (PHP Array) – Stále populárnější formát pro šablony a pluginy, které používají načítání překladů ve stylu Laravel. Některé moderní šablony WordPress zcela obcházejí Gettext a načítají překlady z PHP polí pro zvýšení výkonu.

<?php
return [
    'Add to Cart' => 'Anadir al carrito',
    'Your order has been shipped to %s' => 'Su pedido ha sido enviado a %s',
];

.xliff (XML Localization Interchange File Format) – Průmyslový standard pro výměnu překladů mezi různými nástroji a platformami. Používá se v CAT (Computer-Assisted Translation) nástrojích, jako jsou memoQ, Trados a Memsource. Nezbytné při práci s profesionálními překladateli.

<trans-unit id="1">
  <source>Add to Cart</source>
  <target>Anadir al carrito</target>
</trans-unit>

Problém: Uzamčení formátem

Většina překladatelských nástrojů vytváří jeden výstupní formát. Poedit vám dává .po a .mo. WPML ukládá překlady do databáze (vůbec ne do souborů). Weglot uchovává překlady na svých serverech v proprietárním formátu. Dokonce i platformy TMS jako Crowdin a Lokalise vyžadují, abyste ručně konfigurovali exportní formáty pro každý projekt.

To vytváří uzamčení formátem – vaše překlady jsou uvězněny v tom formátu, který váš současný nástroj produkuje. Když se vaše požadavky změní, máte dvě možnosti:

  1. Znovu přeložit vše v novém formátu (drahé, časově náročné a ztratíte veškeré ruční opravy)
  2. Psát vlastní konverzní skripty (náchylné k chybám, zejména pro komplexní plurálové formy a proměnné)

Žádná z těchto možností není dobrá. Obě plýtvají časem a penězi. Obě představují riziko.

Reálné scénáře, kde uzamčení formátem bolí

Scénář 1: Modernizace šablony. Šablona vašeho klienta je přestavována pomocí bloků Gutenberg. Staré PHP šablony používaly soubory .mo. Nové bloky potřebují .json pro wp_set_script_translations(). Vašich 3 000 přeložených řetězců musí existovat v obou formátech během přechodu.

Scénář 2: Agenturní workflow. Spravujete 20 klientských webů. Některé používají klasické šablony (.mo). Některé používají headless řešení (.json). Jeden používá vlastní framework, který čte PHP pole. Potřebujete stejné překlady v různých formátech pro různé klienty.

Scénář 3: Profesionální revize. Vaše AI překlady jsou přesné na 95 %, ale chcete, aby rodilý mluvčí zkontroloval zbývajících 5 %. Profesionální překladatelé používají CAT nástroje, které importují .xliff. Potřebujete exportovat své překlady do .xliff, poslat je k revizi a sloučit opravy zpět.

Scénář 4: Migrace platformy. Váš klient přechází z WordPress na vlastní Node.js aplikaci. Nová aplikace používá i18next a potřebuje soubory .json. Vašich 5 000 přeložených řetězců ve formátu .po je třeba převést – bez ztráty jediné proměnné nebo formy plurálu.

Řešení: Přeložte jednou, získejte každý formát

SimplePoTranslate používá jiný přístup. Když nahrajete soubor .po, .pot, .json nebo .xliff a spustíte překlad, získáte zpět ZIP obsahující všech pět formátů:

translations-es_ES.zip
├── flavor-starter-es_ES.po
├── flavor-starter-es_ES.mo
├── flavor-starter-es_ES.json
├── flavor-starter-es_ES.php
└── flavor-starter-es_ES.xliff

Není to „prémiová funkce“ uzamčená za podnikovou vrstvou. Každý placený plán – Pro (19 USD/měsíc) a Lifetime (399 USD jednorázově) – zahrnuje všech pět výstupních formátů v každé překladatelské úloze.

Proč na tom záleží pro zajištění odolnosti vůči budoucnosti

Když máte všech pět formátů od začátku, nikdy nemusíte překládat znovu. Vaše překlady jsou majetek, který se přizpůsobí jakémukoli technickému požadavku:

  • Klient migruje z klasiky na Gutenberg? Nasaďte soubor .json.
  • Nový vývojář preferuje PHP pole? Podejte mu soubor .php.
  • Profesionální překladatel chce zkontrolovat? Pošlete soubor .xliff.
  • Přechod na jiný CMS? Soubory .json a .xliff jsou nezávislé na platformě.

Přeložíte jednou. Formáty jsou připraveny, když je potřebujete.

Jak každý formát funguje ve WordPress

Vědět, který soubor kam patří, je zásadní pro čisté nasazení.

Nasazení souborů .mo (klasické PHP šablony a pluginy)

wp-content/languages/plugins/woocommerce-es_ES.mo
wp-content/languages/themes/flavor-starter-es_ES.mo

WordPress je načte automaticky, když se jazyk webu shoduje. Není vyžadován žádný plugin. Žádná zátěž databáze. Toto je přístup, který poskytuje nejlepší výkon.

Nasazení souborů .json (Gutenberg bloky a JS komponenty)

wp-content/languages/plugins/woocommerce-es_ES-{handle}-{md5}.json

Název souboru obsahuje handle skriptu a MD5 hash. WordPress je spáruje, když voláte wp_set_script_translations() ve svém pluginu nebo šabloně. Pokud vytváříte Gutenberg bloky, je to soubor, díky kterému se správně zobrazují přeložené popisky a popisy bloků.

Použití souborů .xliff (profesionální revizní workflow)

Soubory .xliff se nenasazují do WordPress. Používají se jako výměnný formát, když potřebujete poslat překlady profesionálnímu revizorovi nebo je importovat do CAT nástroje. Workflow vypadá takto:

  1. Nahrajte .po do SimplePoTranslate a získejte .xliff v ZIPu
  2. Pošlete .xliff svému překladateli nebo revizorovi
  3. Obdržte opravený .xliff zpět
  4. Nahrajte opravený .xliff do SimplePoTranslate a získejte aktualizované .mo a .json

Toto workflow zpětné vazby zachovává každou proměnnou a formu plurálu, protože Syntax Locking SimplePoTranslate je chrání v každé fázi.

Test uzamčení dodavatelem

Zde je jednoduchý test, který určí, zda má váš současný překladatelský workflow problém s uzamčením:

  1. Můžete exportovat své překlady jako standardní soubory .po právě teď?
  2. Pokud dnes zrušíte předplatné svého překladatelského nástroje, ponecháte si každý přeložený řetězec?
  3. Můžete importovat své překlady do zcela jiného nástroje nebo platformy bez opětovného překladu?

Pokud je odpověď na některou z těchto otázek „ne“, jste uzamčeni. Služby jako Weglot a GTranslate selhávají ve všech třech otázkách – zrušte předplatné a vaše překlady zmizí. WPML ukládá překlady do databáze, což umožňuje export, ale je to bolestivé. Dokonce i desktopové nástroje jako Poedit projdou testem na papíře, ale omezují vás pouze na .po a .mo.

Se SimplePoTranslate je odpověď na všechny tři otázky „ano“. Stáhnete si standardní soubory v pěti formátech. Jsou vaše. Smažte svůj účet zítra a každý překlad, který jste kdy udělali, bude stále fungovat.

Budování knihovny překladů nezávislé na formátu

Pro agentury a vývojáře spravující více projektů je nejchytřejší přístup vybudovat knihovnu překladů – Git repozitář nebo sdílenou složku, kde ukládáte přeložené soubory pro každý klientský projekt.

translations/
├── client-acme/
│   ├── es_ES/
│   │   ├── flavor-starter-es_ES.po
│   │   ├── flavor-starter-es_ES.mo
│   │   ├── flavor-starter-es_ES.json
│   │   ├── flavor-starter-es_ES.php
│   │   └── flavor-starter-es_ES.xliff
│   └── de_DE/
│       └── ...
├── client-globex/
│   └── ...

Když klient potřebuje nový formát, už ho máte. Když klient změní platformu, vaše překlady migrují bez námahy. Když se k týmu připojí nový vývojář, může přesně vidět, co bylo přeloženo a v jakých formátech.

To je to, co „odolný vůči budoucnosti“ ve skutečnosti znamená – ne předvídat, jakou technologii budou vaši klienti používat příští rok, ale zajistit, aby vaše překlady fungovaly s čímkoli, co si vyberou.

Jste připraveni přestat se starat o formáty souborů? Vyzkoušejte SimplePoTranslate zdarma – nahrajte jeden soubor, získejte zpět pět formátů. Žádné konverzní skripty, žádné překlady, žádné uzamčení.

Související témata