Please consider that API 2.0 is now the preferred version to be used. The old API will remain fully functional until the end of 2021.
Add a new file to Crowdin project.
Name | Value | Description |
---|---|---|
files required | array | Files array that should be added to Crowdin project. Array keys should contain file names with a path in Crowdin project. Note! 20 files max are allowed to upload per one time file transfer. The maximum size of one file is 100 MB. |
titles optional | array | An array of strings that defines titles for uploaded files. Array keys should contain file names with a path in Crowdin project. |
export_patterns optional | array | 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 optional | string | Acceptable values are:
|
first_line_contains_header CSV and XLS/XLSX files only optional | string | 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 and XLS/XLSX multilingual files only optional | integer | 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 and XLS/XLSX files only required | string | Note: Used only when uploading CSV (or XLS/XLSX) file to define data columns mapping. Acceptable value is the combination of the following constants:
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 optional | string | The name of the related version branch (Versions Management). |
json optional | string | May contain no value. Defines that response should be in the JSON format. |
jsonp optional | string | Callback function name. Defines that response should be in the JSONP format. |
translate_content XML files only optional | bool | Defines whether to translate texts placed inside the tags. Acceptable values are: 0 or 1. Default is 1. |
translate_attributes XML files only optional | bool | Defines whether to translate tags attributes. Acceptable values are: 0 or 1. Default is 1. |
content_segmentation XML files only optional | bool | Defines whether to split long texts into smaller text segments. Acceptable values are: 0 or 1. Default is 1. Important! This option disables the possibility to upload existing translations for XML files when enabled. |
translatable_elements XML files only optional | array | This is an array of strings, where each item is the XPaths to DOM element that should be imported. Acceptable values are:
Note! If defined, the parameters "translate_content" and "translate_attributes" are not taken into account while importing. |
escape_quotes properties files only optional | integer | Defines whether single quote should be escaped by another single quote or backslash in exported translations. Acceptable values are: 0, 1, 2, 3. Default is 3. 0 — Do not escape single quote; 1 — Escape single quote by another single quote; 2 — Escape single quote by backslash; 3 — Escape single quote by another single quote only in strings containing variables ( {0} ) |
Variables | ||
project-identifier | string | Project identifier. |
login | string | Your username in Crowdin. |
account-key | string | Your account API key. |
<?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>
<?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?login={username}&account-key={account-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?login={username}&account-key={account-key}
<?php
$post_params = array();
$request_url = 'https://api.crowdin.com/api/project/{project-identifier}/add-file?login={username}&account-key={account-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?login={username}&account-key={account-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;