Файл конфігурації

Вступ

Crowdin CLI uses a configuration file that contains a description of the resources to manage: files to be uploaded into Crowdin Enterprise and the locations of the corresponding translations.

Щоб використовувати Crowdin CLI, ви повинні спочатку згенерувати файл конфігурації, а потім запустити інструмент. За замовчуванням Crowdin CLI шукає файл конфігурації з ім’ям crowdin.yml (тому вам не потрібно вказувати ім’я файлу, якщо воно не відрізняється від crowdin.yml).

To create the configuration file, run the following command:

$ crowdin init

Структура файлу конфігурації

A valid Crowdin CLI configuration file has the following structure, so please make sure that you fill out all the needed information:

  • Заголовок файлу з обліковими даними проекту, настроюваннями та інформацією про доступ
  • Один елемент масиву файлів, який описує набір вихідних файлів і файлів перекладу, якими ви будете керувати
  • Обов’язкові поля в масиві файлів: Source, яке визначає фільтри для вихідних файлів, і Translation з вказівками, де зберігати перекладені файли або де шукати переклади, які у вас вже є, якщо ви хочете завантажити їх під час налаштування CLI

Створення простого файлу конфігурації

A typical configuration file looks similar to the following:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/locale/en/folder1/[0-2].txt",                                       #source files filter
    "translation": "/locale/%two_letters_code%/folder1/%original_file_name%"        #where translations are stored
  },
  {
    "source": "/locale/en/folder2/[0-2].txt",
    "translation": "/locale/%two_letters_code%/folder2/%original_file_name%"
  }
]

To run the above configuration file and upload source files to Crowdin Enterprise:

$ crowdin upload sources

Get translations from Crowdin Enterprise and put them in the right locations:

$ crowdin download

Облікові дані API зі змінних оточення

Ви можете завантажити облікові дані API зі змінної оточення, наприклад:

"project_id_env": "CROWDIN_PROJECT_ID"
"api_token_env": "CROWDIN_PERSONAL_TOKEN"
"base_path_env": "CROWDIN_BASE_PATH"
"base_url_env": "CROWDIN_BASE_URL"

При змішуванні api_token і project_id мають перевагу:

"project_id_env": "CROWDIN_PROJECT_ID"                # Low priority
"api_token_env": "CROWDIN_PERSONAL_TOKEN"             # Low priority
"base_path_env": "CROWDIN_BASE_PATH"                  # Low priority
"base_url_env": "CROWDIN_BASE_PATH"                   # Low priority
"project_id": "projectId"                             # High priority
"api_token": "personal-access-token"                  # High priority
"base_path": "/project-base-path"                     # High priority
"base_url": "https://{organization-name}.crowdin.com" # High priority

Поділ конфігурації проекту і облікових даних API

Файл crowdin.yml містить опис ресурсів для управління і облікові дані API (project_id, api_token, base_path, base_url). It means that it’s unsafe to commit this file into the code repository because the API key would be accessible to other users. Crowdin CLI supports two types of configuration files:

  • опис ресурсів для управління, які знаходяться в каталозі проекту
  • облікові дані API, які, ймовірно, знаходяться в $HOME/.crowdin.yml
Note: API credentials from the .crowdin.yml configuration file have higher priority than credentials from the project directory(crowdin.yml).

If you need to run a command with user-specific credentials (for example, upload sources), run the following command:

$ crowdin upload sources --identity 'path-to-user-credentials-file'

But if user-specific credentials file residing in $HOME/.crowdin.yml you can run:

$ crowdin upload sources

Загальні налаштування

Наведений вище приклад конфігурації має атрибути ‘source’ і ‘translation’, які містять стандартні постановочні знаки (також відомі як універсальні шаблони) для спрощення роботи з декількома файлами.

Ось шаблони, які ви можете використовувати:

* (зірочка)

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

*** (подвійна зірочка)

Збігається з будь-яким рядком рекурсивно (включаючи підпапки). Зверніть увагу, що ви можете використовувати ** і в шаблонах source і translation. When using ** in the translation pattern, it will always contain a sub-path from the source for a certain file. For example, you can use source: ‘/en/**/*.po’ to upload all *.po files to Crowdin Enterprise recursively. Шаблон перекладу буде ‘/%two_letters_code%/**/%original_file_name%’.

? (знак питання)

Відповідає будь-якому одному символу.

[set]

Відповідає будь-якому одному символу в наборі. Behaves exactly like character sets in Regexp, including set negation ([^a-z]).

\ (зворотний слеш)

Пропускає такий метасимвол.

