Adicionar Ficheiro

Add a new file to Crowdin project.

Pedido

Note: Use the combination of project identifier, username, and account key to pass to this endpoint.

POST https://api.crowdin.com/api/project/{project-identifier}/add-file?login={username}&account-key={account-key}

Parâmetros

Nome Valor Descrição
files obrigatório array Array de ficheiros que deve ser adicionada ao projeto no Crowdin. Array keys should contain file names with a path in Crowdin project.
Nota! no máximo são permitidos 20 ficheiros para enviar por transferência por vez. O tamanho máximo de um ficheiro é de 100 MB.
titles opcional 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 opcional 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 opcional string Os valores aceitáveis são:
  • valor vazio ou "auto" — Tenta detetar o tipo de ficheiro pela extensão ou 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" — Hypertext Preprocessor (*.php)
  • "json" — JSON Genérico (*.json)
  • "xml" — XML Genérico (*.xml)
  • "ini" — INI Genérico (*.ini)
  • "rc" — Windows Resources (*.rc)
  • "resw" — Windows 8 Metro (*.resw)
  • "resjson" — Windows 8 Metro (*.resjson)
  • "qtts" — Nokia Qt (*.ts)
  • "joomla" — Recursos localizáveis do Joomla (*.ini)
  • "chrome" — Extensão do Google Chrome (*.json)
  • "dtd" — Mozilla DTD (*.dtd)
  • "dklang" — Delphi DKLang (*.dklang)
  • "flex" — Flex (*.properties)
  • "nsh" — Recursos do Instalador do NSIS (*.nsh)
  • "wxl" — Instalador do WiX (*.wxl)
  • "xliff" — XLIFF (*.xliff)
  • "html" — HTML (*.html, *.htm, *.xhtml, *.xhtm)
  • "haml" — Haml (*.haml)
  • "txt" — Texto Simples (*.txt)
  • "csv" — Valores Separados por Vírgula (*.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, Documentos do OpenOffice.org, 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" — Legendagem de Vídeo e WebVTT (*.vtt)
  • "srt" — SubRip .srt (*.srt)
  • "i18next_json" — i18next JSON (*.json)
first_line_contains_header apenas ficheiros XLS/XLSX e CSV
opcional
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 apenas ficheiros multilingues CSV e XLS/XLSX
opcional
inteiro 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.
esquema ficheiros CSV e XLS/XLSX apenas
obrigatório
string Note: Used only when uploading CSV (or XLS/XLSX) file to define data columns mapping.
O valor aceitável é a combinação das seguintes constantes:
  • "identifier" — A coluna contém o identificador da frase.
  • "source_phrase" — A coluna contém apenas a frase de origem (a fase de resultado conterá a mesma frase).
  • "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" — Column contains some comments on source string. Context information.
  • "max_length" — Column contains max. length of translation for this string.
  • "none" — Don't import this column.
Exemplo de parâmetro que terás de adicionar: &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 opcional string The name of the related version branch (Versions Management).
json opcional string May contain no value. Defines that response should be in the JSON format.
jsonp opcional string Nome da função de retorno de chamada. Defines that response should be in the JSONP format.
translate_content apenas ficheiros XML
opcional
bool Define se deves traduzir os textos colocados dentro das tags. Os valores aceitáveis são: 0 ou 1. O padrão é 1.
translate_attributes apenas ficheiros XML
opcional
bool Define se os atributos das tags devem ser traduzidos. Os valores aceitáveis são: 0 ou 1. O padrão é 1.
content_segmentation apenas para ficheiros XML
opcional
bool Define se os textos longos devem ser divididos em segmentos de textos menores. Os valores aceitáveis são: 0 ou 1. O padrão é 1.
Importante! Esta opção desativa a possibilidade de enviar traduções existentes para ficheiros XML quando ativada.
translatable_elements apenas ficheiros XML
opcional
array Este é um array de frases, onde cada item é o XPaths para elemento DOM que deve ser importado.
Acceptable values are:
  • /path/to/node
  • /path/to/attribute[@attr]
  • //node , node - importa cada nó chamado "node"
  • //[@attr] - importa o conteúdo de cada atributo chamado "attr"
  • nodeone/nodetwo - importa todos os nós "nodetwo" (não é necessário especificar o nó raiz)
  • /nodeone//nodetwo - importa todos os nós "nodetwo" ao ignorar outros entre "nodeone" e "nodetwo"
  • //node[@attr] - importa o conteúdo dos atributos "attr" armazenados nos nomes chamados "node"

Note! If defined, the parameters "translate_content" and "translate_attributes" are not taken into account while importing.
escape_quotes apenas ficheiros properties
opcional
inteiro Define se as aspas simples devem ser ignoradas por outra ou barra invertida em traduções exportadas. Os valores aceitáveis são: 0, 1, 2, 3. O padrão é 3.

0 — Não escape duma citação simples;
1 — Escape de aspas simples por outra aspa simples;
2 — Escape de aspas simples por barra invertida;
3 — Escape de aspas simples por outra aspa simples apenas em frases que contém variáveis ( {0} )
Variáveis
project-identifier string Identificador do projeto.
login string O teu nome de utilizador no Crowdin.
account-key string A tua chave API de conta.

Resposta

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>
Exemplo de resposta mal-sucedida:
<?xml version="1.0" encoding="UTF-8"?>
<error>
  <code>3</code>
  <message>A chave API não é válida</message>
</error>

Exemplos

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;

Este artigo foi útil?