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

Upload the latest version of your source files (the ones, that should be localized) to your Crowdin project.

Запрос

Note: Either use the combination of project identifier and project key or combination of project identifier, username, and account key to pass to this endpoint.

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.
Внимание! Разрешено загружать не более 20 файлов одновременно.
titles необязательный массив An arrays of strings that defines titles for uploaded files. Ключи массива должны содержать имена файлов с путем в проекте Crowdin.
export_patterns необязательный массив An arrays of strings that defines names of resulted files (translated files in resulted archive). Ключи массива должны содержать имена файлов с путем в проекте Crowdin.
new_names необязательный массив An arrays of strings that defines new names for previously imported files. Ключи массива должны содержать имена файлов с путем в проекте 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. Может не содержать значения.
scheme Только для файлов CSV и XLS/XLSX
обязательный
строка Note: Used only when uploading CSV (or XLS/XLSX) file to define data columns mapping.
Приемлемым значением является комбинация следующих констант:
  • «identifier» - столбец содержит строковый идентификатор.
  • «source_phrase» - столбец содержит только исходную строку (в результате строка будет содержать ту же строку).
  • «source_or_translation» - столбец содержит исходную строку, но при экспорте того же столбца должен содержать перевод (также при загрузке существующих переводов значение из этого столбца будет использоваться в качестве переведенной строки).
  • «translation» - столбец содержит переведенную строку (если импортированный файл уже содержит переводы).
  • "context" — столбец содержащий комментарии к исходной строке. Context information.
  • "max_length" — Column contains max. length of translation for this string.
  • «none» - не импортировать столбец.
Пример параметра, который вам нужно будет добавить: &scheme=identifier,source_or_translation

Note: for exported file to contain translations to all the target languages, specify language codes in scheme (e.g. &scheme=identifier,source_phrase,uk,ru,fr).
update_option необязательный строка Depending on the value, "update_option" is used to preserve translations and preserve/remove validations of changed strings during file update. Используйте следующие значения:
  • "update_as_unapproved" — сохранить перевод измененных строк и удалить проверку этих переводов, если они существуют.
  • "update_without_changes" — сохранить переводы и проверки измененных строк.
Note: If it is not set translations for changed strings will be lost after file update. Useful for typo fixes and minor changes in source strings.
branch необязательный строка Имя ветви связанной версии ( Управления версиями) ).
json необязательный строка Может не содержать значения. Определяет, что ответ должен быть в формате JSON.
jsonp необязательный строка Название функции обратного вызова. Определяет, что ответ должен быть в формате JSONP.
escape_quotes Только для файлов. properties
необязательный
целое Определяет, будет ли одинарная кавычка экранирована другой одинарной кавычкой или обратным слешем в экспортированных переводах. Допустимые значения: 0, 1, 2, 3. Значение по умолчанию 3.

0 — Не экранировать одинарные кавычки;
1 — Экранировать одинарные кавычки другими одинарными кавычками;
2 — Экранировать одинарные кавычки бэкслешем (\);
3 — Экранировать одинарные кавычки другими одинарными кавычками только в строках, содержащих переменные ( {0} )
Variables
project-identifier строка Идентификатор проекта.
project-key строка API-ключ проекта. Требуется либо ключ проекта, либо комбинация имя пользователя и ключ аккаунта.
login строка Ваше имя пользователя в Crowdin. Требуется либо ключ проекта, либо комбинация имя пользователя и ключ аккаунта.
account-key строка API ключ вашего аккаунта. Требуется либо ключ проекта, либо комбинация имя пользователя и ключ аккаунта.

Ответ

If successful, this method returns a XML structure, as it is shown below.
<?xml version="1.0" encoding="UTF-8"?>
<success>
</success>
Unsuccessful response sample:
<?xml version="1.0" encoding="UTF-8"?>
<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/{project-identifier}/update-file?key={project-key}
curl \
  -F "files[/directory/android.xml]=@strings.xml" \
  -F "new_names[/directory/android.xml]=strings.xml" \
  https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}
curl \
  -F "files[directory/multilingual.csv]=@example.csv" \
  -F "export_patterns[directory/multilingual.csv]=/translations/%original_file_name%" \
  -F "titles[directory/multilingual.csv]=Title in Crowdin Project" \
  -F "scheme=identifier,source_phrase,translation" \
  -F "first_line_contains_header=true" \
  https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-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;

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