Development and Localization Running in Parallel: Crowdin for Automation
Automate content updates to save time and develop multilingual products; this article explains how to get started with using Crowdin for automated localization.
Join the DZone community and get the full member experience.Join For Free
To release multilingual products, you add localization to your workflow. You should make sure it’s automated so it won’t delay your next release. At Crowdin, we believe that localization should go in parallel with the development process. Meaning that each new text string created or modified by you goes to the translator right away. This way, once you’re ready to deploy your next update, you can simply merge translations into the master or feature branch and hit deploy.
Where to Start?
What are the first steps? How can we set up an automated localization workflow?
We’ve prepared a small plan for you, using Crowdin as the localization platform of choice, to give you more specific tips and steps. So keep in mind that some of the features described below might not be available at other platforms.
Step 1: Create a Localization Project
This way, you can manage translations separately from your source code and have all the latest translations available to you online. Yep, two birds with one stone.
To create a localization project, select the source language (the one you’re translating from) and target languages (the ones you’ll be translating your content into).
Step 2: Choose your Automation Approach
Don't upload source files or download translations manually. Just trust me on this and simply don't. Set up an automated workflow instead:
- Manage your files using integrations with tools like GitLab, GitHub, Bitbucket, or Azure Repos.
- Set up a more custom workflow using CLI, API, and webhooks. All the content updates can be performed automatically on the configured time schedule.
- You can also integrate your content from other tools your company uses, like help center, email campaigns, and other content you are planning to translate now or in the future. It's important when choosing a localization platform to be sure that you can scale as you go.
Step 3: Translate Your Files
Invite your translators and proofreaders to the project or select a translation agency for the translation tasks.
Step 4: Merge Translations Into Your Main Branch
The system will automatically add translations to the defined folder on your side. Check the translated files and merge them into the main branch.
Supported File Formats
Crowdin supports the most common localization formats (like JSON, XML, XLIFF, INI, and so on) as well as custom file formats. Feel free to upload files into your project and start the localization process.
Our team can also customize the file import/export settings and add support for the custom placeholders. For example, you can export translations in Android XML and iOS Strings formats for one source file from your localization project.
Version Management in Localization
You can create branches for each version of your product. Translate only the new text in the version branch and hide the duplicates that you have already translated on the main branch before in your project.
Crowdin has a special option for duplicates: Show (recommended for version control). This option allows you to hide duplicated strings between versions so that translators will see only the difference compared to the main branch.
Integrate Your Localization Project With Your Repository on GitLab, GitHub, Bitbucket, or Azure Repos
Once you integrate your localization projects with your repository, the translation team will be able to work on the localization in parallel with your development process.
- Select the branches and define the path for the source files and translations; the same branches will be created in your Crowdin project immediately.
- Set the synchronization for the new branches. Once you create the new branch on your repository, it will be added to your project automatically; there is no need to define each new branch manually.
- The integration is already configured? Great! The system will create the service branch where your repository can send the translations. Check the new pull/merge request before merging to the main branch.
- Remove the service branch after merging to the main branch; integration will create the new service branch during the next synchronization.
Crowdin Action for GitHub
Integrate the localization into the workflow you’ve set up on your repo with the help of GitHub Actions. View the main settings, specify which action you need to include in your GitHub workflow, and define the preferred branch for the translations.
Define your localization workflow and integrate it into the development process with the selected API requests:
- Add new content for translation to your localization project.
- Create tasks for translation or proofreading.
- Check the translation status for each language or each file.
- Export the translated files from your project.
Console Client (CLI)
Connect cross-platform CLIs directly to your repository and never deal with localization files manually again.
Use the configuration file to run the commands; it contains a description of all resources: files for localization and the locations of the corresponding translations. Sure, the first setup can take a bit more time, but all the next steps can be done in just a few clicks.
Webhooks will notify you about the main events from your localization project, like completed translations or proofreading.
Create webhooks in the Project Settings > API tab > Webhooks or use the API tool for this, and select the actions that you would like to get notifications about.
Create Your Project on Crowdin and Invite Your Team
Create your project on Crowdin and define the team to manage localization. You can create an automated workflow, and project managers will check the activity directly in the Crowdin project: discuss all questions with translators, see whether all tasks are done on time, and so on.
Originally published on Crowdin Blog.
Published at DZone with permission of Yuliya Harashchuk. See the original article here.
Opinions expressed by DZone contributors are their own.