Aggiungi 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

Aggiungi un nuovo file al 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}/add-file?login={username}&account-key={account-key}

Parametri

Nome Valore Descrizione
file obbligatori insieme Insieme dei file che dovrebbero essere aggiunti al progetto Crowdin. Le chiavi dell'insieme dovrebbero contenere i nomi del file con un percorso nel progetto di Crowdin.
Nota! 20 file massimo sono consentiti per caricare un trasferimento file di una volta. La dimensione massima di un file è 100 MB.
titoli opzionale insieme Un insieme di stringhe che definisce i titoli per i file caricati. Le chiavi dell'insieme dovrebbero contenere i nomi del file con un 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 del file con un percorso nel progetto di Crowdin.
tipo opzionale nella stringa Valori accettabili sono:
  • valore vuoto o "auto" - Prova a rilevare il tipo di file per estensione o tipo MIME
  • "android" — Android (*.xml)
  • "macosx" — Mac OS X / iOS (*.strings)
  • "resx" — .NET, Windows Phone (*.resx)
  • "proprietà" — Java (*.properties)
  • "gettext" — GNU GetText (*.po, *.pot)
  • "yaml" — Ruby On Rails (*.yaml)
  • "php" — Preprocessore dell'Ipertesto (*.php)
  • "json" — JSON Generico (*.json)
  • "xml" — XML Generico (*.xml)
  • "ini" — INI Generico (*.ini)
  • "rc" — Risorse Windows (*.rc)
  • "resw" — Windows 8 Metro (*.resw)
  • "resjson" — Windows 8 Metro (*.resjson)
  • "qtts" — Nokia Qt (*.ts)
  • "joomla" — Risorse localizzabili Joomla (*.ini)
  • "chrome" — Estensione Google Chrome (*.json)
  • "dtd" — Mozilla DTD (*.dtd)
  • "dklang" — Delphi DKLang (*.dklang)
  • "flex" — Flex (*.properties)
  • "nsh" — Risorse Installer NSIS (*.nsh)
  • "wxl" — Installer WiX (*.wxl)
  • "xliff" — XLIFF (*.xliff)
  • "html" — HTML (*.html, *.htm, *.xhtml, *.xhtm)
  • "haml" — Haml (*.haml)
  • "txt" — Plain Text (*.txt)
  • "csv" — Valori Separati da Virgola (*.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, Documenti 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" — Sottotitolare Video e WebVTT (*.vtt)
  • "srt" — SubRip .srt (*.srt)
  • "i18next_json" — i18next JSON (*.json)
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 essere importata o se contiene le intestazioni delle colonne. Potrebbe non contenere alcun valore.
import_translations solo file multilingue CSV e XLS/XLSX
opzionale
intero Usato caricando i file CSV (o XLS/XLSX) tramite API. Definisce se mentre le traduzioni di importazione del file sono anch'essi importati - 1, o le traduzioni non sono importate - 0. Predefinito: 1.
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 sorgente ma quando si esporta la stessa colonna dovrebbe contenere la traduzione (inoltre durante il caricamento delle traduzioni esistenti, il valore da questa colonna sarà usata come una stringa tradotta).
  • "translation" — La colonna contiene le stringhe tradotte (se il file importato contiene già delle 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 questa 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).
ramo opzionale nella stringa Il nome del ramo della versione correlata (Gestione delle Versioni).
json opzionale nella stringa Potrebbe non contenere alcun valore. Definisce che la risposta dovrebbe essere nel formato JSON.
jsonp opzionale nella stringa Nome della funzione di callback. Definisce che la risposta dovrebbe essere nel formato JSONP.
translate_content Solo file XML
opzionale
booleano Definisce se tradurre i testi situati nei tag. Valori accettabili sono: 0 o 1. Predefinito è 1.
translate_attributes Solo file XML
opzionale
booleano Definisci se tradurre gli attributi dei tag. Valori accettabili sono: 0 o 1. Predefinito è 1.
content_segmentation Solo file XML
opzionale
booleano Definisce se dividere testi lunghi in segmenti più piccoli di testo. Valori accettabili sono: 0 o 1. Predefinito è 1.
ImportanteQuesta opzione disabilita la possibilità di caricare traduzioni esistenti per file XML quando abilitata.
translatable_elements Solo file XML
opzionale
insieme Questo è un insieme di stringhe, dove ogni elemento è l'elemento Xpath a Dom che dovrebbe essere importato.
Sono valori accettabili:
  • /path/to/node
  • /path/to/attribute[@attr]
  • //node , node - importa ogni nodo denominato "node"
  • //[@attr] - importa il contenuto di ogni attributo denominato "attr"
  • nodeone/nodetwo - importa tutti i nodi "nodetwo" (nodo di root non necessario da specificare)
  • /nodeone//nodetwo - importa tutti i nodi "nodetwo" ignorando gli altri tra "nodeone" e "nodetwo"
  • //node[@attr] - importa il contenuto degli attributi "attr" memorizzati nei nodi denominati "node"

Nota! Se definito, i parametri "translate_content" e "translate_attributes" non sono presi in considerazione in importazione.
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 il metodo riesce, risponde con una struttura XML, come mostrato sotto.
<?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>
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/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;

Questo articolo è stato utile?