Aggiorna file

Sei pregato di considerare che l'API 2.0 è ora la versione preferita da usare. La vecchia API rimarrà pienamente funzionare fino alla fine del 2021.

API di Crowdin v2
Aggiorna l'ultima versione dei tuoi file di partenza (quelli che dovrebbero esser localizzati) al tuo progetto di Crowdin.

Richiesta

Nota: Usa la combinazione di identificatore del progetto, nome utente e chiave del profilo per passare a questo endpoint.

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

Parametri

Nome Valore Descrizione
file obbligatori insieme Insieme di file che dovrebbero esser aggiornati.
Nota! 20 file massimo sono consentiti per caricare un trasferimento file di una volta.
titoli opzionale insieme Un insieme di stringhe che definisce i titoli per i file caricati. Le chiavi dell'insieme dovrebbero contenere i nomi dei file con percorso nel progetto di Crowdin.
export_patterns opzionale insieme Un insieme di stringhe che definisce i nomi dei file risultati (i file tradotti nell'archivio risultato). Le chiavi dell'insieme dovrebbero contenere i nomi dei file con percorso nel progetto di Crowdin.
new_names opzionale insieme Un insieme di stringhe che definisce i nuovi nomi per i file importati precedentemente. Le chiavi dell'insieme dovrebbero contenere i nomi dei file con percorso nel progetto di Crowdin.
solo file first_line_contains_header CSV and XLS/XLSX
opzionale
nella stringa Usato caricando i file CSV (o XLS/XLSX) tramite API. Definisce se la prima riga dovrebbe esser importata o contenere intestazioni delle colonne. Potrebbe non contenere il valore.
schema solo file CSV e XLS/XLSX
richiesto
nella stringa Nota: Usato solo caricando il file CSV (o XLS/XLSX) per definire la mappatura delle colonne dei dati.
Valore accettabile è la combinazione delle seguenti costanti:
  • "identificatore" - La colonna contiene l'identificatore della stringa.
  • "source_phrase" — La colonna contiene solo la stringa sorgente (nella stringa del risultato conterrà la stessa stringa).
  • "source_or_translation" — La colonna contiene la stringa di partenza ma esportando la stessa dovrebbe contenere la traduzione (anche caricando le traduzioni esistenti, il valore da questa colonna sarà usato come una stringa tradotta).
  • "translation" — La colonna contiene la stringa tradotta (quando il file importato contiene già le traduzioni).
  • "context" — La colonna contiene dei commenti sulla stringa sorgente. Informazioni del contesto.
  • "max_length" — La colonna contiene la lunghezza massima di traduzione per questa stringa. lunghezza massima di traduzione per questa stringa.
  • "etichette" - La colonna contiene etichette.
  • "none" — Non importa la colonna.
Parametro di esempio che dovrai aggiungere: &scheme=identifier,source_or_translation

Nota: perché il file esportato contenga le traduzioni verso tutte le lingue di arrivo, specifica i codici linguistici in schema (es. &scheme=identifier,source_phrase,uk,ru,fr).
update_option opzionale nella stringa In base al valore, "update_option" è usato per preservare le traduzioni e preservare/rimuovere le convalide delle stringhe modificate durante l'aggiornamento del file. I valori sono:
  • "update_as_unapproved" — Preserva le traduzioni delle stringhe modificate e rimuovi le convalide di queste traduzioni se esistono.
  • "update_without_changes" — Preserva le traduzioni e le convalide delle stringhe modificate.
Nota: Se non è impostato le traduzioni per le stringhe modificate saranno perse dopo l'aggiornamento del file. Utile per le correzioni di errori di ortografia e per modifiche minori nelle stringhe d'origine.
ramo opzionale nella stringa Il nome del ramo versione relativo (Versioni Gestione).
json opzionale nella stringa Potrebbe non contenere il valore. Definisce che la risposta dovrebbe essere in formato JSON.
jsonp opzionale nella stringa Nome della funzione di callback. Definisce che la risposta dovrebbe essere in formato JSONP.
escape_quotes Solo file di proprietà
opzionale
intero Definisce se la virgoletta singola dovrebbe esser esclusa da un'altra virgoletta singola o backslash nelle traduzioni esportate. Valori accettabili sono: 0, 1, 2, 3. Predefinito è 3.

0 — Non escludere la virgoletta singola;
1 — Esclusi virgoletta singola da un'altra virgoletta singola;
2 — Escludi virgoletta singola dal backslash;
3 — Escludi virgoletta singola da un'altra virgoletta singola solo nelle stringhe contenenti variabili ( {0} )
Variabili
identificatore-progetto nella stringa Identificatore progetto.
accesso nella stringa Il tuo nome utente su Crowdin.
chiave-profilo nella stringa La chiave API del tuo profilo.

Risposta

Se riuscito, questo metodo restituisce una struttura XML, come mostrato sotto.
<?xml version="1.0" encoding="UTF-8"?>
<success>
</success>
Campione di risposta non riuscita:
<?xml version="1.0" encoding="UTF-8"?>
<error>
  <code>3</code>
  <message>Chiave API non valida</message>
</error>

Esempi

curl \
  -F "files[/directory/strings.xml]=@strings.xml" \
  https://api.crowdin.com/api/project/{project-identifier}/update-file?login={username}&account-key={account-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?login={username}&account-key={account-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?login={username}&account-key={account-key}
<?php
$post_params = array();
$request_url = 'https://api.crowdin.com/api/project/{project-identifier}/update-file?login={username}&account-key={account-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?login={username}&account-key={account-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?login={username}&account-key={account-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;

Questo articolo è stato utile?