VCS Integrations: Configuring Online

To configure a version control system integration, specify the source files you’d like to translate and how Crowdin should structure the translated files in your repository.

Branch Configuration

Once you’ve selected your repository and branch for translation, the next step is to configure the selected branch. Click to open the Branch Configuration dialog and start the configuration. In the Branch Configuration dialog, you can either load the existing configuration file stored in your repository or create a new configuration from scratch.

Integration set up

If you want your VCS integration to work in the Target File Bundles Mode, you need to configure target file bundles for each branch you have selected for translation.

Read more about configuring target file bundles for VCS integration.

Loading a Configuration

To load the existing configuration file stored in your repository, follow these steps:

  1. Click and select Load configuration.
  2. Specify the name of the configuration file in your repository.
  3. Click Continue.

Load configuration

The configuration will be displayed in the Branch Configuration dialog. You can use it as is or modify it if necessary.

Creating a Configuration

To create a new configuration file to be used by the integration, specify the preferred name and click Continue in the Branch Configuration dialog.

Branch configuration

Then specify the source and translated file paths using the patterns and placeholders listed below. In the right panel, you can preview the structure of the source files that will be uploaded for translation and the structure of the translated files based on the specified paths.

Once you’ve finished setting up the configuration for the selected branch and saved the changes, the configuration file will be saved in the root of the translation branch in your repository.

Patterns

* (asterisk)

Matches any character in the file or directory name. If you specify “*.json”, it will include all files like “messages.json”, “about_us.json”, and anything that ends with “.json”.

** (doubled asterisk)

Matches any string recursively (including subdirectories). Note that you can use ** in both the source and translation patterns. When you use ** in the translation pattern, it always includes a subpath from the source for a given file. For example, you can use source: ‘/en/**/*.po’ to recursively upload all *.po files to Crowdin. The translation pattern will be ‘/%two_letters_code%/**/%original_file_name%’.

? (question mark)

Matches any single character.

[set]

Matches any single character in a set. Behaves exactly like character sets in Regexp, including set negation ([^a-z]).

\ (backslash)

Escapes the next metacharacter.

Placeholders

Use placeholders to specify where translated files will be placed and how they will be named:

Name Description
%original_file_name% Original file name
%original_path% Take parent folder names in the Crowdin project to build file path in the resulting bundle
%file_extension% Original file extension
%file_name% File name without extension
%language% Language name (e.g., Ukrainian)
%two_letters_code% Language code ISO 639-1 (e.g., uk)
%three_letters_code% Language code ISO 639-2/T (e.g., ukr)
%locale% Locale (e.g., uk-UA)
%locale_with_underscore% Locale (e.g., uk_UA)
%android_code% Android Locale identifier used to name "values-" directories
%osx_code% OS X Locale identifier used to name ".lproj" directories
%osx_locale% OS X locale used to name translation resources (e.g., uk, zh-Hans, zh_HK)

Advanced Settings

Ignoring Files

If you don’t want some files to be translated, click Add ignored pattern, specify the pattern for those files, and Crowdin will not upload those files for translation.

Ignore files or folders

Language Mapping

If your project uses custom names for locale directories, you can use language mapping to map your own languages to be recognized by Crowdin.

To add a language mapping, follow these steps:

  1. Click Language Mapping.
    Language mapping
  2. Select the necessary language and a placeholder.
  3. Specify your custom code.
  4. Click Add Mapping to add another custom code.
  5. Click Save.
    Language mapping

Configuring Spreadsheets

You can specify the scheme of your spreadsheet file in the Scheme field. To create the scheme for your CSV or XLS/XLSX file, use the following constants:

identifier – column contains string identifiers.
source_phrase – column contains source strings.
source_or_translation – column contains source strings, but the same column will be filled with translations when the file is exported. If you upload existing translations, the values from this column will be used as translations.
translation – column contains translations.
context – column contains comments or context information for the source strings.
max_length – column contains max.length limit values for the string translations.
labels – column contains labels for the source strings.
none – column that will be skipped during import.

Scheme example: identifier,source_phrase,context,fr,de,it,uk (Language Codes).

If a spreadsheet contains the translations for several target languages, select Multilingual spreadsheet. If you don’t want to translate the text stored in the first row, select Import first line as a header.

Spreadsheet files

Configuring XML Files

XML Files

Translate Content Select to translate texts stored inside the tags.
Translate Attributes Select to translate tag attributes.
Content Segmentation Select to split the XML source file's content into shorter text segments.
Note: When Content segmentation is enabled, the translation upload is handled by an experimental machine learning technology.
Translatable Elements This is an array of strings, where each item is the XPaths to the DOM element that should be imported.
Sample path: /path/to/node or /path/to/attribute[@attr]

Additional Parameters

The following parameters can’t be configured online:

  • preserve_hierarchy - preserves the directory structure in Crowdin
  • dest - allows you to specify a file name in Crowdin
  • type - allows you to specify a file type in Crowdin
  • update_option - keeps translations and keeps/removes approvals of changed strings during a file update
  • commit_message - additional commit message that can include Git tags
  • export_languages - export translations for the specified languages

Once you save the online configuration, a crowdin.yml file is saved in the root of the configured branch in your repository. You can edit this file manually to add the necessary parameters.

Read more about the configuration file.

Saving Configuration

Click Save to preview the created configuration.

Save configuration

Click Add File Filter if you have multiple file groups with different configurations.

If several branches in the project have the same configuration, and you want the same filters to be applied to them, select Apply filters to all translatable branches.

Click Save to save the created configuration.

Apply filters to all translatable branches

Once the configuration is saved, the localizable files will start uploading to your Crowdin project.

Sync in progress

See Also

Was this article helpful?