Заповнювачі

У Crowdin CLI можна використовувати наступні наповнювачі для внесення відповідних змінних в результуюче ім’я файлу:

Ім'я Опис
%original_file_name% Початкову назва файлу
%original_path% Take parent folders names in Crowdin Enterprise project to build file path in the resulted bundle
%file_extension% Початкове розширення файлу
%file_name% Файл без розширення
%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 використаний в назвах «values-» директорій
%osx_code% Локаль OS X, яка використовується для назв ".lproj" директорій
%osx_locale% OS X locale used to name translation resources (e.g., uk, zh-Hans, zh_HK)

Ви також можете вказати повний шлях до файлів в архіві, поставивши косу риску (/) на початку шаблону.

Шаблон translation може виглядати наступним чином: “/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%”.

Використання символів підстановки (wildcards)

Структура файлів і папок на локальному комп’ютері:

- base_path | |-- folder |     | |     |-- 1.xml |     |-- 1.txt |     |-- 123.txt |     |-- 123_test.txt |     |-- a.txt |     |-- a1.txt |     |-- crowdin?test.txt |     |-- crowdin_test.txt | |-- 1.xml |-- 1.txt |-- 123.txt |-- 123_test.txt |-- a.txt |-- a1.txt |-- crowdin?test.txt |-- crowdin_test.txt |-- 3.txt

Приклад 1. Використання підстановних знаків у вихідному шляхуі:

#........конфігурація вашого проекту........
"files": [
  {
      "source": "/**/?[0-9].txt", #upload a1.txt, folder/a1.txt
      "translation": "/**/%two_letters_code%_%original_file_name%"
  },
  {
      "source": "/**/*\\?*.txt",  #upload crowdin?test.txt, folder/crowdin?test.txt
      "translation": "/**/%two_letters_code%_%original_file_name%"
  },
  {
      "source": "/**/[^0-2].txt", #upload 3.txt, folder/3.txt, a.txt, folder/a.txt (ignore 1.txt, folder/1.txt)
      "translation": "/**/%two_letters_code%_%original_file_name%"
  }
]

Приклад 2. Використання підстановних знаків для ігнорування файлів:

#........конфігурація вашого проекту........
"files": [
  {
    "source": "/**/*.*",                             #завантажити всі файли, які містять base_path
    "translation": "/**/%two_letters_code%_%original_file_name%",
    "ignore": [
      "/**/%two_letters_code%_%original_file_name%", #ігнорувати перекладені файли
      "/**/?.txt",                                   #ignore 1.txt, a.txt, folder/1.txt, folder/a.txt
      "/**/[0-9].txt",                               #ignore 1.txt, folder/1.txt
      "/**/*\\?*.txt",                               #ignore crowdin?test.txt, folder/crowdin?test.txt
      "/**/[0-9][0-9][0-9].txt",                     #ignore 123.txt , folder/123.txt
      "/**/[0-9]*_*.txt"                             #ignore 123_test.txt, folder/123_test.txt
    ]
  }
]

Зіставлення мови

Часто програмні проекти мають власні імена для каталогів локалі. Crowdin Enterprise дозволяє відображати власні мови, щоб вони стали відомими у ваших проектах.

Припустимо, папки з вашими Локаль називаються ‘en’, ‘uk’, ‘fr’, ‘de’. Всі вони можуть бути представлені заповнювачем %two_letters_code%. У той же час у вас є папка ‘zh_CH’. To make it work with Crowdin Enterprise without changes in your project, you can set up Language Mapping. Також ви можете перевизначити коди мов для інших наповнювачів, таких як%android_code%, %locale% і т.д.

You can set up Language Mapping either via the user interface (UI) or by adding a languages_mapping section to your file set. We recommend setting up a language mapping via UI since it eliminates the need for duplicating the languages_mapping parameter for each file filter, but of course, you can choose the option that works best for you.

To set up Language Mapping via UI, follow these steps:

  1. Відкрийте Налаштування проекту і перейдіть до розділу Експорт.
  2. Натисніть Відображення мови, щоб додати власні коди для цільових мов вашого проекту.

To set up Language Mapping in your configuration file, add the languages_mapping section to your file set as shown below.

Приклад конфігурації:

"files": [
  {
    "source" : "/locale/en/**/*.po",
    "translation" : "/locale/%two_letters_code%/**/%original_file_name%",
    "languages_mapping" : {
      "two_letters_code" : {
        "uk" : "ukr",
        "pl" : "pol"
      }
    }
  }
]

