Обновить файл

Загрузить последнюю версию файла локализации в crowdin.

Запрос

Заметка: Either the project key or combination of имя пользователя и account key can be passed to this endpoint. Project identifier is passed in both cases.

POST https://api.crowdin.com/api/project/{идентификатор-проекта}/update-file?key={ключ-проекта}
POST https://api.crowdin.com/api/project/{project-identifier}/update-file?login={username}&account-key={account-key}

Параметры

Название Значение Описание
files обязательный массив Files array that should be updated.
Note! 20 files max are allowed to upload per one time file transfer.
titles необязательный массив An arrays of strings that defines titles for uploaded files. Array keys should contain file names with path in Crowdin project.
export_patterns необязательный массив An arrays of strings that defines names of resulted files (translated files in resulted archive). Array keys should contain file names with path in Crowdin project.
new_names необязательный массив Массивы строк, задает новые имена для ранее импортированных файлов. Ключи массива должны содержать имена файлов с пути в проект crowdin.
first_line_contains_header Только файлы CSV и XLS/XLSX
необязательный
строка Used when uploading CSV (or XLS/XLSX) files via API. Defines whether first line should be imported or it contains columns headers. May not contain value.
scheme Только файлы CSV и XLS/XLSX
обязательный
строка Заметка: Used only when uploading CSV (or XLS/XLSX) file to define data columns mapping.
Acceptable value is the combination of the following constants:
  • "identifier" — Column contains string identifier.
  • "source_phrase" — Column contains only source string (in result string will contain same string).
  • "source_or_translation" — Column contains source string but when exporting same column should contain translation (also when uploading existing translations, the value from this column will be used as a translated string).
  • "translation" — Column contains translated string (when imported file already contains translations).
  • "context" — Column contains some comments on source string. Context information.
  • "max_length" — Column contains max. length of translation for this string.
  • "none" — Do not import column.
Example parameter you will have to add: &scheme=identifier,source_or_translation

Заметка: for exported file to contain translations to all the target languages, specify коды языков in схема (e.g. &scheme=identifier,source_phrase,uk,ru,fr).
update_option необязательный строка В зависимости от значения, "update_option" используется для сохранения перевода и сохранить/удалить проверки измененных строк при обновлении файла. Значения:
  • "update_as_unapproved" — сохранить перевод измененных строк и удалить проверку этих переводов, если они существуют.
  • "update_without_changes" — сохранить переводы и проверки измененных строк.
Заметка: Если она не установлена перевод для измененных строк будут потеряны после обновления файла. Полезно для исправления опечатки и незначительные изменения в исходных строк.
branch необязательный строка The name of related version branch (Versions Management).
json необязательный строка Может не содержать значение. Указывает, что ответ должен быть в формате JSON.
jsonp необязательный строка Callback function name. Defines that response should be in JSONP format.
escape_quotes Только файлы .properties
необязательный
целое Defines whether single quote should be escaped by another single quote or backslash in exported translations. Допустимые значения: 0, 1, 2, 3. Значение по умолчанию — 3.

0 — Не экранировать одинарные кавычки;
1 — Экранировать одинарные кавычки другими одинарными кавычками;
2 — Экранировать одинарные кавычки бэкслешем (\);
3 — Экранировать одинарные кавычки другими одинарными кавычками только в строках, содержащих переменные ( {0} )
Переменные
project-identifier обязательный строка Project identifier.
project-key optional строка Project API key. Either the project-key or combination of username and account-key are required.
username optional строка Your username in Crowdin. Either the project-key or combination of username and account-key are required.
account-key optional строка Your account API key. Either the project-key or combination of username and account-key are required.

Ответ

If successful, this method returns a XML structure, as it is shown below.
<?xml version="1.0" encoding="ISO-8859-1"?>
<success>
</success>
Образец ответа при неудавшемся запросе:
<?xml version="1.0" encoding="ISO-8859-1"?>
<error>
  <code>3</code>
  <message>API key is not valid</message>
</error>

Примеры

curl \
  -F "files[/directory/strings.xml]=@strings.xml" \
  https://api.crowdin.com/api/project/{идентификатор-проекта}/update-file?key={ключ-проекта}
curl \
  -F "files[/directory/android.xml]=@strings.xml" \
  -F "new_names[/directory/android.xml]=strings.xml" \
  https://api.crowdin.com/api/project/{идентификатор-проекта}/update-file?key={ключ-проекта}
curl \
  -F "files[directory/multilingual.csv]=@example.csv" \
  -F "export_patterns[directory/multilingual.csv]=/translations/%original_file_name%" \
  -F "titles[directory/multilingual.csv]=Заголовок файла в Crowdin" \
  -F "scheme=identifier,source_phrase,translation" \
  -F "first_line_contains_header=true" \
  https://api.crowdin.com/api/project/{идентификатор-проекта}/update-file?key={ключ-проекта}
<?php
$post_params = array();
$request_url = 'https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}';

if (function_exists('curl_file_create')) {
$post_params['files[test.txt]'] = curl_file_create('/home/user/test.txt');
} else {
$post_params['files[test.txt]'] = '@/home/user/test.txt';
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);

$result = curl_exec($ch);
curl_close($ch);

echo $result;
<?php
$post_params = array();
$request_url = 'https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}';

if (function_exists('curl_file_create')) {
$post_params['files[/directory/android.xml]'] = curl_file_create('/home/user/strings.xml');
} else {
$post_params['files[/directory/android.xml]'] = '@/home/user/strings.xml';
}

$post_params['new_names[/directory/android.xml]'] = 'strings.xml';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);

$result = curl_exec($ch);
curl_close($ch);

echo $result;
<?php
$post_params = array();
$request_url = 'https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}';

if(function_exists('curl_file_create')) {
$post_params['files[directory/multilingual.csv]'] = curl_file_create('/home/user/example.csv');
} else {
$post_params['files[directory/multilingual.csv]'] = '@/home/user/example.csv';
}

$post_params['export_patterns[directory/multilingual.csv]'] = '/translations/%original_file_name%';
$post_params['titles[directory/multilingual.csv]'] = 'Title in Crowdin Project';
$post_params['scheme'] = 'identifier,source_phrase,translation';
$post_params['first_line_contains_header'] = '';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);

$result = curl_exec($ch);
curl_close($ch);

echo $result;

Была ли эта статья полезной?