[ English | 日本語 | English (United Kingdom) | 한국어 (대한민국) | русский | 中文 (简体, 中国) | Deutsch | Indonesia | Türkçe (Türkiye) ]

Araçlar

Bu sayfa i18n etkinlikleriyle ilgili çeşitli işlemleri kapsar.

Zanata CLI

OpenStack çeviri platformu olarak Zanata kullanır. Çeviri platformu etrafındaki çoğu işlem otomatik olsa da, çeviri platformuyla kendiniz iletişime geçmek isterseniz, Zanata CLI kullanabilirsiniz.

Kullanıcı yapılandırması

Kullanıcıya özel yapılandırmayı içeren bir $HOME/.config/zanata.ini yapılandırma dosyası oluşturmalısınız. Yapılandırma dosyası oluşturmayla ilgili bilgi için, bkz Zanata CLI yapılandırması.

Proje yapılandırması

Çeviri platformuyla iletişime geçmek için, ilgilendiğiniz projenin en üst dizininde zanata.xml isimli bir proje yapılandırma dosyasu hazırlamanız gerekir. OpenStack projeleri git depolarında zanata.xml dosyası içermezler, yani elle oluşturmanız gerekir.

Aşağıda bir zanata.xml örneği bulabilirsiniz. Çoğu durumda düzenlemeniz gereken proje ve proje-sürümü alanlarıdır.

