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

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

Запрос

Примечание: Либо ключ проекта либокомбинация имя пользователя и ключ учетной записи может быть передано в эту конечную точку. Идентификатор проекта передается в обоих случаях.

POST https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}
POST https://api.crowdin.com/api/project/{project-identifier}/update-file?login={username}&account-key={account-key}

Параметры

Название Значение Описание
files обязательный массив Массив файлов, который должен быть обновлен.
Внимание! Максимум 20 файлов разрешено загружать за один раз.
titles необязательный массив Массивы строк, задает подписи для ранее загружаемых файлов. Ключи массива должны содержать имена файлов с путем в проекте crowdin.
export_patterns необязательный массив Массив строк, который определяет имена получаемых файлов (переведенные файлы в конечном архиве). Ключи массива должны содержать имена файлов с путем в проекте Crowdin.
new_names необязательный массив Массивы строк, задает новые имена для ранее импортированных файлов. Ключи массива должны содержать имена файлов с путями в проекте crowdin.
first_line_contains_header Только файлы CSV и XLS/XLSX
необязательный
строка Используется при загрузке файлов CSV (или XLS / XLSX) через API. Определяет, следует ли импортировать первую строку или она содержит заголовки столбцов. Может не содержать значения.
scheme Только для файлов CSV и XLS/XLSX
обязательный
строка Примечание: Используется только при загрузке файла CSV (или XLS / XLSX) для определения сопоставления столбцов данных.
Приемлемым значением является комбинация следующих констант:
  • «identifier» - столбец содержит строковый идентификатор.
  • «source_phrase» - столбец содержит только исходную строку (в результате строка будет содержать ту же строку).
  • «source_or_translation» - столбец содержит исходную строку, но при экспорте того же столбца должен содержать перевод (также при загрузке существующих переводов значение из этого столбца будет использоваться в качестве переведенной строки).
  • «translation» - столбец содержит переведенную строку (если импортированный файл уже содержит переводы).
  • "context" - столбец содержит некоторые комментарии к исходной строке. Контекстная информация.
  • «max_length» - столбец содержит макс. длину перевода для этой строки.
  • «none» - не импортировать столбец.
Пример параметра, который вам нужно будет добавить: &scheme=identifier,source_or_translation

Примечание: чтобы экспортированный файл содержал переводы на все целевые языки, укажите коды языков в схеме (напр. &scheme=identifier,source_phrase,uk,ru,fr).
update_option необязательный строка В зависимости от значения, "update_option" используется для сохранения перевода и сохранить/удалить проверки измененных строк при обновлении файла. Значения:
  • "update_as_unapproved" — сохранить перевод измененных строк и удалить проверку этих переводов, если они существуют.
  • "update_without_changes" — сохранить переводы и проверки измененных строк.
Примечание: Если она не установлена перевод для измененных строк будут потеряны после обновления файла. Полезно для исправления опечатки и незначительные изменения в исходных строк.
branch необязательный строка Имя ветви связанной версии ( Управления версиями) ).
json необязательный строка Может не содержать значение. Указывает, что ответ должен быть в формате JSON.
jsonp необязательный строка Имя функции обратного вызова. Определяет, что ответ должен быть в формате JSONP.
escape_quotes Только для файлов. properties
необязательный
целое Определяет, будет ли одинарная кавычка экранирована другой одинарной кавычкой или обратным слешем в экспортированных переводах. Допустимые значения: 0, 1, 2, 3. Значение по умолчанию 3.

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

Ответ

В случае успеха этот метод возвращает структуру XML, как показано ниже.
<?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/{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;

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