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

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

Запрос

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/{идентификатор-проекта}/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 необязательный массив An array of strings that defines titles for uploaded files. Ключи массива должны содержать имена файлов с их адресами в 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
необязательный
строка Used when uploading CSV (or XLS/XLSX) files via API. Defines whether the first line should be imported or it contains the columns headers. May contain no value.
import_translations только для многоязычных файлов CSV и XLS / XLSX
необязательный
целое Used when uploading CSV (or XLS/XLSX) files via API. Defines whether during the file import translations are imported as well – 1, or translations are not imported – 0. Default: 1.
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" — 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" — столбец содержащий комментарии к исходной строке. Context information.
  • "max_length" — Column contains max. length of translation for this string.
  • "none" — Don't import this column.
Пример параметра, который вам нужно будет добавить: &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).
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 необязательный строка Название функции обратного вызова. 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, который должен быть импортирован.
Acceptable values are:
  • /path/to/node
  • /path/to/attribute[@attr]
  • //node , node - импортировать каждый узел с именем "node"
  • //[@attr] - импорт содержимого каждого атрибута с именем "attr"
  • nodeone/nodetwo - импортировать все узлы "nodetwo" (корневой узел указывать не обязательно)
  • /nodeone //nodetwo - импортировать все узлы "nodetwo", игнорируя другие узлы между "nodeone" и "nodetwo"
  • //node[@attr] - импортировать содержимое атрибутов "attr", хранящихся в узлах с именем "node"

Note! If defined, the parameters "translate_content" and "translate_attributes" are not taken into account while importing.
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;

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