Fájl hozzáadása

Please consider that API 2.0 is now the preferred version to be used. The old API will remain fully functional until the end of 2021.

Crowdin API v2

Új fájl hozzáadása a Crowdin projekthez.

Kérelem

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}

Paraméterek

Név Érték Leírás
files szükséges array Fájlok tömb, amelyeket a Crowdin projekthez hozzá kell adni. A tömbök kulcsainak tartalmazniuk kell a Crowdin projekt fájlneveit elérési úttal.
Figyelem! Egy fájlátvitel során maximum 20 fájl tölthető fel. Egy fájl maximális mérete 100 MB.
titles opcionális array Karakterláncok olyan tömbje, amelyek címeket határoztak meg a feltöltött fájlok számára. A tömbök kulcsainak tartalmazniuk kell a Crowdin projekt fájlneveit elérési úttal.
export_patterns opcionális array Karakterláncok tömbje, amely meghatározza az eredményül kapott fájlok nevét (lefordított fájlok az eredményül kapott archívumban). A tömbök kulcsainak tartalmazniuk kell a Crowdin projekt fájlneveit elérési úttal.
type opcionális string Elfogadható értékek:
  • üres érték vagy "auto" — Próbálja meg felismerni a fájl típusát a kiterjesztés, vagy a MIME típus alapján
  • "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" — Általános JSON (*.json)
  • "xml" — Általános XML (*.xml)
  • "ini" — Általános INI (*.ini)
  • "rc" — Windows Resources (*.rc)
  • "resw" — Windows 8 Metro (*.resw)
  • "resjson" — Windows 8 Metro (*.resjson)
  • "qtts" — Nokia Qt (*.ts)
  • "joomla" — Joomla honosítható források (*.ini)
  • "chrome" — Google Chrome kiterjesztés (*.json)
  • "dtd" — Mozilla DTD (*.dtd)
  • "dklang" — Delphi DKLang (*.dklang)
  • "flex" — Flex (*.properties)
  • "nsh" — NSIS telepítő források (*.nsh)
  • "wxl" — WiX telepítő (*.wxl)
  • "xliff" — XLIFF (*.xliff)
  • "html" — HTML (*.html, *.htm, *.xhtml, *.xhtm)
  • "haml" — Haml (*.haml)
  • "txt" — Egyszerű szöveg (*.txt)
  • "csv" — vesszővel elválasztott értékek (*.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 dokumentumok, 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" — Videó feliratozás és WebVTT (*.vtt)
  • "srt" — SubRip .srt (*.srt)
  • "i18next_json" — i18next JSON (*.json)
first_line_contains_header csak CSV és XLS/XLSX fájlok esetén
opcionális
string A CSV (vagy XLS/XLSX) fájlok API-n keresztüli feltöltésére használt. Meghatározza, hogy az első sor importálandó e, vagy oszlop fejléceket tartalmaz. Lehet, hogy nem tartalmaz értéket.
import_translations csak CSV és XLS/XLSX többnyelvű fájlok esetén
opcionális
integer A CSV (vagy XLS/XLSX) fájlok API-n keresztüli feltöltésére használt. Meghatározza, hogy a fájl importálása során a fordítások is be legyenek-e importálva – 1, vagy a fordításokat nem kell importálni – 0. Alapértelmezett érték: 1.
scheme csak CSV és XLS/XLSX fájlok esetén
szükséges
string Megjegyzés: Csak CSV (vagy XLS/XLSX) fájl feltöltésekor használható az oszlopok leképezésének meghatározására.
Az elfogadható érték a következő konstansok kombinációja:
  • "identifier" — oszlop tartalmazza a karakterlánc azonosítót.
  • "source_phrase" — oszlop csak forrás-karakterláncot tartalmaz (az eredmény karakterláncban ugyanazt fogja tartalmazni).
  • "source_or_translation" — oszlop tartalmazza a forrás-karakterláncot, de exportáláskor az azonos oszlopnak kell tartalmaznia a fordítást (mikor feltölt meglévő fordításokat, ezen oszlop értéke kerül a lefordított karakterláncként használatra).
  • "translation" — oszlop lefordított karakterláncot tartalmaz (ha az importált fájl már tartalmaz fordításokat).
  • "context" — oszlop tartalmazza a forrás-karakterlánchoz tartozó néhány megjegyzést. Szövegösszefüggés információ.
  • "max_length" — oszlop tartalmazza a karakterlánc fordításának maximális hosszát.
  • "labels" — Column contains labels.
  • "none" - Ne importálja ezt az oszlopot.
Példa paraméter, amelyet hozzá kell adnia: &scheme=identifier,source_or_translation

Megjegyzés: ahhoz, hogy az exportált fájl tartalmazza az összes célnyelvre történő fordításokat, állítsa be a nyelvkódokat a sémában (pl. &scheme=identifier,source_phrase,uk,ru,fr).
branch opcionális string Kapcsolódó verzió-ág neve (Verziók kezelése).
json opcionális string Lehet, hogy nem tartalmaz értéket. Meghatározza, hogy a válasz JSON formátumban legyen.
jsonp opcionális string Visszahívási függvény neve. Meghatározza, hogy a válasz JSONP formátumban legyen.
translate_content csak XML fájlok esetén
opcionális
bool Meghatározza, hogy a jelölőkön belüli szövegeket le kell e fordítani. Elfogadható értékek: 0 vagy 1. Alapértelmezett értéke 1.
translate_attributes csak XML fájlok esetén
opcionális
bool Meghatározza, hogy le kell e fordítani a jelölő attribútumokat. Elfogadható értékek: 0 vagy 1. Alapértelmezett értéke 1.
content_segmentation csak XML fájlok esetén
opcionális
bool Meghatározza, hogy a hosszú szövegeket kisebb szövegekre szétdarabolja e. Elfogadható értékek: 0 vagy 1. Alapértelmezett értéke 1.
Fontos! Ez az opció letiltja az XML fájlok meglévő fordítások feltöltésének lehetőségét, ha engedélyezve van.
translatable_elements csak XML fájlok esetén
opcionális
array Ez egy karakterláncok tömb, ahol minden elem az XPaths a DOM-hoz elem, amelyet importálni kell.
Az elfogadható értékek:
  • /path/to/node
  • /path/to/attribute[@attr]
  • //node , node - minden "node" nevű csomópont importálása
  • //[@attr] - minden "attr" nevű attribútum tartalmának importálása
  • nodeone/nodetwo - minden "nodetwo" csomópont importálása (gyökér csomópont nem kell, hogy meghatározott legyen)
  • /nodeone//nodetwo - minden "nodetwo" csomópont importálása a "nodeone" és "nodetwo" csomópontok közötti csomópontok mellőzéséve
  • //node[@attr] - az "attr" tartalmainak importálása, melyek a "node" név alatt tároltak

Megjegyzés! Ha be van állítva, a "translate_content" és a "translate_attributes" paramétereket nem veszi figyelembe az importálás során.
escape_quotes csak tulajdonságok fájlokban
opcionális
integer Meghatározza, hogy egy adott aposztrófot egy másik aposztróffal, vagy fordított perjellel kell védeni (escape) az exportált fordításokban. Elfogadható értékek: 0, 1, 2, 3. Alapértelmezett értéke 3.

0 — Ne védje az aposztrófot;
1 — Aposztróf védése egy másik aposztróffal;
2 — Aposztróf védése fordított perjellel;
3 — Aposztróf védése egy másik aposztróffal csak azokban a karakterláncokban, amelyek változót tartalmaznak ( {0} )
Változók
project-identifier string Projekt azonosítója.
login string A felhasználóneve a Crowdinban.
account-key string A fiókja API kulcsa.

Válasz

Ha a módszer sikeres, akkor XML struktúrával válaszol, ahogy az az alábbiakban látható.
<?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>
Sikertelen válasz példa:
<?xml version="1.0" encoding="UTF-8"?>
<error>
  <code>3</code>
  <message>API key is not valid</message>
</error>

Példák

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;

Hasznos volt ez a cikk?