Оновити файл

Завантажте останню версію ваших вихідних файлів (ті, які повинні бути локалізовані) в ваш проект Crowdin.

Запит

Примітка: Або використовуйте комбінацію ідентифікатора проекту ідентифікатора проекту та ключ проекту або комбінацію ідентифікатор проекту, ім'я користувача, та ключ облікового запису щоб перейти до цієї кінцевої точки.

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 обов'язковий масив Масив файлів, які потрібно оновити.
Увага! Максимум 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-ключ проекту. Потрібно або ключ проекту, або комбінація ім'я користувача і ключ акаунта.
login рядок Ваше ім'я користувача в Crowdin. Потрібно або ключ проекту, або комбінація ім'я користувача і ключ акаунта.
account-key рядок API ключ вашого облікового запису. Потрібно або ключ проекту, або комбінація ім'я користувача і ключ акаунта.

Відповідь

Якщо метод успішний, він повертає XML-структуру, як показано нижче.
<?xml version="1.0" encoding="UTF-8"?>
<success>
</success>
Приклад невдалого запиту:
<?xml version="1.0" encoding="UTF-8"?>
<error>
  <code>3</code>
  <message>Ключ API недійсний</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;

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