Translations

From TYPO3Wiki

Jump to: navigation, search
 List Projects The TYPO3 Core & Extensions Translation-project
list pages
See Current Project Members, Wishlist 
    you can help if you like!
Note Current translation process: The most important extensions live on the translation server. After a translation has been done there, the extension will be updated on TER in the evening. Ask on the translation list if you want to have an extension added to the translation server


This is a draft version. You're welcome to edit it.
When the content is good enough, please change the {{draft}} tag to {{review}} .



Contents

Wishlist

  • We need a clear documentation on translation process, workflow, translation server access and work in progress.
  • Some more active team members. Translation is important!
  • One page per language to see current work, and contact information.
  • Translation Guidelines, common vocabulary (ex. for french "Template" -> "Gabarit", and nothing else)
  • ONE clear solution to share the translation work on extension (translation server support only core translation, or a small subset of extensions)

Translation Teams

Translation teams have been formed for the following languages:

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:

If you would like to become a member of a translation team, please contact the chief translator for your language. If your language does not yet have a translation team, then there's an opportunity for you to become chief translatror ;-).

If your language is missing and you are one of 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]]

Proposal for translation workflow

There are 3 different group of users:

  • chief translator
  • core translators
  • Extension Manager translators (EM translators)

The task for "chief"

  • adding new translators
  • having a final decision in translation conflicts
  • removing translators that do not follow common terminology
  • setting the common terminology
  • normal task that belongs to "core translator"

[add your proposal here]

The task of "core translators"

  • translate the core and extensions that are at translation sever
  • setting the common terminology
  • accepting (merging) translations sent by normal user (EM translators) through Extension Manager

[add your proposal here]

The task of "EM translators":

  • Just translate the extension or missing (new) labels of existing translation and click "SEND/SHARE"
  • respect the common terminology (?)

[add your proposal here]

Based on "process of translating TYPO3 (core and extensions)" by Kasper

Translation process

If there is some part of the core not translated and you would like to translate it ask for the login and password. Write email to chief translator of your language. The chief will give you access to the translation server on which you can do you translation work.

Extensions available for translation

Since new TER 2.0 translation server is not only a place to translate core TYPO3 language files. We can also translate extensions there. Right now only manually added extension can be translated. Take a look at the currently installed extensions. If your extension is not on the list and you would like it to be, please contact your chief translator.

Using llxmltranslate

locallang-XML Translation Tool is a backend module which enables users to edit localization of the TYPO3 backend directly in the backend. It detects all locallang-XML files in local/global/system extension folders and provides an editing interface for each one of them.

Before you start

  • Before you start to translate an extension make sure that you have used the extension. You MUST be familiar with the extension before you can translate it. Always try to see the words and sentences you are about translate in their proper context. The more familiar you are with the extension the better your translation will be.
  • Follow the common-vocabulary as described on your team page.
  • Don't translate everything! Some terms that lie close to the heart of TYPO3 should not be translated to facilitate the reading of the English (official) documentation.
don't translate these terms
English Comments Author
TypoScript dfeyer
TemplaVoilà dfeyer
RTE dfeyer
Backend king76
Frontend king76

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.

settings

Translation server, llxmltranslate: settings
Enlarge
Translation server, llxmltranslate: settings

After logging into the translation server you can use the 'locallang-XML translation tool' (llxmltranslate). You can use the settings page to choose additional languages to show during the translation process.

Note To prevent overriding one translator work by other do the following:
  • Change the first label of the edited file to "!!! Edited right now by: Your NameHere !!!" and SAVE so other can see the first label with the message that you are editting.
  • Make translation.
  • After you finish translating (all or the part) remove from the first label the message that you are editting so other can edit the file.

create new external file

Translation server, llxmltranslate: translate files, new translation
Enlarge
Translation server, llxmltranslate: translate files, new translation

On the 'translate files' page you can choose an extension and a language file to translate. In the image on the right, you can see what this page looks like for a new translation. The external translation file in 'typo3conf/l10n' does not yet exist.

Note Take care to check both checkboxes when starting a new translation. Currently the 'move to external file' checkbox is checked by default.

After saving, translations from the original local language file will be moved into typo3conf/l10n language files.

translate new label

Translation server, llxmltranslate: translate files, existing translation, new label
Enlarge
Translation server, llxmltranslate: translate files, existing translation, new label

The image on the right shows what it looks like when there is already an external translation file (in typo3temp/l10n), but one of the labels has yet to be translated. The 'NEW' status label is marked with a blue background color.

There is a legend explaining what the colors mean:

  • green: OK
  • blue: New
  • orange: Changed
  • red: Unknown

The numbers in the legend show how many labels exist with a certain status.

Translation server, llxmltranslate: translate files, existing translation, all green
Enlarge
Translation server, llxmltranslate: translate files, existing translation, all green

The image on the right shows what it looks like when you are done translating. All labels are green. Good job!

Translation internals, how does it work?

Old TYPO3 multilanguage extension system had only one language file: locallang*.php files. With new xml based system we have now 2 language files.

  1. in the extension folder
  2. in typo3conf/l10n/ folder

