Yapılandırma Dosyası

Giriş

Crowdin CLI uses a configuration file that contains a description of the resources to manage: files to be uploaded into Crowdin and the locations of the corresponding translations.

Crowdin CLI’yi kullanmak için önce yapılandırma dosyanızı oluşturmalı ve ardından aracı çalıştırmalısınız. Varsayılan olarak, Crowdin CLI crowdin.yml adında bir yapılandırma dosyası arar (bu yüzden crowdin.yml’dan farklı değilse dosya adını belirtmek zorunda değilsiniz).

Yapılandırma dosyasını oluşturmak için aşağıdaki komutu çalıştırın:

$ crowdin init

Yapılandırma Dosyası Yapısı

Geçerli bir Crowdin CLI yapılandırma dosyası aşağıdaki yapıya sahiptir, bu yüzden lütfen gerekli tüm bilgileri doldurduğunuzdan emin olun:

  • Proje kimlik bilgileri, tercihlerin ​​ve erişim bilgilerinin bulunduğu dosyanın başı
  • Yöneteceğiniz bir dizi kaynak ve çeviri dosyasını tanımlayan bir dosya dizilimi öğesi
  • Dosyaların dizilimindeki zorunlu alanlar: Kaynak dosyalar için süzgeçleri tanımlayan Kaynak ve çevrilen dosyaların nerede saklanacağı veya CLI’yi ayarlarken bunları yüklemek istiyorsanız zaten sahip olduğunuz çevirileri nerede arayacağınızla ilgili talimatları içeren Çeviri

Basit Bir Yapılandırma Dosyası Yazma

Tipik bir yapılandırma dosyası aşağıdakine benzer:

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/locale/en/folder1/[0-2].txt",                                       #source files filter
    "translation": "/locale/%two_letters_code%/folder1/%original_file_name%"        #where translations are stored
  },
  {
    "source": "/locale/en/folder2/[0-2].txt",
    "translation": "/locale/%two_letters_code%/folder2/%original_file_name%"
  }
]

To run the above configuration file and upload source files to Crowdin Enterprise:

$ crowdin upload sources

Get translations from Crowdin Enterprise and put them in the right locations:

$ crowdin download

Ortam Değişkenlerinden gelen API Kimlik Bilgileri

API Kimlik Bilgilerini bir ortam değişkeninden yükleyebilirsiniz, örneğin:

"project_id_env": "CROWDIN_PROJE_KİMLİĞİ"
"api_token_env": "CROWDIN_KİŞİSEL_BELİRTECİ"
"base_path_env": "CROWDIN_TEMEL_YOLU"
"base_url_env": "CROWDIN_TEMEL_URL"

Eğer karışıksa, api_token ve project_id önceliklidir:

"project_id_env": "CROWDIN_PROJECT_ID"                # Low priority
"api_token_env": "CROWDIN_PERSONAL_TOKEN"             # Low priority
"base_path_env": "CROWDIN_BASE_PATH"                  # Low priority
"base_url_env": "CROWDIN_BASE_PATH"                   # Low priority
"project_id": "projectId"                             # High priority
"api_token": "personal-access-token"                  # High priority
"base_path": "/project-base-path"                     # High priority
"base_url": "https://{organization-name}.crowdin.com" # High priority

Proje Yapılandırması ve API Kimlik Bilgilerini Bölün

crowdin.yml dosyası, yönetilecek kaynakların ve API kimlik bilgilerinin (project_id, api_token, base_path, base_url) açıklamasını içerir. Bu, API anahtarının diğer kullanıcılar tarafından erişilebilir olacağından bu dosyayı kod deposuna işlemenin güvenli olmadığı anlamına gelir. Crowdin CLI, 2 tür yapılandırma dosyası destekler:

  • proje dizininde bulunan, yönetilecek kaynakların açıklaması
  • Muhtemelen $HOME/.crowdin.yml dosyasında bulunan API kimlik bilgileri
Not: .crowdin.yml yapılandırma dosyasındaki API kimlik bilgileri proje dizinindeki kimlik bilgilerine göre daha yüksek önceliğe sahiptir (crowdin.yml).

Eğer kullanıcıya özgü kimlik bilgileriyle bir komut çalıştırmanız gerekiyorsa (örneğin kaynakları yükleme) o zaman aşağıdaki komutu çalıştırın:

$ crowdin upload sources --identity 'kullanıcı-kimlik-bilgileri-dosyasına-giden-yol'

