TYPO3 Translations

22
In2code.de Wir leben TYPO3 Wir leben TYPO3 TYPO3 V. 4.6 TYPO3 V. 4.6 Lokalisierung mit XLIFF Lokalisierung mit XLIFF

description

Short introduction to the new TYPO3 translation features from version 4.6.

Transcript of TYPO3 Translations

Page 1: TYPO3 Translations

In2code.deWir leben TYPO3

Wir leben TYPO3

TYPO3 V. 4.6TYPO3 V. 4.6Lokalisierung mit XLIFFLokalisierung mit XLIFF

Page 2: TYPO3 Translations

in2code.deWir leben TYPO3

Ablauf• Lokalisierung – die Geschichte• Lokalisierung – die Zukunft– XLIFF - Standard

• Tools– Pootle – Server– Nützliche Extensions– Desktop - Anwendungen

Page 3: TYPO3 Translations

in2code.deWir leben TYPO3

Lokalsierung – die Geschichte• PHP – Dateien mit Arrays

<?php/** * * This file is detected by the translation tool. */$LOCAL_LANG = Array ( 'default' => Array ( ), 'dk' => Array ( ), 'de' => Array ( ), 'no' => Array ( ),);

Page 4: TYPO3 Translations

in2code.deWir leben TYPO3

Lokalisierung – die Geschichte• llxml – das TYPO3 eigene Format

<?xml version="1.0" encoding="utf-8" standalone="yes" ?><T3locallang> <meta type="array"> <description>Labels for the Linkvalidator Task.</description> <type>module</type> <csh_table></csh_table> <labelContext type="array"> </labelContext> </meta> <data type="array"> <languageKey index="default" type="array"> <label index="mod_linkvalidator">Linkvalidator</label> <label index="tasks.validate.name">Linkvalidator</label> <label index="tasks.validate.description">Search for broken Links and store the Result into the temporary Table tx_linkvalidator_link in order to ease up the Backend Module.</label> <label index="tasks.validate.page">Start Page (uid)</label> <label index="tasks.validate.depth">Depth</label> </languageKey> </data></T3locallang>

Page 5: TYPO3 Translations

in2code.deWir leben TYPO3

Lokalisierung – die Geschichte• Hausgemachte Lösung– Format der XML-Dateien– Translation – Server für den Core– Extensions konnten auf Wunsch installiert

werden

Page 6: TYPO3 Translations

in2code.deWir leben TYPO3

Lokalisierung – die Geschichte• Situation auf altem Translation – Server– Core– Extension auf Wunsch (über die Mailingliste)– Beteiligung „problematisch“

→ 1 Account je Übersetzungsteam→ keine Vorschläge→ Letzte Änderung „gewinnt“→ Keine Tools, um den Übersetzern zu helfen

Page 7: TYPO3 Translations

in2code.deWir leben TYPO3

Lokalisierung – die Zukunft• XLIFF– XML Localisation Interchange File Format– OASIS – Standard seit 2002

• http://en.wikipedia.org/wiki/XLIFF• Übersetzungssoftware (online und offline)

unterstützt diesen Standard

Page 8: TYPO3 Translations

in2code.deWir leben TYPO3

Warum XLIFF?• Features

Plural, Vorschläge, Alternative Übersetzungen

• Tools unterstützen die Übersetzungen– Online (z.B. Pootle)– Offline