What is the difference between those 2 and from what files are the labels taken?

The main language file is that existing in extension folder. Dummy locallang.xml looks like this:

   <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
   <T3locallang>
        <meta type="array">
              <description>[Insert Title]</description>
              <type>[Insert type: module/CSH/database]</type>
              <csh_table>[first argument of the t3lib_extMgm::addLLrefForTCAdescr() function call including this file inside of ext_tables.php]</csh_table>
        </meta>
        <data type="array">
        <languageKey index="default" type="array">
            <label index="[item_key]">[item_value]</label>
        </languageKey>
        </data>
   </T3locallang>

It must contain at least definition of default labels. Then there can go translation of default labels into:

        <languageKey index="xx" type="array">
           <label index="[item_key]">[item_value_translated]</label>
        </languageKey>

where xx is code of your language.

So for instance we can have:

   <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
   <T3locallang>
       <data type="array">
                <languageKey index="default" type="array">
                        <label index="user">User</label>
                        <label index="account">Account</label>
                </languageKey>
                <languageKey index="pl" type="array">
                        <label index="user">U?ytkownik</label>
                </languageKey>
       </data>
   </T3locallang>

All translations can be put into language*.xml files in extension folder, but it has the same disadvantages as the old *.php based language system:

  • if you translate labels to your language and then upgrade extension you will lost your translation
  • you can send your translation to extension's author so he can put it into xml files, but this is additional work for him (it can be a lot of job if the extension is popular and there are many translators)
  • the language file will get bigger and bigger - for sure it is not good for performance issue

To prevent that disadvantages the new system assume that language files can be placed at Translation Server and after translation being made they can be fetched using Extension Manager and placed outside extension in typo3conf/l10n folder. With the new system translations files are outside extensions and are no longer a burden to extension's authors. Their extension language files can have only default labels.

If you fetch extension translations from Translation Server using Extension Manager then translations files will be placed in typo3conf/l10n folder. NOTE: Even if you fetch the translation it doesn't mean that that they will be used at once. You need to tell TYPO3 that it has to use translation files from typo3conf/l10n folder. The rule is that if there is no translation at all in language file inside extension folder then the external file from l10n folder is used. There can't be even definition of language.

So you need to remove:

                <languageKey index="xx" type="array">
                        <label index="user">U?ytkownik</label>
                </languageKey>

or even empty language definition:

                <languageKey index="xx" type="array">
                </languageKey>

from locallang*.xml files in extension folder.

This can be done manually or you can use special extension for that: llxmltranslate.


Making hardcoded labels translateable

A lot of sys modules are hardcoded and not transable yet. The goal is to make this translateable. Here comes a few thoughts about this issue:

  • add new language labels allowed in stable, dev and trunk versions
  • change existing labels allowed in dev and trunk versions

llXML

The only one solution to translate extensions, csh, core, on a local Typo3 installation. Use only this extension, don't add any translation to locallang.xml (only default english version), use langage pack (> 4.0)

Wiki upload

There was a time when the translation server did not work so well as it does now. The possibility exists to upload language files to the wiki for all to download.

Example-uploads in this wiki:

Write "Media:" as prefix:

[[Media:UPLOAD-test-locallang.xml]]
[[Media:UPLOAD-test-locallang.xml| pear]]

Proposal for a locallang_common.xml

It would be fine, if there was a "language_common.xml"-file which contained all the daily used labels [Yes, No, Cancel,.....]. This file should be accessible for core and extensions.

The advantages having a file like this are:

  • one place for common labels
  • reduce work for translators (translators needn't translate 'Yes' for 20th time)
  • keep translation consistent
  • avoid translation failures

Labels which should go into this file

Label Label variable Occurrence Comment Author
Yes common_yes Martin Kutschker
No common_no Martin Kutschker
OK common_ok Martin Kutschker
Cancel common_cancel Martin Kutschker
Open common_open Martin Kutschker
Close common_close Martin Kutschker
About common_about Martin Kutschker
Help common_help Steffen Kamper
Up common_up Steffen Kamper
Down common_down Steffen Kamper
Left common_left Steffen Kamper
Right common_right Steffen Kamper
Move common_move Steffen Kamper
Edit common_edit Steffen Kamper
Save common_save Steffen Kamper
Delete common_delete Stefano Kowalke
View common_view Steffen Kamper
Print common_print Steffen Kamper
Reload common_reload Stefano Kowalke
Login common_login
Logout common_logout
Ascending common_ascending Stefano Kowalke
Descending common_descending Stefano Kowalke
Category common_category Stefano Kowalke
Search common_search Stefano Kowalke
More common_more
Details common_details
Upload common_upload
Download common_download
Send common_send
Back common_back Henry Avellaneda
Next common_next Henry Avellaneda
Previous common_previous Henry Avellaneda
Go common_go Henry Avellaneda
Go To common_goTo Henry Avellaneda
Submit common_submit Henry Avellaneda
Personal tools