Jump to content

Localisation Platform Research Summary 2022/Crowdin

From translatewiki.net

Initial signup / onboarding

  • Support for multiple organizations. You can sign up for different organizations
  • Login with Google, Facebook, GitHub etc
  • Initial on-boarding step to “Describe yourself” as,
    • Localization Manager
    • Develop
    • Translator / Proofreader
    • Others...
  • Initial on-boarding step to “Describe type of projects” that you are interested in,
    • Mobile app
    • Website
    • Game
    • Desktop Software
    • Others...
  • Initial on-boarding step to “Describe localization experience”
    • New
    • Somewhat experienced
    • Very experienced

Adding a project to Crowdin

Create Crowdin Project (UI):

  1. Project name
  2. Type of project:
    1. Public
    2. Private
  3. Select source language
  4. Select target languages
    1. Option to add custom languages with dialects
    2. Option to select top 30 languages
  5. Application > Setup up GitHub Integration
    1. Give access to Crowdin (Repositories, Repository webhook and services - READ and WRITE)
    2. Select the repository, source branch and target branch
    3. Select the frequency of sync from Crowdin to GitHub that is 1, 3, 6, 12, 24 Hours
    4. Changes from GitHub to Crowdin will be synced every 10 minutes.
    5. Branch configuration  (creates crowdin.yml file)
      1. Create crowdin.yml file
      2. Source file path
      3. Set translation file path
      4. Sync!
      5. Existing translations and new strings were imported

Settings under the project allow further configuration:

  1. Allow offline translations
  2. Allow translators access to specific languages or all
  3. Allow proofreaders to access hidden strings. This is similar to our optional / hidden strings.
  4. Change the source language
  5. Show machine translation suggestions
  6. Skip untranslated files. Disabled by default. All language “.po” files were created
  7. Export only approved translations
  8. Automatically fill in regional dialects (Fallbacks): Untranslated strings in regional dialects (e.g. Argentine Spanish) will automatically include translations completed in the primary language (Spanish).
  9. Customized notifications
    1. Translators - new strings
    2. PM - new strings
    3. PM - translation / validation completion
  10. Change project logo

Quality assurance settings

QA checks automatically highlight all the possible mistakes in the translations prior to their approval. The full list includes:

  • Empty translation — strings that lack translation.
  • Length issues — translated strings that are longer than the limit of characters you set.
  • Tags mismatch — strings that use HTML might lack some opening or closing tags in translations.
  • Spaces mismatch — multiple spaces in a row, missing spaces.
  • Variables mismatch — placeholders that lack some parts of code or have the odd ones.
  • Punctuation mismatch — punctuation mistakes or difference in the punctuation marks.
  • Character case mismatch — lower or upper case used differently in source and translated strings.
  • Special characters mismatch — new paragraphs, currency signs and other special characters used differently in source and translated strings.
  • “Incorrect translation” issues — created issues with current translation is wrong tag.
  • Consistent terminology — checks whether the source words are translated accordingly to the respective glossary terms.
  • Spelling — words that aren’t present in the dictionaries Crowdin supports.
  • ICU syntax — the correct usage of ICU message syntax in translations.

See: https://support.crowdin.com/qa-checks/

Detected issues will appear in the proofreading mode.


Applications allow you to integrate with other third party software. Integrations are available with:

  • GitHub and Enterprise
  • GitLab
  • Bitbucket
  • Azure Repos
  • Google Play
  • JIRA
  • VSCode

GitHub integration

This integration to sync your repository with the Crowdin project. Multiple repositories can be synced under a single project. This means that you could create a single project in Crowdin for 5 different repositories in GitHub.

GitHub integration screen - Crowdin
The Add Repository screen - Select the branch and the “target” branch. Multiple branches can be selected.
The Branch Configuration screen - Select the files you want to translate

Translation memory

  1. Enable auto-substitution: Substitutes the non-translatable elements (such as tags, HTML entities, placeholders, numbers and more) in translations suggested by TM by the ones used in the source text.
  2. Use global Translation Memory: Checking this option gives translators access to the Crowdin Global Translation Memory. It's a huge vault of existing translations contributed by previous projects.