Ancak kullanıcıya özgü kimlik bilgileri dosyası $HOME/.crowdin.yml içinde bulunuyorsa basitçe çalıştırabilirisiniz:

$ crowdin upload sources

Genel Yapılandırma

Yukarıda verilen örnek yapılandırma, çoklu dosyalarla çalışmayı kolaylaştıran standart joker karakterleri (ayrıca genelleme şekilleri olarak da bilinir) içeren kaynak ve çeviri özniteliklerine sahiptir.

İşte kullanabileceğiniz şekiller:

* (yıldız işareti)

Dosya veya dizin adındaki herhangi bir karakteri temsil eder. Eğer bir “*.json” belirtirseniz, “iletiler.json”, “hakkimizda.json” ve “.json” ile biten her şey gibi tüm dosyaları içerecektir.

** (çiftli yıldız işareti)

Herhangi bir dizgiyle art arda (alt dizinler dahil) eşleşir. Hem kaynak hem de çeviri şekillerinde ** kullanabileceğinizi unutmayın. Çeviri şeklinde ** kullanırken, belirli bir dosya için her zaman kaynaktan gelen alt yolu içerecek. Örneğin, tüm .po dosyalarını art arda Crowdin’e yüklemek için ‘/en/**/.po’ kaynağını kullanabilirsiniz. Çeviri şekli ‘/%two_letters_code%/**/%original_file_name%’ olacaktır.

? (soru işareti)

Herhangi bir tek karakterle eşleşir.

[set]

Küme içindeki herhangi bir tek karakterle eşleşir. Düzenli İfadedeki, küme değili ([^ a-z]) dahil olmak üzere karakter kümeleri gibi davranır.

\ (ters eğik çizgi)

Sonraki üst karakteri atlatır.

Yer Tutucular

Crowdin CLI, sonuçta ortaya çıkan dosya adı içine uygun değişkenleri koymak için aşağıdaki yer tutucuları kullanmayı sağlar:

Ad Açıklama
%language% Dil adı (örn. Ukraynaca)
%two_letters_code% Dil kodu ISO 639-1 (örn. uk)
%three_letters_code% Dil kodu ISO 639-2/T (örn. ukr)
%locale% Yerel ayar (örn. uk-UA)
%locale_with_underscore% Yerel ayar (örn. uk_UA)
%original_file_name% Orijinal dosya adı
%android_code% "values-" dizinlerini adlandırmak için kullanılan Android Locale tanımlayıcısı
%osx_code% ".lproj" dizinlerini adlandırmak için kullanılan OS X Locale tanımlayıcısı
%original_path% Sonuçta oluşan pakette bir dosya yolu oluşturmak için Crowdin projesindeki ana klasörlerin adlarını kullanır
%file_extension% Orijinal dosya uzantısı
%file_name% Uzantısız dosya adı

Ayrıca şeklin başına bir eğik çizgi (/) koyarak sonuçta ortaya çıkan arşivdeki dosyalar için yolu tanımlayabilirsiniz.

Çeviri seçeneğiniz şöyle görünebilir: “/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%”.

Joker Karakterlerin Kullanımı

Yerel makinedeki dosyaların ve dizinlerin yapısı:

- base_path | |-- folder |     | |     |-- 1.xml |     |-- 1.txt |     |-- 123.txt |     |-- 123_deneme.txt |     |-- a.txt |     |-- a1.txt |     |-- crowdin?deneme.txt |     |-- crowdin_deneme.txt | |-- 1.xml |-- 1.txt |-- 123.txt |-- 123_deneme.txt |-- a.txt |-- a1.txt |-- crowdin?deneme.txt |-- crowdin_deneme.txt |-- 3.txt

Örnek 1. Kaynak yolunda joker karakterlerin kullanımı:

#........proje yapılandırmanız........
"files": [
  {
      "source": "/**/?[0-9].txt", #a1.txt, klasör/a1.txt yükle
      "translation": "/**/%two_letters_code%_%original_file_name%"
  },
  {
      "source": "/**/*\\?*.txt",  #crowdin?deneme.txt, klasör/crowdin?deneme.txt yükle
      "translation": "/**/%two_letters_code%_%original_file_name%"
  },
  {
      "source": "/**/[^0-2].txt", #3.txt, klasör/3.txt, a.txt, klasör/a.txt yükle (1.txt, klasör/1.txt yoksay)
      "translation": "/**/%two_letters_code%_%original_file_name%"
  }
]

Örnek 2. Dosyaları yoksayma için joker karakterlerin kullanımı:

#........proje yapılandırmanız........
"files": [
  {
    "source": "/**/*.*",                             #base_path’in içerdiği tüm dosyaları yükle
    "translation": "/**/%two_letters_code%_%original_file_name%",
    "ignore": [
      "/**/%two_letters_code%_%original_file_name%", #çevrilmiş dosyaları yoksay
      "/**/?.txt",                                   #1.txt, a.txt, klasör/1.txt, klasör/a.txt yoksay
      "/**/[0-9].txt",                               #1.txt, klasör/1.txt yoksay
      "/**/*\\?*.txt",                               #crowdin?deneme.txt, klasör/crowdin?deneme.txt yoksay
      "/**/[0-9][0-9][0-9].txt",                     #123.txt , klasör/123.txt yoksay
      "/**/[0-9]*_*.txt"                             #123_deneme.txt, klasör/123_deneme.txt yoksay
    ]
  }
]

Dil Eşleme

Genellikle yazılım projelerinin yerel dizinler için özel adları vardır. Crowdin Enterprise, projelerinizde tanınması için kendi dillerinizi eşlemenizi sağlar.

Yerel dizinleriniz ‘en’, ‘uk’, ‘tr’, ‘de’ olarak adlandırılmış diyelim. Hepsi %two_letters_code% yer tutucusu ile temsil edilebilir. Yine de, ‘zh_CH’ adında bir dizine sahipsiniz. Projenizde değişiklik yapmadan Crowdin ile çalışmasını sağlamak için Dil Eşleme’yi ayarlayabilirsiniz. Ayrıca %android_code%, %locale% vb. gibi diğer yer tutucuları için dil kodlarını geçersiz kılabilirsiniz.

Dil Eşlemeyi, ya kullanıcı arabirimi (KA - UI) aracılığıyla ya da dosya kümenize bir ` language_mapping ` bölümü ekleyerek ayarlayabilirsiniz. Her dosya süzgeci için language_mapping parametresini çoğaltma ihtiyacını ortadan kaldırdığından, KA aracılığıyla bir dil eşlemesi ayarlamanızı öneririz, ancak elbette sizin için en uygun seçeneği seçebilirsiniz.

Kullanıcı Arayüzü aracılığıyla Dil Eşlemeyi ayarlamak için şu adımları izleyin:

  1. Proje Ayarları’nı açın ve Dışa Aktar bölümüne doğru kaydırın.
  2. Projenizin hedef dillerine özel dil kodları eklemek için Dil Eşleme’ye tıklayın.

Yapılandırma dosyanızda Dil Eşlemeyi ayarlamak için language_mapping bölümünü aşağıda gösterildiği gibi dosya kümenize ekleyin.

Örnek yapılandırma:

"files": [
  {
    "source" : "/locale/en/**/*.po",
    "translation" : "/locale/%two_letters_code%/**/%original_file_name%",
    "languages_mapping" : {
      "two_letters_code" : {
        "uk" : "ukr",
        "pl" : "pol"
      }
    }
  }
]

Eşleme biçimi şöyledir: “crowdin_language_code” : “kullandığınız_kod”. Eşleme için kullanılabilecek Crowdin Enterprise dil kodlarının tam listesini gözden geçirin.

Çeviri Dosyasını Yeniden Adlandırma

Eğer dışa aktarmadan sonra bir dosyayı çevirilerle yeniden adlandırmanız gerekirse, bunu translation_replace parametresi yardımıyla kolayca yapabilirsiniz.

Örneğin, dosya “en_strings.po” olarak adlandırılmışsa “strings.po” olarak yeniden adlandırılabilir. Bunun için yapılandırma dosyasına (crowdin.yml) yeni bir parametre (translation parametresiyle aynı seviyede) ekleyin:

"files": [
  {
    "source": "/locale/**/en_*.po",
    "translation": "/locale/**/%two_letters_code%_%original_file_name%",
    "translation_replace": {
      "en_": ""
    }
  }
]

Bu durumda, yalnızca “_en” dosya adından silinecektir.

Dosyaları ve Dizinleri Yoksayma

Zaman zaman Crowdin’de çevirmeniz gerekmeyen dosyalar ve dizinler vardır. Bu gibi durumlarda, projenizdeki yapılandırma dosyasına yerel dosya başına kurallar eklenebilir.