Mapping format is the following: “crowdin_language_code” : “code_you_use”. Check the full list of Crowdin Enterprise language codes that can be used for mapping.

Перейменування файлу перекладу

Якщо вам потрібно перейменувати файл з перекладами після експорту, це легко зробити за допомогою параметра ` translation_replace`.

For example, if the file is named “en_strings.po”, it can be renamed to “strings.po”. Для цього додайте новий параметр (на тому ж рівні, що і параметр перекладу) в файл конфігурації (crowdin.yml):

"files": [
  {
    "source": "/locale/**/en_*.po",
    "translation": "/locale/**/%two_letters_code%_%original_file_name%",
    "translation_replace": {
      "en_": ""
    }
  }
]

In this case, “_en” will be erased from the file name.

Ігнорування файлів і каталогів

From time to time, there are files and directories you don’t need to translate in Crowdin Enterprise. In such cases, local per-file rules can be added to the config file in your project.

"files": [
  {
    "source": "/**/*.properties",
    "translation": "/**/%file_name%_%two_letters_code%.%file_extension%",
    "ignore": [
      "/test/file.properties",
      "/example.properties"
    ]
  },
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "ignore": [
      "/locale/en/templates",
      "/locale/en/workflow"
    ]
  }
]

Excluding Target Languages for Source Files

By default, the source files are available for translation into all target languages of the project. If some source files shouldn’t be translated into specific target languages, you can exclude them with the help of the parameter excluded_target_languages.

Приклад файлу конфігурації:

"files": [
  {
    "source": "/resources/en/*.json",
    "translation": "/resources/%two_letters_code%/%original_file_name%",
    "excluded_target_languages": [
      "uk",
      "fr"
    ]
  }
]

Multicolumn Spreadsheet

If a CSV or XLS/XLSX file contains the translations for all target languages, you should specify appropriate language codes in the scheme.

Приклад файлу CSV:

identifier,source_phrase,context,Ukrainian,Russian,French ident1,Source 1,Context 1,,, ident2,Source 2,Context 2,,, ident3,Source 3,Context 3,,,

Приклад файлу конфігурації:

"files": [
  {
    "source": "multicolumn.csv",
    "translation": "multicolumn.csv",
    "first_line_contains_header": true,
    "scheme": "identifier,source_phrase,context,uk,ru,fr"
  }
]

If your CSV or XLS/XLSX file contains columns that should be skipped on import, use none for such columns in the scheme, for example:

"scheme" : "identifier,source_phrase,context,uk,none,ru,none,fr"

Scheme Constants

To form 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. When uploading 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 translations of the strings.
labels – Column contains labels for the source strings.
none – Column that will be skipped on import.

Збереження структури каталогів на сервері

"preserve_hierarchy": true

Example of the configuration file using the preserve_hierarchy option:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%"
  }
]

By default, directories that do not contain any files for translation will not be created in Crowdin Enterprise. Наприклад:

- locale | |-- en | |-- foo.po |-- bar.po

By default, project files will be represented in Crowdin Enterprise as following:

- foo.po
- bar.po

Using the option preserve_hierarchy, the file structure in Crowdin Enterprise will be the following:

- en | |-- foo.po |-- bar.po

Завантажити файли зазначеного типу за вказаним шляхом

This feature adds support for two optional parameters in the yml file section: dest and type. It’s typically used for projects where the uploaded name must be different so that Crowdin Enterprise can detect the type correctly.

The dest parameter allows you to specify a file name in Crowdin Enterprise. It works for multiple files at once and supports the following placeholders: %original_file_name%, %original_path%, %file_extension%, %file_name%.

Note! If you use the dest parameter, the configuration file should include the preserve_hierarchy parameter with the true value.

Приклад конфігураційного файлу з обома параметрами:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/conf/**/*.txt",
    "dest": "/conf/**/%file_name%.properties",
    "translation": "/conf/**/%two_letters_code%/%file_name%.properties",
    "type": "properties"
  },
  {
    "source": "/app/*.txt",
    "dest": "/app/%file_name%.xml",
    "translation": "/res/values-%android_code%/%original_file_name%",
    "type": "android"
  },
  {
    "source": "/conf/**/*.txt",
    "dest": "/%original_path%/%file_name%.properties",
    "translation": "/conf/**/%two_letters_code%/%original_file_name%",
    "type": "properties"
  }
]

Оновлення змінених рядків

Параметр update_option — необов’язковий. Якщо він не заданий, переклади для змінених рядків будуть втрачені. Корисно для виправлення помилок і незначних змін у вихідних рядках.

