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

Add a new file to Crowdin project.

Запрос

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

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 проект. Array keys should contain file names with a path in Crowdin project.
Внимание! Максимум 20 файлов разрешено загружать за один раз. Максимальный размер одного файла составляет 100 МБ.
titles необязательный массив An array of strings that defines titles for uploaded files. Array keys should contain file names with a path in Crowdin project.
export_patterns необязательный массив An array of strings that defines names of resulted files (translated files in the resulted archive). Array keys should contain file names with a path in Crowdin project.
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" — Column contains source string but when exporting the 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 strings (if the imported file already contains translations).
  • "context" - столбец содержит некоторые комментарии к исходной строке. Контекстная информация.
  • «max_length» - столбец содержит макс. длину перевода для этой строки.
  • "none" — Don't import this column.
Пример параметра, который вам нужно будет добавить: &scheme=identifier,source_or_translation

Примечание: чтобы экспортированный файл содержал переводы на все целевые языки, укажите коды языков в схеме (напр. &scheme=identifier,source_phrase,uk,ru,fr).
branch необязательный строка The name of the related version branch (Versions Management).
json необязательный строка May contain no value. Defines that response should be in the JSON format.
jsonp необязательный строка Callback function name. Defines that response should be in the JSONP format.
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;

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