"files": [
  {
    "source": "/**/*.properties",
    "translation": "/**/%file_name%_%two_letters_code%.%file_extension%",
    "ignore": [
      "/deneme/dosya.properties",
      "/ornek.properties"
    ]
  },
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "ignore": [
      "/locale/en/templates",
      "/locale/en/workflow"
    ]
  }
]

Çok Sütunlu Elektronik Tablo

Eğer bir CSV veya XLS/XLSX dosyası tüm hedef diller için çeviriler içeriyorsa, şemada uygun dil kodlarını belirtmelisiniz.

CSV dosyası örneği:

identifier,source_phrase,context,Ukrainian,Russian,Turkish tanım1,Kaynak 1,Bağlam 1,,, tanım2,Kaynak 2,Bağlam 2,,, tanım3,Kaynak 3,Bağlam 3,,,

Yapılandırma dosyası örneği:

"files": [
  {
    "source": "çoksütunlu.csv",
    "translation": "çoksütunlu.csv",
    "first_line_contains_header": true,
    "scheme": "identifier,source_phrase,context,uk,ru,tr"
  }
]

Eğer CSV veya XLS/XLSX dosyanız içe aktarmada atlanması gereken sütunlar içeriyorsa, şemadaki bu tür sütunlar için none kullanın, örneğin:

"scheme" : "identifier,source_phrase,context,uk,none,ru,none,tr"

Şema Sabitleri

CSV veya XLS/XLSX dosyanız için şemayı oluşturmak amacıyla aşağıdaki sabitleri kullanın:

identifier – Column contains string identifiers.
source_phrase – Column contains source strings.
source_or_translation – Column contains source strings, but the same column will be filled with translations when the file is exported. When uploading existing translations, the values from this column will be used as translations.
translation – Column contains translations.
context – Column contains comments or context information for the source strings.
max_length – Column contains max.length limit values for the translations of the strings.
labels – Column contains labels for the source strings.
none – Column that will be skipped on import.

Dizin Yapısını Sunucuya Kaydetme

"preserve_hierarchy": true

preserve_hierarchy seçeneğini kullanarak yapılandırma dosyası örneği:

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%"
  }
]

Varsayılan olarak, Crowdin içinde çeviri için hiçbir dosya içermeyen dizinler oluşturulmayacaktır. Örneğin:

- locale | |-- en | |-- foo.po |-- bar.po

Varsayılan olarak, proje dosyaları Crowdin içinde aşağıdaki gibi gösterilecektir:

- foo.po
- bar.po

preserve_hierarchy seçeneğini kullanarak, Crowdin’de dosya yapısı aşağıdaki gibi olacaktır:

- en | |-- foo.po |-- bar.po

Dosyaları Belirtilen Türle Belirtilen Yola Yükleme

Bu özellik, yml dosya bölümüne 2 isteğe bağlı parametre desteği ekler: dest ve type. Bu genellikle yüklenen adın farklı olmak zorunda olduğu yerlerdeki projeler için kullanılır, böylece Crowdin, türü doğru olarak algılayabilir. dest parametresi, Crowdin’de bir dosya adı belirtmenizi sağlar.

Not! dest parametresi sadece tek dosyalar için çalışır ve eğer kullanırsanız, yapılandırma dosyası true değerine sahip preserve_hierarchy parametresini de içermelidir.

Her iki parametre ile yapılandırma dosyası örneği:

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/conf/messages",
    "dest": "/messages.properties",
    "translation": "/conf/messages.%two_letters_code%",
    "type": "properties"
  },
  {
    "source": "/app/strings.xml",
    "dest": "/strings.xml",
    "translation": "/res/values-%android_code%/%original_file_name%",
    "type": "properties"
  }
]

Değişen Dizgileri Güncelleme

update_option parametresi isteğe bağlıdır. Eğer ayarlanmazsa, değiştirilen dizgilerin çevirileri kaybolacaktır. Yazım hataları düzeltmeleri ve kaynak dizgilerdeki küçük değişiklikler için yararlıdır.

Değere bağlı olarak, update_option seçeneği çevirileri korumak ve dosya güncelleme sırasında değiştirilen dizgilerini doğrulamalarını korumak/kaldırmak için kullanılır.

Değerler:

  • update_as_unapproved - değişen dizgilerin çevirilerini korur ve varsa bu çevirilerin doğrulamalarını kaldırır
  • update_without_changes - çevirileri ve değişen dizgilerin doğrulamalarını korur

