Yapılandırma Dosyası

Giriş

Crowdin CLI yönetmek için kaynakların bir açıklamasını içeren bir yapılandırma dosyası kullanır: Crowdin içine yüklenecek dosyalar ve ilgili çevirilerin yerleri.

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": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"preserve_hierarchy": true
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.crowdin.com

"files": [
  {
    "source": "/locale/en/klasör1/[0-2].txt",                                       #kaynak dosyalar süzgeci
    "translation": "/locale/%two_letters_code%/klasör1/%original_file_name%"        #çevirilerin saklandığı yer
  },
  {
    "source": "/locale/en/klasör2/[0-2].txt",
    "translation": "/locale/%two_letters_code%/klasör2/%original_file_name%"
  }
]

Yukarıdaki yapılandırma dosyasını çalıştırmak ve Crowdin’e kaynak dosyaları yüklemek için:

$ crowdin upload sources

Çevirileri Crowdin’den alın ve bunları doğru yerlere koyun:

$ 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_PROJE_KİMLİĞİ"      # Düşük öncelikli
"api_token_env": "CROWDIN_KİŞİSEL_BELİRTECİ"   # Düşük öncelikli
"base_path_env": "CROWDIN_TEMEL_YOLU"        # Düşük öncelikli
"base_url_env": "CROWDIN_TEMEL_URL"         # Düşük öncelikli
"project_id": "proje-kimliği"                   # Yüksek öncelikli
"api_token": "kişisel-erişim-belirteci"        # Yüksek öncelikli
"base_path": "/proje-temel-yolu"           # Yüksek öncelikli
"base_url": "https://api.crowdin.com"           # Yüksek öncelikli

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, iki 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ından gelen API kimlik bilgileri, proje dizininden gelen 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), 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 ç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
%original_file_name% Orijinal dosya adı
%original_path% Sonuçta oluşan pakette dosya yolunu oluşturmak için Crowdin projesindeki ana klasörlerin adlarını alır
%file_extension% Orijinal dosya uzantısı
%file_name% Uzantısız dosya adı
%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)
%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ı
%osx_locale% Çeviri kaynaklarını adlandırmak için kullanılan OS X yerel ayarı (örn., uk, zh-Hans, zh_HK)

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, 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. Ayrıca %android_code%, %locale% vb. gibi diğer yer tutucuları için dil kodlarını geçersiz kılabilirsiniz.

Projenizde değişiklik yapmadan Crowdin ile çalışmasını sağlamak için kullanıcı arayüzü aracılığıyla Dil Eşleme’yi ayarlayabilirsiniz.

Ç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, dosyanın adı “strings_en.po” ise, “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/**/%orijinal_dosya_adı%_%iki_harf_kodu%",
    "translation_replace": {
      "_en": ""
    }
  }
]

Bu durumda, “_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"
    ]
  }
]

Kaynak Dosyalar İçin Hedef Dilleri Hariç Tutma

Varsayılan olarak, kaynak dosyalar projenin tüm hedef dillerine çeviri için kullanılabilir. Eğer bazı kaynak dosyaların belirli hedef dillere çevrilmemesi gerekiyorsa, bunları excluded_target_languages​​ parametresinin yardımıyla hariç tutabilirsiniz.

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

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

Çok Dilli 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 ident1,Source 1,Context 1,,, ident2,Source 2,Context 2,,, ident3,Source 3,Context 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 – Sütun, dizgi tanımlayıcıları içerir.
source_phrase – Sütun, kaynak dizgileri içerir.
source_or_translation – Sütun, kaynak dizgileri içerir, ancak dosya dışa aktarıldığında aynı sütun çevirilerle doldurulur. Varolan çevirileri yüklerken, bu sütundaki değerler çeviri olarak kullanılacaktır.
translation – Sütun çevirileri içerir.
context – Sütun, kaynak dizgiler için yorumları veya bağlam bilgilerini içerir.
max_length – Sütun, dizgilerin çevirileri için en fazla uzunluk sınırı değerlerini içerir.
labels – Sütun, kaynak dizgiler için etiketleri içerir.
none – İçe aktarma sırasında atlanacak sütun.

Dizin Yapısını Sunucuya Kaydetme

"preserve_hierarchy": true

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

"project_id": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.crowdin.com
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%"
  }
]
Not: VCS bütünleştirmeleri için hiyerarşiyi koru seçeneğinin varsayılan değeri true’dur.

Diyelim ki makinenizdeki dosya/klasör yapısı şöyle görünüyor:

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

Eğer yapılandırma dosyanızda "preserve_hierarchy": true seçeneğini hiç kullanmazsanız veya false değeriyle birlikte kullanırsanız, paylaşılan tüm dizinler atlanacak ve Crowdin’deki dosya yapısı aşağıdaki gibi temsil edilecektir:

- foo.po
- bar.po
Not: VCS bütünleştirmeleri için "preserve_hierarchy": false seçeneği, sadece kaynak dosyalarınızın paylaşılan bir kök dizini varsa çalışır.

