Sürekli yerelleştirme

Çevirinizin gelişimi yakından izleyen hazır bir altyapı vardır. Böylece çevirmenler, yayın öncesinde büyük miktarda yeni metinler üzerinde çalışmak yerine, tüm zaman boyunca çeviriler üzerinde çalışabilirler.

Ayrıca bakınız

Integrating with Weblate geliştirme çalışmalarınızı Weblate ile bütünleştirmenin temel yollarını açıklar.

Süreç şu şekildedir:

  1. Geliştiriciler değişiklikler yapar ve bunları sürüm denetimi sistemi deposuna gönderir.

  2. İsteğe bağlı olarak çeviri dosyaları güncellenir (dosya biçimine bağlıdır, bilgi almak için: Why does Weblate still show old translation strings when I’ve updated the template?).

  3. Weblate, sürüm denetimi sistemi deposundan değişiklikleri çeker, bilgi almak için: Depoları güncellemek.

  4. Weblate çevirilerdeki değişiklikleri algıladığında, çevirmenleri abonelik ayarlarına göre bilgilendirir.

  5. Çevirmenler Weblate arayüzünü kullanarak çevirleri yapar ya da çevrimdışı yaptıkları değişiklikleri yükler.

  6. Çevirmenlerin çalışması tamamlandıktan sonra, Weblate değişiklikleri yerel depoya gönderir (bilgi almak için: Lazy commit işlemeleri) ve bunu yapma izni varsa bunları geri iter (bilgi almak için: Weblate üzerindeki değişiklikleri itmek).

digraph translations { graph [fontname = "sans-serif", fontsize=10]; node [fontname = "sans-serif", fontsize=10, margin=0.1, height=0]; edge [fontname = "sans-serif", fontsize=10]; "Developers" [shape=box, fillcolor="#144d3f", fontcolor=white, style=filled]; "Translators" [shape=box, fillcolor="#144d3f", fontcolor=white, style=filled]; "Developers" -> "VCS repository" [label=" 1. Push "]; "VCS repository" -> "VCS repository" [label=" 2. Updating translations ", style=dotted]; "VCS repository" -> "Weblate" [label=" 3. Pull "]; "Weblate" -> "Translators" [label=" 4. Notification "]; "Translators" -> "Weblate" [label=" 5. Translate "]; "Weblate" -> "VCS repository" [label=" 6. Push "]; }

Depoları güncellemek

Arka uç depolarını kaynaklarından güncellemek için bir yöntem ayarlamalısınız.

Weblate depoyu her güncellediğinde, güncelleme sonrası eklentileri tetiklenir. Bilgi almak için: Eklentiler.

Birleştirme çakışmalarından kaçınmak

Aynı dosya hem Weblate üzerinde hem de Weblate dışında değiştirildiğinde Weblate üzerinden gelen birleştirmelerde çakışmalar ortaya çıkar. Bu sorunu çözmek için kullanılabilecek iki yaklaşım vardır. Weblate dışındaki düzenlemelerden kaçınmak ya da güncelleme sürecinizi Weblate ile bütünleştirmek. Böylece Weblate dışındaki dosyalar güncellenmeden önce değişiklikler temizlenir.

Tek dilli dosyalar için ilk yaklaşım kolaydır. Weblate üzerinde yeni dizgeler ekleyebilir ve dosyaların tüm düzenleme işlemlerini orada yapabilirsiniz. İki dilli dosyalar için, kaynak kodundan çevrilebilir dosyalar oluşturmak için genellikle bir tür ileti ayıklama işlemi vardır. Bazı durumlarda bu işlem iki bölüme ayrılabilir. Birinci adım ayıklama kalıbını oluşturur (örneğin gettext POT xgettext kullanılarak oluşturulur) ve ikinci adım onu gerçek çevirilerle birleştirir (gettext PO dosyaları msgmerge kullanılarak güncellenir). İkinci adımı Weblate içinde yapabilirsiniz ve bu işlemden önce bekleyen tüm değişikliklerin katıldığına emin olabilirsiniz.

