Atualizar Ficheiro

Upload the latest version of your source files (the ones, that should be localized) to your Crowdin project.

Pedido

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/{project-identifier}/update-file?key={project-key}
POST https://api.crowdin.com/api/project/{project-identifier}/update-file?login={username}&account-key={account-key}

Parâmetros

Nome Valor Descrição
files obrigatório array Files array that should be updated.
Nota! no máximo são permitidos 20 ficheiros para enviar por transferência por vez.
titles opcional array An arrays of strings that defines titles for uploaded files. As chaves da array deve conter os nomes dos ficheiros com o caminho para o projeto no Crowdin.
export_patterns opcional array An arrays of strings that defines names of resulted files (translated files in resulted archive). As chaves da array deve conter os nomes dos ficheiros com o caminho para o projeto no Crowdin.
new_names opcional array An arrays of strings that defines new names for previously imported files. As chaves da array deve conter os nomes dos ficheiros com o caminho para o projeto no Crowdin.
first_line_contains_header apenas ficheiros XLS/XLSX e CSV
opcional
string Used when uploading CSV (or XLS/XLSX) files via API. Defines whether first line should be imported or it contains columns headers. Pode não conter valor.
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" —A coluna contém a frase de origem, mas ao exportar a mesma coluna deve conter tradução (também ao enviar as traduções existentes, o valor desta como será usado como uma frase traduzida).
  • "translation" — A coluna contém frase traduzida (quando o ficheiro importado já contém traduções).
  • "context" — Column contains some comments on source string. Context information.
  • "max_length" — Column contains max. length of translation for this string.
  • "none" — Não importar a coluna.
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).
update_option optional string Depending on the value, "update_option" is used to preserve translations and preserve/remove validations of changed strings during file update. Os valores são:
  • "update_as_unapproved" — Preserve translations of changed strings and remove validations of those translations if they exist.
  • "update_without_changes" — Preserve translations and validations of changed strings.
Note: If it is not set translations for changed strings will be lost after file update. Useful for typo fixes and minor changes in source strings.
branch opcional string O nome da ramificação da versão relacionada (Gestão de Versões).
json opcional string Pode não conter 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.
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.
project-key string Chave da API do projeto. Tanto a project-key ou a combinação de login e account-key são obrigatórias.
login string O teu nome de utilizador no Crowdin. Tanto a project-key ou a combinação de login e account-key são obrigatórias.
account-key string A tua chave API de conta. Tanto a project-key ou a combinação de login e account-key são obrigatórias.

Resposta

If successful, this method returns a XML structure, as it is shown below.
<?xml version="1.0" encoding="UTF-8"?>
<success>
</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/strings.xml]=@strings.xml" \
  https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}
curl \
  -F "files[/directory/android.xml]=@strings.xml" \
  -F "new_names[/directory/android.xml]=strings.xml" \
  https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}
curl \
  -F "files[directory/multilingual.csv]=@example.csv" \
  -F "export_patterns[directory/multilingual.csv]=/translations/%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}/update-file?key={project-key}
<?php
$post_params = array();
$request_url = 'https://api.crowdin.com/api/project/{project-identifier}/update-file?key={project-key}';

if (function_exists('curl_file_create')) {
$post_params['files[test.txt]'] = curl_file_create('/home/user/test.txt');
} else {
$post_params['files[test.txt]'] = '@/home/user/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}/update-file?key={project-key}';

if (function_exists('curl_file_create')) {
$post_params['files[/directory/android.xml]'] = curl_file_create('/home/user/strings.xml');
} else {
$post_params['files[/directory/android.xml]'] = '@/home/user/strings.xml';
}

$post_params['new_names[/directory/android.xml]'] = 'strings.xml';

$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}/update-file?key={project-key}';

if(function_exists('curl_file_create')) {
$post_params['files[directory/multilingual.csv]'] = curl_file_create('/home/user/example.csv');
} else {
$post_params['files[directory/multilingual.csv]'] = '@/home/user/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?