update_option parametresine sahip yapılandırma dosyası örneği:

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/*.csv",
    "translation": "/%three_letters_code%/%file_name%.csv",
    "first_line_contains_header": true,
    "scheme": "identifier,source_phrase,translation,context",
    "update_option": "update_as_unapproved"
  },
  {
    "source": "/**/*.xlsx",
    "translation": "/%three_letters_code%/folder/%file_name%.xlsx",
    "update_option": "update_without_changes"
  }
]

Çevirileri Yükleme

upload translations komutu varolan çevirileri Crowdin’e yükler. Eğer herhangi bir seçenek belirtilmezse, yüklenen çeviriler kaynak dizgilerle eşit olsalar bile içe aktarılmayacak ve onaylanmayacaktır.

Değerler:

  • -l, --language=language_code - Crowdin’e yüklenmesi gereken dil çevirilerini tanımlar. Varsayılan olarak, çeviriler tüm projenin hedef dillerine yüklenir. (Crowdin Dil Kodları)
  • --[no-]import-eq-suggestions - Crowdin projesindeki kaynak dizgiye eşitse çevirinin eklenip eklenmeyeceğini tanımlar
  • --[no-]auto-approve-imported - yüklenen çevirileri otomatik olarak onaylar

Dışa Aktarma Seçenekleri

Her dosya grubu için tercih edilen dışa aktarma davranışını yapılandırmak amacıyla aşağıdaki dışa aktarma seçeneklerini kullanabilirsiniz:

skip_untranslated_strings – Only translated strings will be included in the exported translation files.
skip_untranslated_files – Only translated files will be included in the exported translation archive.
export_only_approved – Only texts that are both translated and approved will be included in the exported translation files.

Dışa aktarma seçenekleriyle yapılandırma dosyası örneği:

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "skip_untranslated_strings": true
  },
  {
    "source": "/locale/en/**/*.json",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "skip_untranslated_files": true
  },
  {
    "source": "/locale/en/**/*.yml",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "export_only_approved": true
  }
]
Not: Dışa aktarma seçenekleri sadece CLI ile çalışır.

XML Dosyaları için Ek Seçenekler

translate_content
isteğe bağlı
bool Etiketlerin içinde yer alan metinlerin çevrilip çevrilmeyeceğini tanımlar.
Kabul edilebilir değerler: 0 veya 1. Varsayılan 1.
translate_attributes
isteğe bağlı
bool Etiketlerin özniteliklerinin çevrilip çevrilmeyeceğini tanımlar.
Kabul edilebilir değerler: 0 veya 1. Varsayılan 1.
content_segmentation
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
isteğe bağlı
dizilim Bu, XPaths olan yerdeki her öğenin DOM öğesine aktarılması gereken dizgilerin bir dizilimidir.
Örnek yol: /düğüme/giden/yol veya /özniteliğe/giden/yol[@attr]
Not! Eğer tanımlanırsa, içe aktarılırken translate_content ve translate_attributes parametreleri dikkate alınmaz.

Ek parametreler ile yapılandırma dosyası örneği:

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/app/sample1.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translate_attributes": 1,
    "translate_content": 0
  },
  {
    "source": "/app/sample2.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translatable_elements": [
      "/content/text",                      # translatable texts are stored in 'text' nodes of parent node 'content'
      "/content/text[@value]"               # translatable texts are stored in 'value' attribute of 'text' nodes
    ]
  }
]

.properties Dosya Biçimi için Atlatma Tırnağı Seçenekleri

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. Dosya başına escape_quotes seçeneğini ekleyebilirsiniz. Kabul edilebilir değerler: 0, 1, 2, 3. Varsayılan 3.

Değerler:

  • 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

Özel karakterleri atlatın
Dışa aktarılan çevirilerde herhangi bir özel karakterin (=, :, ! ve #) ters eğik çizgi tarafından atlatılması gerekip gerekmediğini tanımlar. Dosya başına escape_special_characters seçeneğini ekleyebilirsiniz.

Kabul edilebilir değerler: 0, 1. Varsayılan 1.

  • 0 - özel karakterleri atlatma
  • 1 - ters eğik çizgi ile özel karakterleri atlat

Yapılandırma dosyası örneği:

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/en/strings.properties",
    "translation": "/%two_letters_code%/%original_file_name%",
    "escape_quotes": 1,
    "translate_content": 0,
    "escape_special_characters": 0
  }
]

Örnek Yapılandırmalar

