Dosya Ekleyin

Crowdin projesine yeni bir dosya ekleyin.

İstek

Not: Bu uç noktayı geçmek için ya proje tanımlayıcısı ve proje anahtarı ya da proje tanımlayıcısı, kullanıcı adı ve hesap anahtarı birleşimlerini kullanın.

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}

Parametreler

Ad Değer Açıklama
files zorunlu dizilim Crowdin projesine eklenmesi gereken dosyalar dizilimi. Dizilim anahtarları, Crowdin projesinde bir yol içeren dosya adlarını içermelidir.
Not! Bir kerede dosya aktarımı başına en fazla 20 dosya yüklenmesine izin verilir. Bir dosyanın en fazla boyutu 100 MB’tır.
titles isteğe bağlı dizilim Yüklenen dosyalar için başlıkları tanımlayan bir dizgiler dizilimi. Dizilim anahtarları, Crowdin projesinde bir yol içeren dosya adlarını içermelidir.
export_patterns isteğe bağlı dizilim Sonuçta elde edilen dosyaların adlarını tanımlayan bir dizgiler dizilimi (ortaya çıkan arşivdeki çevrilmiş dosyalar). Dizilim anahtarları, Crowdin projesinde bir yol içeren dosya adlarını içermelidir.
type isteğe bağlı dizgi Kabul edilebilir değerler:
  • boş değer veya "auto" — Dosya türünü uzantıya veya MIME türüne göre algılamaya çalışır
  • "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" — Köprü Metni Önişlemcisi (*.php)
  • "json" — Genel JSON (*.json)
  • "xml" — Genel XML (*.xml)
  • "ini" — Genel INI (*.ini)
  • "rc" — Windows Kaynakları (*.rc)
  • "resw" — Windows 8 Metro (*.resw)
  • "resjson" — Windows 8 Metro (*.resjson)
  • "qtts" — Nokia Qt (*.ts)
  • "joomla" — Joomla yerelleştirilebilir kaynaklar (*.ini)
  • "chrome" — Google Chrome Uzantısı (*.json)
  • "dtd" — Mozilla DTD (*.dtd)
  • "dklang" — Delphi DKLang (*.dklang)
  • "flex" — Flex (*.properties)
  • "nsh" — NSIS Yükleyici Kaynakları (*.nsh)
  • "wxl" — WiX Yükleyici (*.wxl)
  • "xliff" — XLIFF (*.xliff)
  • "html" — HTML (*.html, *.htm, *.xhtml, *.xhtm)
  • "haml" — Haml (*.haml)
  • "txt" — Düz Metin (*.txt)
  • "csv" — Virgülle Ayrılmış Değerler (*.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 Belgeleri, 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" — Görüntü Altyazısı ve WebVTT (*.vtt)
  • "srt" — SubRip .srt (*.srt)
  • "i18next_json" — i18next JSON (*.json)
first_line_contains_header sadece CSV ve XLS/XLSX dosyaları
isteğe bağlı
dizgi API aracılığıyla CSV (veya XLS/XLSX) dosyalarını yüklerken kullanılır. İlk satırın içe aktarılmasının gerekip gerekmediğini veya sütun üstbilgilerini içerip içermeyeceğini tanımlar. Hiç değer içermeyebilir.
import_translations sadece CSV ve XLS/XLSX çok dilli dosyaları
isteğe bağlı
tamsayı API aracılığıyla CSV (veya XLS/XLSX) dosyalarını yüklerken kullanılır. Dosya içe aktarma sırasında çevirilerin de içe aktarılıp aktarılmayacağını tanımlar – 1, ya da çeviriler içe aktarılmaz – 0. Varsayılan: 1.
scheme sadece CSV ve XLS/XLSX dosyaları
zorunlu
dizgi Not: Veri sütunları eşlemesini tanımlamak için sadece CSV (veya XLS / XLSX) dosyasını yüklerken kullanılır.
Kabul edilebilir değer aşağıdaki sabitlerin birleşimidir:
  • "identifier" — Sütun dizgi tanımlayıcısı içerir.
  • "source_phrase" — Sütun sadece kaynak dizgi içerir (sonuçta dizgi aynı dizgiyi içerecektir).
  • "source_or_translation" — Sütun kaynak dizgi içerir, ancak aynı sütunu dışa aktarırken çeviri içermelidir (varolan çevirileri yüklerken de bu sütundan gelen değer çevrilmiş bir dizgi olarak kullanılacaktır).
  • "translation" — Sütun çevrilmiş dizgiler içerir (içe aktarılan dosya zaten çeviriler içeriyorsa).
  • "context" — Sütun, kaynak dizgide bazı yorumlar içerir. Bağlam bilgileri.
  • "max_length" — Sütun, bu dizgi için en fazla çeviri uzunluğunu içerir.
  • "none" — Bu sütunu içe aktarma.
Eklemek zorunda olacağınız örnek parametre: &scheme=identifier,source_or_translation

Not: tüm hedef dillere çeviriler içerecek şekilde dışa aktarılan dosya için scheme içinde dil kodları belirtin (örn. &scheme=identifier,source_phrase,uk,ru,tr).
branch isteğe bağlı dizgi İlgili sürüm dalının adı (Sürümler Yönetimi).
json isteğe bağlı dizgi Hiç değer içermeyebilir. Yanıtın JSON biçiminde olması gerektiğini tanımlar.
jsonp isteğe bağlı dizgi Geri çağırma işlev adı. Yanıtın JSONP biçiminde olması gerektiğini tanımlar.
translate_content sadece XML dosyaları
isteğe bağlı
bool Etiketlerin içine yerleştirilen metinlerin çevirip çevrilmeyeceğini tanımlar. Kabul edilebilir değerler: 0 veya 1. Varsayılan 1.
translate_attributes sadece XML dosyaları
isteğe bağlı
bool Etiket özniteliklerinin çevrilip çevrilmeyeceğini tanımlar. Kabul edilebilir değerler: 0 veya 1. Varsayılan 1.
content_segmentation sadece XML dosyaları
isteğe bağlı
bool Uzun metinlerin daha küçük metin parçalarına bölünüp bölünmeyeceğini tanımlar. Kabul edilebilir değerler: 0 veya 1. Varsayılan 1.
Önemli! Bu seçenek, etkinleştirildiğinde XML dosyaları için varolan çevirileri yükleme olasılığını etkisizleştirir.
translatable_elements sadece XML dosyaları
isteğe bağlı
dizilim Bu, XPaths olan yerdeki her öğenin DOM öğesine aktarılması gereken dizgilerin bir dizilimidir.
Kabul edilebilir değerler:
  • /düğüme/giden/yol
  • /özniteliğe/giden/yol[@attr]
  • //node , node - "node" adlı her düğümü içe aktar
  • //[@attr] - "attr" adlı her özniteliğin içeriğini içe aktar
  • nodeone/nodetwo - tüm "nodetwo" düğümlerini içe aktar (kök düğümün belirtilmesi gerekli değildir)
  • /nodeone//nodetwo - "nodeone" ve "nodetwo" arasındaki diğer düğümleri yoksayan tüm "nodetwo" düğümlerini içe aktar
  • //node[@attr] - "node" adlı düğümlerde depolanan "attr" özniteliklerinin içeriğini içe aktar

Not! Eğer tanımlanırsa, içe aktarılırken "translate_content" ve "translate_attributes" parametreleri dikkate alınmaz.
escape_quotes sadece properties dosyaları
isteğe bağlı
tamsayı Dışa aktarılan çevirilerde tek tırnağın başka bir tek tırnak tarafından yoksa ters eğik çizgi tarafından atlatılması gerektiğini tanımlar. Kabul edilebilir değerler: 0, 1, 2, 3. Varsayılan 3.

0 — Tek tırnağı atlatma;
1 — Başka bir tek tırnak ile tek tırnağı atlat;
2 — Ters eğik çizgi ile tek tırnağı atlat;
3 — Sadece değişkenler ( {0} ) içeren dizgilerde başka bir tek tırnak ile tek tırnağı atlat
Değişkenler
project-identifier dizgi Proje tanımlayıcısı.
project-key dizgi Proje API anahtarı. Ya project-key ya da login ve account-key birleşimi gerekir.
login dizgi Crowdin’deki kullanıcı adınız. Ya project-key ya da login ve account-key birleşimi gerekir.
account-key dizgi Hesap API anahtarınız. Ya project-key ya da login ve account-key birleşimi gerekir.

Yanıt

Eğer yöntem başarılı olursa, aşağıda gösterildiği gibi bir XML yapısı ile yanıt verir.
<?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>
Başarısız yanıt örneği:
<?xml version="1.0" encoding="UTF-8"?>
<error>
  <code>3</code>
  <message>API anahtarı geçerli değil</message>
</error>

Örnekler

curl \
  -F "files[/dizin/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[dizin/cokdilli.csv]=@ornek.csv" \
  -F "export_patterns[directory/cokdilli.csv]=/%locale%/%original_file_name%" \
  -F "titles[dizin/cokdilli.csv]=Crowdin Projesindeki başlık" \
  -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;

Bu makale yararlı oldu mu?