Fájl hozzáadása

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

Kérelem

Figyelem: Vagy a projekt kulcs vagy a felhasználónév és a fiók kulcs kombinációja adható át ehhez a végponthoz. Projekt azonosítója mindkét esetben átadásra kerül.

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}

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 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 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 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)
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ése során használható. 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 Figyelem: Csak akkor használatos, ha CSV (vagy XLS/XLSX) fájlt tölt fel az adatoszlopok leképezésére.
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 (amikor 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.
  • "none" — Ne importálja az oszlopot.
Példa paraméter, amelyet hozzá kell adnia: &scheme=identifier,source_or_translation

Figyelem: 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 Nem tartalmazhat értéket. Meghatározza, hogy a válasz JSON formátumban kell legyen.
jsonp opcionális string Visszahívási funkció 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ék 1.
translate_attributes csak XML fájlok esetén
opcionális
bool Meghatározza, hogy le kell e fordítani a jelölők attribútumait. Elfogadható értékek: 0 vagy 1. Alapértelmezett érték: 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.
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

Figyelem! 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 szükséges string Projekt azonosítója.
project-key opcionális string Projekt API kulcs. Vagy a projekt kulcs vagy a felhasználónév és fiók kulcs kombinációja szükséges.
username opcionális string A felhasználóneve a Crowdinban. Vagy a projekt kulcs vagy a felhasználónév és fiók kulcs kombinációja szükséges.
account-key opcionális string Fiók API kulcs. Vagy a projekt kulcs vagy a felhasználónév és fiók kulcs kombinációja szükséges.

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="ISO-8859-1"?>
<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="ISO-8859-1"?>
<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?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;

Hasznos volt ez a cikk?