"preserve_hierarchy": true seçeneğini kullanarak, Crowdin’deki dosya yapısı aşağıdaki gibi temsil edilecektir:

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

Çeviri için herhangi bir dosya içermeyen dizinler Crowdin’’e oluşturulmayacaktır (yani, yukarıdaki örnekte emails dizini olarak).

Dosyaları Belirtilen Türle Belirtilen Yola Yükleme

Bu özellik, yml dosya bölümüne iki 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. Aynı anda birden çok dosya için çalışır ve şu yer tutucuları destekler: %original_file_name%, %original_path%, %file_extension%, %file_name%.

Not! Eğer dest parametresini kullanırsanız, yapılandırma dosyası true değeri ile <1>preserve_hierarchy parametresini içermelidir.

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

"project_id": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.crowdin.com
"preserve_hierarchy": true

"files": [
  {
    "source": "/conf/**/*.txt",
    "dest": "/conf/**/%file_name%.properties",
    "translation": "/conf/**/%two_letters_code%/%file_name%.properties",
    "type": "properties"
  },
  {
    "source": "/app/*.txt",
    "dest": "/app/%file_name%.xml",
    "translation": "/res/values-%android_code%/%original_file_name%",
    "type": "android"
  },
  {
    "source": "/conf/**/*.txt",
    "dest": "/%original_path%/%file_name%.properties",
    "translation": "/conf/**/%two_letters_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": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.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%/klasör/%file_name%.xlsx",
    "update_option": "update_without_changes"
  }
]

Özel Bölümlemeye Sahip Dosyaları Yükleme

XML, HTML, MD veya anahtar-değer yapısı olmayan diğer kaynak dosyalarınızı kendi bölümleme kurallarınızla yükleyin. Eğer belirtilmezse, otomatik içerik bölümlemesi için ön tanımlı bölümleme kuralları (SRX 2.0) kullanılır.

Özel bölümlemeye sahip yapılandırma dosyası örneği:

"project_id": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.crowdin.com

"files": [
  {
    "source": "/emails/ornek1.html",
    "translation": "/emails/%locale%/%original_file_name%",
    "custom_segmentation": "/rules/ornek.srx.xml"
  }
]

Çevirileri Yükleme

upload translations komutu varolan çevirileri Crowdin’e yükler. Eğer herhangi bir seçenek belirtilmezse, yüklenen çeviriler kaynak dizgilere 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

İçe Aktarma Seçenekleri

XML Dosyalarını İçe Aktarma Seçenekleri

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’dir. Varsayılan 1.
translate_attributes
isteğe bağlı
bool Etiketlerin özniteliklerinin çevrilip çevrilmeyeceğini tanımlar.
Kabul edilebilir değerler 0 veya 1’dir. Varsayılan 1.
content_segmentation
isteğe bağlı
bool Uzun metinlerin daha küçük metin bölümlerine bölünüp bölünmeyeceğini tanımlar.
Kabul edilebilir değerler 0 veya 1’dir. Varsayılan 1.
Not: İçerik bölümlemesi etkinleştirildiğinde, çeviri yükleme bir deneysel makine öğrenme teknolojisi tarafından ele alınır.
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": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.crowdin.com

"files": [
  {
    "source": "/app/örnek1.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translate_attributes": 1,
    "translate_content": 0
  },
  {
    "source": "/app/ornek2.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translatable_elements": [
      "/content/text",                      #çevrilebilir metinler 'content' ana düğümünün 'text' düğümlerinde saklanır
      "/content/text[@value]"               # çevrilebilir metinler 'text' düğümlerinin 'value' özniteliğinde saklanır
    ]
  }
]

Diğer Dosyaları İçe Aktarma Seçenekleri

content_segmentation
isteğe bağlı
bool Uzun metinlerin daha küçük metin bölümlerine bölünüp bölünmeyeceğini tanımlar. Sadece TXT, DOCX, DITA, IDML, MIF, MEDIAWIKI, HTML, Front Matter HTML, Markdown, Front Matter Markdown, XML, XLIFF, XLIFF 2.0 için
Kabul edilebilir değerler 0 veya 1’dir. Varsayılan 1.
Not: İçerik bölümlemesi etkinleştirildiğinde, çeviri yükleme bir deneysel makine öğrenme teknolojisi tarafından ele alınır.

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

"project_id": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.crowdin.com

"files": [
  {
    "source": "/emails/ornek1.html",
    "translation": "/emails/%locale%/%original_file_name%",
    "content_segmentation": 1
  }
]

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 – Dışa aktarılan çeviri dosyalarına sadece çevrilmiş dizgiler dahil edilecektir.
skip_untranslated_files – Dışa aktarılan çeviri arşivine sadece çevrilmiş dosyalar dahil edilecektir.
export_only_approved – Dışa aktarılan çeviri dosyalarına sadece hem çevrilmiş hem de onaylanmış metinler dahil edilecektir.

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

"project_id": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.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.