<config xmlns="http://zanata.org/namespace/config/">
  <url>https://translate.openstack.org/</url>
  <project>horizon</project>
  <project-version>master</project-version>
  <project-type>gettext</project-type>
  <src-dir>.</src-dir>
  <trans-dir>.</trans-dir>
  <rules>
    <rule pattern="**/*.pot">{path}/{locale_with_underscore}/LC_MESSAGES/{filename}.po</rule>
  </rules>
  <excludes>.tox/**</excludes>
</config>

Zanata’dan çevirileri çekin

Zanata’dan çevirileri indirmek için, proje dizinine gittikten sonra şuı komutu çalıştırın. Yalnızca bir kaç dille ilgileneceğinize göre --locales seçeneği faydalı olacaktır. Daha fazla bilgi için, zanata pull --help çıktısına göz atın.

$ zanata-cli pull --locales ja,ko-KR,zh-CN

Belgelendirme projelerini ele alma

Not

Bu openstack-manuals projesi hakkında yazılmıştır. Pike geliştirme döngüsünün sonu ile birlikte belgelendirme göçü topluk hareketi <https://specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration.html> bitmiş olur. Burada belgelendirilen süreç ilerde değişebilir.

OpenStack belgeleri RST biçimini kullanıyor. RST belgelerini dönüştürmek için adımlar şunlardır:

  • Dilimleme: RST belgelerinden PO şablonları üretin

  • Yükleme: Çeviri kaynaklarını Zanata’ya yükleyin

  • Çeviri: Çeviri hafızası ve sözlük yönetimi de dahil olmak üzere Zanata’da çevirileri yönetin

  • İndirme: Otomatik betikler aracılığıyla çeviri sonuçlarını indirin.

  • İnşa: Çeviri sonuçlarından ve RST belgelerden HTML inşa edin.

Sphinx RST kaynak dosyalarını POT ve HTML dahil çeşitli çıktı biçimlerine dönüştürmek için bir araçtır. Aşağıdaki adımları takip etmeden önce Sphinx kurmalısınız. Nerdeyse tüm projelerde gerekli Sphinx sürümünü bulmak için bakabileceğiniz bir test-requirements.txt dosyası bulunur.

$ pip install Sphinx

Ya da daha kolay bir yol şu olabilir:

$ pip install -r test-requirements.txt

Dilimleme

Sphinx-build kullanarak RST dosyalarını POT dosyalarına dönüştürüyoruz. Belge başına tek bir POT dosyası olmasını istediğimizden, bu POT’ları sphinx-build’in ardından msgcat ile birleştiriyoruz.

$ sphinx-build -b gettext doc/[docname]/source/ doc/[docname]/source/locale/
$ msgcat doc/[docname]/source/locale/*.pot > doc/[docname]/source/locale/[docname].pot

Yükleme

POT dosyasını çeviri platformuna yüklemek için Zanata CLI kullanıyoruz.

İndirme

Çeviri platformundan çevrilen PO dosyalarını indirmek için Zanata CLI kullanıyoruz.

İnşa etme

Sphinx-build kullanarak HTML dosyası inşa etmeden önce, çevirileri tek bir PO dosyasından daha küçük PO dosyalarına bölmeliyiz. Örneğin:

$ msgmerge -o doc/[docname]/source/locale/zh_CN/LC_MESSAGES/A.po \
    doc/[docname]/source/locale/zh_CN/LC_MESSAGES/[docname].po \
    doc/[docname]/source/locale/A.pot

Ardından, her bir PO dosyası için, MO dosyasına inşa etmek için şu komutu çalıştırmalıyız:

$ msgfmt doc/[docname]/source/locale/zh_CN/LC_MESSAGES/A.po \
   -o doc/[docname]/source/locale/zh_CN/LC_MESSAGES/A.mo

Son olarak, HTML dosyalarını şu şekilde üretebiliriz

$ sphinx-build -D "language='zh_CN' doc/[docname]/source/ \
    doc/[docname]/build/html

Python projelerinin ele alınması

Çoğu Python projesi için, i18n için tercih edilen araçlar gettext ve babel’dir. Gettext modülü Python modülleriniz ve uygulamalarınız için uluslararasılaştırma (I18N) ve yerelleştirme (L10N) servislerini sağlar. Babel Python uygulamalarını uluslararasılaştırmak için olan araçlar koleksiyonudur.

Çıkartma

Koddaki iletileri PO şablonuna (POT) pybabel ile çıkartabilirsiniz, burada PROJE nova gibi bir proje ismi, VERSION sürüm numarasıdır. Yalnızca POT dosya başlığında kullanıldığından, yalnızca yerelde kullanıyorsanız --project ve --version seçeneklerini kullanmasanız da olur.

$ pybabel extract \
    --add-comments Translators: \
    -k "_C:1c,2" -k "_P:1,2" \
    --project=${PROJECT} --version=${VERSION} \
    -o ${modulename}/locale/${modulename}.pot \
    ${modulename}

Örneğin, nova durumunda,

$ pybabel extract \
    --add-comments Translators: \
    -k "_C:1c,2" -k "_P:1,2" \
    --project=nova --version=${VERSION} \
    -o nova/locale/nova.pot nova/

Yükleme

OpenStack’deki her Python projesi için iletileri çıkartan, PO şablonu oluşturan ve Zanata’ya yükleyen, “commit” olayıyla tetiklenen bir otomasyon işi bulunur. Buraya bkz.

İndirme

OpenStack’deki her Python projesi için, PO dosyasındaki çevirileri her proje için kaynak dizinin altındaki “locale” dizinine indirecek gnlük bir otomasyon işi bulunur. Buraya bakınız. Bu Gerrit’de bir gözden geçirme isteği üretir. Gözden geçirmeden sonra, PO dosyasındaki çeviri birleştirilir.

Çevirilerin kullanılması

Python servis projelerinde çevrilen iletileri görüntülemek için, ileti kataloglarını derlemeniz ve ayrıca sunucu servislerinizi oslo.i18n belgesindeki yönergeleri takip edecek şekilde yapılandırmanız gerekir

Horizon projelerinin ele alınması

(Biraz katkı fena olmazdı.)

Proje bakımı

Not

Aşağıdaki betikler çeşitli python modüllerini gerektirir. Bu bağımlılıkları kurmak için pip install -e requirements.txt çalıştırın.

Daha uygun bir yol tox -e venv -- python <betik-ismi> şeklinde tox kullanmaktır.

tox hem PyPI hem çeşitli Linux dağıtımları üzerinde kullanılabilir. pip install tox veya apt-get install python-tox (Ubuntu için) tox kurar.

Çevirmen listesini Zanata ile eşzamanla

I18n projesi dil ekipleri ve üyelerinin bir listesini yönetir. Liste Stackalytics tarafından çeviri istatistiklerini toplamak için kullanılır (Ayrıntılar için bkz Stackalytics). Aynı zamanda aşağıdaki betikler tarafından da kullanılır.

Listenin dosya ismi tools/translation_team.yaml dır.

Bu liste Zanata’daki bilginin bir ön belleğidir, Zanata ile eşzamanlı tutmak isteriz.

Çeviri listesini eşlemek için, aşağıdaki komutu çalıştırın:

tox -e zanata-users-sync

Yukarıdaki şunu dahili olarak çalıştırır:

python tools/zanata/zanata_users.py --output-file tools/zanata/translation_team.yaml

Çeviri istatistiklerini al

i18n projesinde ATC durumu belirli bir dönemdeki çeviri istatistiklerine dayalıdır.

tools/zanata/zanata_stats.py betiği Zanata’dan çeviri istatistiklerinin alınmasında yardımcı olur.

Betiği çalıştırmak için:

tox -e venv -- python ./tools/zanata/zanata_stats.py <options>

--help seçeneği ayrıntılı kullanımı gösterir.

Zanata kullanıcı bilgisini çıkart

Şu an, i18n PTL i18n projesinin ATC listesini her yayın döngüsünün sonunda elle yönetmek durumundadır. Bu da her bir çevirmenin ismini ve e-posta adresini gerektirir.

tools/zanata/zanata_userinfo.py betiği bu işe yardım eder. Zanata API ile etkileşime geçerek çevirmenlerin kullanıcı adı ve e-posta adreslerini içeren bir YAML dosyasını (örn., translation_team.yaml) okuyup bir CSV dosyası üretir.

Not

Bu betik Zanata yönetici yetkisi gerektirir.