Frequently asked questions (FAQ)

General questions

My favorite extension is not available on Crowdin

If you miss an extension on Crowdin, contact the extension owner to create a project on Crowdin.

It is important that they follow the description on the page Extension integration. The setup is a simple process and done within minutes.

My favorite language is not available for an extension

If you are missing the support for a specific language in an extension on Crowdin please contact either the maintainer of the extension or the Crowdin initiative.

Will the old translation server be disabled?

The old translation server under https://translation.typo3.org/ has been turned off in July 2023.

The existing and exported translations which are downloaded within the Install Tool will be available for longer time.

How to convert to the new language XLIFF file format

If you have downloaded an XLIFF file from the deactivated Pootle language server or an old version of an extension, then it does not have the correct format. You need to remove some attributes. And you need to add the resname attribute. For this you can use a Linux tool or a sophisticated editor to copy the id attribute into the resname of the XLIFF file based on regular expressions.

In most editors you can use regular expressions, for example, in PhpStorm:

  1. Open the XLIFF file in the editor.
  2. Press Ctrl + R to open the search and replace pane
  3. Find: id="(.+?)" / Replace: id="$1" resname="$1"
  4. Click the regex icon (.*) to enable regular expressions.
  5. Click on button Replace All

Questions about extension integration

Why does Crowdin show me translations in source language?

If you have just set up Crowdin and ship translated XLIFF files in your extension, they will also show up as files to be translated.

You need to exclude them in your crowdin.yml configuration, which is located in the extension root directory.

EXT:my_extension/crowdin.yml
files:
  - source: /Resources/Private/Language/
    translation: /%original_path%/%two_letters_code%.%original_file_name%
    ignore:
      - /Resources/Private/Language/de.*
Copied!

Can I upload translated XLIFF files?

Yes, you can! Switch to the settings area of your project (you need to have the proper permissions for that) and you can upload XLIFF files or even ZIP files containing the XLIFF files.

Upload translations

Upload translations

After triggering the upload, Crowdin tries to find the matching source files and target languages. You may have to accept both if they are not found automatically.

How can I migrate translations from Pootle?

If there were already translations on the old, discontinues translation server powered by Pootle, you do not need to translate everything again on Crowdin - you can import them.

  1. Fetch translations: Download the translations you need. You will need to download them directly from the TER with the following URL pattern:

    https://extensions.typo3.org/fileadmin/ter/<e>/<x>/<extension_key>-l10n/<extension_key>-l10n-<lang>.zip

    <extension_key>
    The full extension key.
    <e>
    The first letter of that extension key.
    <x>
    The second letter of that extension key.
    <lang>
    The ISO 639-1 code of the language, for example, de for German.

    For example, to download the German translations of the news extension:

    wget https://extensions.typo3.org/fileadmin/l10n/n/e/news-l10n/news-l10n-de.zip
    Copied!
  2. Open and Cleanup: Unzip the translations and switch to, for example, Resources/Private/Language/ which is the typical directory of translations. Remove the .xml files as only the .xlf files are important.
  3. Match the files The attribute original of the translations must match the ones of the default translations.

    Example: The file Resources/Private/Language/locallang.xlf starts with the following snippet:

    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
        <xliff version="1.0">
            <file source-language="en" datatype="plaintext" original="EXT:news/Resources/Private/Language/locallang.xlf">
    Copied!

    The file de.locallang.xlf must be modified and original="messages" must be changed to original="EXT:news/Resources/Private/Language/locallang.xlf"

  4. Upload the Translations Have a look at Can I upload translated XLIFF files?.

Questions about TYPO3 Core integration

The Core Team added a new system extension. Why are language packs not available even though it has already been translated into language XY?

The new system extension needs to be added to the configuration of https://github.com/TYPO3/crowdin-bridge/. You can speed up the change by creating a pull request like this one: https://github.com/TYPO3/crowdin-bridge/pull/6/commits.