Existing translations that were already present, were added automatically when importing the project. Changes made to the source files on the repo will be synced with Crowdin every 10 minutes.


  • Translations are pushed out quite frequently.
  • Each time translations are exported, multiple commits are made.
  • Commit messages are customizable.
  • Languages to export can be configured in the crowdin.yml file. Otherwise everything is exported.
  • Also supports creation of a PR with configured labels.

Supported file formats

  • Android XML
    • Supports custom attributes:
      • Maxlength
      • Comment
      • Translatable - true / false
  • iOS Strings
    • Comments for strings are supported
    • No pluralization support
  • Chrome JSON
    • No pluralization support
  • JSON
    • JSON K-V pairs
    • No pluralization support
  • XLIFF 1.2
    • Supports pluralization
    • Custom attributes for maxlength, comments, translation status (needs translation, translated , final, reviewed)
  • XLIFF 2.0
    • Supports pluralization
    • Custom attributes for maxlength, comments, translation status (needs translation, translated , final, reviewed)
  • PO Gettext
    • Supports plurals
    • Supports comments
  • QT TS
    • Supports pluralization
    • Comments are supported
    • Custom attribute to import as hidden string
  • INI
    • No pluralization
    • Comments are not displayed in translation editor but retained during export
  • Joomla INI
    • Supports pluralization
    • Comments are not displayed in translation editor but retained during export
  • YAML
    • Supports pluralization
    • Comments are supported as well
  • RESX
    • Pluralization and comments are supported
  • Java Properties
    • No pluralization
    • Comments are supported
  • CSV
    • No pluralization support
    • Supports custom attribute for max length, and labels
    • Also supports comments
  • Excel XLSX
    • No pluralization support
    • Supports custom attribute for max length, and labels
    • Also supports comments

Other notes

Custom file formats are not supported out of the box and are available only for Organization Plans. I also do not see any file formats implemented by them that are publicly available like banana-i18n.

Custom Validators / Insertables

Crowdin refers to this as placeholders. Custom placeholders do not appear to be available for open source projects. See: https://support.crowdin.com/enterprise/custom-placeholders/ on how to add this for organizational teams.

Crowdin provides QA checks for variable placeholders. These are pre-defined.


Translators can view all projects available for translation on Crowdin and then join a project that they want to translate.

Projects have:

  • Managers
  • Translators
  • Reviewers


The project interface screen has:

  • Home
    • Project details
      • Managers
      • Descriptions
    • Language statistics - Translations per language. Clickable to start translating in that language.
  • Activity - A live feed about,
    • New translations submitted by users
    • New strings
    • Translation reviews
  • Discussions
    • Forum specific to the project
  • Tasks
    • Tasks that can be assigned to individual contributors
  • Members - Project members and their roles.
  • Reports
    • Project status
      • Translation activity graph (over time)
      • Proofreading activity graph (over time)
      • Translation Forecast - Translation forecast is based on the project activity during the last 14 days. This chart shows an approximate amount of time needed to translate the project into each language if the existing tempo is preserved.
      • Source strings activity
    • My contributions
    • Top members
      • Users with largest translations
        • Language
        • Target Words
        • Approved
        • Voted
    • Abuse reports - Reports from users about comments and translations.
  • Integrations
    • API
    • Webhooks
    • Crowdin In-Context Localization
    • Over-The-Air Content Delivery - Update translated strings of the iOS, Android, or Web applications instantly. No need to submit each new translation as an update to an app and wait for it to be published. The updated translations will become available to users much faster.
  • Application - Integration with third party apps
    • Development - GitHub, Bitbucket, GitLab etc.
    • Collaboration - JIRA
    • Help Center & Docs - Wix, Zendesk Guide
  • Settings - Discussed under Adding project to Crowdin

Project-level glossary

Crowdin supports a project-level glossary where terms and their description can be added. These are then displayed to the editor when translating.

Glossary - Add Term - Crowdin
Glossary term highlighted in Editor

As a Translator

Translators can browse through public projects, identify a project that they like and join it to start translating.

Once you join the project, translators can see the language statistics for the project and start translating in that language.

Translation interface

Translation Editor on Desktop

The translator editor on Desktop

  1. If a project has multiple source files, translators can choose which one they wish to translate.
  2. Translators can filter messages when translating.
    1. Translated
    2. Untranslated
    3. Approved
    4. Not approved
    5. Based on QA issues
    6. With comments
  3. Translators can hide messages. I’m not sure if its on a user level or on the project / file level
  4. It is possible to add comments for messages that can be seen by other users.
  5. Translators can directly contact the project manager