Залежно від значення update_option використовується для збереження перекладів і збереження/видалення затверджень перекладів і змінених рядків під час оновлення файлу.

Використовуйте наступні значення:

  • update_as_unapproved - зберегти переклади змінених рядків і видалити затвердження цих перекладів, якщо вони існують
  • update_without_changes — зберегти переклади і затвердження перекладів змінених рядків

Приклад конфігураційного файлу з використанням параметра update_option:</p>

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/*.csv",
    "translation": "/%three_letters_code%/%file_name%.csv",
    "first_line_contains_header": true,
    "scheme": "identifier,source_phrase,translation,context",
    "update_option": "update_as_unapproved"
  },
  {
    "source": "/**/*.xlsx",
    "translation": "/%three_letters_code%/folder/%file_name%.xlsx",
    "update_option": "update_without_changes"
  }
]

Завантаження перекладів

The command upload translations uploads existing translations to Crowdin Enterprise. If no options are specified, the uploaded translations will not be imported even if they are equal to the source strings and will not be approved.

Використовуйте наступні значення:

  • -l, --language=language_code - defines the language translations that should be uploaded to Crowdin Enterprise. За замовчуванням переклади завантажуються на всі цільові мови проекту. (мовні коди Crowdin)
  • --[no-]import-eq-suggestions - defines whether to add translation if it is equal to source string in Crowdin Enterprise project
  • --[no-]auto-approve-imported - automatically approves uploaded translations

Import Options

XML Files Import Options

translate_content
необов'язковий
bool Defines whether to translate texts placed inside the tags.
Acceptable values are 0 or 1. Значення за замовчуванням 1.
translate_attributes
необов'язковий
bool Defines whether to translate tags' attributes.
Acceptable values are 0 or 1. Значення за замовчуванням 1.
content_segmentation
необов'язковий
bool Defines whether to split long texts into smaller text segments.
Acceptable values are 0 or 1. Значення за замовчуванням 1.
Note: When Content segmentation is enabled, the translation upload is handled by an experimental machine learning technology.
translatable_elements
необов'язковий
масив Це масив рядків, де кожен елемент є елементом XPath для DOM, який повинен бути імпортований.
Приклад шляху: /path/to/node or /path/to/attribute[@attr]
Увага! Якщо задані, параметри translate_content і translate_attributes не враховуються при імпорті.

Приклад конфігураційного файлу з додатковими параметрами:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/app/sample1.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translate_attributes": 1,
    "translate_content": 0
  },
  {
    "source": "/app/sample2.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translatable_elements": [
      "/content/text",                      # translatable texts are stored in 'text' nodes of parent node 'content'
      "/content/text[@value]"               # translatable texts are stored in 'value' attribute of 'text' nodes
    ]
  }
]

Other Files Import Options

content_segmentation
необов'язковий
bool Визначає, чи слід розбивати довгі тексти на більш дрібні текстові сегменти. Only for TXT, DOCX, DITA, IDML, MIF, MEDIAWIKI, HTML, Front Matter HTML, Markdown, Front Matter Markdown, XML, XLIFF, XLIFF 2.0
Acceptable values are 0 or 1. Значення за замовчуванням 1.
Note: When Content segmentation is enabled, the translation upload is handled by an experimental machine learning technology.

Приклад конфігураційного файлу з додатковими параметрами:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/emails/sample1.html",
    "translation": "/emails/%locale%/%original_file_name%",
    "content_segmentation": 1
  }
]

Export Options

To configure the preferred export behavior for each file group, you may use the following export options:

skip_untranslated_strings – Only translated strings will be included in the exported translation files.
skip_untranslated_files – Only translated files will be included in the exported translation archive.
export_only_approved – Only texts that are both translated and approved will be included in the exported translation files.

Example of the configuration file with the export options:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "skip_untranslated_strings": true
  },
  {
    "source": "/locale/en/**/*.json",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "skip_untranslated_files": true
  },
  {
    "source": "/locale/en/**/*.yml",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "export_only_approved": true
  }
]
Note: The export options work only with CLI.

Екранування лапок в форматі .properties

Визначає, чи буде одинарна лапка екранована інший одинарною лапкою або зворотнім слешем в експортованих перекладах. You can add the escape_quotes per-file option. Acceptable values are 0, 1, 2, 3. Значення за замовчуванням 3.

Використовуйте наступні значення:

  • 0 - не екранувати одинарні лапки
  • 1 - escape single quote with another single quote
  • 2 - escape single quote with a backslash
  • 3 - escape single quote with another single quote only in strings containing variables ( {0} )

