Adicionar arquivo

Adicionar um novo arquivo ao projeto Crowdin.

Pedido

Nota: Use a combinação de identificador do projeto e chave do projeto ou a combinação do identificador do projeto, nome de usuário, e chave da conta para passar para este ponto final.

POST https://api.crowdin.com/api/project/{project-identifier}/add-file?key={project-key}
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 Matriz de arquivos que deve ser adicionada ao projeto no Crowdin. As chaves de matriz devem conter nomes de arquivos com caminho no projeto no Crowdin.
Nota! Máximo de 20 arquivos podem ser enviados por transferência de arquivos por vez. O tamanho máximo de um arquivo é de 100 MB.
titles opcional array Uma matrizes de textos que definem títulos para arquivos enviados. As chaves de matriz devem conter nomes de arquivos com caminho no projeto Crowdin.
export_patterns opcional array Uma matrizes de textos que definem nomes de resultados (arquivos traduzidos em archive de resultados). As chaves de matriz devem conter nomes de arquivos com caminho no projeto no Crowdin.
type opcional string Valores aceitáveis são:
  • valor vazio ou "auto" - Tente detectar o tipo de arquivo por extensão ou tipo 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 WiX (*.wxl)
  • "xliff" — XLIFF (*.xliff)
  • "html" — HTML (*.html, *.htm, *.xhtml, *.xhtm)
  • "haml" — Haml (*.haml)
  • "txt" — Texto simples (*.txt)
  • "csv" — Valores separados por virgula (*.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" — Legendagem de vídeos e WebVTT (*.vtt)
  • "srt" — SubRip .srt (*.srt)
first_line_contains_header Somente arquivos CSV e XLS/XLSX
opcional
string Usado ao fazer o upload de arquivos CSV (ou XLS/XLSX) via API. Define se a primeira linha deve ser importada ou se contém os cabeçalhos das colunas. Não pode conter nenhum valor.
import_translations Somente arquivos multilíngues CSV e XLS/XLSX
opcional
inteiro Usado ao fazer o upload de arquivos CSV (ou XLS/XLSX) via API. Define se o arquivo também é importado ou não - 1, ou se as traduções não são importadas - 0. Padrão: 1.
scheme Somente arquivos CSV e XLS / XLSX
obrigatório
string Nota: Usado somente ao fazer o upload do arquivo CSV (ou XLS / XLSX) para definir o mapeamento de colunas de dados.
O valor aceitável é a combinação das seguintes constantes:
  • "identifier" — Coluna contém identificador de string.
  • "source_phrase" — A coluna contém apenas a string de origem (na string resultante conterá a mesma string).
  • "source_or_translation" — A coluna contém o texto de origem, mas ao exportar a mesma coluna deve conter tradução (também ao carregar traduções existentes, o valor desta coluna será usado como uma string traduzida).
  • "translation" — Coluna contém textos traduzidos (quando o arquivo importado já contém traduções).
  • "context" — Coluna contém alguns comentários na string de origem. Informações de contexto.
  • "max_length" — Coluna contém no máximo duração da tradução para esta string.
  • "none" — Não importe coluna.
Exemplo de parâmetro você terá que adicionar: &scheme=identifier,source_or_translation

Nota: para o arquivo exportado conter traduções em todos os idiomas de destino, especifique códigos de idioma no esquema (exemplo &scheme=identifier,source_phrase,uk,ru,fr).
branch opcional string O nome da ramificação da versão relacionada (Gerenciamento de Versões).
json opcional string Não pode conter nenhum valor. Define que a resposta deve estar no formato JSON.
jsonp opcional string Nome da função de retorno de chamada. Define que a resposta deve estar no formato JSONP.
translate_content Apenas arquivos XML
opcional
bool Define se deve traduzir textos colocados dentro das etiquetas. Os valores aceitáveis são: 0 ou 1. O padrão é 1.
translate_attributes Apenas arquivos XML
opcional
bool Define se deve traduzir atributos de tags. Os valores aceitáveis são: 0 ou 1. O padrão é 1.
content_segmentation Apenas arquivos 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 carregar traduções existentes para arquivos XML quando ativada.
translatable_elements Apenas arquivos XML
opcional
array Este é um array de frases, onde cada item é o XPaths para elemento DOM que deve ser importado.
Valores aceitáveis são:
  • /path/to/node
  • /path/to/attribute[@attr]
  • //node , node - importar cada nota nomeada "node"
  • //[@attr] - importar o significado de cada atributo nomeado "attr"
  • nodeone/nodetwo - importar todos as notas "nodetwo" (a nota raiz não precisa ser especificada)
  • /nodeone//nodetwo - importar todas os notas "nodetwo" ignorando outras notas entre "nodeone" e "nodetwo"
  • //node[@attr] - importar conteúdo dos atributos "attr" armazenados nas notas nomeadas como "node"

Nota! Se definido, os parâmetros "translate_content" e "translate_attributes" não são considerados durante a importação.
escape_quotes somente arquivos de propriedades
opcional
inteiro Define se aspas simples devem ser evitadas por outra aspa simples ou barra invertida nas traduções exportadas. Os valores aceitáveis são: 0, 1, 2, 3. O padrão é 3.

0 — Não escape uma citação;
1 — Escape única citação por outra simples citação;
2 — Escape uma citação da barra invertida;
3 — Escape de aspas simples por outra aspa simples apenas em strings contendo variáveis ( {0} )
Variáveis
project-identifier string Identificador do projeto.
project-key string Chave da API do projeto. Tanto a chave do projeto ou a combinação de entrada e chave da conta é requerido.
iniciar sessão string Seu nome de usuário no Crowdin. Tanto a chave do projeto ou a combinação de entrada e chave da conta é requerido.
account-key string Chave da API da sua conta. Tanto a chave do projeto ou a combinação de entrada e chave da conta é requerido.

Resposta

Se o método for bem-sucedido, ele responderá com uma estrutura XML, conforme mostrado abaixo.
<?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>
Amostra de resposta mal-sucedida:
<?xml version="1.0" encoding="UTF-8"?>
<error>
  <code>3</code>
  <message>A chave da 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?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;

Este artigo foi útil?