CSV dosyalarını API yoluyla Yükleme

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/*.csv",
    "translation": "/%two_letters_code%/%original_file_name%",
    # Specifies whether first line should be imported or it contains columns headers
    "first_line_contains_header": true,
    # used only when uploading CSV file to define data columns mapping
    "scheme": "identifier,source_phrase,translation,context,max_length"
  }
]

GetText Projesi

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files" : [
  {
    "source" : "/locale/en/**/*.po",
    "translation" : "/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%",
    "languages_mapping" : {
      "two_letters_code" : {
        "zh-CN" : "zh_CH",
        "fr-QC": "fr"
      }
    }
  }
]

Android Projesi

"project_id": "projectId"                     #open project and go to Resources > Integrations & API > Integration tool
"api_token": "personal-access-token"          #open project and go to Resources > Integrations & API > Integration tool
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files" : [
  {
    "source" : "/res/values/*.xml",
    "translation" : "/res/values-%android_code%/%original_file_name%",
    "languages_mapping" : {
      "android_code" : {
        "de" : "de",
        "ru" : "ru"
      }
    }
  }
]

VCS Bütünleştirmeleri için Yapılandırma Dosyası

VCS bütünleştirmeleri, CLI aracıyla aynı yapılandırma dosyasını gerektirir, yani aynı yapı desteklenir. Tek fark, proje kimlik bilgilerinin güvenlik nedeniyle dosya üstbilgisinde saklanmaması gerektiğidir. Ayrıca, iki ek parametre kullanılabilir.

VCS Bütünleştirmeleri için İşleme İletisi Parametresi

Her çeviri işlendiğinde varsayılan ileti “Yeni çeviriler {fileName} ({languageName})” olarak gösterilir. Git etiketleri eklemek için commit_message parametresini kullanabilirsiniz (örn. yapımları atlamak için).

Örnek:

"base_path": "/proje-temel-yolu"
"commit_message": "[ci skip]"

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Varsayılan işleme iletisini değiştirmek için append_commit_message parametresini false değeriyle kullanın. Buna göre uygun dosya adı ve dil değişkenlerini kullanmak için isteğe bağlı iki yer tutucuyu da ekleyebilirsiniz: %original_file_name% ve %language%.

Örnek:

"commit_message": "Düzeltme: Crowdin’den yeni çeviriler %original_file_name%"
"append_commit_message": false

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

VCS Bütünleştirmeleri için Dilleri Dışa Aktarma Parametresi

Varsayılan olarak, tüm diller dışa aktarılır. Eğer bazı belirli dilleri dışa aktarmanız gerekiyorsa, bunları belirtmek için export_languages​​ parametresini kullanın.

Örnek:

"base_path": "/proje-temel-yolu"
"export_languages": [                                   
    "ru", 
    "uk", 
    "tr"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Kaynak Dizgilere Etiketleri Ekleme

Kaynak dizgilere varolan veya yeni etiketler eklemek için labels parametresini kullanın. Labels will be added to the source strings only during the initial upload to the Crowdin Enterprise project.

The strings uploaded to the Crowdin Enterprise project before the use of the labels parameter won’t be labeled. If you remove the label added during the initial upload directly in Crowdin Enterprise, it won’t be re-added on the next syncs.

Etiket adları, “,” dışında herhangi bir karakter içerebilir.

Örnek:

"base_path": "/proje-temel-yolu"

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%",
    "labels" : [
      "android",
      "emails"
    ]
  }
]

Read more about Labels.

VCS Bütünleştirmeleri ve CLI için Tek Yapılandırma Dosyası Kullanma

Bir proje için VCS bütünleştirmesi ve CLI kullanmanın gerekli olduğu durumlar vardır. Çoğunlukla, bu tür bir durumda, VCS bütünleştirmesi için bir CLI için başka bir tane olmak üzere iki ayrı yapılandırma dosyasına sahip olmanız gerekir. Ancak, her iki durumda da tek bir yapılandırma dosyası kullanma olasılığı vardır.

VCS bütünleştirme yapılandırma dosyası, CLI için gerekli olan project_id ve api_token kimlik bilgilerini içermediğinden, şu parametreleri kullanarak bunları doğrudan komutta iletebilirsiniz: -i/--project-id, -T/--token. Alternatively, you may use environment variables for this purpose.

Sonuç olarak, CLI aracılığıyla çevirileri indirme komutunuz aşağıdaki gibi görünecek:

$ crowdin download -i {your-project-id} -T {your-token}

Yardım Arama

Crowdin CLI ile çalışırken yardıma mı ihtiyacınız var ya da herhangi bir sorunuz mu var? Destek Ekibine Ulaşın.

Bu makale yararlı oldu mu?