Добавить файл

Добавить новый файл в Crowdin проект.

Запрос

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

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

Параметры

Название Значение Описание
files обязательный массив Массив файлов, которые нужно добавить в Crowdin проект. Ключи массива должны содержать имена файлов с путем в проекте Crowdin.
Внимание! Максимум 20 файлов разрешено загружать за один раз. Максимальный размер одного файла составляет 100 МБ.
titles необязательный массив Массивы строк, задает подписи для ранее загружаемых файлов. Ключи массива должны содержать имена файлов с путем в проекте crowdin.
export_patterns необязательный массив Массив строк, который определяет имена получаемых файлов (переведенные файлы в конечном архиве). Ключи массива должны содержать имена файлов с путем в проекте Crowdin.
type необязательный строка Допустимые значения:
  • пустое значение или "auto" - попробовать определить тип файла по расширению или типу MIME
  • "android" — Android (*.xml)
  • "macosx" — Mac OS X / iOS (*.strings)
  • "resx" — .NET, Windows Phone (*.resx)
  • "properties" — Java (*.properties)
  • "gettext" — GNU GetText (*.po, *.pot)
  • "yaml" — Ruby On Rails (*.yaml)
  • "рнр" — препроцессор гипертекста (*.php)
  • «json» — типичный JSON (*.json)
  • «xml» — типичный XML (*.xml)
  • "ini" — типичный INI (*.ini)
  • "rc" — Windows Resources (*.rc)
  • "resw" — Windows 8 Metro (*.resw)
  • "resjson" — Windows 8 Metro (*.resjson)
  • "qtts" — Nokia Qt (*.ts)
  • "joomla" — локализуемые ресурсы Joomla (*.ini)
  • "chrome" - расширение Google Chrome (*.json)
  • "dtd" — Mozilla DTD (*.dtd)
  • "dklang" — Delphi DKLang (*.dklang)
  • "flex" — Flex (*.properties)
  • "nsh" — ресурсы установщика NSIS (*.nsh)
  • "wxl" - установщик WiX (*.wxl)
  • "xliff" — XLIFF (*.xliff)
  • "html" — HTML (*.html, *.htm, *.xhtml, *.xhtm)
  • "haml" — Haml (*.haml)
  • "txt" — обычный текст (*.txt)
  • "csv" - значения, разделенные запятыми (*.csv)
  • "md" - Markdown разметка (*.md, *.text, *.markdown...)
  • "flsnp" — MadCap Flare (*.flnsp, .flpgpl .fltoc)
  • "fm_html" — Jekyll HTML (*.html)
  • "fm_md" — Jekyll Markdown разметка(*.md)
  • "mediawiki" — MediaWiki (*.wiki, *.wikitext, *.mediawiki)
  • "docx" — Microsoft Office, OpenOffice.org Documents, Adobe InDesign Adobe FrameMaker(*.docx, *.dotx, *.odt, *.ott, *.xslx, *.xltx, *.pptx, *.potx, *.ods, *.ots, *.odg, *.otg, *.odp, *.otp, *.imdl, *.mif)
  • "sbv" — Youtube .sbv (*.sbv)
  • "vtt" — Видео и WebVTT субтитры (*.vtt)
  • "srt" — SubRip субтитры .srt (*.srt)
first_line_contains_header Только файлы CSV и XLS/XLSX
необязательный
строка Используется при загрузке файлов CSV (или XLS / XLSX) через API. Определяет, следует ли импортировать первую строку или она содержит заголовки столбцов. Может не содержать значения.
import_translations только для многоязычных файлов CSV и XLS / XLSX
необязательный
целое Используется при загрузке файлов CSV (или XLS / XLSX) через API. Определяет, импортируются ли при импорте файла переводы - 1 или переводы не импортируются - 0. По умолчанию: 1.
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).
branch необязательный строка Имя ветви связанной версии ( Управления версиями) ).
json необязательный строка Может не содержать значение. Указывает, что ответ должен быть в формате JSON.
jsonp необязательный строка Имя функции обратного вызова. Определяет, что ответ должен быть в формате JSONP.
translate_content Только для XML файлов
необязательный
булево Определяет, переводить ли тексты, размещенные внутри тегов. Допустимые значения: 0 или 1. По умолчанию 1.
translate_attributes Только для XML файлов
необязательный
булево Определяет, переводить ли атрибуты тегов. Допустимые значения: 0 или 1. По умолчанию 1.
content_segmentation Только для XML файлов
необязательный
булево Определяет, следует ли разбивать длинные тексты на более мелкие текстовые сегменты. Допустимые значения: 0 или 1. Значение по умолчанию 1.
Важно! Эта опция отключает возможность загружать существующие переводы для файлов XML, когда включена.
translatable_elements Только для XML файлов
необязательный
массив Это массив строк, где каждый элемент является элементом XPath для DOM, который должен быть импортирован.
Допустимые значения:
  • /path/to/node
  • /path/to/attribute[@attr]
  • //node , node - импортировать каждый узел с именем "node"
  • //[@attr] - импорт содержимого каждого атрибута с именем "attr"
  • nodeone/nodetwo - импортировать все узлы "nodetwo" (корневой узел указывать не обязательно)
  • /nodeone //nodetwo - импортировать все узлы "nodetwo", игнорируя другие узлы между "nodeone" и "nodetwo"
  • //node[@attr] - импортировать содержимое атрибутов "attr", хранящихся в узлах с именем "node"

Заметка! Если определены, параметры «translate_content» и «translate_attributes» не учитываются при импорте.
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 the method is successful it responds with an XML structure, as it is shown below.
<?xml version="1.0" encoding="UTF-8"?>
<success>
  <stats>
    <file file_id="342">
      <name>strings.xml</name>
      <strings>4</strings>
      <words>11</words>
    </file>
  </stats>
</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/arrays.xml]=@arrays.xml" \
  -F "files[strings.xml]=@strings.xml" \
  https://api.crowdin.com/api/project/{project-identifier}/add-file?key={project-key}
curl \
  -F "files[directory/multilingual.csv]=@example.csv" \
  -F "export_patterns[directory/multilingual.csv]=/%locale%/%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}/add-file?key={project-key}
<?php
$post_params = array();
$request_url = 'https://api.crowdin.com/api/project/{project-identifier}/add-file?key={project-key}';

if (function_exists('curl_file_create')) {
  $post_params['files[test.txt]'] = curl_file_create('/home/crowdin/test.txt');
} else {
  $post_params['files[test.txt]'] = '@/home/crowdin/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}/add-file?key={project-key}';

if(function_exists('curl_file_create')) {
  $post_params['files[directory/multilingual.csv]'] = curl_file_create('/home/crowdin/example.csv');
} else {
  $post_params['files[directory/multilingual.csv]'] = '@/home/crowdin/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;

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