Translating multiple plural forms
Extensive filtering options - Crowdin

Translation aids

Following translation aids are available:

  • Translation memory
  • Machine translations
  • Translations in other languages
  • Glossary terms
  • Previously translated as
  • Context - Provided by the developer. Same as our qqq file

The translation editor also shows the characters in the source string and the translation string.

Editor settings

The translator has some settings that they can modify:

  • Only show translation memory with a minimum match of a certain percentage.
  • Run and display QA issues
  • Toggle Auto-complete -  Show a pop-up that attempts to predict and automatically complete translations while you enter them
  • Toggle Auto-approve - Translations added by proofreaders or members with higher permissions are automatically approved
  • HTML tags displaying - AUITO / SHOW / HIDE - When Auto is selected, HTML tags in the HTML, Haml, XML, Web XML, Markdown, and Docx files are hidden    

Mobile interface

The translation editor on iPhone X

The mobile interface has all the functionality of the desktop interface, albeit with a few more clicks.

The three pane interface only displays a single pane at a time with the center one (the editor) being displayed by default.

Pricing (Source)

Crowdin is completely free of charge for open-source projects. We love the open-source philosophy and are eager to support community projects.

They have an open-source project setup request form with a clearly defined criteria.

The pricing plans vary on the basis of the number of projects that you have, and the source strings in them.

My free trial expired after 2 weeks.


  • Notifications when new strings are added
  • Notifications when a new discussion is started in a project
  • A “What’s new” section to inform users about the newly implemented features
The notification feed on Crowdin

Key highlights

  1. Project Glossary
  2. Very easy for developers to add a project - No interaction with the Crodwin team is needed. Project managers / developers can submit their open source project for review in order to use Crodwin for free.
    1. Applications allow developers to setup integration with their tools
    2. Auto detection of “variables” based on certain criteria
    3. Easier to work with QA settings
  3. Discussions / Comments related to a message appear on the translation interface. Interfaces related to discussions for a project are generally much better.
  4. More frequent exports / imports
  5. Support for QT TS FFS.
  6. Support for Mobile translation.
  7. Translation of multiple plural forms is easier, and there is no possibility of translator’s making mistakes.
  8. The Translation screen makes good use of a large screen. Dividing information into a 3 pane window.
  9. We have a few other things that are worth mentioning but probably not worth implementing,
    1. Tasks
    2. Integrations - APIs, Webhooks
    3. Notifications

Experience review

As a translator

What is good

  1. The translation interface works on mobile screens.
  2. The Translation screen makes good use of a large screen. Dividing information into a 3 pane window.
  3. Easier to translate multiple plural forms.
  4. It’s clear as a translator what languages are available for translation.
  5. Discussions or questions from other translators about a message are available on the translation screen.
  6. Searching in the global translation memory is possible from the translation screen.
  7. All QA issues across the project can be viewed from a single screen.
  8. Translators can “find and replace” across translations from the translation editor window.
  9. Minor: Configurable Keyboard Shortcut
  10. Minor: Extensive options to filter messages on the translation window.
  11. Minor: Easier way to download, translate offline and upload translations
  12. Overall discoverability: Easier to discover things such as project summary, important project contacts etc.


  1. The concept of choosing files to translate may not be clear to users immediately.
  2. Not easy to review the exact changes between translations for the same message.

As a project maintainer / developer

What is good

  1. Adding and configuration of a new project is fairly simple and does not require any staff to be involved.
  2. Clear and straightforward process for sending your open source project for review
  3. Wide range of integrations available. It’s clear based on the integration as to what is supported and what is not.
  4. Can configure the frequency when exports are made out. Exports and imports are very frequent.
  5. Issues related to exports can be viewed by the developers themselves on the Integration screen.
  6. Some sensible insertables / validators are pre-configured.
  7. Starting discussions under a project is easy and easily discoverable. This is useful to get information about changes out to the community.
  8. Easy to keep track of who has been submitting translations to the project, and remove all their translations at once.
  9. More fine grained roles: Translators, Proofreaders, Project Managers.


  1. Difficult to configure custom validators. They appear to be available only for organization plans.