(z.B. Virtaal [OS], Swordfish [kommerziell]

• Extensions erleichtern den Umstieg

Page 9: TYPO3 Translations

in2code.deWir leben TYPO3

XLIFF - Format<?xml version='1.0' encoding='utf-8'?><xliff version="1.0"> <file source-language="en" target-language="de" datatype="plaintext"

original="messages" date="Tue Jul 12 18:48:14 UTC 2011" product-name="jf_headerslide">

<header/> <body> <trans-unit id="pages.tx_jfheaderslide_images" approved="yes"> <source>Slide Images</source> <target state="translated">Dias</target> </trans-unit> <trans-unit id="pages.tx_jfheaderslide_stoprecursion" approved="yes"> <source>Stop Recursion (Reset)</source> <target state="translated">Stopp Rekursion (Zurücksetzen)</target> </trans-unit> <trans-unit id="pages.tx_jfheaderslide_href" approved="yes"> <source>Image links</source> <target state="translated">Bild-Links</target> </trans-unit> </body> </file></xliff>

Page 10: TYPO3 Translations

in2code.deWir leben TYPO3

Unterschiede• xml – Format• nur eine Sprache je Datei– jede weitere Sprache enthält das Sprachlabel

als Prefix– Bsp: de.locallang.xlf

• Orginalsprache ist immer Englisch→ Basis enthält immer alle Texte doppelt→ nur „target“ wird ausgewertet

Page 11: TYPO3 Translations

in2code.deWir leben TYPO3

Für wen?• Für mich, für Dich, für alle– Core: wird bei 4.6 vollständig umgestellt sein– Erweiterungen: je nach Autor

• LLXML / LLPHP funktionieren wie bisher– Keine Erweiterung verliert ihre Übersetzungen

Page 12: TYPO3 Translations

in2code.deWir leben TYPO3

Terminologie• Vergleichbar mit einem Wörterbuch– Vorschläge werden in der jeweiligen

Übersetzungssoftware angezeigt

Page 13: TYPO3 Translations

in2code.deWir leben TYPO3

Translation Server• Core komplett • Extensions „auf Antrag“• Verantwortlichkeiten– „Language Administrator“– Team Mitglied– Jeder andere mit TYPO3.org - Account

Page 14: TYPO3 Translations

in2code.deWir leben TYPO3

Translation Server• Jeder andere– Übersetzungen für fehlende Labels vorschlagen

• Team-Mitglied– Übersetzung des Core und der verfügbaren

Erweiterungen– Terminologie festlegen– Akzeptieren von Übersetzungen von Nicht-

Teammitgliedern

Page 15: TYPO3 Translations

in2code.deWir leben TYPO3

Translation Server• „Language Administrator“– Neue Team-Mitglieder hinzufügen– Entscheidungsgewalt bei Konflikten– Entfernen von Teammitgliedern, die sich nicht

an die Richtlinien halten– Aufgaben, wie jedes andere Team-Mitglied

auch

Page 16: TYPO3 Translations

in2code.deWir leben TYPO3

Translation Server• Die Praxis– Startseite– Übersetzungen online• Fehlerhinweise• Vorschläge der Terminologie • Google Translate Plugin (als Teammitglied)

– Down- und Upload von xlf – Dateien– Anmerkungen von Übersetzern (nicht in Pootle)

Page 17: TYPO3 Translations

in2code.deWir leben TYPO3

Desktop Anwendungen

• Virtaal (Open Source)– Keine Anzeige der Notes– MacOS: nicht wirklich nutzbar

• Swordfish (Kommerziell)

Page 18: TYPO3 Translations

in2code.deWir leben TYPO3

TYPO3 – Erweiterungen• Ext. „extdeveval“– Automatische Konvertierung von llxml nach xlf– In der aktuellen Version auf forge / svn

• Ext. „xliff“– Abhängigkeit in Extension setzen– Konvertiert xlf → llxml für TYPO3 < 4.6– Pflege der .xlf – Dateien reicht aus

Page 19: TYPO3 Translations

in2code.deWir leben TYPO3

TYPO3 - Konfiguration• Löschen den Sprach-Caches

$TYPO3_CONF_VARS['SYS']['lang']['cache']['clear_menu'] = TRUE;

• Anzeige der Labels$TYPO3_CONF_VARS['BE']['lang']['debug'] = TRUE;

Page 20: TYPO3 Translations

in2code.deWir leben TYPO3

Individuelle BE - Sprachen• Konfiguration via localconf.php

$TYPO3_CONF_VARS['SYS']['localization']['locales']['user'] = array('de_BY' => 'Bavarian German',

);

• Konfiguration einer Fallback-Kaskade$TYPO3_CONF_VARS['SYS']['localization']['locales']['dependencies'] = array (

'de_BY' => array ( 'de_FR' ,'de_CH' , 'de' ),);

Page 21: TYPO3 Translations

in2code.deWir leben TYPO3

Was machen die bei in2code?

Alex Kellner

Wir leben TYPO3

Wir unterstützen TYPO3- , Internet- und Full-Service-Agenturen genauso wie große und mittelgroße Firmen, die auf TYPO3 Spezialwissen angewiesen sind.

TYPO3

Extensions

Entwicklung

Fluid

Security

Performance

Workshops

FLOW3Martin Huber

Marcus Schwemer

Michael Cannon

Stefan Busemann

Markus RodlerDavid Richter

Tina Gasteiger

Consulting

Page 22: TYPO3 Translations

in2code.deWir leben TYPO3In2code.

Vielen Dank

www.in2code.deStefan BusemannTina GasteigerAlex Kellner