Translations
Contents |
Projects
- Support for XLIFF is available in TYPO3 4.6. To be able to use XLIFF, a new Translation Server based on Pootle has been set up.
A very good page with information about localization management with XLIFF has been set up by Xavier Perseguers.
Translation Workflow
There are 3 different groups of users:
- language administrator
- team members
- everyone else with a typo3.org user account
The task for "language administrator"
- add new translators to his team
- have a final decision in translation conflicts
- remove translators that do not follow the common terminology
- normal tasks that belong to each "team member"
The task of "team members"
- translate the core and extensions that are available on the translation sever
- set the common terminology
- accept (merge) translations sent by users, who are no team members ("everyone else with a typo3.org user account")
Possibilities of "everyone else"
- Propose translations for changed or missing (new) labels
- respect the common terminology
Originally based on "process of translating TYPO3 (core and extensions)" by Kasper.
Translation process
Here is a short overview. The following sections will go more in detail.
Just visit the translation server and propose translations for texts which you think are incorrect. Translation team members will review your proposals and choose a fitting version based on the common vocabulary for the language. If you would like to do more and engage yourself for a longer time, you can become a translation team member. If you want to become a team member, you have to do the following: Login on typo3.org and then visit the translation server. Afterwards write an e-mail to the language administrator of your language. He can make you member of the translation team for your language so that you can do your translation work.
Extensions available for translation
The translation server is not only a place to translate the language files of the TYPO3 core; we can also translate extensions there. Right now only manually added extensions can be translated. If your extension is not on the list and you would like it to be, please request installation in the translators newsgroup/mailing-list.
Best practice
Before you start to translate you MUST be familiar with the part of the Core/the extension before you can translate it correctly. Always try to see the words and sentences you are about to translate in their proper context. The more familiar you are with that part of the Core/the extension the better your translation will be.
A great help to see where a certain text is used is the extension translationhelper.
- Install it in your TYPO3 installation and in the extension configuration activate the "Show label" setting.
- Then reload the backend.
- You will then see the labels for each and every string that is taken from a locallang file. That way you know where a certain string is used.
- If you have ideas how to improve the extension, you can add a new issue to the issue tracker of the project on forge.
It is important that you follow the common vocabulary as described on your team page.
Using Pootle
Pootle is a professional Translation Tool which enables users to edit the localization of TYPO3. It contains all XLIFF files (in local/global/system extension folders) and provides an editing interface for each one of them.
Before you start
- When you are in Pootle, visit the project called "Tutorial". The Tutorial will give you hints on what to take care of when you translate texts. The result will be that we get a better quality of the translated texts.
- Follow the common vocabulary as described on your team page.
- Don't translate everything! Some terms which lie close to the heart of TYPO3 should not be translated to facilitate the reading of the English (official) documentation.
| Do not translate these terms | ||
| English | Comments | Author |
| TypoScript | dfeyer | |
| TypoScript "Setup" | Result of this discussion (german) | Stucki, Ingmar, Christian Hennecke |
| (TypoScript) "Template" | Is kind of an official "brand". | |
| TemplaVoilà | dfeyer | |
| RTE | dfeyer | |
| Backend | king76 | |
| BE | as an abbreviation for Backend | mschwemer |
| Frontend | king76 | |
| Cache / caching | mschwemer | |
| Flexform | mschwemer | |
| Hook | mschwemer | |
| Marker | mschwemer | |
| Mime Type | mschwemer | |
If you think there is a good, well known and often used extension that can go to that list, you can propose to translate it in the mailing list.
Make your Settings
You can use the Pootle settings to choose the items to be displayed in your Dashboard and to choose additional languages to show during the translation process.
On the Pootle main page choose the language you want to translate. In the projects overview you can see the status of the available (system) extensions. Afterwards choose the project (sysext or ext) which you want to translate.
Inside you have the different XLIFF files of the extension. These files contain the texts.
Use the "Translate" tab to translate all or only missing texts.
Alternativelly you can choose the "Check" tab to do different checks. You can e.g. go through all labels with wrong punctuation or with wrong bracket count and so on.
Translate texts
Pootle offers you a convenient user interface which shows you the English original text of the different labels. Click on the number in front of a label to be able to edit it.
Depending on your role you can then make proposals for text changes or apply such changes directly. Note how Pootle provides a list of common terms, which are part of the English text. Next to each English text you have the correct translation for these terms. Just have a look at the column "Terminology" left to the translation field.
Another possibility is to upload XLIFF files, which contains translations to add them to the official files.
Next steps
The texts will be packaged once a day. They can be fetched using the Extension Manager and will be placed in your TYPO3 installation in the folder typo3conf/l10n.
NOTE: You have to empty the folders typo3temp/llxml and typo3temp/Cache/Data/t3lib_l10n and remove the .zip files in typo3temp/ before you use the Extension Manager and update the translations. If you only fetch the new translations in the EM there is no guarantee that they will be used.
Translation internals, how does it work?
In TYPO3 the translations are saved inside .XLIFF files.
Such a language file could look like this (this is the file from the sysext impexp):
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:33Z" product-name="impexp">
<header/>
<body>
<trans-unit id="link_allRecs" xml:space="preserve">
<source>Show details of all presets</source>
</trans-unit>
</body>
</file>
</xliff>
Here are more information about the structure of XLIFF files.
Our XLIFF guru dfeyer can surely tell you, how Pootle is working with these files.
Making hardcoded labels translatable
Some texts in TYPO3 modules are hardcoded and not translatable yet. The goal is to change that.
Labels not needed for TYPO3 terminology
With the Terminology Project we have built a Terminology list for TYPO3! This list is now used for the Terminology hints, when you translate on the Translation Server.
Inside that terminology there are some labels that are not really needed for TYPO3. See this page.
locallang_common.xlf
Since TYPO3 4.3 we have a "locallang_common.xliff"-file which contains all the daily used labels. This file should be used for core and extensions.
The advantages having a file like this are:
- one place for common labels
- reduce work for translators (translators don't need to translate 'Yes' for 20th time)
- keep translation consistent
- avoid translation failures
What labels does it contain?
Here you can see the labels, which we decided to become part of the file:
How to use it
You can use the labels using the normal syntax to include a language-label:
$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes');
Translation Teams
Translation teams have been formed for the following languages:
- Bahasa
- Bulgarian
- Brazilian Portuguese
- Czech
- Croatian
- Danish
- Dutch
- Estonian
- Filipino
- French
- Galician
- German
- Greek
- Hebrew
- Hungarian
- Italian
- Khmer
- Latvian
- Polish
- Romanian
- Russian
- Slovak
- Spanish
- Swedish
- Thai
- Japanese
To facilitate broader acceptance of TYPO3 in the world we would very much like to see translation teams for all of the six UN languages. We still miss:
If you would like to become a member of a translation team, please contact the administrator for your language. If your language does not yet have a translation team, then there's an opportunity for you to become administrator for that language. ;-)
If your language is missing and you are one of your languages' translators, please create it.
With this code you can add the team-header for a new page:
{{DesignProject|Translations|TYPO3 Core & Extensions Translation|Translation}}[[Category:Translation]]
Wishlist
- We need some more active team members. Translation is important!
- We must make sure that people stick to the Translation Guidelines, common vocabulary (ex. for french "Template" -> "Gabarit", and nothing else)
Frequently Asked Questions (FAQ)
Unclear part of speech
Problem:
I want to translate an English text, which can either be a verb or a noun. Which translation should I choose?
Solution:
Translate it as a noun and add into the field "comment by the translator" the translation of the verb.
I downloaded new translations, but they are not used
Problem:
I updated my translations with the extension manager but I still only see the old texts.
Solution:
You have to make sure that you
- delete the content of the folder typo3temp/llxml
- delete the content of the folder typo3temp/Cache/Data/t3lib_l10n and
- remove the .zip files in typo3temp/
- Afterwards use the Extension Manager and update the translations.