Escape special characters
Defines whether any special characters (=, :, ! and #) should be escaped by a backslash in exported translations. You can add the escape_special_characters per-file option.

Acceptable values are 0, 1. Значення за замовчуванням 1.

  • 0 - не екранувати спеціальні символи
  • 1 - екранувати спеціальні символи зворотною косою скобкою

Приклад конфігураційного файлу:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/en/strings.properties",
    "translation": "/%two_letters_code%/%original_file_name%",
    "escape_quotes": 1,
    "translate_content": 0,
    "escape_special_characters": 0
  }
]

Приклади конфігурації

Uploading CSV files

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/*.csv",
    "translation": "/%two_letters_code%/%original_file_name%",
    # Specifies whether first line should be imported or it contains columns headers
    "first_line_contains_header": true,
    # used only when uploading CSV file to define data columns mapping
    "scheme": "identifier,source_phrase,translation,context,max_length"
  }
]

Проект GetText

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files" : [
  {
    "source" : "/locale/en/**/*.po",
    "translation" : "/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%",
    "languages_mapping" : {
      "two_letters_code" : {
        "zh-CN" : "zh_CH",
        "fr-QC": "fr"
      }
    }
  }
]

Проект Android

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files" : [
  {
    "source" : "/res/values/*.xml",
    "translation" : "/res/values-%android_code%/%original_file_name%",
    "languages_mapping" : {
      "android_code" : {
        "de" : "de",
        "ru" : "ru"
      }
    }
  }
]

Файл конфігурації для інтеграції VCS

Інтеграція VCS вимагає того ж файлу конфігурації, що і інструмент CLI, тобто підтримується та ж структура. The only difference is that you should not store the project credentials in the file header for security reasons. Also, you can use a few additional parameters.

Pull Request Title and Labels for VCS Integrations

The default pull request title is New Crowdin updates. To specify your custom pull request title and add labels to the pull request, you can use the following parameters in the configuration file: pull_request_title, pull_request_labels.

Note: Pull request labels are not supported by the Bitbucket integration.

Приклад:

"base_path": "/project-base-path"
"pull_request_title": "Custom PR title"
"pull_request_labels": [
  "crowdin",
  "l10n"
]

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Параметр повідомлення злиття для інтеграції VCS

Щоразу, коли робиться переклад, повідомлення “Нові переклади {fileName} ({languageName})”. You can use the commit_message parameter to add Git tags (e.g., to skip builds).

Приклад:

"base_path": "/project-base-path"
"commit_message": "[ci skip]"

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

To replace the default commit message, use the append_commit_message parameter with the value false. Ви також можете додати два необов’язкових заповнювача: %original_file_name% і %language% щоб використовувати змінні ім’я файлу і мову відповідно.

Приклад:

"commit_message": "Fix: New translations %original_file_name% from Crowdin Enterprise"
"append_commit_message": false

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Параметр експорту мов для інтеграції VCS

За замовчуванням всі мови експортуються. If you need to export some specific languages, use the export_languages parameter to specify them.

Приклад:

"base_path": "/project-base-path"
"export_languages": [                                   
    "ru", 
    "uk", 
    "ja"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Adding Labels to Source Strings

To add existing or new labels to the source strings, use the labels parameter. Labels will be added to the source strings only during the initial upload to the Crowdin Enterprise project.

The strings uploaded to the Crowdin Enterprise project before the use of the labels parameter won’t be labeled. If you remove the label added during the initial upload directly in Crowdin Enterprise, it won’t be re-added on the next syncs.

The label names can contain any characters except “,”.

Приклад:

"base_path": "/project-base-path"

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%",
    "labels" : [
      "android",
      "emails"
    ]
  }
]

Read more about Labels.

Використовуйте єдиний файл конфігурації для інтеграції VCS та CLI

Бувають випадки, коли для одного проекту необхідно використовувати інтеграцію VCS та CLI. В основному в такій ситуації потрібно мати два окремі файли конфігурації: один - для інтеграції в VCS, інший - для CLI. Однак можна використовувати один файл конфігурації в обох випадках.

Since the VCS integration configuration file doesn’t contain project_id and api_token credentials required for CLI, you can pass them directly in the command using the following parameters: -i/--project-id, -T/--token. Alternatively, you may use environment variables for this purpose.

Як результат, ваша команда для завантаження перекладів через CLI буде виглядати наступним чином:

$ crowdin download -i {your-project-id} -T {your-token}

Потрібна допомога

Вам потрібна допомога з API Crowdin або у вас є питання? Зв’язатись з командою підтримки.

Дивись також

Ця стаття була корисною?