.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’tür. 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’dir. Varsayılan 1.

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

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

"project_id": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.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ı yükleme

"project_id": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.crowdin.com

"files": [
  {
    "source": "/*.csv",
    "translation": "/%two_letters_code%/%original_file_name%",
    # İlk satırın içe aktarılması gerekip gerekmediğini veya sütun başlıkları içerdiğini belirtir
    "first_line_contains_header": true,
    # sadece veri sütunları eşlemesini tanımlamak için CSV dosyası yüklenirken kullanılır
    "scheme": "identifier,source_phrase,translation,context,max_length"
  }
]

GetText Projesi

"project_id": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.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": "proje-kimliği"
"api_token": "kişisel-erişim-belirteci"
"base_path": "/proje-temel-yolu"
"base_url": "https://api.crowdin.com"         # Crowdin Enterprise için https://{kuruluş-adı}.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 bilgilerini güvenlik nedeniyle dosya başlığında saklamamanızdır. Ayrıca, birkaç ek parametre kullanabilirsiniz.

VCS Bütünleştirmeleri için Çekme İsteği Başlığı ve Etiketleri

Varsayılan çekme isteği başlığı Yeni Crowdin güncellemeleri’dir. Özel çekme isteği başlığınızı belirlemek ve çekme isteğine etiketler eklemek için şu parametreleri yapılandırma dosyasında kullanabilirsiniz: pull_request_title, pull_request_labels.

Not: Çekme isteği etiketleri Bitbucket bütünleştirmesi tarafından desteklenmez.

Örnek:

"base_path": "/proje-temel-yolu"
"pull_request_title": "Özel Çİ başlığı"
"pull_request_labels": [
  "crowdin",
  "l10n"
]

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

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%"
  }
]

VCS Bütünleştirmeleri için Çekme İsteği Atanan Parametresi

Eğer belli kullanıcılara bir çekme isteği atamanız gerekirse, bunları belirtmek için pull_request_assignees parametresini kullanın.

Not: Çekme isteği atanan parametresi, Bitbucket, Bitbucket Sunucusu ve Azure Repos bütünleştirmeleri tarafından desteklenmez.

GitHub/GitHub Sunucusu

Örnek:

"base_path": "/proje-temel-yolu"
"pull_request_assignees": [                                   
    "oturumaçma1", 
    "oturumaçma2"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

GitLab/GitLab Kendi Kendini Yöneten

Örnek:

"base_path": "/proje-temel-yolu"
"pull_request_assignees": [                                   
    "kullanıcı_kimliği1", # sayısal kimlik
    "kullanıcı_kimliği2"  # sayısal kimlik
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

VCS Bütünleştirmeleri için Çekme İsteği İnceleyici Parametresi

Eğer belli kullanıcılardan bir çekme isteği incelemesi istemeniz gerekirse, bunları belirtmek için pull_request_reviewers parametresini kullanın.

GitHub/GitHub Sunucusu

Örnek:

"base_path": "/proje-temel-yolu"
"pull_request_reviewers": [                                   
    "oturumaçma1", 
    "oturumaçma2"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

GitLab/GitLab Kendi Kendini Yöneten

Örnek:

"base_path": "/proje-temel-yolu"
"pull_request_reviewers": [                                   
    "kullanıcı_kimliği1", # sayısal kimlik
    "kullanıcı_kimliği2"  # sayısal kimlik
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Bitbucket

Örnek:

"base_path": "/proje-temel-yolu"
"pull_request_reviewers": [                                   
    "uuid1", # kullanıcı uuid
    "uuid2"  # kullanıcı uuid
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Bitbucket Sunucusu

Örnek:

"base_path": "/proje-temel-yolu"
"pull_request_reviewers": [                                   
    "kullanıcıadı1", 
    "kullanıcıadı2"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]
  • Azure Repos

Örnek:

"base_path": "/proje-temel-yolu"
"pull_request_reviewers": [                                   
    "guid1", # kullanıcı kimliği
    "guid2"  # kullanıcı kimliği
  ]
"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. Etiketler, sadece Crowdin projesine ilk yükleme sırasında kaynak dizgilere eklenecektir.

labels parametresi kullanılmadan önce Crowdin projesine yüklenen dizgiler etiketlenmeyecektir. Eğer doğrudan Crowdin’de ilk yükleme sırasında eklenen etiketi kaldırırsanız, sonraki eşitlemelerde yeniden eklenmeyecektir.

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"
    ]
  }
]

Etiketler hakkında daha fazlasını okuyun.

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ı kullanabilirsiniz.

VCS bütünleştirme yapılandırma dosyası, CLI için gereken project_id ve api_token kimlik bilgilerini içermediğinden, şu parametreleri kullanarak bunları doğrudan komutta iletebilirsiniz: -i/--project-id, -T/--token. Alternatif olarak, bu amaçla ortam değişkenlerini kullanabilirsiniz.

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.

Ayrıca Bakınız

Bu makale yararlı oldu mu?