İkinci yaklaşım, Weblate REST API uygulaması ile Weblate uygulamasını bekleyen tüm değişiklikleri itmek ve kendi tarafınızda değişiklikler yaparken çeviriyi kilitlemek yoluyla uygulanabilir.

Güncelleme betiği şunun gibi görünebilir:

# Lock Weblate translation
wlc lock
# Push changes from Weblate to upstream repository
wlc push
# Pull changes from upstream repository to your local copy
git pull
# Update translation files, this example is for Django
./manage.py makemessages --keep-pot -a
git commit -m 'Locale updates' -- locale
# Push changes to upstream repository
git push
# Tell Weblate to pull changes (not needed if Weblate follows your repo
# automatically)
wlc pull
# Unlock translations
wlc unlock

Aynı depoyu paylaşan birden fazla bileşeniniz varsa hepsini ayrı ayrı kilitlemeniz gerekir:

wlc lock foo/bar
wlc lock foo/baz
wlc lock foo/baj

Not

Örnekte, uzaktan Weblate yönetimi için yapılandırmaya (API anahtarları) gerek duyan Weblate istemcisi kullanılır. Bunu wlc yerine curl gibi herhangi bir HTTP istemcisini kullanarak da yapabilirsiniz. Bilgi almak için: Weblate REST API uygulaması.

Ayrıca bakınız

Weblate istemcisi

GitHub değişikliklerini kendiliğinden almak

Weblate doğal GitHub desteği ile gelir.

Hosted Weblate kullanıyorsanız, Weblate uygulaması kurmanız önerilir. Böylece çok fazla şeyi ayarlamanız gerekmeden doğru kurulumu elde edersiniz. Değişiklikleri geri itmek için de kullanılabilir.

GitHub deposuna yapılan her itmede bildirim almak için, depo ayarlarına (Webhooks) aşağıdaki görseldeki gibi Weblate web kancasını ekleyin:

../_images/github-settings.png

Yük adresi olarak, Weblate adresinizin sonuna “/hooks/github/” ekleyin. Örneğin Hosted Weblate hizmeti için “https://hosted.weblate.org/hooks/github/” kullanabilirsiniz.

Diğer ayarları varsayılan değerlerinde bırakabilirsiniz (Weblate her iki içerik türünü de işleyebilir ve yalnızca push işlemine gerek duyar).

Bitbucket değişikliklerini kendiliğinden almak

