SEO-Saurus - Vývoj webu v reálném čase
seo-saurus

🦖 O překladech TYPO3 - Jak zajistit, aby vaše webové stránky mluvily všemi dino-jazyky

TYPO3 je mohutná bestie systému CMS - silná, škálovatelná a chytřejší než průměrný velociraptor. A co je ještě lepší? Umí řvát ve více jazycích! V tomto článku vás provedeme zkamenělou džunglí překladů TYPO3. 🦕🌍

V ekosystému TYPO3 existují dva druhy překládaného obsahu:

  1. Statické řetězce – Představte si je jako zkameněliny pohřbené v kódu: popisky tlačítek, texty v patičce, backendové popisky.
  2. Databázvové záznamy – Jedná se o dynamické dinosaury: obsahové prvky, stránky, novinky atd.

🦴 Překlad statických řetězců - Kronika XLF

Abyste mohli začít, budete potřebovat soubor XLF - efektní soubor založený na XML, který obsahuje kouzla vašeho jazyka. Umístěte jej do svého rozšíření takto:

EXT:extension_name/Resources/Private/Language/locallang.xlf

Chcete přidat němčinu? Stačí předpona jako: de.locallang.xlf

Takto může vypadat váš standardní soubor locallang.xlf (rawr!):

<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" product-name="extension_name">
<body>
<trans-unit id="page.header">
<source>Header</source>
</trans-unit>
<trans-unit id="page.footer">
<source>Footer</source>
</trans-unit>
</body>
</file>
</xliff>

A nyní německá verze (alias Dino-Deutsch 🦕🇩🇪):

<xliff version="1.0">
<file source-language="en" target-language="de" datatype="plaintext" original="messages" product-name="extension_name">
<body>
<trans-unit id="page.header">
<source>Header</source>
<target>Kopfzeile</target>
</trans-unit>
<trans-unit id="page.footer">
<source>Footer</source>
<target>Fußzeile</target>
</trans-unit>
</body>
</file>
</xliff>

Chcete-li je použít v šablonách Fluid, použijte mocný ViewHelper f:translate:

<f:translate key="page.header" />
<f:translate key="page.header" extensionName="extension_name" />
<f:translate key="LLL:EXT:extension_name/Resources/Private/Language/locallang.xlf:page.header" />

Chcete dynamické překlady s argumenty? Třeba:

<source>Přečíst více o %s</source>

Pak použijte:

<f:translate key="page.readmore" arguments="{0: 'Proč je TYPO3 T-Rexcelentní CMS'}" />

A v PHP:

\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate(
'page.readmore',
'extension_name',
['Proč je TYPO3 T-Rexcelentní CMS']
);

🧠 Backend a překlady třetích stran - Crowdin

Přemýšleli jste někdy o tom, jak je možné, že základní a oblíbená rozšíření jsou přeložena do tolika jazyků? Je to proto, že používají překladatelskou platformu Crowdin, kde pomáhá celá komunita dinosaurů.

Lidé navrhují překlady, korektoři je schvalují a TYPO3 je v pravidelných vydáních doplňuje.

Chcete-li získat balíčky překladů:

  1. 🦖 Jděte do Správcovské nástroje → Údržba → Manage Language Packs
  2. 🦕 Zvolte si jazyk nebo jazykový balíček a klikněte na "Download"

🛠️ Co když Crowdin neumí váš dino-dialekt?

Bez obav! Proto jsme vytvořili rozšíření hd_translator. Umožňuje přepisovat a upravovat překlady přímo v backendu TYPO3 jako překladatelský T-Rex v obchodě s porcelánem.

Mezi další možnosti přepisu patří např:

TypoScript

plugin.tx_extensionname._LOCAL_LANG.de.page.readmore = Mehr über %s lesen

PHP Override

$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']['EXT:extension_name/Resources/Private/Language/locallang.xlf'][] = '/var/www/html/translations/locallang.xlf';

🧬 Překlad záznamů z databáze - Vícejazyčná DNA

Nejprve je třeba aktivovat požadované jazyky:

  1. 🌐 Jdi do Správa stránek → Stránky
  2. Klini na záložku → Jazyky → A přidej nový jazyk

🦕 Překlad stránek a obsahu

Na stránku nelze vložit obsah, když v požadovaném jazyce tato stránka neexistuje. První krok: přeložte ji!

  1. Otevřete modul Stránka
  2. Jestliže překlad stránky chybí, nabídne se možnost “Vytvořit nový překlad této stránky”
  3. Vyberte jazyk z nabídnutého seznamu

Nyní můžete přepínat jazyky pomocí výběru na horním panelu nástrojů.

Chcete-li přeložit prvky obsahu, můžete použít tlačítko Přeložit nad každým sloupcem jazyka. Tím se spustí průvodce, který vám umožní vybrat prvky k překladu.

TYPO3 podporuje:

  • Volný režim – Každý jazyk je svým vlastním dinosaurem
  • Propojený režim – Jeden dinosaurus, mnoho jazyků
  • Smíšený režim – Teorie chaosu potvrzena 🦖🌀

🧾 Překlad vlastních záznamů v modulu Záznamy

  • Přejděte do modulu Záznamy
  • Otevřete složku
  • Ujistěte se, že je přeložena také samotná složka
  • Otevřte jeden záznam
  • V horní čísti se zobrazí přepínač pro dostupné překlady nebo „[NOVÝ]“ pro nové záznamy.

💡 Bonusový trik: Na kartě Jazyk záznamu nastavte jazyk na Všechny jazyky, aby se zobrazoval bez ohledu na jazyk webu.

🦕 FAQasaurus

🦴 Můj jazyk v šablonách nefunguje!

Ujisti se, že máš jazyk nadefinovaný (týká se to pouze neobvyklých jazyků):


$GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['user']['us'] = 'English US';

🦖 Co definuje předponu us. nebo de.?

Ve tvém config.yaml se podívej po:


typo3Language: us

🦕 Mohu nastavit jiný název souboru nebo cestu k souboru pro překlad?

Ano, saurus! Zatímco TYPO3 navrhuje ukládat fosilie XLF do klasického hnízda na adrese
EXT:extension_name/Resources/Private/Language/, you're not stuck there.

Můžete použít i jiný název souboru - jen vězte, že pokud se odchýlíte od souboru locallang.xlf, budete muset v šablonách nebo kódu PHP zadat celou cestu. locallang.xlf je považován za výchozí alfa soubor, takže jej TYPO3 automaticky rozpozná. Pokud se od něj odchýlíte, budete muset zvíře navádět něčím jako:

<f:translate key="LLL:EXT:extension_name/Resources/Private/Language/my_custom_file.xlf:page.header" />

Takže ano - přejmenujte se, přemístěte se, zdivočte. Prostě zanechte za sebou pořádnou překladatelskou stopu, kterou TYPO3 bude sledovat. 🦴💬

Komentáře

Komentáře

Sledujte mě