Skip to content

Uploading Existing Translations

If you have existing translations ready to integrate into your Crowdin project, you can upload them directly.

For file-based projects, this can be done through the Translations tab or directly from a specific file in the Editor. For string-based projects, use the Upload tab or access the target language in the Editor to upload XLIFF translations.

The best practice is to upload translated files with the key-value structure.

Uploading Translations via Project page

To upload translations to your project, follow these steps:

  1. Open your project and go to the Translations tab.
  2. Click Upload existing translations to expand the respective section. Upload Translations
  3. Drag and drop files from your machine, or click Select Files. You can upload ZIP archives to add multiple folders and files.
  4. Crowdin automatically matches uploaded translations with appropriate source files and languages. Check it manually to make sure everything is matched correctly. Match Files
  5. (Optional) Click the button under the uploaded file list to view the advanced import settings.
  6. Click Import to apply the translations to the source files.

Uploading Translations via Language Page

  1. Select the language on the project page.
  2. Click next to the file translations should be uploaded to.
  3. Select Upload Translations. Upload Translations

Uploading Translations via Editor

To upload a file with translations via Online Editor, follow these steps:

  1. Click on the Main menu in the upper-left corner.
  2. Go to File > Upload Translations. Upload Translations in Editor

Uploading XLIFF Translations

You can do the offline translation for all file formats and strings by downloading existing content in the XLIFF format; once the offline translations are finished, use Upload XLIFF Translations.

To upload XLIFF translations for a specific target language, follow these steps:

  1. Select the language on the project page.
  2. Click and select Upload XLIFF Translations. Upload Translations XLIFF

For string-based projects, you can upload XLIFF translations using the Online Editor.

Key-value Formats

You can easily upload translations for source files with a key-value structure.

This includes the following file formats: Android XML, macOS/iOS Strings, Stringsdict, JSON, Chrome JSON, GO JSON, i18next JSON, FBT JSON, XLIFF, XLIFF 2.0, Java Properties, Play Properties, Java Properties XML, RESX, RESW, RES JSON, YAML, INI, Joomla INI, JS, FJS, PO, TS, QT TS, TOML, Coffee, XAML, SRT, VTT, VTT2, SBV, SVG, DTD, CSV, RC, WXL, Haml, XLSX, PLIST, PHP, ARB, VDF.

The system maps uploaded translations according to the string keys.

Text and HTML-based Formats

For files that do not have a defined structure, translation upload is handled by an experimental machine learning technology.

This includes the following file formats: HTML, Front Matter HTML, Markdown, Front Matter Markdown, TXT, Generic XML, Web XML, DOCX, HAML, IDML, DITA, Wiki, and ADOC.

To achieve the best results, we recommend uploading translation files with the same or as close as possible file structure as in source files.

Currently, this feature is available for the following languages (not depending on the language pair combination): Arabic, Chinese Simplified, Chinese Traditional, English, French, German, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Portuguese Brazilian, Spanish, Thai, Turkish, and Russian.

Upload Summary

After uploading a translation file, a summary will appear showing the result of the import. Depending on the file content and your project settings, you may see one of the following outcomes:

  • All translations imported – All translations were uploaded without issues. If the Approve added translations option was enabled, the translations were also marked as approved.
  • Partially imported – Some translations were imported, while others were skipped due to reasons such as failed QA checks, hidden strings, or being identical to the source text. The summary lists the reasons for the skipped translations based on the QA Checks configured in Settings > QA Checks.
  • All translations skipped – None of the translations were imported. The summary lists the reasons, such as failed QA checks, hidden strings, or being identical to the source text.
  • No translations imported – No translations were imported or skipped with a specific reason. This typically happens when the Approve added translations option is enabled, QA warnings are ignored, and the file contains only translations that are already present in the project. Since duplicates are not uploaded, the summary shows No translations imported.

To update progress after the upload, click Reload in the summary dialog.

Was this page helpful?