Weblate, Bitbucket web kancalarını destekler. Weblate kurulumunuza hedef olarak /hooks/bitbucket/ adresiyle depo itme işlemi sırasında tetiklenecek bir web kancası ekleyin (https://hosted.weblate.org/hooks/bitbucket/ gibi).

../_images/bitbucket-settings.png

GitLab değişikliklerini kendiliğinden almak

Weblate, GitLab kancalarını destekler. Weblate kurulumunuza hedef olarak /hooks/gitlab/ adresiyle hedefi bir proje web kancası ekleyin (``https://hosted.weblate.org/hooks/gitlab/``gibi).

Pagure değişikliklerini kendiliğinden almak

3.3 sürümünde geldi.

Weblate, Pagure kancalarını destekler. Weblate kurulumunuza hedef olarak /hooks/pagure/ web kancasını ekleyin (https://hosted.weblate.org/hooks/pagure/ gibi). Bu işlem, Proje ayarları bölümündeki Web kancaları kullanılsın seçeneği ile yapılabilir:

../_images/pagure-webhook.png

Azure Repos değişikliklerini kendiliğinden almak

3.8 sürümünde geldi.

Weblate, Azure Repos kancalarını destekler. Weblate kurulumunuza İtilecek kod işlemi için hedef olarak /hooks/azure/ web kancasını ekleyin (https://hosted.weblate.org/hooks/azure/ gibi). Bu işlem, Proje ayarları bölümündeki Hizmet kancaları seçeneği ile yapılabilir.

Gitea depoları değişikliklerini kendiliğinden almak

3.9 sürümünde geldi.

Weblate, Gitea kancalarını destekler. Weblate kurulumunuza İtme işlemleri içinden Gitea web kancası işlemi için hedef olarak /hooks/gitea/ web kancasını ekleyin (https://hosted.weblate.org/hooks/gitea/ gibi). Bu işlem, Ayarlar bölümündeki Web kancaları seçeneği ile yapılabilir.

Gitee depoları değişikliklerini kendiliğinden almak

3.9 sürümünde geldi.

Weblate, Gitee kancalarını destekler. Weblate kurulumunuza İtme işlemi için hedef olarak /hooks/gitee/ web kancasını ekleyin (https://hosted.weblate.org/hooks/gitee/ gibi). Bu işlem, Yönetim bölümündeki Web kancaları seçeneği ile yapılabilir.

Depoları her gece kendiliğinden güncellemek

Weblate, daha sonra değişiklik birleştirme başarımını artırmak için her gece uzak depoları kendiliğinden alır. İsteğe bağlı olarak, AUTO_UPDATE seçeneğini etkinleştirerek bunu gecelik birleştirmeler yapmaya da dönüştürebilirsiniz.

Weblate üzerindeki değişiklikleri itmek

Her çeviri bileşeni için ayrı bir itme adresi ayarlanabilir (bilgi almak için Depo itme adresi) ve bu durumda Weblate, değişikliği uzak depoya itebilir. Weblate, değişiklikleri her işlemede otomatik olarak gönderecek şekilde de yapılandırılabilir (varsayılan davranış, bilgi almak için: İşleme ile itme). Değişikliklerin kendiliğinden itilmesini istemiyorsanız, bunu el ile Depo bakımı bölümünden ya da wlc push API seçeneğini kullanarak yapabilirsiniz.

İtme seçenekleri, kullanılan Sürüm denetimi bütünleştirmesi değerine göre farklılık gösterir. Ayrıntılı bilgileri bu bölümden alabilirsiniz.

İtme işleminin doğrudan Weblate tarafından yapılmasını istemiyorsanız, GitHub çekme istekleri, GitLab birleştirme istekleri, Gitea çekme isteği, Pagure birleştirme istekleri çekme istekleri ya da Gerrit onayları desteklenmektedir. Bunları Bileşen yapılandırması içindeki Sürüm denetimi sistemi bölümünden GitHub, GitLab, Gitea, Gerrit ya da Pagure olarak seçerek etkinleştirebilirsiniz.

Genel olarak, Git, GitHub ve GitLab ile şu seçenekler kullanılabilir:

İstenilen kurulum

Sürüm denetimi sistemi

Depo itme adresi

İtme işleminin yapılacağı dal

İtme yok

Git

empty

empty

Doğrudan itme

Git

SSH adresi

empty

Ayrı bir dala it

Git

SSH adresi

Dal adı

GitHub dalından çekme isteği

GitHub çekme istekleri

empty

empty

GitHub dalına itme isteği

GitHub çekme istekleri

SSH URL [1]

Dal adı

GitLab dalından birleştirme isteği

GitLab birleştirme istekleri

empty

empty

GitLab dalından birleştirme isteği

GitLab birleştirme istekleri

SSH URL [1]

Dal adı

Gitea çatalından birleştirme isteği

Gitea çekme isteği

empty

empty

Gitea dalından birleştirme isteği

Gitea çekme isteği

SSH URL [1]

Dal adı

Pagure çatalından birleştirme isteği

Pagure birleştirme istekleri

empty

empty

Pagure dalından birleştirme isteği

Pagure birleştirme istekleri

SSH URL [1]

Dal adı

Not

Weblate işledikten sonra değişikliklerin kendiliğinden gönderilmesini de etkinleştirebilirsiniz. Bu işlem İşleme ile itme içinden yapılabilir.

Ayrıca bakınız

SSH anahtarlarını ayarlamak için Depolara erişmek ve değişikliklerin Weblate tarafından ne zaman işleneceğine karar verildiği ile ilgili bilgi almak için :ref:’lazy-commit’ bölümlerine bakabilirsiniz.

Korunmuş dallar

Weblate ile korumalı dal kullanıyorsanız, çekme isteklerini kullanacak ve çeviriler üzerinde gerçek gözden geçirme yapacak bir yapılandırma ayarlayabilirsiniz (bilmediğiniz diller için sorunlu olabilecek şeyler). Alternatif olarak, Weblate itme kullanıcısı için bu sınırlamayı kaldırabilirsiniz.

Örneğin bu işlem GitHub üzerinde, depo yapılandırmasında ayarlanabilir:

../_images/github-protected.png

Diğerleri ile etkileşim

Weblate, API uygulaması -başkalarıyla etkileşim kurmayı kolaylaştırır.

Ayrıca bakınız

Weblate REST API uygulaması

Lazy commit işlemeleri

Weblate, olabiliyorsa aynı yazardan gelen işlemeleri tek bir işleme olarak gruplandıracak biçimde davranır. Böylece, işleme sayısı büyük ölçüde azaltılır. Bununla birlikte, sürüm denetimi sistemi deposunu eşitlemek isterseniz bunu açıkça belirtmeniz gerekir. Örneğin birleştirme için (varsayılan olarak Yöneticiler’`grubu için izin verilir, bilgi almak için: :ref:`privileges).

Bu kipteki değişiklikler, aşağıdaki koşullardan herhangi biri yerine getirildiğinde işlenir:

  • Başka biri zaten değiştirilmiş bir dizgeyi değiştirdiğinde.

  • Yukarı akıştan bir birleştirme gerçekleştirildiğinde.

  • Açık bir işleme isteği yapıldığında.

  • Bir dosyanın indirilmesi istendiğinde.

  • Değişiklik, Bileşen yapılandırması üzerinde İşlenecek değişikliklerin yaşı olarak tanımlanmış dönemden daha eski olduğunda.

İpucu

Gönderimler her bileşen için ayrı oluşturulur. Bu nedenle, birçok bileşeniniz varsa, gene çok sayıda gönderim görürsünüz. Bu durumda Git işlemelerini bir araya toplar eklentisini kullanabilirsiniz.

If you want to commit changes more frequently and without checking of age, you can schedule a regular task to perform a commit. This can be done using Periodic Tasks in Django yönetim arayüzü. First create desired Interval (for example 120 seconds). Then add new periodic task and choose weblate.trans.tasks.commit_pending as Task with {"hours": 0} as Keyword Arguments and desired interval.

Betikleri kullanarak depo işlemleri yapmak

Weblate ile depo arasındaki etkileşim Eklentiler ile özelleştirilebilir. Eklentiler ile dış betiklerin nasıl yürütüleceği hakkında ayrıntılı bilgi almak için Eklentiden betikleri çalıştırma bölümüne bakabilirsiniz.

Bileşenler arasında çevirilerin tutarlığını sağlamak

Birden çok çeviri bileşeniniz olduğunda, aynı dizgelerin çevirilerinin de aynı olduğundan emin olmak isteyebilirsiniz. Bu tutarlılık birkaç düzeyde sağlanabilir.

Çevirilerin yayılmasını sağlamak

Çevirilerin yayılmasını sağlamak seçeneği etkinken (varsayılan değer nedir, bilgi almak için: Bileşen yapılandırması), tüm yeni çeviriler dizgeleri eşleşen tüm bileşenlerde kendiliğinden yapılır. Bu tür çevirilerin kredisi, tüm bileşenlerde çeviri yapan geçerli kullanıcıya verilir.

Not

Çeviri yayılması için, anahtarın tek dilli çeviri biçimleriyle eşleşmesi gerekir. Çeviri anahtarlarını oluştururken bunu aklınızda bulundurun.

Tutarlılık denetimi

Dizgeler farklı olduğunda Tutarsız denetimi tetiklenir. Bu tür farklılıkları el ile incelemek ve doğru çeviriyi seçmek için bunu kullanabilirsiniz.

Kendiliğinden çeviri

Farklı bileşenleri temel alan kendiliğinden çeviri, çevirileri bileşenler arasında eşitlemenin bir yöntemi olabilir. El ile tetikleyebilir (bilgi almak için: Kendiliğinden çeviri) veya eklentiyi kullanarak depo güncellemelerinde kendiliğinden çalışmasını sağlayabilirsiniz (bilgi almak için: Kendiliğinden çeviri).