Weblate

Weblate, 165 üzerinde ülkede 2500 üzerinde özgür proje ve kuruluş tarafından kullanılan bir özgür yazılım ve internet temelli sürekli yerelleştirme sistemidir.

Kurun ya da weblate.org adresindeki Hosted Weblate hizmetini kullanın.

Web sitesi Çeviri durumu CII iyi örnekler REUSE durumu https://img.shields.io/pypi/v/weblate.svg https://readthedocs.org/projects/weblate/badge/ Lisans

Destek#

Weblate, isteğe bağlı olarak profesyonel destek ve bulut barındırma seçenekleri sunan özgür bir yazılımdır. Bilgi almak için https://weblate.org/hosting/ adresine bakabilirsiniz.

Belgeler#

Kaynak kodlarındaki docs klasöründe bulunabilir ya da https://docs.weblate.org/ adresinden çevrim içi olarak görüntülenebilir

Kurulum#

Kurulum yönergeleri:

https://docs.weblate.org/en/latest/admin/install.html

Hatalar#

Lütfen özellik isteklerinizi ve sorunları şuraya bildirin:

https://github.com/WeblateOrg/weblate/issues

Canlı sohbet#

Libera.Chat IRC ağındaki #weblate kanalında Weblate hakkında canlı sohbet edilebilir. Bu kanala https://web.libera.chat/#weblate adresinden ya da bilgisayarınızda kurulu bir IRC istemcisi üzerinden erişebilirsiniz.

Lisans#

Telif Hakkı © Michal Čihař michal@cihar.com

Bu yazılım özgürdür: Yeniden dağıtabilir ve/veya Özgür Yazılım Vakfı tarafından yayınlanan GNU Genel Kamu Lisansı koşulları altında, lisansın 3. sürümü ya da (seçiminize göre) daha sonraki bir sürümü koşullarına uygun olarak değiştirebilirsiniz.

Bu yazılım, yararlı olacağı umuduyla dağıtılır. Ancak HERHANGİ BİR GARANTİ VERİLMEZ; TİCARETE UYGUNLUK VEYA BELİRLİ BİR AMACA UYGUNLUK GARANTİSİ VERİLMEZ. Ayrıntılı bilgi almak için GNU Genel Kamu Lisansı koşullarına bakabilirsiniz.

Weblate temelleri#

Proje ve bileşen yapısı#

Weblate üzerinde çeviriler, projeler ve bileşenler olarak düzenlenir. Bir projede çok sayıda bileşen bulunabilir ve bunlar ayrı dillerin çevirilerini içerebilir. Bileşen çevrilebilir bir dosyaya karşılık gelir GNU gettext ya da Android dizge kaynakları). Projeler, bileşeni mantıksal kümeler halinde düzenlemenize yardımcı olmak için düşünülmüştür (tek bir uygulamada kullanılan tüm çevirileri gruplamak gibi).

İçeride, her projenin varsayılan olarak içindeki diğer bileşenlere yayılan ortak dizge çevirileri vardır. Bu özellik, yinelenen ve çok sürümlü çeviri yükünü hafifletir. Çevirilerin farklılaşması durumunda Bileşen yapılandırması için Çevirilerin yayılmasını sağlamak seçeneği kullanılarak çevirilerin yayılması devre dışı bırakılabilir.

Ayrıca bakınız

Weblate ile bütünleştirmek

Hesap açmak ve kullanıcı profili#

Hesap açılışı#

Varsayılan olarak herkes projelere göz atabilir, çevirileri görüntüleyebilir ya da çeviri önerisinde bulunabilir. Yalnızca kayıtlı kullanıcıların değişiklikleri gerçekten kaydetmesine izin verilir ve çevirmen olarak yapılan her çevirinin hesabı tutulur.

Birkaç basit adımı izleyerek hesap açabilirsiniz:

  1. Hesap açma formunu kimlik doğrulama bilgilerinizle doldurun.

  2. Size gönderilen e-postadaki bağlantıyı izleyerek hesabınızı etkinleştirin.

  3. İsteğe bağlı olarak, hangi dilleri bildiğinizi seçmek için profilinizi ayarlayın.

Pano#

Oturum açtığınızda, proje ve bileşen özetinin yanında ilgili çevirlerdeki ilerlemeleri görürsünüz.

Varsayılan olarak, izlediğiniz projelerin bileşenleri görüntülenir ve çeviri dilleriniz seçilir.

İpucu

Gezinme sekmelerini kullanarak farklı görünümlere geçebilirsiniz.

_images/dashboard-dropdown.png

Menüde şu seçenekler bulunur:

  • Ana menüdeki Projeler > Tüm projelere göz at Weblate kopyasındaki tüm projenin çeviri durumunu görüntüler.

  • Ana menüden bir dil seçtiğinizde Diller, tüm projelerin çeviri durumunu, birincil dillerinizden birine göre süzülmüş olarak görüntüler.

  • İzlenen çeviriler panoda yalnızca izlemekte olduğunuz projelerin çeviri durumunu, birincil dillerinize göre süzülmüş olarak görüntüler.

Ek olarak, açılır menüde herhangi bir sayıda bileşen listesi , Weblate yöneticisi tarafından önceden yapılandırılmış proje bileşenleri kümelerini de görüntüleyebilir. Bilgi almak için: :ref:`componentlists’.

Kişisel varsayılan pano görünümünüzü, kullanıcı profili ayarlarınızın Ayarlar bölümünden yapılandırabilirsiniz.

Not

Weblate, settings.py dosyasında :settings:`SINGLE_PROJECT` seçeneği ile tek bir proje için yapılandırıldığında (bilgi almak için: Yapılandırma), kullanıcı tek bir projeye veya bileşene yönlendirileceğinden pano görüntülenmez.

Kullanıcı profili#

Kullanıcı profiline, üst menünün sağ üst köşesindeki kullanıcı simgenize ve ardından menüden Ayarlar seçeneğine tıklayarak erişebilirsiniz.

Kullanıcı profilinizde ayarlarınız bulunur. Sürüm denetimi sistemi işlemelerinde adınız ve e-posta adresiniz kullanılır. Bu nedenle bu bilgilerin doğru olmasını sağlayın.

Not

Tüm dil seçimlerinde yalnızca şu anda çevirisi yapılan diller sunulur.

İpucu

Çevirmek istediğiniz diğer dilleri kullanılabilir kılmak için düğmeye tıklayarak dil isteğinde bulunan ya da ekleyin.

Diller#

Arayüz dili#

Kullanıcı arayüzünün görüntülenmesini istediğiniz dili seçin.

Çevrilen diller#

Hangi dilleri çevirmeyi yeğlediğinizi seçin. Bunlar izlenen projelerin ana sayfasında görüntülenir. Böylece bu dillerdeki çevirilere daha kolay erişebilirsiniz.

_images/your-translations.png

İkincil diller#

Çeviri sırasında size rehber olarak görüntülenecek ikincil dilleri belirtebilirsiniz. Aşağıdaki görselde, İbranice dilinin ikincil dil olarak kullanılma örneğini görebilirsiniz:

_images/secondary-language.png

Ayarlar#

Tema#

Weblate temasını, sistem temasını izleyecek şekilde seçin ya da el ile koyu ya da açık olarak belirtin.

Varsayılan pano görünümü#

Ayarlar sekmesinde, var olan hangi pano görünümümün varsayılan olarak görüntüleneceğini seçebilirsiniz. Bileşen listesi görünümünü seçerseniz, Varsayılan bileşen listesi açılır menüsünden hangi bileşen listesinin görüntüleneceğini seçmeniz gerekir.

Ayrıca bakınız

Bileşen listeleri

Özel karakterler#

Sanal klavye içine eklenecek ek özel karakterler.

Bildirimler#

Bildirimler sekmesinden abone olabileceğiniz bildirimleri seçebilirsiniz. İzlenen veya yönetilen projeler için seçtiğiniz bildirimler size e-posta ile gönderilir.

Bazı bildirimler yalnızca dillerinizdeki olaylar için gönderilir (çevrilecek yeni dizgeler olduğunda gibi), bazıları ise bileşen düzeyinde gönderilir (birleştirme hataları gibi). Bu iki bildirim grubu, ayarlarda görsel olarak ayrılmıştır.

İzlenen projeler ve yönetilen projeler için bildirimleri açıp kapatabilirsiniz. Her bir proje veya bileşen için başka ince ayarlar da yapılabilir (ya da sessize alınabilir). Bileşen özeti sayfasını açın ve İzleme menüsünden uygun seçeneği seçin.

Katkıda bulunan projeler kendiliğinden izlensin seçeneği etkinleştirilmişse, bir çeviri yaptığınız dizgelerin bulunduğu projeleri kendiliğinden izlemeye başlarsınız. Varsayılan değer DEFAULT_AUTO_WATCH seçeneğine bağlıdır.

Not

Kendi işlemleriniz için bildirim almazsınız.

İpucu

Bildirim gönderimi sınırlıdır. Günde 1000 taneden fazla e-posta almazsınız. Bunu aşan bildirimler gönderilmez.

_images/profile-subscriptions.png

Hesap#

Hesap sekmesi, temel hesap bilgilerini ayarlamanızı, Weblate üzerinde oturum açmak için çeşitli hizmetleri bağlamanızı, hesabınızı tümüyle silmenizi ya da kullanıcı verilerinizi indirmenizi sağlar (bilgi almak için: Weblate kullanıcı verilerini dışa aktarma).

Not

Hizmetlerin listesi Weblate yapılandırmanıza bağlıdır. Ancak GitLab, GitHub, Google, Facebook veya Bitbucket ya da diğer OAuth 2.0 hizmeti sağlayıcıları gibi yaygın kullanılan siteleri içerecek şekilde yapılabilir.

_images/authentication.png

Profil#

Bu sayfadaki tüm alanlar isteğe bağlıdır ve istediğiniz zaman silinebilir. Bu bilgileri yazarak, bu verileri kullanıcı profilinizin göründüğü her yerde paylaşmamıza izin vermiş olursunuz.

Sürüm denetimi işlemelerinde hesap e-posta adresiniz yerine özel işleme e-posta adresi kullanılır. Gerçek e-posta adresinizin sızmasını önlemek için bunu kullanın. Farklı e-posta adresi kullanmanın diğer sunucularda yaptığınız katkıların ilişkilendirilmesini engelleyebileceğini unutmayın (örneğin, katkılarınız artık GitHub profilinizle ilişkilendirilmez). Özel e-posta site genelinde, PRIVATE_COMMIT_EMAIL_OPT_IN seçeneği kullanılarak açılabilir.

Avatar her kullanıcı için görüntülenebilir (ENABLE_AVATARS seçeneğine bağlı olarak). Bu görseller https://gravatar.com/ üzerinden alınır.

Lisanslar#

API erişimi#

API erişim kodunuzu buradan alabilir ya da sıfırlayabilirsiniz.

Denetim günlüğü#

Denetim günlüğü, hesabınızla yapılan işlemlerin kaydını tutar. Hesabınızla ilgili her önemli işlem için IP adresini ve kullanılan tarayıcıyı kaydeder. Kritik işlemler ayrıca birincil e-posta adresine bir bildirim gönderilmesini tetikler.

Weblate kullanarak çeviri yapmak#

Weblate kullanarak çeviri yapmaya ilgi gösterdiğiniz için teşekkür ederiz. Projeler doğrudan çeviri yapılabilecek ya da hesabı olmayan kullanıcılar tarafından yapılan önerileri kabul edecek şekilde ayarlanabilir.

Genel olarak, iki çeviri kipi vardır:

  • Proje doğrudan çevirileri kabul eder

  • Proje yalnızca belirli bir oy sayısına ulaşıldığında kendiliğinden onaylanan önerileri kabul eder

Çeviri iş akışı hakkında ayrıntılı bilgi almak için Çeviri iş akışları bölümüne bakabilirsiniz.

Çeviri projesi görünürlüğü seçenekleri:

  • Herkes tarafından görülebilir

  • Yalnızca belirli bir çevirmen grubu tarafından görülebilir

Çeviri projeleri#

Çeviri projeleri ilgili bileşenleri içerir. Aynı yazılım, kitap veya proje için kaynaklar.

_images/project-overview.png

Öneriler#

Not

Güncel izinler Weblate yapılandırmanıza bağlı olarak değişebilir.

Anonim kullanıcılar yalnızca (varsayılan olarak) öneride bulunabilir. Ayrıca, çeviriyle ilgili belirsizliğin ortaya çıktığı ve diğer çevirmenlerin bunu onaylayacağı durumlarda, oturum açmış kullanıcılar da öneride bulunabilir.

Öneriler, geçerli çeviriyle eşleşen yinelenmeleri ve önerileri kaldırmak için günlük olarak taranır.

Yorumlar#

Üç tür yorum yapılabilir: Çeviriler için, kaynak dizgeler için ve Kaynak onaylama kullanılsın seçeneği açıldığında kaynak dizge hataları için. Tartışmak istediğiniz konuya uygun türü seçin. Kaynak dizge yorumları, her durumda özgün dizge hakkında geri bildirim vermek için iyidir. Örneğin ifadenin düzeltilmesi ya da bağlam hakkında açıklama istenebilir.

Tüm yorumlarda Markdown söz dizimi kullanabilir ve @kullanıcı_adı yazarak diğer kullanıcıları anabilirsiniz.

Çeşitler#

Çeşitler, dizgenin farklı uzunluktaki çeşitlerini gruplandırmak için kullanılır. Böylece projenizin ön yüzünde ekran ya da pencere boyutuna bağlı olarak farklı dizgeler kullanılabilir.

Ayrıca bakınız

Dizge çeşitleri, Çeşitler

Etiketler#

Etiketler, yerelleştirme iş akışını daha da özelleştirmek üzere (örneğin dizge grupları tanımlamak için) bir projedeki dizgeleri sınıflamak için kullanılır.

Weblate tarafından şu etiketler kullanılır:

Kendiliğinden çevrilmiş

Dizge Kendiliğinden çeviri ile çevrilmiş.

Kaynağın onaylanması gerekli

Dizge Kaynak dizge onayları ile onaylanmak üzere imlenmiş.

Ayrıca bakınız

Dizge etiketleri

Çeviri#

Çeviri sayfasında, kaynak dizge ve çevirisi için bir düzenleme alanı gösterilir. Çevirinin çoğul olması durumunda, her biri çeviri yapılan dildeki çoğul biçim sayısı kadar açıklanmış ve etiketlenmiş kaynak dizge ve düzenleme alanı görüntülenir.

Tüm özel boşluk karakterlerinin altı kırmızı renkle çizilir ve gri simgelerle görüntülenir. Çevirmeni olası bir biçimlendirme sorununa karşı uyarmak için birden fazla boşluğun altı kırmızı renkle çizilir.

Bu sayfada, çoğu proje kaynak kodundan (bağlam, yorumlar ya da iletinin kullanıldığı yer gibi) gelen çeşitli ek bilgiler görüntülenebilir. Çevirmenlerin ayarlarından seçtikleri ikincil diller için çeviri alanları, kaynak dizgenin üstünde görüntülenir (bilgi almak için: İkincil diller).

Çevirmenler, çevirinin altında başkaları tarafından yapılmış, kabul edilecek (✓), değişikliklerle kabul edilecek (✏️) ya da silinmiş (🗑) önerileri görebilir.

Çoğul biçimler#

Sayıları hesaba katmak için biçim değiştiren sözcüklere çoğul denir. Her dilin kendi çoğul tanımı vardır. Örneğin İngilizce, bir biçim destekler. Örneğin “araba” tekil tanımında, dolaylı olarak bir arabayı çağrıştırır. Çoğul biçimde “arabalar” iki veya daha fazla arabayı (ya da bir ad olarak araba kavramını) çağrıştırır. Örneğin Çekçe ya da Arapça gibi dillerde daha fazla çoğul biçim vardır ve çoğul biçim kuralları farklıdır.

Weblate, bu biçimlerin her biri için, ilgili her bir dilde (her çoğul biçimi ayrı çevirebilen) tam destek sunar. Alanların sayısı ve çevrilmiş uygulamada ya da projede nasıl kullanıldığı, yapılandırılmış çoğul biçim formülüne bağlıdır. Weblate temel bilgileri gösterir. Unicode Konsorsiyumu tarafından yayınlanmış Dil çoğul kuralları içinde ayrıntılı bilgi bulabilirsiniz.

Ayrıca bakınız

Çoğul formülü

_images/plurals.png

Alternatif çeviriler#

4.13 sürümünde geldi.

Not

Şu anda bu özellik yalnızca Çok değerli CSV dosyası için destekleniyor.

Bazı biçimlerde, tek bir dizge için birden fazla çeviri bulunabilir. Araçlar menüsünü kullanarak daha fazla alternatif çeviri ekleyebilirsiniz. Boş alternatif çeviriler kaydedildikten sonra kendiliğinden kaldırılır.

Klavye kısayolları#

Çeviri sırasında şu klavye kısayolları kullanılabilir:

Klavye kısayolu

Açıklama

Alt+Home

Geçerli aramada ilk çeviriye gider.

Alt+End

Geçerli aramada son çeviriye gider.

Alt+PageUp ya da

Ctrl+ ya da

Alt+ ya da

Cmd+

Geçerli aramada önceki çeviriye gider.

Alt+PageDown ya da

Ctrl+ ya da

Alt+ ya da

Cmd+

Geçerli aramada sonraki çeviriye gider.

Ctrl+Enter ya da

Cmd+Enter

Geçerli formu gönderir. Bu seçenek, çeviriyi düzenlerken Kaydet ve ilerile düğmesine basmakla aynıdır.

Ctrl+Shift+Enter ya da

Cmd+Shift+Enter

Düzenlenmesi gerekli imini kaldırır ve çeviriyi gönderir.

Alt+Enter ya da

Option+Enter

Dizgeyi öneri olarak gönderir. Bu seçenek, çeviriyi düzenlerken Suggest düğmesine basmakla aynıdır.

Ctrl+E ya da

Cmd+E

İmleci çeviri alanına taşır.

Ctrl+U ya da

Cmd+U

İmleci yorum alanına taşır.

Ctrl+M ya da

Cmd+M

Kendiliğinden öneriler sekmesini görüntüler. Bilgi almak için: Kendiliğinden öneriler.

Ctrl+1 to Ctrl+9 ya da

Cmd+1 to Cmd+9

Kaynak dizgeden belirtilen numaralı yerleştirilebilir ögeyi kopyalar.

Ctrl+M ardından 1 ile 9 arası ya da

Cmd+M ardından 1 ile 9 arası

Belirtilen numaralı makine çevirisini geçerli çeviriye kopyalar.

Ctrl+I ardından 1 ile 9 arası ya da

Cmd+I ardından 1 ile 9 arası

Denetim hataları listesindeki bir ögeyi yok sayar.

Ctrl+J ya da

Cmd+J

Yakındaki dizgeler sekmesini görüntüler.

Ctrl+S ya da

Cmd+S

İmleci arama alanına taşır.

Ctrl+O ya da

Cmd+O

Kaynak dizgeyi kopyalar.

Ctrl+Y ya da

Cmd+Y

Düzenlenmesi gerekli imini değiştirir.

Sanal klavye#

Çeviri alanının hemen üstünde küçük bir görsel klavye satırı görüntülenir. Bu özellik, yerel noktalama işaretlerini (satır her dil için yerel olduğundan) ya da başka türlü yazılması zor karakterleri kullanmak için yararlı olabilir.

Görüntülenen simgeler üç gruba ayrılır:

  • Kullanıcı profili içinde kullanıcı tarafından yapılandırılmış Özel karakterler

  • Weblate tarafından sağlanan her dile özel karakterler (örneğin tırnak işaretleri ya da sağdan sola yazılan dillere özgü karakterler)

  • SPECIAL_CHARS kullanılarak yapılandırılmış karakterler

_images/visual-keyboard.png

Çeviri bağlamı#

Bu bağlamsal açıklama, geçerli dizge hakkında açıklayıcı bilgiler sağlar.

Dizge öznitelikleri

İleti kimliği, bağlam (msgctxt) ya da kaynak kodundaki konum gibi ögeler.

Ekran görüntüleri

Çevirmenleri dizgenin nerede ve nasıl kullanıldığı konusunda daha iyi bilgilendirmek için Weblate üzerine ekran görüntüleri yüklenebilir. Bilgi almak için: Dizgeler için görsel bağlam.

Yakındaki dizgeler

Çeviri dosyasındaki komşu iletileri görüntüler. Bunlar genellikle çevrilen dizgeye benzer bağlamda bulunur ve çevirinin tutarlı olmasında yararlıdır.

Diğer kullanımlar

Bir iletinin birden fazla yerde (örneğin birden fazla bileşende) kullanılması durumunda, bunların tutarsız olduğu algılanırsa, bu sekmede tümü görüntülenir (bilgi almak için: Tutarsız). Kullanılacak çeviriyi buradan seçebilirsiniz.

Çeviri belleği

Geçmişte çevrilmiş benzer dizgelere bakabilirsiniz. Bilgi almak için: Çeviri belleği.

Sözlük

Geçerli iletideki sözcüklerin proje sözlüğündeki karşılıklarını görüntüler.

Son değişiklikler

Weblate üzerinden yakın zamanda bu iletiyi değiştiren kişilerin listesi.

Proje

Çevirmenler için proje bilgileri ya da dizgenin projenin kullandığı sürüm denetimi sistemi deposundaki klasörü ya da bağlantısı.

Doğrudan bağlantılar istiyorsanız, çeviri biçimi bunu desteklemelidir.

Çeviri geçmişi#

Her değişiklik varsayılan olarak (bileşen ayarlarından kapatılmadığı sürece) veri tabanına kaydedilir ve geri alınabilir. İsteğe bağlı olarak, temel sürüm denetimi sistemindeki herhangi bir işlemi geri alabilirsiniz.

Çevrilmiş dizgenin uzunluğu#

Weblate, çevrilen dizgenin çok uzun olmamasını sağlamak için çevirinin uzunluğunu birkaç şekilde sınırlayabilir:

  • Çeviri için varsayılan sınırlama, kaynak dizgeden on kat daha uzun olmasıdır. Bu özellik, LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH seçeneği ile kapatılabilir. Bu sınırlamaya takılıyorsanız, yanlışlıkla iki dilli olarak ayarlanmış tek dilli bir çeviri kullanıyor olabilirsiniz ve Weblate gerçek kaynak dizgenin çeviri anahtarını yanlış anlıyor olabilir. Bilgi almak için İki dilli ve tek dilli biçimler.

  • Çeviri dosyasından ya da im ile tanımlanan en fazla karakter uzunluğu. Bilgi almak için: Çevirinin en fazla uzunluğu.

  • Piksel cinsinden, imler ile tanımlanan en fazla görüntülenme boyutu. Bilgi almak için: Çevirinin en fazla uzunluğu.

Kendiliğinden öneriler#

Yapılandırmaya ve çevrilen dilinize bağlı olarak, Weblate çeşitli makine çevirisi hizmetlerinden ve Çeviri belleği üzerinden öneriler sunar. Tüm makine çevirileri, her çeviri sayfasındaki tek bir sekmede görülebilir.

Ayrıca bakınız

Desteklenen araçların listesini Kendiliğinden önerileri yapılandırmak bölümünde bulabilirsiniz.

Kendiliğinden çeviri#

Dış kaynakları kullanarak çeviriyi başlatmak için kendiliğinden çeviri özelliğini kullanabilirsiniz. Bu araca Kendiliğinden çeviri adı verilmiştir ve bir bileşen ve dil seçtikten sonra Araçlar menüsünden erişilebilir:

_images/automatic-translation.png

İki şekilde işlem yapılabilir:

  • Çeviriler için diğer Weblate bileşenleri kaynak olarak kullanılabilir.

  • Belirli bir kalite eşiğinin üzerindeki çevirilerle seçilen makine çevirisi hizmetleri kullanılabilir.

Hangi dizgelerin kendiliğinden çevrileceğini de seçebilirsiniz.

Uyarı

Bu işlemin, Tüm dizgeler gibi geniş kapsamlı süzgeçlerle kullanıldığında var olan çevirilerin üzerine yazacağını unutmayın.

Farklı bileşenler arasında çeviriyi birleştirmek (uygulama ile site gibi) ya da var olan çevirileri (çeviri belleği) kullanarak yeni bir bileşen için çevirileri önceden hazırlamak gibi çeşitli durumlarda kullanışlıdır.

Kendiliğinden çevrilmiş etiketinin görüntülenmesi sorunu düzeltildi.

Hızı sınırlamak#

Arayüzün kötüye kullanılmasını önlemek için, arama yapma, iletişim formları gönderme ya da çeviri gibi çeşitli işlemlere hız sınırlaması uygulanır. Hız sınırlamasına takıldığınızda, işlemi yeniden yapabilmek için belirli bir süre beklemeniz gerekir.

Varsayılan sınırlar ve ince ayarlar yönetim rehberinde açıklanmıştır. Bilgi almak için: Hızı sınırlamak.

Arama ve değiştirme#

Terminolojiyi verimli şekilde değiştirin ya da Araçlar menüsündeki Arama ve değiştirme seçeneğini kullanarak dizgeleri toplu olarak düzeltin.

İpucu

Dizgeleri karıştırma konusunda endişelenmeyin. Bu işlem, asıl değişiklik onaylanmadan önce düzenlenen dizgelerin ön izlemesinin görüntülendiği iki adımda yapılır.

Toplu düzenleme#

Toplu düzenleme, belirli sayıda dizge üzerinde tek bir işlem yapılmasına izin verir. Dizgeleri arama ile tanımlarsınız ve eşleşen dizgelere uygulanacak bir değişiklik ayarlarsınız. Şu işlemleri yapabilirsiniz:

İpucu

Bu araca Toplu düzenleme adı verilmiştir ve her projenin, bileşenin ya da çevirinin Araçlar menüsünden erişilebilir.

Ayrıca bakınız

Toplu düzenleme eklentisi

Matris görünümü#

Farklı dilleri verimli bir şekilde karşılaştırmak için matris görünümünü kullanabilirsiniz. Her bileşen sayfasında Araçlar menüsü altından erişilebilir. Öncelikle karşılaştırmak istediğiniz tüm dilleri seçin ve seçiminizi onaylayın. Ardından hızlı bir şekilde açıp düzenlemek için herhangi bir çeviriye tıklayabilirsiniz.

Matris görünümü, farklı dillerdeki eksik çevirileri bulmak ve bunları tek bir görünümden hızlı bir şekilde eklemek için de çok iyi bir başlangıç noktasıdır.

Zen kipi#

Zen kipine, bir bileşeni çevirirken sağ üstteki Zen düğmesine tıklanarak geçilebilir. Çalışma görünümünü basitleştirerek kullanıcı arayüzündeki Yakındaki dizgeler ya da Sözlük gibi ek ögelerini kaldırır. Çeviri ve onaylama işlemlerinin hızlıca yapılmasını sağlar.

Zen düzenleyiciyi, Kullanıcı profili içindeki Ayarlar sekmesini kullanarak varsayılan düzenleyiciniz olarak ayarlayabilirsiniz. Kişisel tercihinize göre çevirileri Yukarıdan aşağıya ya da Yan yana görüntülenecek şekilde ayarlayabilirsiniz.

Çevirileri indirmek ve yüklemek#

Bir çevirinin dosyalarını dışa aktarabilir, değişiklikler yapabilir ve bunları yeniden içe aktarabilirsiniz. Böylece, çevrimdışı çalışabilir ve yapılan değişiklikleri var olan çeviriyle yeniden birleştirebilirsiniz. Bu yöntem, bu arada kaynak değiştirilmiş olsa bile işe yarar.

Not

Kullanılabilecek seçenekler access control ayarlarıyla sınırlı olabilir.

Çevirileri indirmek#

Çevrilebilecek dosyalar proje ya da bileşen panosundaki Dosyalar menüsünden indirilebilir.

İlk seçenek, dosyayı depoda bulunan özgün biçiminde indirmektir. Bu durumda, çeviride bekleyen değişiklikler işlenir ve güncel dosya herhangi bir dönüştürme yapılmadan oluşturulur.

Çeviriyi ayrıca, yaygın olarak kullanılan yerelleştirme biçimlerinden birine dönüştürülmüş olarak da indirebilirsiniz. Dönüştürülmüş dosyalar, ek bağlam, yorumlar veya imler gibi Weblate tarafından sağlanan verilerle zenginleştirilir. Dosyalarİndirmeyi özelleştir menüsünden çeşitli dosya biçimlerini seçebilirsiniz:

  • Gettext PO (po)

  • Gettext uzantılı XLIFF (xliff)

  • XLIFF 1.1 (xliff11)

  • TermBase eXchange (tbx)

  • Çeviri belleği takası (tmx)

  • Gettext MO (yalnızca çeviri Gettext PO kullanıyorsa kullanılabilir) (mo)

  • CSV (csv)

  • Excel Open XML (xlsx)

  • JSON (yalnızca tek dilli çeviriler için kullanılabilir) (json)

  • Android dizge kaynağı (yalnızca tek dilli çeviriler için kullanılabilir) (aresource)

  • iOS dizgeleri (yalnızca tek dilli çeviriler için kullanılabilir) (strings)

İpucu

Dönüştürülen dosyalarda bulunan içerik, dosya biçimi özelliklerine göre farklılık gösterir. Çeviri türü yetenekleri içinde özet bilgiler bulabilirsiniz.

_images/file-download.png

Çevirileri yüklemek#

Değişikliklerinizi yaptıktan sonra, Dosyalar menüsünden Çeviriyi yükle seçeneğini kullanın.

_images/file-upload.png

Desteklenen dosya biçimleri#

Desteklenen biçimdeki herhangi bir dosya karşıya yüklenebilir. Ancak yine de çeviri için kullanılan ile aynı dosya biçiminin kullanılması önerilir. Yoksa bazı özellikler düzgün çevrilemeyebilir.

İçe aktarma yöntemleri#

Çeviri dosyaları yüklenirken şu seçenekler sunulur:

Çeviri olarak eklensin (translate)

İçe aktarılan dizgeler, var olan dizgelere çeviri olarak eklenir. En yaygın kullanım örneği ve varsayılan davranış budur.

Yalnızca yüklenen dosyadaki çeviriler kullanılır ve ek içerikler kullanılmaz.

Öneri olarak eklensin (suggest)

İçe aktarılan dizgeler öneri olarak eklenir. Yüklenen dizgelerinizin onaylanmasını istediğinizde bunu kullanın.

Yalnızca yüklenen dosyadaki çeviriler kullanılır ve ek içerikler kullanılmaz.

Düzenlenmesi gerekli çeviri olarak eklensin (fuzzy)

İçe aktarılan dizgeler, düzenlenmesi gerekli çeviriler olarak eklenir. Bu seçenek, çevirilerin kullanılmasını ve aynı zamanda onaylanmasını istediğinizde yararlı olabilir.

Yalnızca yüklenen dosyadaki çeviriler kullanılır ve ek içerikler kullanılmaz.

Var olan çeviri dosyası değiştirilsin (replace)

Var olan dosya yeni içerikle değiştirilir. Bu seçenek var olan çevirilerin kaybına neden olabileceğinden dikkatli kullanın.

Kaynak dizgeler güncellensin (source)

İki dilli çeviri dosyasındaki kaynak dizgeleri günceller. Bu seçenek, PO dosyalarını POT ile eşleştirerek güncelleme (msgmerge) eklentisi gibi işler.

Bu seçenek yalnızca bazı dosya biçimleri için kullanılabilir.

Yeni dizgeler eklensin (add)

Çeviriye yalnızca yeni dizgeleri ekler. Var olan dizgeleri atlar.

Hem yeni dizgeleri eklemek hem de var olan çevirileri güncellemek istiyorsanız, dosyayı Çeviri olarak eklensin seçeneği ile ikinci kez yükleyin.

Bu seçenek yalnızca Dizge yönetimi seçeneği açıkken kullanılabilir.

Yüklenen dosyadan yalnızca kaynak, çeviri ve anahtar (bağlam) kullanılır.

Çakışmaları işlemek#

Yüklenen dizgelerden önceden çevrilmiş olanların nasıl işleneceğini belirler.

Düzenlenmesi gerekli dizgeler#

İçe aktarılan dosyadaki düzenlenmesi gereken dizgelerin nasıl işleneceği ile ilgili bir seçenek de vardır. Bu tür dizgeler şu üç yöntemden biriyle işlenebilir: İçe aktarılmasın, Düzenlenmesi gerekli olarak içe aktarılsın ya da Çevrilmiş olarak içe aktarılsın.

Sorumluluğu değiştirmek#

Yönetici izinleriyle, yüklenen dosyanın yazarını da belirtebilirsiniz. Dosyayı başka bir şekilde aldıysanız ve asıl yazarın çevirmen hesabını var olan çevirilerle birleştirmek isterseniz yararlı olabilir.

Sözlük#

Her projede, terminolojiyi tutmak için kolay erişilen bir veya daha fazla sözlük bulunabilir. Sözlük, çevirilerin tutarlılığının korunmasını kolaylaştırır.

Her dilin bağımsız olarak yönetilebilen bir sözlüğü vardır. Ancak proje yöneticilerinin ve farklı dillerdeki çevirmenlerin de diller arası tutarlılığı korumalarına yardımcı olan tek bir bileşen biçiminde tutulurlar. Çevrilmekte olan dizge içindeki sözcüklere karşılık gelen sözlük terimleri, çeviri düzenleyicisinin yan çubuğunda görüntülenir.

İpucu

Siz etkinleştirmediğiniz sürece kalite denetimlerinde sözlük terimleri kullanılmaz. Bilgi almak için Sözlük ile uyumlu değil.

Sözlükleri yönetmek#

4.5 sürümünde değişti: Sözlükler artık normal çeviri bileşenleridir ve yorum yapmak, uzak bir depoda tutmak veya açıklama eklemek gibi tüm Weblate özellikleri kullanılabilir.

Sözlük olarak kullanılsın seçeneğini açarak herhangi bir bileşeni sözlük olarak kullanabilirsiniz. Bir proje için birden çok sözlük oluşturabilirsiniz.

Belirli bir projen için boş bir sözlük, projeyle birlikte kendiliğinden oluşturulur. Sözlükler, aynı projenin tüm bileşenleri arasında ve isteğe bağlı olarak ilgili sözlük bileşeninden Projelerde paylaşım ile diğer projelerle paylaşılır.

Sözlük bileşeni, Weblate üzerindeki renkli etiket eklenmiş diğer bileşenlere benzer:

_images/glossary-component.png

Tüm sözlük terimlerine göz atın:

_images/glossary-browse.png

ya da bunları herhangi bir çeviri olarak düzenleyin.

Sözlük terimleri#

Sözlük terimleri, normal dizgelerle aynı şekilde çevrilir. Her terim için Araçlar menüsünü kullanarak ek özellikleri değiştirebilirsiniz.

_images/glossary-tools.png

Çevrilemez terimler#

4.5 sürümünde geldi.

Belirli sözlük terimi çevirilerini, toplu olarak düzenleyerek, imine yazarak ya da AraçlarÇevrilemez olarak imle seçeneğini kullanarak salt okunur olarak imlemek, çevrilemeyecekleri anlamına gelir. Bu seçeneği, diğer dillerde değiştirilmemesi gereken marka adları veya diğer terimler için kullanabilirsiniz. Salt okunur terimler sözlük yan çubuğunda görsel olarak vurgulanır.

Yasaklı çeviriler#

4.5 sürümünde geldi.

Belirli sözlük terimi çevirilerini, toplu olarak düzenleyerek, imine yazarak ya da AraçlarYasak çeviri olarak imle seçeneğini kullanarak yasak olarak imlemek, kullanılmayacakları anlamına gelir. Bu seçeneği, anlamı belirsiz ya da beklenmedik olan sözcükleri açıklığa kavuşturmak için kullanabilirsiniz.

Terminoloji#

4.5 sürümünde geldi.

Belirli sözlük terimlerini, toplu olarak düzenleyerek, imine yazarak ya da AraçlarTerminoloji olarak imle seçeneğini kullanarak terminoloji olarak imlemek, kayıtların tüm dillerdeki sözlüklere ekleneceği anlamına gelir. Bu seçeneği, tüm dillerde anlamının tutarlı olması ve iyi düşünülmesi gereken önemli terimler için kullanabilirsiniz.

Çeşitler#

Çeşitler, dizgeleri birlikte gruplandırmak için genel bir yol sağlar. Tüm terim çeşitleri, çeviri sırasında sözlük kenar çubuğunda listelenir.

İpucu

Bir terim için kısaltmalar ya da daha kısa ifadeler eklemek için bunu kullanabilirsiniz.

Ayrıca bakınız

Dizge çeşitleri

Denetimler ve düzeltmeler#

Kalite denetimleri, yaygın çevirmen hatalarını yakalamaya yardımcı olarak çevirinin iyi durumda olmasını sağlar. Yanlış pozitif sonuçlarda denetimler yok sayılabilir.

Denetimi başarısız olan bir çeviri gönderildikten hemen sonra kullanıcıya görüntülenir:

_images/checks.png

Kendiliğinden düzeltmeler#

Kalite denetimleri yanında, Weblate çevrilmiş dizgelerdeki bazı yaygın hataları kendiliğinden düzeltebilir. Hatalı çeviriler eklememesi için dikkatli kullanın.

Ayrıca bakınız

AUTOFIX_LIST

Sondaki üç nokta değiştirici#

Kaynak dizge ile tutarlı olması için sondaki üç ayrı noktayı (...) bir üç nokta karakteri () ile değiştirir.

Sıfır genişlikli boşluk kaldırma#

Çeviride genellikle sıfır genişlikli boşluklar istenmez. Bu düzeltme, kaynak dizgede de bulunmadığı sürece bunları kaldırır.

Denetim karakterlerini kaldırma#

Çevirideki tüm denetim karakterlerini kaldırır.

Devanagari danda#

Devanagari’deki yanlış cümle sonunu Devanagari danda () ile değiştirir.

Güvenli olmayan HTML temizleme#

“Güvenli html” imi ile açıldığında, HTML markup kodunu temizler.

Ayrıca bakınız

Güvenli olmayan HTML

Başta ve sonraki beyaz boşlukları düzeltme#

Başta ve sondaki boşlukları kaynak dizgeyle tutarlı hale getirir. Dizgenin işlenecek bölümlerini atlamak için ignore-begin-space ve ignore-end-space imleri ile ince ayar yapılabilir.

Kalite denetimleri#

Weblate, dizgeler üzerinde çok çeşitli kalite denetimleri yapar. Aşağıdaki bölümde bunlar daha ayrıntılı olarak açıklanmaktadır. Ayrıca dile özgü denetimler de vardır. Hatalı çalışan bir denetim varsa lütfen bir hata bildiriminde bulunun.

Çeviri denetimleri#

Her çeviri değişikliğinde yapılır ve çevirmenlerin çeviri kalitesini korumasına yardımcı olur.

BBCode kodlaması#

Özet:

Çevirideki BBCode kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.markup.BBCodeCheck

Belirteci denetle:

bbcode

Yok sayılacak im:

ignore-bbcode

BBCode, bir iletinin önemli bölümlerini koyu veya italik olarak vurgulamak gibi basit kod imlerini ele alır.

Bu denetim, kaynaktaki kod imlerinin çeviride de bulunmasını sağlar.

Not

BBCode algılama yöntemi şu anda oldukça basittir. Bu nedenle bu denetim yanlış pozitif sonuçlar verebilir.

Art arda yinelenen sözcükler var#

4.1 sürümünde geldi.

Özet:

Metinde aynı sözcük üst üste iki kez geçiyor:

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.duplicate.DuplicateCheck

Belirteci denetle:

duplicate

Yok sayılacak im:

ignore-duplicate

Bir çeviride ardışık yinelenen sözcüklerin olup olmadığını denetler. Bu durum genellikle çeviride bir hata olduğunu gösterir.

İpucu

Bu denetim, yanlış pozitif sonuçları önlemek için dile özgü kuralları kullanır. Sizin durumunuzda yanlış bir şekilde tetiklenirse, bize bildirin. Bilgi almak için: Weblate sorunlarını bildirmek.

Sözlük ile uyumlu değil#

4.5 sürümünde geldi.

Özet:

Çeviri, bir sözlükte tanımlanmış terimlerle uyumlu değil.

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.glossary.GlossaryCheck

Belirteci denetle:

check_glossary

Etkinleştirilecek im:

check-glossary

Yok sayılacak im:

ignore-check-glossary

Bu denetimin check-glossary imi ile açılması gerekir (bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek). Lütfen etkinleştirmeden önce şunları göz önüne alın:

  • Dizgenin çeviri ile tam olarak eşleşip eşlemediğine bakar. Sözlükte tüm çeşitlerdeki terimlerin bulunması beklenir.

  • Her dizgeyi sözlük ile karşılaştırarak denetlemek zorlayıcı olur. Weblate üzerinde dizgeleri içe aktarma ya da çevirme gibi denetimlerin çalıştırılması gereken tüm işlemleri yavaşlatır.

  • Ayrıca Çeviri değiştirilmemiş içinde çevrilemez sözlük terimlerini de değerlendirir.

Çift boşluk#

Özet:

Çeviride çift boşluk var

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.DoubleSpaceCheck

Belirteci denetle:

double_space

Yok sayılacak im:

ignore-double-space

Alanla ilgili diğer denetimlerde yanlış pozitif sonuçları önlemek için çeviride çift boşluk olup olmadığını denetler.

Kaynakta çift boşluk bulunduğunda bunun kasıtlı olduğu varsayılarak denetim yok sayılır.

Biçimlendirilmiş dizgeler#

Kaynak dizgelerdeki biçimlendirmenin çeviride de olup olmadığını denetler. Çeviride biçim dizgelerinin atlanması genellikle ciddi sorunlara neden olur. Bu nedenle dizgelerdeki biçimlendirme genellikle kaynakla aynı olmalıdır.

Weblate, biçim dizgelerinin çeşitli dillerde denetlenmesini destekler. Denetim, yalnızca bir dizge uygun şekilde imlenirse (C biçimi için c-format gibi) kendiliğinden etkinleştirilmez. Gettext bunu kendiliğinden ekler. Ancak büyük olasılıkla diğer dosya biçimleri için ya da PO dosyalarınız xgettext tarafından oluşturulmamışsa el ile eklemeniz gerekir.

Bu, her birim içinde (bilgi almak için Kaynak dizgeler ile ilgili ek bilgiler) ya da Bileşen yapılandırması içinde yapılabilir. Her bileşen için tanımlanması daha basittir. Bununla birlikte dizgenin bir biçimlendirme dizgesi olarak yorumlanmaması yanlış pozitif sonuçlara yol açabilir. Ancak biçim dizgesi söz dizimi kullanılır.

İpucu

Weblate üzerinde belirli bir biçim denetimi yoksa, genel Yer belirticiler seçeneğini kullanabilirsiniz.

Denetimin yanında, bu seçenek çeviri dizgelerine kolayca eklemek için biçimlendirme dizgelerini vurgular:

_images/format-highlight.png
AngularJS değer ekleme dizgesi#
Özet:

AngularJS değer ekleme dizgeleri kaynak ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.angularjs.AngularJSInterpolationCheck

Belirteci denetle:

angularjs_format

Etkinleştirilecek im:

angularjs-format

Yok sayılacak im:

ignore-angularjs-format

Adlandırılmış biçim dizgesi örneği:

Hesap bakiyeniz {{amount}} {{ currency }}

C biçimi#
Özet:

C biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.CFormatCheck

Belirteci denetle:

c_format

Etkinleştirilecek im:

c-format

Yok sayılacak im:

ignore-c-format

Basit biçim dizgesi örneği:

Sepette %d elma var

Konum biçim dizgesi örneği:

Hesap bakiyeniz %1$d %2$s

C# biçimi#
Özet:

C# biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.CSharpFormatCheck

Belirteci denetle:

c_sharp_format

Etkinleştirilecek im:

c-sharp-format

Yok sayılacak im:

ignore-c-sharp-format

Konum biçim dizgesi örneği:

Sepette {0} elma var

ECMAScript kalıbı sabitleri#
Özet:

ECMAScript kalıbı sabitleri kaynakla aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.ESTemplateLiteralsCheck

Belirteci denetle:

es_format

Etkinleştirilecek im:

es-format

Yok sayılacak im:

ignore-es-format

Değer ekleme örneği:

Sepette ${number} elma var

i18next değer eklemesi#

4.0 sürümünde geldi.

Özet:

I18next değer eklemesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.I18NextInterpolationCheck

Belirteci denetle:

i18next_interpolation

Etkinleştirilecek im:

i18next-interpolation

Yok sayılacak im:

ignore-i18next-interpolation

Değer ekleme örneği:

Sepette {{number}} elma var

İç içe geçme örneği:

Sepette $t(number) elma var

ICU MessageFormat#

4.9 sürümünde geldi.

Özet:

ICU MessageFormat dizgelerinde söz dizimi hataları ve/veya yer belirtici uyuşmazlıkları var.

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.icu.ICUMessageFormatCheck

Belirteci denetle:

icu_message_format

Etkinleştirilecek im:

icu-message-format

Yok sayılacak im:

ignore-icu-message-format

Değer ekleme örneği:

Sepette {number, plural, one {bir elma} other {# elma var}}.

Bu denetim, hem saf ICU MessageFormat iletilerini hem de basit XML kod imleri olan ICU biçimini destekler. XML desteğini seçerek ya da belirli alt denetimleri devre dışı bırakarak icu-flags:* seçeneği ile bu denetimin davranışını yapılandırabilirsiniz. Örneğin, aşağıdaki im çoğul alt iletilerin doğrulanmasını devre dışı bırakırken XML desteğini etkinleştirir:

icu-message-format, icu-flags:xml:-plural_selectors

xml

Basit XML kod imleri desteğini etkinleştirir. Varsayılan olarak, XML kod imleri gevşek bir şekilde işlenir. Bir kod iminin mantıklı bir parçası olmadığında başıboş < karakterleri yok sayılır.

strict-xml

Katı XML kod imleri desteğini etkinleştirir. Bir kod iminin parçası değillerse tüm < karakterlerinden kaçınılmalıdır.

-highlight

Düzenleyicide yer belirtici ögelerin vurgulanmasını kapatır.

-require_other

Alt iletilerde other seçicisi olması zorunluluğunu devre dışı bırakır.

-submessage_selectors

Alt ileti seçicilerin kaynakla eşleşip eşleşmediği denetimini atlar.

-types

Yer belirtici türlerinin kaynak ile uygunluğu denetimini atlar.

-extra

Kaynak dizgede bulunmayan bir yer belirticinin çeviride bulunma denetimini atlar.

-missing

Kaynak dizgede bulunan bir yer belirticinin çeviride bulunmama denetimini atlar.

Ayrıca, strict-xml etkinleştirilmemiş ancak xml etkinleştirilmiş olduğunda, tüm XML kod imlerinin belirli bir dizgeyle başlamasını zorunlu kılmak için icu-tag-prefix:PREFIX imini kullanabilirsiniz. Örneğin, aşağıdaki im, yalnızca <x: ile başlayan XML kod imlerinin eşleştirilmesini sağlar:

icu-message-format, icu-flags:xml, icu-tag-prefix:"x:"

Bu, <x:link>buraya tıklayın</x:link> ile eşleşir, ama <strong>bu</strong> ile eşleşmez.

Java biçimi#
Özet:

Java biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.JavaFormatCheck

Belirteci denetle:

java_printf_format

Etkinleştirilecek im:

java-printf-format

Yok sayılacak im:

ignore-java-printf-format

Basit biçim dizgesi örneği:

Sepette %d elma var

Konum biçim dizgesi örneği:

Hesap bakiyeniz %1$d %2$s

4.14 sürümünde değişti: Bu eskiden java-format imi ile değiştirilirdi. GNU gettext ile tutarlılık için değiştirildi.

Java MessageFormat#
Özet:

Java MessageFormat dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.JavaMessageFormatCheck

Belirteci denetle:

java_format

Koşulsuz olarak etkinleştirilecek im:

java-format

Kendiliğinden algılamayı etkinleştirecek im:

auto-java-messageformat, yalnızca kaynakta bir biçim dizgesi varsa denetimi etkinleştirir

Yok sayılacak im:

ignore-java-format

Konum biçim dizgesi örneği:

Sepette {0} elma var

4.14 sürümünde değişti: Bu eskiden java-messageformat imi ile değiştiriliyordu. GNU gettext ile tutarlılık için değiştirildi.

Bu denetim, biçim dizgesinin Java MessageFormat sınıfı için geçerli olduğunu doğrular. Yaylı parantezlerdeki biçim dizgelerini eşleştirmenin yanında, özel bir anlamı olduğu için tek tırnakları da doğrular. Tek tırnak ‘’’ şeklinde yazılmalıdır. Eşleştirilmediğinde, alıntılamanın başlangıcı olarak kabul edilir ve dizge işlenirken gösterilmez.

JavaScript biçimi#
Özet:

JavaScript biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.JavaScriptFormatCheck

Belirteci denetle:

javascript_format

Etkinleştirilecek im:

javascript-format

Yok sayılacak im:

ignore-javascript-format

Basit biçim dizgesi örneği:

Sepette %d elma var

Lua biçimi#
Özet:

Lua biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.LuaFormatCheck

Belirteci denetle:

lua_format

Etkinleştirilecek im:

lua-format

Yok sayılacak im:

ignore-lua-format

Basit biçim dizgesi örneği:

Sepette %d elma var

Object Pascal biçimi#
Özet:

Object Pascal biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.ObjectPascalFormatCheck

Belirteci denetle:

object_pascal_format

Etkinleştirilecek im:

object-pascal-format

Yok sayılacak im:

ignore-object-pascal-format

Basit biçim dizgesi örneği:

Sepette %d elma var

Yüzde yer belirticileri#

4.0 sürümünde geldi.

Özet:

Yüzde yer belirticileri kaynakla aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.PercentPlaceholdersCheck

Belirteci denetle:

percent_placeholders

Etkinleştirilecek im:

percent-placeholders

Yok sayılacak im:

ignore-percent-placeholders

Basit biçim dizgesi örneği:

Burada %number% elma var

Ayrıca bakınız

Biçimlendirilmiş dizgeler,

Perl biçimi#
Özet:

Perl biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.PerlFormatCheck

Belirteci denetle:

perl_format

Etkinleştirilecek im:

perl-format

Yok sayılacak im:

ignore-perl-format

Basit biçim dizgesi örneği:

Sepette %d elma var

Konum biçim dizgesi örneği:

Hesap bakiyeniz %1$d %2$s

PHP biçimi#
Özet:

PHP biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.PHPFormatCheck

Belirteci denetle:

php_format

Etkinleştirilecek im:

php-format

Yok sayılacak im:

ignore-php-format

Basit biçim dizgesi örneği:

Sepette %d elma var

Konum biçim dizgesi örneği:

Hesap bakiyeniz %1$d %2$s

Python parantez biçimi#
Özet:

Python ayracı biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.PythonBraceFormatCheck

Belirteci denetle:

python_brace_format

Etkinleştirilecek im:

python-brace-format

Yok sayılacak im:

ignore-python-brace-format

Basit biçim dizgesi:

Burada {} elma var

Adlandırılmış biçim dizgesi örneği:

Hesabınızda {amount} {currency} var

Python biçimi#
Özet:

Python biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.PythonFormatCheck

Belirteci denetle:

python_format

Etkinleştirilecek im:

python-format

Yok sayılacak im:

ignore-python-format

Basit biçim dizgesi:

Sepette %d elma var

Adlandırılmış biçim dizgesi örneği:

Hesabınızda %(amount)d %(currency)s var

Qt biçimi#
Özet:

Qt biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.qt.QtFormatCheck

Belirteci denetle:

qt_format

Etkinleştirilecek im:

qt-format

Yok sayılacak im:

ignore-qt-format

Konum biçim dizgesi örneği:

Burada %1 elma var

Qt çoğul biçimi#
Özet:

Qt çoğul biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.qt.QtPluralCheck

Belirteci denetle:

qt_plural_format

Etkinleştirilecek im:

qt-plural-format

Yok sayılacak im:

ignore-qt-plural-format

Çoğul biçim dizgesi örneği:

Burada %Ln elma(lar) var

Ruby biçimi#
Özet:

Ruby biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.ruby.RubyFormatCheck

Belirteci denetle:

ruby_format

Etkinleştirilecek im:

ruby-format

Yok sayılacak im:

ignore-ruby-format

Basit biçim dizgesi örneği:

Sepette %d elma var

Konum biçim dizgesi örneği:

Hesabınızda %1$f %2$s var

Adlandırılmış biçim dizgesi örneği:

Hesabınızda %+.2<amount>f %<currency>s var

Adlandırılmış kalıp dizgesi:

Hesabınızda %{amount} %{currency} var

Şema biçimi#
Özet:

Şema biçim dizgesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.SchemeFormatCheck

Belirteci denetle:

scheme_format

Etkinleştirilecek im:

scheme-format

Yok sayılacak im:

ignore-scheme-format

Basit biçim dizgesi örneği:

Burada ~d elma var

Vue I18n biçimlendirmesi#
Özet:

Vue I18n biçimlendirmesi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.format.VueFormattingCheck

Belirteci denetle:

vue_format

Etkinleştirilecek im:

vue-format

Yok sayılacak im:

ignore-vue-format

Adlandırılmış biçimlendirme:

Burada {count} elma var

Rails i18n biçimlendirmesi:

Burada %{count} elma var

Bağlantılı yerel iletiler:

@:message.dio @:message.the_world!

Çevrilmiş#

Özet:

Bu dizge geçmişte çevrilmiş

Kapsam:

tüm dizgeler

Denetim sınıfı:

weblate.checks.consistency.TranslatedCheck

Belirteci denetle:

translated

Yok sayılacak im:

ignore-translated

Bir dizgenin zaten çevrilmiş olduğu anlamına gelir. Bu durum, çeviriler sürüm denetimi sisteminden geri alındığında ya da başka bir şekilde kaybolduğunda ortaya çıkabilir.

Tutarsız#

Özet:

Bu dizge bu projede farklı şekillerde çevrilmiş ya da bazı bileşenlerde çevrilmemiş.

Kapsam:

tüm dizgeler

Denetim sınıfı:

weblate.checks.consistency.ConsistencyCheck

Belirteci denetle:

inconsistent

Yok sayılacak im:

ignore-inconsistent

Weblate, çeviri tutarlılığını korumanıza yardımcı olmak için bir projedeki tüm çevirilerde aynı dizgenin çevirilerini denetler.

Bir proje içindeki bir dizgenin çevirileri farklıysa hata ortaya çıkar. Bu durum, görüntülenen denetimlerde de tutarsızlıklara yol açabilir. Bu dizgenin diğer çevirilerini Diğer kullanımlar sekmesinde bulabilirsiniz.

Bu denetim, bir projede Çevirilerin yayılmasını sağlamak seçeneği açık olan tüm bileşenlere uygulanır.

İpucu

Başarımı olumsuz etkileyeceğinden, denetim eşleşme sayısını sınırlar ve tüm tutarsızlıkları bulamayabilir.

Not

Bu denetim, dizgenin bir bileşene çevrilip başka bir bileşene çevrilmemesi durumunda da tetiklenir. Bazı bileşenlerde çevrilmemiş dizgeleri el ile hızlı bir şekilde çevirebilmek için, Diğer kullanımlar sekmesindeki her satırda görüntülenen Bu çeviri kullanılsın düğmesine tıklanabilir.

Yeni eklenen ancak başka bir bileşende zaten çevrilmiş olan dizgelerin kendiliğinden çevrilmesi için Kendiliğinden çeviri eklentisini kullanabilirsiniz.

Kashida harfi kullanılmış#

3.5 sürümünde geldi.

Özet:

Dekoratif kashida harfleri kullanılmamalıdır

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.KashidaCheck

Belirteci denetle:

kashida

Yok sayılacak im:

ignore-kashida

Dekoratif Kashida harfleri çeviride kullanılmamalıdır. Bunlar Tatweel olarak da bilinir.

Ayrıca bakınız

Vikipedi üzerinde Kashida

Markdown başvuruları#

3.5 sürümünde geldi.

Özet:

Markdown bağlantı başvuruları kaynakla aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.markup.MarkdownRefLinkCheck

Belirteci denetle:

md-reflink

Etkinleştirilecek im:

md-text

Yok sayılacak im:

ignore-md-reflink

Markdown bağlantı başvuruları kaynakla aynı değil.

Ayrıca bakınız

Markdown bağlantıları

Markdown söz dizimi#

3.5 sürümünde geldi.

Özet:

Markdown söz dizimi kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.markup.MarkdownSyntaxCheck

Belirteci denetle:

md-syntax

Etkinleştirilecek im:

md-text

Yok sayılacak im:

ignore-md-syntax

Markdown söz dizimi kaynaktaki ile aynı değil

Ayrıca bakınız

Markdown span bileşenleri

Çevirinin en fazla uzunluğu#

Özet:

Çeviri belirtilen uzunluğu aşmamalı

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.MaxLengthCheck

Belirteci denetle:

max-length

Etkinleştirilecek im:

max-length

Yok sayılacak im:

ignore-max-length

Çevirilerin kullanılabilecek alana sığacak şekilde kabul edilebilir uzunlukta olup olmadığını denetler. Bu denetim yalnızca çeviri karakterlerinin uzunluğuna bakar.

Diğer denetimlerden farklı olarak, im max-length:100 gibi bir anahtar:değer çifti olarak ayarlanmalıdır.

İpucu

Bu denetim, metni işlemek için orantılı yazı tipleri kullanırken en iyi ölçünün ne olmayabileceği hakkında karakter sayısına bakar. Çevirinin en fazla uzunluğu denetimi, metnin gerçek görünümünü denetler.

replacements: imi, dizgeyi denetlemeden önce yerleştirilebilir ögeleri genişletmek için de yararlı olabilir.

xml-text imi de kullanıldığında, uzunluk hesaplamasında XML kod imleri yok sayılır.

Çevirinin en fazla uzunluğu#

Özet:

Çevrilmiş metin belirtilen boyutu aşmamalıdır

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.render.MaxSizeCheck

Belirteci denetle:

max-size

Etkinleştirilecek im:

max-size

Yok sayılacak im:

ignore-max-size

3.7 sürümünde geldi.

Çeviri yapılan metin belirtilen boyuttan uzun olmamalıdır. Metni satır kaydırma ile oluşturur ve belirtilen sınırlara uyup uymadığını denetler.

Bu denetim için bir ya da iki parametre gereklidir. En fazla genişlik ve en fazla satır sayısı. Satır sayısının belirtilmemesi durumunda metin bir satır olarak kabul edilir.

Kullanılan yazı tipini font-* komutlarıyla da yapılandırabilirsiniz (bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek). Örneğin aşağıdaki çeviri imleri, ubuntu yazı tipi boyutu 22 ile oluşturulan metnin iki satıra ve 500 piksele sığması gerektiğini belirtir:

max-size:500:2, font-family:ubuntu, font-size:22

İpucu

Bir bileşendeki tüm dizgelerde aynı yazı tipini yapılandırmak için Bileşen yapılandırması içindeki font-* komutlarını ayarlamak isteyebilirsiniz. Her dizgeyi ayrı özelleştirmeniz gerekirse bu değerleri her dizgeye özel olarak değiştirebilirsiniz.

replacements: imi, dizgeyi denetlemeden önce yerleştirilebilir ögeleri genişletmek için de yararlı olabilir.

xml-text imi de kullanıldığında, uzunluk hesaplamasında XML kod imleri yok sayılır.

\n aynı değil#

Özet:

Çevirideki\n sabit yeni satır sayısı kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EscapedNewlineCountingCheck

Belirteci denetle:

escaped_newline

Yok sayılacak im:

ignore-escaped-newline

Kaçışlı yeni satır kodları genellikle program çıktısını biçimlendirmek için önemlidir. Çevirideki \n kodlarının sayısı kaynakla aynı değilse denetim hatası oluşur.

İki nokta üst üste farklı#

Özet:

Kaynağın ve çevirinin ikisi de iki nokta üst üste ile bitmiyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EndColonCheck

Belirteci denetle:

end_colon

Yok sayılacak im:

ignore-end-colon

Kaynaktaki iki nokta üst üste işaretlerinin çeviri ile aynı olup olmadığını denetler. İki nokta üst üste işaretlerinin varlığı, kullanılmadıkları çeşitli dillerde de denetlenir (Çince ya da Japonca gibi).

Üç nokta karakteri farklı#

Özet:

Kaynağın ve çevirinin ikisi de üç nokta karakteri ile bitmiyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EndEllipsisCheck

Belirteci denetle:

end_ellipsis

Yok sayılacak im:

ignore-end-ellipsis

Kaynağın sonundaki üç nokta karakterinin çeviri ile aynı olup olmadığını denetler. Bu denetim yalnızca gerçek üç nokta karakterine () bakar. Üç ayrı nokta karakterini (...) denetlemez.

Üç nokta karakteri çıktıda genellikle üç ayrı nokta karakterinden daha güzel görüntülenir ve metinden konuşmaya dönüştürme uygulamalarında daha iyi bir ses çıkarır.

Ünlem işareti farklı#

Özet:

Kaynağın ve çevirinin ikisi de ünlem işareti ile bitmiyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EndExclamationCheck

Belirteci denetle:

end_exclamation

Yok sayılacak im:

ignore-end-exclamation

Kaynaktaki ünlem işaretlerinin çeviri ile aynı olup olmadığını denetler. Ünlem işaretlerinin varlığı, kullanılmadıkları çeşitli diller için de denetlenir (Çince, Japonca, Korece, Ermenice, Limbu, Myanmar ya da Nko).

Nokta işareti farklı#

Özet:

Kaynağın ve çevirinin ikisi de nokta ile bitmiyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EndStopCheck

Belirteci denetle:

end_stop

Yok sayılacak im:

ignore-end-stop

Kaynaktaki nokta işaretlerinin çeviri ile aynı olup olmadığını denetler. Nokta işaretlerinin varlığı, kullanılmadıkları çeşitli diller için de denetlenir (Çince, Japonca, Devanagari ya da Urduca).

Soru işareti farklı#

Özet:

Kaynağın ve çevirinin ikisi de soru işareti ile bitmiyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EndQuestionCheck

Belirteci denetle:

end_question

Yok sayılacak im:

ignore-end-question

Kaynaktaki soru işaretlerinin çeviri ile aynı olup olmadığını denetler. Soru işaretlerinin varlığı, kullanılmadıkları çeşitli diller için de denetlenir (Ermenice, Arapça, Çince, Korece, Japonca, Etiyopyaca, Vai ya da Kıpti).

Noktalı virgül farklı#

Özet:

Kaynağın ve çevirinin ikisi de noktalı virgül ile bitmiyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EndSemicolonCheck

Belirteci denetle:

end_semicolon

Yok sayılacak im:

ignore-end-semicolon

Kaynak cümlelerin sonundaki noktalı virgül işaretlerinin çeviri ile aynı olup olmadığını denetler.

Satır sonları farklı#

Özet:

Çevirideki yeni satır sayısı kaynaktaki ile aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.NewLineCountCheck

Belirteci denetle:

newline-count

Yok sayılacak im:

ignore-newline-count

Yeni satırlar genellikle program çıktısını biçimlendirmek için önemlidir. Çevirideki yeni satır sayısı kaynakla aynı değilse denetim hatası oluşur.

Çoğul biçim eksik#

Özet:

Bazı çoğul biçimler çevrilmemiş

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.consistency.PluralsCheck

Belirteci denetle:

plurals

Yok sayılacak im:

ignore-plurals

Bir kaynak dizgenin tüm çoğul biçimlerinin çevrilip çevrilmediğini denetler. Her çoğul biçimin nasıl kullanıldığının ayrıntıları dizge tanımında bulunabilir.

Çoğul biçimlerin doldurulmaması, bazı durumlarda çoğul biçim kullanımdayken hiçbir şeyin görüntülenmemesine yol açar.

Yer belirticiler#

3.9 sürümünde geldi.

Özet:

Çeviride bazı yer belirticiler eksik

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.placeholders.PlaceholderCheck

Belirteci denetle:

placeholders

Etkinleştirilecek im:

placeholders

Yok sayılacak im:

ignore-placeholders

4.3 sürümünde değişti: Kurallı ifadeyi yer belirtici olarak kullanabilirsiniz.

4.13 sürümünde değişti: case-insensitive imi kullanıldığında, yer belirticiler büyük/küçük harfe duyarsız olarak işlenir.

Çeviride bazı yer belirticiler eksik. Bunlar ya çeviri dosyasından çıkarılır ya da el ile placeholders imi kullanılarak tanımlanır. Fazlası iki nokta üst üste işaretiyle ayrılabilir, boşluk olan dizgeler alıntılanabilir:

placeholders:$URL$:$TARGET$:"some long text"

Yer belirticiler için belirli söz dizimleriniz varsa, bir kurallı ifade kullanabilirsiniz:

placeholders:r"%[^% ]%"

Büyük/küçük harfe duyarlı olmayan yer belirticileriniz de olabilir:

placeholders:$URL$:$TARGET$,case-insensitive

Noktalama aralığı#

3.9 sürümünde geldi.

Özet:

Çift noktalama işaretinin önündeki birleşik boşluk eksik

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.PunctuationSpacingCheck

Belirteci denetle:

punctuation_spacing

Yok sayılacak im:

ignore-punctuation-spacing

Çift noktalama işaretinden önce bölünemeyen boşluk olup olmadığını denetler (ünlem işareti, soru işareti, noktalı virgül ve iki nokta). Bu kural yalnızca Fransızca ya da Breton gibi belirli birkaç dilde kullanılır. Burada çift noktalama işaretinden önce boşluk olması bir yazım kuralıdır.

Kurallı ifade#

3.9 sürümünde geldi.

Özet:

Çevirideki kurallı ifade aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.placeholders.RegexCheck

Belirteci denetle:

regex

Etkinleştirilecek im:

regex

Yok sayılacak im:

ignore-regex

Çeviri kurallı ifadeyle eşleşmiyor. İfade çeviri dosyasından çıkarılır ya da el ile regex imi kullanılarak tanımlanır:

regex:^foo|bar$

Yeniden kullanılan çeviri#

4.18 sürümünde geldi.

Özet:

Farklı dizgelerin çevirileri aynı.

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.consistency.ReusedCheck

Belirteci denetle:

reused

Yok sayılacak im:

ignore-reused

Farklı kaynak dizgelerde aynı çeviri kullanılmışsa denetim başarısız olur. Bu çeviriler kasıtlı olarak aynı olabilir ancak kullanıcıların kafasını karıştırabilir.

Tekil ile çoğul biçim aynı#

Özet:

Bazı çoğul biçimler tekil biçimler ile aynı

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.consistency.SamePluralsCheck

Belirteci denetle:

same-plurals

Yok sayılacak im:

ignore-same-plurals

Bazı çoğul biçimlerin çeviride aynı olup olmadığını denetler. Çoğu dilde farklı olmaları gerekir.

Başta yeni satır var#

Özet:

Kaynağın ve çevirinin ikisi de yeni satırla başlamıyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.BeginNewlineCheck

Belirteci denetle:

begin_newline

Yok sayılacak im:

ignore-begin-newline

Yeni satırlar genellikle iyi bir nedenden dolayı kaynak dizgelerde görünür. Eksik ya da fazla olması, çevrilmiş metin kullanıma sunulduğunda biçimlendirme sorunlarına yol açabilir.

Ayrıca bakınız

Sondaki yeni satır

Baştaki boşluk#

Özet:

Kaynağın ve çevirinin ikisi de aynı sayıda boşlukla başlamıyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.BeginSpaceCheck

Belirteci denetle:

begin_space

Yok sayılacak im:

ignore-begin-space

Bir dizgenin başındaki boşluk genellikle arayüzde girinti sağlamak için kullanılır ve bu nedenle korunması önemlidir.

Sondaki yeni satır#

Özet:

Kaynağın ve çevirinin ikisi de yeni satırla bitmiyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EndNewlineCheck

Belirteci denetle:

end_newline

Yok sayılacak im:

ignore-end-newline

Yeni satırlar genellikle iyi bir nedenden dolayı kaynak dizgelerde görünür. Eksik ya da fazla olması, çevrilmiş metin kullanıma sunulduğunda biçimlendirme sorunlarına yol açabilir.

Ayrıca bakınız

Başta yeni satır var

Sondaki boşluk#

Özet:

Kaynağın ve çevirinin ikisi de boşlukla bitmiyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.EndSpaceCheck

Belirteci denetle:

end_space

Yok sayılacak im:

ignore-end-space

Kaynağın sonundaki boşlukların çeviri ile aynı olup olmadığını denetler.

Sondaki boşluk genellikle arkadan gelen ögeleri ayırmak için kullanılır. Bu nedenle kaldırılması görünümü bozabilir.

Çeviri değiştirilmemiş#

Özet:

Kaynak ile çeviri aynı

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.same.SameCheck

Belirteci denetle:

same

Yok sayılacak im:

ignore-same

Kaynak ve karşılık gelen çeviri dizgeleri, çoğul biçimlerden en az birine kadar aynıysa gerçekleşir. Tüm dillerde yaygın olarak bulunan bazı dizgeler yok sayılır ve çeşitli markup kodları ayıklanır. Bu, yanlış pozitif sonuçların sayısını azaltır.

Bu denetim, yanlışlıkla çevrilmemiş dizgelerin bulunmasına yardımcı olabilir.

Bu denetimin varsayılan davranışı, yerleşik kara listeden sözcüklerin denetime katılmamasıdır. Bunlar sıklıkla çevrilmeyen sözcüklerdir. Bu, yalnızca birkaç dilde aynı olan tek bir sözcükten oluşan kısa dizgelerde yanlış pozitif sonuçlardan kaçınmak için yararlıdır. Bu kara liste, dizgeye veya bileşene strict-same imi eklenerek devre dışı bırakılabilir.

4.17 sürümünde değişti: check-glossary imiyle (bilgi almak için: Sözlük ile uyumlu değil), çevrilemeyecek sözlük terimleri denetime katılmaması sağlanır.

Güvenli olmayan HTML#

3.9 sürümünde geldi.

Özet:

Çeviride güvenli olmayan HTML kodlaması var

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.markup.SafeHTMLCheck

Belirteci denetle:

safe-html

Etkinleştirilecek im:

safe-html

Yok sayılacak im:

ignore-safe-html

Çeviride, güvenli olmayan HTML biçimlendirmesi kullanılmış. Bu denetimin safe-html imiyle etkinleştirilmesi gerekir (bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek). İmlemeyi kendiliğinden yapabilen bir kendiliğinden düzeltici de vardır.

İpucu

md-text imi de kullanıldığında, Markdown biçemindeki bağlantılar da kullanılabilir.

Ayrıca bakınız

HTML denetimi Ammonia kitaplığı kullanılarak yapılır.

Adres#

3.5 sürümünde geldi.

Özet:

Çeviride bir adres bulunmuyor

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.markup.URLCheck

Belirteci denetle:

url

Etkinleştirilecek im:

url

Yok sayılacak im:

ignore-url

Çeviride bir adres yok. Bu denetim, yalnızca birimin adres içeriyor olarak imlenmesi durumunda tetiklenir. Bu durumda çeviride geçerli bir adres bulunması gerekir.

XML kodlaması#

Özet:

Çevirideki XML kod imleri kaynakla aynı değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.markup.XMLTagsCheck

Belirteci denetle:

xml-tags

Yok sayılacak im:

ignore-xml-tags

Bu durum genellikle sonuçtaki çıktının farklı görüneceği anlamına gelir. Çoğu durumda bu, çevirinin değiştirilmesinden istenen bir sonuç değildir, ancak bazen de öyledir.

Kaynaktaki XML kod imlerinin çeviri ile aynı olup olmadığını denetler.

Denetim, XML benzeri dizgeler için kendiliğinden etkinleştirilir. Açmaya zorlamak için bazı durumlarda xml-text imini eklemeniz gerekebilir.

Not

safe-html imi bu denetimi devre dışı bırakır çünkü yaptığı HTML temizliği geçerli bir XML olmayan HTML markup kodu üretebilir.

XML söz dizimi#

Özet:

Çeviri geçerli bir XML kodu değil

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.markup.XMLValidityCheck

Belirteci denetle:

xml-invalid

Yok sayılacak im:

ignore-xml-invalid

XML kod imi geçersiz.

Denetim, XML benzeri dizgeler için kendiliğinden etkinleştirilir. Açmaya zorlamak için bazı durumlarda xml-text imini eklemeniz gerekebilir.

Not

safe-html imi bu denetimi devre dışı bırakır çünkü yaptığı HTML temizliği geçerli bir XML olmayan HTML markup kodu üretebilir.

Sıfır genişlikli boşluk#

Özet:

Çeviride fazladan sıfır genişlikli boşluk karakteri var

Kapsam:

çevrilmiş dizgeler

Denetim sınıfı:

weblate.checks.chars.ZeroWidthSpaceCheck

Belirteci denetle:

zero-width-space

Yok sayılacak im:

ignore-zero-width-space

Sıfır genişlikli boşluk (<U+200B>) karakterleri, sözcüklerin içindeki iletileri bölmek için kullanılır (sözcük kaydırma için).

Genellikle yanlışlıkla eklendiklerinden, çeviride bulunduklarında bu denetim tetiklenir. Bazı programlarda bu karakter kullanıldığında sorunlar olabilir.

Kaynak denetimleri#

Kaynak denetimleri, geliştiricilerin kaynak dizgelerin kalitesini artırmasına yardımcı olabilir.

Üç nokta#

Özet:

Dizge, üç nokta karakteri (…) yerine üç ayrı nokta (…) kullanıyor

Kapsam:

kaynak dizgeler

Denetim sınıfı:

weblate.checks.source.EllipsisCheck

Belirteci denetle:

ellipsis

Yok sayılacak im:

ignore-ellipsis

Bu denetim hatası dizgede üç nokta () karakteri kullanılması gerekiyorken üç ayrı nokta (...) kullanıldığında görülür.

Çoğu durumda Unikod karakterini kullanmak daha iyi bir yaklaşımdır ve daha iyi işlenir. Metinden konuşmaya çevirme uygulamarında da daha iyi bir ses çıkarabilir.

ICU MessageFormat söz dizimi#

4.9 sürümünde geldi.

Özet:

ICU MessageFormat dizgelerinde söz dizimi hataları var.

Kapsam:

kaynak dizgeler

Denetim sınıfı:

weblate.checks.icu.ICUSourceCheck

Belirteci denetle:

icu_message_format_syntax

Etkinleştirilecek im:

icu-message-format

Yok sayılacak im:

ignore-icu-message-format

Ayrıca bakınız

ICU MessageFormat

Uzun süredir çevrilmemiş#

4.1 sürümünde geldi.

Özet:

Dizge uzun zamandır çevrilmemiş

Kapsam:

kaynak dizgeler

Denetim sınıfı:

weblate.checks.source.LongUntranslatedCheck

Belirteci denetle:

long_untranslated

Yok sayılacak im:

ignore-long-untranslated

Dizgenin uzun süredir çevrilmemiş olması, kaynak dizgede çeviri yapmayı zorlaştıran bir sorun olduğunu gösterebilir.

Birden çok denetim hatası#

Özet:

Birkaç dildeki çevirilerde denetim hataları var

Kapsam:

kaynak dizgeler

Denetim sınıfı:

weblate.checks.source.MultipleFailingCheck

Belirteci denetle:

multiple_failures

Yok sayılacak im:

ignore-multiple-failures

Bu dizgenin çevirisinde çok sayıda kalite denetimi hatası vardır. Bu durum genellikle kaynak dizgeyi geliştirmek için bir şeyler yapılabileceğini gösterir.

Bu denetim hatası genellikle bir cümlenin sonundaki eksik bir noktadan ya da çevirmenlerin çeviride düzeltme eğiliminde oldukları benzer küçük sorunlardan kaynaklanabilir ve kaynak dizgede düzeltmek daha iyi olacaktır.

Birden çok değişken adlandırılmamış#

4.1 sürümünde geldi.

Özet:

Dizgede birden çok adlandırılmamış değişken var. Çevirmenler istese de bunların sıralamasını değiştiremez

Kapsam:

kaynak dizgeler

Denetim sınıfı:

weblate.checks.format.MultipleUnnamedFormatsCheck

Belirteci denetle:

unnamed_format

Yok sayılacak im:

ignore-unnamed-format

Dizgede birden çok adlandırılmamış değişken var. Çevirmenler istese de bunların sıralamasını değiştiremez.

Çevirmenlerin bunların sıralamasını değiştirebilmesi için adlandırılmış değişkenler kullanmayı değerlendirin.

Çoğul değil#

Özet:

Dizge çoğul olarak kullanılmış. Ancak çoğul biçimler kullanılmamış

Kapsam:

kaynak dizgeler

Denetim sınıfı:

weblate.checks.source.OptionalPluralCheck

Belirteci denetle:

optional_plural

Yok sayılacak im:

ignore-optional-plural

Dizge çoğul olarak kullanılmış, ancak çoğul biçimleri kullanmıyor. Çeviri sisteminizin bunu desteklemesi durumunda, çoğul farkındalığı olan çeşidini kullanmalısınız.

Örneğin, Python üzerindeki gettext ile şöyle olabilir:

from gettext import ngettext

print(ngettext("Selected %d file", "Selected %d files", files) % files)

Arama#

Dizge arama#

3.9 sürümünde geldi.

İstediğiniz dizgeleri bulmak için boole işlemleri, parantezler veya alana özgü arama kullanan gelişmiş sorgular kullanılabilir.

Herhangi bir alan belirtilmediğinde, arama kaynak, hedef ve bağlam dizgelerinde yapılır.

_images/search.png

Alanlar#

source:METİN

Büyük/küçük harfe duyarsız kaynak dizge arama.

target:METİN

Hedef dizgede büyük/küçük harfe duyarsız arama.

context:METİN

Bağlam dizgesinde büyük/küçük harfe duyarsız arama.

key:METİN

Anahtar dizgesinde büyük/küçük harfe duyarsız arama.

note:METİN

Büyük/küçük harfe duyarsız kaynak dizge açıklaması arama.

location:METİN

Konum dizgesinde büyük/küçük harfe duyarsız arama.

priority:SAYI

Dizge önceliği.

id:NUMBER

Eşsiz dizge belirteci.

position:NUMBER

Dizgenin çeviri dosyasındaki konumu.

added:TARİHSAAT

Dizgenin Weblate üzerine ne zaman eklendiğini belirten zaman damgası.

state:METİN

Dizge durumuna göre arama (approved, translated, needs-editing, empty, read-only), Alan işlemleri desteklenir.

pending:BOOLEAN

Sürüm denetimi sistemine boşaltılmak üzere bekleyen dizgeler.

has:METİN

Öznitelikleri olan dizgelerde arama - plural, context, suggestion, comment, check, dismissed-check, translation, variant, screenshot, flags, explanation, glossary, note, label.

is:METİN

Bekleyen çevirilerde arama (pending). Ayrıca tüm dizge durumları da aranabilir (approved, translated, untranslated, needs-editing, read-only).

language:METİN

Hedef dizge dili.

component:METİN

Bileşen kısaltması ya da adına göre büyük/küçük harfe duyarsız arama. Bilgi almak için: Bileşen kısaltması ve Bileşen adı.

project:METİN

Proje kısaltmasına göre arama. Bilgi almak için: :ref:`project-slug’.

changed_by:METİN

Belirtilen kullanıcı adlı yazar tarafından değiştirilmiş dizgeleri arama.

changed:TARİHSAAT

Belirtilen tarihte içeriği değiştirilmiş dizgeleri arama. Alan işlemleri desteklenir.

change_time:TARİHSAAT

Belirtilen tarihte değiştirilmiş dizgeleri arama. Alan işlemleri desteklenir. changed seçeneğinden farklı olarak içerik değiştirilmese de change_action için özel işlemlerin süzülmesini sağlar.

change_action:METİN

Değişiklik işlemiyle ilgili süzgeçler, change_time ile birlikte kullanışlı olur. Değişiklik işleminin İngilizce adını, boşluklar ile tırnak arasında ya da boşluklar yerine tire ile küçük harflerle yazabilirsiniz. Örnekler için Değişiklik arama bölümüne bakabilirsiniz.

check:METİN

Denetim hatası olan dizgelerde arama. Denetim belirteçleri için Denetimler ve düzeltmeler bölümüne bakabilirsiniz.

dismissed_check:METİN

Denetim hatası yok sayılan dizgelerde arama. Denetim belirteçleri için Denetimler ve düzeltmeler bölümüne bakabilirsiniz.

comment:METİN

Kullanıcı yorumlarında arama.

resolved_comment:METİN

Çözümlenmiş yorumlarda arama.

comment_author:METİN

Yorum yazarına göre süzme.

suggestion:METİN

Önerilerde arama.

suggestion_author:METİN

Öneri yazarına göre süzme.

explanation:METİN

Açıklamalarda arama.

label:METİN

Etiketlerde arama.

screenshot:METİN

Ekran görüntülerinde arama.

Boole işlemleri#

Karmaşık sorgular oluşturmak için aramaları AND, OR, NOT ve parantez kullanarak birleştirebilirsiniz. Örneğin: state:translated AND (source:hello OR source:bar)

Alan işlemleri#

Tarih veya sayısal aramalar için işlemler, aralıklar veya parçalı aramalar belirtebilirsiniz:

state:>=translated

Durumu translated ya da daha iyisi (approved) olanlar.

changed:2019

2019 yılında değiştirilmişler.

changed:[2019-03-01 to 2019-04-01]

Belirtilen iki tarih arasında değiştirilmişler.

position:[10 to 100]

Konumu 10 ile 100 arasında olan dizgeler (10 ve 100 dahil).

Kesin işlemler#

= işlemini kullanarak farklı dizge alanlarında tam eşleşme sorgusu yapabilirsiniz. Örneğin, merhaba dünya ile tam olarak eşleşen tüm kaynak dizgeleri aramak için şunu kullanın: source:="hello world”. Tek sözcüklü ifadeleri aramak için tırnak işaretlerini kullanmayabilirsiniz. Örneğin, merhaba ile eşleşen tüm kaynak dizgelerini aramak için şunu kullanabilirsiniz: source:=hello.

Değişiklik arama#

4.4 sürümünde geldi.

Geçmiş kayıtları change_action ve change_time ölçütleri kullanılarak aranabilir.

Örneğin, 2018 yılında, düzenlenecek olarak imlenmiş dizgeleri aramak için change_time:2018 AND change_action:marked”-for-edit ya da change_time:2018 AND change_action:``Marked for edit kullanılabilir.

Kurallı ifadeler#

Ayrıca metin kabul edilen her yerde, bir kurallı ifadeyi r"kurallıifade" olarak belirtebilirsiniz.

Örneğin, 2 ile 5 arasında basamağı olan tüm kaynak dizgeleri aramak için source:r"[2-5]" kullanın.

Hazır sorgular#

Arama sayfasında hazır sorgulardan seçim yapabilirsiniz. Böylece sık yapılan aramaları hızlı bir şekilde kullanabilirsiniz:

_images/query-dropdown.png

Sonuçları sıralamak#

Dizgeleri gerek duyduğunuz biçimde sıralayabileceğiniz birçok seçenek bulunur:

_images/query-sort.png

Kullanıcıları aramak#

4.18 sürümünde geldi.

Kullanıcı aramasında benzer arama yetenekleri vardır:

username:METİN

Kullanıcı adlarında arama.

full_name:METİN

Tam adlarda arama.

language:METİN

Kullanıcı tarafından yapılandırılmış çeviri dili (bilgi almak için: Çevrilen diller).

joined:DATETIME

Belirtilen tarihte içeriği değiştirilmiş dizgeleri arama. Alan işlemleri desteklenir.

translates:METİN

Kullanıcının geçen ay belirli bir dile katkıda bulunması.

contributes:METİN

Kullanıcının geçen ay belirli bir projeye veya bileşene katkıda bulunması.

Yönetim arayüzü içinde ek aramalar bulunur:

is:bot

Botları arar (proje kapsamındaki kodlar için kullanılır).

is:active

Etkin kullanıcıları arar.

email:METİN

E-postaya göre arar.

Çeviri iş akışları#

Weblate kullanmak, sizi çevirmenlerinize ve kullanıcılarınıza yaklaştıran bir süreçtir. Hangi özellikleri kullanmak istediğinize siz karar verirsiniz.

Aşağıda, farklı Weblate yapılandırmalarının tümü bulunmuyor. Farklı iş akışlarını burada listelenen yaygın uygulamalara göre yapılandırabilirsiniz.

Çeviri erişimi#

Erişim denetimi, seçeneklerinin çoğu herhangi bir iş akışına uygulanabileceğinden, iş akışlarında tüm ayrıntılarına girilmemiştir. Çevirilere erişimin nasıl yönetileceği ile ilgili bilgi almak için ilgili belgelere bakın.

İzleyen bölümlerde, tüm kullanıcılar, çeviriye erişimi olan bir kullanıcı anlamına gelir. Proje herkese açıksa, kimliği doğrulanmış herhangi bir kullanıcı veya projede Çevirme izni olan bir kullanıcı olabilir.

Çeviri durumları#

Çevrilmiş her dizge şu durumlardan birinde olabilir:

Çevrilmemiş

Çeviri yapılmamıştır ve boştur. Dosya biçimine bağlı olarak dosyada bulunabilir ya da bulunmayabilir.

Düzenlenmesi gerekli

Çevirinin düzenlenmesi gereklidir. Genellikle bir kaynak dizge değişikliğinden, belirsiz eşleşmeden veya çevirmen işleminden kaynaklanır. Çeviri, dosya biçimine bağlı olarak dosyada bulunabilir ve düzenlenmesi gerekli şeklinde imlenebilir (örneğin, gettext dosyasında fuzzy olarak imlenir).

Onaylanmayı bekliyor

Çeviri yapılmış, ancak onaylanmamıştır. Dosyada geçerli bir çeviri olarak bulunur.

Onaylanmış

Çeviri onaylanmıştır. Artık çevirmenler tarafından değiştirilemez. Yalnızca onaylayanlar değiştirebilir. Çevirmenler yalnızca öneri ekleyebilir.

Bu durum yalnızca onaylama özelliği etkinleştirildiğinde kullanılabilir.

Öneriler

Öneriler yalnızca Weblate üzerinde bulunur. Çeviri dosyasında bulunmaz.

Durumlar, çeviri dosyalarında olabildiğince belirtilir.

İpucu

Kullandığınız dosya biçimi durumların kaydedilmesini desteklemiyorsa, değiştirilmemiş dizgeleri düzenlenmesi gerekli olarak imlemek için Değiştirilmemiş çevirileri “Düzenlenmesi gerekli” olarak imleme eklentisini kullanmak isteyebilirsiniz.

Doğrudan çeviri#

Bu seçenek küçük takımlar için en yaygın kullanılan kurulumdur. Herkes doğrudan çeviri yapabilir. Varsayılan Weblate kurulumudur.

  • Tüm kullanıcılar çevirileri düzenleyebilir.

  • Öneriler, çevirmenlerin çeviride bir değişiklik yapmaktan emin olmadığı durumlarda isteğe bağlı bir değişiklik önerisinde bulunmalarını sağlar.

Ayar

Değer

Not

Onaylama kullanılsın

kapalı

Proje düzeyinde yapılandırılır.

Öneriler kullanılsın

açık

Kullanıcıların emin olmadıkları durumlarda öneri yapabilmeleri açısından yararlıdır.

Öneriler oylanabilsin

kapalı

Öneriler kendiliğinden kabul edilsin

0

Çevirmenler grubu

Kullanıcılar

Ya da per-project access control ile Çevirmek.

Onaylayıcılar grubu

Kullanılamaz

Kullanılmıyor.

Akran değerlendirmesi#

Bu iş akışında, herkes öneri ekleyebilir. Önerilerin onaylanmış olarak kabul edilmesi için başka üyelerin onaylaması gerekir.

  • Tüm kullanıcılar öneri ekleyebilir.

  • Tüm kullanıcılar önerilere oy verebilir.

  • Önerilerin onaylanmış olarak kabul edilmesi için önceden belirlenmiş sayıda oy alması gerekir.

Ayar

Değer

Not

Onaylama kullanılsın

kapalı

Proje düzeyinde yapılandırılır.

Öneriler kullanılsın

açık

Öneriler oylanabilsin

kapalı

Öneriler kendiliğinden kabul edilsin

1

Daha fazla akran değerlendirmesi gerekmesi için yüksek bir değer ayarlayabilirsiniz.

Çevirmenler grubu

Kullanıcılar

Ya da per-project access control ile Çevirmek.

Onaylayıcılar grubu

Kullanılamaz

Kullanılmadığında, tüm çevirmenler onaylayabilir.

Özel onaylayanlar#

Özel onaylayanlar kullanıldığında, biri çeviri yapan, diğeri de çevirilerin tutarlılığı ve kalitesini sağlamak için bunları gözden geçirip onaylayan iki kullanıcı grubu bulunur.

  • Tüm kullanıcılar onaylanmamış çevirileri düzenleyebilir.

  • Onaylayan dizgeleri onaylayabilir ve onayı kaldırabilir.

  • Onaylayan tüm çevirileri düzenleyebilir (onaylanmışlar ile birlikte).

  • Öneriler, onaylanmış dizgelerde değişiklik önermek amacıyla da kullanılabilir.

Ayar

Değer

Not

Onaylama kullanılsın

açık

Proje düzeyinde yapılandırılır.

Öneriler kullanılsın

kapalı

Kullanıcıların emin olmadıkları durumlarda öneri yapabilmeleri açısından yararlıdır.

Öneriler oylanabilsin

kapalı

Öneriler kendiliğinden kabul edilsin

0

Çevirmenler grubu

Kullanıcılar

Ya da per-project access control ile Çevirmek.

Onaylayıcılar grubu

Onaylayanlar

Ya da per-project access control ile Onayla kullanılabilir.

Onaylama özelliğini açmak#

Onaylama özelliği, proje yapılandırmasında, proje ayarlarındaki İş akışı bölümünden açılabilir (YönetimAyarlar yoluyla bulabilirsiniz):

_images/project-workflow.png

Kaynak dizgeler için kalite aracısı#

Çoğu durumda, özgün kaynak dil dizgeleri geliştiricilerden gelir. Çünkü kodu yazma ve ilk dizgeleri sağlama işini onlar yapar. Bununla birlikte, geliştiricilerin ana dili genellikle kaynak dil değildir ve kaynak dizgeler için istenilen kaliteyi sağlayamazlar. Ara çeviri bu sorunu çözmenize yardımcı olabilir. Geliştiriciler, çevirmenler ve kullanıcılar arasındaki dizgeler için kullanılabilecek bir ek kalite aracısı vardır.

Ara dil dosyası ayarlandığında, bu dosya dizgeler için kaynak olarak kullanılır. Ancak güzelleştirmek için kaynak dile göre düzenlenir. Dizge kaynak dilde hazır olduğunda, çevirmenlerin diğer dillere çevirmesi için de kullanılabilir.

digraph translations { graph [fontname = "sans-serif", fontsize=10]; node [fontname = "sans-serif", fontsize=10, margin=0.1, height=0, style=filled, fillcolor=white, shape=note]; edge [fontname = "sans-serif", fontsize=10]; subgraph cluster_dev { style=filled; color=lightgrey; label = "Development process"; "Developers" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Developers" -> "Intermediate file"; } subgraph cluster_l10n { style=filled; color=lightgrey; label = "Localization process"; "Translators" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Editors" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Editors" -> "Monolingual base language file"; "Translators" -> "Translation language file"; } "Intermediate file" -> "Monolingual base language file" [constraint=false]; "Monolingual base language file" -> "Translation language file" [constraint=false]; }

Kaynak dizge onayları#

Kaynak onaylama kullanılsın seçeneği etkinleştirildiğinde, onaylama işlemi kaynak dizgelere de uygulanabilir. Bu seçenek etkinleştirildikten sonra, kullanıcılar kaynak dizgelerdeki sorunları bildirebilir. Gerçek süreç, iki dilli ya da tek dilli biçimleri kullanıp kullanmadığınıza göre değişir.

Tek dilli biçimlerde, kaynak dizge incelemesi Özel onaylayanlar ile benzer şekilde davranır. Kaynak dizge için bir sorun bildirildiğinde dizge Düzenlenmesi gerekli olarak imlenir.

İki dilli biçimlerde, kaynak dizgelerin doğrudan düzenlenmesine izin verilmez (bunlar genellikle doğrudan kaynak kodundan ayıklanır). Bu durumda çevirmenler tarafından bildirilen dizgelere Kaynağın incelenmesi gerekli etiketi eklenir. Bu dizgeleri gözden geçirerek kaynağı düzenlemeniz ya da etiketi kaldırmanız gerekir.

Sık sorulan sorular#

Yapılandırma#

Kendiliğinden çalışan bir iş akışı nasıl oluşturulur?#

Weblate, tüm çeviri işlerini sizin için yarı otomatik olarak yapabilir. Deponuza anında erişim izni verirseniz, bazı birleştirme çakışmaları oluşmadığı sürece çeviriler etkileşim olmadan yapılabilir.

  1. Git deponuzu Weblate üzerinde herhangi bir değişiklik olduğunda bildirecek şekilde ayarlayın. Bunun nasıl yapılacağı ile ilgili bilgi almak için Bildirim kancaları bölümüne bakabilirsiniz.

  2. Weblate içindeki Bileşen yapılandırması üzerinde bir itme adresi ayarlayın. Böylece Weblate değişiklikleri deponuza gönderebilir.

  3. Weblate içindeki Bileşen yapılandırması üzerinde İşleme ile itme seçeneğini açın. Böylece Weblate üzerinde yapılan değişiklikler deponuza itilir.

Depolara SSH üzerinden nasıl erişilir?#

SSH anahtarlarını ayarlamak ile ilgili bilgi almak için Depolara erişmek bölümüne bakabilirsiniz.

Çevirilerdeki birleştirme çakışmaları nasıl düzeltilir?#

Birleştirme çakışmaları, çeviri dosyası hem Weblate üzerinde hem de yukarı akış deposunda değiştirildiğinde ortaya çıkar. Bu sorunu genellikle çeviri dosyalarında değişiklik yapmadan önce Weblate çevirilerini birleştirerek (örneğin, msgmerge çalıştırmadan önce) önleyebilirsiniz. Weblate üzerinde bekleyen tüm çevirilerin işlenmesini isteyin (Yönetim menüsündeki Depo bakımı bölümünden yapabilirsiniz) ve depoyu birleştirin (kendiliğinden itme açık değilse).

Zaten bir birleştirme çakışmasıyla karşılaştıysanız, makinenizdeki tüm çakışmaları yerel olarak çözmenin en kolay yolu, Weblate kurulumunu bir uzak depo olarak eklemek, yukarı akışta birleştirmek ve çakışmaları düzeltmektir. Değişiklikleri geri ittiğinizde, Weblate birleştirilmiş sürümü başka herhangi bir özel işlem yapmadan kullanabilir.

Not

Kurulumunuza bağlı olarak, Weblate deposuna erişim için kimlik doğrulaması gerektirebilir. Weblate üzerinde yerleşik Git dışa aktarıcı özelliğini kullanırken, kimliğinizi kullanıcı adınız ve API anahtarınızla doğrularsınız.

# Commit all pending changes in Weblate, you can do this in the UI as well:
wlc commit
# Lock the translation in Weblate, again this can be done in the UI as well:
wlc lock
# Add Weblate as remote:
git remote add weblate https://hosted.weblate.org/git/project/component/
# You might need to include credentials in some cases:
git remote add weblate https://username:APIKEY@hosted.weblate.org/git/project/component/

# Update weblate remote:
git remote update weblate

# Merge Weblate changes:
git merge weblate/main

# Resolve conflicts:
edit …
git add …
…
git commit

# Rebase changes (if Weblate is configured to do rebases)
git rebase origin/main

# Push changes to upstream repository, Weblate will fetch merge from there:
git push

# Open Weblate for translation:
wlc unlock

Weblate üzerinde birden fazla dal kullanıyorsanız, hepsine aynı şeyi yapabilirsiniz:

# Add and update Weblate remotes
git remote add weblate-one https://hosted.weblate.org/git/project/one/
git remote add weblate-second https://hosted.weblate.org/git/project/second/
git remote update weblate-one weblate-second

# Merge QA_4_7 branch:
git checkout QA_4_7
git merge weblate-one/QA_4_7
... # Resolve conflicts
git commit

# Merge main branch:
git checkout main
git merge weblates-second/main
... # Resolve conflicts
git commit

# Push changes to the upstream repository, Weblate will fetch the merge from there:
git push

Gettext PO dosyaları söz konusu olduğunda, çakışmaları yarı otomatik bir şekilde birleştirmenin bir yolu vardır:

Weblate Git deposunun yerel bir kopyasını alın ve tutun. Ayrıca, yukarı akış Git deposunun ikinci bir yeni yerel kopyasını da alın (yani, yukarı akış Git deposunun iki kopyası olmalıdır: Bozulmamış ve çalışan bir kopya):

# Add remote:
git remote add weblate /path/to/weblate/snapshot/

# Update Weblate remote:
git remote update weblate

# Merge Weblate changes:
git merge weblate/main

# Resolve conflicts in the PO files:
for PO in `find . -name '*.po'` ; do
    msgcat --use-first /path/to/weblate/snapshot/$PO\
               /path/to/upstream/snapshot/$PO -o $PO.merge
    msgmerge --previous --lang=${PO%.po} $PO.merge domain.pot -o $PO
    rm $PO.merge
    git add $PO
done
git commit

# Push changes to the upstream repository, Weblate will fetch merge from there:
git push

Aynı anda birkaç dalı nasıl çevirebilirim?#

Weblate, çeviri değişikliklerinin tek bir Proje yapılandırması içine itilmesini destekler. Açık olan her Bileşen yapılandırması için (varsayılan davranış), yapılan değişiklik kendiliğinden diğerlerine yayılır. Böylece, dalların kendileri zaten oldukça fazla farklılaşmış olsa bile çeviriler eşitlenmiş olarak tutulur ve çeviri değişiklikleri aralarında birleştirilemez.

Weblate üzerindeki değişiklikleri birleştirdikten sonra, farklılıkları atarak bu dalları birleştirmeniz gerekebilir (geliştirme iş akışınıza bağlı olarak):

git merge -s ours origin/maintenance

Çok platformlu projeler nasıl çevrilir?#

Weblate çok çeşitli dosya biçimlerini destekler (bilgi almak için: Desteklenen dosya biçimleri) ve en kolay yaklaşım her platformun yerel biçimini kullanmaktır.

Tüm platform çeviri dosyalarını tek bir projeye bileşen olarak ekledikten sonra (bilgi almak için: Çeviri projelerini ve bileşenleri eklemek), tüm platformlar için dizgeleri aynı anda çevirmek üzere çeviri yayma özelliğini (varsayılan olarak açıktır ve Bileşen yapılandırması içinden kapatılabilir) kullanabilirsiniz.

Weblate tarafından kullanılan Git deposu nasıl dışa aktarılır?#

Depo ile ilgili özel bir şey yoktur, DATA_DIR klasörü altında bulunur ve vcs/<project>/<component> olarak adlandırılır. Bu makineye SSH erişiminiz varsa, depoyu doğrudan kullanabilirsiniz.

Anonim erişim için bir Git sunucusu işletmek ve depoyu dış dünyaya sunmasına izin vermek isteyebilirsiniz.

Alternatif olarak, bu işlemin kendiliğinden yapılabilmesi için Weblate içindeki Git dışa aktarıcı komutunu kullanabilirsiniz.

Değişiklikleri yukarı akışa geri itme seçenekleri nelerdir?#

Bunlar büyük ölçüde kurulumunuza bağlıdır. Weblate bu alanda oldukça esnektir. Burada Weblate ile kullanılan bazı iş akışı örneklerini bulabilirsiniz:

  • Weblate, değişiklikleri kendiliğinden gönderir ve birleştirir (bilgi almak için: Kendiliğinden çalışan bir iş akışı nasıl oluşturulur?).

  • Eli ile Weblate tarafından gönderilmesini söylersiniz (yukarı akış deposuna itme erişimi olmalıdır).

  • Birisi Weblate Git deposundaki değişiklikleri yukarı akış deposuyla el ile birleştirir.

  • Birisi Weblate tarafından üretilen geçmişi yeniden yazar (örneğin, birleştirme işlemlerini ortadan kaldırarak), değişiklikleri birleştirir ve Weblate’e yukarı akış deposundaki içeriği sıfırlamasını söyler.

Tabii ki tüm bunları istediğiniz gibi bir arada kullanabilirsiniz.

Weblate erişimini, kaynak kodunu açığa çıkarmadan nasıl yalnızca çevirilerle sınırlayabilirim?#

Çevirileri sürüm denetimi altında tutarken kaynak kodundan ayırmak için git submodule kullanabilirsiniz.

  1. Çeviri dosyalarınızla bir depo oluşturun.

  2. Bunu kodunuza bir alt modül olarak ekleyin:

    git submodule add git@example.com:project-translations.git path/to/translations
    
  3. Weblate ile bu depoyu bağlayın. Artık Weblate tarafından kaynak kodunuzu içeren depoya erişilmesi gerekmez.

  4. Ana depoyu Weblate üzerindeki çevirilerle güncelleyebilirsiniz:

    git submodule update --remote path/to/translations
    

Ayrıntılı bilgi almak için git submodule belgelerine bakabilirsiniz.

Weblate kurulumumun düzgün olup olmadığını nasıl denetleyebilirim?#

Weblate içinde, yönetim arayüzünde görebileceğiniz bir dizi yapılandırma denetimi bulunur. Yönetim arayüzündeki Başarım raporu bağlantısını izleyin ya da doğrudan /manage/performance/ adresini açın.

Neden tüm işlemeler Weblate <noreply@weblate.org> tarafından yapılıyor?#

DEFAULT_COMMITER_EMAIL ve DEFAULT_COMMITER_NAME seçenekleri ile yapılandırılan varsayılan gönderici adı.

Her işlemenin yazarı (kullanılan sürüm denetimi sistemi destekliyorsa), çeviriyi yapan kullanıcı olarak doğru kaydedilir.

Yazarı bilinmeyen işlemeler için (anonim öneriler ya da makine çevirisi sonuçları gibi), yazarın hesabı anonim kullanıcı olarak tutulur (bilgi almak için: ANONYMOUS_USER_NAME). Ad ve e-posta bilgilerini yönetim arayüzünden değiştirebilirsiniz.

Ayrıca bakınız

Bileşen yapılandırması

Weblate üzerindeki geçmişi kaybetmeden depodaki dosyalar nasıl taşınır?#

Dosya konumunu değiştirdikten sonra dizgelere bağlı geçmişi, yorumları ya da ekran görüntülerini tutmak için, bu dizgelerin Weblate üzerinde hiçbir zaman silinmeyeceğinden emin olmanız gerekir. Bu kaldırma işlemleri, Weblate deposunun güncellenmesi durumunda gerçekleşebilir. Ancak bileşen yapılandırması hala eski dosyaları gösterir. Bu durumda, Weblate tüm çevirileri silmesi gerektiğini varsayar.

Bunun çözümü, işlemi Weblate ile eşitleyerek yapmaktır:

  1. Weblate üzerinde etkilenen bileşeni kilitleyin.

  2. Bekleyen değişiklikleri işleyin ve depo yukarı akışına birleştirin.

  3. İnternet kancalarını almayı devre dışı bırakın: ref:project. Böylece Weblate depodaki değişiklikleri hemen görmez.

  4. Depoda gerekli değişiklikleri yapın (örneğin git mv kullanarak) ve bunları yukarı akış deposuna itin.

  5. Bileşen yapılandırması ögesini yeni kurulumla eşleşecek şekilde değiştirin. Yapılandırmayı değiştirdikten sonra, Weblate güncellenmiş depoyu alır ve var olan dizgeleri korurken değiştirilen konumları fark eder.

  6. Bileşenin kilidini açın ve proje yapılandırmasındaki kancaları yeniden etkinleştirin.

Kullanım#

Başkalarının çevirilerini nasıl onaylarım?#

  • Weblate üzerinde kullanılabilen birkaç onaylama tabanlı iş akışı bulunur. Bilgi almak için: Çeviri iş akışları.

  • Bildirimler içinde yapılan herhangi bir değişikliğe abone olabilir ve ardından e-posta ile gelen diğer katkıları gözden geçirebilirsiniz.

  • Çeviri görünümünün alt bölümünde, belirli bir tarihten sonra başkaları tarafından yapılan çevirileri görebileceğiniz bir onaylama aracı bulunur.

Ayrıca bakınız

Çeviri iş akışları

Bir kaynak dizge hakkında nasıl geri bildirim sağlayabilirim?#

Çevirinin altındaki bağlam bölümünde, bir kaynak dizge hakkında geri bildirim vermek ya da diğer çevirmenlerle tartışmak için Yorumlar sekmesini kullanabilirsiniz.

Çeviri yaparken var olan çevirileri nasıl kullanabilirim?#

  • Paylaşılan çeviri belleği ile, Weblate içindeki tüm çeviriler kullanılabilir.

  • Var olan çeviri belleği dosyalarını Weblate üzerine aktarabilirsiniz.

  • Özetleri çeviriler, öneriler ya da düzenlenmesi gereken çeviriler olarak yüklemek için içe aktarma özelliğini kullanın. Bu, bir özet ya da benzer bir çeviri veri tabanı kullanan tek seferlik bir çeviri için en iyi yaklaşımdır.

  • Kullandığınız tüm veri tabanlarına tmserver kurabilir ve Weblate tarafından kullanmasını sağlayabilirsiniz. Bu yöntem, çeviri sırasında birkaç kez kullanmak istediğinizde daha iyidir.

  • Başka bir yöntem, ilgili tüm projeleri tek bir Weblate kopyasında çevirmektir. Bu da diğer projelerdeki çevirilerin de kendiliğinden alınmasını sağlar.

Weblate, çevirilerin yanında çeviri dosyalarını da günceller mi?#

Weblate, çeviri dosyalarındaki değişiklikleri en aza indirmeye çalışır. Ne yazık ki bazı dosya biçimlerini yeniden biçimlendirebilir. Dosyanın biçimlendirmesini istediğiniz gibi korumak istiyorsanız, bir işleme öncesi kancası kullanın.

Dil tanımları nereden gelir ve kendi dil tanımımı nasıl ekleyebilirim?#

Temel dil tanımları kümesi Weblate ve Translate-toolkit içine eklenmiştir. Bu tanımlarda 150 üzerinde dil bulunur ve çoğul biçimler ya da metin yazma yönü hakkında bilgileri içerir.

Yönetim arayüzünde kendi dillerinizi tanımlamakta özgürsünüz. Yalnızca bu konuda bilgi vermeniz gerekiyor.

Ayrıca bakınız

Dil tanımları

Weblate, belirsiz bir dizgedeki değişiklikleri vurgulayabilir mi?#

Weblate bunu destekler, ancak farkı göstermek için verilere gerek duyar.

Gettext PO dosyaları için, PO dosyalarını güncellerken msgmerge komutuna —previous parametresini eklemeniz gerekir. Örneğin:

msgmerge --previous -U po/cs.po po/phpmyadmin.pot

Tek dilli çeviriler için, Weblate önceki dizgeyi kimliğine göre bulabilir. Böylece farklılıkları kendiliğinden gösterir.

Kalıbı güncellediğimde Weblate neden hala eski çeviri dizgelerini gösteriyor?#

Weblate, çeviri dosyalarını, çevirmenlerin çeviri yapmasına izin vermek dışında hiçbir şekilde değiştirmeye çalışmaz. Bu nedenle, kalıp ya da kaynak kodu değiştirildiğinde çevrilebilir dosyaları da güncellemez. Bunu el ile yapmanız ve değişiklikleri depoya göndermeniz yeterlidir. Daha sonra Weblate değişiklikleri kendiliğinden alır.

Not

Çeviri dosyalarını güncellemeden önce Weblate üzerinde yapılan değişiklikleri birleştirmek genellikle iyi bir fikirdir. Yoksa genellikle bazı birleştirilmesi gereken bazı çakışmalarla karşılaşırsınız.

Çeviri dosyaları nasıl yeniden adlandırılır?#

Depodaki dosyaları yeniden adlandırırken, Weblate bunu dosyaların kaldırılması ve eklenmesi olarak görür. Bu işlem, dizge geçmişinin, yorumların ve önerilerin kaybedilmesine neden olabilir.

Bundan kaçınmak için, yeniden adlandırmayı şu şekilde yapın:

  1. Sürüm denetim deposunu yönetmek içinden çeviri bileşenini kilitleyin.

  2. Sürüm denetim deposunu yönetmek içinde bekleyen değişiklikleri gönderin.

  3. Weblate değişikliklerini yukarı akış deposuna aktarın.

  4. Kancalar kullanılsın ile kancalar üzerinden güncellemelerin alınmasını devre dışı bırakın.

  5. Depodaki dosyaları yeniden adlandırın.

  6. Bileşen yapılandırmasını yeni dosya adlarıyla eşleşecek şekilde güncelleyin.

  7. Güncelleme kancalarını etkinleştirin ve bileşenin kilidini açın.

Sorun çözme#

İstekler bazen``çok fazla dosya açık`` hatasıyla başarısız olur#

Bu bazen Git deponuz çok fazla büyüdüğünde ve bu depolardan çok sayıda olduğunda olur. Git depolarının sıkıştırılması bu durumu iyileştirir.

Bunu yapmanın en kolay yolu şunu çalıştırmaktır:

# Go to DATA_DIR directory
cd data/vcs
# Compress all Git repositories
for d in */* ; do
    pushd $d
    git gc
    popd
done

Ayrıca bakınız

DATA_DIR

Siteye erişirken “İstek hatalı (400)” hatasıyla karşılaşıyorum#

Bunun nedeni büyük olasılıkla yanlış yapılandırılmış bir ALLOWED_HOSTS seçeneğidir. Weblate kopyanızdan erişmek istediğiniz tüm sunucu adlarının yazılmış olması gerekir. Örneğin:

ALLOWED_HOSTS = ["weblate.example.com", "weblate", "localhost"]

Ayrıca bakınız

Allowed hosts kurulumu

“Tek dil (en) için daha fazla dosya var” ne anlama geliyor?#

Bu genellikle kaynak dil için çeviri dosyanız olduğunda olur. Weblate, kaynak dizgeleri izler ve bunun için kaynak dili ayırır. Aynı dil için ek dosya işlenmez.

  • Kaynak dil için çeviri isteniyorsa, lütfen bileşen ayarlarındaki Kaynak dil seçeneğini değiştirin. Kaynak dili İngilizce (Geliştirici) olarak seçmek ya da Kaynak dizgeler için kalite aracısı kullanmak isteyebilirsiniz.

  • Kaynak dil için çeviri dosyasına gerek yoksa, lütfen depodan kaldırın.

  • Kaynak dil için çeviri dosyasına gerek duyulduğu, ancak Weblate tarafından yok sayılmasının gerektiği durumlarda, katılmaması için Dil süzgeci seçeneğini ayarlayın.

İpucu

Benzer hata iletisini diğer diller için de görebilirsiniz. Bu durumda en olası neden, birkaç dosyanın Weblate üzerinde tek bir dil ile eşleştirilmesidir.

Bu durum, eski dil kodlarının yenisiyle birlikte kullanılmasından (Japonca için ja ve jp) ya da hem ülkeye özgü hem de genel kodların (fr ve fr_FR) kullanılmasından kaynaklanabilir. Bilgi almak için: Dil kodlarını işlemek.

Özellikler#

Weblate, Git ve Mercurial dışındaki diğer sürüm denetimi sistemilerini destekliyor mu?#

Weblate şu anda Git (GitHub çekme istekleri, Gerrit ve Subversion için genişletilmiş destekle) ve Mercurial dışında hiçbir şey için yerleşik destek sağlamaz. Ancak diğer sürüm denetimi sistemleri için arka uçlar yazılabilir.

Diğer sürüm denetimi sistemlerine erişmek için Git üzerinde Git uzak yardımcıları komutunu da kullanabilirsiniz.

Weblate ayrıca sürüm denetimi sistemi olmadan çalışmayı da destekler. Bilgi almak için: Yerel dosyalar.

Not

Diğer sürüm denetimi sistemlerinin yerleşik desteği için, Weblate dağıtılmış sürüm denetimi sistemi kullanmalıdır ve büyük olasılıkla Git ve Mercurial dışındaki herhangi bir şeyle çalışacak şekilde ayarlanabilir. Ancak birisinin bu desteği eklemesi gerekir.

Weblate çevirmenlerin hesabını nasıl tutar?#

Weblate üzerinde yapılan her değişiklik, çevirmenin adıyla sürüm denetimi sistemine işlenir. Böylece, her bir değişikliğin bir yazarı olur ve kod geliştirmek için kullandığınız standart sürüm denetimi sistemi araçlarını kullanarak bunu izleyebilirsiniz.

Ek olarak, çeviri dosyası biçimi tarafından desteklendiğinde, dosya üst bilgilerine çevirmenin adı eklenir.

Weblate neden tüm PO dosyalarını tek bir ağaçta göstermeyi dayatıyor?#

Weblate, her PO dosyasının tek bir bileşen olarak görüntüleneceği şekilde tasarlanmıştır. Bu özellik, çevirmenler için yararlıdır. Böylece gerçekte neyi çevirdiklerini bilebilirler.

4.2 sürümünde değişti: Çevirmenler, bir projenin tüm bileşenlerini bir bütün olarak belirli bir dile çevirebilir.

Weblate neden sr_Latn ya da zh_Hant gibi dil kodlarını kullanıyor?#

Bunlar, daha önce yanlış kullanılan değiştiriciler (@latin çeşitleri için) ya da ülke kodları (Çince için) yerine gerçekten farklı diller olduklarını daha iyi belirtmek için RFC 5646 tarafından tanımlanmış dil kodlarıdır.

Weblate eski dil kodlarını anlamayı sürdürüyor ve bunları var olanlarla eşleştiriyor. Örneğin sr@latin sr_Latn ya da zh@CN zh_Hans olarak işlenir.

Not

Weblate varsayılan olarak alt çizgili POSIX biçemi dil kodlarını kullanır. Bilgi almak için: Dil tanımları.

Desteklenen dosya biçimleri#

Weblate, çok çeşitli çeviri biçimlerini destekler. Her biçimin farklı yetenekler sağlayan farklı özellikleri vardır.

İpucu

Uygulamanız için bir dosya biçimi seçerken, kullandığınız araç takımında/platformda iyi çalışan bir biçime bağlı kalmak daha iyidir. Böylece, çevirmenleriniz alışkın oldukları araçları kullanabilir ve projenize katkıda bulunulma olasılığı yükselir.

Android dizge kaynakları#

Uygulamaları çevirmek için özel Android dosya biçimi.

Android dizge kaynakları tek dillidir, Tek dilli temel dil dosyası diğer dosyalardan farklı bir konumda tutulur – res/values/strings.xml.

Not

Android string-array yapıları şu anda desteklenmiyor. Bu soruna çözmek için, dizge dizilerinizi birbirinden ayırabilirsiniz:

<string-array name="several_strings">
    <item>First string</item>
    <item>Second string</item>
</string-array>

şuna dönüşür:

<string-array name="several_strings">
    <item>@string/several_strings_0</item>
    <item>@string/several_strings_1</item>
</string-array>
<string name="several_strings_0">First string</string>
<string name="several_strings_1">Second string</string>

String bileşenlerini gösteren string-array farklı bir dosyada tutulmalı ve çevrilecek olarak sunulmamalıdır.

Bu betik, var olan dizgeler.xml dosyalarınızı ve çevirilerinizi önceden işlemenize yardımcı olabilir: https://gist.github.com/paour/11291062

İpucu

Bazı dizgelerin çevrilmesini önlemek için, bunlar çevrilemez olarak imlenebilir. Bu seçenek özellikle dizge başvuruları için kullanışlı olabilir:

<string name="foobar" translatable="false">@string/foo</string>

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

res/values-*/strings.xml

Tek dilli temel dil dosyası

res/values/strings.xml

Yeni çeviriler kalıbı

Boş

Dosya biçimi

Android dizgesi kaynağı

Apple iOS dizgeleri#

Dosya biçimi genellikle Apple:index:iOS <pair: iOS; translation> uygulamalarını çevirmek için kullanılır. Ancak PWG 5100.13 ile standartlaştırılır ve NeXTSTEP/OpenSTEP üzerinde kullanılır.

Apple iOS dizgeleri genellikle tek dilli çeviriler olarak kullanılır.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

Resources/*.lproj/Localizable.strings

Tek dilli temel dil dosyası

Resources/en.lproj/Localizable.strings ya da Resources/Base.lproj/Localizable.strings

Yeni çeviriler kalıbı

Boş

Dosya biçimi

iOS dizgeleri (UTF-8)

Uygulama mağazası üst veri dosyaları#

3.5 sürümünde geldi.

Çeşitli uygulama mağazalarında uygulama yayınlamak için kullanılan üst veriler çevrilebilir. Şu anda şu araçlar uyumludur:

Üst veriler, Weblate tarafından çevrilmek üzere ayrı dizgeler olarak sunulacak birkaç metin dosyasından oluşur.

İpucu

Belirli dizgeleri (örneğin değişiklik günlükleri) çevirmek istemiyorsanız, bunları salt okunur olarak işaretleyin (bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek). Bu işlem, Toplu düzenleme ile kendiliğinden yapılabilir.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

fastlane/android/metadata/*

Tek dilli temel dil dosyası

fastlane/android/metadata/en-US

Yeni çeviriler kalıbı

fastlane/android/metadata/en-US

Dosya biçimi

App store üst veri dosyaları

ARB dosyası#

4.1 sürümünde geldi.

ARB çevirileri tek dillidir. Bu nedenle (en sık kullanılan) İngilizce dizgeleri bulunan bir temel dosya belirtmeniz önerilir.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

lib/l10n/intl_*.arb

Tek dilli temel dil dosyası

lib/l10n/intl_en.arb

Yeni çeviriler kalıbı

Boş

Dosya biçimi

ARB dosyası

CSV dosyaları#

CSV dosyaları basit bir kaynak ve çeviri listesi içerebilir. Weblate şu dosyaları destekler:

  • Üst bilgi olarak tanımlayıcı alanları bulunan dosyalar (location, source, target, ID, fuzzy, context, translator_comments, developer_comments). En az hataya eğilimli olduğundan bu yaklaşım önerilir. Dosya biçimi olarak CSV dosyası seçin.

  • İki alanı olan dosyalar: Kaynak ve çeviri (bu sırayla). Dosya biçimi olarak :guilabel:`Basit CSV dosyası seçin.

  • Translate-toolkit tarafından sıralaması şöyle tanımlanmış alanlarla üst bilgileri olmayan dosyalar: location, source, target, ID, fuzzy, context, translator_comments, developer_comments. Dosya biçimi olarak CSV dosyası seçin.

  • Dosyalarınız tek dilli olduğunda Tek dilli temel dil dosyası tanımlamayı unutmayın (bilgi almak için: İki dilli ve tek dilli biçimler).

İpucu

Varsayılan olarak, CSV biçimi dosya kodlamasının kendiliğinden algılanmasını sağlar. Bu davranış, bazı uç durumlarda güvenilmez olabilir ve başarımın düşmesine yol açabilir. Bunu önlemek için lütfen kodlamalı dosya biçimi çeşidini seçin (CSV dosyası (UTF-8) gibi).

Uyarı

CSV biçimi şu anda CSV dosyasının lehçesini otomatik olarak algılar. Bazı durumlarda kendiliğinden algılama yapılamayabilir ve karışık sonuçlar alırsınız. Bu, özellikle değerlerde yeni satırlar bulunan CSV dosyaları için geçerlidir. Geçici bir çözüm olarak, alıntı karakterlerini atlamanız önerilir.

Ayrıca bakınız

CSV

Çok değerli CSV dosyası#

4.13 sürümünde geldi.

CSV dosyalarının bu çeşidi, bir dizge için birden çok çevirinin tutulmasını sağlar.

Örnek dosyalar#

Örnek dosya:

Thank you for using Weblate.,Děkujeme za použití Weblate.

Weblate yapılandırması#

İki dilli CSV için tipik Weblate Bileşen yapılandırması dosyası

Dosya maskesi

locale/*.csv

Tek dilli temel dil dosyası

Boş

Yeni çeviriler kalıbı

locale/en.csv

Dosya biçimi

CSV dosyası

Tek dilli CSV için tipik Weblate Bileşen yapılandırması dosyası

Dosya maskesi

locale/*.csv

Tek dilli temel dil dosyası

locale/en.csv

Yeni çeviriler kalıbı

locale/en.csv

Dosya biçimi

Basit CSV dosyası

DTD dosyaları#

Ayrıca bakınız

Mozilla DTD format

Örnek DTD dosyası:

<!ENTITY hello "">
<!ENTITY orangutan "">
<!ENTITY try "">
<!ENTITY thanks "">

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

locale/*.dtd

Tek dilli temel dil dosyası

locale/en.dtd

Yeni çeviriler kalıbı

Boş

Dosya biçimi

DTD dosyası

Excel Open XML#

3.2 sürümünde geldi.

Excel Açık XML (.xlsx) dosyaları içe ve dışa aktarılabilir.

XLSX dosyalarını çeviri için yüklerken, yalnızca etkin çalışma sayfasının dikkate alındığını ve en azından source adlı bir sütun (kaynak dizgenin bulunduğu) ve target adlı bir sütun (çevirinin bulunduğu) olması gerektiğini unutmayın. Ek olarak, context adlı bir sütun (çeviri dizgesinin bağlam yolunun bulunduğu) olmalıdır. Çevirileri bir Excel çalışma kitabı olarak dışa aktarmak için XLSX indirmesini kullanırsanız, doğru biçimde bir dosya alırsınız.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

path/*.xlsx

Tek dilli temel dil dosyası

path/en.xlsx

Yeni çeviriler kalıbı

path/en.xlsx

Dosya biçimi

Excel Open XML

Düz XML dosyaları#

3.9 sürümünde geldi.

Ayrıca bakınız

Flat XML

Düz XML dosyası örneği:

<?xml version='1.0' encoding='UTF-8'?>
<root>
  <str key="hello_world">Hello World!</str>
  <str key="resource_key">Translated value.</str>
</root>

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

locale/*.xml

Tek dilli temel dil dosyası

locale/en.xml

Yeni çeviriler kalıbı

Boş

Dosya biçimi

Düz XML dosyası

Fluent biçimi#

4.8 sürümünde geldi.

Not

Bu biçimin desteği şu anda geliştirme aşamasında. Bazı özellikler henüz kullanılamıyor olabilir ve davranışları sürümler arasında değişiklik gösterebilir. Denemelerinizle ilgili geri bildirimlerinizi bekliyoruz.

Fluent, asimetrik yerelleştirmeye odaklanmış tek dilli bir metin biçimidir: Bir dildeki basit bir dizge, başka bir dildeki karmaşık bir çok değişkenli çeviriyle eşleştirilebilir.

Ayrıca bakınız

Fluent projesi sitesi

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

locales/*/messages.ftl

Tek dilli temel dil dosyası

locales/en/messages.ftl

Yeni çeviriler kalıbı

Boş

Dosya biçimi

Fluent dosyası

GNU gettext#

Özgür yazılımları çevirmek için en yaygın olarak kullanılan biçim.

Dosyada depolanan bağlamsal bilgiler, üst bilgileri ayarlanarak veya ilgili kaynak dosyalarla bağlantı kurularak sağlanabilir.

Tek dilli gettext#

Bazı projeler tek dilli biçimler için gettext kullanmaya karar verir. Yalnızca kaynak kodlarındaki kimlikleri kodlarlar ve dizgenin İngilizce ile birlikte tüm dillere çevrilmesi gerekir. Bu yöntem desteklenir, ancak bileşenleri Weblate içine aktarırken açıkça bu dosya biçimini seçmeniz gerekir.

Örnek dosyalar#

İki dilli Gettext PO dosyası genellikle şöyle görünür:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Monday"
msgstr "Pondělí"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Tuesday"
msgstr "Úterý"

#: weblate/accounts/avatar.py:163
msgctxt "No known user"
msgid "None"
msgstr "Žádný"

Tek dilli Gettext PO dosyası genellikle şöyle görünür:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Pondělí"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Úterý"

#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "Žádný"

Temel dil dosyası şöyle olacaktır:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Monday"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Tuesday"

#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "None"

Weblate yapılandırması#

İki dilli gettext için tipik Weblate Bileşen yapılandırması dosyası

Dosya maskesi

po/*.po

Tek dilli temel dil dosyası

Boş

Yeni çeviriler kalıbı

po/messages.pot

Dosya biçimi

Gettext PO dosyası

Tek dilli gettext için tipik Weblate Bileşen yapılandırması dosyası

Dosya maskesi

po/*.po

Tek dilli temel dil dosyası

po/en.po

Yeni çeviriler kalıbı

po/messages.pot

Dosya biçimi

Gettext PO dosyası (tek dilli)

go-i18n JSON dosyaları#

4.1 sürümünde geldi.

4.16 sürümünde değişti: Bu biçimin 2. sürümü için destek eklendi.

go-i18n çevirileri tek dillidir. Bu nedenle (en sık kullanılan) İngilizce dizgeleri bulunan bir temel dosya belirtmeniz önerilir.

Not

Weblate, go-i18n JSON 1. ve 2. sürümlerini destekler. Lütfen ortamınıza uyan doğru dosya biçimini seçin.

Weblate yapılandırması#

V1 için tipik Weblate Bileşen yapılandırması

Dosya maskesi

langs/*.json

Tek dilli temel dil dosyası

langs/en.json

Yeni çeviriler kalıbı

Boş

Dosya biçimi

go-i18n v1 JSON dosyası

V2 için tipik Weblate Bileşen yapılandırması

Dosya maskesi

langs/*.json

Tek dilli temel dil dosyası

langs/en.json

Yeni çeviriler kalıbı

Boş

Dosya biçimi

go-i18n v2 JSON dosyası

gotext JSON dosyaları#

4.15.1 sürümünde geldi.

gotext çevirileri tek dillidir. Bu nedenle (en sık kullanılan) İngilizce dizgeleri bulunan bir temel dosya belirtmeniz önerilir.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

internal/translations/locales/*/messages.gotext.json

Tek dilli temel dil dosyası

internal/translations/locales/en-GB/messages.gotext.json

Yeni çeviriler kalıbı

Boş

Dosya biçimi

gotext JSON dosyası

GWT özellikleri#

Çeviriler için yerel GWT biçimi.

GWT özellikleri genellikle tek dilli çeviriler olarak kullanılır.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

src/app/Bundle_*.properties

Tek dilli temel dil dosyası

src/app/Bundle.properties

Yeni çeviriler kalıbı

Boş

Dosya biçimi

GWT özellikleri

HTML dosyaları#

4.1 sürümünde geldi.

Çevrilebilir içerik HTML dosyalarından ayıklanır ve çevrilmek üzere sunulur.

Ayrıca bakınız

HTML

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

path/*.html

Tek dilli temel dil dosyası

path/en.html

Yeni çeviriler kalıbı

path/en.html

Dosya biçimi

HTML dosyası

i18next JSON dosyaları#

4.15.1 sürümünde değişti: Bu biçimin 4. sürümü için destek eklendi.

İpucu

Çoğul biçimleri kullanıyorsanız, CLDR ile uyumlu olarak işlenmesi için 4. sürümü kullanmanız önerilir. Eski sürümlerde, bazı diller için doğru olmayan farklı çoğul kuralları var.

i18next, JavaScript ile ve JavaScript için yazılmış bir yerelleştirme çatısıdır. Weblate, bu yerelleştirme dosyalarını çoğul biçimler gibi özelliklerle destekler.

i18next çevirileri tek dillidir. Bu nedenle (en sık kullanılan) İngilizce dizgeleri olan bir temel dosya belirtmeniz önerilir.

Not

Weblate, i18next JSON 3. ve 4. sürümlerini destekler. Lütfen ortamınıza uyan doğru dosya biçimini seçin.

The v2 and v1 variants are mostly compatible with v3, with exception of how plurals are handled.

Örnek dosya:

{
  "hello": "Hello",
  "apple": "I have an apple",
  "apple_plural": "I have {{count}} apples",
  "apple_negative": "I have no apples"
}

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

langs/*.json

Tek dilli temel dil dosyası

langs/en.json

Yeni çeviriler kalıbı

Boş

Dosya biçimi

i18next JSON dosyası v3

IDML biçimi#

4.1 sürümünde geldi.

Çevrilebilir içerik, Adobe InDesign markup dili dosyalarından ayıklanır ve çevrilmek üzere sunulur.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

path/*.idml

Tek dilli temel dil dosyası

path/en.idml

Yeni çeviriler kalıbı

path/en.idml

Dosya biçimi

IDML dosyası

INI çevirileri#

4.1 sürümünde geldi.

Çeviriler için INI dosya biçimi. Weblate şu anda JSON çevirilerinin birkaç çeşidini destekler:

INI çevirileri genellikle tek dilli çeviriler olarak kullanılır.

Not

Weblate, yalnızca bir INI dosyasındaki bölümlerden anahtarları ayıklar. INI dosyanızda bölümler yoksa, bunun yerine Joomla! çevirileri ya da Java özellikleri kullanmak isteyebilirsiniz.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

language/*.ini

Tek dilli temel dil dosyası

language/en.ini

Yeni çeviriler kalıbı

Boş

Dosya biçimi

INI dosyası

Inno Setup INI çevirileri#

4.1 sürümünde geldi.

Çeviriler için Inno Setup INI dosya biçimi.

Inno Setup INI çevirileri genellikle tek dilli çeviriler olarak kullanılır.

Not

INI çevirileri ile arasındaki dikkate değer tek fark, satır sonu için %n ve sekme için %t kodlarının desteklenmesidir.

Not

Şu anda yalnızca Unicode dosyaları (.islu) destekleniyor. ANSI çeşidi (.isl) şu anda desteklenmiyor.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

language/*.islu

Tek dilli temel dil dosyası

language/en.islu

Yeni çeviriler kalıbı

Boş

Dosya biçimi

Inno Setup INI dosyası

Java özellikleri#

Çeviriler için doğal Java biçimi.

Java özellikleri genellikle tek dilli çeviriler olarak kullanılır.

Weblate, bu biçimin ISO-8859-1, UTF-8 ve UTF-16 çeşitlerini destekler. Hepsi tüm Unicode karakterlerinin tutulmasını destekler, yalnızca farklı şekilde kodlanmıştır. ISO-8859-1 içinde, Unicode kaçış dizileri kullanılır (zkou\u0161ka gibi), diğerlerinde karakterler doğrudan UTF-8 ya da UTF-16 olarak kodlanır.

Not

Kaçış dizilerinin yüklenmesi UTF-8 kipinde de çalışır. Bu nedenle lütfen uygulama gereksinimlerinize uygun doğru kodlama kümesini seçerken dikkatli olun.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

src/app/Bundle_*.properties

Tek dilli temel dil dosyası

src/app/Bundle.properties

Yeni çeviriler kalıbı

Boş

Dosya biçimi

Java Properties (ISO-8859-1)

Joomla! çevirileri#

Çeviriler için doğal Joomla! biçimi.

Joomla çevirileri genellikle tek dilli çeviriler olarak kullanılır.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

language/*/com_foobar.ini

Tek dilli temel dil dosyası

language/en-GB/com_foobar.ini

Yeni çeviriler kalıbı

Boş

Dosya biçimi

Joomla dil dosyası

JSON dosyaları#

4.3 sürümünde değişti: JSON dosyasının yapısı, önceki sürümlerde bozulmaya yol açan karmaşık durumlar için bile uygun şekilde korunur.

JSON biçimi çoğunlukla JavaScript içine eklenmiş uygulamaları çevirmek için kullanılır.

Weblate şu anda JSON çevirilerinin birkaç çeşidini destekler:

JSON çevirileri genellikle tek dillidir. Bu nedenle (en sık kullanılan) İngilizce dizgeleri bulunan bir temel dosya belirtmeniz önerilir.

İpucu

JSON dosyası ve JSON iç içe geçmiş yapı dosyası aynı tür dosyaları işleyebilir. İkisi de çeviri yaparken var olan JSON yapısını korur.

Aralarındaki tek fark, Weblate kullanarak yeni dizgeler eklerken. İç içe geçmiş yapı biçimi yeni eklenen anahtarı ayrıştırır ve yeni dizgeyi eşleşen yapıya ekler. Örneğin app.name anahtarı şöyle eklenir:

{
   "app": {
      "name": "Weblate"
   }
}

Örnek dosyalar#

Örnek dosya:

{
  "Hello, world!\n": "Ahoj světe!\n",
  "Orangutan has %d banana.\n": "",
  "Try Weblate at https://demo.weblate.org/!\n": "",
  "Thank you for using Weblate.": ""
}

İç içe geçmiş dosyalar da desteklenir (gereksinimler için yukarıya bakın). Böyle bir dosya şöyle görünebilir:

{
  "weblate": {
    "hello": "Ahoj světe!\n",
    "orangutan": "",
    "try": "",
    "thanks": ""
  }
}

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

langs/translation-*.json

Tek dilli temel dil dosyası

langs/translation-en.json

Yeni çeviriler kalıbı

Boş

Dosya biçimi

`JSON iç içe geçmiş yapı dosyası’

Laravel PHP dizgeleri#

4.1 sürümünde değişti.

Laravel PHP yerelleştirme dosyaları çoğul biçimler ile desteklenir:

<?php
return [
    'welcome' => 'Welcome to our application',
    'apples' => 'There is one apple|There are many apples',
];

Ayrıca bakınız

PHP, Laravel ile yerelleştirme

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

lang/*/texts.php

Tek dilli temel dil dosyası

lang/en/texts.php

Yeni çeviriler kalıbı

lang/en/texts.php

Dosya biçimi

`Laravel PHP dizgeleri

mi18n lang dosyaları#

4.7 sürümünde geldi.

JavaScript yerelleştirmesi için kullanılan dosya biçimi mi18n. Sözdizimsel olarak Java özellikleri ile eşleşir.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

*.lang

Tek dilli temel dil dosyası

en-US.lang

Yeni çeviriler kalıbı

Boş

Dosya biçimi

mi18n lang dosyası

OpenDocument biçimi#

4.1 sürümünde geldi.

Çevrilebilir içerik OpenDocument dosyalarından ayıklanır ve çevrilmek üzere sunulur.

Ayrıca bakınız

OpenDocument Format

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

path/*.odt

Tek dilli temel dil dosyası

path/en.odt

Yeni çeviriler kalıbı

path/en.odt

Dosya biçimi

OpenDocument dosyası

PHP dizgeleri#

PHP çevirileri genellikle tek dillidir. Bu nedenle (en sık kullanılan) İngilizce dizgeleri bulunan bir temel dosya belirtmeniz önerilir.

Weblate şu anda PHP çevirilerinin birkaç çeşidini destekler:

Örnek dosya:

<?php
$LANG['foo'] = 'bar';
$LANG['foo1'] = 'foo bar';
$LANG['foo2'] = 'foo bar baz';
$LANG['foo3'] = 'foo bar baz bag';

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

lang/*/texts.php

Tek dilli temel dil dosyası

lang/en/texts.php

Yeni çeviriler kalıbı

lang/en/texts.php

Dosya biçimi

PHP dizgeleri

Qt Linguist .ts#

Qt temelli uygulamalarda kullanılan çeviri biçimi.

Qt Linguist dosyaları iki dilde ve tek dilde çeviriler için kullanılabilir.

Weblate yapılandırması#

İki dilli olarak kullanıldığında tipik Weblate bileşeni

Dosya maskesi

i18n/app.*.ts

Tek dilli temel dil dosyası

Boş

Yeni çeviriler kalıbı

i18n/app.de.ts

Dosya biçimi

Qt Linguist çeviri dosyası

Tek dilli olarak kullanıldığında tipik Weblate bileşeni

Dosya maskesi

i18n/app.*.ts

Tek dilli temel dil dosyası

i18n/app.en.ts

Yeni çeviriler kalıbı

i18n/app.en.ts

Dosya biçimi

Qt Linguist çeviri dosyası

ResourceDictionary dosyaları#

4.13 sürümünde geldi.

ResourceDictionary, Windows Presentation Foundation (WPF) uygulamaları için yerelleştirilebilir dizge kaynaklarını paketlemek için kullanılan tek dilli bir XML dosya biçimidir.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

Languages/*.xaml

Tek dilli temel dil dosyası

Language/en.xaml

Yeni çeviriler kalıbı

Boş

Dosya biçimi

ResourceDictionary dosyası

RESX .NET kaynak dosyaları#

.XML kaynağı (.resx) dosyası, Microsoft .NET uygulamalarında kullanılan tek dilli XML dosya biçimini kullanır. `.resx <https://lingohub.com/developers/resource-files/resw-resx-localization> ile aynı söz dizimini kullanırken .resw ile değiştirilebilir`_.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

Resources/Language.*.resx

Tek dilli temel dil dosyası

Resources/Language.resx

Yeni çeviriler kalıbı

Boş

Dosya biçimi

.NET kaynak dosyası

Ruby YAML dosyaları#

Kök düğüm olarak dil ile Ruby i18n YAML dosyaları.

Ayrıca bakınız

YAML, YAML dosyaları

Ruby i18n YAML dosyası örneği:

cs:
  weblate:
    hello: ""
    orangutan: ""
    try: ""
    thanks: ""

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

translations/messages.*.yml

Tek dilli temel dil dosyası

translations/messages.en.yml

Yeni çeviriler kalıbı

Boş

Dosya biçimi

Ruby YAML dosyası

Stringsdict biçimi#

4.8 sürümünde geldi.

Apple tarafından kullanılan ve bir dizgenin çoğul biçimlerini tutabilen XML tabanlı biçim.

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

Resources/*.lproj/Localizable.stringsdict

Tek dilli temel dil dosyası

Resources/en.lproj/Localizable.stringsdict ya da Resources/Base.lproj/Localizable.stringsdict

Yeni çeviriler kalıbı

Boş

Dosya biçimi

Stringsdict dosyası

Alt yazı dosyaları#

3.7 sürümünde geldi.

Weblate çeşitli altyazı dosyalarını çevirebilir:

  • SubRip alt yazı dosyası (*.srt)

  • MicroDVD alt yazı dosyası (*.sub)

  • Advanced Substation Alpha alt yazı dosyası (*.ass)

  • Substation Alpha alt yazı dosyası (*.ssa)

Ayrıca bakınız

Subtitles

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

path/*.srt

Tek dilli temel dil dosyası

path/en.srt

Yeni çeviriler kalıbı

path/en.srt

Dosya biçimi

SubRip alt yazı dosyası

TermBase eXchange biçimi#

Desteklenen özellikler#

Açıklama

Kaynak dizge açıklaması <descrip> kod imiyle, çeviri dizgesi açıklaması <node from=“translator”> kod imiyle kaydedilir ve yüklenir.

4.5 sürümünde geldi.

TBX, terminoloji verilerinin alış verişinde kullanılan bir XML biçimidir.

Ayrıca bakınız

Vikipedi üzerinde TBX, TBX, Sözlük

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

tbx/*.tbx

Tek dilli temel dil dosyası

Boş

Yeni çeviriler kalıbı

Boş

Dosya biçimi

TermBase eXchange dosyası

Metin dosyaları#

4.6 sürümünde geldi.

Çevrilebilir içerik düz metin dosyalarından ayıklanır ve çevrilmek üzere sunulur. Her paragraf ayrı bir dizge olarak çevrilir.

Bu biçimin üç çeşidi vardır:

  • Düz metin dosyası

  • DokuWiki metin dosyası

  • MediaWiki metin dosyası

Ayrıca bakınız

Simple Text Documents

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

path/*.txt

Tek dilli temel dil dosyası

path/en.txt

Yeni çeviriler kalıbı

path/en.txt

Dosya biçimi

`Düz metin dosyası

WebExtension JSON#

Mozilla Firefox ya da Google Chromium uzantılarını çevirirken kullanılan dosya biçimi.

Not

Bu biçim JSON olarak adlandırılsa da, teknik özellikleri JSON teknik özelliklerinin dışında kalan yorumların kullanılmasını da sağlar. Weblate şu anda yorumların bulunduğu dosya türünü desteklemiyor.

Örnek dosya:

{
  "hello": {
    "message": "Ahoj světe!\n",
    "description": "Description",
    "placeholders": {
      "url": {
        "content": "$1",
        "example": "https://developer.mozilla.org"
      }
    }
  },
  "orangutan": {
    "message": "Orangutan has $coUnT$ bananas",
    "description": "Description",
    "placeholders": {
      "count": {
        "content": "$1",
        "example": "5"
      }
    }
  },
  "try": {
    "message": "",
    "description": "Description"
  },
  "thanks": {
    "message": "",
    "description": "Description"
  }
}

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

_locales/*/messages.json

Tek dilli temel dil dosyası

_locales/en/messages.json

Yeni çeviriler kalıbı

Boş

Dosya biçimi

WebExtension JSON dosyası

Windows RC dosyaları#

4.1 sürümünde değişti: Windows RC dosyaları desteği yeniden yazıldı.

Not

Bu biçimin desteği şu anda geliştirme aşamasında. Bazı özellikler henüz kullanılamıyor olabilir ve davranışları sürümler arasında değişiklik gösterebilir. Denemelerinizle ilgili geri bildirimlerinizi bekliyoruz.

RC dosyaları, Windows uygulamaları için çevrilebilir metinleri, iletişim pencerelerini ve menüleri yerelleştirmek için kullanılan dil dosyalarıdır.

Ayrıca bakınız

Windows RC files

Örnek dosyalar#

Windows RC dosyası örneği:

LANGUAGE LANG_CZECH, SUBLANG_DEFAULT

STRINGTABLE
BEGIN
    IDS_MSG1                "Hello, world!\n"
    IDS_MSG2                "Orangutan has %d banana.\n"
    IDS_MSG3                "Try Weblate at http://demo.weblate.org/!\n"
    IDS_MSG4                "Thank you for using Weblate."
END

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

lang/*.rc

Tek dilli temel dil dosyası

lang/en-US.rc

Yeni çeviriler kalıbı

lang/en-US.rc

Dosya biçimi

RC dosyası

XLIFF#

XML temelli biçim, çeviri dosyalarını standartlaştırmak için oluşturulmuştur. Ancak sonuçta bu alandaki <https://xkcd.com/927/> birçok standarttan biridir.

XML yerelleştirme değişim dosyası biçimi (XLIFF) genellikle iki dilli olarak kullanılır. Ancak Weblate bunun tek dilli olarak kullanılmasını da destekler.

Weblate, birkaç çeşitte XLIFF desteği sunar:

XLIFF çeviri dosyası

Bileşenlerin içeriğinin düz metin olarak tutulduğu basit XLIFF dosyası (tüm XML bileşenlerinden kaçış).

`Yerleştirilebilir destekli XLIFF’

Yerleştirilebilir ögeleri ve diğer XML ögelerini destekleyen standart XLIFF.

gettext uzantılı XLIFF

XLIFF, çoğul biçimleri desteklemek için Gettext PO için XLIFF 1.2 Gösterim Rehberi ile zenginleştirilmiştir.

Çeviri durumları#

3.3 sürümünde değişti: Weblate, 3.3 sürümünden önce state özniteliğini yok sayıyordu.

Dosyadaki state özniteliği kısmen işlenir ve Weblate üzerindeki Düzenlenmesi gerekli durumuyla eşleştirilir (şu durumlar, bir hedef varsa dizgeyi düzenlenmesi gerekli olarak imlemek için kullanılır: new, needs-translation, needs-adaptation, needs-l10n). state özniteliği eksikse, bir dizge bir <target> bileşeni var olur olmaz çevrilmiş olarak değerlendirilir.

Çeviri dizgesinde approved="yes” varsa, Onaylanmış olarak Weblate içine aktarılır. Diğer her şey Onaylanmayı bekliyor` (XLIFF teknik özellikleriyle eşleşen) olarak içe aktarılır.

Kaydedilirken, Weblate gerekli olmadıkça bu öznitelikleri eklemez:

  • state özniteliği yalnızca dizgenin düzenlenmesi gerekli olarak imlenmesi durumunda eklenir.

  • Onaylanmı özniteliği yalnızca dizgenin onaylanması durumunda eklenir.

  • Diğer durumlarda öznitelikler eklenmez. Ancak var olmaları durumunda güncellenirler.

XLIFF biçimini kullanırken, dizgelerin onaylanmış durumunu görmek ve değiştirmek için Weblate onaylama özelliğini açmanız önemle önerilir.

Benzer şekilde, bu tür dosyaları içe aktarırken (yükleme formunda), Düzenlenmesi gerekli dizgelere yapılacak işlem olarak Çeviri olarak eklensin seçeneğini seçmelisiniz.

Ayrıca bakınız

Özel onaylayanlar

XLIFF dosyasında boşluk ve yeni satırlar#

XML biçimleri arasında boşluk türleri ya da miktarları genellikle ayırt edilmez. Korumak istiyorsanız, dizgeye xml:space="preserve” imini eklemeniz gerekir.

Örnek:

    <trans-unit id="10" approved="yes">
        <source xml:space="preserve">hello</source>
        <target xml:space="preserve">Hello, world!
</target>
    </trans-unit>

Çeviri imlerini belirtmek#

weblate-flags özniteliğini kullanarak ek çeviri imleri belirtebilirsiniz (bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek). Weblate ayrıca XLIFF Taknik özelliklerindeki maxwidth ve font özniteliklerini de anlar:

<trans-unit id="10" maxwidth="100" size-unit="pixel" font="ubuntu;22;bold">
   <source>Hello %s</source>
</trans-unit>
<trans-unit id="20" maxwidth="100" size-unit="char" weblate-flags="c-format">
   <source>Hello %s</source>
</trans-unit>

font özniteliği yazı tipi ailesi, boyutu ve ağırlığı için işlenir. Yukarıdaki örnekte bunların tümünü görebilirsiniz. Ancak yalnızca yazı tipi ailesi gereklidir. Yazı tipi ailesindeki herhangi bir boşluk alt çizgiye dönüştürülür. Bu nedenle Source Sans Pro, Source_Sans_Pro olur. Lütfen yazı tipi grubunu adlandırırken bunu aklınızda bulundurun (bilgi almak için: Yazı tiplerini yönetmek).

Dizge anahtarları#

Weblate, XLIFF dosyasındaki birimleri, var olması durumunda resname özniteliğiyle tanımlar ve id kullanmaya döner (varsa file kod imi ile birlikte).

resname özniteliğinin, birimin insan dostu belirteci olması ve Weblate üzerinde id yerine görüntülenmesini daha uygun biçime getirmesi beklenir. resname, tüm XLIFF dosyasında benzersiz olmalıdır. Bu durum Weblate için gereklidir ve XLIFF standardı kapsamında değildir. Özniteliğe herhangi bir benzersizlik kısıtlaması getirmez.

Weblate yapılandırması#

İki dilli XLIFF için tipik Weblate bileşeni

Dosya maskesi

localizations/*.xliff

Tek dilli temel dil dosyası

Boş

Yeni çeviriler kalıbı

localizations/en-US.xliff

Dosya biçimi

XLIFF çeviri dosyası

Tek dilli XLIFF için tipik Weblate bileşeni

Dosya maskesi

localizations/*.xliff

Tek dilli temel dil dosyası

localizations/en-US.xliff

Yeni çeviriler kalıbı

localizations/en-US.xliff

Dosya biçimi

XLIFF çeviri dosyası

YAML dosyaları#

Dizge anahtarları ve değerleri bulunan düz YAML dosyaları. Weblate ayrıca listelerden ya da sözlüklerden dizgeleri ayıklar.

Weblate şu anda YAML çevirilerinin birkaç çeşidini destekler:

Ayrıca bakınız

YAML, Ruby YAML dosyaları

YAML dosyası örneği:

weblate:
  hello: ""
  orangutan": ""
  try": ""
  thanks": ""

Weblate yapılandırması#

Tipik Weblate Bileşen yapılandırması

Dosya maskesi

translations/messages.*.yml

Tek dilli temel dil dosyası

translations/messages.en.yml

Yeni çeviriler kalıbı

Boş

Dosya biçimi

YAML dosyası

Kendiliğinden algılama#

Weblate, Çeviri projelerini ve bileşenleri eklemek sırasında dosya biçimini algılamaya çalışır. Aynı serileştirme biçiminin (JSON, YAML, özellikler) ya da dosya kodlamasının farklı çeşitleri yanlış algılanabilir. Bu nedenle lütfen bileşeni oluşturmadan önce Dosya biçimi değerinin doğru olduğundan emin olun.

Çeviri türü yetenekleri#

Desteklenen tüm biçimlerdeki yetenekler#

Biçim

Dil bilgisi [1]

Çoğullar [2]

Açıklamalar [3]

Bağlam [4]

Konum [5]

İmler [8]

Ek durumlar [6]

GNU gettext

iki dilde

evet

evet

evet

evet

evet [9]

düzenlenmesi gerekli

Tek dilli gettext

tek

evet

evet

evet

evet

evet [9]

düzenlenmesi gerekli

XLIFF

ikisi de

evet

evet

evet

evet

evet

düzenlenmesi gerekli, onaylanmış

Java özellikleri

ikisi de

hayır

evet

hayır

hayır

hayır

mi18n lang dosyaları

tek

hayır

evet

hayır

hayır

hayır

GWT özellikleri

tek

evet

evet

hayır

hayır

hayır

Joomla! çevirileri

tek

hayır

evet

hayır

evet

hayır

Qt Linguist .ts

ikisi de

evet

evet

hayır

evet

evet

düzenlenmesi gerekli

Android dizge kaynakları

tek

evet

evet [7]

hayır

hayır

evet

Apple iOS dizgeleri

ikisi de

hayır

evet

hayır

hayır

hayır

PHP dizgeleri

tek

hayır [10]

evet

hayır

hayır

hayır

JSON dosyaları

tek

hayır

hayır

hayır

hayır

hayır

i18next JSON dosyaları

tek

evet

hayır

hayır

hayır

hayır

go-i18n JSON dosyaları

tek

evet

evet

hayır

hayır

hayır

gotext JSON dosyaları

tek

evet

evet

hayır

evet

hayır

ARB dosyası

tek

evet

evet

hayır

hayır

hayır

WebExtension JSON

tek

evet

evet

hayır

hayır

hayır

RESX .NET kaynak dosyaları

tek

hayır

evet

hayır

hayır

evet

ResourceDictionary dosyaları

tek

hayır

hayır

hayır

hayır

evet

CSV dosyaları

ikisi de

hayır

evet

evet

evet

hayır

düzenlenmesi gerekli

YAML dosyaları

tek

hayır

hayır

hayır

hayır

hayır

Ruby YAML dosyaları

tek

evet

hayır

hayır

hayır

hayır

DTD dosyaları

tek

hayır

hayır

hayır

hayır

hayır

Düz XML dosyaları

tek

hayır

hayır

hayır

hayır

evet

Windows RC dosyaları

tek

hayır

evet

hayır

hayır

hayır

Excel Open XML

tek

hayır

evet

evet

evet

hayır

düzenlenmesi gerekli

Uygulama mağazası üst veri dosyaları

tek

hayır

hayır

hayır

hayır

hayır

Alt yazı dosyaları

tek

hayır

hayır

hayır

evet

hayır

HTML dosyaları

tek

hayır

hayır

hayır

hayır

hayır

OpenDocument biçimi

tek

hayır

hayır

hayır

hayır

hayır

IDML biçimi

tek

hayır

hayır

hayır

hayır

hayır

INI çevirileri

tek

hayır

hayır

hayır

hayır

hayır

Inno Setup INI çevirileri

tek

hayır

hayır

hayır

hayır

hayır

TermBase eXchange biçimi

iki dilde

hayır

evet

hayır

hayır

evet

Metin dosyaları

tek

hayır

hayır

hayır

hayır

hayır

Stringsdict biçimi

tek

evet

hayır

hayır

hayır

hayır

Fluent biçimi

tek

hayır [11]

evet

hayır

hayır

hayır

İki dilli ve tek dilli biçimler#

Hem tek dilli hem de iki dilli biçimler desteklenir. İki dilli biçimler iki dili tek bir dosyada tutar. Kaynak ve çeviri (tipik örnekler GNU gettext, XLIFF ya da Apple iOS dizgeleri). Diğer taraftan, tek dilli biçimler dizgeyi kimliğine göre tanımlar ve her dil dosyasında yalnızca bunların belirli bir dille eşleşmesi bulunur (genellikle Android dizge kaynakları). Bazı dosya biçimleri her iki çeşit için de kullanılır. Aşağıda ayrıntılı açıklamayı bulabilirsiniz.

Tek dilli dosyaların doğru kullanımı için Weblate, kaynaklarıyla çevrilecek dizgelerin tam listesinin bulunduğu bir dosyaya erişmelidir. Bu dosyaya Weblate içinde Tek dilli temel dil dosyası adı verilir. Ancak adlandırma yapınızda bu ad değişebilir.

Ayrıca, bu iş akışı, geliştiriciler tarafından sağlanan dizgeleri kapsayacak şekilde Ara dil dosyası kullanılarak genişletilebilir. Ancak son dizgelerde olduğu gibi kullanılmamalıdır.

Dizge durumları#

Çoğu dosya biçimi yalnızca “Çevrilmemiş” ve “Çevrilmiş” dizgeleri birbirinden ayırır. Bazı biçimlerde, “Düzenlenmesi gerekli” ya da “Onaylanmış” gibi daha ayrıntılı durum bilgileri tutulabilir.

Kaynak dizge açıklaması#

Kaynak dizge açıklamaları, çevrilecek dizge ile ilgili ek bilgiler vermek için kullanılabilir.

Çeşitli biçimler çevirmenlere ek bilgi sağlamak için yerel destek sağlar (XLIFF, GNU gettext, WebExtension JSON, CSV dosyaları, Excel Open XML, : ref:qtling, go-i18n JSON dosyaları, gotext JSON dosyaları, ARB dosyası, RESX .NET kaynak dosyaları gibi). Diğer birçok biçim, kaynak dizge açıklaması olarak en yakın yorumu işler.

Açıklama#

Dizgelerdeki Açıklama birkaç dosya biçiminde tutulabilir ve işlenebilir.

Şu anda yalnızca TermBase eXchange biçimi ile destekleniyor.

Kaynak dizge konumu#

Bir dizgenin kaynak kodundaki konumu, yetkin çevirmenlerin dizgenin nasıl kullanıldığını anlamalarına yardımcı olabilir.

Bu bilgiler genellikle dizgelerin araçlar kullanılarak kaynak koddan ayıklandığı iki dilli biçimlerde bulunur. Örneğin GNU gettext ve Qt Linguist .ts.

Çeviri imleri#

Çeviri imleri, Weblate davranışının özelleştirilmesini sağlar. Bazı biçimler, imlerin çeviri dosyasında tanımlanmasını destekler (Weblate arayüzünden her zaman tanımlayabilirsiniz. Bilgi almak için: :ref:`custom-checks’).

Bu özellik, GNU gettext içindeki imlerde modellenmiştir.

İmler, tüm XML tabanlı biçimler için standart olmayan weblate-flags özniteliğinden ayıklanır. Ek olarak, max-length:N, XLIFF standardında tanımlandığı gibi maxwidth özniteliği ile desteklenir. Bilgi almak için: Çeviri imlerini belirtmek.

Bağlam#

Bağlam, farklı kapsamlarda kullanılan özdeş dizgeleri ayırt etmek için kullanılır (örneğin, İngilizce Sun, “Pazar” gününün kısaltılmış biçimi olarak ya da bize en yakın yıldızın adı olarak kullanılabilir).

Tek dilli biçimler için dizge belirteci (genellikle anahtar olarak adlandırılır) aynı amaca hizmet edebilir ve ek bağlam gerekli değildir.

Çoğul biçimli dizgeler#

Çoğul biçimler, değişken sayısı olan dizgeleri doğru yerelleştirmek için gereklidir. Kurallar hedef dile bağlıdır ve birçok biçim bunun için CLDR teknik özelliklerini kullanılır.

İpucu

Çoğul biçimli dizgeler uygulama çatısı tarafından da desteklenmelidir. Platformunuza uygun GNU gettext, :ref:`aresource’ ya da :ref:’stringsdict’ yerel biçimini seçin.

Salt okunur dizgeler#

3.10 sürümünde geldi.

Çeviri dosyalarındaki salt okunur dizgeler de alınır. Ancak Weblate üzerinde düzenlenemez. Bu özellik yerel olarak birkaç biçim (XLIFF ve Android dizge kaynakları) tarafından desteklenir. Ancak salt okunur imi eklenerek diğerlerinde taklit edilebilir. Bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek.

Diğer biçimlerin desteği#

Serileştirmeyi destekleyen translate-toolkit tarafından desteklenen çoğu biçim kolayca desteklenebilir. Ancak (henüz) herhangi bir deneme yapılmamıştır. Çoğu durumda, farklı translate-toolkit depolarının davranış farklılıklarını gizlemek için Weblate üzerinde bazı ince katmanlar gereklidir.

Yeni bir biçim desteği eklemek için yeğlenen yaklaşım, önce translate-toolkit içine bu biçim için desteği eklemektir.

Sürüm denetimi bütünleştirmesi#

Weblate şu anda Git (gelişmiş destek ile GitHub çekme istekleri, GitLab birleştirme istekleri, Gitea çekme isteği, Gerrit, Subversion ve Bitbucket sunucusu çekme isteği) ve Mercurial sürüm denetimi sistemlerini destekliyor.

Depolara erişmek#

Kullanmak istediğiniz sürüm denetimi deposuna Weblate üzerinden erişilebiliyor olması gerekir. Herkese açık olan bir depoda doğru adresi yazmanız yeterlidir (https://github.com/WeblateOrg/weblate.git gibi). Ancak gizli depolar ya da itme adresleri için kurulum daha karmaşıktır ve kimlik doğrulaması gerekir.

Hosted Weblate üzerinden depolara erişmek#

Hosted Weblate için GitHub, Bitbucket, Codeberg ve GitLab üzerinde kayıtlı özel bir itme kullanıcısı bulunur (kullanıcı adı weblate, e-posta adresi hosted@weblate.org ve adı Weblate push user olan). Bu kullanıcıyı katılımcı olarak eklemeniz ve deponuza uygun izni vermeniz gerekir (kopyalama için salt okunur izni uygundur, itme için yazma izni gereklidir). Hizmete ve kuruluş ayarlarınıza bağlı olarak, bu işlem hemen yapılır ya da Weblate tarafında onay gerekir.

GitHub üzerindeki weblate kullanıcısı davetleri beş dakika içinde kendiliğinden kabul eder. Diğer hizmetlerde işlemi el ile yapmak gerekebilir, bu nedenle lütfen sabırlı olun.

weblate kullanıcısı eklendikten sonra, SSH iletişim kuralını kullanarak Kaynak kod deposu ve Depo itme adresi değerlerini yapılandırabilirsiniz (örneğin git@github.com:WeblateOrg/weblate.git).

SSH depoları#

Gizli depolara erişmek için en sık kullanılan yöntem SSH kullanmaktır. Herkese açık Weblate SSH anahtarını (bilgi almak için: Weblate SSH anahtarı) yukarı akış deposuna bu şekilde erişmesi için yetkilendirin.

Uyarı

GitHub üzerinde her anahtar yalnızca bir kez kullanılabilir. Bilgi almak için: GitHub depoları ve Hosted Weblate üzerinden depolara erişmek.

Weblate ayrıca ilk bağlantıda sunucu anahtarının parmak izini saklar ve daha sonra değişmesi durumunda sunucu ile bağlantı kuramaz (bilgi almak için: SSH sunucu anahtarlarını doğrulamak).

Ayarlama yapılması gerektiğinde, bunu Weblate yönetim arayüzünden yapın:

_images/ssh-keys.png
Weblate SSH anahtarı#

4.17 sürümünde değişti: Weblate artık hem RSA hem de Ed25519 SSH anahtarları üretebiliyor. Yeni kurulumlar için Ed25519 kullanılması önerilir.

Tüm kullanıcılar herkese açık Weblate anahtarını, Hakkında sayfasında görebilir.

Yöneticiler, yönetim arayüzü açılış sayfasında (SSH anahtarları bölümünden) Weblate tarafından bağlantıda kullanılmakta olan herkese açık anahtarı oluşturabilir veya görüntüleyebilir.

Not

İlgili kişisel SSH anahtarının şu anda bir parolası olamaz. Bu nedenle iyi korunduğundan emin olun.

İpucu

Oluşturulan kişisel Weblate SSH anahtarının yedeğini alın.

SSH sunucu anahtarlarını doğrulamak#

Weblate, SSH sunucu anahtarlarını ilk kez eriştiğinde kendiliğinden depolar ve sonraki kullanımlar için hatırlar.

Depoya bağlanmadan önce anahtar parmak izini doğrulamak isterseniz, erişeceğiniz sunucuların SSH sunucu anahtarlarını yönetim arayüzünün aynı bölümünden Sunucu anahtarı ekle ile ekleyin. Erişeceğiniz sunucu adını yazın (gitlab.com gibi) ve Gönder üzerine basın. Parmak izinin eklediğiniz sunucuyla eşleştiğini doğrulayın.

Parmak izli eklenen anahtarlar onay iletisinde görüntülenir:

_images/ssh-keys-added.png

GitHub depoları#

SSH üzerinden erişilebilir (bilgi almak için: SSH depoları). Ancak birden fazla depoya erişmeniz gerekirse, izin verilen SSH anahtarı kullanımında uyarısı ile bir GitHub sınırlamasıyla karşılaşırsınız (her anahtar yalnızca bir kez kullanılabilir).

İtme işleminin yapılacağı dal ayarlanmamışsa, proje dallanır ve değişiklikler bir daldan itilir. Ayarlanmış ise, değişiklikler yukarı akış deposuna ve seçilen dala itilir.

Daha küçük dağıtımlar için, kişisel erişim belirteci ve GitHub hesabınızla HTTPS kimlik doğrulaması kullanın. Bilgi almak için: Komut satırı kullanımı için erişim belirteci oluşturmak.

Daha büyük kurulumlar için, Weblate için özel bir kullanıcı oluşturmak, Weblate üzerinde oluşturulan genel SSH anahtarını atamak (bilgi almak için: Weblate SSH anahtarı) ve çevirmek istediğiniz tüm depolara erişim izni vermek genellikle daha iyidir. Bu yaklaşım Hosted Weblate için de kullanılır. Bunun için özel bir weblate kullanıcısı vardır.

İç Weblate adresleri#

Bir depo kurulumunu, diğer (bağlantılı) bileşenlerde weblate://project/component olarak konumlandırılmasına atıfta bulunarak farklı bileşenler arasında paylaşın. Bu şekilde bağlantılı bileşenler, ana (başvurulan) bileşenin sürüm denetimi sistemi deposu yapılandırmasını kullanır.

Uyarı

Ana bileşenin kaldırılması, bağlantılı bileşenleri de kaldırır.

Weblate, eşleşen bir depo kurulumu olan bir bileşen bulursa, bileşen oluştururken depo adresini kendiliğinden ayarlar. Bileşen yapılandırmasının son adımında bunu değiştirebilirsiniz.

Bunun kullanılma nedenleri:

  • Sunucuda daha az disk alanı kullanır, depo yalnızca bir kez kaydedilir.

  • Güncellemelerin daha hızlı yapılmasını sağlar, yalnızca bir depo güncellenir.

  • Weblate çevirilerinin bulunduğu yalnızca tek bir depo dışa aktarılır (bilgi almak için: Git dışa aktarıcı).

  • Bazı eklentiler bir depoyu paylaşan birden fazla bileşen üzerinde çalışabilir. Örneğin Git işlemelerini bir araya toplar.

HTTPS depoları#

Korunmuş HTTPS depolarına erişmek için adrese kullanıcı adını ve parolayı ekleyin. Endişelenmeyin, Weblate, adresi kullanıcılara görüntülerken (depo adresinin görülmesine izin verilse bile) bu bilgileri çıkarır.

Örneğin, kimlik doğrulaması eklenmiş GitHub adresi şöyle görünebilir: https://kullanıcı:erişim_kodunuz@github.com/WeblateOrg/weblate.git.

Not

Kullanıcı adınızda ya da parolanızda özel karakterler varsa, bunların URL olarak kodlanması gerekir. Örneğin ``https://kullanıcı%40örnek.com:%24parola%23@bitbucket.org/…’’.

Vekil sunucu kullanmak#

Bir vekil sunucu kullanarak HTTP/HTTPS sürüm denetimi sistemi depolarına erişmeniz gerekiyorsa, sürüm denetimi sistemini bunu kullanacak şekilde yapılandırın.

Bunun için, http_proxy, https_proxy ve all_proxy ortam değişkenlerini kullanın (bilgi almak için: cURL belgeleri) ya da sürüm denetimi sistemi yapılandırmasından dayatın. Örneğin:

git config --global http.proxy http://user:password@proxy.example.com:80

Not

Vekil sunucu yapılandırmasının Weblate çalıştıran kullanıcı ile (ayrıca bilgi almak için: Dosya sistemi izinleri) ve HOME=$DATA_DIR/home (bilgi almak için: DATA_DIR) yolunda yapılması gerekir. Yoksa Weblate tarafından yürütülen Git bunu kullanmaz.

Git#

İpucu

Weblate için Git 2.12 ya da daha yeni sürümü gereklidir.

Ayrıca bakınız

Farklı türde depolara nasıl erişileceği ile ilgili bilgi almak için: Depolara erişmek.

Git (itme dayatması ile)#

Bu tam olarak Git gibi davranır. Tek fark her zaman itmenin dayatılmasıdır. Yalnızca çeviriler için ayrı bir depo kullanılması durumunda seçilmesi amaçlanmıştır.

Uyarı

Dikkatli kullanın, çünkü kolayca yukarı akış deponuzda eksik işlemelere yol açar.

Git yapılandırmasını özelleştirmek#

Weblate, tüm sürüm denetimi sistemi komutlarını HOME=$DATA_DIR/home ile çağırır (bilgi almak için DATA_DIR). Bu nedenle kullanıcı yapılandırması DATA_DIR/home/.git içinde düzenlenmelidir.

Git uzak yardımcıları#

Ek olarak diğer sürüm denetim sistemlerini desteklemek için Git remote helpers kullanabilirsiniz. Ancak bunun yol açabileceği sorunları çözmeye hazır olmalısınız.

Şu anda, Bazaar ve Mercurial yardımcıları GitHub üzerindeki ayrı depolarda bulunabilir: git-remote-hg ve git-remote-bzr. Bunları el ile indirin ve arama yolunuzda bir yere koyun (~/bin gibi). İlgili sürüm denetim sistemlerinin kurulmuş olduğundan emin olun.

Kurduktan sonra, bu uzak yardımcılar Weblate üzerinde bir depo belirtmek için kullanılabilir.

Bazaar kullanarak Launchpad üzerindeki gnuselam projesini kopyalamak için:

bzr::lp:gnuhello

Mercurial kullanarak selenic.com üzerindeki selam deposu için:

hg::http://selenic.com/repo/hello

Uyarı

Git uzak yardımcılarını kullanmanın zorluğu, örneğin Mercurial üzerinde, uzak yardımcının değişiklikleri geri iterken yeni bir ipucu oluşturmasıdır.

GitHub çekme istekleri#

Bu yöntem, Git üzerine çeviri değişikliklerini doğrudan depoya itmek yerine GitHub API ile çekme istekleri olarak itmeyi sağlayan ince bir katman ekler.

Git değişiklikleri doğrudan bir depoya iterken, GitHub çekme istekleri çekme istekleri oluşturur. İkincisi, yalnızca Git depolarına erişmek için gerekmez.

Bunun çalışması için Weblate ayarlarında API kimlik doğrulama bilgilerini (GITHUB_CREDENTIALS) yapılandırmanız gerekir. Yapılandırdığınızda, Sürüm denetimi sistemi seçerken GitHub seçeneğini göreceksiniz.

GitLab birleştirme istekleri#

3.9 sürümünde geldi.

Bu yöntem, Git üzerine çeviri değişikliklerini doğrudan depoya itmek yerine, GitLab API ile birleştirme istekleri olarak itmeyi sağlayan ince bir katman ekler.

Git depolarına erişmek için bunu kullanmak gerekmez. Sıradan Git aynı şekilde çalışır. Tek fark bir depoya itme işleminin nasıl yapıldığıdır. Git ile değişiklikler doğrudan depoya itilirken, GitLab birleştirme istekleri birleştirme isteği oluşturur.

Bunun çalışması için Weblate ayarlarından API kimlik doğrulama bilgilerini (GITLAB_CREDENTIALS) yapılandırmanız gerekir. Yapılandırdığınızda sonra, Sürüm denetimi sistemi seçerken GitLab seçeneğini göreceksiniz.

Gitea çekme isteği#

4.12 sürümünde geldi.

Bu yöntem, Git üzerine çeviri değişikliklerini doğrudan depoya itmek yerine Gitea API ile çekme istekleri olarak itmeyi sağlayan ince bir katman ekler.

Git depolarına erişmek için bunu kullanmak gerekmez. Sıradan Git aynı şekilde çalışır. Tek fark bir depoya itme işleminin nasıl yapıldığıdır. Git ile değişiklikler doğrudan depoya itilirken, Gitea çekme isteği birleştirme isteği oluşturur.

Bunun çalışması için Weblate ayarlarında API kimlik doğrulama bilgilerini (GITEA_CREDENTIALS) yapılandırmanız gerekir. Yapılandırdığınızda, Sürüm denetimi sistemi seçerken Gitea seçeneğini göreceksiniz.

Bitbucket sunucusu çekme isteği#

4.16 sürümünde geldi.

Bu yöntem, Git üzerine çeviri değişikliklerini doğrudan depoya itmek yerine Bitbucket sunucu API ile çekme istekleri olarak itmeyi sağlayan ince bir katman ekler.

Uyarı

Bu yöntemde, Bitbucket Cloud API desteği yoktur.

Git depolarına erişmek için bunu kullanmak gerekmez. Sıradan Git aynı şekilde çalışır. Tek fark bir depoya itme işleminin nasıl yapıldığıdır. Git ile değişiklikler doğrudan depoya itilirken, Bitbucket sunucusu çekme isteği birleştirme isteği oluşturur.

Bunun çalışması için Weblate ayarlarında API kimlik doğrulama bilgilerini (BITBUCKETSERVER_CREDENTIALS) yapılandırmanız gerekir. Yapılandırdığınızda, Sürüm denetimi sistemi seçerken Bitbucket sunucusu seçeneğini göreceksiniz.

Pagure birleştirme istekleri#

4.3.2 sürümünde geldi.

Bu yöntem, Git üzerine çeviri değişikliklerini doğrudan depoya itmek yerine, Pagure API ile birleştirme istekleri olarak itmeyi sağlayan ince bir katman ekler.

Git depolarına erişmek için bunu kullanmak gerekmez. Sıradan Git aynı şekilde çalışır. Tek fark bir depoya itme işleminin nasıl yapıldığıdır. Git ile değişiklikler doğrudan depoya itilirken, Pagure birleştirme istekleri birleştirme isteği oluşturur.

Bunun çalışması için Weblate ayarlarında API kimlik doğrulama bilgilerini (PAGURE_CREDENTIALS) yapılandırmanız gerekir. Yapılandırdığınızda, Sürüm denetimi sistemi seçerken Pagure seçeneğini göreceksiniz.

Gerrit#

Bu yöntem git-review aracını kullanarak, Git üzerine çeviri değişikliklerini doğrudan depoya itmek yerine Gerrit onaylama istekleri olarak itmeyi sağlayan ince bir katman ekler.

Gerrit belgelerinde, bu tür depoları kurmak için gerekli yapılandırma bilgilerini bulabilirsiniz.

Mercurial#

Mercurial, doğrudan Weblate içinden kullanabileceğiniz başka bir sürüm denetimi sistemidir.

Not

Herhangi bir Mercurial sürümüyle çalışmalıdır. Ancak bazen komut satırı arayüzünde Weblate bütünleştirmesini bozan uyumsuz değişiklikler olabilir.

Ayrıca bakınız

Farklı türde depolara nasıl erişileceği ile ilgili bilgi almak için: Depolara erişmek.

Subversion#

Weblate, subversion depolarıyla etkileşim kurmak için git-svn kullanır. Subversion depolarının bir Git istemcisi tarafından kullanılması ve kullanıcıların iç deponun tam bir kopyasını alarak yerelde işleme yapabilmesi bir Perl betiği tarafından sağlanır.

Not

Weblate, Subversion depo düzenini kendiliğinden algılamayı dener. Hem dal için doğrudan adresleri hem de standart düzendeki depoları (branches/ , tags/ ve trunk/) destekler. Bu konuda bilgi almak için git-svn belgeleri bölümüne bakabilirsiniz. Deponuzun düzeni standart değilse ve hatalarla karşılaşırsanız, dal adını depo adresine eklemeyi ve dalı boş bırakmayı deneyin.

Subversion kimlik doğrulama bilgileri#

Weblate, sertifikayı (ve gerekirse kimlik doğrulama bilgilerinizi) önceden onaylamış olmanızı bekler. Bunları DATA_DIR klasörüne eklemeye çalışır. $HOME ortam değişkeninin DATA_DIR olarak ayarlanmış olduğunu denetleyin ve svn kullanarak sertifikayı onaylayın:

# Use DATA_DIR as configured in Weblate settings.py, it is /app/data in the Docker
HOME=${DATA_DIR}/home svn co https://svn.example.com/example

Ayrıca bakınız

DATA_DIR

Yerel dosyalar#

İpucu

Bunun altında Git kullanılır. Git kurulu olmalıdır. Tüm geçmişleriyle birlikte çevirileriniz için doğal biçimde Git kullanmaya geçmenizi sağlar.

3.8 sürümünde geldi.

Weblate, uzak sürüm denetimi sistemi olmadan da çalışabilir. İlk çeviriler yüklenerek içe aktarılır. Daha sonra tek tek dosyalar dosya yükleme ile değiştirebilir ya da doğrudan Weblate üzerinden çeviri dizgeleri eklenebilir (şu anda yalnızca tek dilli çeviriler için kullanılabilir).

Arka planda Weblate sizin için bir Git deposu oluşturur ve tüm değişiklikler izlenir. Daha sonra çevirileri depolamak için bir sürüm denetimi sistemi kullanmaya karar verirseniz, Bütünleştirmenizde kullanabileceğiniz deponuz Weblate içinde hazır olur.

Weblate REST API uygulaması#

API erişimi için /api/ adresi kullanılabilir. API Django REST framework üzerine geliştirilmiştir. Doğrudan ya da :ref:`wlc’ ile kullanabilirsiniz.

Kimlik doğrulama ve genel parametreler#

Herkese açık proje API uygulaması kimlik doğrulaması olmadan kullanılabilir. Ancak kimliği doğrulanmamış istekler yoğun şekilde kısıtlanır (varsayılan olarak günde 100 istek). Bu nedenle kimlik doğrulamasının kullanılması önerilir. Kimlik doğrulamasında, profilinizden alabileceğiniz bir kod kullanılır. Bunu Yetkilendirme üst bilgisinde kullanın:

ANY /#

API için genel istek davranışı, buradaki üst bilgiler, durum kodları ve parametreler tüm uç noktalara da uygulanır.

Sorgu parametreleri:
  • format – Yanıt biçimi (Accept değiştirir). Olası değerler REST çatısının kurulumuna bağlıdır. Varsayılan olarak json ve api desteklenir. İkincisi, API için tarayıcı arayüzünü sağlar.

  • page – Sayfalanmış sonuçların belirtilen sayfasını görüntüler (gezinmeyi otomatikleştirmek için yanıtta next ve previous alanlarını kullanın).

İstek üst bilgileri:
  • Accept – Yanıt içerik türü Accept üst bilgisine bağlıdır

  • Authorization – Kimlik doğrulaması için Authorization: Token BELIRTECİNİZ olarak isteğe bağlı belirteç

Yanıt üst bilgileri:
  • Content-Type – bu parametre, isteğin Accept üst bilgisine bağlıdır

  • Allow – Nesne için izin verilen HTTP yöntemlerinin listesi

Yanıt JSON nesnesi:
  • detail (string) – Sonucun ayrıntılı açıklaması (200 OK dışındaki HTTP durum kodları için)

  • count (int) – Nesne listelerindeki toplam öge sayısı

  • next (string) – Nesne listeleri için sonraki sayfa adresi

  • previous (string) – Nesne listeleri için önceki sayfa adresi

  • results (array) – Nesne listelerinin sonuçları

  • url (string) – API ile bu kaynağa erişme adresi

  • web_url (string) – Tarayıcı ile bu kaynağa erişme adresi

Durum kodları:

Kimlik doğrulama kodları#

4.10 sürümünde değişti: Proje kapsamlı kodlar 4.10 sürümünde tanıtıldı.

Her kullanıcı için, kullanıcı profilinden öğrenilebilecek bir kendi kişisel erişim kodu bulunur. Yeni oluşturulan kullanıcı kodları wlu_ ön ekini taşır.

Yalnızca belirli bir projeye API erişimi sağlamak için proje kapsamlı kodlar oluşturulabilir. Bu belirteçler wlp_ ön ekiyle anlaşılabilir.

Kimlik doğrulama örnekleri#

Örnek istek:

GET /api/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript
Authorization: Token YOUR-TOKEN

Örnek yanıt:

HTTP/1.0 200 OK
Date: Fri, 25 Mar 2016 09:46:12 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, HEAD, OPTIONS

{
    "projects":"http://example.com/api/projects/",
    "components":"http://example.com/api/components/",
    "translations":"http://example.com/api/translations/",
    "languages":"http://example.com/api/languages/"
}

CURL örneği:

curl \
    -H "Authorization: Token TOKEN" \
    https://example.com/api/

Parametre aktarma örnekleri#

POST yöntemi için parametreler form gönderimi (application/x-www-form-urlencoded) ya da JSON (application/json) olarak belirtilebilir.

Form isteği örneği:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Token TOKEN

operation=pull

JSON isteği örneği:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

CURL örneği:

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

CURL JSON örneği:

curl \
    --data-binary '{"operation":"pull"}' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

API hız sınırlaması#

API isteklerinin hızı sınırlanmıştır; Varsayılan yapılandırmada anonim kullanıcılar için günde 100 istek ve kimliği doğrulanmış kullanıcılar için saatte 5000 istek sınırı bulunur.

Hız sınırlaması settings.py dosyasından ayarlanabilir. Nasıl yapılandırılacağı ile ilgili ayrıntılı bilgi almak için Throttling in Django REST framework documentation bölümüne bakabilirsiniz.

Docker kapsayıcısında hız sınırlaması WEBLATE_API_RATELIMIT_ANON ve WEBLATE_API_RATELIMIT_USER seçenekleri kullanılarak yapılandırılabilir.

Hız sınırlamasının durumu şu üst bilgiler ile bildirilir:

X-RateLimit-Limit

Yapılacak isteklerin hız sınırlama sınırı

X-RateLimit-Remaining

Kalan istek sınırı

X-RateLimit-Reset

Saniye olarak hız sınırlama penceresinin sıfırlanma süresi

4.1 sürümünde değişti: Eklenen hız sınırlaması durumu üst bilgileri.

API giriş noktası#

GET /api/#

API kök giriş noktası.

Örnek istek:

GET /api/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript
Authorization: Token YOUR-TOKEN

Örnek yanıt:

HTTP/1.0 200 OK
Date: Fri, 25 Mar 2016 09:46:12 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, HEAD, OPTIONS

{
    "projects":"http://example.com/api/projects/",
    "components":"http://example.com/api/components/",
    "translations":"http://example.com/api/translations/",
    "languages":"http://example.com/api/languages/"
}

Kullanıcılar#

4.0 sürümünde geldi.

GET /api/users/#

Kullanıcıları yönetme izniniz varsa kullanıcı listesini görüntüler. Yoksa, yalnızca kendi bilgilerinizi görüntüler.

Ayrıca bakınız

Kullanıcı nesnesi öznitelikleri GET /api/users/(str:username)/ bölümünde bulunabilir.

POST /api/users/#

Yeni bir kullanıcı oluşturur.

Parametreler:
  • username (string) – Kullanıcı adı

  • full_name (string) – Kullanıcının tam adı

  • email (string) – Kullanıcının e-posta adresi

  • is_superuser (boolean) – Kullanıcı süper kullanıcı mı? (isteğe bağlı)

  • is_active (boolean) – Kullanıcı etkin mi? (isteğe bağlı)

  • is_bot (boolean) – Kullanıcı bot mu? (isteğe bağlı) (proje kapsamındaki belirteçler için kullanılır)

GET /api/users/(str: username)/#

Kullanıcılar hakkındaki bilgileri görüntüler.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

Yanıt JSON nesnesi:
  • username (string) – bir kullanıcının kullanıcı adı

  • full_name (string) – bir kullanıcının tam adı

  • email (string) – bir kullanıcının e-posta adresi

  • is_superuser (boolean) – kullanıcının süper kullanıcı olup olmadığı

  • is_active (boolean) – kullanıcının etkin olup olmadığı

  • is_bot (boolean) – kullanıcının bot olup olmadığı (proje kapsamındaki belirteçler için kullanılır)

  • date_joined (string) – kullanıcının oluşturulduğu tarih

  • groups (array) – ilişkili grup bağlantıları. Bilgi almak için: GET /api/groups/(int:id)/

Örnek JSON verileri:

{
    "email": "user@example.com",
    "full_name": "Example User",
    "username": "exampleusername",
    "groups": [
        "http://example.com/api/groups/2/",
        "http://example.com/api/groups/3/"
    ],
    "is_superuser": true,
    "is_active": true,
    "is_bot": false,
    "date_joined": "2020-03-29T18:42:42.617681Z",
    "url": "http://example.com/api/users/exampleusername/",
    "statistics_url": "http://example.com/api/users/exampleusername/statistics/"
}
PUT /api/users/(str: username)/#

Kullanıcı parametrelerini değiştirir.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

Yanıt JSON nesnesi:
  • username (string) – bir kullanıcının kullanıcı adı

  • full_name (string) – bir kullanıcının tam adı

  • email (string) – bir kullanıcının e-posta adresi

  • is_superuser (boolean) – kullanıcının süper kullanıcı olup olmadığı

  • is_active (boolean) – kullanıcının etkin olup olmadığı

  • is_bot (boolean) – kullanıcının bot olup olmadığı (proje kapsamındaki belirteçler için kullanılır)

  • date_joined (string) – kullanıcının oluşturulduğu tarih

PATCH /api/users/(str: username)/#

Kullanıcı parametrelerini değiştirir.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

Yanıt JSON nesnesi:
  • username (string) – bir kullanıcının kullanıcı adı

  • full_name (string) – bir kullanıcının tam adı

  • email (string) – bir kullanıcının e-posta adresi

  • is_superuser (boolean) – kullanıcının süper kullanıcı olup olmadığı

  • is_active (boolean) – kullanıcının etkin olup olmadığı

  • is_bot (boolean) – kullanıcının bot olup olmadığı (proje kapsamındaki belirteçler için kullanılır)

  • date_joined (string) – kullanıcının oluşturulduğu tarih

DELETE /api/users/(str: username)/#

Tüm kullanıcı bilgilerini siler ve kullanıcıyı etkin değil olarak imler.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

POST /api/users/(str: username)/groups/#

Grupları bir kullanıcı ile ilişkilendirir.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

Form parametreleri:
  • string group_id – Benzersiz grup kimliği

DELETE /api/users/(str: username)/groups/#

4.13.1 sürümünde geldi.

Kullanıcıyı bir gruptan kaldır.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

Form parametreleri:
  • string group_id – Benzersiz grup kimliği

GET /api/users/(str: username)/statistics/#

Bir kullanıcının istatistiklerini görüntüle.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

Yanıt JSON nesnesi:
  • translated (int) – Kullanıcının yaptığı çeviri sayısı

  • suggested (int) – Kullanıcının yaptığı öneri sayısı

  • uploaded (int) – Kullanıcının yaptığı yükleme sayısı

  • commented (int) – Kullanıcının yaptığı yorum sayısı

  • languages (int) – Kullanıcının çevirebileceği dil sayısı

GET /api/users/(str: username)/notifications/#

Bir kullanıcının aboneliklerini listeler.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

POST /api/users/(str: username)/notifications/#

Abonelikleri bir kullanıcıyla ilişkilendirir.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

JSON nesnesi ister:
  • notification (string) – Kayıtlı bildirimin adı

  • scope (int) – Var olan seçeneklerden bildirim kapsamı

  • frequency (int) – Bildirimler için sıklık seçenekleri

GET /api/users/(str: username)/notifications/(int: subscription_id)/#

Bir kullanıcıyla ilişkilendirilmiş bir aboneliği alır.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

  • subscription_id (int) – Kayıtlı bildirim kimliği

PUT /api/users/(str: username)/notifications/(int: subscription_id)/#

Bir kullanıcıyla ilişkili aboneliği düzenler.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

  • subscription_id (int) – Kayıtlı bildirim kimliği

JSON nesnesi ister:
  • notification (string) – Kayıtlı bildirimin adı

  • scope (int) – Var olan seçeneklerden bildirim kapsamı

  • frequency (int) – Bildirimler için sıklık seçenekleri

PATCH /api/users/(str: username)/notifications/(int: subscription_id)/#

Bir kullanıcıyla ilişkili aboneliği düzenler.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

  • subscription_id (int) – Kayıtlı bildirim kimliği

JSON nesnesi ister:
  • notification (string) – Kayıtlı bildirimin adı

  • scope (int) – Var olan seçeneklerden bildirim kapsamı

  • frequency (int) – Bildirimler için sıklık seçenekleri

DELETE /api/users/(str: username)/notifications/(int: subscription_id)/#

Bir kullanıcıyla ilişkili aboneliği siler.

Parametreler:
  • username (string) – Kullanıcının kullanıcı adı

  • subscription_id – Kayıtlı bildirimin adı

  • subscription_id – tamsayı

Gruplar#

4.0 sürümünde geldi.

GET /api/groups/#

Grupları yönetme izniniz varsa grupların listesini görüntüler. Yoksa, yalnızca kullanıcının parçası olduğu grupları görüntüler.

Ayrıca bakınız

Grup nesnesi öznitelikleri GET /api/groups/(int:id)/ bölümünde bulunabilir.

POST /api/groups/#

Yeni bir grup oluşturur.

Parametreler:
GET /api/groups/(int: id)/#

Grup hakkındaki bilgileri görüntüler.

Parametreler:
  • id (int) – Grubun kimliği

Yanıt JSON nesnesi:

Örnek JSON verileri:

{
    "name": "Guests",
    "defining_project": null,
    "project_selection": 3,
    "language_selection": 1,
    "url": "http://example.com/api/groups/1/",
    "roles": [
        "http://example.com/api/roles/1/",
        "http://example.com/api/roles/2/"
    ],
    "languages": [
        "http://example.com/api/languages/en/",
        "http://example.com/api/languages/cs/",
    ],
    "projects": [
        "http://example.com/api/projects/demo1/",
        "http://example.com/api/projects/demo/"
    ],
    "componentlist": "http://example.com/api/component-lists/new/",
    "components": [
        "http://example.com/api/components/demo/weblate/"
    ]
}
PUT /api/groups/(int: id)/#

Grup parametrelerini değiştirir.

Parametreler:
  • id (int) – Grubun kimliği

Yanıt JSON nesnesi:
  • name (string) – bir grubun adı

  • project_selection (int) – proje grubuna karşılık gelen tamsayı

  • language_selection (int) – dil grubuna karşılık gelen tamsayı

PATCH /api/groups/(int: id)/#

Grup parametrelerini değiştirir.

Parametreler:
  • id (int) – Grubun kimliği

Yanıt JSON nesnesi:
  • name (string) – bir grubun adı

  • project_selection (int) – proje grubuna karşılık gelen tamsayı

  • language_selection (int) – dil grubuna karşılık gelen tamsayı

DELETE /api/groups/(int: id)/#

Grubu siler.

Parametreler:
  • id (int) – Grubun kimliği

POST /api/groups/(int: id)/roles/#

Rolleri bir grupla ilişkilendirir.

Parametreler:
  • id (int) – Grubun kimliği

Form parametreleri:
  • string role_id – Benzersiz rol kimliği

POST /api/groups/(int: id)/components/#

Bileşenleri bir grupla ilişkilendirir.

Parametreler:
  • id (int) – Grubun kimliği

Form parametreleri:
  • string component_id – Benzersiz bileşen kimliği

DELETE /api/groups/(int: id)/components/(int: component_id)#

Bileşeni bir gruptan siler.

Parametreler:
  • id (int) – Grubun kimliği

  • component_id (int) – Benzersiz bileşen kimliği

POST /api/groups/(int: id)/projects/#

Projeleri bir grupla ilişkilendirir.

Parametreler:
  • id (int) – Grubun kimliği

Form parametreleri:
  • string project_id – Benzersiz proje kimliği

DELETE /api/groups/(int: id)/projects/(int: project_id)#

Projeyi bir gruptan siler.

Parametreler:
  • id (int) – Grubun kimliği

  • project_id (int) – Benzersiz proje kimliği

POST /api/groups/(int: id)/languages/#

Dilleri bir grupla ilişkilendirir.

Parametreler:
  • id (int) – Grubun kimliği

Form parametreleri:
  • string language_code – Benzersiz dil kodu

DELETE /api/groups/(int: id)/languages/(string: language_code)#

Dili bir gruptan siler.

Parametreler:
  • id (int) – Grubun kimliği

  • language_code (string) – Benzersiz dil kodu

POST /api/groups/(int: id)/componentlists/#

Bileşen listelerini bir grupla ilişkilendirir.

Parametreler:
  • id (int) – Grubun kimliği

Form parametreleri:
  • string component_list_id – Benzersiz bileşen listesi kimliği

DELETE /api/groups/(int: id)/componentlists/(int: component_list_id)#

Bileşen listesini bir gruptan siler.

Parametreler:
  • id (int) – Grubun kimliği

  • component_list_id (int) – Benzersiz bileşen listesi kimliği

Roller#

GET /api/roles/#

Kullanıcıyla ilişkili tüm rollerin listesini görüntüler. Kullanıcı süper kullanıcıysa, var olan tüm rollerin listesini görüntüler.

Ayrıca bakınız

Roller nesnesi öznitelikleri GET /api/roles/(int:id)/ bölümünde bulunabilir.

POST /api/roles/#

Yeni bir rol oluşturur.

Parametreler:
  • name (string) – Rol adı

  • permissions (array) – İzinlerin kod adı listesi

GET /api/roles/(int: id)/#

Bir rol hakkındaki bilgileri görüntüler.

Parametreler:
  • id (int) – Rol kimliği

Yanıt JSON nesnesi:
  • name (string) – Rol adı

  • permissions (array) – izinlerin kod adı listesi

Örnek JSON verileri:

{
    "name": "Access repository",
    "permissions": [
        "vcs.access",
        "vcs.view"
    ],
    "url": "http://example.com/api/roles/1/",
}
PUT /api/roles/(int: id)/#

Rol parametrelerini değiştirir.

Parametreler:
  • id (int) – Rolün kimliği

Yanıt JSON nesnesi:
  • name (string) – Rol adı

  • permissions (array) – izinlerin kod adı listesi

PATCH /api/roles/(int: id)/#

Rol parametrelerini değiştirir.

Parametreler:
  • id (int) – Rolün kimliği

Yanıt JSON nesnesi:
  • name (string) – Rol adı

  • permissions (array) – izinlerin kod adı listesi

DELETE /api/roles/(int: id)/#

Rolü siler.

Parametreler:
  • id (int) – Rolün kimliği

Diller#

GET /api/languages/#

Tüm dillerin listesini görüntüler.

Ayrıca bakınız

Dil nesnesi öznitelikleri GET /api/languages/(string:language)/ bölümünde bulunabilir.

POST /api/languages/#

Yeni bir dil oluşturur.

Parametreler:
  • code (string) – Dil adı

  • name (string) – Dil adı

  • direction (string) – Metin yönü

  • population (int) – Konuşan sayısı

  • plural (object) – Dil çoğul formülü ve sayısı

GET /api/languages/(string: language)/#

Bir dil hakkındaki bilgileri görüntüler.

Parametreler:
  • language (string) – Dil kodu

Yanıt JSON nesnesi:
  • code (string) – Dil kodu

  • direction (string) – Metin yönü

  • plural (object) – Dil çoğul bilgisinin nesnesi

  • aliases (array) – Dil için takma adlar dizisi

JSON nesnesi ister:
  • population (int) – Konuşan sayısı

Örnek JSON verileri:

{
    "code": "en",
    "direction": "ltr",
    "name": "English",
    "population": 159034349015,
    "plural": {
        "id": 75,
        "source": 0,
        "number": 2,
        "formula": "n != 1",
        "type": 1
    },
    "aliases": [
        "english",
        "en_en",
        "base",
        "source",
        "eng"
    ],
    "url": "http://example.com/api/languages/en/",
    "web_url": "http://example.com/languages/en/",
    "statistics_url": "http://example.com/api/languages/en/statistics/"
}
PUT /api/languages/(string: language)/#

Dil parametrelerini değiştirir.

Parametreler:
  • language (string) – Dilin kodu

JSON nesnesi ister:
  • name (string) – Dil adı

  • direction (string) – Metin yönü

  • population (int) – Konuşan sayısı

  • plural (object) – Dil çoğul ayrıntıları

PATCH /api/languages/(string: language)/#

Dil parametrelerini değiştirir.

Parametreler:
  • language (string) – Dilin kodu

JSON nesnesi ister:
  • name (string) – Dil adı

  • direction (string) – Metin yönü

  • population (int) – Konuşan sayısı

  • plural (object) – Dil çoğul ayrıntıları

DELETE /api/languages/(string: language)/#

Dili siler.

Parametreler:
  • language (string) – Dilin kodu

GET /api/languages/(string: language)/statistics/#

Bir dilin istatistiklerini görüntüler.

Parametreler:
  • language (string) – Dil kodu

Ayrıca bakınız

Geri dönen öznitelikler İstatistikler bölümünde açıklanmıştır.

Projeler#

GET /api/projects/#

Tüm projelerin listesini görüntüler.

Ayrıca bakınız

Proje nesnesi öznitelikleri GET /api/projects/(string:project)/ bölümünde bulunabilir.

POST /api/projects/#

3.9 sürümünde geldi.

Yeni bir proje oluşturur.

Parametreler:
  • name (string) – Proje adı

  • slug (string) – Proje kısaltması

  • web (string) – Proje sitesi

GET /api/projects/(string: project)/#

Bir proje hakkındaki bilgileri görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

Yanıt JSON nesnesi:

Örnek JSON verileri:

{
    "name": "Hello",
    "slug": "hello",
    "url": "http://example.com/api/projects/hello/",
    "web": "https://weblate.org/",
    "web_url": "http://example.com/projects/hello/"
}
PATCH /api/projects/(string: project)/#

4.3 sürümünde geldi.

Bir projeyi PATCH isteğiyle düzenler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

PUT /api/projects/(string: project)/#

4.3 sürümünde geldi.

Bir projeyi PUT isteğiyle düzenler.

Parametreler:
  • project (string) – Proje adresi kısaltması

DELETE /api/projects/(string: project)/#

3.9 sürümünde geldi.

Bir projeyi siler.

Parametreler:
  • project (string) – Proje adresi kısaltması

GET /api/projects/(string: project)/changes/#

Proje değişikliklerinin listesini görüntüler. Temelde GET /api/changes/ kapsamıyla aynı parametreleri kabul eden bir projedir.

Parametreler:
  • project (string) – Proje adresi kısaltması

Yanıt JSON nesnesi:
GET /api/projects/(string: project)/repository/#

Sürüm denetimi sistemi deposunun durumu ile ilgili bilgileri görüntüler. Bu noktada, projenin tüm depoları için yalnızca genel bir özet bulunur. Daha ayrıntılı durum bilgileri almak için GET /api/components/(string:project)/(string:component)/repository/ kullanın.

Parametreler:
  • project (string) – Proje adresi kısaltması

Yanıt JSON nesnesi:
  • needs_commit (boolean) – işlenebilecek bekleyen değişikliklerin olup olmadığı

  • needs_merge (boolean) – aktarılabilecek herhangi bir yukarı akış değişikliğinin olup olmadığı

  • needs_push (boolean) – itilecek herhangi bir yerel değişikliğin olup olmadığı

Örnek JSON verileri:

{
    "needs_commit": true,
    "needs_merge": false,
    "needs_push": true
}
POST /api/projects/(string: project)/repository/#

Sürüm denetimi sistemi deposunda belirtilen işlemi gerçekleştirir.

Parametreler:
  • project (string) – Proje adresi kısaltması

JSON nesnesi ister:
  • operation (string) – Yürütülecek işlem: push, pull, commit, reset, cleanup, file-sync ya da file-scan olabilir

Yanıt JSON nesnesi:
  • result (boolean) – işlemin sonucu

CURL örneği:

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/repository/

JSON isteği örneği:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

JSON yanıtı örneği:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"result":true}
GET /api/projects/(string: project)/components/#

Belirtilen projedeki çeviri bileşenlerinin listesini görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

Yanıt JSON nesnesi:
POST /api/projects/(string: project)/components/#

3.9 sürümünde geldi.

4.3 sürümünde değişti: Sürüm denetimi sistemi kullanmayan bileşenler için de zipfile ve docfile parametreleri kabul edilir. Bilgi almak için: Yerel dosyalar.

4.6 sürümünde değişti: Kopyalanan depolar İç Weblate adresleri kullanılarak kendiliğinden bir proje içinde paylaşılabilir. Bu özelliği kapatmak için disable_autoshare seçeneğini kullanın.

Belirtilen projede çeviri bileşenleri oluşturur.

İpucu

Tek bir sürüm denetimi sistemi deposundan birden fazla bileşen oluştururken İç Weblate adresleri seçeneğini kullanın.

Not

Bileşen oluşturma işleminin çoğu arka planda yapılır. Oluşturulan bileşenin task_url özniteliğini denetleyin ve oradaki ilerlemeyi izleyin.

Parametreler:
  • project (string) – Proje adresi kısaltması

Form parametreleri:
  • file zipfile – Çevirilerin başlatılması için Weblate üzerine yüklenecek ZIP dosyası

  • file docfile – Çevrilecek belge

  • boolean disable_autoshareİç Weblate adresleri seçeneği ile kendiliğinden depo paylaşımını devre dışı bırakır.

JSON nesnesi ister:
Yanıt JSON nesnesi:

Dosyalar zipfile ve docfile parametreleri kullanılarak yüklenirken JSON kullanılamaz. Veriler multipart/form-data olarak yüklenmelidir.

CURL form isteği örneği:

curl \
    --form docfile=@strings.html \
    --form name=Weblate \
    --form slug=weblate \
    --form file_format=html \
    --form new_lang=add \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

CURL JSON isteği örneği:

curl \
    --data-binary '{
        "branch": "main",
        "file_format": "po",
        "filemask": "po/*.po",
        "name": "Weblate",
        "slug": "weblate",
        "repo": "https://github.com/WeblateOrg/hello.git",
        "template": "",
        "new_base": "po/hello.pot",
        "vcs": "git"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

Git üzerinden yeni bir bileşen oluşturan JSON isteği:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "https://github.com/WeblateOrg/hello.git",
    "template": "",
    "new_base": "po/hello.pot",
    "vcs": "git"
}

Başka bir bileşenden yeni bir bileşen oluşturan JSON isteği:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "file_format": "po",
    "filemask": "po/*.po",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "weblate://weblate/hello",
    "template": "",
    "new_base": "po/hello.pot",
    "vcs": "git"
}

JSON yanıtı örneği:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "Weblate",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
             "population": 159034349015,
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
GET /api/projects/(string: project)/languages/#

Bir projedeki tüm diller için sayfalanmış istatistikleri görüntüler.

3.8 sürümünde geldi.

Parametreler:
  • project (string) – Proje adresi kısaltması

Yanıt JSON nesnesi:
  • results (array) – çeviri istatistiği nesneleri dizisi

  • language (string) – dil adı

  • code (string) – dil kodu

  • total (int) – toplam dizge sayısı

  • translated (int) – çevrilmiş dizge sayısı

  • translated_percent (float) – çevrilmiş dizge yüzdesi

  • total_words (int) – toplam sözcük sayısı

  • translated_words (int) – çevrilmiş sözcük sayısı

  • words_percent (float) – çevrilmiş sözcük yüzdesi

GET /api/projects/(string: project)/statistics/#

Bir projenin istatistiklerini görüntüler.

3.8 sürümünde geldi.

Parametreler:
  • project (string) – Proje adresi kısaltması

Ayrıca bakınız

Geri dönen öznitelikler İstatistikler bölümünde açıklanmıştır.

Bileşenler#

İpucu

Yeni bileşenler oluşturmak için POST /api/projects/(string:project)/components/ kullanın.

GET /api/components/#

Çeviri bileşenlerinin listesini görüntüler.

Ayrıca bakınız

Bileşen nesnesi özenitelikleri GET /api/components/(string:project)/(string:component)/ bölümünde bulunabilir.

GET /api/components/(string: project)/(string: component)/#

Çeviri bileşeni hakkındaki bilgileri görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Yanıt JSON nesnesi:

Örnek JSON verileri:

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "Weblate",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
             "population": 159034349015,
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "source_language": {
        "code": "en",
        "direction": "ltr",
        "population": 159034349015,
        "name": "English",
        "url": "http://example.com/api/languages/en/",
        "web_url": "http://example.com/languages/en/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
PATCH /api/components/(string: project)/(string: component)/#

Bir bileşeni PATCH isteği ile düzenleme.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • source_language (string) – Proje kaynak dili kodu (isteğe bağlı)

JSON nesnesi ister:
  • name (string) – bileşen adı

  • slug (string) – bileşen kısaltması

  • repo (string) – Sürüm denetimi sistemi deposunun adresi

CURL örneği:

curl \
    --data-binary '{"name": "new name"}' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    PATCH http://example.com/api/projects/hello/components/

JSON isteği örneği:

PATCH /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "name": "new name"
}

JSON yanıtı örneği:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "new name",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
            "population": 159034349015,
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
PUT /api/components/(string: project)/(string: component)/#

Bir bileşeni PUT isteği ile düzenleme.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

JSON nesnesi ister:
  • branch (string) – Sürüm denetimi sistemi deposunun dalı

  • file_format (string) – çevirilerin dosya biçimi

  • filemask (string) – depodaki çeviri dosyalarının modeli

  • name (string) – bileşen adı

  • slug (string) – bileşen kısaltması

  • repo (string) – Sürüm denetimi sistemi deposunun adresi

  • template (string) – tek dilli çeviriler için temel dosya

  • new_base (string) – yeni çeviriler eklemek için temel dosya

  • vcs (string) – sürüm denetimi sistemi

DELETE /api/components/(string: project)/(string: component)/#

3.9 sürümünde geldi.

Bir bileşeni siler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

GET /api/components/(string: project)/(string: component)/changes/#

Bileşen değişikliklerinin listesini görüntüler. Temelde GET /api/changes/ kapsamında bir bileşendir ve aynı parametreleri kabul eder.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Yanıt JSON nesnesi:
GET /api/components/(string: project)/(string: component)/file/#

4.9 sürümünde geldi.

Bileşenle ilişkili tüm kullanılabilir çevirileri istenilen biçimdeki arşiv dosyası olarak indirir.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Sorgu parametreleri:
  • format (string) – Kullanılacak arşiv biçimi belirtilmemişse varsayılan olarak zip biçimi kullanılır. Desteklenen biçimler: zip

GET /api/components/(string: project)/(string: component)/screenshots/#

Bileşen ekran görüntülerinin listesini görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Yanıt JSON nesnesi:
GET /api/components/(string: project)/(string: component)/lock/#

Bileşenin kilit durumunu görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Yanıt JSON nesnesi:
  • locked (boolean) – bileşenin güncellemeler için kilitlenip kilitlenmediği

Örnek JSON verileri:

{
    "locked": false
}
POST /api/components/(string: project)/(string: component)/lock/#

Bileşenin kilit durumunu ayarlar.

Yanıt GET /api/components/(string:project)/(string:component)/lock/ ile aynıdır.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

JSON nesnesi ister:
  • lock – Kilitli olduğunu ya da olmadığını belirten ikili değer.

CURL örneği:

curl \
    -d lock=true \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

JSON isteği örneği:

POST /api/components/hello/weblate/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"lock": true}

JSON yanıtı örneği:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"locked":true}
GET /api/components/(string: project)/(string: component)/repository/#

Sürüm denetimi sitemi deposunun durumu hakkındaki bilgileri görüntüler.

Yanıt GET /api/projects/(string:project)/repository/ ile aynıdır.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Yanıt JSON nesnesi:
  • needs_commit (boolean) – işlenebilecek bekleyen değişikliklerin olup olmadığı

  • needs_merge (boolean) – aktarılabilecek herhangi bir yukarı akış değişikliğinin olup olmadığı

  • needs_push (boolean) – itilecek herhangi bir yerel değişikliğin olup olmadığı

  • remote_commit (string) – Uzaktan işleme bilgileri

  • status (string) – Sürüm denetimi sistemi tarafından bildirilen sürüm denetimi sistemi deposunun durumu

  • merge_failure – Varsa aktarım hatasını açıklayan metin, yoksa null

POST /api/components/(string: project)/(string: component)/repository/#

Sürüm denetimi sistemi deposunda belirtilen işlemi gerçekleştirir.

Belgeler için POST /api/projects/(string:project)/repository/ adresine bakabilirsiniz.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

JSON nesnesi ister:
  • operation (string) – Yapılacak işlem: push, pull, commit, reset ya da cleanup

Yanıt JSON nesnesi:
  • result (boolean) – işlemin sonucu

CURL örneği:

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

JSON isteği örneği:

POST /api/components/hello/weblate/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

JSON yanıtı örneği:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"result":true}
GET /api/components/(string: project)/(string: component)/monolingual_base/#

Tek dilli çeviriler için temel dosyayı indirir.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

GET /api/components/(string: project)/(string: component)/new_template/#

Yeni çeviriler için kalıp dosyasını indirir.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

GET /api/components/(string: project)/(string: component)/translations/#

Belirtilen bileşendeki çeviri nesnelerinin listesini görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Yanıt JSON nesnesi:
POST /api/components/(string: project)/(string: component)/translations/#

Belirtilen bileşende yeni çeviri oluşturur.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

JSON nesnesi ister:
Yanıt JSON nesnesi:
  • result (object) – oluşturulan yeni çeviri nesnesi

CURL örneği:

curl \
    -d language_code=cs \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

JSON isteği örneği:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"language_code": "cs"}

JSON yanıtı örneği:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "failing_checks": 0,
    "failing_checks_percent": 0,
    "failing_checks_words": 0,
    "filename": "po/cs.po",
    "fuzzy": 0,
    "fuzzy_percent": 0.0,
    "fuzzy_words": 0,
    "have_comment": 0,
    "have_suggestion": 0,
    "is_template": false,
    "is_source": false,
    "language": {
        "code": "cs",
        "direction": "ltr",
        "population": 1303174280
        "name": "Czech",
        "url": "http://example.com/api/languages/cs/",
        "web_url": "http://example.com/languages/cs/"
    },
    "language_code": "cs",
    "id": 125,
    "last_author": null,
    "last_change": null,
    "share_url": "http://example.com/engage/hello/cs/",
    "total": 4,
    "total_words": 15,
    "translate_url": "http://example.com/translate/hello/weblate/cs/",
    "translated": 0,
    "translated_percent": 0.0,
    "translated_words": 0,
    "url": "http://example.com/api/translations/hello/weblate/cs/",
    "web_url": "http://example.com/projects/hello/weblate/cs/"
}
GET /api/components/(string: project)/(string: component)/statistics/#

Bileşen içindeki tüm çevirilerin sayfalandırılmış istatistiklerini görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Ayrıca bakınız

Geri dönen öznitelikler İstatistikler bölümünde açıklanmıştır.

Bir bileşenle ilişkili projeleri görüntüler.

4.5 sürümünde geldi.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Yanıt JSON nesnesi:
POST /api/components/(string: project)/(string: component)/links/#

Projeyi bir bileşenle ilişkilendirir.

4.5 sürümünde geldi.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

Form parametreleri:
  • string project_slug – Proje kısaltması

Bir projenin bir bileşenle ilişkisini kaldırır.

4.5 sürümünde geldi.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • project_slug (string) – Kaldırılacak projenin kısaltması

Çeviriler#

GET /api/translations/#

Çevirilerin listesini görüntüler.

Ayrıca bakınız

Çeviri nesnesi öznitelikleri GET /api/translations/(string:project)/(string:component)/(string:language)/ bölümünde bulunabilir.

GET /api/translations/(string: project)/(string: component)/(string: language)/#

Bir çeviriyle ilgili bilgileri görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

Yanıt JSON nesnesi:
  • component (object) – bileşen nesnesi. Bilgi almak için: GET /api/components/(string:project)/(string:component)/

  • failing_checks (int) – denetim hatası olan dizge sayısı

  • failing_checks_percent (float) – denetim hatası olan dizge yüzdesi

  • failing_checks_words (int) – denetim hatası olan sözcük sayısı

  • filename (string) – çeviri dosyası adı

  • fuzzy (int) – belirsiz (düzenlenecek olarak imlenmiş) dizge sayısı

  • fuzzy_percent (float) – belirsiz (düzenlenecek olarak imlenmiş) dizge yüzdesi

  • fuzzy_words (int) – belirsiz (düzenlenecek olarak imlenmiş) dizge sayısı

  • have_comment (int) – belirsiz (düzenlenecek olarak imlenmiş) dizge yüzdesi

  • have_suggestion (int) – önerileri olan dizge sayısı

  • is_template (boolean) – çeviri tabanının tek dilli olup olmadığı

  • language (object) – kaynak dil nesnesi. Ayrıntılı bilgi alın GET /api/languages/(string:language)/

  • language_code (string) – depoda kullanılan dil kodu. Dil nesnesindeki dil kodundan farklı olabilir

  • last_author (string) – son yazarın adı

  • last_change (timestamp) – son değişiklik zaman damgası

  • revision (string) – dosyanın sürüm karması

  • share_url (string) – Etkileşim sayfasına yönlendiren paylaşım adresi

  • total (int) – toplam dizge sayısı

  • total_words (int) – toplam sözcük sayısı

  • translate_url (string) – Çeviri adresi

  • translated (int) – çevrilmiş dizge sayısı

  • translated_percent (float) – çevrilmiş dizge yüzdesi

  • translated_words (int) – çevrilmiş sözcük sayısı

  • repository_url (string) – Depo durumu adresi: Bilgi almak için: GET /api/translations/(string:project)/(string:component)/(string:language)/repository/

  • file_url (string) – Dosya nesnesi adresi. Bilgi almak için: GET /api/translations/(string:project)/(string:component)/(string:language)/file/

  • changes_list_url (string) – Değişiklik listesi adresi. Bilgi almak için: GET /api/translations/(string:project)/(string:component)/(string:language)/changes/

  • units_list_url (string) – Dizge listesi adresi. Bilgi almak için: GET /api/translations/(string:project)/(string:component)/(string:language)/units/

Örnek JSON verileri:

{
    "component": {
        "branch": "main",
        "file_format": "po",
        "filemask": "po/*.po",
        "git_export": "",
        "license": "",
        "license_url": "",
        "name": "Weblate",
        "new_base": "",
        "project": {
            "name": "Hello",
            "slug": "hello",
            "source_language": {
                "code": "en",
                "direction": "ltr",
                "population": 159034349015,
                "name": "English",
                "url": "http://example.com/api/languages/en/",
                "web_url": "http://example.com/languages/en/"
            },
            "url": "http://example.com/api/projects/hello/",
            "web": "https://weblate.org/",
            "web_url": "http://example.com/projects/hello/"
        },
        "repo": "file:///home/nijel/work/weblate-hello",
        "slug": "weblate",
        "template": "",
        "url": "http://example.com/api/components/hello/weblate/",
        "vcs": "git",
        "web_url": "http://example.com/projects/hello/weblate/"
    },
    "failing_checks": 3,
    "failing_checks_percent": 75.0,
    "failing_checks_words": 11,
    "filename": "po/cs.po",
    "fuzzy": 0,
    "fuzzy_percent": 0.0,
    "fuzzy_words": 0,
    "have_comment": 0,
    "have_suggestion": 0,
    "is_template": false,
    "language": {
        "code": "cs",
        "direction": "ltr",
        "population": 1303174280
        "name": "Czech",
        "url": "http://example.com/api/languages/cs/",
        "web_url": "http://example.com/languages/cs/"
    },
    "language_code": "cs",
    "last_author": "Weblate Admin",
    "last_change": "2016-03-07T10:20:05.499",
    "revision": "7ddfafe6daaf57fc8654cc852ea6be212b015792",
    "share_url": "http://example.com/engage/hello/cs/",
    "total": 4,
    "total_words": 15,
    "translate_url": "http://example.com/translate/hello/weblate/cs/",
    "translated": 4,
    "translated_percent": 100.0,
    "translated_words": 15,
    "url": "http://example.com/api/translations/hello/weblate/cs/",
    "web_url": "http://example.com/projects/hello/weblate/cs/"
}
DELETE /api/translations/(string: project)/(string: component)/(string: language)/#

3.9 sürümünde geldi.

Bir çeviriyi siler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

GET /api/translations/(string: project)/(string: component)/(string: language)/changes/#

Çeviri değişikliklerinin listesini görüntüler. Temelde aynı parametreleri kabul eden bir GET /api/changes/ çeviri kapsamıdır.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

Yanıt JSON nesnesi:
GET /api/translations/(string: project)/(string: component)/(string: language)/units/#

Çeviri birimlerinin listesini görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

  • q (string) – Arama sorgusu dizgesi Arama (isteğe bağlı)

Yanıt JSON nesnesi:
POST /api/translations/(string: project)/(string: component)/(string: language)/units/#

Yeni birim ekle.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

JSON nesnesi ister:
  • key (string) – Çeviri biriminin adı (anahtar veya bağlam olarak kullanılır)

  • value (array) – Kaynak dizgeler (çoğul oluşturmuyorsanız tekil dizge kullanın)

  • state (int) – Dizge durumu. Bilgi almak için: GET /api/units/(int:id)/

Yanıt JSON nesnesi:
POST /api/translations/(string: project)/(string: component)/(string: language)/autotranslate/#

Kendiliğinden çeviriyi tetikler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

JSON nesnesi ister:
  • mode (string) – Kendiliğinden çeviri kipi

  • filter_type (string) – Kendiliğinden çeviri süzgeci türü

  • auto_source (string) – Kendiliğinden çeviri kaynağı - mt ya da others

  • component (string) – Ek bileşenlere erişebilmesi için projenin paylaşılan çeviri belleğine katkıda bulunma özelliğini açar.

  • engines (array) – Makine çevirisi hizmetleri

  • threshold (string) – Skor eşiği

GET /api/translations/(string: project)/(string: component)/(string: language)/file/#

Geçerli çeviri dosyasını sürüm denetimi sisteminde tutulduğu biçimde (format parametresini kullanmadan) ya da başka bir biçime dönüştürülmüş olarak indirir (bilgi almak için: Çevirileri indirmek).

Not

Bu API noktası, veriler yerine tüm dosya üzerinde çalıştığından çıktı için geri kalan API işleyişinden farklı bir mantık kullanır. Kabul edilen format parametre kümesi farklıdır ve böyle bir parametre belirtilmediğinde sürüm denetimi sisteminde depolanmış çeviri dosyasını alır.

Sorgu parametreleri:
  • format – Kullanılacak dosya biçimi. Belirtilmemişse biçim dönüşümü yapılmaz. Desteklenen biçimlerle ilgili bilgi almak için: :ref:`download’

  • q (string) – İndirilen dizgeleri süzer. Bilgi almak için: Arama Sayfası. Yalnızca dönüşüm yapıldığında geçerlidir (format belirtildiğinde).

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

POST /api/translations/(string: project)/(string: component)/(string: language)/file/#

Çevirileri içeren yeni dosya yükler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

Form parametreleri:
  • string conflicts – Çakışmaların nasıl işleneceği (ignore, replace-translated ya da replace-approved)

  • file file – Yüklenen dosya

  • string email – İlgilinin e-posta adresi

  • string author – Katkıda bulunanın adı

  • string method – Yükleme yöntemi (translate, approve, suggest, fuzzy, replace, source, add). Bilgi almak için: İçe aktarma yöntemleri

  • string fuzzy – Belirsiz (düzenlenecek olarak imlenmiş) dizgeleri işleme (empty, process, approve)

CURL örneği:

curl -X POST \
    -F file=@strings.xml \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/translations/hello/android/cs/file/
GET /api/translations/(string: project)/(string: component)/(string: language)/repository/#

Sürüm denetimi sitemi deposunun durumu hakkındaki bilgileri görüntüler.

Yanıt GET /api/components/(string:project)/(string:component)/repository/ ile aynıdır.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

POST /api/translations/(string: project)/(string: component)/(string: language)/repository/#

Sürüm denetimi sistemi deposunda belirtilen işlemi gerçekleştirir.

Belgeler için POST /api/projects/(string:project)/repository/ adresine bakabilirsiniz.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

JSON nesnesi ister:
  • operation (string) – Yapılacak işlem: push, pull, commit, reset ya da cleanup

Yanıt JSON nesnesi:
  • result (boolean) – işlemin sonucu

GET /api/translations/(string: project)/(string: component)/(string: language)/statistics/#

Ayrıntılı çeviri istatistiklerini görüntüler.

Parametreler:
  • project (string) – Proje adresi kısaltması

  • component (string) – Bileşen adresinin kısaltması

  • language (string) – Çeviri dili kodu

Ayrıca bakınız

Geri dönen öznitelikler İstatistikler bölümünde açıklanmıştır.

Bellek#

4.14 sürümünde geldi.

GET /api/memory/#

Bileşen listelerinin listesini görüntüler.

DELETE /api/memory/(int: memory_object_id)/#

Bir çeviri belleği nesnesini siler

Parametreler:
  • memory_object_id – Çeviri belleği nesnesi kimliği

Birimler#

Birim, bir kaynak dizgeyi karşılık gelen çevrilmiş bir dizgeyle eşleştiren ve ayrıca bazı ilgili üst verileri içeren tek bir çeviri parçasıdır. Terim, Translate Toolkit ve XLIFF kapsamından türetilmiştir.

GET /api/units/#

Çeviri birimlerinin listesini görüntüler.

Parametreler:
  • q (string) – Arama sorgusu dizgesi Arama (isteğe bağlı)

Ayrıca bakınız

Birim nesnesi öznitelikleri GET /api/units/(int:id)/ bölümünde bulunabilir.

GET /api/units/(int: id)/#

4.3 sürümünde değişti: Hedef ve kaynak çoğul dizgeleri doğru işlemek için diziye dönüştürülmüştür.

Çeviri birimi hakkındaki bilgileri görüntüler.

Parametreler:
  • id (int) – Birim kimliği

Yanıt JSON nesnesi:
  • translation (string) – İlişkili çeviri nesnesinin adresi

  • source (array) – kaynak dizge

  • previous_source (string) – belirsiz eşleştirmesi için kullanılan önceki kaynak dizge

  • target (array) – hedef dizge

  • id_hash (string) – birimin benzersiz belirteci

  • content_hash (string) – kaynak dizgenin benzersiz belirteci

  • location (string) – birimin kaynak kodundaki konumu

  • context (string) – çeviri birimi bağlamı

  • note (string) – çeviri birimi notu

  • flags (string) – çeviri birimi imleri

  • labels (array) – çeviri birimi etiketleri, kaynak birimlerde kullanılabilir

  • state (int) – birim durumu, 0 - Çevrilmemiş, 10 - Düzenlenmesi gerekli, 20 - Çevrilmiş, 30 - Onaylanmış, 100 - Salt okunur

  • fuzzy (boolean) – birimin belirsiz ya da onaylanmayı bekliyor olarak imlenmiş olup olmadığı

  • translated (boolean) – birimin çevrilmiş olup olmadığı

  • approved (boolean) – çevirinin onaylanmış olup olmadığı

  • position (int) – birimin çeviri dosyasındaki konumu

  • has_suggestion (boolean) – birimin önerileri olup olmadığı

  • has_comment (boolean) – birimin yorumları olup olmadığı

  • has_failing_check (boolean) – birimde denetim hatası olup olmadığı

  • num_words (int) – kaynak sözcük sayısı

  • priority (int) – çeviri önceliği. Varsayılan değer: 100

  • id (int) – birim belirteci

  • explanation (string) – Dizge açıklaması. Kaynak birimlerde kullanılabilir. Bilgi almak için: Kaynak dizgeler ile ilgili ek bilgiler

  • extra_flags (string) – Ek dizge imleri. Kaynak birimlerde kullanılabilir. Bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek

  • web_url (string) – Birimin düzenlenebileceği adres

  • source_unit (string) – Kaynak birim bağlantısı. Bilgi almak için: GET /api/units/(int:id)/

  • pending (boolean) – birimin belirsiz ya da onaylanmış olarak imlenmiş olup olmadığı

  • timestamp (timestamp) – dizge yaşı

PATCH /api/units/(int: id)/#

4.3 sürümünde geldi.

Çeviri birimi üzerinde bazı güncellemeler yapar.

Parametreler:
  • id (int) – Birim kimliği

JSON nesnesi ister:
  • state (int) – birim durumu, 0 - Çevrilmemiş, 10 - Düzenlenmesi gerekli, 20 - Çevrilmiş, 30 - Onaylanmış (gözden geçirme iş akışı etkinleştirilmelidir. Bilgi almak için: :ref:`reviews’)

  • target (array) – hedef dizge

  • explanation (string) – Dizge açıklaması. Kaynak birimlerde kullanılabilir. Bilgi almak için: Kaynak dizgeler ile ilgili ek bilgiler

  • extra_flags (string) – Ek dizge imleri. Kaynak birimlerde kullanılabilir. Bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek

Yanıt JSON nesnesi:
  • labels (array) – etiketler, kaynak birimlerde kullanılabilir

PUT /api/units/(int: id)/#

4.3 sürümünde geldi.

Çeviri birimi üzerinde tüm güncellemeleri yapar.

Parametreler:
  • id (int) – Birim kimliği

JSON nesnesi ister:
  • state (int) – birim durumu, 0 - Çevrilmemiş, 10 - Düzenlenmesi gerekli, 20 - Çevrilmiş, 30 - Onaylanmış (gözden geçirme iş akışı etkinleştirilmelidir. Bilgi almak için: :ref:`reviews’)

  • target (array) – hedef dizge

  • explanation (string) – Dizge açıklaması. Kaynak birimlerde kullanılabilir. Bilgi almak için: Kaynak dizgeler ile ilgili ek bilgiler

  • extra_flags (string) – Ek dizge imleri. Kaynak birimlerde kullanılabilir. Bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek

Yanıt JSON nesnesi:
  • labels (array) – etiketler, kaynak birimlerde kullanılabilir

DELETE /api/units/(int: id)/#

4.3 sürümünde geldi.

Bir çeviri birimini siler.

Parametreler:
  • id (int) – Birim kimliği

Değişiklikler#

GET /api/changes/#

4.1 sürümünde değişti: Değişiklikleri süzme özelliği 4.1 sürümünde sunuldu.

Çeviri değişikliklerinin listesini görüntüler.

Ayrıca bakınız

Değişiklik nesnesi öznitelikleri GET /api/changes/(int:id)/ bölümünde bulunabilir.

Sorgu parametreleri:
  • user (string) – Süzülecek kullanıcının kullanıcı adı

  • action (int) – Süzülecek işlem, birkaç kez kullanılabilir

  • timestamp_after (timestamp) – Sonraki değişiklikleri listelemek için ISO 8601 biçiminde zaman damgası

  • timestamp_before (timestamp) – Önceki değişiklikleri listelemek için ISO 8601 biçiminde zaman damgası

GET /api/changes/(int: id)/#

Çeviri değişikliği hakkındaki bilgileri görüntüler.

Parametreler:
  • id (int) – Değişiklik kimliği

Yanıt JSON nesnesi:
  • unit (string) – İlişkili birim nesnesinin adresi

  • translation (string) – İlişkili çeviri nesnesinin adresi

  • component (string) – İlişkili bileşen nesnesinin adresi

  • user (string) – İlişkili kullanıcı nesnesinin adresi

  • author (string) – İlişkili yazar nesnesinin adresi

  • timestamp (timestamp) – etkinlik zaman damgası

  • action (int) – işlemin sayısal kimliği

  • action_name (string) – işlemin metin açıklaması

  • target (string) – metin ya da ayrıntı değişikliği etkinliği

  • id (int) – değişiklik belirteci

Ekran görüntüleri#

GET /api/screenshots/#

Ekran görüntüsü dizgesi bilgilerinin listesini görüntüler.

Ayrıca bakınız

Ekran görüntüsü nesnesi öznitelikleri GET /api/screenshots/(int:id)/ bölümünde bulunabilir.

GET /api/screenshots/(int: id)/#

Ekran görüntüsü bilgileriyle ilgili bilgileri görüntüler.

Parametreler:
  • id (int) – Ekran görüntüsü kimliği

Yanıt JSON nesnesi:
  • name (string) – ekran görüntüsünün adı

  • component (string) – İlişkili bileşen nesnesinin adresi

  • file_url (string) – Bir dosyayı indirme bağlantısı. Bilgi almak için: GET /api/screenshots/(int:id)/file/

  • units (array) – ilişkili kaynak dizge bilgileri bağlantısı. Bilgi almak için: GET /api/units/(int:id)/

GET /api/screenshots/(int: id)/file/#

Ekran görüntüsünü indir.

Parametreler:
  • id (int) – Ekran görüntüsü kimliği

POST /api/screenshots/(int: id)/file/#

Ekran görüntüsünü değiştir.

Parametreler:
  • id (int) – Ekran görüntüsü kimliği

Form parametreleri:
  • file image – Yüklenen dosya

CURL örneği:

curl -X POST \
    -F image=@image.png \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/screenshots/1/file/
POST /api/screenshots/(int: id)/units/#

Kaynak dizgeyi ekran görüntüsüyle ilişkilendir.

Parametreler:
  • id (int) – Ekran görüntüsü kimliği

Form parametreleri:
  • string unit_id – Birim kimliği

Yanıt JSON nesnesi:
  • name (string) – ekran görüntüsünün adı

  • translation (string) – İlişkili çeviri nesnesinin adresi

  • file_url (string) – Bir dosyayı indirme bağlantısı. Bilgi almak için: GET /api/screenshots/(int:id)/file/

  • units (array) – ilişkili kaynak dizge bilgileri bağlantısı. Bilgi almak için: GET /api/units/(int:id)/

DELETE /api/screenshots/(int: id)/units/(int: unit_id)#

Kaynak dizge ile ekran görüntüsünün ilişkilendirmesini kaldır.

Parametreler:
  • id (int) – Ekran görüntüsü kimliği

  • unit_id – Kaynak dizge birimi kimliği

POST /api/screenshots/#

Yeni bir ekran görüntüsü oluşturur.

Form parametreleri:
  • file image – Yüklenen dosya

  • string name – Ekran görüntüsü adı

  • string project_slug – Proje kısaltması

  • string component_slug – Bileşen kısaltması

  • string language_code – Dil kodu

Yanıt JSON nesnesi:
  • name (string) – ekran görüntüsünün adı

  • component (string) – İlişkili bileşen nesnesinin adresi

  • file_url (string) – Bir dosyayı indirme bağlantısı. Bilgi almak için: GET /api/screenshots/(int:id)/file/

  • units (array) – ilişkili kaynak dizge bilgileri bağlantısı. Bilgi almak için: GET /api/units/(int:id)/

PATCH /api/screenshots/(int: id)/#

Ekran görüntüsü ile ilgili bazı bilgileri düzenle.

Parametreler:
  • id (int) – Ekran görüntüsü kimliği

Yanıt JSON nesnesi:
  • name (string) – ekran görüntüsünün adı

  • component (string) – İlişkili bileşen nesnesinin adresi

  • file_url (string) – Bir dosyayı indirme bağlantısı. Bilgi almak için: GET /api/screenshots/(int:id)/file/

  • units (array) – ilişkili kaynak dizge bilgileri bağlantısı. Bilgi almak için: GET /api/units/(int:id)/

PUT /api/screenshots/(int: id)/#

Ekran görüntüsü ile ilgili tüm bilgileri düzenle.

Parametreler:
  • id (int) – Ekran görüntüsü kimliği

Yanıt JSON nesnesi:
  • name (string) – ekran görüntüsünün adı

  • component (string) – İlişkili bileşen nesnesinin adresi

  • file_url (string) – Bir dosyayı indirme bağlantısı. Bilgi almak için: GET /api/screenshots/(int:id)/file/

  • units (array) – ilişkili kaynak dizge bilgileri bağlantısı. Bilgi almak için: GET /api/units/(int:id)/

DELETE /api/screenshots/(int: id)/#

Ekran görüntüsünü sil.

Parametreler:
  • id (int) – Ekran görüntüsü kimliği

Eklentiler#

4.4.1 sürümünde geldi.

GET /api/addons/#

Eklentilerin listesini görüntüler.

Ayrıca bakınız

Eklenti nesnesi öznitelikleri GET /api/addons/(int:id)/ bölümünde bulunabilir.

GET /api/addons/(int: id)/#

Eklentiyle ilgili bilgileri görüntüler.

Parametreler:
  • id (int) – Eklenti kimliği

Yanıt JSON nesnesi:
  • name (string) – bir eklentinin adı

  • component (string) – İlişkili bileşen nesnesinin adresi

  • configuration (object) – İsteğe bağlı eklenti yapılandırması

Ayrıca bakınız

Eklentiler

POST /api/components/(string: project)/(string: component)/addons/#

Yeni bir eklenti oluşturur.

Parametreler:
  • project_slug (string) – Proje kısaltması

  • component_slug (string) – Bileşen kısaltması

JSON nesnesi ister:
  • name (string) – bir eklentinin adı

  • configuration (object) – İsteğe bağlı eklenti yapılandırması

PATCH /api/addons/(int: id)/#

Eklenti ile ilgili bazı bilgileri düzenle.

Parametreler:
  • id (int) – Eklenti kimliği

Yanıt JSON nesnesi:
  • configuration (object) – İsteğe bağlı eklenti yapılandırması

PUT /api/addons/(int: id)/#

Eklenti ile ilgili tüm bilgileri düzenle.

Parametreler:
  • id (int) – Eklenti kimliği

Yanıt JSON nesnesi:
  • configuration (object) – İsteğe bağlı eklenti yapılandırması

DELETE /api/addons/(int: id)/#

Eklentiyi sil.

Parametreler:
  • id (int) – Eklenti kimliği

Bileşen listeleri#

4.0 sürümünde geldi.

GET /api/component-lists/#

Bileşen listelerinin listesini görüntüler.

Ayrıca bakınız

Bileşen listesi nesnesi öznitelikleri GET /api/component-lists/(str:slug)/ bölümünde bulunabilir.

GET /api/component-lists/(str: slug)/#

Bileşen listesi hakkındaki bilgileri görüntüler.

Parametreler:
  • slug (string) – Bileşen listesi kısaltması

Yanıt JSON nesnesi:
  • name (string) – bir bileşen listesinin adı

  • slug (string) – bir bileşen listesinin kısaltması

  • show_dashboard (boolean) – bir panoda görüntülenip görüntülenmeyeceği

  • components (array) – ilişkili bileşenlerin bağlantısı. Bilgi almak için: GET /api/components/(string:project)/(string:component)/

  • auto_assign (array) – kendiliğinden atama kuralları

PUT /api/component-lists/(str: slug)/#

Bileşen listesi parametrelerini değiştirir.

Parametreler:
  • slug (string) – Bileşen listesi kısaltması

JSON nesnesi ister:
  • name (string) – bir bileşen listesinin adı

  • slug (string) – bir bileşen listesinin kısaltması

  • show_dashboard (boolean) – bir panoda görüntülenip görüntülenmeyeceği

PATCH /api/component-lists/(str: slug)/#

Bileşen listesi parametrelerini değiştirir.

Parametreler:
  • slug (string) – Bileşen listesi kısaltması

JSON nesnesi ister:
  • name (string) – bir bileşen listesinin adı

  • slug (string) – bir bileşen listesinin kısaltması

  • show_dashboard (boolean) – bir panoda görüntülenip görüntülenmeyeceği

DELETE /api/component-lists/(str: slug)/#

Bileşen listesini siler.

Parametreler:
  • slug (string) – Bileşen listesi kısaltması

POST /api/component-lists/(str: slug)/components/#

Bileşeni bir bileşen listesiyle ilişkilendirir.

Parametreler:
  • slug (string) – Bileşen listesi kısaltması

Form parametreleri:
  • string component_id – Bileşen kimliği

DELETE /api/component-lists/(str: slug)/components/(str: component_slug)#

Bileşen listesinden bir bileşenin ilişkisini kaldırır.

Parametreler:
  • slug (string) – Bileşen listesi kısaltması

  • component_slug (string) – Bileşen kısaltması

Sözlük#

4.5 sürümünde değişti: Sözlükler artık normal bileşenler, çeviriler ve dizgeler olarak kaydediliyor. Lütfen bunun yerine ilgili API uygulamasını kullanın.

Görevler#

4.4 sürümünde geldi.

GET /api/tasks/#

Görevlerin listesi şu anda alınamıyor.

GET /api/tasks/(str: uuid)/#

Bir görev hakkındaki bilgileri görüntüler

Parametreler:
  • uuid (string) – Görev UUID

Yanıt JSON nesnesi:
  • completed (boolean) – Görevin tamamlanıp tamamlanmadığı

  • progress (int) – Yüzde olarak görev ilerlemesi

  • result (object) – Görev sonucu veya ilerleme ayrıntıları

  • log (string) – Görev günlüğü

İstatistikler#

GET /api/(str: object)/statistics/#

Nesneler için birkaç istatistik uç noktası vardır ve bunların tümünün yapısı aynıdır.

Parametreler:
  • object (string) – Adres yolu

Yanıt JSON nesnesi:
  • total (int) – toplam dizge sayısı

  • total_words (int) – toplam sözcük sayısı

  • total_chars (int) – toplam karakter sayısı

  • last_change (timestamp) – son değişiklik tarihi

  • translated (int) – çevrilmiş dizge sayısı

  • translated_percent (float) – çevrilmiş dizge yüzdesi

  • translated_words (int) – çevrilmiş sözcük sayısı

  • translated_words_percent (float) – çevrilmiş sözcük yüzdesi

  • translated_chars (int) – çevrilmiş karakter sayısı

  • translated_chars_percent (float) – çevrilmiş karakter yüzdesi

  • fuzzy (int) – belirsiz (düzenlenecek olarak imlenmiş) dizge sayısı

  • fuzzy_percent (float) – belirsiz (düzenlenecek olarak imlenmiş) dizge yüzdesi

  • failing (int) – denetim hataları sayısı

  • failing_percent (float) – denetim hataları yüzdesi

  • approved (int) – onaylanmış denetim sayısı

  • approved_percent (float) – onaylanmış dizgelerin yüzdesi

  • readonly (int) – salt okunur dizgelerin sayısı

  • readonly_percent (float) – salt okunur dizgelerin yüzdesi

  • suggestions (int) – önerileri olan dizgelerin sayısı

  • comments (int) – yorumları olan dizgelerin sayısı

  • name (string) – nesne adı

  • url (string) – Nesneye erişme adresi (uygulanabiliyorsa)

  • url_translate (string) – Çeviriye erişme adresi (uygulanabiliyorsa)

  • code (string) – dil kodu (uygulanabiliyorsa)

Ölçümler#

GET /api/metrics/#

Sunucu ölçümlerini görüntüler.

Yanıt JSON nesnesi:
  • units (int) – Birim sayısı

  • units_translated (int) – Çevrilmiş birim sayısı

  • users (int) – Kullanıcı sayısı

  • changes (int) – Değişiklik sayısı

  • projects (int) – Proje sayısı

  • components (int) – Bileşen sayısı

  • translations (int) – Çeviri sayısı

  • languages (int) – Kullanılan dil sayısı

  • checks (int) – Tetiklenmiş kalite denetimleri sayısı

  • configuration_errors (int) – Yapılandırma hataları sayısı

  • suggestions (int) – Bekleyen öneri sayısı

  • celery_queues (object) – Celery kuyruklarının uzunlukları. Bilgi almak için: Celery ile arka plan görevlerini kullanmak

  • name (string) – Yapılandırılmış sunucu adı

Bildirim kancaları#

Bildirim kancaları, dış uygulamaların sürüm denetimi sistemi deposunun güncellendiğini Weblate tarafına bildirmesini sağlar.

Depoları ayrı ayrı güncellemek için proje, bileşen ve çeviri depo uç noktalarını kullanabilirsiniz. Bilgi almak için POST /api/projects/(string:project)/repository/.

GET /hooks/update/(string: project)/(string: component)/#

2.6 sürümünden beri kullanım dışı: Erişim denetimi listesi ile kısıtlanmış projeler için kimlik doğrulaması ile düzgün çalışan POST /api/components/(string:project)/(string:component)/repository/ kullanın.

Bir bileşenin güncellenmesini tetikler (sürüm denetimi sisteminden çekme ve çeviri değişikliklerini tarama).

GET /hooks/update/(string: project)/#

2.6 sürümünden beri kullanım dışı: Erişim denetimi listesi ile kısıtlanmış projeler için kimlik doğrulaması ile düzgün çalışan POST /api/projects/(string:project)/repository/ kullanın.

Bir projedeki tüm bileşenlerin güncellenmesini tetikler (sürüm denetimi sisteminden çekme ve çeviri değişikliklerini tarama).

POST /hooks/github/#

GitHub bildirimlerini işleyen ve eşleşen bileşenleri kendiliğinden güncelleyen özel kanca.

Not

GitHub, doğrudan Weblate bilgilendirmelerini destekler: Depo ayarlarından Weblate hizmet kancasını etkinleştirin ve adres olarak Weblate kurulumunuzun adresini yazın.

Ayrıca bakınız

GitHub değişikliklerini kendiliğinden almak

GitHub bütünleştirmesini ayarlama yönergeleri için

https://docs.github.com/en/get-started/customizing-your-github-workflow/exploring-integrations/about-webhooks

GitHub internet kancaları ile ilgili genel bilgiler

ENABLE_HOOKS

Kancaları Weblate genelinde etkinleştirmek için

POST /hooks/gitlab/#

GitLab bildirimlerini işleyen ve eşleşen bileşenleri kendiliğinden güncelleyen özel kanca.

Ayrıca bakınız

GitLab değişikliklerini kendiliğinden almak

GitLab bütünleştirmesini ayarlama yönergeleri için

https://docs.gitlab.com/ee/user/project/integrations/webhooks.html

GitLab internet kancaları ile ilgili genel bilgiler

ENABLE_HOOKS

Kancaları Weblate genelinde etkinleştirmek için

POST /hooks/bitbucket/#

Bitbucket bildirimlerini işleyen ve eşleşen bileşenleri kendiliğinden güncelleyen özel kanca.

Ayrıca bakınız

Bitbucket değişikliklerini kendiliğinden almak

Bitbucket bütünleştirmesini ayarlama yönergeleri için

https://support.atlassian.com/bitbucket-cloud/docs/manage-webhooks/

Bitbucket internet kancaları ile ilgili genel bilgiler

ENABLE_HOOKS

Kancaları Weblate genelinde etkinleştirmek için

POST /hooks/pagure/#

3.3 sürümünde geldi.

Pagure bildirimlerini işleyen ve eşleşen bileşenleri kendiliğinden güncelleyen özel kanca.

Ayrıca bakınız

Pagure değişikliklerini kendiliğinden almak

Pagure bütünleştirmesini ayarlama yönergeleri için

https://docs.pagure.org/pagure/usage/using_webhooks.html

Pagure internet kancaları ile ilgili genel bilgiler

ENABLE_HOOKS

Kancaları Weblate genelinde etkinleştirmek için

POST /hooks/azure/#

3.8 sürümünde geldi.

Azure DevOps bildirimlerini işleyen ve eşleşen bileşenleri kendiliğinden güncelleyen özel kanca.

Not

Lütfen Gönderilecek kaynak ayrıntıları değerinin Tümü olarak ayarlandığından emin olun. Yoksa Weblate ile Azure deponuz eşleşemez.

Ayrıca bakınız

Azure Repos değişikliklerini kendiliğinden almak

Azure bütünleştirmesini ayarlama yönergeleri için

https://learn.microsoft.com/en-us/azure/devops/service-hooks/services/webhooks?view=azure-devops

Azure DevOps internet kancaları ile ilgili genel bilgiler

ENABLE_HOOKS

Kancaları Weblate genelinde etkinleştirmek için

POST /hooks/gitea/#

3.9 sürümünde geldi.

Gitea internet kancası bildirimlerini işleyen ve eşleşen bileşenleri kendiliğinden güncelleyen özel kanca.

Ayrıca bakınız

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

Gitea bütünleştirmesini ayarlama yönergeleri için

https://docs.gitea.io/en-us/webhooks/

Gitea internet kancaları ile ilgili genel bilgiler

ENABLE_HOOKS

Kancaları Weblate genelinde etkinleştirmek için

POST /hooks/gitee/#

3.9 sürümünde geldi.

Gitee internet kancası bildirimlerini işleyen ve eşleşen bileşenleri kendiliğinden güncelleyen özel kanca.

Ayrıca bakınız

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

Gitee bütünleştirmesini ayarlama yönergeleri için

https://gitee.com/help/categories/40

Gitee internet kancaları ile ilgili genel bilgiler

ENABLE_HOOKS

Kancaları Weblate genelinde etkinleştirmek için

Dışa aktarmak#

Weblate, verileri farklı şekillerde işlemenizi sağlamak için çeşitli dışa aktarma seçenekleri sunar.

GET /exports/stats/(string: project)/(string: component)/#
Sorgu parametreleri:
  • format (string) – Çıktı biçimi: json ya da csv

2.6 sürümünden beri kullanım dışı: Lütfen bunun yerine GET /api/components/(string:project)/(string:component)/statistics/ ve GET /api/translations/(string:project)/(string:component)/(string:language)/statistics/ kullanın. Erişim denetim listesi kullanılan projelere de erişilmesini sağlar.

Belirli bir bileşenin istatistiklerini belirtilen biçimde alır.

Örnek istek:

GET /exports/stats/weblate/main/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript

Örnek yanıt:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

[
    {
        "code": "cs",
        "failing": 0,
        "failing_percent": 0.0,
        "fuzzy": 0,
        "fuzzy_percent": 0.0,
        "last_author": "Michal Čihař",
        "last_change": "2012-03-28T15:07:38+00:00",
        "name": "Czech",
        "total": 436,
        "total_words": 15271,
        "translated": 436,
        "translated_percent": 100.0,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/cs/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/cs/"
    },
    {
        "code": "nl",
        "failing": 21,
        "failing_percent": 4.8,
        "fuzzy": 11,
        "fuzzy_percent": 2.5,
        "last_author": null,
        "last_change": null,
        "name": "Dutch",
        "total": 436,
        "total_words": 15271,
        "translated": 319,
        "translated_percent": 73.2,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/nl/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/nl/"
    },
    {
        "code": "el",
        "failing": 11,
        "failing_percent": 2.5,
        "fuzzy": 21,
        "fuzzy_percent": 4.8,
        "last_author": null,
        "last_change": null,
        "name": "Greek",
        "total": 436,
        "total_words": 15271,
        "translated": 312,
        "translated_percent": 71.6,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/el/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/el/"
    }
]

RSS akışları#

Çevirilerdeki değişiklikler RSS akışlarında dışa aktarılır.

GET /exports/rss/(string: project)/(string: component)/(string: language)/#

Bir çevirideki son değişikliklerin RSS akışını alır.

GET /exports/rss/(string: project)/(string: component)/#

Bir bileşendeki son değişikliklerin RSS akışını alır.

GET /exports/rss/(string: project)/#

Bir projedeki son değişikliklerin RSS bildirimini alır.

GET /exports/rss/language/(string: language)/#

Bir dildeki son değişikliklerin RSS akışını alır.

GET /exports/rss/#

Weblate kopyasındaki son değişikliklerin RSS akışını alır.

Ayrıca bakınız

Vikipedi üzerinde RSS

Weblate istemcisi#

Kurulum#

Weblate istemcisi ayrıca alınır ve Python modülünü içerir. Şu komutları kullanabilmek için wlc kurmanız gerekir:

pip install wlc

Docker kullanımı#

Weblate istemcisi, Docker kalıbı olarak da kullanılabilir.

Kalıp Docker Hub üzerinde bulunur: https://hub.docker.com/r/weblate/wlc

Kurulum:

docker pull weblate/wlc

Docker kapsayıcısı, varsayılan Weblate ayarlarını kullanır ve localhost ile dağıtılan API üzerine bağlanır. API URL ve API_KEY, Weblate tarafından kabul edilen bağımsız değişkenler kullanılarak yapılandırılabilir.

Kapsayıcıyı başlatma komutu şu söz dizimini kullanır:

docker run --rm weblate/wlc [WLC_ARGS]

Örnek:

docker run --rm weblate/wlc --url https://hosted.weblate.org/api/ list-projects

Yapılandırma dosyaları dosyanızı Docker kapsayıcısına aktarmak isteyebilirsiniz. En kolay yaklaşım geçerli klasörünüzü /home/weblate birimi olarak eklemektir:

docker run --volume $PWD:/home/weblate --rm weblate/wlc show

Başlarken#

wlc yapılandırması ~/.config/weblate klasöründe bulunur (diğer konumlar ile ilgili bilgi almak için: Yapılandırma dosyaları). Lütfen ortamınızla uygun şekilde ayarlayın:

[weblate]
url = https://hosted.weblate.org/api/

[keys]
https://hosted.weblate.org/api/ = APIKEY

Ardından varsayılan sunucuda komutları yürütebilirsiniz:

wlc ls
wlc commit sandbox/hello-world

Ayrıca bakınız

Yapılandırma dosyaları

Özet#

wlc [arguments] <command> [options]

Komutlar aslında hangi işlemin yapılması gerektiğini belirtir.

Açıklama#

Weblate Client, Weblate yönetiminin Weblate REST API uygulaması üzerinden yapılmasını sağlayan bir Python kitaplığı ve komut satırı uygulamasıdır. Komut satırı uygulaması wlc komutu ile çağrılabilir ve wlc modülü üzerinde bulunur.

Argümanlar#

Çıktı biçimini veya hangi Weblate kopyasının kullanılacağını tanımlamak için aşağıdaki bağımsız değişkenler kullanılabilir. Bunlar herhangi bir komuttan önce yazılmalıdır.

--format {csv,json,text,html}#

Çıktı biçimini belirtin.

--url URL#

API adresini belirtir. Yapılandırma dosyasındaki tüm değerlerin yerini alır. Bilgi almak için: Yapılandırma dosyaları. Adres /api/ ile bitmelidir. Örnek: ``https://hosted.weblate.org/api/`.

--key KEY#

Kullanılacak API kullanıcı anahtarını belirtir. Yapılandırma dosyasındaki tüm değerlerin yerini alır. Bilgi almak için: Yapılandırma dosyaları. Anahtarınızı Weblate profilinizde bulabilirsiniz.

--config PATH#

Yapılandırma dosyası yolunu değiştirir. Bilgi almak için: Yapılandırma dosyaları.

--config-section SECTION#

Kullanımdaki yapılandırma dosyası bölümünü değiştirir. Bilgi almak için: Yapılandırma dosyaları.

Komutlar#

Kullanılabilecek komutlar şunlardır:

version#

Geçerli sürümü yazdırır.

list-languages#

Weblate üzerinde kullanılan dilleri listeler.

list-projects#

Weblate üzerindeki projeleri listeler.

list-components#

Weblate üzerindeki bileşenleri listeler.

list-translations#

Weblate üzerindeki çevirileri listeler.

show#

Weblate nesnesini (çeviri, bileşen ya da proje) görüntüler.

ls#

Weblate nesnesini (çeviri, bileşen ya da proje) listeler.

commit#

Bir Weblate nesnesinde (çeviri, bileşen ya da proje) yapılan değişiklikleri işler.

pull#

Uzak depo değişikliklerini Weblate nesnesine (çeviri, bileşen ya da proje) çeker.

push#

Weblate nesnesindeki (çeviri, bileşen ya da proje) değişiklikleri uzak depoya gönderir.

reset#

0.7 sürümünde geldi: wlc 0.7 sürümünden başlayarak destekleniyor.

Uzak depoyla eşleşmesi için Weblate nesnesindeki (çeviri, bileşen ya da proje) değişiklikleri sıfırlar.

cleanup#

0.9 sürümünde geldi: wlc 0.9 sürümünden başlayarak destekleniyor.

Uzak depoyla eşleşmesi için bir Weblate nesnesindeki (çeviri, bileşen ya da proje) izlenmeyen değişiklikleri siler.

repo#

Belirli bir Weblate nesnesi (çeviri, bileşen ya da proje) için depo durumunu görüntüler.

stats#

Belirli bir Weblate nesnesi (çeviri, bileşen ya da proje) için ayrıntılı istatistikleri görüntüler.

lock-status#

0.5 sürümünde geldi: wlc 0.5 sürümünden başlayarak destekleniyor.

Kilit durumunu görüntüler.

lock#

0.5 sürümünde geldi: wlc 0.5 sürümünden başlayarak destekleniyor.

Weblate bileşenini kilitleyerek üzerinde daha fazla çeviri yapılmasını engeller.

unlock#

0.5 sürümünde geldi: wlc 0.5 sürümünden başlayarak destekleniyor.

Weblate bileşeninin kilidini açarak çeviri yapılmasını sağlar.

changes#

0.7 sürümünde geldi: wlc 0.7 ve Weblate 2.10 sürümünden başlayarak destekleniyor.

Belirli bir nesnenin değişikliklerini görüntüler.

download#

0.7 sürümünde geldi: wlc 0.7 sürümünden başlayarak destekleniyor.

Bir çeviri dosyasını indirir.

--convert#

Dosya biçimini dönüştürür. Belirtilmemişse sunucuda herhangi bir dönüştürme yapılmaz ve dosya depodan olduğu gibi indirilir.

--output#

Çıktının kaydedileceği dosyayı belirtir. Belirtilmezse stdout çıkışına yazdırılır.

upload#

0.9 sürümünde geldi: wlc 0.9 sürümünden başlayarak destekleniyor.

Bir çeviri dosyasını yükler.

--overwrite#

Yükleme yapılırken var olan çevirilerin üzerine yazar.

--input#

İçeriği okunacak dosya. Belirtilmemişse stdin girişinden okunur.

--method#

Kullanılacak yükleme yöntemi. Bilgi almak için: İçe aktarma yöntemleri.

--fuzzy#

Belirsiz (düzenlenecek olarak imlenmiş) dizgeleri işleme (empty, process, approve)

--author-name#

Geçerli kullanıcı yerine kullanılacak yazar adı

--author-email#

Geçerli kullanıcı yerine kullanılacak yazar e-posta adresi

İpucu

Komutların kullanımı ile ilgili ayrıntılı bilgi almak için --help seçeneğini kullanabilirsiniz. Örneğin: wlc ls --help.

Yapılandırma dosyaları#

.weblate, .weblate.ini, weblate.ini

Projeye özel yapılandırma dosyası

C:\Users\NAME\AppData\weblate.ini

Windows üzerinde kullanıcı yapılandırma dosyası.

~/.config/weblate

Kullanıcı yapılandırma dosyası

/etc/xdg/weblate

Sistem geneli yapılandırma dosyası

Program XDG teknik özelliklerine uyar. Böylece XDG_CONFIG_HOME ya da XDG_CONFIG_DIRS ortam değişkenlerine göre yapılandırma dosyalarının konumunu ayarlayabilirsiniz. Windows üzerinde yapılandırma dosyası için yeğlenen konum APPDATA klasörüdür.

[weblate] bölümünde şu ayarlar yapılandırılabilir (bunu --config-section ile özelleştirebilirsiniz):

key

Weblate erişimi için kullanılacak API anahtarı.

url

API sunucusunun adresi. Varsayılan değer: http://127.0.0.1:8000/api/.

translation

Varsayılan çeviri yolu. Bileşen ya da proje.

Yapılandırma dosyası bir INI dosyasıdır. Örneğin:

[weblate]
url = https://hosted.weblate.org/api/
key = APIKEY
translation = weblate/application

Ek API anahtarları [keys] bölümüne kaydedilebilir:

[keys]
https://hosted.weblate.org/api/ = APIKEY

Bu seçenek, sürüm denetimi sistemi deposundaki .weblate yapılandırmasını kullanırken anahtarları kişisel ayarlarınızda tutmanızı sağlar. Böylece wlc hangi sunucuyla konuşması gerektiğini bilir.

Örnekler#

Geçerli program sürümünü yazdır:

$ wlc version
version: 0.1

Tüm projeleri listele:

$ wlc list-projects
name: Hello
slug: hello
url: http://example.com/api/projects/hello/
web: https://weblate.org/
web_url: http://example.com/projects/hello/

Çeviri dosyasını yükle:

$ wlc upload project/component/language --input /tmp/hello.po

Ayrıca wlc hangi proje üzerinde çalışacak onu da belirleyebilirsiniz:

$ cat .weblate
[weblate]
url = https://hosted.weblate.org/api/
translation = weblate/application

$ wlc show
branch: main
file_format: po
source_language: en
filemask: weblate/locale/*/LC_MESSAGES/django.po
git_export: https://hosted.weblate.org/git/weblate/application/
license: GPL-3.0+
license_url: https://spdx.org/licenses/GPL-3.0+
name: Application
new_base: weblate/locale/django.pot
project: weblate
repo: git://github.com/WeblateOrg/weblate.git
slug: application
template:
url: https://hosted.weblate.org/api/components/weblate/application/
vcs: git
web_url: https://hosted.weblate.org/projects/weblate/application/

Bu kurulumla, geçerli projede bekleyen değişiklikler kolayca işlenebilir:

$ wlc commit

Weblate Python API#

Kurulum#

Python API ayrıca alınır. Alabilmek için Weblate istemcisi (wlc) kurmanız gerekir.

pip install wlc

wlc#

WeblateException#

exception wlc.WeblateException#

Tüm özel durumlar için temel sınıf.

Weblate#

class wlc.Weblate(key='', url=None, config=None)#
Parametreler:
  • key (str) – Kullanıcı anahtarı

  • url (str) – API sunucusu adresi, belirtilmemişse varsayılan adres kullanılır

  • config (wlc.config.WeblateConfig) – Yapılandırma nesnesi, diğer parametreleri değiştirir.

API erişim sınıfı. API anahtarını ve isteğe bağlı olarak API adresini tanımlar.

get(path)#
Parametreler:

path (str) – İstek yolu

Dönüş türü:

object

Tek bir API GET çağrısı yapar.

post(path, **kwargs)#
Parametreler:

path (str) – İstek yolu

Dönüş türü:

object

Tek bir API GET çağrısı yapar.

wlc.config#

WeblateConfig#

class wlc.config.WeblateConfig(section='wlc')#
Parametreler:

section (str) – Kullanılacak yapılandırma bölümü

XDG teknik özelliklerine uygun yapılandırma dosyası işleyici.

load(path=None)#
Parametreler:

path (str) – Yapılandırmanın yükleneceği yol.

Yapılandırmayı bir dosyadan yükler. None olarak belirtilirse, XDG yapılandırma yolunuzda (/etc/xdg/wlc) bulunan wlc yapılandırma dosyasından (~/.config/wlc) yüklenir.

wlc.main#

wlc.main.main(settings=None, stdout=None, args=None)#
Parametreler:
  • settings (list) – Demetlerin listesi olarak geçersiz kılınacak ayarlar

  • stdout (object) – stdout dosya nesnesi çıktıyı yazdırmak için varsayılan olarak ``sys.stdout` kullanır

  • args (list) – İşlenecek komut satırı bağımsız değişkenleri. Varsayılan olarak ``sys.args` kullanır

Komut satırı arayüzü için ana giriş noktası.

@wlc.main.register_command(command)#

main() tarafından kullanılan ana işleyicide Command sınıfını kaydeden dekoratör.

Command#

class wlc.main.Command(args, config, stdout=None)#

Komutları çağıran ana sınıf.

Yapılandırma yönergeleri#

Weblate kurulumu#

Docker ile kurmak#

Docker için hazırlanmış Weblate dağıtımını kullanarak kişisel Weblate bulut sunucunuzu saniyeler içinde çalışır duruma getirebilirsiniz. Tüm Weblate bağımlılıkları zaten katılmıştır. Varsayılan veri tabanı olarak PostgreSQL kurulmuştur.

Donanım gereksinimleri#

Weblate, herhangi bir çağdaş donanımda sorunsuz çalışmalıdır, Tek bir sunucuda Weblate bileşenlerini (Weblate, veri tabanı ve site sunucusu) çalıştırmak için gerekli en az yapılandırma şu şekildedir:

  • 3 GB RAM bellek

  • 2 işlemci çekirdeği

  • 1 GB depolama alanı

Bellek ne kadar çok olursa o kadar iyidir. Tüm düzeylerde (dosya sistemi, veri tabanı ve Weblate) ön bellek için kullanılır.

Eşzamanlı bulunacak kullanıcı sayısı, gerekli işlemci çekirdeği sayısını artırır. Yüzlerce bileşenden oluşan çevirler için en az 4 GB RAM bellek bulunması önerilir.

Veri tabanı depolama alanı gereksinimi, barındırılacak 1 milyon sözcük için yaklaşık 300 MB olarak düşünebilir. Kopyalanmış depolar için gereken depolama alanı değişiklik gösterir. Ancak Weblate sığ kopyalama ile depo boyutlarını en az düzeyde tutmaya çalışır.

Not

Weblate kurulumunuz için gerçek gereksinimler, üzerinde bulunacak çevirilerin boyutuna bağlı olarak büyük ölçüde değişiklik gösterebilir.

Kurulum#

Aşağıdaki örneklerde, docker-compose-plugin ile kurulumu yapılmış çalışan bir Docker ortamınız olduğu varsayılmaktadır. Yönergeler için Docker belgelerine bakabilirsiniz.

  1. weblate-docker deposunu kopyalayın:

    git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker
    cd weblate-docker
    
  2. Ayarlarınızı yaptığınız bir docker-compose.override.yml dosyası oluşturun. Ortam değişkenlerinin tam listesi için Docker ortam değişkenleri bölümüne bakabilirsiniz.

    version: '3'
    services:
      weblate:
        ports:
          - 80:8080
        environment:
          WEBLATE_EMAIL_HOST: smtp.example.com
          WEBLATE_EMAIL_HOST_USER: user
          WEBLATE_EMAIL_HOST_PASSWORD: pass
          WEBLATE_SERVER_EMAIL: weblate@example.com
          WEBLATE_DEFAULT_FROM_EMAIL: weblate@example.com
          WEBLATE_SITE_DOMAIN: weblate.example.com
          WEBLATE_ADMIN_PASSWORD: password for the admin user
          WEBLATE_ADMIN_EMAIL: weblate.admin@example.com
    

    Not

    WEBLATE_ADMIN_PASSWORD değişkeni ayarlanmamışsa, yönetici kullanıcı başta belirtilen rastgele bir parolayla oluşturulur.

    Verilen örnekte, Weblate 80 numaralı bağlantı noktasını dinleyecek şekilde ayarlanmıştır. docker-compose.override.yml dosyasını düzenleyerek bağlantı noktasını değiştirebilirsiniz.

  3. Weblate kapsayıcılarını başlatın:

    docker compose up
    

Weblate dağıtımınızın tadını çıkarın. weblate kapsayıcısına 80 numaralı bağlantı noktasından erişilebilir.

3.7.1-6 sürümünde değişti: 2019 Temmuz ayında (3.7.1-6 sürümünden başlayarak), kapsayıcılar kök kullanıcı olarak çalışmayacak biçimde değiştirildi. Açık bağlantı noktası 80 yerine 8080 olarak değiştirildi.

Docker kalıbı kayıt defterini seçmek#

Weblate kapsayıcıları şu kayıt defterlerinde yayınlanmıştır:

Not

Tüm örneklerde kalıplar Docker Hub üzerinden alınıyor. Farklı bir kayıt defteri kullanmak için yapılandırmayı uygun şekilde ayarlayın.

Docker kalıp etiketini seçmek#

Lütfen ortamınıza ve beklentilerinize uygun bir etiket seçin:

Etiket adı

Açıklama

Kullanım amacı

latest

Son etiketlenmiş sürümle eşleşen kararlı Weblate sürümü

Üretim ortamında güncellemeleri yapmak

<MAJOR>

Weblate kararlı sürümü

Bir üretim ortamında ana sürüm güncellemeleri

<MAJOR>.<MINOR>

Weblate kararlı sürümü

Bir üretim ortamında küçük sürüm güncellemeleri

<VERSION>.<PATCH>

Weblate kararlı sürümü

Üretim ortamında iyi tanımlanmış dağıtım

edge

Docker kapsayıcısındaki geliştirme değişiklikleriyle Weblate kararlı sürümü (güncelleştirilmiş bağımlılıklar gibi)

Deneme ortamında güncellemeleri yapmak

edge-<DATE>-<SHA>

Docker kapsayıcısındaki geliştirme değişiklikleriyle Weblate kararlı sürümü (güncelleştirilmiş bağımlılıklar gibi)

Hazırlama ortamında iyi tanımlanmış dağıtım

bleeding

Git üzerinden Weblate geliştirme sürümü

Yakında eklencek Weblate özelliklerini denemel için güncelleme ekleri

bleeding-<DATE>-<SHA>

Git üzerinden Weblate geliştirme sürümü

Yaklaşan Weblate özelliklerini denemek için iyi tanımlanmış dağıtım

Her kalıp yayınlanmadan önce denenir. Bu nedenle bleeding sürümünün kullanımı bile oldukça güvenli olmalıdır.

Yayınlanmış etiketlerin tam listesi GitHub paketleri içinde bulunabilir

HTTPS desteği ile Docker kapsayıcısı#

Genel dağıtım yönergeleri için Kurulum bölümüne bakabilirsiniz. Bu bölümde yalnızca oradakinden farklı olan durumlar ele alınmıştır.

Kendi SSL sertifikalarınızı kullanmak#

3.8-3 sürümünde geldi.

Kullanmak istediğiniz bir SSL sertifikanız varsa, dosyaları Weblate veri birimine yerleştirmeniz yeterlidir (bilgi almak için: :ref:`docker-volume’):

  • ssl/fullchain.pem dosyasında gerekli sertifika kuruluşunun sertifikaları ile birlikte kullanılacak sertifika bulunur

  • ssl/privkey.pem dosyasında kişisel anahtar bulunur

Bu dosyaların ikisinin de sahibi, docker kapsayıcısını başlatan kullanıcı ile aynı olmalı ve dosya izinleri 600 olarak ayarlanmış olmalıdır (yalnızca sahibi olan kullanıcı tarafından okunabilir ve yazılabilir).

Ek olarak, Weblate kapsayıcısı SSL bağlantılarını artık 4443 numaralı bağlantı noktasından karşılar. Docker compose değişikliklerine HTTPS için bağlantı noktası yönlendirmeyi de katmak istersiniz:

version: '3'
services:
  weblate:
    ports:
      - 80:8080
      - 443:4443

Aynı sunucuda başka siteler barındırıyorsanız, büyük olasılıkla 80 ve 443 numaralı bağlantı noktaları NGINX gibi bir ters vekil sunucu tarafından kullanılmaktadır. HTTPS bağlantısını NGINX üzerinden docker kapsayıcısına geçirmek için şu yapılandırmayı kullanabilirsiniz:

server {
    listen 443;
    listen [::]:443;

    server_name <SITE_URL>;
    ssl_certificate /etc/letsencrypt/live/<SITE>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<SITE>/privkey.pem;

    location / {
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $server_name;
            proxy_pass https://127.0.0.1:<EXPOSED_DOCKER_PORT>;
    }
}

<SITE_URL>, <SITE> ve <EXPOSED_DOCKER_PORT> seçeneklerine ortamınızın gerçek değerlerini yazın.

Let’s Encrypt ile SSL sertifikası sağlamak#

Genel kurulumda kendiliğinden oluşturulan Let’s Encrypt SSL sertifikalarını kullanmak istiyorsanız, ters bir HTTPS vekil sunucusu eklemeniz gerekir. Bunun için ek bir Docker kapsayıcısı olan https-portal kullanılır. Bu, docker-compose-https.yml dosyası kullanılarak yapılır. Ardından ayarlarınızla bir docker-compose-https.override.yml dosyası oluşturun:

version: '3'
services:
  weblate:
    environment:
      WEBLATE_EMAIL_HOST: smtp.example.com
      WEBLATE_EMAIL_HOST_USER: user
      WEBLATE_EMAIL_HOST_PASSWORD: pass
      WEBLATE_SITE_DOMAIN: weblate.example.com
      WEBLATE_ADMIN_PASSWORD: password for admin user
  https-portal:
    environment:
      DOMAINS: 'weblate.example.com -> http://weblate:8080'

docker-compose komutunu her çağırdığınızda, her iki dosyayı da belirtmeniz ve ardından şunları yapmanız gerekir:

docker compose -f docker-compose-https.yml -f docker-compose-https.override.yml build
docker compose -f docker-compose-https.yml -f docker-compose-https.override.yml up
Docker kapsayıcısını yükseltmek#

Genellikle yalnızca Weblate kapsayıcısını güncellemek ve PostgreSQL kapsayıcısını olduğu sürümde tutmak iyi bir fikirdir. Çünkü PostgreSQL yükseltmesi oldukça zorlu bir işlemdir ve çoğu durumda fazla bir yarar sağlamaz.

4.17-1 sürümünde değişti: Weblate 4.17-1 sürümünden bu yana, Docker kapsayıcısı PostgreSQL 12 ya da üzerindeki sürümlere gerek duyan Django 4.2 kullanır. Lütfen Weblate yükseltmesinden önce Docker sürümünü yükseltin. Bilgi almak için: PostgreSQL kapsayıcısını yükseltmek.

Bu işlemi, var olan docker-compose ögesine bağlı kalarak ve son kalıpları alıp yeniden başlatarak yapabilirsiniz:

# Fetch latest versions of the images
docker compose pull
# Stop and destroy the containers
docker compose down
# Spawn new containers in the background
docker compose up -d
# Follow the logs during upgrade
docker compose logs -f

Weblate veri tabanının başlangıçta kendiliğinden aktarılması ve el ile yapılacak ek işlemlere gerek kalmaması beklenir.

Not

Weblate ana sürümler arasında yükseltme işlemini desteklemez. Örneğin, 3.x serisini kullanıyor ve 4.x serisine yükseltmek istiyorsanız, önce son 4.0.x-y kalıbına (yazı hazırlandığında 4.0.4-5 sürümüydü) yükseltin. Bu kalıp önce aktarımı yapıp ardından yeni sürümlere yükseltmeyi sağlar.

docker-compose deposunu da güncellemek isteyebilirsiniz. Ancak çoğu durumda buna gerek olmaz. PostgreSQL sunucusunu yükseltmek için PostgreSQL kapsayıcısını yükseltmek sayfasına bakabilirsiniz.

PostgreSQL kapsayıcısını yükseltmek#

PostgreSQL kapsayıcıları sürümler arasında kendiliğinden yükseltmeyi desteklemez. El ile yükseltmeniz gerekir. Aşağıdaki adımlarda, yükseltme seçeneklerinden biri gösterilmektedir.

  1. Weblate kapsayıcısını durdurun:

    docker compose stop weblate cache
    
  2. Veri tabanını yedekleyin:

    docker compose exec database pg_dumpall --clean --if-exists --username weblate > backup.sql
    
  3. Veri tabanı kapsayıcısını durdurun:

    docker compose stop database
    
  4. PostgreSQL birimini kaldırın:

    docker compose rm -v database
    docker volume remove weblate-docker_postgres-data
    
  5. docker-compose.yml dosyasını yeni PostgreSQL sürümünü kullanarak şekilde ayarlayın.

  6. Veri tabanı kapsayıcısını başlatın:

    docker compose up -d database
    
  7. Veri tabanını yedekten geri yükleyin:

    cat backup.sql | docker compose exec -T database psql --username weblate --dbname weblate
    

    İpucu

    Veri tabanı adının POSTGRES_DATABASE ile aynı olduğundan emin olun.

  8. (İsteğe bağlı) Weblate kullanıcısının parolasını güncelleyin. Parolaları depolama yöntemi değiştirildiği için PostgreSQL 14 ya da 15 sürümüne geçiş yaparken bu işlemi yapmanız gerekebilir:

    docker compose exec -T database psql --username weblate --dbname weblate -c "ALTER USER weblate WITH PASSWORD 'weblate'"
    

    İpucu

    Veri tabanı adının POSTGRES_DATABASE ile aynı olduğundan emin olun.

  9. Kalan tüm kapsayıcıları başlatın:

    docker compose up -d
    
Yönetici olarak oturum açın#

Kapsayıcı kurulumundan sonra, WEBLATE_ADMIN_PASSWORD içinde belirtilen parolayla ya da ayarlanmamışsa başlangıçta oluşturulan rastgele bir parolayla admin kullanıcısı ile oturum açabilirsiniz.

admin parolasını sıfırlamak için WEBLATE_ADMIN_PASSWORD seçeneğine yeni parolayı ayarlayın ve kapsayıcıyı yeniden başlatın.

İşlem sayısı ve bellek kullanımı#

Hem uWSGI hem de Celery için çalışan işlem sayısı, işlemci sayısına göre kendiliğinden belirlenir. Bu seçim, çoğu bulut sanal makinesi için iyi çalışır. Bu makinelerde genellikle az sayıda işlemci ve iyi miktarda bellek bulunur.

Çok fazla işlemci çekirdeğiniz varsa ve bellek sorunlarından kurtulursanız, işlem sayısını azaltmayı deneyin:

environment:
  WEBLATE_WORKERS: 2

Ayrıca her işleyici kategorisi için ince ayar yapabilirsiniz:

environment:
  WEB_WORKERS: 4
  CELERY_MAIN_OPTIONS: --concurrency 2
  CELERY_NOTIFY_OPTIONS: --concurrency 1
  CELERY_TRANSLATE_OPTIONS: --concurrency 1
Yatay ölçeklendirme#

4.6 sürümünde geldi.

Hizmeti yatay olarak ölçeklemek için birden çok Weblate kapsayıcısı çalıştırabilirsiniz. /app/data biriminin tüm kapsayıcılar tarafından paylaşılması gerekir. Bunun için GlusterFS gibi küme dosya sistemlerinin kullanılması önerilir. /app/cache birimi her kapsayıcı için ayrı olmalıdır.

Her Weblate kapsayıcısı, WEBLATE_SERVICE ortam değişkenini kullanarak rolü tanımlar. Bazı hizmetlerin kümede yalnızca bir kez çalışması gerektiğinden ve hizmetlerin sıralaması önemli olduğundan, belgelere dikkatle uyun.

Örnek kurulumu docker-compose deposunda docker-compose-split.yml olarak bulabilirsiniz.

Docker ortam değişkenleri#

Weblate Yapılandırma ögelerinin çoğu, Docker kapsayıcısında aşağıda açıklanan ortam değişkenleri ile ayarlanabilir.

Docker ortam değişkenlerinde bulunmayan bir ayar yapmanız gerekiyorsa bilgi almak için Ortam değişkenlerinin yapılandırması.

Genel ayarlar#
WEBLATE_DEBUG#

DEBUG kullanarak Django hata ayıklama kipini yapılandırır.

Örnek:

environment:
  WEBLATE_DEBUG: 1

Ayrıca bakınız

Hata ayıklama kipini kapatın

WEBLATE_LOGLEVEL#

Günlük tutma düzeyini yapılandırır. Ayrıntılı günlük kayıtları tutmak için DEBUG olarak ayarlayın.

WEBLATE_DEBUG kapatıldığında varsayılan olarak INFO olur. Hata ayıklama kipi açıldığında DEBUG kullanılır.

WEBLATE_LOGLEVEL_DATABASE#

Veri tabanı sorguları günlük kayıtlarının ayrıntı düzeyini yapılandırır.

WEBLATE_SITE_TITLE#

Tüm sayfaların üst bilgisi olarak görüntülenecek site başlığını değiştirir.

WEBLATE_SITE_DOMAIN#

Site etki alanını yapılandırır. Bu parametre gereklidir.

WEBLATE_ADMIN_NAME#
WEBLATE_ADMIN_EMAIL#

Site yöneticisinin adını ve e-posta adresini yapılandırır. Hem ADMINS ayarını hem de admin kullanıcısını oluşturmak için kullanılır (bilgi almak için: WEBLATE_ADMIN_PASSWORD).

Örnek:

environment:
  WEBLATE_ADMIN_NAME: Weblate admin
  WEBLATE_ADMIN_EMAIL: noreply@example.com
WEBLATE_ADMIN_PASSWORD#

admin kullanıcısının parolasını ayarlar.

  • Ayarlanmamışsa ve admin kullanıcısı yoksa, kapsayıcı ilk kez başlatıldığında görüntülenen rastgele bir parola ile oluşturulur.

  • Ayarlanmamışsa ve admin kullanıcısı varsa, hiçbir işlem gerçekleştirilmez.

  • Ayarlanmışsa, admin kullanıcısı her kapsayıcı başlangıcında WEBLATE_ADMIN_PASSWORD, WEBLATE_ADMIN_NAME ve WEBLATE_ADMIN_EMAIL seçeneklerine göre ayarlanır.

Uyarı

Parolayı yapılandırma dosyasında depolamak bir güvenlik riski oluşturabilir. Bu değişkeni yalnızca ilk kurulum için (ya da Weblate ilk kez başlatıldığında rastgele parola oluşturmasına izin verin) ya da parola kurtarma için kullanmayı değerlendirin.

WEBLATE_ADMIN_PASSWORD_FILE#

Admin kullanıcısının parolasının bulunduğu bir dosyanın yolunu ayarlar.

Ayrıca bakınız

WEBLATE_ADMIN_PASSWORD

WEBLATE_SERVER_EMAIL#

Hata iletilerinin gönderileceği e-posta adresi.

WEBLATE_DEFAULT_FROM_EMAIL#

Giden e-postaların adresini yapılandırır.

WEBLATE_CONTACT_FORM#

İletişim formu davranışını yapılandırır. Bilgi almak için: CONTACT_FORM.

WEBLATE_ALLOWED_HOSTS#

ALLOWED_HOSTS kullanarak izin verilen HTTP sunucu adlarını yapılandırır.

Varsayılan değer: *. Tüm sunucu adlarına izin verir.

Örnek:

environment:
  WEBLATE_ALLOWED_HOSTS: weblate.example.com,example.com
WEBLATE_REGISTRATION_OPEN#

REGISTRATION_OPEN seçeneğini değiştirerek hesap açma özelliğini etkinleştirir.

Örnek:

environment:
  WEBLATE_REGISTRATION_OPEN: 0
WEBLATE_REGISTRATION_ALLOW_BACKENDS#

REGISTRATION_ALLOW_BACKENDS seçeneği ile yeni hesap açmak için hangi kimlik doğrulama yöntemlerinin kullanılabileceğini yapılandırır.

Örnek:

environment:
  WEBLATE_REGISTRATION_OPEN: 0
  WEBLATE_REGISTRATION_ALLOW_BACKENDS: azuread-oauth2,azuread-tenant-oauth2
WEBLATE_REGISTRATION_REBIND#

4.16 sürümünde geldi.

REGISTRATION_REBIND seçeneğini yapılandırır.

WEBLATE_TIME_ZONE#

Weblate üzerinde kullanılacak saat dilimini yapılandırır. Bilgi almak için: TIME_ZONE.

Not

Docker kapsayıcısının saat dilimini değiştirmek için TZ ortam değişkenini kullanın.

Örnek:

environment:
  WEBLATE_TIME_ZONE: Europe/Prague
WEBLATE_ENABLE_HTTPS#

Weblate uygulamasının ters HTTPS vekil sunucu arkasında çalıştığını varsaymasını sağlar. Weblate e-posta ve API bağlantılarında HTTPS kullanılmasını sağlar ya da çerezler için güvenli imlerini ayarlar.

İpucu

Olası uyarılar için ENABLE_HTTPS belgelerine bakabilirsiniz.

Not

Bu seçenek, Weblate kapsayıcısının HTTPS bağlantılarını kabul etmesini sağlamaz. Bunu da yapılandırmanız gerekir. Bilgi almak için: HTTPS desteği ile Docker kapsayıcısı.

Örnek:

environment:
  WEBLATE_ENABLE_HTTPS: 1
WEBLATE_INTERLEDGER_PAYMENT_POINTERS#

4.12.1 sürümünde geldi.

Weblate belgelerinin başındaki meta[name=monetization] alanının ayarlanmasını sağlar. Birden çok seçenek belirtilmişse, rastgele olarak biri seçilir.

Ayrıca bakınız

INTERLEDGER_PAYMENT_POINTERS

WEBLATE_IP_PROXY_HEADER#

IP adresinin Weblate tarafından herhangi bir HTTP üst bilgisinden alınmasını sağlar. Weblate kapsayıcısının önünde ters vekil sunucu varsa bunu kullanın.

IP_BEHIND_REVERSE_PROXY özelliğini etkinleştirir ve IP_PROXY_HEADER ögesini ayarlar.

Not

Biçim, Django beklentilerine uygun olmalıdır. Django ham HTTP üst bilgi adlarını şu biçimde dönüştürür :

  • tüm karakterleri büyük harfe dönüştürür

  • tire karakterini alt çizgi karakterine dönüştürür

  • başa HTTP_ ön ekini ekler

Böylece X-Forwarded-For değeri HTTP_X_FORWARDED_FOR ile eşleştirilir.

Örnek:

environment:
  WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
WEBLATE_SECURE_PROXY_SSL_HEADER#

Bir isteği belirten HTTP üst bilgi/değer ikilisini temsil eden bir demet güvenlidir. Weblate, standart HTTPS üst bilgilerini geçirmeyen SSL sonlandırma işlemi yapan bir ters vekil sunucu arkasında ise bu gereklidir.

Örnek:

environment:
  WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https

Ayrıca bakınız

SECURE_PROXY_SSL_HEADER

WEBLATE_REQUIRE_LOGIN#

Tüm Weblate üzerinde kimlik doğrulamasını zorunlu kılmak için REQUIRE_LOGIN seçeneğini etkinleştirir.

Örnek:

environment:
  WEBLATE_REQUIRE_LOGIN: 1
WEBLATE_LOGIN_REQUIRED_URLS_EXCEPTIONS#
WEBLATE_ADD_LOGIN_REQUIRED_URLS_EXCEPTIONS#
WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS#

LOGIN_REQUIRED_URLS_EXCEPTIONS seçeneğini kullanarak tüm Weblate kurulumu için gereken kimlik doğrulama adresi istisnalarını ekler.

Tüm ayarları değiştirebilir ya da ADD ve REMOVE seçeneklerini kullanarak varsayılan değeri değiştirebilirsiniz.

WEBLATE_GOOGLE_ANALYTICS_ID#

GOOGLE_ANALYTICS_ID seçeneğini değiştirerek Google Analytics kimliğini yapılandırır.

WEBLATE_GITHUB_USERNAME#
WEBLATE_GITHUB_TOKEN#
WEBLATE_GITHUB_HOST#

GITHUB_CREDENTIALS seçeneğini değiştirerek GitHub çekme istekleri bütünleştirmesini yapılandırır.

Ayrıca bakınız

GitHub çekme istekleri

WEBLATE_GITLAB_USERNAME#
WEBLATE_GITLAB_TOKEN#
WEBLATE_GITLAB_HOST#

GITLAB_CREDENTIALS seçeneğini değiştirerek GitLab birleştirme istekleri bütünleştirmesini yapılandırır.

Örnek:

WEBLATE_GITLAB_USERNAME=weblate
WEBLATE_GITLAB_HOST=gitlab.com
WEBLATE_GITLAB_TOKEN=token

Ayrıca bakınız

GitLab birleştirme istekleri

WEBLATE_GITEA_USERNAME#
WEBLATE_GITEA_TOKEN#
WEBLATE_GITEA_HOST#

GITEA_CREDENTIALS seçeneğini değiştirerek Gitea çekme istekleri bütünleştirmesini yapılandırır.

Ayrıca bakınız

Gitea çekme isteği

WEBLATE_PAGURE_USERNAME#
WEBLATE_PAGURE_TOKEN#
WEBLATE_PAGURE_HOST#

PAGURE_CREDENTIALS seçeneğini değiştirerek Pagure birleştirme istekleri bütünleştirmesini yapılandırır.

Ayrıca bakınız

Pagure birleştirme istekleri

WEBLATE_BITBUCKETSERVER_USERNAME#
WEBLATE_BITBUCKETSERVER_TOKEN#
WEBLATE_BITBUCKETSERVER_HOST#

BITBUCKETSERVER_CREDENTIALS seçeneğini değiştirerek Bitbucket sunucusu birleştirme istekleri bütünleştirmesini yapılandırır.

WEBLATE_DEFAULT_PULL_MESSAGE#

DEFAULT_PULL_MESSAGE seçeneğini değiştirerek API ile yapılan çekme isteklerinin varsayılan başlığını ve iletiyi yapılandırır

Ayrıca bakınız

DEFAULT_PULL_MESSAGE

WEBLATE_SIMPLIFY_LANGUAGES#

Dil basitleştirme ilkesini yapılandırır. Bilgi almak için: :setting:`SIMPLIFY_LANGUAGES’.

WEBLATE_DEFAULT_ACCESS_CONTROL#

Yeni projeler için varsayılan Erişim denetimi ögesini yapılandırır. Bilgi almak için: DEFAULT_ACCESS_CONTROL.

WEBLATE_DEFAULT_RESTRICTED_COMPONENT#

Yeni bileşenler için Kısıtlı erişim seçeneğinin varsayılan değerini yapılandırır. Bilgi almak için: DEFAULT_RESTRICTED_COMPONENT.

WEBLATE_DEFAULT_TRANSLATION_PROPAGATION#

Yeni bileşenler için Çevirilerin yayılmasını sağlamak seçeneğinin varsayılan değerini yapılandırır. Bilgi almak için: DEFAULT_TRANSLATION_PROPAGATION.

WEBLATE_DEFAULT_COMMITER_EMAIL#

DEFAULT_COMMITER_EMAIL seçeneğini yapılandırır.

WEBLATE_DEFAULT_COMMITER_NAME#

DEFAULT_COMMITER_NAME seçeneğini yapılandırır.

WEBLATE_DEFAULT_SHARED_TM#

DEFAULT_SHARED_TM seçeneğini yapılandırır.

WEBLATE_AKISMET_API_KEY#

Akismet API anahtarını yapılandırır. Bilgi almak için: AKISMET_API_KEY.

WEBLATE_GPG_IDENTITY#

İşlemelerin GPG imzamalamasını yapılandırır. Bilgi almak için: WEBLATE_GPG_IDENTITY.

WEBLATE_URL_PREFIX#

Weblate ortamının çalıştığı adres ön ekini yapılandırır. Bilgi almak için: URL_PREFIX.

WEBLATE_SILENCED_SYSTEM_CHECKS#

Görüntülenmesini istemediğiniz denetimleri yapılandırır. Bilgi almak için: SILENCED_SYSTEM_CHECKS.

WEBLATE_CSP_SCRIPT_SRC#
WEBLATE_CSP_IMG_SRC#
WEBLATE_CSP_CONNECT_SRC#
WEBLATE_CSP_STYLE_SRC#
WEBLATE_CSP_FONT_SRC#

Content-Security-Policy HTTP üst bilgisinin özelleştirilmesini sağlar.

WEBLATE_LICENSE_FILTER#

LICENSE_FILTER seçeneğini yapılandırır.

WEBLATE_LICENSE_REQUIRED#

LICENSE_REQUIRED seçeneğini yapılandırır

WEBLATE_WEBSITE_REQUIRED#

WEBSITE_REQUIRED seçeneğini yapılandırır

WEBLATE_HIDE_VERSION#

HIDE_VERSION seçeneğini yapılandırır.

WEBLATE_BASIC_LANGUAGES#

BASIC_LANGUAGES seçeneğini yapılandırır.

WEBLATE_DEFAULT_AUTO_WATCH#

DEFAULT_AUTO_WATCH seçeneğini yapılandırır.

WEBLATE_RATELIMIT_ATTEMPTS#
WEBLATE_RATELIMIT_LOCKOUT#
WEBLATE_RATELIMIT_WINDOW#

4.6 sürümünde geldi.

Hız sınırlayıcıyı yapılandırır.

İpucu

Yapılandırmayı herhangi bir hız sınırlayıcı kapsamı için ayarlayabilirsiniz. Bunu yapmak için, :ref:rate-limit``içinde belirtilen ayarlardan herhangi birine ``WEBLATE_ ön ekini ekleyin.

WEBLATE_API_RATELIMIT_ANON#
WEBLATE_API_RATELIMIT_USER#

4.11 sürümünde geldi.

API hız sınırlamasını yapılandırır. Varsayılan değer anonim kullanıcılar için 100/gün ve kimliği doğrulanmış kullanıcılar için ``5000/saat` biçimindedir.

Ayrıca bakınız

API hız sınırlaması

WEBLATE_ENABLE_HOOKS#

4.13 sürümünde geldi.

ENABLE_HOOKS seçeneğini yapılandırır.

WEBLATE_ENABLE_AVATARS#

4.6.1 sürümünde geldi.

ENABLE_AVATARS seçeneğini yapılandırır.

WEBLATE_AVATAR_URL_PREFIX#

4.15 sürümünde geldi.

AVATAR_URL_PREFIX seçeneğini yapılandırır.

WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH#

4.9 sürümünde geldi.

LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH seçeneğini yapılandırır.

WEBLATE_SSH_EXTRA_ARGS#

4.9 sürümünde geldi.

SSH_EXTRA_ARGS seçeneğini yapılandırır.

WEBLATE_BORG_EXTRA_ARGS#

4.9 sürümünde geldi.

BORG_EXTRA_ARGS seçeneğini yapılandırır.

WEBLATE_ENABLE_SHARING#

4.14.1 sürümünde geldi.

ENABLE_SHARING seçeneğini yapılandırır.

WEBLATE_EXTRA_HTML_HEAD#

4.15 sürümünde geldi.

EXTRA_HTML_HEAD seçeneğini yapılandırır.

WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE#

4.15 sürümünde geldi.

PRIVATE_COMMIT_EMAIL_TEMPLATE seçeneğini yapılandırır.

WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN#

4.15 sürümünde geldi.

PRIVATE_COMMIT_EMAIL_OPT_IN seçeneğini yapılandırır.

WEBLATE_UNUSED_ALERT_DAYS#

4.17 sürümünde geldi.

UNUSED_ALERT_DAYS seçeneğini yapılandırır.

WEBLATE_CORS_ALLOWED_ORIGINS#

4.16 sürümünde geldi.

Belirtilen kaynaklardan CORS istekleri yapılabilmesini sağlar.

Örnek:

environment:
  WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
CLIENT_MAX_BODY_SIZE#

4.16.3 sürümünde geldi.

İç site sunucusu tarafından kabul edilecek en büyük gövde boyutu seçeneğini yapılandırır.

environment:
    CLIENT_MAX_BODY_SIZE: 200m

İpucu

Bu değişken, Let’s Encrypt ile SSL sertifikası sağlamak içinde kullanılan üçüncü taraf kapsayıcısıyla paylaşıldığı için kasıtlı olarak WEBLATE_ ön ekini kullanmaz.

Kendiliğinden öneri ayarları#

4.13 sürümünde değişti: Kendiliğinden öneri hizmetleri artık kullanıcı arayüzünden yapılandırılıyor. Bilgi almak için: Kendiliğinden önerileri yapılandırmak.

Var olan ortam değişkenleri Weblate 4.13 sürümüne geçiş yapılırken içe aktarılır. Ancak bunların değiştirilmesinin başkaca bir etkisi olmaz.

Kimlik doğrulama ayarları#
LDAP#
WEBLATE_AUTH_LDAP_SERVER_URI#
WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE#
WEBLATE_AUTH_LDAP_USER_ATTR_MAP#
WEBLATE_AUTH_LDAP_BIND_DN#
WEBLATE_AUTH_LDAP_BIND_PASSWORD#
WEBLATE_AUTH_LDAP_BIND_PASSWORD_FILE#

LDAP sunucusunun bind parolasını içeren dosyanın yolu.

WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS#
WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER#
WEBLATE_AUTH_LDAP_USER_SEARCH_UNION#
WEBLATE_AUTH_LDAP_USER_SEARCH_UNION_DELIMITER#

LDAP kimlik doğrulama yapılandırması.

Doğrudan bağlama örneği:

environment:
  WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org
  WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE: uid=%(user)s,ou=People,dc=example,dc=net
  # map weblate 'full_name' to ldap 'name' and weblate 'email' attribute to 'mail' ldap attribute.
  # another example that can be used with OpenLDAP: 'full_name:cn,email:mail'
  WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail

Arama ve bağlama örneği:

environment:
  WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org
  WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com
  WEBLATE_AUTH_LDAP_BIND_PASSWORD: password
  WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail
  WEBLATE_AUTH_LDAP_USER_SEARCH: CN=Users,DC=example,DC=com

Birleşik arama ve bağlama örneği:

environment:
  WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org
  WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com
  WEBLATE_AUTH_LDAP_BIND_PASSWORD: password
  WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail
  WEBLATE_AUTH_LDAP_USER_SEARCH_UNION: ou=users,dc=example,dc=com|ou=otherusers,dc=example,dc=com

Active Directory üzerinde arama ve bağlama örneği:

environment:
  WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com
  WEBLATE_AUTH_LDAP_BIND_PASSWORD: password
  WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org
  WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS: 0
  WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail
  WEBLATE_AUTH_LDAP_USER_SEARCH: CN=Users,DC=example,DC=com
  WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER: (sAMAccountName=%(user)s)

Ayrıca bakınız

LDAP kimlik doğrulaması

GitHub#
WEBLATE_SOCIAL_AUTH_GITHUB_KEY#
WEBLATE_SOCIAL_AUTH_GITHUB_SECRET#
WEBLATE_SOCIAL_AUTH_GITHUB_ORG_KEY#
WEBLATE_SOCIAL_AUTH_GITHUB_ORG_SECRET#
WEBLATE_SOCIAL_AUTH_GITHUB_ORG_NAME#
WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_KEY#
WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_SECRET#
WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_ID#

GitHub kimlik doğrulaması seçeneğini etkinleştirir.

GitHub Enterprise Edition#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_URL#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SCOPE#

GitHub EE kimlik doğrulaması seçeneğini etkinleştirir.

Bitbucket#
WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY#
WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET#
WEBLATE_SOCIAL_AUTH_BITBUCKET_KEY#
WEBLATE_SOCIAL_AUTH_BITBUCKET_SECRET#

Bitbucket kimlik doğrulaması seçeneğini etkinleştirir.

Facebook#
WEBLATE_SOCIAL_AUTH_FACEBOOK_KEY#
WEBLATE_SOCIAL_AUTH_FACEBOOK_SECRET#

Facebook OAuth 2 seçeneğini etkinleştirir.

Google#
WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_KEY#
WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET#
WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS#
WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_EMAILS#

Google OAuth 2 seçeneğini etkinleştirir.

GitLab#
WEBLATE_SOCIAL_AUTH_GITLAB_KEY#
WEBLATE_SOCIAL_AUTH_GITLAB_SECRET#
WEBLATE_SOCIAL_AUTH_GITLAB_API_URL#

GitLab OAuth 2 seçeneğini etkinleştirir.

Gitea#
WEBLATE_SOCIAL_AUTH_GITEA_API_URL#
WEBLATE_SOCIAL_AUTH_GITEA_KEY#
WEBLATE_SOCIAL_AUTH_GITEA_SECRET#

Gitea kimlik doğrulaması kullanılsın.

Azure Active Directory#
WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY#
WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET#

Azure Active Directory kimlik doğrulamasını etkinleştirir. Bilgi almak için: Microsoft Azure Active Directory.

Kiracı destekli Azure Active Directory#
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY#
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET#
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID#

Kiracı destekli Azure Active Directory kimlik doğrulamasını etkinleştirir. Bilgi almak için: Microsoft Azure Active Directory.

Keycloak#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_KEY#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_SECRET#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_PUBLIC_KEY#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_ALGORITHM#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_AUTHORIZATION_URL#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_ACCESS_TOKEN_URL#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_TITLE#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_IMAGE#

Keycloak kimlik doğrulamasını etkinleştirir. Bilgi almak için: Belgeler.

Linux hizmet sağlayıcıları#

Şu değişkenleri bir değere ayarlayarak Linux üreticilerinin kimlik doğrulama hizmetleri ile kimlik doğrulamayı etkinleştirebilirsiniz.

WEBLATE_SOCIAL_AUTH_FEDORA#
WEBLATE_SOCIAL_AUTH_OPENSUSE#
WEBLATE_SOCIAL_AUTH_OPENINFRA#
WEBLATE_SOCIAL_AUTH_UBUNTU#
Slack#
WEBLATE_SOCIAL_AUTH_SLACK_KEY#
SOCIAL_AUTH_SLACK_SECRET#

Slack kimlik doğrulamasını etkinleştirir. Bilgi almak için: Slack.

OpenID Connect#

4.13-1 sürümünde geldi.

WEBLATE_SOCIAL_AUTH_OIDC_OIDC_ENDPOINT#
WEBLATE_SOCIAL_AUTH_OIDC_KEY#
WEBLATE_SOCIAL_AUTH_OIDC_SECRET#
WEBLATE_SOCIAL_AUTH_OIDC_USERNAME_KEY#

Genel OpenID Connect bütünleştirmesini yapılandırır.

Ayrıca bakınız

OIDC (OpenID Connect)

SAML#

Kendiliğinden imzalanan SAML anahtarları, ilk kapsayıcı başlatıldığında kendiliğinden oluşturulur. Kendi anahtarlarınızı kullanmak isterseniz, sertifikayı ve kişisel anahtarı /app/data/ssl/saml.crt ve /app/data/ssl/saml.key dosyalarına yerleştirin.

WEBLATE_SAML_IDP_ENTITY_ID#
WEBLATE_SAML_IDP_URL#
WEBLATE_SAML_IDP_X509CERT#
WEBLATE_SAML_IDP_IMAGE#
WEBLATE_SAML_IDP_TITLE#

SAML kimlik hizmeti sağlayıcısı ayarları. Bilgi almak için: SAML kimlik doğrulaması.

WEBLATE_SAML_ID_ATTR_NAME#
WEBLATE_SAML_ID_ATTR_USERNAME#
WEBLATE_SAML_ID_ATTR_EMAIL#
WEBLATE_SAML_ID_ATTR_USER_PERMANENT_ID#

4.18 sürümünde geldi.

SAML attributes mapping.

Diğer kimlik doğrulama ayarları#
WEBLATE_NO_EMAIL_AUTH#

Herhangi bir değere ayarlandığında e-posta kimlik doğrulamasını devre dışı bırakır. Bilgi almak için: Parola ile kimlik doğrulamayı kapatmak.

PostgreSQL veri tabanı kurulumu#

Veri tabanı docker-compose.yml tarafından oluşturulur. Bu nedenle bu ayarlar hem Weblate hem de PostgreSQL kapsayıcılarını etkiler.

POSTGRES_PASSWORD#

PostgreSQL parolası.

POSTGRES_PASSWORD_FILE#

PostgreSQL parolasının bulunduğu dosyanın yolu. POSTGRES_PASSWORD alternatif olarak kullanın.

POSTGRES_USER#

PostgreSQL kullanıcı adı.

POSTGRES_DATABASE#

PostgreSQL veri tabanı adı.

POSTGRES_HOST#

PostgreSQL sunucusunun adı ya da IP adresi. Varsayılan değer: database.

POSTGRES_PORT#

PostgreSQL sunucu bağlantı noktası. Varsayılan değer: Yok (varsayılan değeri kullanır).

POSTGRES_SSL_MODE#

PostgreSQL sunucusunun SSL bağlantılarını nasıl işleyeceğini yapılandırın. Kullanılabilecek seçenekler için SSL kipi açıklamaları bölümüne bakabilirsiniz

POSTGRES_ALTER_ROLE#

Aktarım sırasında değiştirilecek rol adını yapılandırır. Bilgi almak için: Weblate yapılandırmasını PostgreSQL kullanacak biçimde ayarlamak.

POSTGRES_CONN_MAX_AGE#

4.8.1 sürümünde geldi.

Saniye ve tamsayı olarak veri tabanı bağlantısının yaşam süresi. Her isteğin sonunda veri tabanı bağlantılarını kapatılması için 0 yazın (varsayılan davranış).

Bağlantı kalıcılığını etkinleştirmek genellikle veri tabanına daha açık bir bağlantı kurulmasına neden olur. Lütfen bu seçeneği etkinleştirmeden önce veri tabanı yapılandırmanızı ayarlayın.

Örnek yapılandırma:

environment:
    POSTGRES_CONN_MAX_AGE: 3600
POSTGRES_DISABLE_SERVER_SIDE_CURSORS#

4.9.1 sürümünde geldi.

Veri tabanındaki sunucu tarafı imleçlerini devre dışı bırakın. Bu uygulama, bazı pgbouncer kurulumlarında gereklidir.

Örnek yapılandırma:

environment:
    POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1
Veri tabanı yedekleme ayarları#
WEBLATE_DATABASE_BACKUP#

DATABASE_BACKUP kullanarak günlük veri tabanı dökümünü yapılandırır. Varsayılan değer: plain.

Ön bellek sunucusu kurulumu#

Weblate, Redis kullanılmasını önemle önerir ve Weblate Docker üzerinde çalıştırılırken bir Redis kopyası sağlamanız gerekir.

Ayrıca bakınız

Ön bellek özelliğini açın

REDIS_HOST#

Redis sunucusunun adı ya da IP adresi. Varsayılan değer: cache.

REDIS_PORT#

Redis sunucusunun bağlantı noktası. Varsayılan değer: 6379.

REDIS_DB#

Redis veri tabanı numarası. Varsayılan değer: 1.

REDIS_PASSWORD#

Redis sunucusunun parolası. Varsayılan olarak kullanılmaz.

REDIS_PASSWORD_FILE#

Redis sunucu parolasının bulunduğu dosyanın yolu.

Ayrıca bakınız

REDIS_PASSWORD

REDIS_TLS#

Redis bağlantısı için SSL kullanımını etkinleştirir.

REDIS_VERIFY_SSL#

Redis bağlantısı için SSL sertifikası doğrulamasını devre dışı bırakmak için kullanılabilir.

E-posta sunucusu kurulumu#

Giden e-postanın çalışmasını sağlamak için, bir e-posta sunucusu belirtmeniz gerekir.

Örnek TLS yapılandırması:

environment:
    WEBLATE_EMAIL_HOST: smtp.example.com
    WEBLATE_EMAIL_HOST_USER: user
    WEBLATE_EMAIL_HOST_PASSWORD: pass

Örnek SSL yapılandırması:

environment:
    WEBLATE_EMAIL_HOST: smtp.example.com
    WEBLATE_EMAIL_PORT: 465
    WEBLATE_EMAIL_HOST_USER: user
    WEBLATE_EMAIL_HOST_PASSWORD: pass
    WEBLATE_EMAIL_USE_TLS: 0
    WEBLATE_EMAIL_USE_SSL: 1
WEBLATE_EMAIL_HOST#

E-posta sunucusunun adı ya da IP adresi.

WEBLATE_EMAIL_PORT#

E-posta sunucusunun bağlantı noktası. Varsayılan değer: 25.

Ayrıca bakınız

EMAIL_PORT

WEBLATE_EMAIL_HOST_USER#

E-posta ile kimlik doğrulama kullanıcısı.

Ayrıca bakınız

EMAIL_HOST_USER

WEBLATE_EMAIL_HOST_PASSWORD#

E-posta ile kimlik doğrulama parolası.

Ayrıca bakınız

EMAIL_HOST_PASSWORD

WEBLATE_EMAIL_HOST_PASSWORD_FILE#

E-posta ile kimlik doğrulama parolasını içeren dosyanın yolu.

Ayrıca bakınız

WEBLATE_EMAIL_HOST_PASSWORD

WEBLATE_EMAIL_USE_SSL#

SMTP sunucusuyla iletişim için örtülü TLS (güvenli) bağlantısının kullanılıp kullanılmayacağını yapılandırır. Çoğu e-posta belgesinde, bu tür TLS bağlantısı SSL olarak adlandırılır. Genellikle 465 numaralı bağlantı noktasıyla kullanılır. Sorun yaşıyorsanız WEBLATE_EMAIL_USE_TLS açık TLS ayarına bakın.

4.11 sürümünde değişti: SSL/TLS desteği WEBLATE_EMAIL_PORT seçeneğine göre kendiliğinden etkinleştirilir.

WEBLATE_EMAIL_USE_TLS#

SMTP sunucusuyla iletişim için TLS (güvenli) bağlantısının kullanılıp kullanılmayacağını yapılandırır. Bu seçenek, genellikle 587 ya da 25 numaralı bağlantı noktalarında bulunan açık TLS bağlantıları için kullanılır. Bağlantıların askıda kalması sorunu yaşıyorsanız envvar:WEBLATE_EMAIL_USE_SSL seçeneğindeki örtülü TLS ayarına bakın.

4.11 sürümünde değişti: SSL/TLS desteği WEBLATE_EMAIL_PORT seçeneğine göre kendiliğinden etkinleştirilir.

WEBLATE_EMAIL_BACKEND#

Django arka ucunu e-posta göndermek için yapılandırır.

WEBLATE_AUTO_UPDATE#

Depoların Weblate tarafından güncellenip güncellenmeyeceğini ve nasıl güncelleneceğini yapılandırır.

Ayrıca bakınız

AUTO_UPDATE

Not

Bu bir Boolean ayarıdır ("true" ya da "false" kullanın).

Site bütünleştirmesi#
WEBLATE_GET_HELP_URL#

GET_HELP_URL seçeneğini yapılandırır.

WEBLATE_STATUS_URL#

STATUS_URL seçeneğini yapılandırır.

LEGAL_URL seçeneğini yapılandırır.

WEBLATE_PRIVACY_URL#

PRIVACY_URL seçeneğini yapılandırır.

Hataları bildirmek#

Kurulumdaki hataları sistematik olarak toplamanız önerilir. Bilgi almak için: Hata raporlarını derlemek.

Rollbar desteğini etkinleştirmek için şunları ayarlayın:

ROLLBAR_KEY#

Rollbar ileti sunucunuzun erişim kodu.

ROLLBAR_ENVIRONMENT#

Rollbar ortamınız. Varsayılan değer: production.

Sentry desteğini etkinleştirmek için şunları ayarlayın:

SENTRY_DSN#

Sentry DSN değeriniz.

SENTRY_ENVIRONMENT#

Sentry ortamınız (isteğe bağlı). Varsayılan değer: WEBLATE_SITE_DOMAIN.

SENTRY_TRACES_SAMPLE_RATE#

Configure sampling rate for performance monitoring. Set to 1 to trace all events, 0 (the default) disables tracing.

Örnek:

environment:
  SENTRY_TRACES_SAMPLE_RATE: 0.5
SENTRY_PROFILES_SAMPLE_RATE#

Configure sampling rate for profiling monitoring. Set to 1 to trace all events, 0 (the default) disables tracing.

Örnek:

environment:
  SENTRY_PROFILES_SAMPLE_RATE: 0.5
Yerelleştirme CDN#
WEBLATE_LOCALIZE_CDN_URL#
WEBLATE_LOCALIZE_CDN_PATH#

4.2.1 sürümünde geldi.

JavaScript yerelleştirme CDN yapılandırması.

WEBLATE_LOCALIZE_CDN_PATH kapsayıcı içindeki yoldur. Geçici depolama biriminde değil, kalıcı birimde olmalıdır.

Olasılıklardan biri, Weblate verilerinin içinde tutulmasıdır:

environment:
  WEBLATE_LOCALIZE_CDN_URL: https://cdn.example.com/
  WEBLATE_LOCALIZE_CDN_PATH: /app/data/l10n-cdn

Not

Weblate tarafından oluşturulan dosyaların sunulmasını ayarlamak sizin sorumluluğunuzdur. Bu seçenek yalnızca dosyaları yapılandırılmış konumda tutar.

Etkin uygulamaları, denetimleri, eklentileri ya da kendiliğinden düzeltmeleri değiştirmek#

3.8-5 sürümünde geldi.

Etkin denetimlerin, eklentilerin ya da kendiliğinden düzeltmelerin iç yapılandırması şu değişkenlerle ayarlanabilir:

WEBLATE_ADD_APPS#
WEBLATE_REMOVE_APPS#
WEBLATE_ADD_CHECK#
WEBLATE_REMOVE_CHECK#
WEBLATE_ADD_AUTOFIX#
WEBLATE_REMOVE_AUTOFIX#
WEBLATE_ADD_ADDONS#
WEBLATE_REMOVE_ADDONS#

Örnek:

environment:
  WEBLATE_REMOVE_AUTOFIX: weblate.trans.autofixes.whitespace.SameBookendingWhitespace
  WEBLATE_ADD_ADDONS: customize.addons.MyAddon,customize.addons.OtherAddon
Kapsayıcı ayarları#
WEBLATE_WORKERS#

4.6.1 sürümünde geldi.

Kapsayıcıda çalışan işlemlerin temel sayısı. Ayarlanmadığında, kullanılabilir işlemci çekirdeği sayısına bağlı olarak kapsayıcı başlangıcında kendiliğinden belirlenir.

CELERY_MAIN_OPTIONS, CELERY_NOTIFY_OPTIONS, CELERY_MEMORY_OPTIONS, CELERY_TRANSLATE_OPTIONS, CELERY_BACKUP_OPTIONS, CELERY_BEAT_OPTIONS, ve WEB_WORKERS seçeneklerini ayarlamak için kullanılır. Bu seçenekleri ince ayar yapmak için kullanabilirsiniz.

CELERY_MAIN_OPTIONS#
CELERY_NOTIFY_OPTIONS#
CELERY_MEMORY_OPTIONS#
CELERY_TRANSLATE_OPTIONS#
CELERY_BACKUP_OPTIONS#
CELERY_BEAT_OPTIONS#

Bu seçenekler, Celery işlemi seçeneklerini ayarlamanızı sağlar. Eşzamanlılığı ayarlamak (--concurrency 16) veya farklı havuz uygulaması kullanmak (—pool=gevent) yararlı olabilir.

Varsayılan olarak, eşzamanlı işlem sayısı WEBLATE_WORKERS seçeneğinden alınır.

Örnek:

environment:
  CELERY_MAIN_OPTIONS: --concurrency 16
WEB_WORKERS#

Çalışacak uWSGI işlemi sayısını yapılandırın.

Varsayılan değer: WEBLATE_WORKERS.

Örnek:

environment:
  WEB_WORKERS: 32
WEBLATE_SERVICE#

Kapsayıcı içinde hangi hizmetlerin yürütülmesi gerektiğini tanımlar. Bunu Yatay ölçeklendirme için kullanın.

Şu hizmetler tanımlanmıştır:

celery-beat

Celery görev zamanlayıcısı. Yalnızca bir kopya çalışıyor olmalıdır. Bu kapsayıcı aynı zamanda veri tabanı yapısı aktarımlarından da sorumludur ve diğerlerinden önce başlatılmalıdır.

celery-backup

Yedeklemeler için Celery işlemi. Yalnızca bir kopya çalışmalıdır.

celery-celery

Genel Celery işlemi.

celery-memory

Çeviri belleği Celery işlemi.

celery-notify

Bildirim Celery işlemi.

celery-translate

Kendiliğinden çeviri Celery işlemi.

web

Web sunucusu.

Docker kapsayıcısı birimleri#

Weblate kapsayıcısı tarafından dışa aktarılan iki birim (veri ve ön bellek) bulunur. Ayrıca diğer hizmet kapsayıcılarının (PostgreSQL ya da Redis) da veri birimleri vardır. Ancak bunlar bu belgenin kapsamında değildir.

Veri birimi, kopyalanmış depolar gibi Weblate kalıcı verilerini depolamak veya Weblate kurulumunu özelleştirmek için kullanılır.

Docker biriminin barındırma sistemindeki konumu Docker yapılandırmanıza bağlıdır. Ancak genellikle /var/lib/docker/volumes/weblate-docker_weblate-data/_data/ (yol, docker-compose klasörünüzün adı, kapsayıcı ve birim adlarından oluşur) içinde tutulur. Kapsayıcıda /app/data olarak bağlanır.

Ön bellek birimi /app/cache olarak bağlanır ve durağan dosyalar ile CACHE_DIR klasörünü tutmak için kullanılır. İçeriği kapsayıcı başlangıcında yeniden oluşturulur ve birim tmpfs gibi kısa ömürlü dosya sistemi kullanılarak bağlanabilir.

Birimleri el ile oluştururken, klasörlerin sahibi kapsayıcı içindeki UID 1000 olmalıdır.

Ayrıca bakınız

Docker birimleri belgeleri

Salt okunur kök dosya sistemi#

4.18 sürümünde geldi.

Kapsayıcı salt okunur bir kök dosya sistemiyle çalıştırırken, iki ek tmpfs birimi gerekir - /tmp ve /run.

Ortam değişkenlerinin yapılandırması#

Docker ortam değişkenleri, Weblate kurulumları ile ilgili pek çok yapılandırma ayarını karşılamayı amaçlıyor.

Bir ortam değişkeni olarak karşılığı olmayan bir ayar bulursanız ve var olması gerektiğine inanıyorsanız, Gelecek Weblate sürümlerine eklenmesini istemekten çekinmeyin.

Docker ortam değişkeni olarak karşılığı olmayan bir ayarı değiştirmeniz gerekirse, bunu veri biriminden ya da Docker kalıbını genişleterek yapabilirsiniz.

Veri biriminden alınan ayarları değiştirmek#

Ortam değişkenleri ile tanımlanan ayarları genişletmek ya da değiştirmek için veri birimi kök klasöründe bir /app/data/settings-override.py dosyası oluşturabilirsiniz.

Docker kalıbını genişleterek ayarları değiştirmek#

Ayarları veri birimi yerine Docker kalıbı düzeyinde değiştirmek için:

  1. Özel bir Python paketi oluşturmak.

  2. Paketinize, weblate.settings_docker ögesinden tüm ayarları içe aktaran bir modül ekleyin.

    Örneğin, Bir Python modülü oluşturmak adresinde tanımlanan örnek paket yapısı içinde, şu başlangıç koduyla bir weblate_customization/weblate_customization/settings.py dosyası oluşturabilirsiniz:

    from weblate.settings_docker import *
    
  3. Resmi Weblate Docker kalıbından devralınan ve ardından paketinizi kuran ve ayarlar modülünüze DJANGO_SETTINGS_MODULE ortam değişkenini gösteren özel bir Dockerfile oluşturun:

    FROM weblate/weblate
    
    USER root
    
    COPY weblate_customization /usr/src/weblate_customization
    RUN pip install --no-cache-dir /usr/src/weblate_customization
    ENV DJANGO_SETTINGS_MODULE=weblate_customization.settings
    
    USER 1000
    
  4. Resmi Weblate Docker kalıbını kullanmak yerine, bu Dockerfile dosyasından özel bir kalıp oluşturun.

    Bunu docker-compose.override.yml ile yapmanın temiz bir yolu yoktur. Bu dosyadaki weblate düğümüne build: . ekleyebilirsiniz. Ancak daha sonra özel kalıbınız sisteminizde ``weblate/weblate” olarak etiketlenir ve bu da soruna yol açabilir.

    Bu nedenle, docker-compose.yml dosyasını doğrudan resmi depo <https://github.com/WeblateOrg/docker-compose>``__ üzerinden değiştirmeden kullanmak ve ``docker-compose.override.yml ile genişletmek yerine, resmi docker-compose.yml dosyasının bir kopyasını oluşturmak ve kopyanızı image: weblate/weblate yerine build: . ile değiştirmek için düzenlemek isteyebilirsiniz.

    docker-compose kullanırken kaynaktan kalıp oluşturma ile ilgili ayrıntılı bilgi almak için Dosya oluşturma referansı bölümüne bakın.

  5. Ayarları tanımlamak veya yeniden tanımlamak için özel ayarlar modülünüzü genişletin.

    Hangi ayarların öncelikli olduğunu belirlemek için ayarları yukarıdaki içe aktarma ifadesinden önce ya da sonra tanımlayabilirsiniz. İçe aktarma ifadesinden önce tanımlanmış ayarlar, ortam değişkenleri ve veri biriminde tanımlanmış ayar değişiklikleri tarafından değiştirilebilir. İçe aktarma ifadesinden sonra tanımlanan ayar değiştirilmez.

    Ayrıca daha ileri gidebilirsiniz. Örneğin, ayarların karşılığını belirlemek gibi weblate.docker_settings uygulamasının <https://github.com/WeblateOrg/weblate/blob/main/weblate/settings_docker.py>`__ yaptığı bazı şeyleri yeniden oluşturabilirsiniz. Ortam değişkenleri olarak veya veri birimindeki Python dosyalarından ayarların değiştirilmesini sağlayabilirsiniz.

Logo ve diğer durağan dosyaları değiştirmek#

3.8-5 sürümünde geldi.

Weblate ile birlikte gelen durağan dosyalar /app/data/python/customize/static içinden değiştirilebilir (bilgi almak için: Docker kapsayıcısı birimleri). Örneğin, /app/data/python/customize/static/favicon.ico dosyası favicon simgesi için kullanılır.

İpucu

Dosyalar kapsayıcı başlatıldığında ilgili konuma kopyalanır. Bu nedenle birimin içeriğini değiştirdikten sonra Weblate yeniden başlatılmalıdır.

Bu yaklaşım, Weblate kalıplarını değiştirmek için de kullanılabilir. Örneğin Yasal belgeler /app/data/python/customize/templates/legal/documents içine yerleştirilebilir.

Alternatif olarak, kendi modülünüzü de ekleyebilir (bilgi almak için: .. /customize) ve Docker kapsayıcısına ayrı birim olarak ekleyebilirsiniz. Örneğin:

weblate:
  volumes:
    - weblate-data:/app/data
    - ./weblate_customization/weblate_customization:/app/data/python/weblate_customization
  environment:
    WEBLATE_ADD_APPS: weblate_customization
PostgreSQL sunucusunu yapılandırmak#

PostgtreSQL kapsayıcısı varsayılan PostgreSQL yapılandırmasını kullanır ve işlemci çekirdeklerini ya da belleği etkili bir şekilde kullanmaz. Başarımı artırmak için yapılandırmanın özelleştirilmesi önerilir.

Yapılandırma, https://hub.docker.com/_/postgres adresindeki Database Configuration bölümünde açıklandığı gibi ayarlanabilir. Ortamınıza uygun bir yapılandırma oluşturmak için https://pgtune.leopard.in.ua/ kullanabilirsiniz.

Kapsayıcı iç yapısı#

Kapsayıcı, bireysel hizmetleri başlatmak için :program: supervisor kullanır. Yatay ölçeklendirme kullanılması durumunda, bir kapsayıcıda yalnızca tek bir hizmet başlatılır.

Hizmetlerin durumunu denetlemek için şunu kullanın:

docker compose exec --user weblate weblate supervisorctl status

Her Celery kuyruğu için ayrı hizmetler bulunur (bilgi almak için: ref:celery). Uygun işlemi durdurarak bazı görevlerin yürütülmesini durdurabilirsiniz:

docker compose exec --user weblate weblate supervisorctl stop celery-translate

Debian ve Ubuntu üzerine kurmak#

Donanım gereksinimleri#

Weblate, herhangi bir çağdaş donanımda sorunsuz çalışmalıdır, Tek bir sunucuda Weblate bileşenlerini (Weblate, veri tabanı ve site sunucusu) çalıştırmak için gerekli en az yapılandırma şu şekildedir:

  • 3 GB RAM bellek

  • 2 işlemci çekirdeği

  • 1 GB depolama alanı

Bellek ne kadar çok olursa o kadar iyidir. Tüm düzeylerde (dosya sistemi, veri tabanı ve Weblate) ön bellek için kullanılır.

Eşzamanlı bulunacak kullanıcı sayısı, gerekli işlemci çekirdeği sayısını artırır. Yüzlerce bileşenden oluşan çevirler için en az 4 GB RAM bellek bulunması önerilir.

Veri tabanı depolama alanı gereksinimi, barındırılacak 1 milyon sözcük için yaklaşık 300 MB olarak düşünebilir. Kopyalanmış depolar için gereken depolama alanı değişiklik gösterir. Ancak Weblate sığ kopyalama ile depo boyutlarını en az düzeyde tutmaya çalışır.

Not

Weblate kurulumunuz için gerçek gereksinimler, üzerinde bulunacak çevirilerin boyutuna bağlı olarak büyük ölçüde değişiklik gösterebilir.

Kurulum#
Sistem gereksinimleri#

Python modüllerini oluşturmak için gereken bağımlılıkları kurun (bilgi almak için: Yazılım gereksinimleri):

apt install -y \
   libxml2-dev libxslt-dev libfreetype6-dev libjpeg-dev libz-dev libyaml-dev \
   libffi-dev libcairo-dev gir1.2-pango-1.0 libgirepository1.0-dev \
   libacl1-dev libssl-dev libpq-dev libjpeg-dev build-essential \
   python3-gdbm python3-dev python3-pip python3-virtualenv virtualenv git

Kullanmak istediğiniz özelliklere bağlı olarak gereken isteğe bağlı bağımlılıkları kurun (bilgi almak için: İsteğe bağlı bağımlılıklar):

apt install -y \
   tesseract-ocr libtesseract-dev libleptonica-dev \
   libldap2-dev libldap-common libsasl2-dev \
   libxmlsec1-dev

İsteğe bağlı olarak üretim sunucusunu çalıştırmak için gereken yazılımı kurun. Bilgi almak için: sunucu, Weblate için veri tabanı kurulumu, Celery ile arka plan görevlerini kullanmak. Kurulumunuzun boyutuna bağlı olarak, bu bileşenleri adanmış sunucular üzerinde çalıştırmak isteyebilirsiniz.

Yerel kurulum yönergeleri:

# Web server option 1: NGINX and uWSGI
apt install -y nginx uwsgi uwsgi-plugin-python3

# Web server option 2: Apache with ``mod_wsgi``
apt install -y apache2 libapache2-mod-wsgi-py3

# Caching backend: Redis
apt install -y redis-server

# Database server: PostgreSQL
apt install -y postgresql postgresql-contrib

# SMTP server
apt install -y exim4
Python modülleri#

İpucu

Sisteminizden ayrı bir ortama Weblate kurmak için virtualenv kullanıyoruz. Bu konuda bilginiz yoksa, virtualenv User Guide bölümüne bakabilirsiniz.

  1. Weblate için virtualenv oluşturun:

    virtualenv ~/weblate-env
    
  2. Weblate için virtualenv etkinleştirin:

    . ~/weblate-env/bin/activate
    
  3. Tüm isteğe bağlı bağımlılıklar ile birlikte Weblate kurulumunu yapın:

    # Install Weblate with all optional dependencies
    pip install "Weblate[all]"
    

    İsteğe bağlı bağımlılıkları ayarlamak için lütfen İsteğe bağlı bağımlılıklar seçeneğini denetleyin.

    Not

    Bazı Linux dağıtımlarında Weblate çalıştırıldığında libffi hatasıyla karşılaşılabilir:

    ffi_prep_closure(): bad user_data (it seems that the version of the libffi library seen at runtime is different from the 'ffi.h' file seen at compile-time)
    

    Bu durum, PyPI ile dağıtılan binary paketlerinin dağıtımla uyumsuz olmasından kaynaklanır. Bu sorunu gidermek için, paketi sisteminizde yeniden oluşturmanız gerekir:

    pip install --force-reinstall --no-binary :all: cffi
    
Weblate platformunu yapılandırmak#

Not

Aşağıdakiler, Weblate için virtualenv kullanımının etkinleştirilmiş olduğunu varsayar (. ~/weblate-env/bin/activate komutu yürütülerek). Virtualenv etkin değilse, weblate komutunun tam yolunu ~/weblate-env/bin/weblate olarak belirtin.

  1. ~/weblate-env/lib/python3.9/site-packages/weblate/settings_example.py dosyasını ~/weblate-env/lib/python3.9/site-packages/weblate/settings.py dosyası olarak kopyalayın.

  2. Yeni settings.py dosyasındaki değerleri istediğiniz gibi ayarlayın. En azından veri tabanı kimlik doğrulama bilgilerini ve Django gizli anahtarını belirtmeniz gerekir. Ancak üretim kurulumu için daha fazla değişiklik yapmak isteyeceksiniz. Bilgi almak için: Yapılandırmayı ayarlama.

  3. Weblate için veri tabanını ve yapısını oluşturun (örnek ayarlar PostgreSQL kullanır, üretime hazır bir kurulum için Weblate için veri tabanı kurulumu bölümüne bakabilirsiniz):

    weblate migrate
    
  4. Yönetici için bir hesap oluşturun ve parolasını panoya kopyalayıp daha sonra kullanmak üzere kaydedin:

    weblate createadmin
    
  5. Web sunucunuz için durağan dosyaları derleyin (bilgi almak için: Sunucuyu çalıştırmak ve Durağan dosyalar sunmak):

    weblate collectstatic
    
  6. JavaScript ve CSS dosyalarını sıkıştırın (isteğe bağlı, bilgi almak için: İstemci varlıklarının sıkıştırılması):

    weblate compress
    
  7. Celery işlemlerini başlatın. Bu adım, geliştirme ortamları için gerekli değildir. Ancak üretim ortamlarında yapılması önemle önerilir. Bilgi almak için Celery ile arka plan görevlerini kullanmak:

    ~/weblate-env/lib/python3.9/site-packages/weblate/examples/celery start
    
  8. Geliştirme sunucusunu başlatın (Sunucuyu çalıştırmak bölümünden üretim kurulumunun ayrıntılarına bakabilirsiniz):

    weblate runserver
    
Kurulum sonrası#

Tebrikler, Weblate sunucunuz artık çalışıyor ve kullanmaya başlayabilirsiniz.

  • Weblate arayüzüne http://localhost:8000/ adresinden erişebilirsiniz.

  • Kurulum sırasında belirtilen yönetici kimlik doğrulama bilgileriyle oturum açın ya da yeni kullanıcı hesapları açın.

  • Weblate virtualenv etkinleştirildiğinde weblate komutunu kullanarak Weblate komutlarını yürütebilirsiniz, Bilgi almak için: Yönetim komutları.

  • Deneme sunucusunu Ctrl+C tuşlarıyla durdurabilirsiniz.

  • Kurulumunuzla ilgili olası sorunları /manage/performance/ adresinden (bilgi almak için: Yönetim arayüzü) ya da weblate check --deploy komutundan görebilirsiniz. Bilgi almak için: Üretim kurulumu.

Çeviri eklemek#
  1. Yönetim arayüzünü açın (http://localhost:8000/create/project/) ve çevirmek istediğiniz bir proje oluşturun. Bilgi almak için Proje yapılandırması.

    Burada yalnızca proje adını ve sitesini belirtmeniz gerekir.

  2. Çeviri için gerçek nesne olan bir bileşen oluşturun. Sürüm denetimi sistemi deposunu yönlenir ve hangi dosyaların çevrileceğini seçer. Bilgi almak için Bileşen yapılandırması.

    Buradaki önemli alanlar şunlardır: Bileşen adı, Kaynak kod deposu ve çevrilebilir dosyaları bulmak için Dosya maskesi. Weblate, GNU gettext, Android dizge kaynakları, Apple iOS dizgeleri, Java özellikleri, Stringsdict biçimi veya Fluent biçimi ile birlikte çok çeşitli biçimleri destekler. Bilgi almak için: Desteklenen dosya biçimleri.

  3. Yukarıdakiler tamamlandıktan sonra (sürüm denetimi sistemi deponuzun boyutuna ve çevrilecek ileti sayısına bağlı olarak uzun bir süreç olabilir), çeviri yapmaya başlayabilirsiniz.

SUSE ve openSUSE üzerine kurmak#

Donanım gereksinimleri#

Weblate, herhangi bir çağdaş donanımda sorunsuz çalışmalıdır, Tek bir sunucuda Weblate bileşenlerini (Weblate, veri tabanı ve site sunucusu) çalıştırmak için gerekli en az yapılandırma şu şekildedir:

  • 3 GB RAM bellek

  • 2 işlemci çekirdeği

  • 1 GB depolama alanı

Bellek ne kadar çok olursa o kadar iyidir. Tüm düzeylerde (dosya sistemi, veri tabanı ve Weblate) ön bellek için kullanılır.

Eşzamanlı bulunacak kullanıcı sayısı, gerekli işlemci çekirdeği sayısını artırır. Yüzlerce bileşenden oluşan çevirler için en az 4 GB RAM bellek bulunması önerilir.

Veri tabanı depolama alanı gereksinimi, barındırılacak 1 milyon sözcük için yaklaşık 300 MB olarak düşünebilir. Kopyalanmış depolar için gereken depolama alanı değişiklik gösterir. Ancak Weblate sığ kopyalama ile depo boyutlarını en az düzeyde tutmaya çalışır.

Not

Weblate kurulumunuz için gerçek gereksinimler, üzerinde bulunacak çevirilerin boyutuna bağlı olarak büyük ölçüde değişiklik gösterebilir.

Kurulum#
Sistem gereksinimleri#

Python modüllerini oluşturmak için gereken bağımlılıkları kurun (bilgi almak için: Yazılım gereksinimleri):

zypper install \
   libxslt-devel libxml2-devel freetype-devel libjpeg-devel zlib-devel \
   libyaml-devel libffi-devel cairo-devel pango-devel \
   gobject-introspection-devel libacl-devel python3-pip python3-virtualenv \
   python3-devel git

Kullanmak istediğiniz özelliklere bağlı olarak gereken isteğe bağlı bağımlılıkları kurun (bilgi almak için: İsteğe bağlı bağımlılıklar):

zypper install tesseract-ocr tesseract-devel leptonica-devel
zypper install libldap2-devel libsasl2-devel
zypper install libxmlsec1-devel

İsteğe bağlı olarak üretim sunucusunu çalıştırmak için gereken yazılımı kurun. Bilgi almak için: sunucu, Weblate için veri tabanı kurulumu, Celery ile arka plan görevlerini kullanmak. Kurulumunuzun boyutuna bağlı olarak, bu bileşenleri adanmış sunucular üzerinde çalıştırmak isteyebilirsiniz.

Yerel kurulum yönergeleri:

# Web server option 1: NGINX and uWSGI
zypper install nginx uwsgi uwsgi-plugin-python3

# Web server option 2: Apache with ``mod_wsgi``
zypper install apache2 apache2-mod_wsgi

# Caching backend: Redis
zypper install redis-server

# Database server: PostgreSQL
zypper install postgresql postgresql-contrib

# SMTP server
zypper install postfix
Python modülleri#

İpucu

Sisteminizden ayrı bir ortama Weblate kurmak için virtualenv kullanıyoruz. Bu konuda bilginiz yoksa, virtualenv User Guide bölümüne bakabilirsiniz.

  1. Weblate için virtualenv oluşturun:

    virtualenv ~/weblate-env
    
  2. Weblate için virtualenv etkinleştirin:

    . ~/weblate-env/bin/activate
    
  3. Tüm isteğe bağlı bağımlılıklar ile birlikte Weblate kurulumunu yapın:

    # Install Weblate with all optional dependencies
    pip install "Weblate[all]"
    

    İsteğe bağlı bağımlılıkları ayarlamak için lütfen İsteğe bağlı bağımlılıklar seçeneğini denetleyin.

    Not

    Bazı Linux dağıtımlarında Weblate çalıştırıldığında libffi hatasıyla karşılaşılabilir:

    ffi_prep_closure(): bad user_data (it seems that the version of the libffi library seen at runtime is different from the 'ffi.h' file seen at compile-time)
    

    Bu durum, PyPI ile dağıtılan binary paketlerinin dağıtımla uyumsuz olmasından kaynaklanır. Bu sorunu gidermek için, paketi sisteminizde yeniden oluşturmanız gerekir:

    pip install --force-reinstall --no-binary :all: cffi
    
Weblate platformunu yapılandırmak#

Not

Aşağıdakiler, Weblate için virtualenv kullanımının etkinleştirilmiş olduğunu varsayar (. ~/weblate-env/bin/activate komutu yürütülerek). Virtualenv etkin değilse, weblate komutunun tam yolunu ~/weblate-env/bin/weblate olarak belirtin.

  1. ~/weblate-env/lib/python3.9/site-packages/weblate/settings_example.py dosyasını ~/weblate-env/lib/python3.9/site-packages/weblate/settings.py dosyası olarak kopyalayın.

  2. Yeni settings.py dosyasındaki değerleri istediğiniz gibi ayarlayın. En azından veri tabanı kimlik doğrulama bilgilerini ve Django gizli anahtarını belirtmeniz gerekir. Ancak üretim kurulumu için daha fazla değişiklik yapmak isteyeceksiniz. Bilgi almak için: Yapılandırmayı ayarlama.

  3. Weblate için veri tabanını ve yapısını oluşturun (örnek ayarlar PostgreSQL kullanır, üretime hazır bir kurulum için Weblate için veri tabanı kurulumu bölümüne bakabilirsiniz):

    weblate migrate
    
  4. Yönetici için bir hesap oluşturun ve parolasını panoya kopyalayıp daha sonra kullanmak üzere kaydedin:

    weblate createadmin
    
  5. Web sunucunuz için durağan dosyaları derleyin (bilgi almak için: Sunucuyu çalıştırmak ve Durağan dosyalar sunmak):

    weblate collectstatic
    
  6. JavaScript ve CSS dosyalarını sıkıştırın (isteğe bağlı, bilgi almak için: İstemci varlıklarının sıkıştırılması):

    weblate compress
    
  7. Celery işlemlerini başlatın. Bu adım, geliştirme ortamları için gerekli değildir. Ancak üretim ortamlarında yapılması önemle önerilir. Bilgi almak için Celery ile arka plan görevlerini kullanmak:

    ~/weblate-env/lib/python3.9/site-packages/weblate/examples/celery start
    
  8. Geliştirme sunucusunu başlatın (Sunucuyu çalıştırmak bölümünden üretim kurulumunun ayrıntılarına bakabilirsiniz):

    weblate runserver
    
Kurulum sonrası#

Tebrikler, Weblate sunucunuz artık çalışıyor ve kullanmaya başlayabilirsiniz.

  • Weblate arayüzüne http://localhost:8000/ adresinden erişebilirsiniz.

  • Kurulum sırasında belirtilen yönetici kimlik doğrulama bilgileriyle oturum açın ya da yeni kullanıcı hesapları açın.

  • Weblate virtualenv etkinleştirildiğinde weblate komutunu kullanarak Weblate komutlarını yürütebilirsiniz, Bilgi almak için: Yönetim komutları.

  • Deneme sunucusunu Ctrl+C tuşlarıyla durdurabilirsiniz.

  • Kurulumunuzla ilgili olası sorunları /manage/performance/ adresinden (bilgi almak için: Yönetim arayüzü) ya da weblate check --deploy komutundan görebilirsiniz. Bilgi almak için: Üretim kurulumu.

Çeviri eklemek#
  1. Yönetim arayüzünü açın (http://localhost:8000/create/project/) ve çevirmek istediğiniz bir proje oluşturun. Bilgi almak için Proje yapılandırması.

    Burada yalnızca proje adını ve sitesini belirtmeniz gerekir.

  2. Çeviri için gerçek nesne olan bir bileşen oluşturun. Sürüm denetimi sistemi deposunu yönlenir ve hangi dosyaların çevrileceğini seçer. Bilgi almak için Bileşen yapılandırması.

    Buradaki önemli alanlar şunlardır: Bileşen adı, Kaynak kod deposu ve çevrilebilir dosyaları bulmak için Dosya maskesi. Weblate, GNU gettext, Android dizge kaynakları, Apple iOS dizgeleri, Java özellikleri, Stringsdict biçimi veya Fluent biçimi ile birlikte çok çeşitli biçimleri destekler. Bilgi almak için: Desteklenen dosya biçimleri.

  3. Yukarıdakiler tamamlandıktan sonra (sürüm denetimi sistemi deponuzun boyutuna ve çevrilecek ileti sayısına bağlı olarak uzun bir süreç olabilir), çeviri yapmaya başlayabilirsiniz.

RedHat, Fedora ve CentOS üzerine kurmak#

Donanım gereksinimleri#

Weblate, herhangi bir çağdaş donanımda sorunsuz çalışmalıdır, Tek bir sunucuda Weblate bileşenlerini (Weblate, veri tabanı ve site sunucusu) çalıştırmak için gerekli en az yapılandırma şu şekildedir:

  • 3 GB RAM bellek

  • 2 işlemci çekirdeği

  • 1 GB depolama alanı

Bellek ne kadar çok olursa o kadar iyidir. Tüm düzeylerde (dosya sistemi, veri tabanı ve Weblate) ön bellek için kullanılır.

Eşzamanlı bulunacak kullanıcı sayısı, gerekli işlemci çekirdeği sayısını artırır. Yüzlerce bileşenden oluşan çevirler için en az 4 GB RAM bellek bulunması önerilir.

Veri tabanı depolama alanı gereksinimi, barındırılacak 1 milyon sözcük için yaklaşık 300 MB olarak düşünebilir. Kopyalanmış depolar için gereken depolama alanı değişiklik gösterir. Ancak Weblate sığ kopyalama ile depo boyutlarını en az düzeyde tutmaya çalışır.

Not

Weblate kurulumunuz için gerçek gereksinimler, üzerinde bulunacak çevirilerin boyutuna bağlı olarak büyük ölçüde değişiklik gösterebilir.

Kurulum#
Sistem gereksinimleri#

Python modüllerini oluşturmak için gereken bağımlılıkları kurun (bilgi almak için: Yazılım gereksinimleri):

dnf install \
   libxslt-devel libxml2-devel freetype-devel libjpeg-devel zlib-devel \
   libyaml-devel libffi-devel cairo-devel cairo-gobject-devel pango-devel \
   gobject-introspection-devel libacl-devel python3-pip python3-virtualenv \
   libtool-ltdl-devel python3-devel git

Kullanmak istediğiniz özelliklere bağlı olarak gereken isteğe bağlı bağımlılıkları kurun (bilgi almak için: İsteğe bağlı bağımlılıklar):

dnf install tesseract-langpack-eng tesseract-devel leptonica-devel
dnf install openldap-devel libsasl2-devel
dnf install xmlsec1-devel

İsteğe bağlı olarak üretim sunucusunu çalıştırmak için gereken yazılımı kurun. Bilgi almak için: sunucu, Weblate için veri tabanı kurulumu, Celery ile arka plan görevlerini kullanmak. Kurulumunuzun boyutuna bağlı olarak, bu bileşenleri adanmış sunucular üzerinde çalıştırmak isteyebilirsiniz.

Yerel kurulum yönergeleri:

# Web server option 1: NGINX and uWSGI
dnf install nginx uwsgi uwsgi-plugin-python3

# Web server option 2: Apache with ``mod_wsgi``
dnf install apache2 apache2-mod_wsgi

# Caching backend: Redis
dnf install redis

# Database server: PostgreSQL
dnf install postgresql postgresql-contrib

# SMTP server
dnf install postfix
Python modülleri#

İpucu

Sisteminizden ayrı bir ortama Weblate kurmak için virtualenv kullanıyoruz. Bu konuda bilginiz yoksa, virtualenv User Guide bölümüne bakabilirsiniz.

  1. Weblate için virtualenv oluşturun:

    virtualenv ~/weblate-env
    
  2. Weblate için virtualenv etkinleştirin:

    . ~/weblate-env/bin/activate
    
  3. Tüm isteğe bağlı bağımlılıklar ile birlikte Weblate kurulumunu yapın:

    # Install Weblate with all optional dependencies
    pip install "Weblate[all]"
    

    İsteğe bağlı bağımlılıkları ayarlamak için lütfen İsteğe bağlı bağımlılıklar seçeneğini denetleyin.

    Not

    Bazı Linux dağıtımlarında Weblate çalıştırıldığında libffi hatasıyla karşılaşılabilir:

    ffi_prep_closure(): bad user_data (it seems that the version of the libffi library seen at runtime is different from the 'ffi.h' file seen at compile-time)
    

    Bu durum, PyPI ile dağıtılan binary paketlerinin dağıtımla uyumsuz olmasından kaynaklanır. Bu sorunu gidermek için, paketi sisteminizde yeniden oluşturmanız gerekir:

    pip install --force-reinstall --no-binary :all: cffi
    
Weblate platformunu yapılandırmak#

Not

Aşağıdakiler, Weblate için virtualenv kullanımının etkinleştirilmiş olduğunu varsayar (. ~/weblate-env/bin/activate komutu yürütülerek). Virtualenv etkin değilse, weblate komutunun tam yolunu ~/weblate-env/bin/weblate olarak belirtin.

  1. ~/weblate-env/lib/python3.9/site-packages/weblate/settings_example.py dosyasını ~/weblate-env/lib/python3.9/site-packages/weblate/settings.py dosyası olarak kopyalayın.

  2. Yeni settings.py dosyasındaki değerleri istediğiniz gibi ayarlayın. En azından veri tabanı kimlik doğrulama bilgilerini ve Django gizli anahtarını belirtmeniz gerekir. Ancak üretim kurulumu için daha fazla değişiklik yapmak isteyeceksiniz. Bilgi almak için: Yapılandırmayı ayarlama.

  3. Weblate için veri tabanını ve yapısını oluşturun (örnek ayarlar PostgreSQL kullanır, üretime hazır bir kurulum için Weblate için veri tabanı kurulumu bölümüne bakabilirsiniz):

    weblate migrate
    
  4. Yönetici için bir hesap oluşturun ve parolasını panoya kopyalayıp daha sonra kullanmak üzere kaydedin:

    weblate createadmin
    
  5. Web sunucunuz için durağan dosyaları derleyin (bilgi almak için: Sunucuyu çalıştırmak ve Durağan dosyalar sunmak):

    weblate collectstatic
    
  6. JavaScript ve CSS dosyalarını sıkıştırın (isteğe bağlı, bilgi almak için: İstemci varlıklarının sıkıştırılması):

    weblate compress
    
  7. Celery işlemlerini başlatın. Bu adım, geliştirme ortamları için gerekli değildir. Ancak üretim ortamlarında yapılması önemle önerilir. Bilgi almak için Celery ile arka plan görevlerini kullanmak:

    ~/weblate-env/lib/python3.9/site-packages/weblate/examples/celery start
    
  8. Geliştirme sunucusunu başlatın (Sunucuyu çalıştırmak bölümünden üretim kurulumunun ayrıntılarına bakabilirsiniz):

    weblate runserver
    
Kurulum sonrası#

Tebrikler, Weblate sunucunuz artık çalışıyor ve kullanmaya başlayabilirsiniz.

  • Weblate arayüzüne http://localhost:8000/ adresinden erişebilirsiniz.

  • Kurulum sırasında belirtilen yönetici kimlik doğrulama bilgileriyle oturum açın ya da yeni kullanıcı hesapları açın.

  • Weblate virtualenv etkinleştirildiğinde weblate komutunu kullanarak Weblate komutlarını yürütebilirsiniz, Bilgi almak için: Yönetim komutları.

  • Deneme sunucusunu Ctrl+C tuşlarıyla durdurabilirsiniz.

  • Kurulumunuzla ilgili olası sorunları /manage/performance/ adresinden (bilgi almak için: Yönetim arayüzü) ya da weblate check --deploy komutundan görebilirsiniz. Bilgi almak için: Üretim kurulumu.

Çeviri eklemek#
  1. Yönetim arayüzünü açın (http://localhost:8000/create/project/) ve çevirmek istediğiniz bir proje oluşturun. Bilgi almak için Proje yapılandırması.

    Burada yalnızca proje adını ve sitesini belirtmeniz gerekir.

  2. Çeviri için gerçek nesne olan bir bileşen oluşturun. Sürüm denetimi sistemi deposunu yönlenir ve hangi dosyaların çevrileceğini seçer. Bilgi almak için Bileşen yapılandırması.

    Buradaki önemli alanlar şunlardır: Bileşen adı, Kaynak kod deposu ve çevrilebilir dosyaları bulmak için Dosya maskesi. Weblate, GNU gettext, Android dizge kaynakları, Apple iOS dizgeleri, Java özellikleri, Stringsdict biçimi veya Fluent biçimi ile birlikte çok çeşitli biçimleri destekler. Bilgi almak için: Desteklenen dosya biçimleri.

  3. Yukarıdakiler tamamlandıktan sonra (sürüm denetimi sistemi deponuzun boyutuna ve çevrilecek ileti sayısına bağlı olarak uzun bir süreç olabilir), çeviri yapmaya başlayabilirsiniz.

macOS üzerine kurulum#

Donanım gereksinimleri#

Weblate, herhangi bir çağdaş donanımda sorunsuz çalışmalıdır, Tek bir sunucuda Weblate bileşenlerini (Weblate, veri tabanı ve site sunucusu) çalıştırmak için gerekli en az yapılandırma şu şekildedir:

  • 3 GB RAM bellek

  • 2 işlemci çekirdeği

  • 1 GB depolama alanı

Bellek ne kadar çok olursa o kadar iyidir. Tüm düzeylerde (dosya sistemi, veri tabanı ve Weblate) ön bellek için kullanılır.

Eşzamanlı bulunacak kullanıcı sayısı, gerekli işlemci çekirdeği sayısını artırır. Yüzlerce bileşenden oluşan çevirler için en az 4 GB RAM bellek bulunması önerilir.

Veri tabanı depolama alanı gereksinimi, barındırılacak 1 milyon sözcük için yaklaşık 300 MB olarak düşünebilir. Kopyalanmış depolar için gereken depolama alanı değişiklik gösterir. Ancak Weblate sığ kopyalama ile depo boyutlarını en az düzeyde tutmaya çalışır.

Not

Weblate kurulumunuz için gerçek gereksinimler, üzerinde bulunacak çevirilerin boyutuna bağlı olarak büyük ölçüde değişiklik gösterebilir.

Kurulum#
Sistem gereksinimleri#

Python modüllerini oluşturmak için gereken bağımlılıkları kurun (bilgi almak için: Yazılım gereksinimleri):

brew install python pango cairo gobject-introspection libffi glib libyaml
pip install virtualenv

Homebrew tarafından sağlanan libffi ve òpenssl` sürümlerinin pip tarafından bulunabileceğinden emin olun. Kurulum oluşturma adımı sırasında buna gerek duyulur.

export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/openssl@3/lib/pkgconfig"

Kullanmak istediğiniz özelliklere bağlı olarak gereken isteğe bağlı bağımlılıkları kurun (bilgi almak için: İsteğe bağlı bağımlılıklar):

brew install tesseract

İsteğe bağlı olarak üretim sunucusunu çalıştırmak için gereken yazılımı kurun. Bilgi almak için: sunucu, Weblate için veri tabanı kurulumu, Celery ile arka plan görevlerini kullanmak. Kurulumunuzun boyutuna bağlı olarak, bu bileşenleri adanmış sunucular üzerinde çalıştırmak isteyebilirsiniz.

Yerel kurulum yönergeleri:

# Web server option 1: NGINX and uWSGI
brew install nginx uwsgi

# Web server option 2: Apache with ``mod_wsgi``
brew install httpd

# Caching backend: Redis
brew install redis

# Database server: PostgreSQL
brew install postgresql
Python modülleri#

İpucu

Sisteminizden ayrı bir ortama Weblate kurmak için virtualenv kullanıyoruz. Bu konuda bilginiz yoksa, virtualenv User Guide bölümüne bakabilirsiniz.

  1. Weblate için virtualenv oluşturun:

    virtualenv ~/weblate-env
    
  2. Weblate için virtualenv etkinleştirin:

    . ~/weblate-env/bin/activate
    
  3. Tüm isteğe bağlı bağımlılıklar ile birlikte Weblate kurulumunu yapın:

    # Install Weblate with all optional dependencies
    pip install "Weblate[all]"
    

    İsteğe bağlı bağımlılıkları ayarlamak için lütfen İsteğe bağlı bağımlılıklar seçeneğini denetleyin.

    Not

    Bazı Linux dağıtımlarında Weblate çalıştırıldığında libffi hatasıyla karşılaşılabilir:

    ffi_prep_closure(): bad user_data (it seems that the version of the libffi library seen at runtime is different from the 'ffi.h' file seen at compile-time)
    

    Bu durum, PyPI ile dağıtılan binary paketlerinin dağıtımla uyumsuz olmasından kaynaklanır. Bu sorunu gidermek için, paketi sisteminizde yeniden oluşturmanız gerekir:

    pip install --force-reinstall --no-binary :all: cffi
    
Weblate platformunu yapılandırmak#

Not

Aşağıdakiler, Weblate için virtualenv kullanımının etkinleştirilmiş olduğunu varsayar (. ~/weblate-env/bin/activate komutu yürütülerek). Virtualenv etkin değilse, weblate komutunun tam yolunu ~/weblate-env/bin/weblate olarak belirtin.

  1. ~/weblate-env/lib/python3.9/site-packages/weblate/settings_example.py dosyasını ~/weblate-env/lib/python3.9/site-packages/weblate/settings.py dosyası olarak kopyalayın.

  2. Yeni settings.py dosyasındaki değerleri istediğiniz gibi ayarlayın. En azından veri tabanı kimlik doğrulama bilgilerini ve Django gizli anahtarını belirtmeniz gerekir. Ancak üretim kurulumu için daha fazla değişiklik yapmak isteyeceksiniz. Bilgi almak için: Yapılandırmayı ayarlama.

  3. Weblate için veri tabanını ve yapısını oluşturun (örnek ayarlar PostgreSQL kullanır, üretime hazır bir kurulum için Weblate için veri tabanı kurulumu bölümüne bakabilirsiniz):

    weblate migrate
    
  4. Yönetici için bir hesap oluşturun ve parolasını panoya kopyalayıp daha sonra kullanmak üzere kaydedin:

    weblate createadmin
    
  5. Web sunucunuz için durağan dosyaları derleyin (bilgi almak için: Sunucuyu çalıştırmak ve Durağan dosyalar sunmak):

    weblate collectstatic
    
  6. JavaScript ve CSS dosyalarını sıkıştırın (isteğe bağlı, bilgi almak için: İstemci varlıklarının sıkıştırılması):

    weblate compress
    
  7. Celery işlemlerini başlatın. Bu adım, geliştirme ortamları için gerekli değildir. Ancak üretim ortamlarında yapılması önemle önerilir. Bilgi almak için Celery ile arka plan görevlerini kullanmak:

    ~/weblate-env/lib/python3.9/site-packages/weblate/examples/celery start
    
  8. Geliştirme sunucusunu başlatın (Sunucuyu çalıştırmak bölümünden üretim kurulumunun ayrıntılarına bakabilirsiniz):

    weblate runserver
    
Kurulum sonrası#

Tebrikler, Weblate sunucunuz artık çalışıyor ve kullanmaya başlayabilirsiniz.

  • Weblate arayüzüne http://localhost:8000/ adresinden erişebilirsiniz.

  • Kurulum sırasında belirtilen yönetici kimlik doğrulama bilgileriyle oturum açın ya da yeni kullanıcı hesapları açın.

  • Weblate virtualenv etkinleştirildiğinde weblate komutunu kullanarak Weblate komutlarını yürütebilirsiniz, Bilgi almak için: Yönetim komutları.

  • Deneme sunucusunu Ctrl+C tuşlarıyla durdurabilirsiniz.

  • Kurulumunuzla ilgili olası sorunları /manage/performance/ adresinden (bilgi almak için: Yönetim arayüzü) ya da weblate check --deploy komutundan görebilirsiniz. Bilgi almak için: Üretim kurulumu.

Çeviri eklemek#
  1. Yönetim arayüzünü açın (http://localhost:8000/create/project/) ve çevirmek istediğiniz bir proje oluşturun. Bilgi almak için Proje yapılandırması.

    Burada yalnızca proje adını ve sitesini belirtmeniz gerekir.

  2. Çeviri için gerçek nesne olan bir bileşen oluşturun. Sürüm denetimi sistemi deposunu yönlenir ve hangi dosyaların çevrileceğini seçer. Bilgi almak için Bileşen yapılandırması.

    Buradaki önemli alanlar şunlardır: Bileşen adı, Kaynak kod deposu ve çevrilebilir dosyaları bulmak için Dosya maskesi. Weblate, GNU gettext, Android dizge kaynakları, Apple iOS dizgeleri, Java özellikleri, Stringsdict biçimi veya Fluent biçimi ile birlikte çok çeşitli biçimleri destekler. Bilgi almak için: Desteklenen dosya biçimleri.

  3. Yukarıdakiler tamamlandıktan sonra (sürüm denetimi sistemi deponuzun boyutuna ve çevrilecek ileti sayısına bağlı olarak uzun bir süreç olabilir), çeviri yapmaya başlayabilirsiniz.

Kaynaklardan kurulum#

  1. Lütfen Weblate kurulumu için öncelikle sisteminize uygun kurulum yönergelerini izleyin:

  2. Git kullanarak güncel Weblate kaynaklarını edinin (ya da bir tarball indirip paketi ayıklayın):

    git clone https://github.com/WeblateOrg/weblate.git weblate-src
    

    Alternatif olarak, yayınlanmış arşiv dosyalarını da kullanabilirsiniz. Bunları sitemizden <https://weblate.org/> indirebilirsiniz. Bu indirmeler şifrelenerek imzalanmıştır. Bilgi almak için: ref:`verify’.

  3. Geçerli Weblate kodunu virtualenv üzerine kurun:

    . ~/weblate-env/bin/activate
    pip install -e 'weblate-src[all]'
    
  4. weblate/settings_example.py dosyasını weblate/settings.py olarak kopyalayın.

  5. Yeni settings.py dosyasındaki değerleri istediğiniz gibi ayarlayın. En azından veri tabanı kimlik doğrulama bilgilerini ve Django gizli anahtarını belirtmeniz gerekir. Ancak üretim kurulumu için daha fazla değişiklik yapmak isteyeceksiniz. Bilgi almak için: Yapılandırmayı ayarlama.

  6. Weblate tarafından kullanılacak veri tabanını oluşturun. Bilgi almak için: Weblate için veri tabanı kurulumu.

  7. Django tablolarını, durağan dosyaları ve başlangıç verilerini oluşturun (bilgi almak için: Veri tabanını doldurmak ve Durağan dosyalar sunmak):

    weblate migrate
    weblate collectstatic
    weblate compress
    

    Not

    Bu adım, her depo güncellemesi yaptığınızda yinelenmelidir.

OpenShift üzerine kurulum#

OpenShift Weblate kalıbıyla kişisel Weblate bulut sunucunuzu saniyeler içinde çalışır duruma getirebilirsiniz. Tüm Weblate bağımlılıkları önceden katılmıştır. PostgreSQL varsayılan veri tabanı olarak ayarlanır ve kalıcı birim kullanılır.

Kalıbı <https://github.com/WeblateOrg/openshift/> adresinde bulabilirsiniz.

Kurulum#

Aşağıdaki örneklerde, oc istemci aracının yüklü olduğu çalışan bir OpenShift v3.x ortamınız olduğu varsayılmıştır. Lütfen yönergeler için OpenShift belgelerine bakın.

template.yml dosyası OpenShift üzerinde tüm bileşenleri çalıştırmak için uygundur. Ayrıca template-external-postgresql.yml dosyası bir PostgreSQL sunucusunu başlatmaz ve bir dış PostgreSQL sunucusunu yapılandırmanızı sağlar.

Site konsolu#

Ham içeriği template.yml dosyasından kopyalayın ve projenize aktarın. Ardından uygulamanızı oluşturmak için OpenShift internet konsolundaki Create düğmesini kullanın. Site konsolu, sizden kalıp tarafından kullanılan tüm parametrelerin değerlerini ister.

CLI#

Weblate kalıbını geçerli projenizin kalıp kitaplığına yüklemek için şu komutta template.yml dosyasını belirtin:

$ oc create -f https://raw.githubusercontent.com/WeblateOrg/openshift/main/template.yml \
   -n <PROJECT>

Kalıp artık site konsolu ya da komut satırı (CLI) kullanılarak seçilebilir.

Parametreler#

Değiştirebileceğiniz parametreler kalıbın parametreler bölümünde listelenir. Şu komutu kullanarak ve kullanılacak dosyayı belirterek bunları komut satırı (CLI) ile listeleyebilirsiniz:

$ oc process --parameters -f https://raw.githubusercontent.com/WeblateOrg/openshift/main/template.yml

# If the template is already uploaded
$ oc process --parameters -n <PROJECT> weblate
Hazırlamak#

Komut satırını (CLI) kalıpları işlemek ve hazırlanan yapılandırmadan nesneleri hemen oluşturmak için de kullanabilirsiniz.

$ oc process -f https://raw.githubusercontent.com/WeblateOrg/openshift/main/template.yml \
    -p APPLICATION_NAME=weblate \
    -p WEBLATE_VERSION=4.3.1-1 \
    -p WEBLATE_SITE_DOMAIN=weblate.app-openshift.example.com \
    -p POSTGRESQL_IMAGE=docker-registry.default.svc:5000/openshift/postgresql:9.6 \
    -p REDIS_IMAGE=docker-registry.default.svc:5000/openshift/redis:3.2 \
    | oc create -f

Weblate kopyası, başarılı bir aktarım ve dağıtımdan sonra belirtilmiş WEBLATE_SITE_DOMAIN parametresinde kullanılabilir olmalıdır.

Kapsayıcı kurulumundan sonra, WEBLATE_ADMIN_PASSWORD seçeneğinde belirtilen parolayla ya da ayarlanmamışsa ilk başlatılmada oluşturulan rastgele bir parolayla admin kullanıcısı olarak oturum açabilirsiniz.

‘Admin’ parolasını sıfırlamak için, ilgili Secret bölümünde WEBLATE_ADMIN_PASSWORD seçeneğine yeni parola ayarladıktan sonra kapsayıcıyı yeniden başlatın.

Elemek#
$ oc delete all -l app=<APPLICATION_NAME>
$ oc delete configmap -l app= <APPLICATION_NAME>
$ oc delete secret -l app=<APPLICATION_NAME>
# ATTTENTION! The following command is only optional and will permanently delete all of your data.
$ oc delete pvc -l app=<APPLICATION_NAME>

$ oc delete all -l app=weblate \
    && oc delete secret -l app=weblate \
    && oc delete configmap -l app=weblate \
    && oc delete pvc -l app=weblate
Yapılandırma#

Kalıbı işleyerek, Weblate kalıbını özelleştirmek için kullanılabilecek ilgili bir ConfigMap oluşturulur. ConfigMap doğrudan ortam değişkenleri olarak bağlanır ve her değiştirildiğinde yeni bir dağıtımı tetikler. Daha fazla yapılandırma seçeneği sunan ortam değişkenlerinin tam listesi için Docker ortam değişkenleri bölümüne bakabilirsiniz.

Kubernetes üzerine kurulum#

Not

Bu rehberde, kurulumu daha ayrıntılı olarak ele alabilmek için Kubernetes konusunda deneyimli gönüllüler arıyoruz.

Kubernetes Helm çizelgesi ile kişisel Weblate bulut sunucunuzu saniyeler içinde çalışır duruma getirebilirsiniz. Tüm Weblate bağımlılıkları önceden katılmıştır. Varsayılan veri tabanı olarak PostgreSQL ayarlanır ve kalıcı birim kullanılır.

Çizelgeyi <https://github.com/WeblateOrg/helm/> adresinde bulabilir ve <https://artifacthub.io/packages/helm/weblate/weblate> adresinde görebilirsiniz.

Kurulum#
helm repo add weblate https://helm.weblate.org
helm install my-release weblate/weblate
Yapılandırma#

Daha fazla yapılandırma seçeneği sunan ortam değişkenlerinin tam listesi için Docker ortam değişkenleri bölümüne bakabilirsiniz.

Kurulumunuza ve deneyiminize bağlı olarak, size en uygun kurulum yöntemi seçin:

Yazılım gereksinimleri#

İşletim sistemi#

Weblate platformunun, Linux, FreeBSD ve macOS üzerinde çalıştığı biliniyor. Diğer Unix benzeri sistemlerde de büyük olasılıkla çalışacaktır.

Weblate, Windows üzerinde desteklenmez. Ancak yine de çalışabilir ve yazılım yamaları mutlulukla kabul edilir.

Diğer hizmetler#

Weblate, çalışabilmek için başka hizmetleri kullanır. En azından şu hizmetlerin çalışması gerekir:

Python bağımlılıkları#

Weblate, Python ile yazılmıştır ve Python 3.6 ya da üzerindeki sürümleri destekler. Bağımlılıkları pip kullanarak ya da dağıtım paketlerinizden kurabilirsiniz. Tam listeyi requirements.txt adresinde bulabilirsiniz.

En önemli bağımlılıklar:

Django

https://www.djangoproject.com/

Celery

https://docs.celeryq.dev/

Translate Toolkit

https://toolkit.translatehouse.org/

translation-finder

https://github.com/WeblateOrg/translation-finder

Python Social Auth

https://python-social-auth.readthedocs.io/

Django REST çatısı

https://www.django-rest-framework.org/

İsteğe bağlı bağımlılıklar#

Bazı Weblate özellikleri için şu modüller gereklidir. Hepsini requirements-optional.txt içinde bulabilirsiniz.

Mercurial (Mercurial depo desteği için isteğe bağlı)

https://www.mercurial-scm.org/

phply (PHP dizgeleri için isteğe bağlı)

https://github.com/viraptor/phply

tesserocr (Dizgeler için görsel bağlam ile karakter tanıma için isteğe bağlı)

https://github.com/sirfz/tesserocr

python-akismet (İstenmeyen gönderim koruması için isteğe bağlı)

https://github.com/Nekmo/python-akismet

ruamel.yaml (YAML dosyaları için isteğe bağlı)

https://pypi.org/project/ruamel.yaml/

Zeep (Microsoft Terminology için isteğe bağlı)

https://docs.python-zeep.org/

aeidon (Alt yazı dosyaları için isteğe bağlı)

https://pypi.org/project/aeidon/

fluent.syntax (Fluent biçimi için isteğe bağlı)

https://projectfluent.org/

İpucu

Pip kullanarak kurulum yapılırken istediğiniz özellikleri doğrudan belirtebilirsiniz:

pip install "Weblate[PHP,Fluent]"

Ya da tüm isteğe bağlı özelliklerle Weblate kurulumu yapabilirsiniz:

pip install "Weblate[all]"

Ya da hiç bir isteğe bağlı özellik olmadan Weblate kurulumu yapabilirsiniz:

pip install Weblate

Veri tabanı arka plan bağımlılıkları#

Weblate PostgreSQL, MySQL ve MariaDB veri tabanlarını destekler. Bilgi almak için Weblate için veri tabanı kurulumu ve yönetim bölümü belgelerine bakabilirsiniz.

Diğer sistem gereksinimleri#

Sisteme şu bağımlılıkların kurulması gerekir:

Git

https://git-scm.com/

Pango, Cairo ve ilişkili üst bilgi dosyaları ile GObject iç gözlem verileri

https://cairographics.org/, https://pango.gnome.org/, bilgi almak için: Pango ve Cairo

git-review (Gerrit desteği için isteğe bağlı)

https://pypi.org/project/git-review/

git-svn (Subversion desteği için isteğe bağlı)

https://git-scm.com/docs/git-svn

tesseract ve verileri (ekran görüntülerinde karakter tanıma için isteğe bağlı)

https://github.com/tesseract-ocr/tesseract

licensee (bileşen oluştururken lisansın algılanması için isteğe bağlı)

https://github.com/licensee/licensee

Yapım zamanı bağımlılıkları#

Bazı Python bağımlılıkları bağımlılıklarını kurmanız gerekebilir. Bu durum, bunları nasıl kurduğunuza bağlıdır. O yüzden her paketin kendi belgesine başvurun. Pip kullanarak yapılan kurulum sorasında ya da dağıtım paketlerini kullanırken önceden oluşturulmuş Wheels kullanıyorsanız, bunlara gerek duymazsınız.

Pango ve Cairo#

3.7 sürümünde değişti.

Weblate, bitmap bileşenlerini (bilgi almak için: Çeviriyi tanıtmak) ve görüntüleme denetimlerini (bilgi almak için: Yazı tiplerini yönetmek) oluşturmak için Pango ve Cairo kullanır. Python bağlantılarını düzgün olarak kurmak için önce sistem kitaplıklarını kurmanız gerekir. Hem Cairo hem de Pango gereklidir, bunlar için de GLib gereklidir. Tüm bunlar geliştirme dosyaları ve GObject iç gözlem verileriyle birlikte kurulmalıdır.

Sürüm imzalarını doğrulamak#

Weblate sürümü, yayın geliştiricisi tarafından şifrelenmiş olarak imzalanır. Şu anda bu işi Michal Čihař yapıyor ve onun PGP anahtarının parmak izi:

63CB 1DF1 EF12 CF2A C0EE 5A32 9C27 B313 42B7 511D

ve <https://keybase.io/nijel> adresinden diğer belirleyici bilgileri alabilirsiniz.

İmzanın indirdiğiniz arşivle eşleştiğini doğrulamanız gerekir. Bu şekilde, yayınlanan kodu değiştirilmemiş olduğundan emin olabilirsiniz. Güncel sürümü indirdiğinizden emin olmak için imzanın tarihini de doğrulamalısınız.

Her arşiv dosyası için, PGP imzasının bulunduğu .asc dosyaları bulunur. Bu iki dosyayı aynı klasöre kaydettikten sonra imzayı doğrulayabilirsiniz:

$ gpg --verify Weblate-3.5.tar.xz.asc
gpg: assuming signed data in 'Weblate-3.5.tar.xz'
gpg: Signature made Ne 3. března 2019, 16:43:15 CET
gpg:                using RSA key 87E673AF83F6C3A0C344C8C3F4AA229D4D58C245
gpg: Can't check signature: public key not found

Görebileceğiniz gibi GPG, herkese açık anahtarı bilmediğini bildiriyor. Bu aşamada şu adımlardan birini uygulamanız gerekir:

  • Anahtarı indirmek için wkd kullanın:

$ gpg --auto-key-locate wkd --locate-keys michal@cihar.com
pub   rsa4096 2009-06-17 [SC]
      63CB1DF1EF12CF2AC0EE5A329C27B31342B7511D
uid           [ultimate] Michal Čihař <michal@cihar.com>
uid           [ultimate] Michal Čihař <nijel@debian.org>
uid           [ultimate] [jpeg image of size 8848]
uid           [ultimate] Michal Čihař (Braiins) <michal.cihar@braiins.cz>
sub   rsa4096 2009-06-17 [E]
sub   rsa4096 2015-09-09 [S]
$ gpg --import wmxth3chu9jfxdxywj1skpmhsj311mzm
  • Anahtarı bir anahtar sunucusundan indirip içe aktarın:

$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 87E673AF83F6C3A0C344C8C3F4AA229D4D58C245
gpg: key 9C27B31342B7511D: "Michal Čihař <michal@cihar.com>" imported
gpg: Total number processed: 1
gpg:              unchanged: 1

Bu uygulama, durumu biraz iyileştirir. Bu noktada, belirtilen anahtardaki imzanın doğruluğundan emin olabilirsiniz. Ancak yine de anahtarda kullanılan ada güvenemezsiniz:

$ gpg --verify Weblate-3.5.tar.xz.asc
gpg: assuming signed data in 'Weblate-3.5.tar.xz'
gpg: Signature made Ne 3. března 2019, 16:43:15 CET
gpg:                using RSA key 87E673AF83F6C3A0C344C8C3F4AA229D4D58C245
gpg: Good signature from "Michal Čihař <michal@cihar.com>" [ultimate]
gpg:                 aka "Michal Čihař <nijel@debian.org>" [ultimate]
gpg:                 aka "[jpeg image of size 8848]" [ultimate]
gpg:                 aka "Michal Čihař (Braiins) <michal.cihar@braiins.cz>" [ultimate]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 63CB 1DF1 EF12 CF2A C0EE  5A32 9C27 B313 42B7 511D

Buradaki sorun, herhangi birinin aynı adlı bir anahtar yayınlayabilmesidir. Anahtarın gerçekten ilgili kişinin olduğundan emin olmanız gerekir. Bu konu, GNU gizlilik rehberinin Herkese açık anahtarlığınızdaki diğer anahtarları doğrulama bölümünde ele alınmıştır. En güvenilir yöntem, geliştiriciyle birebir tanışmak ve anahtar parmak izlerini takas etmektir. Ancak güven ağına da güvenebilirsiniz. Bu şekilde, geliştiriciyle birebir tanışmış başka kişilerin imzalarıyla anahtara geçici olarak güvenebilirsiniz.

Anahtara güvenildikten sonra uyarı görünmez olur:

$ gpg --verify Weblate-3.5.tar.xz.asc
gpg: assuming signed data in 'Weblate-3.5.tar.xz'
gpg: Signature made Sun Mar  3 16:43:15 2019 CET
gpg:                using RSA key 87E673AF83F6C3A0C344C8C3F4AA229D4D58C245
gpg: Good signature from "Michal Čihař <michal@cihar.com>" [ultimate]
gpg:                 aka "Michal Čihař <nijel@debian.org>" [ultimate]
gpg:                 aka "[jpeg image of size 8848]" [ultimate]
gpg:                 aka "Michal Čihař (Braiins) <michal.cihar@braiins.cz>" [ultimate]

İmza geçersiz olursa (arşiv değiştirilmişse), anahtara güvenilip güvenilmediğine bakılmaksızın açık bir hata iletisi görürsünüz:

$ gpg --verify Weblate-3.5.tar.xz.asc
gpg: Signature made Sun Mar  3 16:43:15 2019 CET
gpg:                using RSA key 87E673AF83F6C3A0C344C8C3F4AA229D4D58C245
gpg: BAD signature from "Michal Čihař <michal@cihar.com>" [ultimate]

Dosya sistemi izinleri#

Weblate işleminin, verileri tuttuğu DATA_DIR klasöründe okuma ve yazma yapabilmesi gerekir. Bu klasördeki tüm dosyaların sahibi, tüm Weblate işlemlerini çalıştıran kullanıcı olmalı ve bu klasöre yazabilmelidir (genellikle WSGI ve Celery, bilgi almak için sunucu ve Celery ile arka plan görevlerini kullanmak).

Varsayılan yapılandırmada bunlar Weblate kaynaklarıyla aynı ağaca yerleştirilir. Ancak bunları /var/lib/weblate gibi daha iyi bir konuma taşımayı yeğleyebilirsiniz.

Weblate bu klasörleri kendiliğinden oluşturmaya çalışır. Ancak bunu yapmak için yeterli izinleri yoksa bunu yapamaz.

Yönetim komutları komutunu çalıştırırken de dikkatli olmalısınız. Komut aynı Weblate kullanıcısı ile çalıştırılmalıdır yoksa bazı dosyaların izinler yanlış olabilir.

Docker kapsayıcısında, /app/data birimindeki tüm dosyaların sahibi kapsayıcı içindeki weblate kullanıcısı olmalıdır (UID 1000).

Ayrıca bakınız

Durağan dosyalar sunmak

Weblate için veri tabanı kurulumu#

Weblate için PostgreSQL veri tabanı sunucusunun kullanılması önerilir.

PostgreSQL 12 ve üzeri sürümler desteklenir.

PostgreSQL#

Django temelli siteler için genellikle en iyi seçim PostgreSQL kullanmaktır. Django tarafından referans olarak kullanılan veri tabanıdır.

Not

Weblate, bazı durumlarda ayrı olarak kurulması gereken trigram eklentisini kullanır. Postgresql-contrib ya da benzer şekilde adlandırılmış bir paket arayın.

Ayrıca bakınız

PostgreSQL notes

PostgreSQL üzerinde bir veri tabanı oluşturmak#

Weblate için ayrı bir kullanıcı hesabı ile ayrı bir veri tabanı kullanmak genellikle iyi bir fikirdir:

# If PostgreSQL was not installed before, set the main password
sudo -u postgres psql postgres -c "\password postgres"

# Create a database user called "weblate"
sudo -u postgres createuser --superuser --pwprompt weblate

# Create the database "weblate" owned by "weblate"
sudo -u postgres createdb -E UTF8 -O weblate weblate

İpucu

Weblate kullanıcısını PostgreSQL üzerinde süper kullanıcı yapmak istemiyorsanız, bu seçeneği atlayabilirsiniz. Bu durumda, PostgreSQL süper kullanıcısı ile Weblate şemasındaki bazı aktarım adımlarını el ile yapmanız gerekir:

CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS btree_gin;
Weblate yapılandırmasını PostgreSQL kullanacak biçimde ayarlamak#

PostgreSQL için settings.py dosyasına eklenecek kod parçası:

DATABASES = {
    "default": {
        # Database engine
        "ENGINE": "django.db.backends.postgresql",
        # Database name
        "NAME": "weblate",
        # Database user
        "USER": "weblate",
        # Name of role to alter to set parameters in PostgreSQL,
        # use in case role name is different than user used for authentication.
        # "ALTER_ROLE": "weblate",
        # Database password
        "PASSWORD": "password",
        # Set to empty string for localhost
        "HOST": "database.example.com",
        # Set to empty string for default
        "PORT": "",
    }
}

Veri tabanı aktarımı, Weblate tarafından kullanılan ALTER ROLE veri tabanı rolüyle gerçekleştirir. Çoğu durumda rolün adı kullanıcı adıyla aynıdır. Daha karmaşık kurulumlarda rol adı kullanıcı adından farklıdır ve veri tabanı aktarımı sırasında rolün var olmadığı ile ilgili bir hata iletisi görürsünüz (psycopg2.errors.UndefinedObject: role "weblate@hostname" des not exist). Bu sorunun PostgreSQL için Azure veri tabanı ile ortaya çıktığı biliniyor. Ancak yalnızca bu durumla sınırlı değildir. Lütfen veri tabanı aktarımı sırasında Weblate tarafından kullanılacak rolün adını ALTER_ROLE seçeneğinden ayarlayın.

MySQL ve MariaDB#

Uyarı

Weblate üzerinde MySQL ve MariaDB desteğini sürdürürken, birincil önceliğimiz PostgreSQL kullanmak. Yeni kurulumlar için PostgreSQL kullanılması ve var olan kurulumların PostgreSQL üzerine taşınması önerilir. Bilgi almak için: Diğer veri tabanlarından PostgreSQL üzerine aktarmak.

Bazı Weblate özellikleri PostgreSQL ile daha iyi çalışır. PostgreSQL veri tabanı, tam metin özelliklerinin kullanılmasını sağlar ve arama ile çeviri belleği işlemlerinde daha üstündür.

Weblate, MySQL ya da MariaDB ile de kullanılabilir. Lütfen bunları Django ile kullanmakla ilgili uyarılar için MySQL notes ve MariaDB notes bölümlerine bakın. Bazı sınırlamalar nedeniyle, yeni kurulumlar için PostgreSQL kullanılması önerilir.

Weblate için en az MySQL 8 ya da MariaDB 10.4 sürümü kullanılmalıdır.

Weblate için önerilen yapılandırma:

  • Daha yüksek Unicode düzlemlerinin (emojiler gibi) görüntülenmesini sağlamak için utf8mb4 karakter kümesini kullanın.

  • Metin alanlarında daha uzun dizinlerin kullanılabilmesini sağlamak için sunucuyu innodb_large_prefix seçeneği ile yapılandırın.

  • Yalıtım düzeyini READ COMMITTED olarak ayarlayın.

  • SQL kipi STRICT_TRANS_TABLES olarak ayarlanmalıdır.

MySQL 8.x, MariaDB 10.5.x ya da üzeri için varsayılan yapılandırma yeterlidir. Bu nedenle sunucunun ayarlanması gerekmez ve gereken her şey istemci tarafında yapılandırılabilir.

Aşağıda 8 GB RAM belleği olan bir sunucu için /etc/my.cnf.d/server.cnf dosyasının örneğini bulabilirsiniz. Bu ayarlar çoğu kurulum için yeterli olmalıdır. MySQL ve MariaDB için, sisteme aynı anda çok sayıda kullanıcının erişmesinin gerekmediği durumlarda sunucu başarımını artıracak seçenekler vardır. Ayrıntılı bilgiyi üretici belgelerinde bulabilirsiniz.

Weblate kurulumunuza başlamadan önce innodb_file_per_table seçeneğinin doğru ayarlanması ve MySQL ya da MariaDB veri tabanı sunucusunun yeniden başlatılması kurulum yaparken karşılaşılabilecek sorunları azaltmak için çok önemlidir.

[mysqld]
character-set-server = utf8mb4
character-set-client = utf8mb4
collation-server = utf8mb4_unicode_ci

datadir=/var/lib/mysql

log-error=/var/log/mariadb/mariadb.log

innodb_large_prefix=1
innodb_file_format=Barracuda
innodb_file_per_table=1
innodb_buffer_pool_size=2G
sql_mode=STRICT_TRANS_TABLES

İpucu

#1071 - Specified key was too long; max key length is 767 bytes hatasını görürseniz, yapılandırmanızı yukarıdaki innodb ayarlarına uygun olarak güncelleyin ve kurulumu yeniden başlatın.

İpucu

#2006 - MySQL server has gone away hatasını görürseniz, CONN_MAX_AGE seçeneğini yapılandırmak yardımcı olabilir.

Weblate için MySQL/MariaDB yapılandırması#

MySQL ve MariaDB için settings.py dosyasına eklenecek kod parçası:

DATABASES = {
    "default": {
        # Database engine
        "ENGINE": "django.db.backends.mysql",
        # Database name
        "NAME": "weblate",
        # Database user
        "USER": "weblate",
        # Database password
        "PASSWORD": "password",
        # Set to empty string for localhost
        "HOST": "127.0.0.1",
        # Set to empty string for default
        "PORT": "3306",
        # In case you wish to use additional
        # connection options
        "OPTIONS": {},
    }
}

Kuruluma başlamadan önce MySQL ya da MariaDB veri tabanı sunucusu üzerinde weblate kullanıcı hesabını oluşturmanız gerekir. Bunun için şu komutları kullanın:

GRANT ALL ON weblate.* to 'weblate'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Diğer yapılandırmalar#

Giden e-postayı yapılandırmak#

Weblate, hesap etkinleştirme işlemleri ve kullanıcılar tarafından yapılandırılmış çeşitli bildirimler gibi çeşitli durumlar için e-posta gönderir. Bunun için bir SMTP sunucu erişiminin yapılandırılması gerekir.

E-posta sunucusu şu ayarlar kullanılarak yapılandırılır: EMAIL_HOST, EMAIL_HOST_PASSWORD, EMAIL_USE_TLS, EMAIL_USE_SSL, EMAIL_HOST_USER ve EMAIL_PORT. Seçeneklerin adları oldukça açıklayıcıdır. Ayrıntılı bilgi almak için Django belgelerine bakabilirsiniz.

İpucu

Kimlik doğrulanmasının desteklenmediği ile ilgili bir hata görürseniz (SMTP AUTH extension not supported by server gibi), bu sorun büyük olasılıkla güvenli olmayan bağlantı kullanımından kaynaklanıyordur ve sunucu kimliğin bu şekilde doğrulanmasını reddeder. Böyle bir durumda EMAIL_USE_TLS seçeneğini etkinleştirmeyi deneyin.

Ters vekil sunucu arkasında çalıştırmak#

Hızı sınırlamak, İstenmeyen gönderim koruması ve Denetim günlüğü Weblate özellikleri istemci IP adresinin bilinmesine dayanır.

Varsayılan yapılandırmada Weblate, WSGI işleyicisi tarafından ayarlanan REMOTE_ADDR IP adresini alır.

Ters vekil sunucu kullanıyorsanız, bu alanda büyük olasılıkla ters vekil sunucu adresi bulunacaktır. Weblate yapılandırmasını ek HTTP üst bilgilerine güvenecek ve IP adresini bunlardan alacak şekilde ayarlamanız gerekir. Bu yapılandırma, ters vekil sunucu kullanmayan kurulumlar için IP adresi sahteciliğine olanak sağlayacağından varsayılan olarak etkinleştirilemez. IP_BEHIND_REVERSE_PROXY seçeneğini etkinleştirmek genel kurulumlar için yeterli olabilir. Ancak IP_PROXY_HEADER ve IP_PROXY_OFFSET seçeneklerini de ayarlamanız gerekebilir.

Dikkat edilmesi gereken başka bir şey de Host üst bilgisidir ve SITE_DOMAIN olarak yapılandırılmış değerle eşleşmelidir. Ters vekil sunucunuzda ek yapılandırma gerekebilir (örneğin, Apache için ProxyPreserveHost On ya da nginx ile ``proxy_set_header Host $host;` kullanın).

HTTP vekil sunucu#

Weblate, sürüm denetimi sistemi komutlarını yürütür ve bunlar ortamın vekil sunucu yapılandırmasını alır. Önerilen yaklaşım, settings.py dosyasında vekil sunucu ayarlarını belirtmektir:

import os

os.environ["http_proxy"] = "http://proxy.example.com:8080"
os.environ["HTTPS_PROXY"] = "http://proxy.example.com:8080"

Yapılandırmayı ayarlama#

Ayrıca bakınız

Örnek yapılandırma

weblate/settings_example.py dosyasını weblate/settings.py dosyasına kopyalayın ve kurulumunuza uygun olarak ayarlayın. Büyük olasılıkla şu seçenekleri ayarlamak isteyeceksiniz:

ADMINS

Bir şeyler ters gittiğinde bildirim alacak site yöneticilerinin listesi. Başarısız olan birleştirme bildirimleri ya da Django hataları gibi.

ALLOWED_HOSTS

Bu seçeneği, sitenizin sunması gereken barındırma hizmetlerini listeleyecek biçimde ayarlamalısınız. Örneğin:

ALLOWED_HOSTS = ["demo.weblate.org"]

Alternatif olarak genel arama karakteri ekleyebilirsiniz:

ALLOWED_HOSTS = ["*"]

SESSION_ENGINE

Oturumlarınızın nasıl kaydedileceğini yapılandırın. Varsayılan veri tabanı arka uç altyapısını korumanız durumunda, eski oturum verilerini veri tabanından kaldırmak için weblate clearsessions görevini zamanlamanız gerekir.

Ön bellek olarak Redis kullanıyorsanız (bilgi almak için: Ön bellek özelliğini açın) onu oturumlar için de kullanmanız önerilir:

SESSION_ENGINE = "django.contrib.sessions.backends.cache"

DATABASES

Veri tabanı sunucusu ile bağlantı. Ayrıntı bilgi almak içinDjango belgelerine bakabilirsiniz.

DEBUG

Herhangi bir üretim sunucusunda bu seçeneği devre dışı bırakın. Hata ayıklama kipi etkinleştirildiğinde, Django kullanıcılara hata bildirimlerini görüntüler. Devre dışı bırakıldığında, hatalar e-posta olarak ADMINS seçeneğindeki adreslere gönderilir (yukarıya bakın).

Hata ayıklama kipi de Weblate işleyişini yavaşlatır. Çünkü Django bu durumda içeride çok daha fazla bilgi depolar.

DEFAULT_FROM_EMAIL

Hesap açma e-postaları gibi giden e-postalar için e-posta gönderici adresi.

Ayrıca bakınız

DEFAULT_FROM_EMAIL

SECRET_KEY

Django tarafından çerezlerdeki bazı bilgileri imzalamak için kullanılan anahtar. Bilgi almak için: Django gizli anahtarı.

Ayrıca bakınız

SECRET_KEY

SERVER_EMAIL

Başarısız olan birleştirme bildirimleri gibi, yöneticiye gönderilecek e-postalarda gönderici adresi olarak kullanılacak e-posta adresleri.

Ayrıca bakınız

SERVER_EMAIL

Veri tabanını doldurmak#

Yapılandırmanız hazır olduktan sonra, veri tabanı yapısını oluşturmak için weblate weblate migrate komutunu çalıştırabilirsiniz. Bundan sonra yönetici arayüzünü kullanarak çeviri projeleri oluşturabilmelisiniz.

İşiniz bittiğinde, yönetici arayüzündeki :guilabel:Başarım raporu bölümüne bakmalısınız. Burada size site yapılandırmasını iyileştirmeniz için ipuçları sunulur.

Üretim kurulumu#

Bir üretim kurulumu için aşağıdaki bölümlerde açıklanan ayarlamaları yapmanız gerekir. Süper kullanıcı olarak oturum açıldığında en önemli ayarlar üst çubukta ünlem simgesi ile bir uyarı olarak görüntülenir:

_images/admin-wrench.png

Django tarafından tetiklenen denetimleri de incelemeniz önerilir (ancak hepsini düzeltmeniz gerekmeyebilir):

weblate check --deploy

Aynı denetim listesini Yönetim arayüzü bölümünden de gözden geçirebilirsiniz.

Ayrıca bakınız

Deployment checklist

Hata ayıklama kipini kapatın#

Şununla Django hata ayıklama kipini kaptın (DEBUG):

DEBUG = False

Hata ayıklama kipi açıkken, Django yürütülen tüm sorguları depolar ve kullanıcılara, üretim kipinde gerek duyulmayan hata izlerini görüntüler.

Ayrıca bakınız

Yapılandırmayı ayarlama

Yöneticileri düzgün şekilde yapılandırın#

Sunucuda bir sorun olması durumunda e-postaları kimlerin alacağını belirlemek için doğru yönetici adreslerini ADMINS seçeneği ile ayarlayın. Örneğin:

ADMINS = (("Your Name", "your_email@example.com"),)

Ayrıca bakınız

Yapılandırmayı ayarlama

Doğru site etki alanını ayarlayın#

Yönetici arabiriminde site adını ve etki alanını ayarlayın. Yoksa RSS ya da kayıt e-postalarındaki bağlantılar çalışmaz. Bu ayar, site etki alanı adının yazılması gereken SITE_DOMAIN seçeneği ile yapılandırılır.

4.2 sürümünde değişti: 4.2 sürümünden önce bunun yerine Django site çatısı kullanılıyordu. Bilgi almak için The “sites” framework.

HTTPS ayarını düzgün biçimde yapın#

Weblate için şifrelenmiş HTTPS iletişim kuralını kullanmanız önemle önerilir. Sertifikanızı hazırladıktan sonra ENABLE_HTTPS seçeneğini ayarlamanız gerekir:

ENABLE_HTTPS = True

İpucu

Ayrıca HSTS özelliğini de etkinleştirmek isteyebilirsiniz. Bilgi almak için: SSL/HTTPS.

SECURE_HSTS_SECONDS seçeneğini düzgün biçimde ayarlayın#

Siteniz SSL üzerinden sunuluyorsa, HTTP sıkı aktarım güvenliği (HTTP Strict Transport Security) özelliğini etkinleştirmek için settings.py dosyasında SECURE_HSTS_SECONDS değerini ayarlamayı değerlendirmeniz gerekir. Bu seçenek varsayılan olarak, aşağıda gösterildiği gibi 0 olarak ayarlanmıştır.

SECURE_HSTS_SECONDS = 0

Sıfır olmayan bir tamsayı değerine ayarlanırsa, django.middleware.security.SecurityMiddleware üst bilgisi bulunmayan tüm yanıtlarda HTTP Strict Transport Security üst bilgisini ayarlar.

Uyarı

Bu ayar yanlış yapılırsa, sitenizi geri dönüşü olmayan bir şekilde (bir süreliğine) bozabilir. Önce HTTP Strict Transport Security belgelerini okuyun.

Güç bir veri tabanı sunucusu kullanın#

  • Lütfen üretim ortamı için PostgreSQL kullanın. Bilgi almak için: Weblate için veri tabanı kurulumu.

  • Veri tabanı sunucusunu çalıştırmak için yakın konumları kullanın. Yoksa ağ başarımı ya da güvenilirliği sorunları Weblate deneyiminizi mahvedebilir.

  • Veri tabanı sunucusunun başarımını denetleyin veya yapılandırmasını değiştirin. Örneğin PGTune kullanabilirsiniz.

Ön bellek özelliğini açın#

Olabiliyorsa, CACHES yapılandırma değişkenini ayarlayarak Django Redis kullanın. Örneğin:

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        # If redis is running on same host as Weblate, you might
        # want to use unix sockets instead:
        # 'LOCATION': 'unix:///var/run/redis/redis.sock?db=0',
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PARSER_CLASS": "redis.connection.HiredisParser",
        },
    }
}

İpucu

Ön bellek için Redis ayarlarını değiştirirseniz, bunları Celery için de ayarlamanız gerekebilir. Bilgi almak için: :ref:`Celery.

Avatar ön belleği#

Django ön belleğinin yanında, Weblate avatarları da ön belleğe alır. Bu amaçla ayrı, dosya temelli bir ön bellek kullanılması önerilir:

CACHES = {
    "default": {
        # Default caching backend setup, see above
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "unix:///var/run/redis/redis.sock?db=0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PARSER_CLASS": "redis.connection.HiredisParser",
        },
    },
    "avatar": {
        "BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
        "LOCATION": os.path.join(DATA_DIR, "avatar-cache"),
        "TIMEOUT": 604800,
        "OPTIONS": {
            "MAX_ENTRIES": 1000,
        },
    },
}

E-posta gönderimini yapılandırın#

Weblate tarafından bazı e-postaların gönderilmesi gerekir ve bu e-postaların doğru bir gönderici adresi olmalıdır. Lütfen SERVER_EMAIL ve DEFAULT_FROM_EMAIL değerlerini ortamınıza uygun şekilde yapılandırın. Örneğin:

SERVER_EMAIL = "admin@example.org"
DEFAULT_FROM_EMAIL = "weblate@example.org"

Not

Weblate tarafından e-posta gönderilmesini devre dışı bırakmak için EMAIL_BACKEND seçeneğini django.core.mail.backends.dummy.EmailBackend olarak ayarlayın.

Bu yapılandırma, kayıt ve parola sıfırlama e-postaları ile birlikte tüm e-posta gönderimini devre dışı bırakır.

Allowed hosts kurulumu#

Django, sitenizin sunmasına izin verilen etki alanı adlarının listesini ALLOWED_HOSTS seçeneğinde tutar. Bu seçenek boş bırakılırsa tüm istekler engellenir.

Bu seçenek, HTTP sunucunuzla eşleşecek şekilde yapılandırılmamışsa, Invalid HTTP_HOST header: ‘1.1.1.1’. You may need to add ‘1.1.1.1’ to ALLOWED_HOSTS. gibi hata iletileri görürsünüz

İpucu

Docker kapsayıcısında WEBLATE_ALLOWED_HOSTS seçeneği kullanılabilir.

Django gizli anahtarı#

SECRET_KEY ayarı Django tarafından çerezleri imzalamak için kullanılır. Örnek kurulumdaki değeri kullanmayıp kendiniz için oluşturacağınız gerçek bir değeri kullanmanız gerekir.

Weblate içindeki weblate-generate-secret-key komutunu kullanarak yeni bir anahtar oluşturabilirsiniz.

Ayrıca bakınız

SECRET_KEY

Bakım görevlerini yürütmek#

En iyi başarım için, bazı bakım görevlerini arka planda çalıştırmak iyi bir fikirdir. Bu işlemler Celery ile arka plan görevlerini kullanmak tarafından kendiliğinden yapılır ve şu görevleri kapsar:

3.2 sürümünde değişti: 3.2 sürümünden bu yana, bu görevleri yapmak için varsayılan olarak Celery kullanılır. Weblate içinde buna uygun yapılandırma hazırdır. Bilgi almak için: ref: celery.

Sistem yerel ayarları ve kodlama#

Sistem yerel ayarları UTF-8 destekleyenler ile yapılandırılmalıdır. Çoğu Linux dağıtımında varsayılan ayar böyledir. Sisteminizde durumun böyle olmaması durumunda, lütfen yerel ayarları UTF-8 çeşidi olarak değiştirin.

Örneğin, /etc/default/locale dosyasını düzenleyerek LANG="C.UTF-8” olarak ayarlayabilirsiniz.

Bazı durumlarda, her hizmetin ayrı yerel ayar yapılandırması vardır. Bunlar, dağıtımlara ve site sunucularına göre farklılık gösterebilir. Bu konuda bilgi almak için site sunucusu paketlerinizin belgelerine bakın.

Ubuntu üzerinde Apache /etc/apache2/envvars kullanır:

export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'

CentOS üzerinde Apache /etc/sysconfig/httpd (or /opt/rh/httpd24/root/etc/sysconfig/httpd) kullanır:

LANG='en_US.UTF-8'

Özel sertifika kuruluşu kullanmak#

Weblate, HTTP istekleri sırasında SSL sertifikalarını doğrular. Varsayılan paketlerde güvenilmeyen bir özel sertifika kuruluşu kullanıyorsanız, sertifikasını güvenilir olarak eklemeniz gerekir.

Yeğlenen yaklaşım bunu sistem düzeyinde yapmaktır. Ayrıntılı bilgi almak için dağıtım belgelerinize bakın (örneğin debian üzerinde bu işlem, sertifika kuruluşunun sertifikasını /usr/local/share/ca-certificates/ içine yerleştirip update-ca-certificates komutunu çalıştırarak yapılabilir).

Bu işlem yapıldıktan sonra, sistem araçları sertifikaya güvenir ve Git tarafından da bu sertifika kullanılır.

Python kodu için, kendi içinde gelen sertifika yerine istekleri sistem sertifika kuruluşu paketini kullanacak şekilde yapılandırmanız gerekir. Bu işlem, aşağıdaki kod parçasını settings.py dosyasına ekleyerek yapılabilir (yol Debian sistemine özgüdür):

import os

os.environ["REQUESTS_CA_BUNDLE"] = "/etc/ssl/certs/ca-certificates.crt"

İstemci varlıklarının sıkıştırılması#

Weblate, bazı JavaScript ve CSS dosyalarıyla birlikte gelir. Başarımı artırmak için bunların bir istemciye gönderilmeden önce sıkıştırılması iyidir. Varsayılan yapılandırmada bu işlem çok az ek yük oluşturarak anında yapılır. Büyük kurulumlarda, çevrimdışı sıkıştırma kipini etkinleştirmeniz önerilir. Bunun yapılandırmada ayarlanması ve sıkıştırmanın her Weblate yükseltmesinde tetiklenmesi gerekir.

Yapılandırma, django.conf.settings.COMPRESS_OFFLINE seçeneği ve django.conf.settings.COMPRESS_OFFLINE_CONTEXT seçeneği etkinleştirilerek kolayca ayarlanır (ikincisi zaten örnek yapılandırmalara eklenmiştir):

COMPRESS_OFFLINE = True

Her dağıtımda, dosyaları geçerli sürümle eşleşecek şekilde sıkıştırmanız gerekir:

weblate compress

İpucu

Resmi Docker kalıbında bu özellik etkinleştirilmiştir.

Sunucuyu çalıştırmak#

İpucu

Aşağıda açıklanan hizmetlerle ilgili deneyiminiz yoksa, Docker ile kurmak adresine bakmak isteyebilirsiniz.

Weblate çalıştırmak için birkaç hizmete gerek duyacaksınız. Önerilen kurulum şunlardan oluşur:

Not

Hizmetler arasında bazı bağımlılıklar bulunur. Örneğin Celery veya uwsgi işlemlerini başlatırken ön bellek ve veri tabanı çalışıyor olmalıdır.

Çoğu durumda, tüm hizmetleri tek (sanal) sunucu üzerinde çalıştırırsınız. Ancak kurulumunuzun yükü ağırsa, hizmetleri ayırabilirsiniz. Bu durumda, Celery ve wsgi sunucularının DATA_DIR klasörüne erişmesini sağlamanız yeterlidir.

Not

WSGI işlemini çalıştıran kullanıcı ile Celery işlemini çalıştıran kullanıcı aynı olmalıdır. Yoksa DATA_DIR klasöründeki dosyaların sahiplikleri karışır ve bu da çalışma sırasında sorunlara yol açar.

Ayrıca Dosya sistemi izinleri ve Celery ile arka plan görevlerini kullanmak bölümlerine bakın.

Web sunucusunu çalıştırmak#

Weblate çalıştırmak, diğer Django temelli programları çalıştırmaktan farklı değildir. Django genellikle uWSGI ya da fcgi olarak çalıştırılır (aşağıda farklı site sunucuları için örnekler bulabilirsiniz).

Deneme amacıyla, Django üzerindeki yerleşik site sunucusunu kullanabilirsiniz:

weblate runserver

Uyarı

BU SUNUCUYU ÜRETIM AYARIYLA KULLANMAYIN. Güvenlik denetimlerinden ya da başarım sınamalarından geçirilmemiştir. Ayrıca runserver ile ilgili Django belgelerine bakın.

İpucu

Django içindeki sunucu, yalnızca geliştirme amaçlı olduğundan yalnızca DEBUG seçeneği etkin olan durağan dosyaları sunar. Üretim kullanımı için lütfen NGINX ve uWSGI için örnek yapılandırma, Örnek Apache yapılandırması, Örnek Apache ve Gunicorn yapılandırması ve Durağan dosyalar sunmak içindeki wsgi kurulumlarına bakın.

Durağan dosyalar sunmak#

Durağan Django dosyalarının tek bir klasörde toplanması gerekiyor. Bunun için weblate collectstatic --noinput komutunu çalıştırın. Bu komut, durapan dosyaları STATIC_ROOT seçeneği ile belirtilen bir klasöre kopyalar (bu klasör, varsayılan olarak DATA_DIR içindeki static klasörüdür).

Durağan dosyaları doğrudan site sunucunuzdan sunmanız önerilir. Bunu şu yollar ile kullanmalısınız:

/static/

Weblate ve yönetici arayüzünün durağan dosyalarını sunar (STATIC_ROOT ile tanımlanmış).

/media/

Kullanıcıların ortam yüklemeleri için kullanılır (ekran görüntüleri gibi).

/favicon.ico

/static/favicon.ico dosyasını sunmak için bir kural yeniden yazılmalıdır.

İçerik güvenliği ilkesi#

Varsayılan Weblate yapılandırması, Content-Security-Policy veya X-XSS-Protection gibi güvenlikle ilgili HTTP üst bilgilerini ayarlayan weblate.middleware.SecurityMiddleware ara yazılımını etkinleştirir. Bunlar varsayılan olarak Weblate ve yapılandırması ile çalışacak şekilde ayarlanmıştır. Ancak bunun için ortamınıza uygun özelleştirmeler yapmanız gerekebilir.

NGINX ve uWSGI için örnek yapılandırma#

Üretim amacıyla kullanılacak site sunucusu çalıştırmak için, Weblate ile kurulan wsgi sarmalayıcısını kullanın (sanal ortamdaysanız ~/weblate-env/lib/python3.9/site-packages/weblate/wsgi.py olarak kurulur). Kullandığınız virtualenv üzerinde Python arama yolunu ayarlamayı da unutmayın (uWSGI üzerinde virtualenv = /home/user/weblate-env gibi).

Aşağıdaki yapılandırma, NGINX site sunucusu üzerinde uWSGI olarak Weblate çalıştırır.

NGINX için yapılandırma (weblate/examples/weblate.nginx.conf dosyasında da bulunabilir):

#
# nginx configuration for Weblate
#
# You will want to change:
#
# - server_name
# - change /home/weblate/weblate-env to location where Weblate virtualenv is placed
# - change /home/weblate/data to match your DATA_DIR
# - change python3.9 to match your Python version
# - change weblate user to match your Weblate user
#
server {
    listen 80;
    server_name weblate;
    # Not used
    root /var/www/html;

    location ~ ^/favicon.ico$ {
        # DATA_DIR/static/favicon.ico
        alias /home/weblate/data/static/favicon.ico;
        expires 30d;
    }

    location /static/ {
        # DATA_DIR/static/
        alias /home/weblate/data/static/;
        expires 30d;
    }

    location /media/ {
        # DATA_DIR/media/
        alias /home/weblate/data/media/;
        expires 30d;
    }

    location / {
        include uwsgi_params;
        # Needed for long running operations in admin interface
        uwsgi_read_timeout 3600;
        # Adjust based to uwsgi configuration:
        uwsgi_pass unix:///run/uwsgi/app/weblate/socket;
        # uwsgi_pass 127.0.0.1:8080;
    }
}

uWSGI için yapılandırma (weblate/examples/weblate.uwsgi.ini dosyasında da bulunabilir):

#
# uWSGI configuration for Weblate
#
# You will want to change:
#
# - change /home/weblate/weblate-env to location where Weblate virtualenv is placed
# - change /home/weblate/data to match your DATA_DIR
# - change python3.9 to match your Python version
# - change weblate user to match your Weblate user
#
[uwsgi]
plugins       = python3
master        = true
protocol      = uwsgi
socket        = 127.0.0.1:8080
wsgi-file     = /home/weblate/weblate-env/lib/python3.9/site-packages/weblate/wsgi.py

# Add path to Weblate checkout if you did not install
# Weblate by pip
# python-path   = /path/to/weblate

# In case you're using virtualenv uncomment this:
virtualenv = /home/weblate/weblate-env

# Needed for OAuth/OpenID
buffer-size   = 8192

# Reload when consuming too much of memory
reload-on-rss = 250

# Increase number of workers for heavily loaded sites
workers       = 8

# Enable threads for Sentry error submission
enable-threads = true

# Child processes do not need file descriptors
close-on-exec = true

# Avoid default 0000 umask
umask = 0022

# Run as weblate user
uid = weblate
gid = weblate

# Enable harakiri mode (kill requests after some time)
# harakiri = 3600
# harakiri-verbose = true

# Enable uWSGI stats server
# stats = :1717
# stats-http = true

# Do not log some errors caused by client disconnects
ignore-sigpipe = true
ignore-write-errors = true
disable-write-exception = true

Ayrıca bakınız

How to use Django with uWSGI

Örnek Apache yapılandırması#

Weblate ile WSGI kullanırken prefork MPM kullanılması önerilir.

Aşağıdaki yapılandırma WSGI olarak Weblate çalıştırır. mod_wsgi modülünün etkinleştirilmiş olması gerekir (weblate/examples/apache.conf dosyasında bulunabilir):

#
# VirtualHost for Weblate
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate virtualenv is placed
# - change /home/weblate/data to match your DATA_DIR
# - change python3.9 to match Python version mod-wsgi is compiled for
# - change weblate user to match your Weblate user
#
<VirtualHost *:80>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # DATA_DIR/static/favicon.ico
    Alias /favicon.ico /home/weblate/data/static/favicon.ico

    # DATA_DIR/static/
    Alias /static/ /home/weblate/data/static/
    <Directory /home/weblate/data/static/>
        Require all granted
    </Directory>

    # DATA_DIR/media/
    Alias /media/ /home/weblate/data/media/
    <Directory /home/weblate/data/media/>
        Require all granted
    </Directory>

    # Path to your Weblate virtualenv
    WSGIDaemonProcess weblate python-home=/home/weblate/weblate-env user=weblate request-timeout=600
    WSGIProcessGroup weblate
    WSGIApplicationGroup %{GLOBAL}

    WSGIScriptAlias / /home/weblate/weblate-env/lib/python3.9/site-packages/weblate/wsgi.py process-group=weblate
    WSGIPassAuthorization On

    <Directory /home/weblate/weblate-env/lib/python3.9/site-packages/weblate/>
        <Files wsgi.py>
        Require all granted
        </Files>
    </Directory>

</VirtualHost>

Not

Weblate için Python 3 gereklidir. Bu nedenle modwsgi modülünün Python 3 çeşidini çalıştırdığınızdan emin olun. Genellikle libapache2-mod-wsgi-py3 gibi ayrı bir paket olarak bulunur.

Weblate kurulumu için uygun Python sürümünü kullanmak.

Örnek Apache ve Gunicorn yapılandırması#

Aşağıdaki yapılandırma Gunicorn ve Apache 2.4 üzerinde Weblate çalıştırır (weblate/examples/apache.gunicorn.conf dosyasında bulunabilir):

#
# VirtualHost for Weblate using gunicorn on localhost:8000
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate virtualenv is placed
# - change /home/weblate/data to match your DATA_DIR
# - change weblate user to match your Weblate user
#
<VirtualHost *:443>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # DATA_DIR/static/favicon.ico
    Alias /favicon.ico /home/weblate/data/static/favicon.ico

    # DATA_DIR/static/
    Alias /static/ /home/weblate/data/static/
    <Directory /home/weblate/data/static/>
        Require all granted
    </Directory>

    # DATA_DIR/media/
    Alias /media/ /home/weblate/data/media/
    <Directory /home/weblate/data/media/>
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/https_cert.cert
    SSLCertificateKeyFile /etc/apache2/ssl/https_key.pem
    SSLProxyEngine On

    ProxyPass /favicon.ico !
    ProxyPass /static/ !
    ProxyPass /media/ !

    ProxyPass / http://localhost:8000/
    ProxyPassReverse / http://localhost:8000/
    ProxyPreserveHost On
</VirtualHost>

Bir yol altında Weblate çalıştırma yapılandırması#

Weblate ile WSGI kullanırken prefork MPM kullanılması önerilir.

Weblate çalıştırmak için /weblate gibi bir yol kullanan örnek Apache yapılandırması. Yine mod_wsgi kullanarak (weblate/examples/apache-path.conf dosyasında bulunabilir):

#
# VirtualHost for Weblate, running under /weblate path
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate virtualenv is placed
# - change /home/weblate/data to match your DATA_DIR
# - change python3.9 to match Python version mod-wsgi is compiled for
# - change weblate user to match your Weblate user
#
<VirtualHost *:80>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # DATA_DIR/static/favicon.ico
    Alias /weblate/favicon.ico /home/weblate/data/static/favicon.ico

    # DATA_DIR/static/
    Alias /weblate/static/ /home/weblate/data/static/
    <Directory /home/weblate/data/static/>
        Require all granted
    </Directory>

    # DATA_DIR/media/
    Alias /weblate/media/ /home/weblate/data/media/
    <Directory /home/weblate/data/media/>
        Require all granted
    </Directory>

    # Path to your Weblate virtualenv
    WSGIDaemonProcess weblate python-home=/home/weblate/weblate-env user=weblate request-timeout=600
    WSGIProcessGroup weblate
    WSGIApplicationGroup %{GLOBAL}

    WSGIScriptAlias /weblate /home/weblate/weblate-env/lib/python3.9/site-packages/weblate/wsgi.py process-group=weblate
    WSGIPassAuthorization On

    <Directory /home/weblate/weblate-env/lib/python3.9/site-packages/weblate/>
        <Files wsgi.py>
        Require all granted
        </Files>
    </Directory>

</VirtualHost>

Ek olarak weblate/settings.py dosyasını ayarlamalısınız:

URL_PREFIX = "/weblate"

Celery ile arka plan görevlerini kullanmak#

3.2 sürümünde geldi.

Weblate, düzenli olarak yapılan arka plan görevlerini yerine getirmek için Celery kullanır. Bu işlemleri yapacak bir Celery hizmeti çalıştırmanız gerekiyor. Örnek olarak, aşağıdaki işlemlerin yapılır (bu liste tam değildir):

Arka uçta Redis kullanan tipik bir kurulum şöyle görünür:

CELERY_TASK_ALWAYS_EAGER = False
CELERY_BROKER_URL = "redis://localhost:6379"
CELERY_RESULT_BACKEND = CELERY_BROKER_URL

Görevleri işlemek ve zamanlanmış görevleri başlatmak için Celery işlemini de başlatmalısınız. Bu işlem doğrudan komut satırından yapılabilir (genellikle hata ayıklama veya geliştirme sırasında yararlıdır):

./weblate/examples/celery start
./weblate/examples/celery stop

Not

Celery işlemini çalıştıran kullanıcı, WSGI işlemini çalıştıran kullanıcı ile aynı olmalıdır. Yoksa DATA_DIR klasöründeki dosyaların sahiplikleri karışır ve bu da çalışma sırasında sorunlara yol açar.

Ayrıca Dosya sistemi izinleri ve Sunucuyu çalıştırmak bölümlerine bakabilirsiniz.

Wsgi üzerinde Celery görevlerini yürütürken eager kipini kullanmak#

Not

Bu seçeneğin kullanılmasının site arayüzü başarımı üzerinde ciddi etkisi olur ve normal tetikleyiciye bağlı olarak özellikleri bozar (bekleyen değişiklikleri işlemek, özet bildirimleri veya yedeklemeler gibi).

Geliştirme ortamları için, tüm görevleri anında işleyen eager yapılandırmasını kullanmak isteyebilirsiniz:

CELERY_TASK_ALWAYS_EAGER = True
CELERY_BROKER_URL = "memory://"
CELERY_TASK_EAGER_PROPAGATES = True

Celery uygulamasını sistem hizmeti olarak çalıştırmak#

Büyük olasılıkla celeri:userguide/daemonizing bölümünde anlatıldığı gibi bir Celery daemon çalıştırmak isteyeceksiniz. systemd kullanan en yaygın Linux kurulumu için, hazır gelen ve aşağıda listesi bulunan examples klasöründeki örnek dosyaları kullanabilirsiniz.

/etc/systemd/system/celery-weblate.service olarak yerleştirilecek systemd birimi:

[Unit]
Description=Celery Service (Weblate)
After=network.target

[Service]
Type=forking
User=weblate
Group=weblate
EnvironmentFile=/etc/default/celery-weblate
WorkingDirectory=/home/weblate
RuntimeDirectory=celery
RuntimeDirectoryPreserve=restart
LogsDirectory=celery
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
  --pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'

[Install]
WantedBy=multi-user.target

/etc/default/celery-weblate olarak yerleştirilecek ortam yapılandırması:

# Name of nodes to start
CELERYD_NODES="celery notify memory backup translate"

# Absolute or relative path to the 'celery' command:
CELERY_BIN="/home/weblate/weblate-env/bin/celery"

# App instance to use
# comment out this line if you don't use an app
CELERY_APP="weblate.utils"

# Extra command-line arguments to the worker,
# increase concurrency if you get weblate.E019
CELERYD_OPTS="--beat:celery --queues:celery=celery --prefetch-multiplier:celery=4 \
    --queues:notify=notify --prefetch-multiplier:notify=10 \
    --queues:memory=memory --prefetch-multiplier:memory=10 \
    --queues:translate=translate --prefetch-multiplier:translate=4 \
    --concurrency:backup=1 --queues:backup=backup  --prefetch-multiplier:backup=2"

# Logging configuration
# - %n will be replaced with the first part of the nodename.
# - %I will be replaced with the current child process index
#   and is important when using the prefork pool to avoid race conditions.
CELERYD_PID_FILE="/run/celery/weblate-%n.pid"
CELERYD_LOG_FILE="/var/log/celery/weblate-%n%I.log"
CELERYD_LOG_LEVEL="INFO"

Celery günlüklerini döndürmek için logrotate komutu kullanılarak /etc/logrotate.d/celery olarak yerleştirilecek ek yapılandırma:

/var/log/celery/*.log {
        weekly
        missingok
        rotate 12
        compress
        notifempty
}

Celery atımını kullanarak görevleri zamanlamak#

Weblate, hazır bir zamanlanmış görevler kurulumuyla gelir. Bununla birlikte, settings.py dosyasından ek görevler tanımlayabilirsiniz. Örnek olarak Lazy commit işlemeleri bölümüne bakabilirsiniz.

Görevlerin Celery beats daemon tarafından yürütülmesi gerekiyor. Beklendiği gibi çalışmıyorsa, daemon çalışmıyor veya veri tabanı bozulmuş olabilir. Bu durumda temel sorunu bulmak için Celery başlangıç günlüklerine bakın.

Celery durumunu izlemek#

Celery görev kuyruklarının geçerli uzunluğunu Yönetim arayüzü içinden ya da komut satırında weblate weblate celery_queues komutunu kullanarak görebilirsiniz. Kuyruğun çok uzaması durumunda, yönetici arayüzünde de yapılandırma hatası görürsünüz.

Uyarı

Celery hataları varsayılan olarak yalnızca Celery günlüğüne kaydedilir ve kullanıcı tarafından görülemez. Bu tür hataların özetini görmek istiyorsanız, Hata raporlarını derlemek seçeneğini yapılandırmanız önerilir.

Weblate uygulamasını izlemek#

Weblate, örneğin Kubernetes gibi basit durum denetimlerinde kullanılmak üzere /healthz/ adresini sunar. Docker kapsayıcısında, bu adresi kullanan iç sistem durumu denetimi bulunur.

Weblate ölçümlerini izlemek için GET /api/metrics/ API uç noktasını kullanabilirsiniz.

Hata raporlarını derlemek#

Weblate, diğer yazılımlar gibi sorun çıkarabilir. Yardımcı olabilecek sorun durumlarını derlemek için üçüncü taraf hizmetlerini kullanmanızı öneririz. Bu uygulama, özellikle Celery görevlerinin yapılamaması durumunda kullanışlıdır. Yoksa hata yalnızca günlüklere bildirilir ve bunlar ile ilgili bildirim almazsınız. Weblate tarafından desteklenen hizmetler şunlardır:

Sentry#

Weblate, Sentry desteği sunar. Kullanmak için, settings.py dosyasında SENTRY_DSN seçeneğini ayarlamak yeterlidir:

SENTRY_DSN = "https://id@your.sentry.example.com/"

Rollbar#

Weblate, Rollbar desteği sunar. Kullanmak için, Rollbar notifier for Python yönergelerini izlemek yeterlidir.

Özetle, settings.py dosyasını ayarlamanız gerekir:

# Add rollbar as last middleware:
MIDDLEWARE = [
    # … other middleware classes …
    "rollbar.contrib.django.middleware.RollbarNotifierMiddleware",
]

# Configure client access
ROLLBAR = {
    "access_token": "POST_SERVER_ITEM_ACCESS_TOKEN",
    "client_token": "POST_CLIENT_ITEM_ACCESS_TOKEN",
    "environment": "development" if DEBUG else "production",
    "branch": "main",
    "root": "/absolute/path/to/code/root",
}

Bunun dışındaki her şey kendiliğinden bütünleştirilmiştir. Artık hem sunucu hem de istemci tarafı hatalarını derleyebilirsiniz.

Not

Hata günlüğü, düzgün bir şekilde işlenen özel durumları da içerir. Ancak yüklenen bir dosyanın işlenememesi gibi bir sorunu da gösteriyor olabilir.

Weblate kurulumunu başka bir sunucuya aktarmak#

Weblate kurulumunu başka bir sunucuya aktarmak oldukça kolaydır. Ancak veriler dikkatli bir şekilde aktarmanız gereken birkaç konumda bulunur. En iyi yaklaşım, aktarım sırasında Weblate kopyasını durdurmaktır.

Veri tabanını aktarmak#

Veri tabanı arka ucunuza bağlı olarak, veri tabanını aktarmak için birkaç seçeneğiniz olabilir. En basit yaklaşım, genellikle en etkili araçlar olduklarından, veri tabanının kendi araçlarını kullanmaktır (mysqldump ya da pg_dump gibi). Alternatif olarak, veri tabanınızın desteklemesi durumunda çoğaltma (replication) özelliğini kullanabilirsiniz.

Ayrıca bakınız

Veri tabanları arasında aktarım Diğer veri tabanlarından PostgreSQL üzerine aktarmak bölümünde açılanmıştır.

Sürüm denetimi sistemi depolarını aktarmak#

DATA_DIR altına kaydedilmiş sürüm denetimi sistemi depolarının da taşınması gerekir. Aktarımı daha etkili bir şekilde yapmak için bunları kopyalayabilir ya da rsync komutunu kullanabilirsiniz.

Diğer notlar#

Weblate tarafından kullanılıyor olabilecek, Redis, zamanlanmış Cron görevleri veya özel kimlik doğrulama arka uçları gibi diğer hizmetleri taşımayı unutmayın.

Weblate dağıtımları#

Weblate, bulutunuza kolayca kurulabilir. Lütfen platformunuz için ayrıntılı bilgiler içeren rehbere bakın:

Üçüncü taraf Weblate dağıtımları#

Not

Şu dağıtımlar Weblate ekibi tarafından geliştirilmez ya da desteklenmez. Kurulum aşamaları bu belgede anlatılandan farklı olabilir.

Bitnami Weblate paketi#

Bitnami, <https://bitnami.com/stack/weblate> adresinden birçok platform için hazır Weblate paketleri sunar.

Ayrıca bakınız

Bitnami Weblate paketi

Cloudron Weblate paketi#

Cloudron internet uygulamalarını kendinizin barındırabileceğiniz bir platformdur. Cloudron ile kurulan Weblate kendiliğinden güncel tutulur. Paket, Cloudron ekibi tarafından Weblate paket deposu üzerinde güncel tutulur.

Cloudron ile Weblate kurun

YunoHost üzerinde Weblate#

Kendi kendine barındırma projesi YunoHost bir Weblate paketi sağlar. YunoHost kurulumunuzu yaptıktan sonra, Weblate başka bir uygulama olarak kurulabilir. Yedekleme ve geri yükleme ile tam olarak çalışan bir paket sunar. Bununla birlikte yine de belirli kullanımlar için ayarlar dosyanızı düzenlemeniz gerekebilir.

Yönetim arayüzünü ya da bu düğmeyi kullanabilirsiniz (sizi sunucunuza götürür):

YunoHost ile Weblate kurun

Komut satırı arayüzü de kullanılabilir:

yunohost app install https://github.com/YunoHost-Apps/weblate_ynh

Weblate yazılımını güncellemek#

Docker kalıbı güncellemeleri#

Resmi Docker kalıbına (bilgi almak için Docker ile kurmak) tüm Weblate yükseltme adımları bütünleştirilmiştir. Genellikle güncel sürümü çekmenin dışında el ile yapılması gereken bir adım bulunmaz.

Genel yükseltme yönergeleri#

Yükseltmeden önce, lütfen değişmiş olabilecekleri için güncel Yazılım gereksinimleri değerini denetleyin. Tüm gereksinimler kurulduktan ya da güncellendikten sonra, lütfen settings.py dosyasını yapılandırmadaki değişikliklere uygun şekilde ayarlayın (doğru değerler için settings_example.py bölümüne bakabilirsiniz).

Yükseltmeden önce her zaman Sürüme özel yönergeler bölümünü denetleyin. Bazı sürümleri atlamanız durumunda, lütfen yükseltmede atladığınız tüm sürümlerin yönergelerini izleyin. Bazen sorunsuz bir aktarım yapmak için önce bazı ara sürümlere yükseltmek daha iyidir. Bir kerede birkaç sürüm yukarı yükseltilebilir, ancak tek sürüm yükseltmelerindeki kadar iyi denenmemiştir.

Not

Yükseltmenin yapılamaması durumunda veri tabanını önceki sürüme döndürebilmeniz için yükseltmeden önce veri tabanının tam yedeğini almanız önerilir. Bilgi almak için: Weblate yedeğini alma ve taşıma.

  1. wsgi ve Celery işlemlerini durdurun. Yükseltme işlemi, veri tabanında uyumsuz değişiklikler yapabilir. Bu nedenle yükseltme sırasında eski işlemlerin çalışmasını önlemek her zaman daha güvenli olur.

  2. Weblate kodunu yükseltin.

    Pip kurulumları için şöyle yapılabilir:

    pip install -U "Weblate[all]==version"
    

    Ya da yalnızca güncel sürümü edinmek istiyorsanız:

    pip install -U "Weblate[all]"
    

    İsteğe bağlı bağımlılıkların tümünü kurmak istemiyorsanız şunu yapın:

    pip install -U Weblate
    

    Git checkout ile yeni kaynak kodunu almanız ve kurulumunuzu güncellemeniz gerekir:

    cd weblate-src
    git pull
    # Update Weblate inside your virtualenv
    . ~/weblate-env/bin/pip install -e '.[all]'
    # Install dependencies directly when not using virtualenv
    pip install --upgrade -r requirements.txt
    # Install optional dependencies directly when not using virtualenv
    pip install --upgrade -r requirements-optional.txt
    
  3. Yeni Weblate sürümünde yeni İsteğe bağlı bağımlılıklar bulunabilir. Lütfen istediğiniz özellikleri kapsayıp kapsamadığını denetleyin.

  4. Yapılandırma dosyasını yükseltin. Gerekli adımlar için settings_example.py ya da Sürüme özel yönergeler dosyalarına bakabilirsiniz.

  5. Veri tabanı yapısını yükseltin:

    weblate migrate --noinput
    
  6. Güncellenmiş durağan dosyaları derleyin (bilgi almak için: Sunucuyu çalıştırmak ve Durağan dosyalar sunmak):

    weblate collectstatic --noinput --clear
    
  7. JavaScript ve CSS dosyalarını sıkıştırın (isteğe bağlı, bilgi almak için: İstemci varlıklarının sıkıştırılması):

    weblate compress
    
  8. Git üzerindeki sürümü çalıştırıyorsanız, her yükseltme yaptığınızda yerel ayar dosyalarını da yeniden oluşturmanız gerekir. Bu işlemi şu şekilde yapabilirsiniz:

    weblate compilemessages
    
  9. Kurulumunuzun doğru olduğunu doğrulayın (bilgi almak için: :ref:`production’):

    weblate check --deploy
    
  10. Celery işlemini yeniden başlatın (bilgi almak için: Celery ile arka plan görevlerini kullanmak).

Sürüme özel yönergeler#

2.x sürümünden yükseltmek#

2.x sürümünden yükseltiyorsanız, her zaman ilk olarak 3.0.1 sürümüne yükseltin. Ardından 3.x serisinde yükseltme işlemini sürdürün. Bu adımı atlayan yükseltme işlemleri desteklenmez ve bozulur.

3.x sürümünden yükseltmek#

3.x sürümünden yükseltme yapıyorsanız, her zaman ilk olarak 4.0.4 veya 4.1.1 sürümüne yükseltin. Ardından 4.x serisinde yükseltmeyi sürdürün. Bu adımı atlayan yükseltmeler desteklenmez ve bozulur.

4.0 sürümünden 4.1 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

Önemli yapılandırma veya bağımlılık değişiklikleri:

  • settings_example.py içinde birkaç değişiklik yapıldı. En önemlileri ara yazılım değişiklikleri. Lütfen ayarlarınızı buna göre yapın.

  • Yeni dosya biçimleri eklendi. WEBLATE_FORMATS seçeneğini değiştirdiyseniz bunları katmak isteyebilirsiniz.

  • Yeni kalite denetimleri eklendi. CHECK_LIST seçeneğini değiştirdiyseniz bunları katmak isteyebilirsiniz.

  • API hız sınırlamasının raporlanmasını sağlamak için DEFAULT_THROTTLE_CLASSES ayarında değişiklik yapıldı.

  • Bazı gereksinimler eklendi ve güncellendi.

  • INSTALLED_APPS içinde bir değişiklik yapıldı.

  • MT_DEEPL_API_VERSION ayarı 4.7 sürümünde kaldırıldı. DeepL makine çevirisi artık yeni MT_DEEPL_API_URL kullanıyor. MT_DEEPL_API_URL seçeneğini aboneliğinize uygun şekilde ayarlamanız gerekebilir.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.1 sürümünden 4.2 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

Önemli yapılandırma veya bağımlılık değişiklikleri:

  • 3.x sürümlerinden yükseltme işlemi artık desteklenmiyor. Lütfen önce 4.0 ya da 4.1 sürümüne yükseltin.

  • Bazı gereksinimler eklendi ve güncellendi.

  • settings_example.py içinde, en dikkat çekicileri yeni ara katman yazılımında ve değişen uygulama sıralamasında olan birkaç değişiklik yapıldı.

  • JSON tabanlı biçimlerin anahtarlarından baştaki nokta kaldırıldı. Dizgeler veri tabanı aktarımı sırasında ayarlanır. Ancak dışa aktarma işlemlerinde ya da API üzerinde anahtarlara güvenmeniz durumunda dış bileşenlerin ayarlanması gerekebilir.

  • Celery yapılandırması memory kuyruğu kullanılmayacak şekilde değiştirildi. Lütfen başlangıç betiklerinizi ve CELERY_TASK_ROUTES seçeneğini ayarlayın.

  • Weblate etki alanı yapılandırması ayarlar bölümüne alındı. Bilgi almak için: SITE_DOMAIN (ya da WEBLATE_SITE_DOMAIN). Weblate çalıştırmadan önce bu ayarı yapılandırmanız gerekir.

  • Kullanıcı veri tabanındaki kullanıcı adı ve e-posta alanları artık büyük/küçük harfe duyarsız olarak eşsiz. PostgreSQL için yanlışlıkla zorunlu kılınmamıştı.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.2 sürümünden 4.3 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

Önemli yapılandırma veya bağımlılık değişiklikleri:

  • Kalite denetimlerinde bazı değişiklikler yapıldı. CHECK_LIST seçeneğini değiştirdiyseniz bunları katmak isteyebilirsiniz.

  • Kaynak dil özniteliği, projeden API üzerinde kullanıma sunulan bir bileşene taşındı. Weblate istemcisi kullanıyorsanız güncellemeniz gerekir.

  • Veri tabanının 4.3 sürümüne aktarımı, çevirdiğiniz dizge sayısına bağlı olarak uzun sürebilir (100.000 kaynak dizge için aktarım yaklaşık bir saat sürebilir).

  • INSTALLED_APPS içinde bir değişiklik yapıldı.

  • django:SESSION_COOKIE_AGE_AUTHENTICATED seçeneğini tamamlayan SESSION_COOKIE_AGE ayarı eklendi.

  • GitHub ya da GitLab bütünleştirmesi için hub ya da lab kullanıyorsanız, bunu yeniden yapılandırmanız gerekir. Bilgi almak için: GITHUB_CREDENTIALS ve :setting:`GITLAB_CREDENTIALS’.

4.3.1 sürümünde değişti:

  • Celery yapılandırması memory kuyruğu eklenecek şekilde değiştirildi. Lütfen başlangıç betiklerinizi ve CELERY_TASK_ROUTES seçeneğini ayarlayın.

4.3.2 sürümünde değişti:

  • Eklentilerin post_update yöntemine skip_push parametresi eklendi.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.3 sürümünden 4.4 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

Önemli yapılandırma veya bağımlılık değişiklikleri:

  • INSTALLED_APPS seçeneğinde weblate.configuration şeklinde bir değişiklik yapıldı.

  • Artık Django 3.1 sürümü gerekiyor.

  • MySQL ya da MariaDB kullanıyorsanız, gereken en düşük sürümler yükseltildi. Bilgi almak için: MySQL ve MariaDB.

4.4.1 sürümünde değişti:

  • Tek dilli gettext artık var olduğunda hem msgid hem de msgctxt kullanıyor. Bu özellik, ekran görüntüleri ya da onay durumları gibi genişletilmiş Weblate verilerine bağlantıları bozan bu tür dosyalardaki çeviri dizgelerinin kimliğini değiştirir. Lütfen yükseltmeden önce bu tür dosyalarda bekleyen değişiklikleri işlediğinizden emin olun. weblate weblate loadpo kullanarak etkilenen bileşenin yüklenmesini dayatmanız önerilir.

  • Çeşitli dosya biçimi sorunlarını gidermek için gereken en düşük translate-toolkit sürümü yükseltildi.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.4 sürümünden 4.5 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

Önemli yapılandırma veya bağımlılık değişiklikleri:

  • Büyük sözlükleriniz varsa aktarım işlemi oldukça uzun sürebilir.

  • Sözlükler artık normal bileşenler olarak tutuluyor.

  • Sözlük API uygulaması kaldırıldı. Sözlüklere erişmek için normal çeviri API uygulamasını kullanın.

  • INSTALLED_APPS seçeneğinde weblate.metrics şeklinde bir değişiklik yapıldı.

4.5.1 sürümünde değişti:

  • Pyahocorasick modülüne yeni bir bağımlılık eklendi.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.5 sürümünden 4.6 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

Önemli yapılandırma veya bağımlılık değişiklikleri:

  • Yeni dosya biçimleri eklendi. WEBLATE_FORMATS seçeneğini değiştirdiyseniz bunları katmak isteyebilirsiniz.

  • Bileşen oluşturan API uygulaması artık kendiliğinden İç Weblate adresleri kullanıyor. Bilgi almak için: POST /api/projects/(string:project)/components/.

  • Bağımlılıklarda ve django:'PASSWORD_HASHERS kalıplarında bir değişiklik yapıldı. Artık parolaların şifrelenmesi için Argon2 kullanılıyor.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.6 sürümünden 4.7 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

Önemli yapılandırma veya bağımlılık değişiklikleri:

  • settings_example.py içinde birkaç değişiklik yapıldı. En önemlisi ara yazılım katmanı değişiklikleri (MIDDLEWARE). Lütfen ayarlarınızı buna göre değiştirin.

  • DeepL makine çevirisine farklı abonelik modellerine daha esnek bir şekilde uyum sağlamak için genel bir MT_DEEPL_API_URL ayarı eklendi. MT_DEEPL_API_VERSION ayarı artık kullanılmıyor.

  • Artık Django 3.2 sürümü gerekiyor.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.7 sürümünden 4.8 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

Bu sürüm için ek yükseltme adımlarına gerek yoktur.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.8 sürümünden 4.9 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Ölçümlerin depolanmasında bir değişiklik yapıldı. Büyük sitelerde yükseltme işlemi uzun sürebilir.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.9 sürümünden 4.10 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Proje gruplarında bir değişiklik yapıldı. Binlerce projesi bulunan sitelerde yükseltme işlemi uzun sürebilir.

  • Django 4.0 ile bazı geriye dönük uyumsuzluğa yol açan değişiklikler yapıldı. Bilgi almak için: Backwards incompatible changes in 4.0. Weblate, bunlardan herhangi birinin sorunlu olması durumunda şimdilik Django 3.2 sürümünü desteklemeyi sürdürüyor. Weblate platformunu etkileyebilecek en önemli değişiklikler:

    • PostgreSQL 9.6 desteği kaldırılan Django 4.0, PostgreSQL 10 ve üzerindeki sürümleri destekliyor.

    • CSRF_TRUSTED_ORIGINS biçimi değiştirildi.

  • Docker kapsayıcısı artık Django 4.0 kullanıyor. Değişiklikler için yukarıya bakabilirsiniz.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.10 sürümünden 4.11 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Weblate için artık Django 3.2 gerekiyor.

  • Her proje için erişim denetimi yönetimi uygulaması değiştirildi, proje ön eki grup adlarından kaldırıldı. Bu değişiklik, API kullanıcılarını etkiler.

  • Weblate artık karakter kümesinin algılanması için chardet modülü yerine charset-normalizer kullanıyor.

  • 4.11.1 sürümünde değiştirildi: REST_FRAMEWORK ayarında bir değişiklik yapıldı (DEFAULT_AUTHENTICATION_CLASSES seçeneğindeki arka uçlardan biri kaldırıldı).

Ayrıca bakınız

Genel yükseltme yönergeleri

4.11 sürümünden 4.12 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Herhangi bir özel adım gerekmez.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.12 sürümünden 4.13 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Dil tanımları artık yükseltme sırasında kendiliğinden güncelleniyor. Bu özelliği devre dışı bırakmak için UPDATE_LANGUAGES seçeneğini kullanın.

  • Windows RC dosyaları, HTML dosyaları, IDML biçimi ve Metin dosyaları dosya biçimleri için bağlam ve konumun işlenmesi değiştirildi. Çoğu durumda bağlam artık konum olarak gösteriliyor.

  • Makine çevirisi hizmetleri artık kullanıcı arabiriminden yapılandırılabilir. Yapılandırma dosyasındaki ayarlar veri tabanı aktarımı sırasında içe aktarılacaktır.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.13 sürümünden 4.14 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Java biçimlendirme denetimleri artık GNU gettext imleriyle eşleşiyor. Weblate üzerinde ayarlanan imler kendiliğinden taşınır. Ancak üçüncü taraf betiklerinin java-format yerine java-printf-format ve java-messageformat yerine java-format kullanması gerekir.

  • jellyfish bağımlılığı rapidfuzz ile değiştirildi.

  • 4.14.2 sürümünde değiştirildi: VCS hizmeti API anahtarlarının güvenli olmayan yapılandırması, _CREDENTIALS listesi yerine _TOKEN/_USERNAME/ yapılandırmasıyla kullanımdan kaldırıldı. Docker üzerinde lütfen eşleşen _HOST yönergesini ekleyin. Örneğin WEBLATE_GITHUB_HOST ve GITHUB_CREDENTIALS bölümlerine bakın.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.14 sürümünden 4.15 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Artık Weblate için PostgreSQL üzerinde “btree_gin” eklentisi gerekiyor. Aktarım işlemi, yeterli izinleri varsa bunu kurar. El ile kurulum için PostgreSQL üzerinde bir veri tabanı oluşturmak bölümüne bakabilirsiniz.

  • Docker kalıbı artık varsayılan olarak hata ayıklama kipini etkinleştirmiyor. İsterseniz, WEBLATE_DEBUG ortam seçeneği ile etkinleştirebilirsiniz.

  • Büyük kopyalarda veri tabanı aktarımı, bazı dizinlerin yeniden oluşturulması nedeniyle saatlerce sürer.

  • 4.15.1 sürümünde değiştirildi: Rest framework ayarlarında DEFAULT_PAGINATION_CLASS seçeneğinin varsayılan değeri değiştirildi.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.15 sürümünden 4.16 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Celery vuruşu artık görev zamanlamasını veri tabanında saklıyor. Bunun için CELERY_BEAT_SCHEDULER ve INSTALLED_APPS seçeneklerinde değişiklik yapılmalıdır.

  • Kullanımdan kaldırılan sürüm denetimi sistemi kimlik doğrulama bilgileri ayarı artık desteklenmiyor. Bilgi almak için: 4.13 sürümünden 4.14 sürümüne yükseltmek.

  • django-crispy-forms yükseltmesi için INSTALLED_APPS içinde değişiklikler yapılmalıdır.

  • django-cors-headers bütünleştirmesi için INSTALLED_APPS ve MIDDLEWARE seçeneklerinde değişiklik yapılmalıdır.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.16 sürümünden 4.17 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • Yeniden yazılmış ölçüm depolama alanına aktarım, büyük Weblate kopyalarında önemli ölçüde zaman alabilir (metrics_metric tablosu için GB başına yaklaşık 15 dakika bekleyebilirsiniz). Kesinti süresini azaltmak için weblate/metrics/migrations/*.py dosyasını Weblate 4.17 sürümünden 4.16 sürümüne kopyalayarak aktarımı arka planda başlatabilirsiniz. İşlem tamamlandığında, normal tam yükseltme işlemini yapın.

  • Docker kapsayıcısı için artık PostgreSQL 12 veya üzerindeki sürümler gerekiyor. Yükseltme yönergeleri için lütfen PostgreSQL kapsayıcısını yükseltmek bölümüne bakın. Weblate, uygun Django sürümü kurulduğunda eski sürümleri de destekler.

Uyarı

MySQL aktarımı, Python veri tabanı sürücüsünün sınırlaması nedeniyle tüm ölçümleri belleğe yüklemeye çalışacak. MySQL kullanmayı sürdürmek istiyorsanız, aktarımdan önce ölçümleri temizlemeniz gerekebilir. Lütfen PostgreSQL kullanmaya geçmeyi değerlendirin. Bilgi almak için: Diğer veri tabanlarından PostgreSQL üzerine aktarmak.

Ayrıca bakınız

Genel yükseltme yönergeleri

4.17 sürümünden 4.18 sürümüne yükseltmek#

Güncellemek için Genel yükseltme yönergeleri adımlarını izleyin.

  • PostgreSQL 10, 11, MySQL 5.7 ve MariaDB 10.2, 10.3 desteği kaldırıldı.

  • Python 3.7 desteği kaldırıldı.

  • Fluent biçimi biçiminde bazı dizgelerin kimliği değiştirildi. Değişiklikleri görmek için çeviri dosyalarının yeniden yüklenmesini dayatmanız gerekebilir.

  • There are several changes in settings_example.py, most notable is change in COMPRESS_OFFLINE_CONTEXT, please adjust your settings accordingly.

Ayrıca bakınız

Genel yükseltme yönergeleri

Python 2 sürümünden Python 3 sürümüne yükseltmek#

Weblate artık Python için 3.6 sürümünden öncesini desteklemiyor. Hala eski sürümde çalışıyorsanız, lütfen önce geçerli sürümden Python 3 sürümüne aktarım yapın ve ardından yükseltin. Weblate 3.11.1 belgelerinde Python 2 sürümünden Python 3 sürümüne yükseltme bölümüne bakabilirsiniz.

Diğer veri tabanlarından PostgreSQL üzerine aktarmak#

Weblate için PostgreSQL dışında başka bir veri tabanı kullanıyorsanız, Weblate ile en iyi başarımı gösteren PostgreSQL kullanmaya geçmeyi düşünmelisiniz. Aşağıdaki adımlar, verilerinizi veri tabanları arasında aktarmakta size yol gösterir. Lütfen aktarımdan önce hem site hem de Celery sunucularını durdurmayı unutmayın, yoksa tutarsız verilerle karşılaşabilirsiniz.

PostgreSQL üzerinde bir veri tabanı oluşturmak#

Weblate için ayrı bir kullanıcı hesabı ile ayrı bir veri tabanı kullanmak genellikle iyi bir fikirdir:

# If PostgreSQL was not installed before, set the main password
sudo -u postgres psql postgres -c "\password postgres"

# Create a database user called "weblate"
sudo -u postgres createuser -D -P weblate

# Create the database "weblate" owned by "weblate"
sudo -u postgres createdb -E UTF8 -O weblate weblate

Django JSON dökümlerini kullanarak aktarmak#

Aktarım için en basit yaklaşım, Django JSON dökümlerini kullanmaktır. Bu yöntem, küçük kurulumlar için iyidir. Daha büyük kurulumlarda bunun yerine pgloader kullanmak isteyebilirsiniz. Bilgi almak için: Pgloader ile PostgreSQL üzerine aktarmak.

  1. PostgreSQL seçeneğini settings.py dosyasına ek veritabanı bağlantısı olarak ekleyin:

DATABASES = {
    "default": {
        # Database engine
        "ENGINE": "django.db.backends.mysql",
        # Database name
        "NAME": "weblate",
        # Database user
        "USER": "weblate",
        # Database password
        "PASSWORD": "password",
        # Set to empty string for localhost
        "HOST": "database.example.com",
        # Set to empty string for default
        "PORT": "",
        # Additional database options
        "OPTIONS": {
            # In case of using an older MySQL server, which has MyISAM as a default storage
            # 'init_command': 'SET storage_engine=INNODB',
            # Uncomment for MySQL older than 5.7:
            # 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            # If your server supports it, see the Unicode issues above
            "charset": "utf8mb4",
            # Change connection timeout in case you get MySQL gone away error:
            "connect_timeout": 28800,
        },
    },
    "postgresql": {
        # Database engine
        "ENGINE": "django.db.backends.postgresql",
        # Database name
        "NAME": "weblate",
        # Database user
        "USER": "weblate",
        # Database password
        "PASSWORD": "password",
        # Set to empty string for localhost
        "HOST": "database.example.com",
        # Set to empty string for default
        "PORT": "",
    },
}
  1. Aktarımları yürütün ve tablolara eklenen tüm verileri kaldırın:

weblate migrate --database=postgresql
weblate sqlflush --database=postgresql | weblate dbshell --database=postgresql
  1. Eski veri tabanlarının dökümünü alın ve PostgreSQL üzerine aktarın

weblate dumpdata --all --output weblate.json
weblate loaddata weblate.json --database=postgresql
  1. Varsayılan olarak yalnızca PostgreSQL veri tabanının kullanılması için DATABASES ayarını yapın. Eski bağlantıyı kaldırın.

Böylece Weblate artık PostgreSQL veri tabanı ile çalışmaya hazır olmalıdır.

Pgloader ile PostgreSQL üzerine aktarmak#

pgloader, verileri PostgreSQL üzerine taşımak için kullanılan bir genel aktarım aracıdır. Weblate veri tabanını aktarmak için kullanabilirsiniz.

  1. Veri tabanı olarak PostgreSQL kullanmak için settings.py ayarınızı yapın.

  2. Şemayı PostgreSQL veri tabanına aktarın:

    weblate migrate
    weblate sqlflush | weblate dbshell
    
  3. Verileri aktarmak için pgloader uygulamasını çalıştırın. Veri tabanını aktarmak için aşağıdaki betik kullanılabilir, ancak ne yaptığını anlamak ve kurulumunuza uyacak şekilde küçük ayar değişikleri yapmak için pgloader ile ilgili ayrıntılı bilgi almak isteyebilirsiniz:

    LOAD DATABASE
         FROM      mysql://weblate:password@localhost/weblate
         INTO postgresql://weblate:password@localhost/weblate
    
    WITH include no drop, truncate, create no tables, create no indexes, no foreign keys, disable triggers, reset sequences, data only
    
    ALTER SCHEMA 'weblate' RENAME TO 'public'
    ;
    

Pootle üzerinden aktarmak#

Weblate başlangıçta Pootle yerine yazıldığından, kullanıcı hesapları Pootle üzerinden aktarılabilir. Kullanıcıları Pootle üzerinden indirip ve weblate weblate importusers ile içe aktarabilirsiniz.

Weblate yedeğini alma ve taşıma#

Proje düzeyinde yedekler#

4.14 sürümünde geldi.

Uyarı

Yedeklemeler yalnızca veri tabanı olarak PostgreSQL ya da MariaDB 10.5+ kullanıldığında geri yüklenebilir.

Proje, Weblate üzerindeki tüm çeviri içeriğini yedekler (proje, bileşenler, çeviriler, dizge yorumları, öneriler ve denetimler). Bir projeyi başka bir Weblate kopyasına aktarmak için uygundur.

Bir projeyi YönetimYedekler bölümünden yedekleyebilirsiniz. Bir proje oluşturulurken yedekleme geri yüklenebilir (bilgi almak için: Çeviri projelerini ve bileşenleri eklemek).

Şu anda yedeklerde erişim denetimi ve geçmiş bilgileri bulunmuyor.

Yorumlar ve öneriler, bunları oluşturan kullanıcının kullanıcı adıyla yedeklenir. İçe aktarıldıktan sonra eşleşen bir kullanıcı ile ilişkilendirilir. Yedekteki kullanıcı adına sahip bir kullanıcı bulunamazsa, anonim kullanıcı ile ilişkilendirilir.

Oluşturulan yedekler, PROJECT_BACKUP_KEEP_DAYS ve PROJECT_BACKUP_KEEP_COUNT tarafından yapılandırıldığı şekilde sunucuda tutulur (varsayılan olarak 30 gün boyunca en fazla 3 yedek tutulur).

BorgBackup ile kendiliğinden yedekleme#

3.9 sürümünde geldi.

Weblate, BorgBackup kullanarak hizmet yedeklerinin alınmasını destekler. Borg, bulutta güvenli bir şekilde saklanabilen, depolama alanı açısından etkili şifrelenmiş yedekler alır. Yedekler, yönetim arayüzünde Yedekler sekmesinden yönetilebilir.

4.4.1 sürümünde değişti: Kendiliğinden alınan yedeklere hem PostgreSQL hem de MySQL/MariaDB veri tabanları katılır.

Borg kullanan yedekler artımlıdır ve Weblate şu yedekleri koruyacak şekilde yapılandırılır:

  • 14 gün geriye dönük günlük yedekler

  • 8 hafta geriye dönük haftalık yedekler

  • 6 ay geriye dönük aylık yedekler

_images/backups.png

Borg şifreleme anahtarı#

BorgBackup şifrelenmiş yedekler alır ve parola olmadan bunları geri yükleyemezsiniz. Parola, yeni bir yedekleme hizmeti eklerken oluşturulur ve bunu kopyalayıp güvenli bir yerde saklamanız gerekir.

Weblate tarafından sunulan yedekleme depolama alanı kullanıyorsanız, yedeklerinize erişmek için kullanıldığından, lütfen kişisel SSH anahtarınızı da yedekleyin.

Ayrıca bakınız

borg init

Yedeklemeyi özelleştirme#

Weblate tarafından sunulan yedekleme depolama alanı#

Weblate bulut sunucunuzu yedeklemenin en kolay yolu `weblate.org <https://weblate.org/support/#backup> üzerinden yedekleme hizmeti`_ satın almaktır. Şu şekilde çalışır duruma getirebilirsiniz:

  1. https://weblate.org/support/#backup üzerinden Yedekleme hizmeti satın alın.

  2. Size verilen anahtarı yönetim bölümüne yazın. Bilgi almak için: Destek bütünleştirmesi.

  3. Weblate bulut hizmeti ile bağlantı kurar ve yedekler için erişim bilgilerini alır.

  4. Yedekler sekmesinden yeni yedekleme yapılandırmasını açın.

  5. Yedekleri geri yükleyebilmek için Borg kimlik doğrulama bilgilerinizi yedekleyin. Bilgi almak için: Borg şifreleme anahtarı.

İpucu

Güvenliğiniz için her şeyi el ile açma adımı bulunur. İzniniz olmadan, hesap açma işlemi yoluyla elde edilen yedekleme havuzuna herhangi bir veri gönderilmez.

Özel yedekleme depolama alanını kullanmak#

Yedekler için kendi depolama alanınızı da kullanabilirsiniz. SSH, yedekleri uzak hedefte depolamak için kullanılabilir. Hedef sunucuda BorgBackup kurulu olmalıdır.

Ayrıca bakınız

Borg belgelerindeki General bölümünde

Yerel dosya sistemi#

Yerel yedekleme için mutlak yolun belirtilmesi önerilir. Örneğin ‘/yedek/klasoru/yolu’. Klasör, Weblate çalıştıran kullanıcı tarafından yazılabilir olmalıdır (bilgi almak için: Dosya sistemi izinleri). Klasör yoksa, Weblate oluşturmaya çalışır, ancak bunu yapmak için uygun izinlere gerek duyar.

İpucu

Docker üzerinde Weblate çalıştırırken, lütfen yedekleme konumunun Weblate kapsayıcısında bir birim olarak gösterildiğinden emin olun. Yoksa, içinde bulunduğu kapsayıcı yeniden başlatıldığında yedekler Docker tarafından atılır.

Yedekleri /app/data/borgbackup gibi var olan bir birime yerleştirmek bir seçenek olabilir. Bu birim kapsayıcıda vardır.

Docker Compose dosyasındaki yedekler için örneğin /borgbackup kullanarak yeni bir kapsayıcı da ekleyebilirsiniz:

services:
  weblate:
    volumes:
      - /home/weblate/data:/app/data
      - /home/weblate/borgbackup:/borgbackup

Yedeklerin depolanacağı klasör için UID 1000 olmalıdır. Yoksa Weblate yedekleri bu klasöre yazamaz.

Uzak yedeklemeler#

Uzak yedekler almak için, Weblate SSH anahtarını kullanarak SSH üzerinden Weblate dağıtımınız için erişilebilen başka bir sunucuya BorgBackup kurmanız gerekir:

  1. Yedeklerinizin depolanacağı bir sunucu hazırlayın.

  2. SSH sunucusunu üzerine kurun (çoğu Linux dağıtımında varsayılan olarak bulunur).

  3. Bu sunucuya BorgBackup kurun. Çoğu Linux dağıtımında kullanılabilecek paketleri bulunur (bilgi almak için: Installation).

  4. Var olan bir kullanıcı seçin ya da yedekleme için kullanılacak yeni bir kullanıcı ekleyin.

  5. Weblate tarafından parola olmadan sunucu ile SSH bağlantısının kurulabilmesi için kullanıcıya Weblate SSH anahtarını ekleyin (bilgi almak için: Weblate SSH anahtarı).

  6. Yerel yedeklemeler için kullanici@sunucu:/yedeklere/giden/yol şeklinde ya da uzak SSH yedeklemeleri için ``ssh://kullanici@sunucu:baglantinoktasi/yedeklere/giden/yol` şeklinde kullanın.

İpucu

Weblate tarafından sunulan yedekleme depolama alanı herhangi bir çaba harcamadan kendiliğinden uzak yedekleme olanağı sağlar.

Ayrıca bakınız

Weblate SSH anahtarı, General

BorgBackup yedeklerini geri yüklemek#

  1. Yedekleme deponuza erişimi geri yükleyin ve yedekleme parolanızı hazırlayın.

  2. Sunucudaki tüm yedekleri borg list REPOSITORY komutunu kullanarak listeleyin.

  3. İstediğiniz yedeği geçerli klasöre geri yüklemek için borg extract REPOSITORY::ARCHIVE komutunu kullanın.

  4. Veri tabanını, Weblate data klasörü içindeki backup klasörüne kaydedilen SQL dökümünden geri yükleyin (bilgi almak için: Yedeklemeler için dökümü yapılan veriler).

  5. Weblate yapılandırmasını (backups/settings.py, bilgi almak için: Yedeklemeler için dökümü yapılan veriler) doğru konuma kopyalayın. Bilgi almak için: Yapılandırmayı ayarlama.

    Docker kapsayıcısını kullanırken, ayarlar dosyası zaten kapsayıcı içine eklenmiştir ve özgün ortam değişkenlerini geri yüklemeniz gerekir. environment.yml dosyası bu konuda size yardımcı olabilir (bilgi almak için: Yedeklemeler için dökümü yapılan veriler).

  6. Geri yüklenen tüm data klasörünü DATA_DIR ile yapılandırılmış konuma kopyalayın.

    Docker kapsayıcısını kullanırken verileri veri birimine yerleştirin. Bilgi almak için: Docker kapsayıcısı birimleri.

    Lütfen dosyaların sahiplik ve erişim izinlerinin doğru olduğundan emin olun. Bilgi almak için: Dosya sistemi izinleri.

Borg oturumu şunun gibi görünmelidir:

$ borg list /tmp/xxx
Enter passphrase for key /tmp/xxx:
2019-09-26T14:56:08                  Thu, 2019-09-26 14:56:08 [de0e0f13643635d5090e9896bdaceb92a023050749ad3f3350e788f1a65576a5]
$ borg extract /tmp/xxx::2019-09-26T14:56:08
Enter passphrase for key /tmp/xxx:

Ayrıca bakınız

borg list, borg extract

El ile yedekleme#

Neyi kaydetmek istediğinize bağlı olarak, Weblate tarafından her biri ilgili yere kaydedilmiş olan veri türünü yedekleyin.

İpucu

El ile yedekleme yapıyorsanız, Weblate yedekleme eksikliği uyarısını, settings.py dosyasındaki SILENCED_SYSTEM_CHECKS ya da Docker için WEBLATE_SILENCED_SYSTEM_CHECKS seçeneğini weblate.I028 ile ekleyerek kapatmak isteyebilirsiniz.

SILENCED_SYSTEM_CHECKS.append("weblate.I028")

Veri tabanı#

Gerçek depolama konumu, veri tabanı kurulumunuza bağlıdır.

İpucu

Veri tabanı en önemli depolama alanıdır. Veri tabanınızı düzenli olarak yedeklenecek biçimde ayarlayın. Veri tabanı olmadan, tüm çeviriler kaybolur.

Doğal veri tabanı yedeklemesi#

Veri tabanı dökümününün pg_dump ya da mysqldump gibi veri tabanına özgü araçlar kullanılarak kaydedilmesi önerilir. Başarımı genellikle Django yedeklemesinden daha iyidir ve tüm tablolar tüm verileriyle geri yüklenir.

Bu yedeği daha yeni bir Weblate sürümünde geri yükleyebilirsiniz, weblate weblate migrate içinde çalışırken gerekli tüm aktarımlar yapılır. Sürümler arasında nasıl yükseltme yapılacağı ile ilgili bilgi almak için Weblate yazılımını güncellemek bölümüne bakabilirsiniz.

Django veri tabanı yedeklemesi#

Alternatif olarak, dumpdata Django komutunu kullanarak veri tabanınızı yedekleyebilirsiniz. Bu şekilde, alınan yedek veri tabanından bağımsız olur ve veri tabanı işleyicisini değiştirmek istediğinizde kullanılabilir.

Veri tabanını geri yüklemeden önce, yedeklemenin yapıldığı Weblate sürümüyle tam olarak aynı sürümü çalıştırıyor olmanız gerekir. Veri tabanı yapısı sürümler arasında değiştiğinden ve verilerin bir şekilde bozulmasına neden olacağından böyle olması gereklidir. Aynı sürümü kurduktan sonra, tüm veri tabanı aktarımlarını yapmak için weblate weblate migrate komutunu kullanın.

Daha sonra veri tabanında bazı kayıtlar zaten oluşturulmuş olacak ve bunlar veri tabanı yedeğinde de bulunuyor olacak. Önerilen yaklaşım, yönetim kabuğunu kullanarak bu tür kayıtları el ile silmektir (bilgi almak için Yönetim komutlarını çağırmak):

weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()

Dosyalar#

Yeterli yedekleme alanınız varsa, DATA_DIR klasörünü tümüyle yedekleyin. Bu yedek, istemediğiniz bazı dosyaları içerse bile en güvenlisidir. Aşağıdaki bölümlerde, neleri yedeklemeniz gerektiğini ve neleri atlayabileceğinizi ayrıntılı olarak görebilirsiniz.

Yedeklemeler için dökümü yapılan veriler#

4.7 sürümünde değişti: Docker ortamlarında geri yüklemeye yardımcı olacak ortam dökümü environment.yml olarak eklenmiştir.

DATA_DIR /backups içine kaydedilir.

Weblate buraya çeşitli verileri döker. Daha eksiksiz yedeklemeler için bu dosyaları ekleyebilirsiniz. Dosyalar günlük olarak güncellenir (çalışan bir Çeler beats sunucusu gerekir. Bilgi almak için: Celery ile arka plan görevlerini kullanmak). Şu anda, bulunan veriler:

  • Weblate ayarları için settings.py dosyası (settings-expanded.py dosyasında genişletilmiş bir sürümü de bulunur).

  • PostgreSQL veri tabanı yedeği için database.sql.

  • Ortam dökümü için environment.yml.

Veri tabanı yedekleri varsayılan olarak düz metin biçiminde kaydedilir. Ancak DATABASE_BACKUP seçeneği ile sıkıştırılabilir ya da tümüyle atlanabilir.

Veri tabanı yedeğini geri yüklemek için veri tabanı araçlarını kullanın. Örneğin:

psql --file=database.sql weblate
Sürüm denetimi depoları#

DATA_DIR /vcs konumunda tutulur.

Sürüm denetimi depolarında, Weblate değişiklikleriyle birlikte yukarı akış depolarınızın bir kopyası bulunur. Tüm çeviri bileşenleriniz için İşleme ile itme seçeneği etkinse, tüm Weblate değişiklikleri yukarı akışa dahil edilir. Weblate tarafındaki depoları yedeklemek gerekmez çünkü veri kaybı olmadan yukarı akış konumlarından yeniden kopyalanabilir.

SSH ve GPG anahtarları#

DATA_DIR /ssh ve DATA_DIR /home içinde bulunur.

Weblate tarafından oluşturulmuş SSH ya da GPG anahtarlarını kullanıyorsanız, bu konumları yedeklemeniz gerekir. Yoksa kişisel anahtarlarınızı kaybedersiniz ve yeniden oluşturmanız gerekir.

Kullanıcının yüklediği dosyalar#

DATA_DIR /media konumunda tutulur.

Kullanıcı tarafından yüklenen tüm dosyaları yedeklemelisiniz (Dizgeler için görsel bağlam gibi).

Celery görevleri#

Celery görev kuyruğunda bazı bilgiler bulunabilir. Ancak genellikle yedeklenmesi gerekli değildir. En fazla, henüz çeviri belleğine işlenmemiş güncellemeleri kaybedersiniz. Gene de, tam metin ya da depo güncellemesinin geri yüklendikten sonra yapılması önerilir, bu nedenle bunların kaybedilmesi bir sorun oluşturmaz.

Komut satırından el ile yedek alma#

Bir zamanlanmış görev (cron) kullanarak, her gün yürütülecek bir Bash komutu ayarlayabilirsiniz. Örneğin:

$ XZ_OPT="-9" tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret

XZ_OPT işleminden sonra tırnak işaretleri arasındaki dizge, xz seçeneklerinizi, örneğin sıkıştırma için kullanılan bellek miktarını seçmenizi sağlar. Bilgi almak için: https://linux.die.net/man/1/xz

Klasör ve dosya listesini gereksinimlerinize göre ayarlayabilirsiniz. Çeviri belleğini (yedeklemeler klasöründe) kaydetmekten kaçınmak için şunu kullanabilirsiniz:

$ XZ_OPT="-9" tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups/database.sql backups/settings.py vcs ssh home media fonts secret

Yedeği el ile geri yüklemek#

  1. Yedeklediğiniz tüm verileri geri yükleyin.

  2. weblate weblate updategit komutunu kullanarak tüm depoları güncelleyin.

    weblate updategit --all
    

Bir Weblate kurulumunu taşımak#

Yukarıdaki yedekleme ve geri yükleme yönergelerini izleyerek kurulumunuzu farklı bir sisteme taşıyın.

Kimlik doğrulama#

Kullanıcı hesabı açma#

Weblate varsayılan kurulumda, yeni açılan kullanıcıların hesaplarını işlemek için sitesindeki bir form olan python-social-auth kullanır. Yeni bir kullanıcı, e-posta adresini onayladıktan sonra, üçüncü taraf hizmetlerden birini kullanarak katkıda bulunabilir veya kimliğini doğrulayabilir.

Yeni kullanıcı hesaplarının açılmasını REGISTRATION_OPEN komutu ile de kapatabilirsiniz.

Kimlik doğrulama girişimleri Hızı sınırlamak değeriyle sınırlanır.

Kimlik doğrulama arka plan uygulamaları#

Hazır Django çözümü, çeşitli sosyal ağ seçenekleri ile birlikte kimlik doğrulama için kullanılır. Bu özelliği kullanmak, diğer Django temelli projelerin kullanıcı veri tabanını içe aktarabilmenizi sağlar (bilgi almak için: Pootle üzerinden aktarmak).

Django başka yollarla da kimlik doğrulaması yapacak şekilde ayarlanabilir.

Ayrıca bakınız

Kimlik doğrulama ayarları, belgesinde resmi Docker kalıbında kimlik doğrulamasının nasıl yapılandırılacağı anlatılmıştır.

Sosyal ağ kimlik doğrulaması#

Weblate Welcome to Python Social Auth’s documentation! kullanarak, GitLab, Ubuntu, Fedora gibi birçok üçüncü taraf hizmeti ile kimlik doğrulamayı destekler.

Django Framework belgesinden genel yapılandırma yönergelerine bakabilirsiniz.

Not

Weblate varsayılan olarak, doğrulanmış bir e-posta adresi sağlamak için üçüncü taraf kimlik doğrulama hizmetlerine güvenir. Kullanmak istediğiniz hizmetlerden bazıları bunu desteklemiyorsa, lütfen bunlar için FORCE_EMAIL_VALIDATION yapılandırması ile Weblate tarafında e-posta doğrulamasını zorunlu kılın. Örneğin:

SOCIAL_AUTH_OPENSUSE_FORCE_EMAIL_VALIDATION = True

Ayrıca bakınız

Pipeline

Tek tek arka uçları etkinleştirmek oldukça kolaydır. Bunun için yalnızca AUTHENTICATION_BACKENDS seçeneği ile bir kayıt ve olabilecek belirli bir kimlik doğrulama yöntemi için gerekli anahtarları eklemek gerekir. Bazı arka uçların varsayılan olarak kullanıcı e-posta adresi sağlamadığını, açıkça istemeniz gerektiğini, yoksa kullanıcılarının yaptığı katkıların hesabının Weblate tarafından düzgün bir şekilde tutulamayacağını unutmayın.

İpucu

Kimlik doğrulama arka uçlarının çoğu için HTTPS gerekir. Web sunucunuzda HTTPS özelliğini etkinleştirildikten sonra lütfen Weblate için ENABLE_HTTPS ya da Docker kapsayıcısı için WEBLATE_ENABLE_HTTPS seçeneklerini yapılandırarak düzgün bir şekilde bildirilmesini sağlayın.

Ayrıca bakınız

Python Social Auth arka yüzü

OpenID kimlik doğrulaması#

OpenID kullanan hizmetler için genellikle yalnızca onları etkinleştirmek gerekir. Aşağıdaki bölüm OpenSUSE, Fedora ve Ubuntu için OpenID kimlik doğrulamasını etkinleştirir:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.email.EmailAuth",
    "social_core.backends.suse.OpenSUSEOpenId",
    "social_core.backends.ubuntu.UbuntuOpenId",
    "social_core.backends.fedora.FedoraOpenId",
    "weblate.accounts.auth.WeblateUserBackend",
)

Ayrıca bakınız

OpenID

GitHub kimlik doğrulaması#

GitHub üzerinde bir OAuth uygulaması oluşturduktan sonra tüm erişim bilgilerini Weblate üzerine yazmanız gerekir:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.github.GithubOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GITHUB_KEY = "GitHub Client ID"
SOCIAL_AUTH_GITHUB_SECRET = "GitHub Client Secret"
SOCIAL_AUTH_GITHUB_SCOPE = ["user:email"]

GitHub, geri çağırma adresi ``https://WEBLATE SUNUCUSU/accounts/complete/github/` olacak biçimde yapılandırılmalıdır.

Kuruluşlar için GitHub ve Takımlar için GitHub benzer kimlik doğrulama arka yüzleri vardır. Ayarları SOCIAL_AUTH_GITHUB_ORG_* ve SOCIAL_AUTH_GITHUB_TEAM_* olarak adlandırılmıştır ve SOCIAL_AUTH_GITHUB_ORG_NAME ya da SOCIAL_AUTH_GITHUB_TEAM_ID kapsamları için ek ayarlara gerek duyarlar. Geri çağırma adresleri https://WEBLATE SUNUCUSU/accounts/complete/github-org/ ve https://WEBLATE SUNUCUSU/accounts/complete/github-teams/ biçimindedir.

Not

Weblate, kimlik doğrulaması yapılırken belirtilen geri çağırma adresinde yapılandırılmış etki alanı bulunur. Adres uyuşmazlığıyla ilgili sorunlar görürseniz bu ayarı düzeltmek isteyebilirsiniz. Bilgi almak için: Doğru site etki alanını ayarlayın.

Ayrıca bakınız

GitHub

GitHub EE kimlik doğrulaması#

GitHub EE üzerinde bir OAuth uygulaması oluşturduktan sonra parolasını Weblate üzerine yazmanız gerekir:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.github_enterprise.GithubEnterpriseOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY = "GitHub OAuth App Client ID"
SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET = "GitHub OAuth App Client Secret"
SOCIAL_AUTH_GITHUB_ENTERPRISE_URL = "https://git.example.com/"
SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL = "https://git.example.com/api/v3/"
SOCIAL_AUTH_GITHUB_ENTERPRISE_SCOPE = ["user:email"]

GitHub OAuth uygulaması geri çağırma adresi “https://site.com/accounts/complete/github/” olacak biçimde yapılandırılmalıdır.

GitHub OAuth uygulaması yerine GitHub uygulaması da kullanılabilir. GitHub uygulaması ile depolar, kuruluş ve/veya kullanıcı düzeyinde izinler verilebilir. GitHub uygulamasını kullanmaya karar verirseniz, Kullanıcılar - <E-posta adresleri> ve Kuruluş - <Üyeler> için Access: Read-only iznini etkinleştirmeniz gerekir.

Not

Weblate, kimlik doğrulaması yapılırken belirtilen geri çağırma adresinde yapılandırılmış etki alanı bulunur. Adres uyuşmazlığıyla ilgili sorunlar görürseniz bu ayarı düzeltmek isteyebilirsiniz. Bilgi almak için: Doğru site etki alanını ayarlayın.

Ayrıca bakınız

GitHub Enterprise

Bitbucket kimlik doğrulaması#

Bitbucket üzerinde bir OAuth uygulaması oluşturduktan sonra tüm erişim bilgilerini Weblate üzerine yazmanız gerekir:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.bitbucket.BitbucketOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY = "Bitbucket Client ID"
SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET = "Bitbucket Client Secret"
SOCIAL_AUTH_BITBUCKET_OAUTH2_VERIFIED_EMAILS_ONLY = True

Not

Weblate, kimlik doğrulaması yapılırken belirtilen geri çağırma adresinde yapılandırılmış etki alanı bulunur. Adres uyuşmazlığıyla ilgili sorunlar görürseniz bu ayarı düzeltmek isteyebilirsiniz. Bilgi almak için: Doğru site etki alanını ayarlayın.

Ayrıca bakınız

Bitbucket

Google OAuth 2#

Google OAuth 2 kullanmak için <https://console.developers.google.com/> adresinden bir uygulama kaydedip Google+ API uygulamasını etkinleştirmeniz gerekir.

Yönlendirme adresi: https://WEBLATE SERVER/accounts/complete/google-oauth2/

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.google.GoogleOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = "Client ID"
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = "Client secret"

Not

Weblate, kimlik doğrulaması yapılırken belirtilen geri çağırma adresinde yapılandırılmış etki alanı bulunur. Adres uyuşmazlığıyla ilgili sorunlar görürseniz bu ayarı düzeltmek isteyebilirsiniz. Bilgi almak için: Doğru site etki alanını ayarlayın.

Ayrıca bakınız

Google

Facebook OAuth 2#

OAuth 2 hizmetlerinde her zamanki gibi, uygulamanızı Facebook üzerine kaydetmeniz gerekir. Bunu yaptıkran sonra, Weblate yapılandırmasını uygulamayı kullanacak biçimde ayarlayabilirsiniz:

Yönlendirme adresi: https://WEBLATE SERVER/accounts/complete/facebook/

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.facebook.FacebookOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_FACEBOOK_KEY = "key"
SOCIAL_AUTH_FACEBOOK_SECRET = "secret"
SOCIAL_AUTH_FACEBOOK_SCOPE = ["email", "public_profile"]

Not

Weblate, kimlik doğrulaması yapılırken belirtilen geri çağırma adresinde yapılandırılmış etki alanı bulunur. Adres uyuşmazlığıyla ilgili sorunlar görürseniz bu ayarı düzeltmek isteyebilirsiniz. Bilgi almak için: Doğru site etki alanını ayarlayın.

Ayrıca bakınız

Facebook

GitLab OAuth 2#

GitLab OAuth 2 kullanmak için <https://gitlab.com/profile/applications> adresinden bir uygulama kaydetmeniz gerekir.

Yönlendirme adresi: https://WEBLATE SERVER/accounts/complete/gitlab/ and ensure you mark the read_user scope.

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.gitlab.GitLabOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GITLAB_KEY = "Application ID"
SOCIAL_AUTH_GITLAB_SECRET = "Secret"
SOCIAL_AUTH_GITLAB_SCOPE = ["read_user"]

# If you are using your own GitLab
# SOCIAL_AUTH_GITLAB_API_URL = 'https://gitlab.example.com/'

Not

Weblate, kimlik doğrulaması yapılırken belirtilen geri çağırma adresinde yapılandırılmış etki alanı bulunur. Adres uyuşmazlığıyla ilgili sorunlar görürseniz bu ayarı düzeltmek isteyebilirsiniz. Bilgi almak için: Doğru site etki alanını ayarlayın.

Ayrıca bakınız

GitLab

Microsoft Azure Active Directory#

Weblate, kimlik doğrulaması için genel ya da belirli kiracıları kullanacak şekilde yapılandırılabilir.

Yönlendirme adresi: Genel kiracılar için https://WEBLATE SERVER/accounts/complete/azuread-oauth2/ ve belirli kiracılar için https://WEBLATE SERVER/accounts/complete/azuread-tenant-oauth2/ biçimindedir.

Şunlara gerek duyacaksınız:

  • Uygulama (istemci) kimliği (Application (client) ID) başvuru sayfasından alınabilir. Nesne kimliği (Object ID) Weblate üzerinde kullanılmaz.

  • Dizin (kiracı) kimliği (Directory (tenant) ID), genellikle istenen, kiracı kapsamlı kimlik doğrulaması için gereklidir.

  • Bir uygulama için bir parola oluşturduğunuzda Gizli değer (Secret value) görüntülenir. Gizli kimlik (Secret ID) Weblate üzerinde kullanılmaz.

# Azure AD common

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.azuread.AzureADOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# OAuth2 keys
SOCIAL_AUTH_AZUREAD_OAUTH2_KEY = ""
SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET = ""
# Azure AD Tenant

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.azuread_tenant.AzureADTenantOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Application (client) ID
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY = ""
# Secret value
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET = ""
# Directory (tenant) ID
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID = ""

Not

Weblate, kimlik doğrulaması yapılırken belirtilen geri çağırma adresinde yapılandırılmış etki alanı bulunur. Adres uyuşmazlığıyla ilgili sorunlar görürseniz bu ayarı düzeltmek isteyebilirsiniz. Bilgi almak için: Doğru site etki alanını ayarlayın.

Slack#

Slack OAuth 2 kullanmak için <https://api.slack.com/apps> adresinden bir uygulama kaydetmeniz gerekir.

Yönlendirme adresi: https://WEBLATE SERVER/accounts/complete/slack/.

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.slack.SlackOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_SLACK_KEY = ""
SOCIAL_AUTH_SLACK_SECRET = ""

Not

Weblate, kimlik doğrulaması yapılırken belirtilen geri çağırma adresinde yapılandırılmış etki alanı bulunur. Adres uyuşmazlığıyla ilgili sorunlar görürseniz bu ayarı düzeltmek isteyebilirsiniz. Bilgi almak için: Doğru site etki alanını ayarlayın.

Ayrıca bakınız

Slack

Kimlik doğrulama yöntemi adlarını ve simgelerini değiştirmek#

Kimlik doğrulama yönteminin görüntülenen adını ve simgesini SOCIAL_AUTH_<NAME>_IMAGE ve SOCIAL_AUTH_<NAME>_TITLE ayarları ile değiştirebilirsiniz. Örneğin Auth0 adı değiştirildiğinde şöyle görüntülenir:

SOCIAL_AUTH_AUTH0_IMAGE = "custom.svg"
SOCIAL_AUTH_AUTH0_TITLE = "Custom auth"

Parola ile kimlik doğrulamayı kapatmak#

E-posta ve parola kimlik doğrulaması AUTHENTICATION_BACKENDS bölümündeki``social_core.backends.email.EmailAuth`` seçeneği kaldırılarak kapatılabilir. Temel Weblate işlevleri için gerekli olduğundan weblate.accounts.auth.WeblateUserBackend` seçeneğini her zaman orada tutun.

E-posta kimlik doğrulamasını devre dışı bırakmak, e-postay ile ilgili tüm işlevleri (kullanıcı daveti ya da parola sıfırlama özelliği) devre dışı bırakır.

Tüyo

Yönetici arayüzü için, orada el ile oluşturduğunuz kullanıcılarda parola ile kimlik doğrulamasını kullanmayı sürdürebilirsiniz. ``/admin/login/``adresine gitmeniz yeterlidir.

Örneğin, yalnızca openSUSE Open ID hizmet sağlayıcısını kullanan kimlik doğrulaması şunu kullanarak yapılabilir:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.suse.OpenSUSEOpenId",
    "weblate.accounts.auth.WeblateUserBackend",
)

Parola ile kimlik doğrulama#

Varsayılan settings.py dosyasında mantıklı bir AUTH_PASSWORD_VALIDATORS kümesi bulunur:

  • Parola, kişisel bilgilerinize çok benzer bir şey olamaz.

  • Parola en az 10 karakter uzunluğunda olmalıdır.

  • Parola yaygın kullanılan bir şey olamaz.

  • Parola tümüyle rakamlardan oluşamaz.

  • Parola tek bir karakterden ya da boşluk karakterinden oluşamaz.

  • Parola daha önce kullandığınız bir parola olamaz.

Bu seçeneği parola ilkenize uygun biçimde değiştirebilirsiniz.

Ek olarak, parola zorluğu ile ilgili oldukça gerçekçi öngörüler veren ve belirli bir eşiğin altında kalan parolaların reddedilmesini sağlayan django-zxcvbn-password dosyasını da yükleyebilirsiniz.

SAML kimlik doğrulaması#

4.1.1 sürümünde geldi.

Lütfen yapılandırma için Python Social Auth yönergelerini izleyin. Önemli farklar:

  • Weblate,``SOCIAL_AUTH_SAML_ENABLED_IDPS`` içinde weblate olarak adlandırılması gereken tek kimlik hizmeti sağlayıcısını destekler.

  • SAML XML üst verileri adresi: /accounts/metadata/saml/.

  • Şu seçenekler kendiliğinden doldurulur: SOCIAL_AUTH_SAML_SP_ENTITY_ID, SOCIAL_AUTH_SAML_TECHNICAL_CONTACT, SOCIAL_AUTH_SAML_SUPPORT_CONTACT

Örnek yapılandırma:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.email.EmailAuth",
    "social_core.backends.saml.SAMLAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_SAML_SP_ENTITY_ID = f"https://{SITE_DOMAIN}/accounts/metadata/saml/"
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT = "-----BEGIN CERTIFICATE-----"
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY = "-----BEGIN PRIVATE KEY-----"
SOCIAL_AUTH_SAML_ENABLED_IDPS = {
    "weblate": {
        "entity_id": "https://idp.testshib.org/idp/shibboleth",
        "url": "https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO",
        "x509cert": "MIIEDjCCAvagAwIBAgIBADA ... 8Bbnl+ev0peYzxFyF5sQA==",
        "attr_name": "full_name",
        "attr_username": "username",
        "attr_email": "email",
    }
}
SOCIAL_AUTH_SAML_ORG_INFO = {
    "en-US": {
        "name": "example",
        "displayname": "Example Inc.",
        "url": "http://example.com"
    }
}
SOCIAL_AUTH_SAML_TECHNICAL_CONTACT = {
    "givenName": "Tech Gal",
    "emailAddress": "technical@example.com"
}
SOCIAL_AUTH_SAML_SUPPORT_CONTACT = {
    "givenName": "Support Guy",
    "emailAddress": "support@example.com"
}

Varsayılan yapılandırma, şu özniteliklerden kullanıcı bilgilerini ayıklar, kimlik hizmeti sağlayıcınızı bu öznitelikleri sunacak şekilde yapılandırın:

Öznitelik

SAML URI referansı

Ad soyad

urn:oid:2.5.4.3

Ad

urn:oid:2.5.4.42

Soyad

urn:oid:2.5.4.4

E-posta

urn:oid:0.9.2342.19200300.100.1.3

Kullanıcı adı

urn:oid:0.9.2342.19200300.100.1.1

İpucu

Yukarıdaki örnek ve Docker görüntüsü weblate adlı bir kimlik hizmeti sağlayıcısı tanımlamaktadır. Bu dizgeyi kimlik hizmeti sağlayıcınızda Relay olarak yapılandırmanız gerekebilir.

LDAP kimlik doğrulaması#

LDAP kimlik doğrulaması en iyi şekilde django-auth-ldap paketi kullanılarak sağlanabilir. Her zamanki gibi kurabilirsiniz:

# Using PyPI
pip install django-auth-ldap>=1.3.0

# Using apt-get
apt-get install python-django-auth-ldap

İpucu

Bu paket Docker kapsayıcısı ile birlikte gelir. Bilgi almak için: Docker ile kurmak.

Not

Python LDAP 3.1.0 modülünde, bu sürümü kullanmanızı engelleyebilecek bazı uyumsuzluklar vardır. AttributeError: ‘module’ nesnesinin ‘_trace_level’_ özniteliği yok hatasıyla karşılaşırsanız, python-ldap modülünü 3.0.0 sürümüne düşürmek yardımcı olabilir.

Paketi kurduktan sonra, Django kimlik doğrulaması ile bağlayabilirsiniz:

# Add LDAP backed, keep Django one if you want to be able to sign in
# even without LDAP for admin account
AUTHENTICATION_BACKENDS = (
    "django_auth_ldap.backend.LDAPBackend",
    "weblate.accounts.auth.WeblateUserBackend",
)

# LDAP server address
AUTH_LDAP_SERVER_URI = "ldaps://ldap.example.net"

# DN to use for authentication
AUTH_LDAP_USER_DN_TEMPLATE = "cn=%(user)s,o=Example"
# Depending on your LDAP server, you might use a different DN
# like:
# AUTH_LDAP_USER_DN_TEMPLATE = 'ou=users,dc=example,dc=com'

# List of attributes to import from LDAP upon sign in
# Weblate stores full name of the user in the full_name attribute
AUTH_LDAP_USER_ATTR_MAP = {
    "full_name": "name",
    # Use the following if your LDAP server does not have full name
    # Weblate will merge them later
    # 'first_name': 'givenName',
    # 'last_name': 'sn',
    # Email is required for Weblate (used in VCS commits)
    "email": "mail",
}

# Hide the registration form
REGISTRATION_OPEN = False

Not

:setting:django:AUTHENTICATION_BACKENDS` ayarından ``’social_core.backends.email.EmailAuth’ seçeneğini kaldırmalısınız. Yoksa kullanıcılar Weblate üzerinde kendi parolalarını ayarlayabilir ve bunu kullanarak kimlik doğrulaması yapabilir. İzinler almak ve anonim kullanıcılara kolaylık sağlamak için weblate.accounts.auth.WeblateUserBackend seçeneğinin tutulması hala gereklidir. Ayrıca, yerel bir yönetici hesabı oluşturduysanız (örneğin weblate weblate createadmin kullanarak) oturum açmanızı da sağlar.

BIND parolasını kullanarak#

Kimlik doğrulaması için doğrudan BIND kullanamıyorsanız, aramayı kullanmanız ve arama için bağlanacak bir kullanıcı belirtmeniz gerekir. Örneğin:

import ldap
from django_auth_ldap.config import LDAPSearch

AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch(
    "ou=users,dc=example,dc=com", ldap.SCOPE_SUBTREE, "(uid=%(user)s)"
)

Active Directory bütünleştirmesi#

import ldap
from django_auth_ldap.config import LDAPSearch, NestedActiveDirectoryGroupType

AUTH_LDAP_BIND_DN = "CN=ldap,CN=Users,DC=example,DC=com"
AUTH_LDAP_BIND_PASSWORD = "password"

# User and group search objects and types
AUTH_LDAP_USER_SEARCH = LDAPSearch(
    "CN=Users,DC=example,DC=com", ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"
)

# Make selected group a superuser in Weblate
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    # is_superuser means user has all permissions
    "is_superuser": "CN=weblate_AdminUsers,OU=Groups,DC=example,DC=com",
}

# Map groups from AD to Weblate
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
    "OU=Groups,DC=example,DC=com", ldap.SCOPE_SUBTREE, "(objectClass=group)"
)
AUTH_LDAP_GROUP_TYPE = NestedActiveDirectoryGroupType()
AUTH_LDAP_FIND_GROUP_PERMS = True

# Optionally enable group mirroring from LDAP to Weblate
# AUTH_LDAP_MIRROR_GROUPS = True

CAS kimlik doğrulaması#

CAS kimlik doğrulaması, django-cas-ng gibi bir paket kullanılarak yapılabilir.

Birinci adım, kullanıcının e-posta alanını CAS aracılığıyla açıklamaktır. Bunun CAS sunucusunun kendisinde yapılandırılması gerekir ve CAS v1 öznitelikleri tarafından desteklenmediğinden en az CAS v2 çalıştırmanız gerekir.

İkinci adım, Weblate yapılandırmasını CAS sunucunuzu ve özniteliklerinizi kullanacak şekilde güncellemektir.

django-cas-ng kurmak için:

pip install django-cas-ng

Paketi kurduktan sonra, settings.py dosyasını değiştirerek Django kimlik doğrulama sistemiyle bağlantı kurabilirsiniz:

# Add CAS backed, keep the Django one if you want to be able to sign in
# even without LDAP for the admin account
AUTHENTICATION_BACKENDS = (
    "django_cas_ng.backends.CASBackend",
    "weblate.accounts.auth.WeblateUserBackend",
)

# CAS server address
CAS_SERVER_URL = "https://cas.example.net/cas/"

# Add django_cas_ng somewhere in the list of INSTALLED_APPS
INSTALLED_APPS = (..., "django_cas_ng")

Son olarak, e-posta alanını kullanıcı nesnesiyle eşlemek için bir sinyal kullanabilirsiniz. Bunun çalışması için sinyali django-cas-ng paketinden içe aktarmanız ve kodunuzu bu sinyale bağlamanız gerekir. Bunu ayarlar dosyasında yapmak sorunlara neden olabilir. Bu nedenle şunları koymanız önerilir:

  • Uygulamanızın yapılandırmasında :p y:meth:`django:django.apps.AppConfig.ready yöntemi

  • Projenin urls.py dosyasında (herhangi bir model var olmadığında)

from django_cas_ng.signals import cas_user_authenticated
from django.dispatch import receiver


@receiver(cas_user_authenticated)
def update_user_email_address(sender, user=None, attributes=None, **kwargs):
    # If your CAS server does not always include the email attribute
    # you can wrap the next two lines of code in a try/catch block.
    user.email = attributes["email"]
    user.save()

Ayrıca bakınız

Django CAS NG

Üçüncü taraf Django kimlik doğrulamasını yapılandırmak#

Genellikle herhangi bir Django kimlik doğrulama uygulama eki Weblate ile çalışmalıdır. Yalnızca eklentinin yönergelerini izleyin. Weblate kullanıcı arka ucunu kurulmuş olarak tutmayı unutmayın.

Genellikle kurulum, AUTHENTICATION_BACKENDS seçeneğine bir kimlik doğrulama arka ucu eklemekten ve INSTALLED_APPS içine bir kimlik doğrulama uygulaması (varsa) kurmaktan oluşur:

AUTHENTICATION_BACKENDS = (
    # Add authentication backend here
    "weblate.accounts.auth.WeblateUserBackend",
)

INSTALLED_APPS += (
    # Install authentication app here
)

Erişim denetimi#

Weblate, kullanıcı izinlerinin uygulamanın tamamı ya da bir bölümü için atanabileceği ayrıntılı bir yetki sistemi sunar.

3.0 sürümünde değişti: Weblate 3.0 sürümünden önce, yetki sistemi yalnızca Django izin sistemine dayanıyordu. Ancak şimdi Weblate uygulamasına özel olarak oluşturuldu. Daha eski bir sürüm kullanıyorsanız, lütfen kullandığınız sürümün belgelerine bakın.

Basit erişim denetimi#

Tüm Weblate kurulumunu yönetmiyorsanız ve yalnızca belirli projelere erişiminiz varsa (Hosted Weblate gibi), erişim denetimi yönetimi ayarlarınız aşağıdaki seçeneklerle kısıtlıdır. Daha karmaşık bir kuruluma gerek duymuyorsanız, bunlar sizin için yeterlidir.

Proje erişim denetimi#

Not

Hosted Weblate üzerinde ücretsiz Libre tarifesini kullanan projeler her zaman Public şeklindedir. Projenize erişimi kısıtlamak istiyorsanız ücretli tarifeye geçebilirsiniz.

Farklı bir Erişim denetimi ayarı seçerek kullanıcının bireysel projelere erişimini sınırlayabilirsiniz. Kullanılabilecek seçenekler şunlardır:

Herkese açık

Herkes tarafından görülebilir.

Kimliği doğrulanmış tüm kullanıcılar tarafından katkıda bulunulabilir.

Sürüm denetimi sistemi herkese açılabilir.

Açık kaynaklı projeler için ya da Weblate kopyanız özel ya da kilitli olduğunda bunu seçin.

Korunmuş

Herkes tarafından görülebilir.

Yalnızca seçilmiş kullanıcılar tarafından katkıda bulunulabilir.

Yalnızca seçilmiş kullanıcılar sürüm denetimi sistemi deposuna erişebilir.

Görünürlük kazanmak için bunu seçin. Ancak yine de kimlerin katkıda bulunabileceğini denetleyin.

Kişisel

Yalnızca seçilmiş kullanıcılar tarafından görülebilir.

Yalnızca seçilmiş kullanıcılar tarafından katkıda bulunulabilir.

Yalnızca seçilmiş kullanıcılar sürüm denetimi sistemi deposuna erişebilir.

Herkese açık olarak görüntülenmemesi gereken projeler için bunu seçin.

Özel

Yalnızca seçilmiş kullanıcılar tarafından görülebilir.

Yalnızca seçilmiş kullanıcılar tarafından katkıda bulunulabilir.

Yalnızca seçilmiş kullanıcılar sürüm denetimi sistemi deposuna erişebilir.

Hosted Weblate üzerinde kullanılamaz.

Tüm izinleri Özel erişim denetimi ile ayarlamanız gerekir.

Erişimi belirli ve hassas bir şekilde özelleştirilebilir bir şekilde ayarlamak istiyorsanız kendi Weblate kopyanızda bunu seçin.

Bir projenin Erişim denetimi yapılandırması, ilgili projenin (YönetimAyarlar) Erişim sekmesinde değiştirilebilir.

_images/project-access.png

Varsayılan değer DEFAULT_ACCESS_CONTROL ile değiştirilebilir.

Not

Kişisel projeler için bile, projenizle ilgili bazı bilgiler açığa çıkar: Uygulama kopyasının tamamı için istatistikler ve dil özetinde, erişim denetimi ayarına rağmen tüm projelerin sayıları bulunur. Proje adınız ve diğer bilgileriniz açığa çıkmaz.

Not

Herkese açık, Korunmuş ve Kişisel projelerde kullanıcılar için varsayılan olarak var olan gerçek izinler kümesi, Weblate kopyasının yöneticisi tarafından özel ayar kullanılarak yeniden tanımlanabilir.

Ayrıca bakınız

Erişim denetimi

Her proje için erişim denetimi yönetimi#

Proje erişimi yönetimi yetkisi olan kullanıcılar (bilgi almak için Yetkiler ve hazır rollerin listesi), projelerdeki kullanıcıları takımlara ekleyerek yönetebilir. İlk takım grubu Weblate tarafından sağlanır. Daha ayrıntılı erişim denetimi sağlamak için ek takımlar tanımlanabilir. Ekipleri dillerle sınırlayabilir ve onlara belirli erişim rolleri atayabilirsiniz (ayrıntılı bilgi almak için Yetkiler ve hazır rollerin listesi).

Her proje için şu takımlar kendiliğinden oluşturulur:

Herkese açık, Korunmuş ve Kişisel projeler için:

Yönetim

Proje için kullanılabilecek tüm izinleri kapsar.

Onaylama (yalnızca onaylama iş akışı özelliği açıksa)

Çevirileri gözden geçirip onaylayabilir.

Yalnızca Korunmuş ve Kişisel projeler için:

Çevir

Projeyi çevirebilir ve çevrim dışı yapılmış çevirileri yükleyebilir.

Kaynaklar

(Proje ayarları içinde izin verilmiş ise) kaynak dizgeleri ve kaynak dizge bilgilerini düzenleyebilir.

Diller

Çevrilecek dilleri yönetebilir (çevirileri ekleyebilir ya da kaldırabilir).

Sözlük

Sözlükleri yönetebilir (kayıtları ekleyebilir ya da kaldırabilir ve yükleyebilir).

Bellek

Çeviri belleğini yönetebilir.

Ekran görüntüleri

Ekran görüntülerini yönetebilir (ekleyip kaldırabilir ve kaynak dizgelerle ilişkilendirebilir).

Kendiliğinden çeviri

Kendiliğinden çevirileri kullanabilir.

Sürüm denetimi sistemi

Sürüm denetimi sisteminin yönetimi yapabilir ve dışa aktarılmış depoya erişebilir.

Faturalama

Faturalama bilgilerine ve ayarlarına erişebilir (bilgi almak için Faturalama).

_images/manage-users.png

Bu özellikler, projenin YönetimKullanıcılar menüsünden erişilebilen Erişim denetimi sayfasında bulunur.

Takım yöneticileri#

4.15 sürümünde geldi.

Her takımda, takıma kullanıcı ekleyip kaldırabilen bir takım yöneticisi olabilir. Bu seçenek, kendi kendini yöneten takımlar oluşturmak istediğinizde kullanışlıdır.

Yeni kullanıcı daveti#

Var olan bir kullanıcıyı projeye eklemenin yanıda yeni kullanıcılar davet edilebilir. Yeni kullanıcılar hemen oluşturulur. E-posta yoluyla gönderilen davetlerde ise kullanıcı davet içindeki bağlantıyı kullanarak oturum açana kadar hesap etkinleştirilmez. Bunu yapabilmek için site genelinde herhangi bir yetki verilmesi gerekmez. Proje kapsamında erişim yönetimi izni (Yönetim takımının üyesi olmak gibi) yeterli olur.

İpucu

Davet edilen kullanıcı davetiyenin geçerlilik süresini geçirdiyse, hesap zaten oluşturulmuş olduğundan, parola sıfırlama formunda davet edildiği e-posta adresini kullanarak parolasını ayarlayabilir.

3.11 sürümünde geldi: Kullanıcı davet e-postaları yeniden gönderilebilir (önceki davet e-postası geçersiz olur).

Aynı türde davetler site genelinde Kullanıcılar sekmesindeki yönetim bölümü içinden kullanılabilir.

Kullanıcıları engelleme#

4.7 sürümünde geldi.

Projenizdeki bazı kullanıcıların kötü davranışlar sergilemesi durumunda, katkıda bulunmalarını engelleme seçeneğiniz vardır. Engellenen kullanıcının izinleri varsa, projeyi görmeye sürdürebilir. Ancak katkıda bulunamaz.

Her projeye özel izin yönetimi#

Projelerinizi Korunmuş ya da Kişisel olarak ayarlayabilir ve Weblate kullanıcı arayüzünde her proje için kullanıcıları yönetebilirsiniz.

Varsayılan olarak bu durum, bu takımların kendi yapılandırması nedeniyle Weblete tarafından Kullanıcılar ve Görüntüleyenler :ref: varsayılan takımlar <default-teams> için sunulan erişim izinlerinin verilmesini engeller. Bu durum, varsayılan takımları değiştirerek, yeni bir tane oluşturarak ya da aşağıdaki Özel erişim denetimi bölümünde açıklandığı gibi tek tek bileşenler için ek özel ayarlar oluşturarak site genelinde bu projelere izin vermenizi engellemez.

Weblate kullanıcı arayüzü üzerinden izinleri yönetmenin en önemli avantajlarından biri, izinlerin diğer kullanıcılara süper kullanıcı yetkisi verilmeden devredilebilmesidir. Bunun için bu kullanıcıları projenin Yönetim ekibine ekleyin.

Özel erişim denetimi#

Not

Bu özellik, Hosted Weblate üzerinde kullanılamaz.

İzin sistemi takımlara ve rollere dayanır. Roller bir dizi izin tanımlar ve takımlar bunları kullanıcılara ve çevirilere bağlar. Bilgi almak için Kullanıcılar, roller, takımlar ve izinler bölümüne bakabilirsiniz.

Weblate erişim denetimi sisteminin şimdilik en güçlü özellikleri yalnızca Django yönetim arayüzü üzerinden kullanılabilir. Bu arayüzden herhangi bir projenin izinlerini yönetebilirsiniz. Kullanabilmek için Erişim denetimini mutlaka Özel olarak değiştirmeniz gerekmez. Ancak süper kullanıcı yetkilerinizin olması gerekir.

Uygulamanın ayrıntılarıyla ilgilenmiyorsanız ve yalnızca varsayılan ayarlara dayanan yeterince basit bir yapılandırma oluşturmak istiyorsanız ya da Weblate kurulumunun tamamına site genelinde erişiminiz yoksa (Hosted Weblate gibi), lütfen Basit erişim denetimi bölümüne bakın.

Sık kullanılan kurulumlar#

Bu bölümde, ilginizi çekebilecek bazı genel yapılandırmaların özetini bulabilirsiniz.

Site genelinde izin yönetimi#

Uygulama kopyasının tamamındaki izinleri bir kerede yönetmek için kullanıcıları uygun Varsayılan takımlar ögesine ekleyin:

  • Kullanıcılar (bu varsayılan olarak kendiliğinden takım ataması ile yapılır).

  • Onaylayanlar (:ref: onaylayan kişiler ile onaylama iş akışını <reviews> kullanıyorsanız).

  • Yöneticiler (yönetim işlemlerinin çoğunu başkasına devretmek istiyorsanız).

Tüm projeleri Herkese açık olarak yapılandırılmış tutmalısınız (bilgi almak için Proje erişim denetimi). Yoksa Kullanıcılar ve Onaylayanlar takımlarına üye olarak elde edilen site geneli izinlerin herhangi bir etkisi olmaz.

Varsayılan takımlara seçtiğiniz bazı ek izinleri de verebilirsiniz. Örneğin, tüm Kullanıcılara ekran görüntülerini yönetme izni vermek isteyebilirsiniz.

Bazı yeni özel takımlar da tanımlayabilirsiniz. Bu takımlar için izinlerinizi site genelinde yönetmeyi sürdürmek istiyorsanız, Proje seçimi için uygun bir değer seçin (Tüm projeler ya da Tüm herkese açık projeler gibi).

Diller, bileşenler veya projeler için özel izinler#

Diller, bileşenler ve projeler gibi farklı nesnelerin izinlerini yönetmek için kendi ayrılmış takımlarınızı oluşturabilirsiniz. Bu takımlar yalnızca ek izinler verebilse de, başka bir özel takım ekleyerek site genelinde ya da her proje için takımlar tarafından verilen izinleri iptal edemezsiniz.

Örnek:

(Nedeni ne olursa olsun) belirli bir dilde çevirinin (Çekçe gibi) yalnızca belirli güvenilir bir çevirmen grubu tarafından yapılmasına izin vermek ve diğer dillerde yapılan çevirileri herkese açık tutmak istiyorsanız şunu yapmanız gerekir:

  1. Tüm kullanıcılardan Çekçe dilini çevirme iznini kaldırın. Varsayılan yapılandırmada, Kullanıcılar varsayılan takım değiştirilerek yapılabilir.

    Kullanıcılar grubu#

    Dil seçimi

    Tanımlandığı gibi

    Diller

    Çekçe dışında tümü

  1. Çekçe çevirmenleri için özel bir takım ekleyin.

    Çekçe çevirmenleri grubu#

    Roller

    Uzman kullanıcılar

    Proje seçimi

    Tüm herkese açık projeler

    Dil seçimi

    Tanımlandığı gibi

    Diller

    Çekçe

  1. İzin vermek istediğiniz kullanıcıları bu takıma ekleyin.

Gördüğünüz gibi, bu şekilde izin yönetimi güçlüdür. Ancak oldukça sıkıcı bir iş olabilir. Süper kullanıcı izinleri vermediğiniz sürece izinleri başka bir kullanıcıya devredemezsiniz.

Kullanıcılar, roller, takımlar ve izinler#

Kimlik doğrulama modelleri birkaç ögeden oluşur:

İzin

Weblate tarafından tanımlanan bireysel izin. İzinler kullanıcılara atanamaz. Bu yalnızca rol ataması ile yapılabilir.

Rol

Rol, bir izin kümesi tanımlar. Böylece, bu kümeler birkaç yerde yeniden kullanılabilir ve yönetim kolaylaşır.

Kullanıcı

Kullanıcı birkaç takımın üyesi olabilir.

Grup

Gruplar, roller, kullanıcılar ve kimlik doğrulama nesneleri (projeler, diller ve bileşen listeleri) arasında bağlantı kurar.

graph auth { "User" -- "Group"; "Group" -- "Role"; "Role" -- "Permission"; "Group" -- "Project"; "Group" -- "Language"; "Group" -- "Components"; "Group" -- "Component list"; }

Not

Bir takımın kendisine atanmış herhangi bir rolü olmayabilir. Bu durumda projeye herhangi birinin göz atma erişimi olacağı varsayılır (aşağıya bakın).

Bir projeye göz atma erişimi#

Kullanıcı, projeye bağlı bir takımın veya bu projenin içindeki herhangi bir bileşenin üyesi olmalıdır. Üye olmak yeterlidir. Projeye göz atabilmek için ayrıca özel bir izin gerekmez (bu, varsayılan Görüntüleyiciler takımında kullanılır. Bilgi almak için Takım listesi).

Bir bileşene göz atma erişimi#

Bir kullanıcı, bileşenlerin projesine erişebildiğinde kısıtlanmamış bileşenlere erişebilir (ve kullanıcıya proje için verilen tüm izinlere sahip olur). Kısıtlı erişim seçeneği açıkken, bileşene erişim, bileşen (veya bileşenin içinde bulunduğu bileşen listesi) için açık izinler gerekir.

Takımların kapsamı#

Takımlardaki roller tarafından atanan izin kapsamı şu kurallara göre uygulanır:

  • Takım herhangi bir Bileşen listesi belirtirse, takıma bağlı bileşen listelerindeki tüm bileşenler için o takımın üyelerine tüm izinler verilir ve bu bileşenlerin içinde bulunduğu tüm projeler için ek izinleri olmayan bir erişim verilir. Bileşenler ve Projeler yok sayılır.

  • Takımda herhangi bir Bileşen belirtiliyorsa, takıma bağlı tüm bileşenler için o takımın üyelerine tüm izinler verilir ve bu bileşenlerin içinde bulunduğu tüm projeler için ek izinleri olmayan bir erişim verilir. Projeler yok sayılır.

  • Yoksa, takımda herhangi bir Proje belirtiliyorsa, bunları doğrudan listeleyerek veya Proje seçimi değerini Tüm herkese açık projeler gibi bir değere ayarlayarak, tüm bu izinler tüm projelere uygulanır ve bu da tüm projelere erişmek için aynı izinleri etkin bir şekilde verir kısıtlanmamış bileşenler.

  • Bir takımın Diller değeri tarafından uygulanan kısıtlamalar, kullanıcının belirli işlemleri yapma izni olup olmadığına bakılarak ayrı olarak uygulanır. Yani, yalnızca çeviri sürecinin kendisiyle doğrudan ilgili onaylama, çevirileri kaydetme, öneri ekleme gibi işlemlere uygulanır.

İpucu

Tüm dillerin veya projelerin kendiliğinden katılması için Dil seçimi ya da Proje seçimi kullanın.

Örnek:

Diyelim ki şu bileşenleri olan bir foo projesi var: foo/bar ve foo/baz ve şu takım:

Grup İspanyol Yönetici-Onaylayıcılar#

Roller

Dizgeleri onayla, Depo yönetimi

Bileşenler

foo/bar

Diller

İspanyolca

Bu takımın üyelerinin şu izinleri olacak (varsayılan rol ayarları kabul edilerek):

  • Şu iki bileşenin de bulunduğu foo projesi için genel (göz atma) izni: foo/bar ve foo/baz.

  • foo/bar İspanyolca çevirisinde (başka bir yerde değil) dizgeleri onaylama izni.

  • Tüm foo/bar deposu için sürüm denetimi sistemi yönetimi. Çevirmenler tarafından tüm diller için yapılmış bekleyen değişikliklerin işlenmesi gibi.

Kendiliğinden takım atamaları#

Django yönetim arayüzü içindeki Grup düzenleme sayfasının alt bölümünde, yeni oluşturulan kullanıcıları e-posta adreslerine göre bir takıma kendiliğinden atanması için kullanılacak kurallı ifade listesi ile Kendiliğinden takım ataması yapabilirsiniz. Bu atama yalnızca hesap oluşturulduktan sonra yapılır.

Bu özelliğin en yaygın kullanım örneği, tüm yeni kullanıcıların bazı varsayılan takımlara atanmasıdır. Bunu yapmak için, büyük olasılıkla kurallı ifade alanındaki varsayılan değeri (``^.*$`) korumak isteyeceksiniz. Bu seçeneğin başka bir kullanım örneği, varsayılan olarak şirketinizin çalışanlarına bazı ek ayrıcalıklar vermek olabilir. Tümünün etki alanınızdaki kurumsal e-posta adreslerini kullandığını varsayarsak, bu ``^.*@mycompany.com` gibi bir kurallı ifadeyle gerçekleştirilebilir.

Not

Kullanıcılar ve Görüntüleyiciler için kendiliğinden takım ataması, bir Weblate sürümünden diğerine yükseltme yaparken her zaman yeniden oluşturulur. Bu seçeneği kapatmak istiyorsanız, kurallı ifadeyi ``^$` olarak ayarlayın (hiçbir şeyle eşleşmez).

Not

Şimdilik, zaten var olan kullanıcıları kullanıcı arayüzü üzerinden bazı takımlara toplu olarak eklemenin bir yolu yok. Bunun için REST API kullanmayı deneyebilirsiniz.

Varsayılan takımlar ve roller#

Kurulumdan sonra, bir varsayılan takım kümesi oluşturulur (bilgi almak için Takım listesi).

Bu roller ve takımlar kurulum sonrasında oluşturulur. Hazır roller, yükseltme yapılırken veri tabanı aktarımı tarafından her zaman güncel tutulur. Bunları gerçekten değiştiremezsiniz. Kendi izin kümenizi tanımlamak istiyorsanız lütfen yeni bir rol tanımlayın.

Yetkiler ve hazır rollerin listesi#

Kapsam

İzin

Roller

Faturalama (bilgi almak için Faturalama)

Fatura bilgilerini görüntüle

Yönetim, Faturalama

Değişiklikler

Değişiklikleri indir

Yönetim

Yorumlar

Yorum gönderme

Yönetim, Kaynağı düzenleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Yorum silme

Yönetim

Yorumu çözümleme

Yönetim, Dizgeleri onaylama

Bileşen

Bileşen ayarlarını düzenleme

Yönetim

Bileşeni kilitleme, çevirileri engelleme

Yönetim

Sözlük

Sözlük kaydı ekleme

Yönetim, Sözlük yönetimi, Uzman kullanıcı

Sözlük kaydını düzenleme

Yönetim, Sözlük yönetimi, Uzman kullanıcı

Sözlük kaydını silme

Yönetim, Sözlük yönetimi, Uzman kullanıcı

Sözlük kayıtları yükleme

Yönetim, Sözlük yönetimi, Uzman kullanıcı

Kendiliğinden öneriler

Kendiliğinden önerileri kullanma

Yönetim, Kaynağı düzenleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Çeviri belleği

Çeviri belleğini düzenleme

Yönetim, Çeviri belleği yönetimi

Çeviri belleğini silme

Yönetim, Çeviri belleği yönetimi

Projeler

Proje ayarlarını düzenleme

Yönetim

Proje erişimini yönetme

Yönetim

Raporlar

Raporları indirme

Yönetim

Ekran görüntüleri

Ekran görüntüsü ekleme

Yönetim, Ekran görüntüleri yönetimi

Ekran görüntüsü düzenleme

Yönetim, Ekran görüntüleri yönetimi

Ekran görüntüsü silme

Yönetim, Ekran görüntüleri yönetimi

Kaynak dizgeler

Ek dizge bilgilerini düzenleme

Yönetim, Kaynağı düzenleme

Dizgeler

Yeni dizge ekleme

Yönetim

Bir dizgeyi silme

Yönetim

Denetim hatasını yok sayma

Yönetim, Kaynağı düzenleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Dizgeleri düzenleme

Yönetim, Kaynağı düzenleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Dizgeleri onaylama

Yönetim, Dizgeleri onaylama

Öneriler dayatıldığında dizgeyi düzenleme

Yönetim, Dizgeleri onaylama

Kaynak dizgeleri düzenleme

Yönetim, Kaynağı düzenleme, Uzman kullanıcı

Öneriler

Öneriyi kabul etme

Yönetim, Kaynağı düzenleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Öneri ekleme

Yönetim, Kaynağı düzenleme, Öneri ekleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Öneri silme

Yönetim, Uzman kullanıcı

Öneriye oy verme

Yönetim, Kaynağı düzenleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Çeviriler

Çeviri dili ekleme

Yönetim, Uzman kullanıcı, Dil yönetimi

Kendiliğinden çevirme

Yönetim, Kendiliğinden çevirme

Var olan çeviriyi silme

Yönetim, Dil yönetimi

Çeviri dosyasını indirme

Yönetim, Kaynağı düzenleme, Depoya erişme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme, Dil yönetimi

Çevirilecek birkaç dil ekleyin

Yönetim, Dil yönetimi

Yüklemeler

Yüklenmiş çeviriye katkıda bulunanı tanımlama

Yönetim

Yükleme ile var olan dizgelerin üzerine yazma

Yönetim, Kaynağı düzenleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Çeviri yükleme

Yönetim, Kaynağı düzenleme, Uzman kullanıcı, Dizgeleri onaylama, Çevirme

Sürüm denetimi sistemi

İç depoya erişme

Yönetim, Depoya erişme, Uzman kullanıcı, Depo yönetimi

Değişiklikleri iç depoya işleme

Yönetim, Depo yönetimi

İç depodaki değişiklikleri işleme

Yönetim, Depo yönetimi

İç depodaki değişiklikleri sıfırlama

Yönetim, Depo yönetimi

Yukarı akış deposu konumunu görüntüleme

Yönetim, Depoya erişme, Uzman kullanıcı, Depo yönetimi

İç depoyu güncelleme

Yönetim, Depo yönetimi

Site genelindeki izinler

Yönetim arayüzünü kullanma

Yeni projeler ekleme

Dil tanımları ekleme

Dil tanımı yönetimi

Takım yönetimi

Kullanıcı yönetimi

Rol yönetimi

Duyuru yönetimi

Çeviri belleği yönetimi

Makine yönetimi

Bileşen listeleri yönetimi

Not

Site genelindeki izinler herhangi bir varsayılan role verilmez. Bu izinler güçlüdür ve süper kullanıcı yetkilerine oldukça yakındır. Çoğu Weblate kurulumundaki tüm projeleri etkiler.

Takım listesi#

Aşağıdaki takımlar kurulumun ardından (ya da weblate weblate setupgroups çalıştırıldıktan sonra) oluşturulur ve bunları istediğiniz gibi değiştirebilirsiniz. Ancak, silerseniz ya da yeniden adlandırırsanız aktarım işlemi bunları yeniden oluşturur.

Konuklar

Kimliği doğrulanmamış kullanıcıların izinlerini belirler.

Bu takımda yalnızca anonim kullanıcılar bulunur (bilgi almak için ANONYMOUS_USER_NAME).

Kimliği doğrulanmamış kullanıcıların izinlerini sınırlamak için bu takımdaki rolleri kaldırabilirsiniz.

Varsayılan roller: Öneri ekleme, Depoya erişme

Görüntüleyiciler

Bu rol, herkese açık projelerin tüm kullanıcılara göründüğünden emin olunmasını sağlar. Varsayılan olarak tüm kullanıcılar bu grubun üyesidir.

Varsayılan olarak, kendiliğinden takım ataması, katılan tüm yeni hesapları bu takımın bir üyesi yapar.

Varsayılan roller: Yok

Kullanıcılar

Tüm kullanıcıların varsayılan takımı.

Varsayılan olarak, kendiliğinden takım ataması, katılan tüm yeni hesapları bu takımın bir üyesi yapar.

Varsayılan roller: Uzman kullanıcı

Onaylayanlar

Onaylayan kullanıcıların takımı (bilgi almak için Çeviri iş akışları).

Varsayılan roller: Dizgeleri onaylama

Yöneticiler

Yönetici kullanıcıların takımı.

Varsayılan roller: Yönetim

Uyarı

Hazır gelen Weblate takımlarını ve kullanıcılarını asla silmeyin. Bu işlem beklenmedik sorunlara yol açabilir! Onları kullanmıyorsanız, silmek yerine tüm izinlerini kaldırabilirsiniz.

Ek erişim kısıtlamaları#

Weblate kurulumunuzu herkese daha az açık olacak biçimde kullanmak, yani yeni kullanıcıları yalnızca davet ederek izin vermek istiyorsanız, Weblate yapılandırmasını yalnızca bilinen kullanıcıların erişebileceği şekilde ayarlayabilirsiniz. Bu amaçla, yeni kullanıcıların hesap açmasını önlemek için REGISTRATION_OPEN seçeneğini Yanlış olarak ve REQUIRE_LOGIN seçeneğini /.*’ olarak ayarlayarak tüm site sayfalarına erişmek için oturum açmayı zorunlu kılabilirsiniz. Böylece kolayca Weblate kurulumunuzu kilitlemiş olursunuz.

İpucu

Yeni kullanıcılar eklemek için iç Yeni kullanıcı daveti komutunu kullanabilirsiniz.

Çeviri projeleri#

Çeviri kuruluşu#

Weblate, projenin/bileşenlerin çevrilebilir sürüm denetimi sistemi içeriğini ağaç benzeri bir yapıya dönüştürür.

  • En alt düzeydeki nesne Proje yapılandırması olur ve tüm çevirileri bir arada bulundurmalıdır (bir uygulamanın birkaç sürümünün ve/veya ekindeki belgelerin çevirisi gibi).

  • Yukarıdaki düzeyde, çevrilecek bileşen olan Bileşen yapılandırması, kullanılacak sürüm denetimi sistemi deposu ve çevrilecek dosyaların maskesi gibi bilgileri tanımlayabilirsiniz.

  • Yukarıda Bileşen yapılandırması sürüm denetimi sistemi deposunda, çeviri dosyaları (Bileşen yapılandırması içinde tanımlanan Dosya maskesi ile eşleşen) Weblate tarafından otomatik olarak işlenen bireysel çeviriler bulunur.

Weblate, Translate Toolkit tarafından desteklenen çok çeşitli çeviri biçimlerini (hem iki dilli hem de tek dilli olanları) destekler. Bilgi almak için: ref:formats.

Not

Kopyalanmış sürüm denetimi sistemi depolarını İç Weblate adresleri ile paylaşabilirsiniz. Aynı sürüm denetimi sistemini paylaşan birçok bileşeniniz olduğunda bu özelliği kullanmanız önemle önerilir. Başarımı artırır ve kullanılacak disk alanını azaltır.

Çeviri projelerini ve bileşenleri eklemek#

3.2 sürümünde değişti: Proje ve bileşen eklemek için bir arayüz vardır ve artık Django yönetim arayüzü kullanmanız gerekmez.

3.4 sürümünde değişti: Bileşen ekleme işlemi artık çoğu parametrenin otomatik olarak keşfedilmesiyle çok aşamalı olarak yapılır.

İzinlerinize göre, yeni çeviri projeleri ve bileşenleri ekleyebilirsiniz. Yeni proje ekleyebilir izni olan kullanıcılara her zaman izin verilir ve bulut sunucunuz faturalama kullanıyorsa (https://hosted.weblate.org/ gibi, bilgi almak için: Faturalama), faturalamayı yöneten kullanıcı hesabından tarifenizin sınırlarına göre de bunları oluşturabilirsiniz.

Var olan faturalama tarifenizi ayrı bir sayfada görüntüleyebilirsiniz:

_images/user-billing.png

Proje ekleme işlemi oradan ya da başlatılabilir ya da gezinme çubuğundaki menüden eklemeyi tamamlamak için çeviri projesiyle ilgili temel bilgiler doldurulabilir:

_images/user-add-project.png

Proje eklendikten sonra, doğrudan proje sayfasına yönlendirilirsiniz:

_images/user-add-project-done.png

Yeni bir çeviri bileşeni oluşturmak, oradan tek bir tıklama ile başlatılabilir. Bileşen ekleme işleminin birkaç aşaması vardır ve çoğu çeviri parametresini otomatik olarak algılar. Bileşen eklemek için birkaç yaklaşım vardır:

Sürüm denetiminden

Bileşeni uzak sürüm denetimi deposundan ekler.

Var olan bileşenden

Bileşeni seçilmiş farklı dosyalar ile var olan bileşene ek bileşen olarak ekler.

Ek dal

Bileşeni yalnızca farklı dallar için var olan bileşene ek bileşen olarak ekler.

Çeviri dosyalarını yükleyerek

Sürüm denetimi kullanmadığınız ya da Weblate ile bütünleştirmek istemediğiniz durumlarda çeviri dosyalarını Weblate üzerine yükleyebilirsiniz. İçeriği daha sonra site arayüzü ya da Weblate REST API uygulaması ile güncelleyebilirsiniz.

Belgeyi çevirerek

Tek bir belge veya çeviri dosyası yükleyip ve çevirebilirsiniz.

Sıfırdan başlayarak

Boş bir çeviri projesi oluşturabilir ve dizgeleri el ile ekleyebilirsiniz.

Çeviri bileşenlerini ekledikten sonra, aynı depoyu kullanarak ek dosyalar ya da dallar için kolayca yeni bileşenler ekleyebilirsiniz.

Öncelikle adı ve depo konumunu yazmanız gerekir:

_images/user-add-component-init.png

Sonraki sayfada, keşfedilmiş çevrilebilir kaynakların bir listesini göreceksiniz:

_images/user-add-component-discovery.png

Son olarak, çeviri bileşeni bilgilerini gözden geçirebilir ve isteğe bağlı bilgileri yazabilirsiniz:

_images/user-add-component.png

Proje yapılandırması#

Bir çeviri projesi oluşturun ve içine çevrilecek yeni bir bileşen ekleyin. Proje, gerçek çevirilerin konulduğu bir raf gibidir. Aynı projedeki tüm bileşenler önerileri ve sözlüğü paylaşır. Ayrıca yapılan çeviriler tek bir projedeki tüm bileşenlere kendiliğinden yayılır (bileşen yapılandırmasında kapatılmadıkça). Bilgi almak için: Çeviri belleği.

Ayrıca bakınız

Weblate ile bütünleştirmek

Bu temel öznitelikler kurulur ve bir projenin çevirmenlerine bildirilir:

Proje adı#

Proje adını görüntülemek için kullanılan ayrıntılı proje adı.

Ayrıca bakınız

PROJECT_NAME_RESTRICT_RE

Adres kısaltması#

Projenin adreslerde kullanılmaya uygun adı.

Proje sitesi#

Çevirmenlerin proje ile ilgili ayrıntılı bilgi bulabileceği adres.

Bu parametre WEBSITE_REQUIRED tarafından kapatılmadığı sürece zorunludur.

Çeviri yönergeleri#

Projedeki yerelleştirme sürecini açıklayan metin ve çevirmenler için yararlı olabilecek diğer bilgiler. Metin biçimlendirme ya da bağlantı ekleme işlemleri için markdown kullanılabilir.

“Language-Team” üst bilgisi ayarlansın#

Language-Team üst bilgisinin Weblate tarafından yönetmesinin gerekip gerekmediği (bu şu anda yalnızca bir GNU gettext özelliğidir).

Paylaşılan çeviri belleği kullanılsın#

Paylaşılan çeviri belleğinin kullanılıp kullanılmayacağı. Bilgi almak için: Paylaşılan çeviri belleği.

Varsayılan değer DEFAULT_ACCESS_CONTROL seçeneği ile değiştirilebilir.

Paylaşılan çeviri belleğine katkıda bulunulsun#

Paylaşılan çeviri belleğine katkıda bulunulup bulunulmayacağı. Bilgi almak için: Paylaşılan çeviri belleği.

Bu aynı zamanda projenin Kendiliğinden çeviri kaynağı olarak kullanılıp kullanılamayacağını da etkiler.

Varsayılan değer DEFAULT_ACCESS_CONTROL seçeneği ile değiştirilebilir.

Not

Bu seçenek, Hosted Weblate üzerinde kullanılamaz, Paylaşılan çeviri belleği kullanılsın seçeneği ile değiştirilir.

Erişim denetimi#

Her proje için erişim denetimi yapılandırması. Bilgi almak için: :ref:`acl’.

Varsayılan değer DEFAULT_ACCESS_CONTROL ile değiştirilebilir.

Onaylama kullanılsın#

Çeviriler için onaylama iş akışını etkinleştirir. Bilgi almak için: Özel onaylayanlar.

Kaynak onaylama kullanılsın#

Kaynaklar için onaylama iş akışını etkinleştirir. Bilgi almak için: Kaynak dizge onayları.

Kancalar kullanılsın#

Bu depo için kimliği doğrulanmamış Bildirim kancaları özelliğinin kullanılıp kullanılmayacağı.

Dil kod adları#

Çevirileri Weblate içine aktarmak için kullanılacak dil kodları eşleştirmesini tanımlayın. Dil kodları depolarınızda tutarsız olduğunda ve Weblate üzerinde tutarlı bir görünüm elde etmek istediğinizde ya da çeviri dosyalarınızda standart olmayan adlandırma kullanmak istediğinizde bunu kullanın.

Tipik kullanım örneği, Amerikan İngilizcesi ile İngiliz İngilizcesi’ni eşleştirmek olabilir: en_US:en

Birden fazla eşleştirmeyi virgül ile ayırarak yazabilirsiniz: en_GB:en,en_US:en

Standart olmayan kod kullanmak: ia_FOO:ia

İpucu

Çeviri dosyaları eşleştirilirken dil kodlarına bakılır ve eşleşmeler büyük/küçük harfe duyarlıdır. Bu nedenle kaynak dil kodlarını dosya adlarındakiler ile aynı şekilde kullandığınızdan emin olun.

Bileşen yapılandırması#

Bir bileşen, çevrilecek bir şeyin gruplanmasıdır. Çevrilmesini istediğiniz dosyalar için bir sürüm denetimi sistemi deposu konumu ve dosya maskesi belirtirsiniz ve Weblate otomatik olarak bu sürüm denetimi sisteminden eşleşen tüm çevrilebilir dosyaları bulup alır.

Ayrıca bakınız

Weblate ile bütünleştirmek

Bazı yaygın yapılandırma örneklerini Desteklenen dosya biçimleri bölümünde bulabilirsiniz.

Not

Çeviri bileşenlerini makul bir boyutta tutmanız önerilir. Çeviriyi sizin durumunuzda anlamlı olan herhangi bir şeye göre bölün (bireysel uygulamalar ya da eklentiler, kitap bölümleri ya da siteler).

Weblate, onbinlerce dizgeden oluşan çevirileri kolayca işler. Ancak işi bölmek ve bu kadar büyük çeviri bileşenlerinin çevirmenler arasında koordinasyonunu sağlamak daha zordur.

Bir çevirinin dil tanımı eksikse, boş bir tanım oluşturulur ve “tr_TR (oluşturulmuş)” olarak adlandırılır. Tanımı ayarlamalı ve eksik dillerin bir sonraki sürüme katılabilmesi için bunu Weblate geliştiricilerine bildirmelisiniz.

Bileşende, sürüm denetim sistemi ile çalışmak ve çevirileri almak için gereken tüm önemli parametreler bulunur:

Bileşen adı#

Bileşen adını görüntülemek için kullanılan ayrıntılı bileşen adı.

Bileşen kısaltması#

Bileşenin adreslerde kullanılmaya uygun adı.

Bileşenin projesi#

Proje yapılandırması bileşenin ait olduğu yer.

Sürüm denetimi sistemi#

Kullanılacak sürüm denetimi sistemi. Bilgi almak için: Sürüm denetimi bütünleştirmesi.

Kaynak kod deposu#

Değişikliklerin alınacağı sürüm denetimi sistemi deposu.

Ayrıca bakınız

Adresleri belirtmek ile ilgili bilgi almakiçin: Depolara erişmek.

İpucu

Bu, gerçek bir sürüm denetimi sistemi adresi ya da deponun başka bir bileşenle paylaşılması gerektiğini belirten weblate://project/component olabilir. Bilgi almak için: İç Weblate adresleri.

Depo itme adresi#

İtme için kullanılan depo adresi. Bunun davranışı Sürüm denetimi sistemi bileşenine bağlıdır ve bu konu Weblate üzerindeki değişiklikleri itmek içinde ayrıntılı olarak ele alınmıştır.

Bağlantılı depolar için bu kullanılmaz ve bağlantılı bileşendeki ayar uygulanır.

Ayrıca bakınız

Bir depo adresinin nasıl belirtileceği ile ilgili bilgi almak için: Depolara erişmek ve Weblate üzerinden değişiklikleri itmek ile ilgili bilgi almak için: Weblate üzerindeki değişiklikleri itmek bölümlerine bakabilirsiniz.

Depo tarayıcısı#

Kaynak dosyaları görüntülemek için kullanılan depo tarayıcısının adresi (kullanılan iletilerin konumu). Boş olduğunda, böyle bir bağlantı oluşturulmaz. Kalıp kodlaması kullanabilirsiniz.

Örneğin, GitHub üzerinde şöyle bir şey kullanın: https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename}}#L{{line}}

Yollarınızın farklı bir klasöre göre olması durumunda (yolda .. `` varsa), baştaki klasörü ``parentdir süzgeciyle atmak isteyebilirsiniz (bilgi almak için: Kalıp kodlaması): https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename|parentdir}}#L{{line}}

Dışa aktarılmış depo adresi#

Weblate tarafından yapılan değişikliklerin dışa aktarıldığı adres. Bu adres, Sürekli yerelleştirme kullanılmadığında ya da değişiklikleri el ile birleştirmeye gerek duyulduğunda önemli olur. Git depoları için otomatikleştirmek için Git dışa aktarıcı kullanabilirsiniz.

Depo dalı#

Sürüm denetimi sistemindeki hangi daldan çıkış yapılacağı ve çeviriler için nereye bakılacağı.

Bağlantılı depolar için bu kullanılmaz ve bağlantılı bileşendeki ayar uygulanır.

İtme işleminin yapılacağı dal#

Değişikliklerin gönderileceği dal, Depo dalı kullanılması için boş bırakın.

Bağlantılı depolar için bu kullanılmaz ve bağlantılı bileşendeki ayar uygulanır.

Not

Bu özellik şu anda yalnızca Git, GitLab ve GitHub için destekleniyor. Diğer sürüm denetimi sistemi bütünleştirmeleri yok sayılır.

Dosya maskesi#

Yol ile birlikte çevrilecek dosyaların maskesi. Dil kodunun yerine bir “*” bulunmalıdır (bunun nasıl işlendiği ile ilgili bilgi almak için: Dil tanımları). Deponuzda birden fazla çeviri dosyası varsa daha fazla gettext etki alanları gibi), her biri için bir bileşen oluşturmanız gerekir.

Örneğin po/*.po ya da locale/*/LC_MESSAGES/django.po.

Dosya adınızda [, ] gibi özel karakterler bulunması durumunda, bunlardan [[] ya da []] gibi kaçınılması gerekir.

Ekran görüntüsü dosya maskesi#

Sürüm denetimi sistemi deposundan yol ile birlikte ekran görüntülerinin keşfedilmesini veya güncellenmesini sağlayan dosya maskesi. Ekran görüntüsü dosya adı yerine bir “*” içermelidir.

İzin verilen biçinler JPEG, PNG, APNG and GIF.

Örneğin docs/*.png.

Tek dilli temel dil dosyası#

Tek dilde bileşenler için dizge tanımlarını içeren temel dosya.

Temel dosyayı düzenle#

Tek dilde bileşenler için temel dosyanın düzenlenmesine izin verilip verilmeyeceği.

Ara dil dosyası#

Tek dilde bileşenler için ara dil dosyası. Çoğu durumda bu, geliştiriciler tarafından sağlanan bir çeviri dosyasıdır ve gerçek kaynak dizgeleri oluşturulurken kullanılır.

Ayarlandığında, kaynak dizgeler bu dosyayı temel alır. Ancak diğer tüm diller Tek dilli temel dil dosyası dosyasını temel alır. Dizgenin kaynak dile çevrilmemesi durumunda, diğer dillere çeviri yapmak engellenir. Bu, Kaynak dizgeler için kalite aracısı sağlar.

Yeni çeviriler kalıbı#

Yeni çeviriler oluşturmak için kullanılan temel dosya.

  • Tek biçimli biçimlerin çoğu için bu alanı boş bırakın. Bunlar genellikle boş bir dosya ile başlayabilir.

  • GNU gettext po dosyaları için ``.pot``dosyası seçin.

  • Varsa, çevirileri olmayan boş dosyayı seçin.

  • Tam bir anahtar kümesinin bulunması gereken tek dilli biçimler için Tek dilli temel dil dosyası seçin.

  • Belge çevirileri için Tek dilli temel dil dosyası seçin.

  • Diğerleri için herhangi bir çeviri dosyası seçin.

  • Kalıp dosyası çoğu durumda temel dosyayla aynı olabilir.

İpucu

Birçok tek dilli biçimde Weblate varsayılan olarak boş dosya ile başlar. Yeni çeviri oluştururken tüm dizgelerin değerinin boş olmasını istiyorsanız bunu kullanın.

Dosya biçimi#

Çeviri dosyası biçimi. Bilgi almak için: Desteklenen dosya biçimleri.

Kaynak dizge hata bildirme adresi#

Yukarı akış hatalarını bildirmek için kullanılacak e-posta adresi. Bu adres, Weblate üzerinde yapılan tüm kaynak dizge yorumları ile ilgili bildirimleri de alır.

Çevirilerin yayılmasını sağlamak#

Çevirilerin aynı projedeki diğer bileşenlerden bu bileşene yayılmasını kapatabilirsiniz. Bu seçenek gerçekte neyin çevirisini yaptığınıza bağlıdır, bazen bir çeviriden birden fazla kez yararlanmak isteyebilirsiniz.

Tüm projede aynı kimlikleri kullanmadığınız sürece, tek dilli çeviriler için bu seçeneği kapatmak genellikle iyi bir fikirdir.

Varsayılan değer DEFAULT_TRANSLATION_PROPAGATION ile değiştirilebilir.

Öneriler kullanılsın#

Bu bileşen için çeviri önerilerinin kabul edilip edilmeyeceği.

Öneriler oylanabilsin#

Öneriler için oy verme özelliğini açar. Bilgi almak için: Öneriler oylanabilsin.

Öneriler kendiliğinden kabul edilsin#

Oylanan önerilerin kendiliğinden kabul edilmesini sağlar. Bilgi almak için: Öneriler oylanabilsin.

Çeviri imleri#

Kalite denetimlerinin ve diğer Weblate davranışlarının özelleştirilmesi. Bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek.

Zorunlu denetimler#

Yok sayılamayacak denetimlerin listesi. Bilgi almak için: enforcecing-checks.

Not

Denetim dayatması kendiliğinden etkinleştirilmez. component-check_flags checks ya da Kaynak dizgeler ile ilgili ek bilgiler içindeki Parametreleri kullanarak davranışı özelleştirmek ile etkinleştirmeniz gerekir.

Çeviri lisansı#

Çevirinin lisansı (kaynak kodunun lisansı ile aynı olması gerekmez).

Katılımcı anlaşması#

Bir kullanıcının bu bileşeni çevirmeden önce kabul etmesi gereken katılımcı anlaşması.

Yeni çeviri ekleme#

Yeni dil ekleme isteklerinin nasıl işleneceği. Kullanılabilecek seçenekler:

Sorumlulara bildirim

Kullanıcı istediği dili seçebilir ve proje sorumlularına bununla ilgili bir bildirim gönderilir. Dili depoya eklemek (ya da eklememek) proje sorumlusuna kalır.

Çeviri yönergeleri adresi görüntülensin

Kullanıcıya, yeni çevirilere başlama sürecini açıklayan bir sayfa bağlantısı sunulur. Bu seçeneği daha resmi bir süreç istenmesi durumunda kullanabilirsiniz (çeviriye başlamadan önce bir ekip oluşturmak gibi).

Yeni dil dosyası oluşturulsun

Kullanıcı dili seçebilir, Weblate dosyayı kendiliğinden oluşturur ve çeviri başlayabilir.

Yeni çevirilerin eklenmesi devre dışı bırakılsın

Kullanıcıya yeni çeviriye başlaması için bir seçenek sunulmaz.

İpucu

Proje yöneticileri, burada devre dışı bırakılmış olsa bile yeni çeviriler ekleyebilir (Yeni çeviriler kalıbı ya da boş bir dosyadan başlamayı destekleyen dosya biçimi).

Dizge yönetimi#

4.5 sürümünde geldi.

Weblate üzerindeki kullanıcıların yeni dizgeler eklemesine ve var olan dizgeleri silmesine izin verilip verilmeyeceğini yapılandırır. Bu seçeneği, yerelleştirme iş akışınıza (yeni dizgelerin nasıl tanıtılması gerektiğine) uyacak şekilde ayarlayın.

İki dilli biçimler için, dizgeler genellikle kaynak kodundan ayıklanır (örneğin, xgettext kullanılarak) ve Weblate üzerine yeni dizgelerin eklenmesi devre dışı bırakılmalıdır (çeviri dosyalarının bir sonraki güncellenmesinde silinirler). Weblate üzerinde her çevirinin dizgelerini yönetebilirsiniz ve tüm çevirilerdeki dizgelerin tutarlı olmasını dayatılmaz.

Tek dilli biçimlerde, dizgeler yalnızca kaynak dilde yönetilir ve çevirilerde kendiliğinden eklenir ya da silinir. Dizgeler, çevrildikten sonra çeviri dosyalarında görünür.

Dil kodu biçemi#

Weblate tarafından oluşturulan çevirilerin dosya adını oluşturmakta kullanılacak dil kodunu özelleştirin.

Not

Weblate, çeviri dosyalarını işlerken dil kodlarını tanır. Bu ayarlar yalnızca yeni dosyaların nasıl oluşturulacağını etkiler.

Dosya biçimine göre varsayılan

Dosya biçimine bağlıdır. Çoğu için POSIX kullanılır.

Ayraç olarak alt çizgi kullanan POSIX biçemi

Genellikle gettext ve ilgili araçlar tarafından kullanılır. pt_BR gibi dil kodlarını üretir.

Ülke kodu ile birlikte ayraç olarak alt çizgi kullanan POSIX biçemi

Gerekli olmadığında bile ülke kodunu içeren POSIX biçemindeki dil kodu (tr_TR gibi).

POSIX style using underscore as a separator, including country code (lowercase)

POSIX style language code including the country code even when not necessary (lowercase) (for example cs_cz).

Ayraç olarak tire kullanan BCP biçemi

Genellikle internet platformlarında kullanılır. ‘’pt-BR’’ gibi dil kodlarını üretir.

Ülke kodu ile birlikte ayraç olarak tire kullanan BCP biçemi

Gerekli olmadığında bile ülke kodunu içeren BCP biçemindeki dil kodu (tr-TR gibi).

Ayraç olarak tire kullanan BCP biçemi, eski dil kodları

Çince ve BCP biçeminde gösterim için eski kodları kullanır.

Ayraç olarak tire kullanan BCP biçemi, küçük harfli

BCP biçeminde gösterim. Tümü küçük harfle (örneğin tr-tr).

Apple App Store üst veri biçemi

Üst verileri Apple App Store üzerine yüklemeye uygun biçem.

Google Play üst veri biçemi

Üst verileri Google Play Store üzerine yüklemeye uygun biçem.

Android biçemi

Yalnızca Android uygulamalarında kullanıldığında, tr-TR gibi dil kodları üretir.

Linux biçemi

Linux tarafından kullanılan yerel ayarlar, Çince ve POSIX biçeminde gösterim için eski kodları kullanır.

Birleştirme biçemi#

Yukarı akış deposundaki güncellemelerin nasıl işleneceğini yapılandırabilirsiniz. Gerçek uygulama sürüm denetimi sistemine bağlıdır. Bilgi almak için: Sürüm denetimi bütünleştirmesi.

Yeniden yerleştirme

Weblate işlemelerini güncelleme sırasında yukarı akış deposunun üstüne yerleştirir. Böylece, ek birleştirme işlemeleri olmadan temiz geçmiş sağlanır.

Yeniden yerleştirme, karmaşık birleştirmeler olması durumunda sorun yaratabilir. Bu nedenle bunları etkinleştirmek isteyip istemediğinizi dikkatlice değerlendirin.

Özellikle farklı bir dala iterken Git (itme dayatması ile) seçeneğini Sürüm denetimi sistemi olarak seçerek itmeyi dayatmanız gerekebilir.

Birleştirme

Yukarı akış deposu değişiklikleri Weblate ile birleştirilir. Bu ayar yapılabildiğinde hızlı ileri atlamayı kullanır. Bu en güvenli yoldur ancak çok sayıda birleştirme işlemesi oluşturabilir.

Hızlı ilerleme olmadan birleştirme

Yukarı akış deposu değişiklikleri, her seferinde bir birleştirme işlemesi yapılarak Weblate üzerinde birleştirilir (hızlı ileri atlama yapılabilse bile). Her Weblate değişikliği, Weblate deposunda bir birleştirme işlemi olarak görünür.

Varsayılan değer DEFAULT_MERGE_STYLE ile değiştirilebilir.

İşleme, ekleme, silme, birleştirme, eklenti ve birleştirme istek iletileri#

Bir çeviri işlenirken kullanılacak ileti. Bilgi almak için: :ref:`markup’.

Varsayılan değerler şu seçeneklerle değiştirilebilir DEFAULT_ADD_MESSAGE, DEFAULT_ADDON_MESSAGE, DEFAULT_COMMIT_MESSAGE, DEFAULT_DELETE_MESSAGE, DEFAULT_MERGE_MESSAGE, DEFAULT_PULL_MESSAGE.

İşleme ile itme#

Gönderilen değişikliklerin otomatik olarak yukarı akış deposuna itilip itilmeyeceğini belirler. Etkinleştirildiğinde, Weblate değişiklikleri temel depoya kaydettikten sonra itme başlatılır (bilgi almak için: ref:lazy-commit). İtmeyi etkinleştirmek için Depo itme adresi ayarının da yapılandırılması gerekir.

İşlenecek değişikliklerin yaşı#

Değişikliklerin arka plan görevi ya da weblate weblate commit_pending yönetim komutu tarafından uygulanmasından önce ne kadar eski (saat cinsinden) olması gerektiğini ayarlar. Bir bileşendeki tüm değişiklikler, bu dönemden daha eski en az bir değişiklik olduğunda gönderilir.

Varsayılan değer COMMIT_PENDING_HOURS seçeneği ile değiştirilebilir.

İpucu

Bekleyen değişikliklerin işlenebileceği başka durumlar da vardır. Bilgi almak için: Lazy commit işlemeleri.

Hata durumunda kilitlenme#

İlk başarısız itme ya da yukarı akış deposuna aktarma ile çekme sırasında bileşeni (ve bağlantılı bileşenleri, bilgi almak için: İç Weblate adresleri) kilitler. Böylece, el ile çözümlenmesi gereken başka çakışmaların oluşması engellenir.

Herhangi bir depo hatası kalmadığında bileşenin kilidi kendiliğinden açılır.

Kaynak dil#

Kaynak dizgeler için kullanılacak dil. İngilizce dışında bir dilden çeviri yapıyorsanız bu seçeneği değiştirin.

İpucu

İki dilli dosyaları İngilizce dilinden çevirdiğiniz halde, İngilizce çeviride de düzeltmeler yapabilmek istiyorsanız, kaynak dil adı ile var olan çeviri arasında çakışmayı önlemek için, kaynak dil olarak İngilizce (Geliştirici) seçeneğini seçin.

Bu durumda, tek dilli çeviriler için ara çeviri kullanabilirsiniz. Bilgi almak için: Ara dil dosyası.

Dil süzgeci#

Dosya maskesine göre tarama yapılırken çeviriyi süzmek için kullanılacak kurallı ifade. Weblate tarafından yönetilen dillerin listesini sınırlamak için kullanılabilir.

Not

Dil kodlarını dosya adında göründükleri şekilde listelemeniz gerekir.

Bazı süzme örnekleri:

Süzgeç açıklaması

Kurallı ifade

Yalnızca seçilmiş diller

^(cs|de|es)$

Dilleri katmama

^(?!(it|fr)$).+$

Yalnızca iki harfli kodları süzme

^..$

Dil dosyası olmayanları katmama

^(?!(blank)$).+$

Tüm dosyaları katma (varsayılan)

^[^.]+$

Çeşitler kurallı ifadesi#

Bir dizenin değişkenlerini belirlemek için kullanılacak kurallı ifade. Bilgi almak için: :ref:`variants’.

Not

Alanların çoğu, proje sahipleri veya yöneticiler tarafından Weblate arayüzünden düzenlenebilir.

Öncelik#

Yüksek öncelikli bileşenler çevirmenlere öncelikli olarak sunulur.

4.15 sürümünde değişti: Bu seçenek artık eşleşen sözlük terimlerinin sıralamasını da etkiliyor.

Kısıtlı erişim#

Not

Bu özellik, Hosted Weblate üzerinde kullanılamaz.

Varsayılan olarak, bileşen, bileşende herhangi bir değişiklik yapamasa bile, projeye erişimi olan herkes tarafından görülebilir. Böylece proje içinde çeviri tutarlılığının korunması kolaylaşır.

Bir bileşene ya da bileşen listesi düzeyine erişimi kısıtlamak, proje düzeyi izinlerinden bağımsız olarak bir bileşene erişim iznini devralır. Erişim iznini açıkça vermeniz gerekir. Bunun için, yeni bir kullanıcı grubuna erişim izni verebilir ve kullanıcıları bu gruba yerleştirebilir ya da varsayılan özel ya da kişisel erişim denetimi gruplarını kullanabilirsiniz.

Varsayılan değer DEFAULT_RESTRICTED_COMPONENT seçeneği ile değiştirilebilir.

İpucu

Bu durum, proje yöneticileri için de geçerlidir. Lütfen durumu değiştirdikten sonra bileşene erişiminizi kaybetmeyeceğinizden emin olun.

Projelerde paylaşım#

Bileşenin görünür olacağı ek projeler seçebilirsiniz. Bu özellik birkaç projede kullandığınız paylaşılan kitaplıklar için kullanışlıdır.

Not

Bir bileşenin paylaşılması, erişim denetimini değiştirmez. Yalnızca diğer projelere göz atarken görünmesini sağlar. Kullanıcıların göz atmak ya da çevirmek için gerçek bileşene erişebilmesi gerekir.

Sözlük olarak kullanılsın#

4.5 sürümünde geldi.

Bu bileşenin sözlük olarak kullanılmasını sağlar. Nasıl listeleneceğini Sözlük rengi ile yapılandırabilirsiniz.

Sözlük, Projelerde paylaşım tarafından tanımlanan tüm projelerden erişilebilir olur.

Sözlüklere yeni sözcükler eklenmesine izin vermek için sözlüklerde Dizge yönetimi özelliğinin etkinleştirilmesi önerilir.

Ayrıca bakınız

Sözlük

Sözlük rengi#

Görüntülenen sözcüğün eşleştiği sözlüğün görüntülenme rengi.

Kalıp kodlaması#

Weblate, metin işlemenin gerekli olduğu çeşitli yerlerde basit markup dili kullanır. The Django template language üzerine kurulu olduğundan oldukça güçlüdür.

Şu anda şuralarda kullanılabilir:

Bileşen kalıplarında kullanılabilecek değişkenler şunlardır:

{{ language_code }}

Dil kodu

{{ language_name }}

Dil adı

{{ component_name }}

Bileşen adı

{{ component_slug }}

Bileşen kısaltması

{{ project_name }}

Proje adı

{{ project_slug }}

Proje kısaltması

{{ url }}

Çeviri adresi

{{ filename }}

Çeviri dosya adı

{{ stats }}

Çeviri istatistikleri, ek öznitelikleri vardır. Aşağıda örnekleri bulabilirsiniz.

{{ stats.all }}

Toplam dizge sayısı

{{ stats.fuzzy }}

Onaylanmayı bekleyen dizge sayısı

{{ stats.fuzzy_percent }}

Onaylanmayı bekleyen dizge yüzdesi

{{ stats.translated }}

Çevrilmiş dizge sayısı

{{ stats.translated_percent }}

Çevrilmiş dizge yüzdesi

{{ stats.allchecks }}

Denetim hatası olan dizgelerin sayısı

{{ stats.allchecks_percent }}

Denetim hatası olan dizgelerin yüzdesi

{{ author }}

Geçerli işleme sorumlusu. Yalnızca işleme kapsamında kullanılabilir.

{{ addon_name }}

Yalnızca eklenti işleme iletisinde kullanılabilen, işlenen geçerli eklentinin adı.

Depo tarayıcısında ya da düzenleyici kalıplarında kullanılabilecek değişkenler:

{{branch}}

geçerli dal

{{line}}

dosyadaki satır

{{filename}}

dosya adı, baştaki parçaları parentdir süzgecini kullanarak da çıkarabilirsini. Örneğin {{filename|parentdir}}

İpucu

Bazı yerlerde ek değişkenler kullanılabilir. Bilgi almak için: Bileşen keşfi.

Bunları süzgeçlerle birleştirebilirsiniz:

{{ component|title }}

Koşullar kullanabilirsiniz:

{% if stats.translated_percent > 80 %}Well translated!{% endif %}

Karakterleri değiştirmek için kullanılabilecek ek bir etiket vardır:

{% replace component "-" " " %}

Bunu süzgeçlerle birleştirebilirsiniz:

{% replace component|capfirst "-" " " %}

Dosya adlarıyla değiştirmek için de ek bir süzgeç vardır:

Directory of a file: {{ filename|dirname }}
File without extension: {{ filename|stripext }}
File in parent dir: {{ filename|parentdir }}
It can be used multiple times:  {{ filename|parentdir|parentdir }}

… ve diğer Django kalıbı özellikleri.

İçe aktarma hızı#

Sürüm denetimi sistemi deposunu almak ve çevirileri Weblate içine aktarmak, çevirilerinizin boyutuna bağlı olarak uzun bir süreç olabilir. İşte bazı ipuçları:

Yapılandırmayı iyileştirin#

Varsayılan yapılandırma, Weblate denemeleri yapmak ve hata ayıklamak için kullanışlıdır. Üretim kurulumu için bazı farklı ayarlamalar yapmanız gerekir. Birçoğunun başarım üzerinde oldukça büyük bir etkisi vardır. Bilgi almak için: Üretim kurulumu, özellikle:

Kaynak sınırlarını denetleyin#

Büyük çevirileri ya da depoları içe aktarıyorsanız, sunucunuzun kaynak sınırlamalarından etkilenebilirsiniz.

  • Boş bellek miktarını denetleyin, çeviri dosyalarının işletim sistemi tarafından ön belleğe alınması başarımı büyük ölçüde artırır.

  • İşlenecek çok sayıda dizge varsa disk işlemleri darboğaz oluşturabilir. Disk hem Weblate hem de veri tabanı tarafından dayatılır.

  • Ek işlemci çekirdekleri, arka plan görevlerinin başarımını artırmaya yardımcı olabilir (bilgi almak için Celery ile arka plan görevlerini kullanmak).

Gereksiz denetimleri devre dışı bırakın#

Bazı kalite denetimleri için oldukça fazla kaynak gerekebilir ve gerekmeyen denetimler yok sayılırsa içe aktarım sırasında size biraz zaman kazandırabilir. Yapılandırma ile ilgili bilgi almak için: CHECK_LIST.

Bileşenleri kendiliğinden oluşturmak#

Projenizde onlarca çeviri dosyası varsa (farklı gettext alanları veya Android uygulamalarının bölümleri gibi), bunları kendiliğinden içe aktarmak isteyebilirsiniz. Bunun için komut satırından weblate weblate import_project ya da weblate weblate import_json komutları kullanabilir ya da Bileşen keşfi eklentisini kurabilirsiniz.

Eklentiyi kullanmak için, önce bir çeviri dosyasına bir bileşen oluşturmanız (gelecekte yeniden adlandırılma ya da silinme olasılığı en düşük olanı seçin) ve eklentiyi bu bileşene kurmanız gerekir.

Yönetim komutlarını kullanmak için, tüm bileşenleri kapsayacak bir proje oluşturmanız ve ardından weblate weblate import_project ya da weblate weblate import_json komutunu yürütmeniz gerekir.

Dil tanımları#

Farklı çevirileri doğru bir şekilde sunmak için dil adı, metin yönü, çoğul tanımları ve dil kodu hakkındaki bilgiler gereklidir.

Hazır dil tanımları#

Weblate üzerinde yaklaşık 600 dil için tanımlar bulunur ve bu liste her sürümde büyümektedir. Weblate her yükseltildiğinde (daha özel olarak weblate weblate migrate komutu yürütüldüğünde, bilgi almak için: Genel yükseltme yönergeleri) diller veri tabanı, Weblate içinde bulunan tüm dil tanımlarını kapsayacak şekilde güncellenir.

Bu özellik UPDATE_LANGUAGES seçeneği ile devre dışı bırakılabilir. Ayrıca, weblate weblate setuplang seçeneğini kullanarak veri tabanının Weblate içindeki verilerle eşleşecek şekilde güncellenmesini dayatabilirsiniz.

Dil kodlarını işlemek#

Weblate, çevirileri işlerken, dil kodunu (genellikle ISO 639-1 olanı) Dosya maskesi üzerinden var olan herhangi bir dil nesnesiyle eşleştirmeye çalışır.

Dil kod adları ile bu eşleştirmeyi proje düzeyinde daha ayrıntılı ayarlayabilirsiniz.

Tam eşleşme bulunamazsa, var olan dillerden en iyi uyanı ile eşleştirilmeye çalışılır. Şu adımlar denenir:

  • Büyük/küçük harfe duyarlı olmadan bakılır.

  • Alt çizgiler ve kısa çizgiler normalleştirilir.

  • Yerleşik dil kod adlarına bakılır.

  • Dil adına göre bakılır.

  • Belirli bir dil için varsayılan ülke kodu yok sayılır. cs_CZ yerine cs seçilir.

Bunun da başarısız olması durumunda, varsayılan ayarlar kullanılarak (soldan sağa metin yönü, bir tane çoğul) yeni bir dil tanımı oluşturulur. xx_XX koduyla kendiliğinden oluşturulan dil xx_XX (oluşturuldu) olarak adlandırılır. Bunu daha sonra yönetici arayüzünde değiştirmek (bilgi almak için: Dil tanımlarını değiştirmek) ve sorun izleyiciye bildirmek (bilgi almak için: Weblate için katkıda bulunmak) isteyebilirsiniz. Böylece doğru tanımın gelecek Weblate sürümüne eklenmesini sağlayabilirsiniz.

İpucu

Dil olarak istenmeyen bir şey görürseniz, çevirileri işlerken bu türde bir dosyanın yok sayılması için Dil süzgeci seçeneğini ayarlamak isteyebilirsiniz.

Ayrıca bakınız

Dil kodu, Yeni çevirileri eklemek

Dil tanımlarını değiştirmek#

Dil tanımlarını diller arayüzünden değiştirebilirsiniz (/languages/ adresinden).

Düzenleme yaparken, tüm alanların doğru olduğundan emin olun (özellikle çoğullar ve metin yönü). Yoksa çevirmenler çevirileri olması gerektiği gibi düzenleyemez.

Belirsiz dil kodları ve makro diller#

Çoğu durumda, çeviride makro dil kodu kullanmak iyi bir fikir değildir. Tipik bir soruna örnek, gerçek değişkene bağlı olarak Arapça ya da Latin alfabesiyle yazılmış olabilecek Kürtçe olabilir. Weblate üzerinde doğru davranışı elde etmek için, yalnızca tek tek dil kodlarını kullanmanız ve makro dillerden kaçınmanız önerilir.

Dil tanımları#

Her dilde şu alanlar bulunur:

Dil kodu#

Dili tanımlayan kod. Weblate, ISO 639-1 ile tanımlanan iki harfli kodları kullanmayı yeğler. Ancak iki harfli kodu olmayan diller için ISO 639-2 ya da ISO 639-3 kodları da kullanılabilir. Ayrıca BCP 47 tarafından tanımlanmış genişletilmiş kodlar da destelenir.

Dil adı#

Dilin görüntülenecek adı. Weblate üzerinde bulunan dil adları da seçilmiş kullanıcı arayüzü diline göre yerelleştirilmiş olarak görüntülenir.

Metin yönü#

Dilin sağdan sola mı yoksa soldan sağa mı yazıldığını belirler. Bu özellik, dillerin çoğu için doğru şekilde kendiliğinden ayarlanır.

Çoğul sayısı#

Dilde kullanılan çoğul biçim sayısı.

Çoğul formülü#

Belirtilen bir sayı için hangi çoğul biçiminin kullanılacağını belirleyen gettext uyumlu çoğul formülü.

Konuşan sayısı#

Dünyada bu dili konuşan kişi sayısı.

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

Weblate ile bütünleştirmek 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. Bilgi almak için: Yeni dizgeler sunmak.

  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 internet 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 internet kancalarını destekler. Weblate kurulumunuza hedef olarak /hooks/bitbucket/ adresiyle depo itme işlemi sırasında tetiklenecek bir internet 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 internet 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/ internet 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/ internet 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 internet kancası işlemi için hedef olarak /hooks/gitea/ internet 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/ internet 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ı

İtme yok

Mercurial

empty

empty

Doğrudan itme

Mercurial

SSH adresi

empty

Ayrı bir dala it

Mercurial

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

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

Değişikliklerin daha sık ve yaşları denetlemeden yapılmasını istiyorsanız, işlemeyi yapacak bir zamanlanmış görev ayarlayabilirsiniz. Bu işlemi Django yönetim arayüzü içinde Zamanlanmış görevler bölümünden yapabilirsiniz. Önce istediğiniz Sıklık ögesini oluşturun (120 saniye gibi). Ardından yeni bir zamanlanmış görev ekleyin ve Görev olarak weblate.trans.tasks.commit_pending, Anahtar sözcük parametreleri ve istenilen sıklık olarak {“hours": 0} yazın.

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 ile ilgili 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 çeviriler, tüm bileşenlerde çeviriyi yapan geçerli kullanıcının hesabına yazılır.

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).

Çeviri lisanslarını belirlemek#

Çevirmenlerin katkıda bulunmak için kabul etmesi gereken lisans koşullarını belirleyebilirsiniz. Bu özellik, herkese açık olan çevirilerin ne amaçla kullanılabileceğini belirlemek özellikle önemlidir.

Bileşen yapılandırması lisans bilgilerini belirtmelisiniz. Yapılabiliyor olsa da, bir katılımcı lisans anlaşmasını zorunlu kılmaktan kaçının.

Lisans bilgileri#

Lisans bilgileri (lisans adı ve adresi) belirtildikten sonra, bu bilgiler ilgili Bileşen yapılandırması için çeviri bilgileri bölümünde görüntülenir.

Genellikle açık bir onay gerekmiyorsa lisans bilgilerini yayınlamak için en iyi yer burasıdır. Projeniz veya çeviriniz özgür değilse, büyük olasılıkla önceden izin almanız gerekir.

Katılımcı anlaşması#

Bir katılımcı lisans anlaşması belirtirseniz, çeviriye yalnızca bunu kabul eden kullanıcılar katkıda bulunabilir. Katılımcı anlaşması çeviriye erişirken açıkça görülebilir:

_images/contributor-agreement.png

Yazılan metinde paragraflar kullanılabilir ve dış bağlantılar eklenebilir. HTML kod imleri kullanılamaz.

Kullanıcı lisansları#

Herhangi bir kullanıcı, bulut sunucusunda herkese açık tüm projelerin tüm çeviri lisanslarını profilinde inceleyebilir:

_images/profile-licenses.png

Çeviri süreci#

Öneriler oylanabilsin#

Varsayılan olarak herkes, oturum açmış kullanıcılar tarafından değerlendirilebilecek öneriler ekleyebilir. Öneri oylama özelliği açılarak oturum açmış birkaç kullanıcının bir dizgeyi değerlendirmesi sağlanabilir. :ref:’component` için Öneriler oylanabilsin seçeneğini açmak ve önerilerin onaylanması için bir eşik belirlemek üzere Öneriler kendiliğinden onaylansın (bu, önerilmişse öneriyi yapan kullanıcının oyunu da içerir) seçeneği ayarlanabilir.

Not

Kendiliğinden onaylama ayarlandıktan sonra, normal kullanıcılar çevirileri doğrudan kaydetme ya da önerileri onaylama yetkisini kaybeder. Bu, Öneriler dayatıldığında dizge düzenlenebilsin <privileges> izni ile değiştirilebilir.

Bunları erişim denetimi ile şu kurulumlardan birinde birleştirebilirsiniz:

  • Kullanıcılar öneride bulunur ve öneriler için oy verir. Sınırlı bir grup neyin onaylanacağını denetler. - Oylamayı açın. - Kendiliğinden onaylamayı kapatın. - Kullanıcıların çevirileri kaydetmesine izin vermeyin.

  • Kullanıcılar, belirtilen sayıda onay verdikten sonra öneri kendiliğinden onaylanır. - Oylamayı açın. - Kendiliğinden onay için istenilen oy sayısını ayarlayın.

  • Öneriler için isteğe bağlı oylama. (İsteğe bağlı olarak, kullanıcılar bir çeviriden emin olmadıklarında birkaç öneride bulunabilir) - Yalnızca oylamayı açın.

Kaynak dizgeler ile ilgili ek bilgiler#

Dizgelere açıklamalar, dizge öncelikleri, denetim imleri ve görsel bağlam gibi ek bilgiler ekleyerek çeviri işlemini geliştirin. Bu bilgilerin bazıları çeviri dosyalarından çıkarılabilir ve bazıları ek dizge bilgileri düzenlenerek eklenebilir:

_images/source-review-edit.png

Bunlara doğrudan çeviri arayüzünden Ekran görüntüsü bağlamı ya da İmler yanındaki “Düzenle” simgesine tıklayarak erişebilirsiniz.

_images/source-information.png

Dizge önceliklendirme#

Öncelik imi kullanılarak daha yüksek önceliği olan dizgelerin daha önce çevrilmek üzere sunulması sağlanabilir.

İpucu

Bu seçenek, çeviri akışını belirli bir mantığa göre sıralamak için kullanılabilir.

Ayrıca bakınız

Kalite denetimleri

Çeviri imleri#

3.3 sürümünde değişti: Daha önce Kalite denetimi imleri olarak adlandırılan bu im, artık yalnızca denetimleri yapılandırmıyor.

Kalite denetimlerinin ve diğer Weblate davranışlarının özelleştirilmesi. Bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek.

Dizge imleri Bileşen yapılandırması içindeki Çeviri imleri ögesinden ve çeviri dosyasındaki imlerden alınır (bilgi almak için: Desteklenen dosya biçimleri).

Açıklama#

4.1 sürümünde değişti: Önceki sürümlerde buna Ek bağlam deniyordu.

4.18 sürümünde değişti: Açıklamayı bir dosyayla eşitleme özelliği eklendi.

Çevirinin kapsamını veya kullanımını netleştirmek için açıklamayı kullanın. Bağlantıları ve diğer kod imlerini eklemek için Markdown kullanabilirsiniz.

Bazı dosya biçimleri dosya içine açıklama eklenmesini destekler. Bilgi almak için: Açıklama.

İpucu

Weblate, bazı biçimler için çeviri dosyasında bulunan açıklamayı da görüntüleyebilir. Bilgi almak için: Kaynak dizge açıklaması.

Dizgeler için görsel bağlam#

Uygulamanızda kullanılan belirli bir kaynak dizgeyi gösteren bir ekran görüntüsü yükleyebilirsiniz. Bu seçenek, çevirmenlerin dizgenin nerede kullanıldığını ve nasıl çevrilmesi gerektiğini anlamalarına yardımcı olur.

Yüklenen ekran görüntüsü, çeviri bağlamı yan çubuğunda görüntülenir:

_images/screenshot-context.png

Kaynak dizgeler ile ilgili ek bilgiler ögesine ek olarak, ekran görüntülerinin Araçlar menüsü altında ayrı bir yönetim bölümü vardır. Ekran görüntülerini yükleyebilir, bunları el ile kaynak dizgelerle ilişkilendirebilir ya da optik karakter tanımadan yardım alabilirsiniz.

Bir ekran görüntüsü yüklendikten sonra, bu bölümden yönetimi ve kaynak dizge ile ilişkilendirilmesi yapılabilir:

_images/screenshot-ocr.png

Doğrudan sürüm denetimi sistemi (VCS) deponuzdan ekran görüntüleri ekleyebilir veya güncelleyebilirsiniz.

Bu özelliği etkinleştirmek için, bir bileşen oluştururken depodaki güncellemeler için izlenecek bir ekran görüntüsü dosya maskesi ayarlayabilir veya el ile yükleyerek ekran görüntüleri ekleyebilir ya da güncelleyebilirsiniz.

Depo güncellendiğinde, sistem değişiklikleri otomatik olarak tarar. Depodaki var olan ekran görüntüleri güncellenir ve belirtilen ekran görüntüsü dosya maskesiyle eşleşen yeni ekran görüntüleri bileşene eklenir.

_images/screenshot-filemask-repository-filename.png

Denetimler ve düzeltmeler#

Özel kendiliğinden düzeltmeler#

Standart olanların yanında özel kendiliğinden düzeltmeleri de uygulayabilir ve bunları :setting:`AUTOFIX_LIST’ içine ekleyebilirsiniz.

Kendiliğinden düzeltmeler güçlüdür, ancak bozulmaya da neden olabilir; Bunları yazarken dikkatli olun.

Örneğin, şu kendiliğinden düzeltme, bir çevirideki foo` dizgesinin her kopyasını ``bar ile değiştirir:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

from django.utils.translation import gettext_lazy

from weblate.trans.autofixes.base import AutoFix


class ReplaceFooWithBar(AutoFix):
    """Replace foo with bar."""

    name = gettext_lazy("Foobar")

    def fix_single_target(self, target, source, unit):
        if "foo" in target:
            return target.replace("foo", "bar"), True
        return target, False

Özel denetimler kurmak için, AUTOFIX_LIST içinde Python sınıfının tam yolunu belirtin. Bilgi almak için: :ref:`custom-check-modules’.

Parametreleri kullanarak davranışı özelleştirmek#

İmleri kullanarak Weblate davranışında ince ayarlar yapabilirsiniz. İmler çevirmenlere görsel bildirim sağlayarak çeviriyi iyileştirmelerine yardımcı olur. Bu işlem kaynak dizge düzeyinde (bilgi almak için: Kaynak dizgeler ile ilgili ek bilgiler) ya da Bileşen yapılandırması (Çeviri imleri) içinde yapılabilir. Bazı dosya biçimleri, imlerin doğrudan biçimde belirtilmesini de sağlar (bilgi almak için: Desteklenen dosya biçimleri.

İmler virgül ile ayrılır. Parametreleri varsa iki nokta üst üste ile ayrılır. Dizgeye boşluk veya özel karakterler eklemek için tırnak işaretleri kullanabilirsiniz. Örneğin:

placeholders:"special:value":"other value", regex:.*

Hem tek hem de çift tırnak işaretleri kabul edilir. Ters bölü kullanılarak özel karakterlerden kaçılır:

placeholders:"quoted \"string\"":'single \'quoted\''
placeholders:r"^#*"

Çevirmenlerin bir Markdown belgesinin başlığını değiştirmediğini doğrulamak için: ‘### Index’ dizgesi ‘# Indice’ olarak çevrilirse denetim başarısız olur

placeholders:r"\]\([^h].*?\)"

İç bağlantıların çevrilmediğinden emin olmak için ([test](../checks), [test](../chequeos) olarak çevrilmez.

Kullanılabilecek imlerin listesi şu şekildedir:

rst-text

Bir metnin reStructuredText belgesi olarak işlenmesini sağlar. Çeviri değiştirilmemiş parametresini etkiler.

dos-eol

Unix satır sonu karakterleri yerine DOS karakterlerinin kullanılmasını sağlar (\n yerine \r\n).

read-only

Dizgenin salt okunur olduğunu ve Weblate üzerinde düzenlenemeyeceğini belirler. Bilgi almak için: Salt okunur dizgeler.

terminology

Sözlük içinde kullanılır. Dizgeyi tüm sözlük dillerine kopyalar. Böylece dizge tüm çevirilerde tutarlı bir şekilde kullanılabilir. Ayrıca, örneğin ürün adlarında read-only ile birlikte kullanışlıdır.

priority:N

Dizgenin önceliğini belirler. Yüksek öncelikli dizgeler daha çevrilir. Varsayılan öncelik değeri: 100. Bir dizgenin önceliği ne kadar yüksekse, o kadar önce çevrilmek üzere sunulur.

max-length:N

Bir dizgenin en fazla uzunluğunu N karakter olarak sınırlandırır. Bilgi almak için: :ref:`check-max-length.

xml-text

Metnin XML belgesi olarak işlenmesini sağlar. XML söz dizimi ve XML kodlaması parametrelerini etkiler.

font-family:NAME

Görselleştirme denetimleri için yazı tipi ailesini belirler. Bilgi almak için: Yazı tiplerini yönetmek.

font-weight:WEIGHT

Görselleştirme denetimleri için yazı koyuluğunu belirler. Bilgi almak için: Yazı tiplerini yönetmek.

font-size:SIZE

Görselleştirme denetimleri için yazı boyutunu belirler. Bilgi almak için: Yazı tiplerini yönetmek.

font-spacing:SPACING

Görselleştirme denetimleri için harf aralığını belirler. Bilgi almak için: :ref:`fonts’.

icu-flags:FLAGS

ICU MessageFormat kalite denetiminin davranışını özelleştirecek imleri belirler.

icu-tag-prefix:PREFIX

check-java-messageformat kalite denetimi için XML kod imlerinin gerekli olan ön ekini belirler.

placeholders:NAME:NAME2:...

Çeviride beklenen yer belirtici dizgeleri belirler. Bilgi almak için: :ref:’check-placeholders`.

replacements:FROM:TO:FROM2:TO2...

Ortaya çıkan metin parametreleri denetlenirken yapılacak değişiklikleri belirler (Çevirinin en fazla uzunluğu ya da Çevirinin en fazla uzunluğu gibi). Tipik kullanım örneği, metnin uzun değerlerle bile sığdığından emin olmak için yerleştirilebilir ögelerin genişletilmesidir. Örnek: replacements:%s:”Ali Kaya”.

variants:SOURCE

Bu dizgenin, eşleşen kaynağın bir dizge çeşidi olarak imlenmesini sağlar. Bilgi almak için: :ref:’variants`.

regex:REGEX

Çevirilerin eşleştirileceği kurallı ifadeyi belirtir. Bilgi almak için: Kurallı ifade.

forbidden

Bir sözlükte yasaklanmış bir çeviriyi belirtir. Bilgi almak için: Yasaklı çeviriler.

strict-same

“Değiştirilmemiş çeviri” içinde iç kara listedeki sözcüklerin kullanmasını engeller. Bilgi almak için: Çeviri değiştirilmemiş.

check-glossary

Sözlük ile uyumlu değil kalite denetimini etkinleştirir.

angularjs-format

AngularJS değer ekleme dizgesi kalite denetimini etkinleştirir.

c-format

C biçimi kalite denetimini etkinleştirir.

c-sharp-format

C# biçimi kalite denetimini etkinleştirir.

es-format

ECMAScript kalıbı sabitleri kalite denetimini etkinleştirir.

i18next-interpolation

i18next değer eklemesi kalite denetimini etkinleştirir.

icu-message-format

ICU MessageFormat kalite denetimini etkinleştirir.

java-printf-format

Java biçimi kalite denetimini etkinleştirir.

java-format

Java MessageFormat kalite denetimini etkinleştirir.

javascript-format

JavaScript biçimi kalite denetimini etkinleştirir.

lua-format

Lua biçimi kalite denetimini etkinleştirir.

object-pascal-format

Object Pascal biçimi kalite denetimini etkinleştirir.

percent-placeholders

Yüzde yer belirticileri kalite denetimini etkinleştirir.

perl-format

Perl biçimi kalite denetimini etkinleştirir.

php-format

PHP biçimi kalite denetimini etkinleştirir.

python-brace-format

Python parantez biçimi kalite denetimini etkinleştirir.

python-format

Python biçimi kalite denetimini etkinleştirir.

qt-format

Qt biçimi kalite denetimini etkinleştirir.

qt-plural-format

Qt çoğul biçimi kalite denetimini etkinleştirir.

ruby-format

Ruby biçimi kalite denetimini etkinleştirir.

scheme-format

Şema biçimi kalite denetimini etkinleştirir.

vue-format

Vue I18n biçimlendirmesi kalite denetimini etkinleştirir.

md-text

Metnin Markdown belgesi olarak işlenmesini sağlar. Çeviri metni alanında markdown sözdizimi vurgulanır. Markdown bağlantıları, Markdown başvuruları ve Markdown söz dizimi kalite denetimlerini etkinleştirir.

case-insensitive

Denetim davranışını büyük/küçük harfe duyarlı olmayacak şekilde ayarlar. Şu anda yalnızca Yer belirticiler kalite denetimini etkiler.

safe-html

Güvenli olmayan HTML kalite denetimini etkinleştirir.

url

Dizge yalnızca bir adresten oluşmalıdır. Adres kalite denetimini etkinleştirin.

ignore-all-checks

Tüm kalite denetimlerini yok sayar.

ignore-bbcode

BBCode kodlaması kalite denetimini atlar.

ignore-duplicate

Art arda yinelenen sözcükler var kalite denetimini atlar.

ignore-check-glossary

Sözlük ile uyumlu değil kalite denetimini atlar.

ignore-double-space

Çift boşluk kalite denetimini atlar.

ignore-angularjs-format

AngularJS değer ekleme dizgesi kalite denetimini atlar.

ignore-c-format

C biçimi kalite denetimini atlar.

ignore-c-sharp-format

C# biçimi kalite denetimini atlar.

ignore-es-format

ECMAScript kalıbı sabitleri kalite denetimini atlar.

ignore-i18next-interpolation

check-i18next-format kalite denetimini atlar.

ignore-icu-message-format

ICU MessageFormat kalite denetimini atlar.

ignore-java-printf-format

Java biçimi kalite denetimini atlar.

ignore-java-format

Java MessageFormat kalite denetimini atlar.

ignore-javascript-format

JavaScript biçimi kalite denetimini atlar.

ignore-lua-format

Lua biçimi kalite denetimini atlar.

ignore-object-pascal-format

Object Pascal biçimi kalite denetimini atlar.

ignore-percent-placeholders

Yüzde yer belirticileri kalite denetimini atlar.

ignore-perl-format

Perl biçimi kalite denetimini atlar.

ignore-php-format

PHP biçimi kalite denetimini atlar.

ignore-python-brace-format

Python parantez biçimi kalite denetimini atlar.

ignore-python-format

Python biçimi kalite denetimini atlar.

ignore-qt-format

Qt biçimi kalite denetimini atlar.

ignore-qt-plural-format

Qt çoğul biçimi kalite denetimini atlar.

ignore-ruby-format

Ruby biçimi kalite denetimini atlar.

ignore-scheme-format

Şema biçimi kalite denetimini atlar.

ignore-vue-format

Vue I18n biçimlendirmesi kalite denetimini atlar.

ignore-translated

Çevrilmiş kalite denetimini atlar.

ignore-inconsistent

Tutarsız kalite denetimini atlar.

ignore-kashida

Kashida harfi kullanılmış kalite denetimini atlar.

ignore-md-link

Markdown bağlantıları kalite denetimini atlar.

ignore-md-reflink

Markdown başvuruları kalite denetimini atlar.

ignore-md-syntax

Markdown söz dizimi kalite denetimini atlar.

ignore-max-length

Çevirinin en fazla uzunluğu kalite denetimini atlar.

ignore-max-size

Çevirinin en fazla uzunluğu kalite denetimini atlar.

ignore-escaped-newline

\n aynı değil kalite denetimini atlar.

ignore-end-colon

İki nokta üst üste farklı kalite denetimini atlar.

ignore-end-ellipsis

Üç nokta karakteri farklı kalite denetimini atlar.

ignore-end-exclamation

Ünlem işareti farklı kalite denetimini atlar.

ignore-end-stop

Nokta işareti farklı kalite denetimini atlar.

ignore-end-question

Soru işareti farklı kalite denetimini atlar.

ignore-end-semicolon

Noktalı virgül farklı kalite denetimini atlar.

ignore-newline-count

Satır sonları farklı kalite denetimini atlar.

ignore-plurals

Çoğul biçim eksik kalite denetimini atlar.

ignore-placeholders

Yer belirticiler kalite denetimini atlar.

ignore-punctuation-spacing

Noktalama aralığı kalite denetimini atlar.

ignore-regex

Kurallı ifade kalite denetimini atlar.

ignore-reused

Yeniden kullanılan çeviri kalite denetimini atlar.

ignore-same-plurals

Tekil ile çoğul biçim aynı kalite denetimini atlar.

ignore-begin-newline

Başta yeni satır var kalite denetimini atlar.

ignore-begin-space

Baştaki boşluk kalite denetimini atlar.

ignore-end-newline

Sondaki yeni satır kalite denetimini atlar.

ignore-end-space

Sondaki boşluk kalite denetimini atlar.

ignore-same

Çeviri değiştirilmemiş kalite denetimini atlar.

ignore-safe-html

Güvenli olmayan HTML kalite denetimini atlar.

ignore-url

Adres kalite denetimini atlar.

ignore-xml-tags

XML kodlaması kalite denetimini atlar.

ignore-xml-invalid

XML söz dizimi kalite denetimini atlar.

ignore-zero-width-space

Sıfır genişlikli boşluk kalite denetimini atlar.

ignore-ellipsis

Üç nokta kalite denetimini atlar.

ignore-icu-message-format-syntax

ICU MessageFormat söz dizimi kalite denetimini atlar.

ignore-long-untranslated

Uzun süredir çevrilmemiş kalite denetimini atlar.

ignore-multiple-failures

Birden çok denetim hatası kalite denetimini atlar.

ignore-unnamed-format

Birden çok değişken adlandırılmamış kalite denetimini atlar.

ignore-optional-plural

Çoğul değil kalite denetimini atlar.

Not

Kural genellikle, belirteci kullanılarak herhangi bir denetim için ìgnore-*` olarak adlandırılır. Böylece bunu kendi özel denetimleriniz için bile kullanabilirsiniz.

Bu imler hem Bileşen yapılandırması ayarlarında, her kaynak dizge ayarı için hem de çeviri dosyasının kendisinde (GNU gettext gibi) anlaşılır.

Denetimleri dayatmak#

3.11 sürümünde geldi.

Bileşen yapılandırması içinde Zorunlu denetimler ayarını yaparak yok sayılmayacak denetimlerin listesini yapılandırabilirsiniz. Listelenen denetimler kullanıcı arayüzünden kapatılamaz ve bu denetimde hatalı bulunan dizgeler Düzenlenmesi gerekli olarak imlenir (bilgi almak için: :ref:`states’).

Not

Denetim dayatması kendiliğinden açılmaz. Denetim, dizge ya da bileşen imlerine karşılık gelen im eklenerek açılabilir.

Yazı tiplerini yönetmek#

3.7 sürümünde geldi.

İpucu

Weblate üzerine yüklenen yazı tipleri yalnızca Çevirinin en fazla uzunluğu denetimi için kullanılır. Weblate kullanıcı arayüzünde bir etkisi yoktur.

İşlenen metnin boyutlarını hesaplamak için kullanılan Çevirinin en fazla uzunluğu denetiminin yazı tipinin Weblate üzerine yüklenmesi ve bir çeviri imi kullanılarak seçilmesi gerekir (bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek).

Çeviri projenizin Yönetim menüsü altındaki Yazı tipleri içindeki Weblate yazı tipi yönetimi aracı, yazı tiplerinin yüklenip yönetilebileceği bir arayüz sağlar. TrueType veya OpenType yazı tipleri yüklenebilir, yazı tipi grupları ayarlanabilir ve bunlar denetimde kullanılabilir.

Yazı tipi grupları, genellikle Latince olmayan farklı diller için gerekli olan farklı yazı tiplerini tanımlanmanızı sağlar:

_images/font-group-edit.png

Yazı tipi grupları, boşluk veya özel karakterler içeremeyen bir ad ile tanımlanır. Böylece denetim tanımında kolayca kullanılabilir:

_images/font-group-list.png

Yazı tipi ailesi ve biçemi, yüklendikten sonra kendiliğinden tanınır:

_images/font-edit.png

Weblate üzerine çeşitli yazı tipleri yükleyebilirsiniz:

_images/font-list.png

Dizge uzunluğunu denetleme üzere yazı tiplerini kullanmak için, uygun imleri aktarın (bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek). Büyük olasılıkla şunlara gerek duyacaksınız:

max-size:500

En fazla genişliği piksel olarak belirler.

font-family:ubuntu

Belirteci ile kullanılacak yazı tipi grubunu tanımlar.

font-size:22

Yazı boyutunu piksel olarak tanımlar.

Kendi denetimlerinizi oluşturmak#

Çok çeşitli kalite denetimleri hazır olarak bulunur (bilgi almak için: Kalite denetimleri). Ancak denetlemek istediğiniz her şey kapsanmamış olabilir. Yapılabilecek denetimlerin listesi CHECK_LIST kullanılarak ayarlanabilir. Ayrıca kendi özel denetimlerinizi de ekleyebilirsiniz.

  1. weblate.checks.Check alt sınıfı

  2. Birkaç öznitelik ayarlayın.

  3. check (kodunuzdaki çoğulları işlemek istiyorsanız) ya da check_single yöntemini uygulayın (sizin için hangisi işe yarıyorsa).

Bazı örnekler:

Özel denetimler kurmak için, CHECK_LIST içinde Python sınıfının tam yolunu belirtin. Bilgi almak için: :ref:`custom-check-modules’.

“foo” içermeyen çeviri metinlerini denetlemek#

Çeviride “foo” dizgesinin eksik olup olmadığına bakan basit bir denetim.

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Simple quality check example."""

from django.utils.translation import gettext_lazy

from weblate.checks.base import TargetCheck


class FooCheck(TargetCheck):
    # Used as identifier for check, should be unique
    # Has to be shorter than 50 characters
    check_id = "foo"

    # Short name used to display failing check
    name = gettext_lazy("Foo check")

    # Description for failing check
    description = gettext_lazy("Your translation is foo")

    # Real check code
    def check_single(self, source, target, unit):
        return "foo" in target

Çekçe çeviri metinlerinde çoğulların farklı olup olmadığı denetlemek#

Çekçe iki çoğul biçimin aynı olmadığını doğrulamak için dil bilgilerini kullanan denetim.

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Quality check example for Czech plurals."""

from django.utils.translation import gettext_lazy

from weblate.checks.base import TargetCheck


class PluralCzechCheck(TargetCheck):
    # Used as identifier for check, should be unique
    # Has to be shorter than 50 characters
    check_id = "foo"

    # Short name used to display failing check
    name = gettext_lazy("Foo check")

    # Description for failing check
    description = gettext_lazy("Your translation is foo")

    # Real check code
    def check_target_unit(self, sources, targets, unit):
        if self.is_language(unit, ("cs",)):
            return targets[1] == targets[2]
        return False

    def check_single(self, source, target, unit):
        """We don't check target strings here."""
        return False

Kendiliğinden önerileri yapılandırmak#

4.13 sürümünde değişti: Weblate 4.13 sürümünden önce, hizmetler Yapılandırma içinden yapılandırılıyordu.

Çeşitli makine çevirisi ve çeviri belleği hizmetlerinin desteği içeriden sağlanır. Her hizmet, yönetici tarafından tüm site için ya da projeye özel olarak açılabilir:

_images/project-machinery.png

Not

Hizmetlerin kendi kullanım koşulları olduğundan, bunları istediğiniz gibi kullanmanıza izin verildiğinden emin olun.

Hizmetler, Bileşen yapılandırması konumunda yapılandırılmış kaynak dilden çeviri yapar. Bilgi almak için: :ref:`component-source_language’.

Ayrıca bakınız

Kendiliğinden öneriler

Amagama#

Hizmet kimliği:

amagama

Yapılandırma:

Bu eklentinin yapılandırması yok.

Virtaal geliştiricileri tarafından işletilen özel tmserver kurulumu.

Apertium APy#

Hizmet kimliği:

apertium-apy

Yapılandırma:

url

API adresi

Sınırlı bir dil kümesine çeviri sağlayan bir özgür yazılım makine çevirisi platformu.

Apertium kullanmak için kendi Apertium-APy sunucunuzu işletmeniz önerilir.

AWS#

3.1 sürümünde geldi.

Hizmet kimliği:

aws

Yapılandırma:

key

Erişim anahtarı kimliği

secret

API gizli anahtarı

region

Bölge adı

Amazon Translate, desteklenen çok sayıda dilde İngilizce’ye ve İngilizce’den metin çevirme için kullanılabilecek bir nöral makine çevirisi hizmetidir.

Ayrıca bakınız

Amazon Translate belgeleri

Baidu#

3.2 sürümünde geldi.

Hizmet kimliği:

baidu

Yapılandırma:

key

İstemci kimliği

secret

İstemci parolası

Baidu tarafından sunulan makine çevirisi hizmeti.

Bu hizmet bir API kullanır ve bunu kullanmak için Baidu üzerinden bir kimlik ve API anahtarı edinmeniz gerekir.

Ayrıca bakınız

Baidu Translate API

DeepL#

Hizmet kimliği:

deepl

Yapılandırma:

url

API adresi

key

API anahtarı

DeepL, birkaç dil için iyi makine çevirisi sağlayan ücretli bir hizmettir. DeepL API aboneliği satın almanız gerekir veya eski DeepL Pro (klasik) tarifesini kullanabilirsiniz.

DeepL hizmetiyle kullanılacak API adresi. Bu bilgi yazıldığında, API v1 yanında ücretsiz ve ücretli API v2 sürümleri bulunuyordu.

https://api.deepl.com/v2/ (Weblate içinde varsayılan)

Ücretli olarak API kullanımı içindir ve abonelik yöntemi uygulanır.

https://api-free.deepl.com/v2/

Ücretsiz olarak API kullanımı içindir ve abonelik yöntemi uygulanır.

https://api.deepl.com/v1/

CAT araçları içindir ve kullanıcı başına abonelik yöntemi uygulanır.

Weblate daha önce, DeepL tarafından bir CAT aracı olarak sınıflandırılmıştı. Bu nedenle API v1 kullanması gerekiyordu. Ancak şimdi API v2 kullanması gerekiyor. Bu nedenle, v2 varsayılan değerdir ve var olan bir CAT aboneliğiniz varsa ve Weblate tarafından bunun kullanılmasını istiyorsanız bu değeri v1 olarak değiştirebilirsiniz.

Hangisini kullanacağınızı öğrenmenin en kolay yolu, tarayıcınızda aşağıdakine benzer bir adres açmaktır:

https://api.deepl.com/v2/translate?text=Hello&target_lang=TR&auth_key=XXX

XXX yerine kimlik doğrulama anahtarınızı (auth_key) yazın. “Bonjour” içeren bir JSON nesnesi alırsanız adresiniz doğrudur. Yoksa, diğer üçünü deneyin.

Weblate, DeepL resmilik düzeyini destekler ve dile göre eşleşen birini seçer (örneğin, “de@formal” ve “de@informal” seçenekleri vardır).

Glosbe#

Hizmet kimliği:

glosbe

Yapılandırma:

Bu eklentinin yapılandırması yok.

Hemen hemen yaşayan her dil için ücretsiz sözlük ve çeviri belleği.

API kullanımı ücretsizdir. Ancak çevirilerin kullanımı, kullanılan veri kaynağının lisansına bağlıdır. Kötüye kullanımı önlemek için bir IP adresinden belirli bir süre içinde yapılabilecek çağrılar sınırlıdır.

Ayrıca bakınız

Glosbe sitesi

Google Translate#

Hizmet kimliği:

google-translate

Yapılandırma:

key

API anahtarı

Google tarafından sunulan makine çevirisi hizmeti.

Bu hizmet, Google Çeviri API uygulamasını kullanır. Bir API anahtarı edinmeli ve Google API konsolundan faturalamayı açmalısınız.

Ayrıca bakınız

Google translate belgeleri

Google Translate API v3#

Hizmet kimliği:

google-translate-api-v3

Yapılandırma:

credentials

Google Çeviri hizmeti hesap bilgileri

project

Google Çeviri projesi

location

Google Çeviri konumu

Google Cloud hizmetleri tarafından sunulan makine çevirisi hizmeti.

LibreTranslate#

4.7.1 sürümünde geldi.

Hizmet kimliği:

libretranslate

Yapılandırma:

url

API adresi

key

API anahtarı

LibreTranslate, ücretsiz ve açık kaynaklı bir makine çevirisi hizmetidir. Herkese açık kopya için bir API anahtarı gerekir. Ancak LibreTranslate hizmetini kendiniz barındırabilirsiniz ve API uygulamasını ücretsiz olarak kullanabileceğini birkaç yansı bulunur.

https://libretranslate.com/ (resmi herkese açık kopya)

Web sitesi dışında kullanmak için bir API anahtarı gerekir.

Microsoft Terminology#

Hizmet kimliği:

microsoft-terminology

Yapılandırma:

Bu eklentinin yapılandırması yok.

Microsoft Terminoloji hizmeti API uygulaması, Dil portalı üzerinde bulunan terminoloji, tanım ve kullanıcı arayüzü (UI) dizgelerine bir internet hizmeti üzerinden programlama ile erişmenizi sağlar.

Microsoft Translator#

Hizmet kimliği:

microsoft-translator

Yapılandırma:

key

API anahtarı

base_url

Uygulama temel adresi

Kullanılabilecek seçenekler:

api.cognitive.microsofttranslator.com – Küresel (bölgesiz)

api-apc.cognitive.microsofttranslator.com – Asya Pasifik

api-eur.cognitive.microsofttranslator.com – Avrupa

api-nam.cognitive.microsofttranslator.com – Kuzey Amerika

api.translator.azure.cn – Çin

api.cognitive.microsofttranslator.us – Azure ABD hükümeti bulutu

endpoint_url

Kimlik doğrulama hizmeti adresi

Bölgesel ya da çoklu hizmet, aşağıdaki bölge alanı kullanılarak belirtilebilir.

Kullanılabilecek seçenekler:

api.cognitive.microsoft.com – Genel

api.cognitive.azure.cn – Çin

api.cognitive.microsoft.us – Azure ABD hükümeti bulutu

region

Kimlik doğrulama hizmeti bölgesi

Microsoft tarafından Azure portalında Cognitive Services altında sunulan makine çevirisi hizmeti.

Weblate, Translator API V3 kullanır.

Translator Text API V2#

Translator API V2 ile kullandığınız anahtar, API 3 ile de kullanılabilir.

Translator Text API V3#

Azure portalında bir hesap açmanız ve oradan alacağınız anahtarı kullanmanız gerekir. Yeni Azure anahtarlarıyla, region seçeneği için hizmetinizin yerel ayarını belirtmeniz gerekir.

İpucu

Azure Çin için lütfen Azure Portal üzerindeki uç noktanızı kullanın.

ModernMT#

4.2 sürümünde geldi.

Hizmet kimliği:

modernmt

Yapılandırma:

url

API adresi

key

API anahtarı

Ayrıca bakınız

ModernMT API,

MyMemory#

Hizmet kimliği:

mymemory

Yapılandırma:

email

İletişim e-posta adresi

username

Kullanıcı adı

key

API anahtarı

Makine çevirisi ile çok büyük bir çeviri belleği.

Ücretsiz, anonim kullanım şu anda günde 100 istek ya da email içine bir iletişim e-posta adresi yazdığınızda günde 1.000 istek ile sınırlıdır. Ayrıca onlara yazarak daha fazlasını da isteyebilirsiniz.

Ayrıca bakınız

MyMemory sitesi

Netease Sight#

3.3 sürümünde geldi.

Hizmet kimliği:

netease-sight

Yapılandırma:

key

İstemci kimliği

secret

İstemci parolası

NetEase tarafından sunulan makine çevirisi hizmeti.

Bu hizmet bir API kullanır ve bir NetEase anahtarı ile parolası edinmeniz gerekir.

SAP Translation Hub#

Hizmet kimliği:

sap-translation-hub

Yapılandırma:

url

API adresi

key

API anahtarı

username

SAP kullanıcı adı

password

SAP parolası

enable_mt

Makine çevirisi kullanılsın

domain

Çeviri etki alanı

Bir çeviri etki alanının kimliği. Örnek: BC. Bir etki alanı belirtmezseniz, yöntem kullanılabilir tüm etki alanlarındaki çevirileri arar.

SAP tarafından sunulan makine çevirisi hizmeti.

Bu hizmeti kullanmak için bir SAP hesabınızın (ve SAP Cloud Platform üzerinde etkinleştirilmiş SAP Translation Hub) olması gerekir.

Veri tabanı terimine ek olarak, makine çevirisi hizmetlerinin de kullanılıp kullanılmayacağını yapılandırabilirsiniz.

Not

Sandbox API erişimi için url ve key değerlerini ayarlamalısınız.

Üretken API erişimi için url, username ve password seçeneklerini ayarlamalısınız.

tmserver#

Hizmet kimliği:

tmserver

Yapılandırma:

url

API adresi

Translate-toolkit ile birlikte geleni kullanarak kendi çeviri belleği sunucunuzu işletebilir ve Weblate ile konuşmasına izin verebilirsiniz. Ayrıca, geliştirilmiş bir tmserver sürümü olan bir amaGama sunucusu ile de kullanabilirsiniz.

  1. Önce çeviri belleği içine bazı verileri aktarmak isteyeceksiniz:

build_tmdb -d /var/lib/tm/db -s en -t cs locale/cs/LC_MESSAGES/django.po
build_tmdb -d /var/lib/tm/db -s en -t de locale/de/LC_MESSAGES/django.po
build_tmdb -d /var/lib/tm/db -s en -t fr locale/fr/LC_MESSAGES/django.po
  1. İsteklerinizi dinlemek üzere tmserver uygulamasını başlatın:

tmserver -d /var/lib/tm/db
  1. İletişim kurmak için gereken Weblate yapılandırmasını ayarlayın. Varsayılan adres: http://localhost:8888/tmserver/.

IBM Watson Language Translator#

Hizmet kimliği:

ibm

Yapılandırma:

url

API adresi

key

API anahtarı

IBM Watson Language Translator, metni bir dilden diğerine çevirir. Hizmet, etki alanına özgü birden çok model sunar.

Weblate#

Hizmet kimliği:

weblate

Yapılandırma:

Bu eklentinin yapılandırması yok.

Weblate makine çevirisi hizmeti, Weblate içinde zaten çevrilmiş olan dizgeler ile ilgili çevirileri sunabilir. Var olan dizgelerdeki tam eşleşmeleri arar.

Weblate Çeviri Belleği#

Hizmet kimliği:

weblate-translation-memory

Yapılandırma:

Bu eklentinin yapılandırması yok.

Makine çevirisi hizmeti olarak Çeviri belleği kullanır. Geçmişte çevrilmiş (ya da çeviri belleğine yüklenmiş) herhangi bir dizge bu şekilde çevrilebilir.

Yandex#

Hizmet kimliği:

yandex

Yapılandırma:

key

API anahtarı

Yandex tarafından sunulan makine çevirisi hizmeti.

Bu hizmet bir Translation API uygulaması kullanır ve Yandex üzerinden bir API anahtarı edinmeniz gerekir.

Youdao Zhiyun#

3.2 sürümünde geldi.

Hizmet kimliği:

youdao-zhiyun

Yapılandırma:

key

İstemci kimliği

secret

İstemci parolası

Youdao tarafından sunulan makine çevirisi hizmeti.

Bu hizmet bir API uygulaması kullanır ve Youdao üzerinden bir kimlik ve API anahtarı edinmeniz gerekir.

Özel makine çevirisi#

Birkaç satır Python kodu kullanarak kendi makine çevirisi hizmetlerinizi de kullanabilirsiniz. Bu örnek, dictionary Python modülünü kullanarak sabit bir dil listesinde makine çevirisi yapar:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Machine translation example."""

import dictionary

from weblate.machinery.base import MachineTranslation


class SampleTranslation(MachineTranslation):
    """Sample machine translation interface."""

    name = "Sample"

    def download_languages(self):
        """Return list of languages your machine translation supports."""
        return {"cs"}

    def download_translations(
        self,
        source,
        language,
        text: str,
        unit,
        user,
        search: bool,
        threshold: int = 75,
    ):
        """Return tuple with translations."""
        for t in dictionary.translate(text):
            yield {"text": t, "quality": 100, "service": self.name, "source": text}

Weblate WEBLATE_MACHINERY seçeneğinde belirteceğiniz kendi sınıfınızı kullanır.

Eklentiler#

Eklentiler, çeviri iş akışını özelleştirmesi ve kendiliğinden yapılması için yöntemler sağlar. Yöneticiler, her bir çeviri bileşenine YönetimEklentiler menüsünden eklentiler ekleyip yönetebilir.

İpucu

Eklentileri API, DEFAULT_ADDONS ya da :wladmin:`install_addon kullanarak da yapılandırabilirsiniz.

_images/addons.png

Hazır eklentiler#

Kendiliğinden çeviri#

3.9 sürümünde geldi.

Eklenti kimliği:

weblate.autotranslate.autotranslate

Yapılandırma:

mode

Kendiliğinden çeviri kipi

Kullanılabilecek seçenekler:

suggest – Öneri olarak ekler

translate – Çeviri olarak ekler

fuzzy – “Düzenlenmesi gerekli” olarak ekler

filter_type

Arama süzgeci

Lütfen tüm dizgeleri çevirdiğinizde var olan tüm çevirileri yok sayılacağını unutmayın.

Kullanılabilecek seçenekler:

all – Tüm dizgeler

nottranslated – Çevrilmemiş dizgeler

todo – Tamamlanmamış dizgeler

fuzzy – Düzenlenecek olarak imlenmiş dizgeler

check:inconsistent – Denetim hatası: Tutarsız

auto_source

Kendiliğinden yapılmış çevirilerin kaynağı

Kullanılabilecek seçenekler:

others – Diğer çeviri bileşenleri

mt – Makine çevirisi

component

Bileşen

Kaynak olarak kullanılacak bir bileşenin kısaltmasını yazın. Geçerli projedeki tüm bileşenlerin kullanılması için boş bırakın.

engines

Makine çevirisi hizmetleri

threshold

Skor eşiği

Tetikleyiciler:

bileşen güncellemesi, günlük

Makine çevirisini ya da diğer bileşenleri kullanarak dizgeleri kendiliğinden çevirir.

Ne zaman tetiklenir:

  • Bileşende yeni dizgeler göründüğünde.

  • Her bileşen için ayda bir kez. :setting:`BACKGROUND_TASKS kullanılarak yapılandırılabilir.

JavaScript yerelleştirme CDN#

4.2 sürümünde geldi.

Eklenti kimliği:

weblate.cdn.cdnjs

Yapılandırma:

threshold

Çeviri eşiği

Çevirilerin katılacağı eşik değeri.

css_selector

CSS seçici

Yerelleştirilebilir ögeleri algılamak için CSS seçici.

cookie_name

Dil tanımlama bilgisinin adı

Dil seçiminin kaydedildiği tanımlama bilgisinin adı.

files

Dizgeleri HTML dosyalarından ayıklama

Geçerli depoda ya da uzak adreslerde çevrilebilir dizgeler için işlenecek dosya adlarının listesi.

Tetikleyiciler:

günlük, depoya işlendikten sonra, depo güncellendikten sonra

JavaScript ya da HTML yerelleştirmesinde kullanılmak üzere içerik dağıtım ağına çevirileri yayınlar.

Statik HTML sayfalarını yerelleştirmek veya JavaScript kodunda yerelleştirmeyi yüklemek için kullanılabilir.

Bileşeniniz için, bunları yerelleştirmek amacıyla HTML sayfalarına ekleyebileceğiniz benzersiz bir adres oluşturur. Bilgi almak için Weblate içerik aktarım ağını kullanarak HTML ve JavaScript çevirmek.

Boş dizgeleri silme#

4.4 sürümünde geldi.

Eklenti kimliği:

weblate.cleanup.blank

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

depoya işlendikten sonra, depo güncellendikten sonra

Çeviri dosyalarından çevirisi olmayan dizgeleri kaldırır.

Çeviri dosyalarında boş dizgelerin görünmemesi için bunu kullanın (yerelleştirme kitaplığınızın kaynak dizgeyi kullanmak yerine boş dizgeler görüntülemesi gibi durumlarda).

Çeviri dosyalarını temizleme#

Eklenti kimliği:

weblate.cleanup.generic

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

depoya işlenmeden önce, depo güncellendikten sonra

Tüm çeviri dosyalarını tek dilli temel dosyayla eşleşecek şekilde günceller. Bu işlem çoğu dosya biçiminde temel dosyada artık bulunmayan eski çeviri anahtarlarını kaldırır.

Eksik dilleri ekleme#

Eklenti kimliği:

weblate.consistency.languages

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

günlük, depoya eklenmesinden sonra

Proje içindeki tüm bileşenler için tutarlı bir dil kümesinin kullanılmasını sağlar.

Eksik diller her 24 saatte bir ve Weblate üzerine yeni diller eklendiğinde denetlenir.

Diğerlerinden farklı olarak, bu eklenti tüm projeyi etkiler.

İpucu

Yeni eklenen dizgeler Kendiliğinden çeviri ile kendiliğinden çevrilir.

Bileşen keşfi#

Eklenti kimliği:

weblate.discovery.discovery

Yapılandırma:

match

Çeviri dosyalarıyla eşleştirilecek kurallı ifade

file_format

Dosya biçimi

name_template

Bileşen adını özelleştirme

base_file_template

Tek dil temel dosya adını tanımlama

İki dilli çeviri dosyaları için boş bırakın.

new_base_template

Yeni çeviriler için temel dosyayı tanımlama

Yeni çevirileri oluşturmak için kullanılan dosyanın adı. Gettext için .pot dosyası olarak seçin.

intermediate_template

Ara dil dosyası

Ara çeviri dosyasının adı. Çoğu durumda bu dosya geliştiriciler tarafından sunulan bir çeviri dosyasıdır ve gerçek kaynak dizgeler oluşturulurken kullanılır.

language_regex

Dil süzgeci

Dosya maskesi taranırken çeviri dosyalarını süzmek için kullanılan kurallı ifade.

copy_addons

Ana bileşendeki eklentileri yeni oluşturulanlara kopyalama

remove

Var olmayan dosyalar için bileşenleri kaldırma

confirm

Yukarıdaki eşleşmelerin doğru göründüğünü onaylıyorum

Tetikleyiciler:

depo güncellenmesinden sonra

Sürüm denetim sistemindeki dosya değişikliklerine göre proje bileşenlerini kendiliğinden ekler ya da siler.

Eşleştirme, karmaşık yapılandırmayı etkinleştiren kurallı ifadeler kullanılarak yapılır. Ancak bunu yapmak için bazı bilgiler gerekir. Yaygın kullanım örnekleri eklenti yardımı bölümünde bulunabilir.

Çeviri dosyalarını eşleştirmek için kurallı ifadede, bileşen ve dili eşleştirmek için iki adlandırılmış grup bulunmalıdır. Kurallı ifadedeki tüm adlandırılmış gruplar, kalıp alanlarında değişken olarak kullanılabilir.

Django kalıbındaki markup kodlarını tüm dosya adı alanlarında kullanabilirsiniz. Örneğin:

{{ component }}

Bileşenin dosya adıyla eşleşir

{{ component|title }}

İlk harfi büyük bileşenin dosya adıyla eşleşir

{{ path }}: {{ component }}

Kurallı ifadedeki özel grup ile eşleşir

Kaydet üzerine tıkladığınızda, yapılandırmanın gereksinimlerinize uyup uymadığını denetleyebileceğiniz biçimde eşleşen bileşenlerin ön izlemesi sunulur:

_images/addon-discovery.png
Bileşen keşfi örnekleri#
Her dil için ayrı klasör#

Her dil için bileşenlerin çeviri dosyalarını içeren ayrı bir klasör kullanılır.

Kurallı ifade:

(?P<language>[^/.]*)/(?P<component>[^/]*)\.po

Eşleşen dosyalar:
  • cs/application.po

  • cs/website.po

  • de/application.po

  • de/website.po

Gettext yerelleri görünümü#

Gettext PO dosyalarını kaydetmek için alışılmış yapı.

Kurallı ifade:

locale/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po

Eşleşen dosyalar:
  • locale/cs/LC_MESSAGES/application.po

  • locale/cs/LC_MESSAGES/website.po

  • locale/de/LC_MESSAGES/application.po

  • locale/de/LC_MESSAGES/website.po

Karmaşık dosya adları#

Dosya adında hem bileşen hem de dil adını kullanmak.

Kurallı ifade:

src/locale/(?P<component>[^/]*)\.(?P<language>[^/.]*)\.po

Eşleşen dosyalar:
  • src/locale/application.cs.po

  • src/locale/website.cs.po

  • src/locale/application.de.po

  • src/locale/website.de.po

Yinelenen dil kodu#

Yol ve dosya adında dili kullanmak.

Kurallı ifade:

locale/(?P<language>[^/.]*)/(?P<component>[^/]*)/(?P=language)\.po

Eşleşen dosyalar:
  • locale/cs/application/cs.po

  • locale/cs/website/cs.po

  • locale/de/application/de.po

  • locale/de/website/de.po

Ayrılmış Android dizgeleri#

Android kaynak dizgeleri, birkaç dosyaya ayrılmış.

Kurallı ifade:

res/values-(?P<language>[^/.]*)/strings-(?P<component>[^/]*)\.xml

Eşleşen dosyalar:
  • res/values-cs/strings-about.xml

  • res/values-cs/strings-help.xml

  • res/values-de/strings-about.xml

  • res/values-de/strings-help.xml

Birkaç yolu eşleştirmek#

Java öznitelikleri çevirileri ile birkaç modüllü Maven projesi.

Kurallı ifade:

(?P<originalHierarchy>.+/)(?P<component>[^/]*)/src/main/resources/ApplicationResources_(?P<language>[^/.]*)\.properties

Bileşen adı:

{{ originalHierarchy }}: {{ component }}

Eşleşen dosyalar:
  • parent/module1/submodule/src/main/resources/ApplicationResources_fr.properties

  • parent/module1/submodule/src/main/resources/ApplicationResource_es.properties

  • parent/module2/src/main/resources/ApplicationResource_de.properties

  • parent/module2/src/main/resources/ApplicationResource_ro.properties

İpucu

Bileşen bulma eklentisi İç Weblate adresleri kullanır. Sürüm denetimi sistemi kurulumunu birden çok bileşen arasında paylaşmanın kullanışlı bir yoludur. Bağlı bileşenler, ilgili her bir bileşenin Kaynak kod deposu alanına (YönetimAyarlarSürüm denetimi sistemi) weblate://project/main-component doldurularak kurulan ana bileşenin yerel deposunu kullanır. Böylece yapılandırma ve sistem kaynakları açısından da zaman kazanılır.

Toplu düzenleme#

3.11 sürümünde geldi.

Eklenti kimliği:

weblate.flags.bulk

Yapılandırma:

q

Sorgu

state

Ayarlanacak durum

Kullanılabilecek seçenekler:

-1 – Değiştirilmesin

10 – Düzenlenmesi gerekli

20 – Çevrilmiş

30 – Onaylanmış

add_flags

Eklenecek çeviri imleri

remove_flags

Kaldırılacak çeviri imleri

add_labels

Eklenecek etiketler

remove_labels

Kaldırılacak etiketler

Tetikleyiciler:

bileşen güncellemesi

Dizgelerin imlerini, etiketlerini veya durumlarını toplu düzenleyin.

NOT has:label arama sorgusuyla başlayarak kendiliğinden etiketleme yapın ve tüm dizgelere gerekli tüm etiketler eklenene kadar sürdürün. Weblate üst verileri için başka kendiğinden işlemler de yapılabilir.

Örnekler:

Yeni dizgeler kendiliğinden etiketlensin#

Arama sorgusu

NOT has:label

Eklenecek etiketler

son

Tüm Uygulama mağazası üst veri dosyaları değişiklik günlüğü dizgelerini salt okunur olarak imleme#

Arama sorgusu

language:en AND key:changelogs/

Eklenecek çeviri imleri

read-only

Değiştirilmemiş çevirileri “Düzenlenmesi gerekli” olarak imleme#

3.1 sürümünde geldi.

Eklenti kimliği:

weblate.flags.same_edit

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

birim oluşturulduktan sonra

Sürüm denetimi sisteminden yeni bir çevrilebilir dizge içe aktarıldığında ve bir kaynak dizgeyle eşleştiğinde, Weblate üzerinde düzenlenmesi gerekli olarak imlenir. Özellikle çevrilmemiş dizgeler için kaynak dizgeleri içeren dosya biçimleri için kullanışlıdır.

İpucu

Ayrıca, Çeviri imleri için strict-same imini ekleyerek Çeviri değiştirilmemiş denetimini sıkılaştırmak isteyebilirsiniz.

Ayrıca bakınız

Çeviri durumları

Yeni kaynak dizgeleri “Düzenlenmesi gerekli” olarak imleme#

Eklenti kimliği:

weblate.flags.source_edit

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

birim oluşturulduktan sonra

Sürüm denetimi sisteminden yeni bir kaynak dizge içe her aktarıldığında, Weblete üzerinde düzenlenmesi gerekli olarak imlenir. Böylece geliştiriciler tarafından yazılan kaynak dizgeleri kolayca süzebilir ve düzenleyebilirsiniz.

Ayrıca bakınız

Çeviri durumları

Yeni çevirileri “Düzenlenmesi gerekli” olarak imleme#

Eklenti kimliği:

weblate.flags.target_edit

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

birim oluşturulduktan sonra

Sürüm denetimi sisteminden yeni bir çevrilebilir dizge içeri her aktarıldığında, Weblate üzerinde düzenlenmesi gerekli olarak imlenir. Böylece geliştiricilerin oluşturduğu çevirileri kolayca süzebilir ve düzenleyebilirsiniz.

Ayrıca bakınız

Çeviri durumları

Fill read-only strings with source#

4.18 sürümünde geldi.

Eklenti kimliği:

weblate.generate.fill_read_only

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

bileşen güncellemesi, günlük

Fills in translation of read-only strings with source string.

İstatistik oluşturma#

Eklenti kimliği:

weblate.generate.generate

Yapılandırma:

filename

Oluşturulacak dosyanın adı

template

Oluşturulacak dosyanın içeriği

Tetikleyiciler:

depoya işlenmeden önce

Çeviri durumu ile ilgili ayrıntılı bilgiler içeren bir dosya oluşturur.

Hem dosya adında hem de içerikte bir Django kalıbı kullanabilirsiniz. Markup ile ilgili bilgi almak için Kalıp kodlaması bölümüne bakabilirsiniz.

Örneğin, her çeviri için bir özet dosyası oluşturma:

Oluşturulacak dosyanın adı

locale/{{ language_code }}.json

İçerik
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Ayrıca bakınız

Kalıp kodlaması

Çeviriyi kaynak dizgeyle önceden doldurma#

4.11 sürümünde geldi.

Eklenti kimliği:

weblate.generate.prefill

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

bileşen güncellemesi, günlük

Çeviri dizgelerini kaynak dizgeler ile doldurur.

Bileşendeki tüm çevrilmemiş dizgeler kaynak dizgeyle doldurulur ve düzenlenmesi gerekli olarak imlenir. Çeviri dosyalarında boş dizge kabul edilmediğinde bunu kullanın.

Sözde yerel oluşturma#

4.5 sürümünde geldi.

Eklenti kimliği:

weblate.generate.pseudolocale

Yapılandırma:

source

Kaynak dizgeler

target

Hedef çeviri

Bu çevirideki tüm dizgelerin üzerine yazılacak

prefix

Sabit dizge ön eki

var_prefix

Değişken dizge ön eki

suffix

Sabit dizge son eki

var_suffix

Değişken dizge son eki

var_multiplier

Değişken bölüm çarpanı

Kaynak dizgenin uzunluğuna bağlı olarak değişken bölümün kaç kez yineleneceği.

include_readonly

Salt okunur dizgeleri katma

Tetikleyiciler:

bileşen güncellemesi, günlük

Kaynak dizgelere kendiliğinden ön ek ve son ek ekleyerek çeviri oluşturur.

Sözde yereller, yerelleştirme için hazırlanmamış dizgeleri bulmaya yarar. Böylece, uygulamayı sözde yerel dilde çalıştırırken değiştirilmemiş dizgelerin bulunmasını kolaylaştırmak için tüm çevrilebilir kaynak dizgeleri değiştirilir.

Yerelleştirilmiş karşılıkları görünüme uymayabilecek dizgeler de bulunabilir.

Değişken bölümlerin kullanılması, yerelleştirmeden sonra kullanıcı arabirimine sığmayabilecek dizgelerin bulunmasını sağlar. Metin kaynak dizge uzunluğuna göre genişletilir. Değişken bölümler, metnin uzunluğunun çarpanla çarpılmasıyla yinelenir. Örneğin, değişken son eki _ olan Merhaba dünya ve değişken çarpanı 1 olduğunda Merhaba dünya___________ olur. Son ek kaynak dizgedeki her karakter için bir kez yinelenir.

Dizgeler şu model kullanılarak oluşturulacak:

Sabit dizge ön eki Değişken dizge ön eki Kaynak dizge Değişken dizge son eki Sabit dizge son eki

İpucu

Deneme için gerçek dilleri kullanabilirsiniz. Bunun yanında Weblate üzerinde en_XA ve ar_XB gibi bu iş için ayrılmış sahte ayarlar vardır.

İpucu

Bu eklentiyi, var olan bir dilin ya da benzer bir dilin yeni bir yerel ayarına çeviri başlatmak için kullanabilirsiniz. Çeviriyi bileşene ekledikten sonra, eklentiyi izleyin. Örnek: fr diliniz varsa ve fr_CA çevirisini başlatmak istiyorsanız, kaynak olarak fr, hedef olarak fr_CA ayarlayın ve ön ek ile son eki boş bırakın.

Kopyalamadan sonra yapılan çevirilerin Weblate tarafından değiştirilmesini önlemek için yeni çeviriyi doldurduktan sonra eklentiyi kaldırın.

Katılımcıları yorum bölümünde görüntüleme#

Eklenti kimliği:

weblate.gettext.authors

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

depoya işlenmeden önce

PO dosyası üst bilgilerinin yorum bölümü, katılımcı adlarını ve katkı yıllarını içerecek biçimde güncellenir.

PO dosya üst bilgileri şöyle görünür:

# Michal Čihař <michal@weblate.org>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.

“configure” dosyasındaki ALL_LINGUAS değişkeni güncelleme#

Eklenti kimliği:

weblate.gettext.configure

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

depoya eklendikten sonra, günlük

Yeni bir çeviri eklendiğinde configure, configure.in ya da herhangi bir configure.ac dosyasında ALL_LINGUAS değişkeni güncellenir.

Gettext çıktısını özelleştirme#

Eklenti kimliği:

weblate.gettext.customize

Yapılandırma:

width

Uzun satırları kaydırma

Varsayılan olarak gettext satırları 77 karakterden sonra ve yeni satır karakterlerinde kaydırır. –no-wrap parametresi kullanıldığında kaydırma yalnızca yeni satır karakterlerinde yapılır.

Kullanılabilecek seçenekler:

77 – Satırlar, 77 karakterden sonra ve yeni satır karakterlerinde kaydırılır (xgettext varsayılanı)

65535 – Satırlar yalnızca yeni satırlar karakterlerinde kaydırılır (‘xgettext –no-wrap’ gibi)

-1 – Satırlar kaydırılmaz

Tetikleyiciler:

depolamaya yüklendikten sonra

Gettext çıktısında satır kaydırma gibi davranışların özelleştirilmesini sağlar.

Şu seçenekleri sunar:

  • Satırlar 77 karakter ve yeni satır karakterlerinde kaydırılır

  • Satırları yalnızca yeni satır karakterlerinde kaydırılır

  • Satırlar kaydırılmaz

Not

Varsayılan olarak gettext satırları 77 karakterde ve yeni satır karakterlerinde kaydırır. --no-wrap parametresi kullanıldığında kaydırma yalnızca yeni satır karakterlerinde yapılır.

LINGUAS dosyasını güncelleme#

Eklenti kimliği:

weblate.gettext.linguas

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

depoya eklendikten sonra, günlük

Yeni bir çeviri eklendiğinde LINGUAS dosyası güncellenir.

MO dosyaları üretme#

Eklenti kimliği:

weblate.gettext.mo

Yapılandırma:

path

Oluşturulan MO dosyasının yolu

Belirtilmemişse, PO dosyasının konumu kullanılır.

Tetikleyiciler:

depoya işlenmeden önce

PO dosyası her değiştirildiğinde MO dosyası kendiliğinden oluşturulur.

Oluşturulan MO dosyasının konumu özelleştirilebilir ve bunun için Kalıp kodlaması alanı kullanılır.

Not

Bir çeviri silinirse, PO dosyası depodan silinir, ancak bu eklenti tarafından oluşturulmuş MO dosyası silinmez. MO dosyası yukarı akıştan el ile kaldırılmalıdır.

PO dosyalarını POT ile eşleştirerek güncelleme (msgmerge)#

Eklenti kimliği:

weblate.gettext.msgmerge

Yapılandırma:

previous

Çevrilmiş dizgelerin önceki msgid değerleri saklansın

no_location

Çevrilmiş dizgelerin konumları kaldırılsın

fuzzy

Belirsiz eşleşme kullanılsın

Tetikleyiciler:

depo güncellenmesinden sonra

Tüm PO dosyalarını (Dosya maskesi ile yapılandırıldığı gibi) msgmerge komutunu kullanarak POT dosyasıyla eşleşecek şekilde (Yeni çeviriler kalıbı ile yapılandırıldığı gibi) günceller.

Yukarı akış deposundan yeni değişiklikler çekildiğinde tetiklenir. Eklenti yapılandırması aracılığıyla msgmerge komut satırı seçeneklerinin çoğu yapılandırılabilir.

Git işlemelerini bir araya toplar#

Eklenti kimliği:

weblate.git.squash

Yapılandırma:

squash

İşlemeleri bir araya toplama

Kullanılabilecek seçenekler:

all – Tüm işlemeler bir arada yapılır

language – Her dilin işlemeleri ayrı yapılır

file – Her dosyanın işlemeleri ayrı yapılır

author – Her katkıda bulunanın işlemeleri ayrı yapılır

append_trailers

Bir araya toplanmış işlemelerin iletisine art bilgiler eklensin

‘Co-authored-by: …’ gibi bir işleme iletisinin başka bir serbest biçim bölümünün sonunda, art bilgi satırları RFC 822 e-posta üst bilgilerine benzeyen satırlardır.

commit_message

İşleme iletisi

Bu işleme iletisi, bir araya toplanmış işleme iletilerinden gelen birleşik işleme iletileri yerine kullanılır.

Tetikleyiciler:

depoya işlendikten sonra

Değişiklikleri yollamadan önce Git işlemelerini bir araya toplar.

Git işlemeleri, değişiklikler yollanmadan önce aşağıdaki kiplerden biri kullanılarak bir araya toplanabilir:

  • Tüm işlemeler bir arada

  • Dile göre

  • Dosyaya göre

  • Katkıda bulunana göre

Özgün işleme iletileri korunur. Ancak Katkıda bulunana göre olarak seçilmediği ya da işleme iletisi eklenecek şekilde özelleştirilmediği sürece katkıda bulunan bilgisi eksik kalır.

Özgün işleme iletileri, isteğe bağlı olarak özel bir işleme iletisiyle değiştirilebilir.

Art bilgiler (Co-authored-by: gibi işleme satırları) isteğe bağlı olarak özgün işleme iletilerinden kaldırılabilir ve bir araya toplanmış işleme iletisinin sonuna eklenebilir. Bu aynı zamanda her çevirmen için özel bir ``Co-authored-by:` bilgisi oluşturur.

JSON çıktısını özelleştirme#

Eklenti kimliği:

weblate.json.customize

Yapılandırma:

sort_keys

JSON anahtarlarını sıralama

indent

JSON girintisi

style

JSON girintisinin biçemi

Kullanılabilecek seçenekler:

spaces – Boşluklar

tabs – Sekmeler

Tetikleyiciler:

depolamaya yüklendikten sonra

JSON çıktısındaki girinti ya da sıralama gibi davranışların ayarlanmasını sağlar.

Java özellikleri dosyasını biçimlendirme#

Eklenti kimliği:

weblate.properties.sort

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

depoya işlenmeden önce

Java özellikleri dosyasını biçimlendirir ve sıralar.

  • Yeni satır karakterlerini Unix karakterleri olarak değiştirir.

  • Unicode kaçış dizilerini büyük harfle biçimlendirir (varsa).

  • Boş satırları ve yorumları siler.

  • Dizgeleri anahtarlara göre sıralar.

  • Yinelenen dizgeleri kaldırır.

Eski yorumları kaldırma#

3.7 sürümünde geldi.

Eklenti kimliği:

weblate.removal.comments

Yapılandırma:

age

Tutulacak gün sayısı

Tetikleyiciler:

günlük

Yorumların kaldırılması için bir zaman dilimi ayarlayabilirsiniz.

Bu özellik, güncelliğini yitirmiş olabilecek eski yorumları kaldırmak için yararlı olabilir. Bir yorumun eski olması önemini yitirdiği anlamına gelmediğinden dikkatli kullanın.

Eski önerileri kaldırma#

3.7 sürümünde geldi.

Eklenti kimliği:

weblate.removal.suggestions

Yapılandırma:

age

Tutulacak gün sayısı

votes

Oy verme eşiği

Kaldırma eşiği. Oylama kapalıyken bu alanın herhangi bir etkisi yoktur.

Tetikleyiciler:

günlük

Önerilerin kaldırılması için bir zaman dilimi ayarlayabilirsiniz.

Belirli bir zaman diliminde yeterince olumlu oy almayan önerilerin kaldırılması için öneri oylamayla (bilgi almak için Akran değerlendirmesi) bağlantılı olarak çok yararlı olabilir.

RESX dosyalarını güncelleme#

3.9 sürümünde geldi.

Eklenti kimliği:

weblate.resx.update

Yapılandırma:

Bu eklentinin yapılandırması yok.

Tetikleyiciler:

depo güncellenmesinden sonra

Tüm çeviri dosyalarını tek dilli temel dosya ile eşleşecek biçimde günceller. Kullanılmayan dizgeler kaldırılır ve yeni dizgeler kaynak dizgenin kopyaları olarak eklenir.

İpucu

Yalnızca eski çeviri anahtarlarını kaldırmak istiyorsanız Çeviri dosyalarını temizleme kullanın.

XML çıktısını özelleştirme#

4.15 sürümünde geldi.

Eklenti kimliği:

weblate.xml.customize

Yapılandırma:

closing_tags

Boş XML kod imlerine kapanış kod imini ekler

Tetikleyiciler:

depolamaya yüklendikten sonra

XML çıktısında kod imlerini kapatma gibi davranışların ayarlanmasını sağlar.

YAML çıktısını özelleştirme#

3.10.2 sürümünde geldi.

Eklenti kimliği:

weblate.yaml.customize

Yapılandırma:

indent

YAML girintisi

width

Uzun satırları kaydırma

Kullanılabilecek seçenekler:

80 – Satırlar 80 karakterde kaydırılır

100 – Satırları 100 karakterde kaydırılır

120 – Satırlar 120 karakterde kaydırılır

180 – Satırlar 180 karakterde kaydırılur

65535 – Satırlar kaydırılmaz

line_break

Satır sonları

Kullanılabilecek seçenekler:

dos – DOS (\r\n)

unix – UNIX (\n)

mac – MAC (\r)

Tetikleyiciler:

depolamaya yüklendikten sonra

YAML çıktısında satır uzunluğu ve yeni satır gibi davranışların ayarlanmasını sağlar.

Eklenti listesini özelleştirme#

Eklenti listesi WEBLATE_ADDONS tarafından yapılandırılır. Başka bir eklenti eklemek için, bu seçeneğe mutlak sınıf adını eklemeniz yeterlidir.

Eklenti yazma#

Kendi eklentilerinizi de yazabilir, eklenti üst verilerini tanımlamak için weblate.addons.base.BaseAddon alt sınıfını oluşturabilir ve ardından işlemi yapmak için bir geri çağırma ekleyebilirsiniz.

Ayrıca bakınız

Eklentileri geliştirmek

Eklentiden betikleri çalıştırma#

Eklentiler, dış betikleri yürütmek için de kullanılabilir. Bu özellik eskiden Weblate ile bütünleşikti. Ancak şimdi betikleri bir eklenti ile sarmalamak için bazı kodlar yazmanız gerekiyor.

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Example pre commit script."""


from django.utils.translation import gettext_lazy

from weblate.addons.events import EVENT_PRE_COMMIT
from weblate.addons.scripts import BaseScriptAddon


class ExamplePreAddon(BaseScriptAddon):
    # Event used to trigger the script
    events = (EVENT_PRE_COMMIT,)
    # Name of the addon, has to be unique
    name = "weblate.example.pre"
    # Verbose name and long description
    verbose = gettext_lazy("Execute script before commit")
    description = gettext_lazy("This add-on executes a script.")

    # Script to execute
    script = "/bin/true"
    # File to add in commit (for pre commit event)
    # does not have to be set
    add_file = "po/{{ language_code }}.po"

Kurulum ile ilgili bilgi almak için Özel kalite denetimleri, eklentiler ve kendiliğinden düzeltmeler.

Betik dosyası, belirtilen bileşen için sürüm denetimi sistemi deposunun kök klasörüne ayarlanmış geçerli klasör ile yürütülür.

Ek olarak, şu ortam değişkenleri kullanılabilir:

WL_VCS#

Kullanılan sürüm denetimi sistemi.

WL_REPO#

Yukarı akış deposu adresi.

WL_PATH#

Sürüm denetimi sistemi deposunun mutlak yolu.

WL_BRANCH#

Geçerli bileşende yapılandırılmış depo dalı.

WL_FILEMASK#

Geçerli bileşen için dosya maskesi.

WL_TEMPLATE#

Tek dilli çeviriler için kalıbın dosya adı (boş olabilir).

WL_NEW_BASE#

Yeni çeviriler oluşturmak için kullanılan dosyanın adı (boş olabilir).

WL_FILE_FORMAT#

Geçerli bileşende kullanılan dosya biçimi.

WL_LANGUAGE#

İşlenmekte olan çevirinin dili (bileşen düzeyinde kancalar için kullanılamaz).

WL_PREVIOUS_HEAD#

Güncellemeden sonra önceki HEAD (yalnızca güncelleme sonrası kancası çalıştırıldıktan sonra kullanılabilir).

WL_COMPONENT_SLUG#

3.9 sürümünde geldi.

Adresi oluşturmak için kullanılan bileşen kısaltması.

WL_PROJECT_SLUG#

3.9 sürümünde geldi.

Adresi oluşturmak için kullanılan proje kısaltması.

WL_COMPONENT_NAME#

3.9 sürümünde geldi.

Bileşen adı.

WL_PROJECT_NAME#

3.9 sürümünde geldi.

Proje adı.

WL_COMPONENT_URL#

3.9 sürümünde geldi.

Bileşen adresi.

WL_ENGAGE_URL#

3.9 sürümünde geldi.

Proje etkileşim adresi.

Ayrıca bakınız

Bileşen yapılandırması

Güncelleme sonrası depo işleme#

Sürüm denetimi sistemi yukarı akış kaynağı değiştiğinde çeviri dosyalarını güncellemek için kullanılabilir. Bunu yapabilmek için lütfen Weblate tarafından yalnızca sürüm denetimi sistemine işlenmiş dosyaların görüldüğünü, bu nedenle değişiklikleri betiğin bir parçası olarak yapmanız gerektiğini unutmayın.

Örneğin Gulp ile bunu şu kodu kullanarak yapabilirsiniz:

#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json

Depoya işlenmeden önce çevirilerin işlenmesi#

Bir çevirinin depoya kaydedilmesinden önce kendiliğinden değiştirilmesi için işleme betiğini kullanın.

Geçerli bir çevirinin dosya adından oluşan tek bir parametre olarak aktarılır.

Çeviri belleği#

Weblate üzerinde şu yetenekleri olan bir çeviri belleği özelliği bulunur:

  • El ile içe aktarılmış çeviri belleği (bilgi almak için Kullanıcı arayüzü).

  • Weblate üzerinde yapılan ve otomatik olarak kaydedilen çeviriler (Çeviri belleği kapsamları kapsamında).

  • Geçmiş çeviriler otomatik olarak içe aktarılır.

Çeviri belleğindeki içerik iki yoldan biriyle uygulanabilir:

Kurulum ipuçları için, varsayılan olarak açık olan Weblate Çeviri Belleği bölümüne bakın.

Çeviri belleği kapsamları#

3.2 sürümünde geldi: Daha önceki sürümlerde, çeviri belleği yalnızca geçerli içe aktarılmış çeviri belleği kapsamına karşılık gelen bir dosyadan yüklenebiliyordu.

Çeviri belleği kapsamları, istenen davranışa uyacak şekilde çevirilerin hem gizliliğine hem de paylaşılmasına izin vermek için vardır.

İçe aktarılmış çeviri belleği#

weblate weblate import_memory komutunu kullanarak isteğe bağlı çeviri belleği verilerinin içe aktarılması, bellek içeriğini tüm kullanıcılar ve projeler için kullanılabilir kılar.

Kullanıcıların bireysel çeviri belleği#

Tüm kullanıcı çevirilerini otomatik olarak ilgili her kullanıcının kişisel çeviri belleğine kaydeder.

Projelerin bireysel çeviri belleği#

Bir projedeki tüm çeviriler, otomatik olarak yalnızca bu proje için kullanılabilen bir proje çeviri belleğine kaydedilir.

Paylaşılan çeviri belleği#

Paylaşılan çeviri belleği açık olan projelerdeki tüm çeviriler, tüm projeler için kullanılabilen paylaşılan bir çeviri belleğine kaydedilir.

Ciddi sonuçları olabileceğinden, bu özelliği paylaşılan Weblate kurulumları için açıp açmayacağınızı dikkatlice değerlendirin:

  • Çeviriler başkaları tarafından kullanılabilir.

  • Bu seçim, gizli bilgilerin açığa çıkmasına yol açabilir.

Çeviri belleğini yönetmek#

Kullanıcı arayüzü#

3.2 sürümünde geldi.

Temel kullanıcı arayüzünden, her kullanıcı için ve her proje için çeviri belleklerini yönetebilirsiniz. Çeviri belleğini indirme, silme ya da içe aktarma işlemleri yapılabilir.

İpucu

JSON çeviri belleği Weblate içine aktarılabilir. Diğer araçlarla birlikte çalışabilirlik için TMX biçimi de sağlanır.

_images/memory.png

Yönetim arayüzü#

Çeviri belleği içeriğini değiştirmek için çeşitli yönetim komutları bulunur. Bunlar, kapsamlara göre süzülmeden bir bütün olarak çeviri belleği üzerinde çalışır (parametreler ile istenmedikçe):

weblate weblate dump_memory

Çeviri belleğini JSON dosyası olarak dışa aktarır

weblate weblate import_memory

TMX ya da JSON dosyalarını çeviri belleği içine aktarır

Yapılandırma#

Tüm ayarlar settings.py dosyasında (Django için her zamanki gibi) tutulur.

Not

Bu ayarlardan herhangi birini değiştirdikten sonra, Weblate WSGI ve Celery işlemlerinin ikisini de yeniden başlatmanız gerekir.

mod_wsgi olarak çalıştırılması durumunda, yapılandırmayı yeniden yüklemek için Apache sunucusunu yeniden başlatmanız gerekir.

Ayrıca bakınız

Django yapılandırma parametreleri için Django belgelerine bakabilirsiniz.

AKISMET_API_KEY#

Weblate, istenmeyen ileti olarak gelen anonim önerileri denetlemek için Akismet kullanabilir. Bir API anahtarı satın almak ve bunu bir siteyle ilişkilendirmek için ‘akismet.com <https://akismet.com/>`_ adresine bakabilirsiniz.

ANONYMOUS_USER_NAME#

Oturum açmamış kullanıcılar için kullanıcı adı.

Ayrıca bakınız

Erişim denetimi

AUDITLOG_EXPIRY#

3.6 sürümünde geldi.

Weblate denetim günlüklerinin tutulacağı gün sayısı (hesap etkinliği ile ilgili bilgileri içeren).

Varsayılan değer: 180 gün.

AUTH_LOCK_ATTEMPTS#

Hız sınırlaması uygulanmadan önce başarısız olmasına izin verilecek en fazla kimlik doğrulama girişimi sayısı.

Bu seçenek şu anda şu konumlarda uygulanmaktadır:

  • Oturum aç. Hesap parolasını silerek kullanıcının yeni bir parola isteği yapmadan oturum açmasını engeller.

  • Parola sıfırlama. Çok fazla parola sıfırlama girişimi ile istenmeyen trafik oluşturan kullanıcılara yeni e-posta gönderilmesini engeller.

Varsayılan değer: 10.

Ayrıca bakınız

Hızı sınırlamak

AUTO_UPDATE#

3.2 sürümünde geldi.

3.11 sürümünde değişti: Özgün açma/kapama seçeneği, hangi dizgelerin kabul edildiğini ayırt edecek biçimde değiştirildi.

Tüm depoları günlük olarak günceller.

İpucu

Weblate depolarını kendiliğinden güncellemek için Bildirim kancaları kullanmıyorsanız yararlıdır.

Not

Geriye dönük uyumluluk için açma/kapama seçenekleri dizge seçimine ek olarak bulunur.

Seçenekler:

"none"

Günlük güncelleme yapılmaz.

"remote" ayrıca False

Yalnızca uzak tarafı günceller.

"full" ayrıca True

Uzak tarafı günceller ve çalışan kopya ile birleştirir.

Not

Bunun için Celery ile arka plan görevlerini kullanmak çalışıyor olmalıdır. Yeniden başlatıldıktan sonra etkili olur.

AVATAR_URL_PREFIX#

Avatar adreslerini şu biçimde oluşturmak için ön ek: ${AVATAR_URL_PREFIX}/avatar/${MAIL_HASH}?${PARAMS}. Şu hizmetlerin çalıştığı biliniyor:

Gravatar (varsayılan), https://gravatar.com/ üzerinden

AVATAR_URL_PREFIX = 'https://www.gravatar.com/'

Libravatar, https://www.libravatar.org/ üzerinden

AVATAR_URL_PREFIX = 'https://www.libravatar.org/'

AUTH_TOKEN_VALID#

Kimlik doğrulama belirtecinin ve parola sıfırlama e-postalarındaki geçici parolanın geçerli olacağı süre. Varsayılan değer: 172800 saniye (2 gün).

AUTH_PASSWORD_DAYS#

Bir kullanıcının daha önce kullandığı bir parolayı yeniden kullanabilmesi için geçmesi gereken gün sayısı.

Bu işlem denetim günlüğü ile yapılır. AUDITLOG_EXPIRY seçeneğinin değeri en az bu değer ile aynı olmalıdır.

Not

Weblate 2.15 sürümünden önce yapılan parola değişiklikleri bu ilkede dikkate alınmaz.

Varsayılan değer: 180 gün.

AUTOFIX_LIST#

Bir çeviri kaydedilirken uygulanacak kendiliğinden düzeltmelerin listesi.

Not

Kendiliğinden düzeltme arayüzünü uygulayan Python sınıfının tam yolunu belirtin.

Kullanılabilecek düzeltmeler:

weblate.trans.autofixes.whitespace.SameBookendingWhitespace

Çevirinin başındaki ve sonundaki boşlukları kaynak ile eşleştirir.

weblate.trans.autofixes.chars.ReplaceTrailingDotsWithEllipsis

Kaynakta üç nokta karakteri (…) varsa çevirinin sonundaki üç ayrı noktayı (…) değiştirir.

weblate.trans.autofixes.chars.RemoveZeroSpace

Kaynakta bulunmuyorsa çevirideki sıfır genişlikli boşluk karakterlerini kaldırır.

weblate.trans.autofixes.chars.RemoveControlChars

Kaynakta bulunmuyorsa denetim karakterlerini kaldırır.

weblate.trans.autofixes.chars.DevanagariDanda

Bangla yazımında cümle sonundaki noktayı Devanagari Danda karakteri ile değiştirir.

weblate.trans.autofixes.html.BleachHTML

Güvenli olmayan HTML kod imlerini safe-html olarak imlenmiş çevirilerden kaldırır (bilgi almak için: Güvenli olmayan HTML).

Hangilerinin kullanılacağını seçebilirsiniz:

AUTOFIX_LIST = (
    "weblate.trans.autofixes.whitespace.SameBookendingWhitespace",
    "weblate.trans.autofixes.chars.ReplaceTrailingDotsWithEllipsis",
)

BACKGROUND_TASKS#

4.5.2 sürümünde geldi.

Bir bileşen için uzun bakım görevlerinin tetiklenme sıklığını belirtir.

Şu anda bunun denetlediği:

Olası seçenekler:

  • aylık (varsayılan)

  • weekly

  • daily

  • never

Not

Weblate üzerinde binlerce bileşen bulunuyorsa sıklığın artırılması önerilmez.

BASIC_LANGUAGES#

4.4 sürümünde geldi.

Kullanıcılara yeni çeviriye başlamaları için sunulacak dillerin listesi. Belirtilmediğinde, yaygın olarak kullanılan tüm dilleri içeren, ancak ülkeye özgü lehçeleri olmayan bir iç liste kullanılır.

Bu seçenek, yalnızca yetki verilmemiş kullanıcıların istenmeyen diller eklemesini engeller. Proje yöneticilerine Weblate üzerinde tanımlanmış dillerin tümü sunulur.

Not

Bu seçenek, Weblate üzerinde yeni diller tanımlamaz, yalnızca veri tabanında var olan dilleri süzer.

Örnek:

BASIC_LANGUAGES = {"cs", "it", "ja", "en"}

Ayrıca bakınız

Dil tanımları

BORG_EXTRA_ARGS#

4.9 sürümünde geldi.

İç yedeklemeler tetiklendiğinde borg create komutuna ek parametreler iletebilirsiniz.

Örnek:

BORG_EXTRA_ARGS = ["--exclude", "vcs/"]

CACHE_DIR#

4.16 sürümünde geldi.

Weblate ön bellek dosyalarının tutulacağı klasör. Varsayılan olarak DATA_DIR içindeki cache alt klasörü kullanılır.

DATA_DIR bir ağ dosya sisteminde bulunuyorsa bunu yerel ya da geçici bir dosya sistemi olarak değiştirin.

Docker kapsayıcısı bunun için ayrı bir birim kullanır. Bilgi almak için: :ref:`docker-volume’.

CSP_SCRIPT_SRC, CSP_IMG_SRC, CSP_CONNECT_SRC, CSP_STYLE_SRC, CSP_FONT_SRC#

Weblate için Content-Security-Policy üst bilgisini özelleştirin. Başlık, üçüncü taraf hizmetlerle (Matomo, Google Analytics, Sentry, …) etkin bütünleştirmelere göre kendiliğinden oluşturulur.

Tüm bunlar varsayılan olarak boş listedir.

Örnek:

# Enable Cloudflare Javascript optimizations
CSP_SCRIPT_SRC = ["ajax.cloudflare.com"]

CHECK_LIST#

Bir çeviride yapılacak hata denetimlerinin listesi.

Not

Denetim arayüzünü uygulayan Python sınıfının tam yolunu yazın.

Denetim listesini, isteğinize göre ayarlayın.

Tüm iç Kalite denetimleri varsayılan olarak açıktır ve buradan bu ayarları değiştirebilirsiniz. Varsayılan olarak, kullanılabilecek değerler Örnek yapılandırma dosyası içinde yorum karakteri kaldırılmış satırlar biçiminde bulunurlar. Her yeni Weblate sürümünde yeni denetimler eklenir.

Tüm denetimleri kapatabilirsiniz:

CHECK_LIST = ()

Yalnızca birkaçını açabilirsiniz:

CHECK_LIST = (
    "weblate.checks.chars.BeginNewlineCheck",
    "weblate.checks.chars.EndNewlineCheck",
    "weblate.checks.chars.MaxLengthCheck",
)

Not

Bu ayarın değiştirilmesi yalnızca yeni değiştirilen çevirileri etkiler. Var olan denetimlerin veri tabanında tutulması sürdürülür. Değişiklikleri kaydedilmiş çevirilere de uygulamak için weblate weblate updatechecks komutunu yürütün.

COMMENT_CLEANUP_DAYS#

3.6 sürümünde geldi.

Belirli günden sonra yorumları siler. Varsayılan değer: Yok. Yani bir silme işlemi yapılmaz.

COMMIT_PENDING_HOURS#

Bekleyen değişikliklerin gönderilmesi ile arka plan görevi tarafından işlenmesi arasındaki saat sayısı.

CONTACT_FORM#

4.6 sürümünde geldi.

İletişim formu e-postalarının nasıl gönderileceğini yapılandırır. E-posta ayarlarınıza uygun bir yapılandırma seçin.

"reply-to"

Gönderici Yanıt olarak kullanılır. Varsayılan davranış budur.

"from"

Gönderici Kimden olarak kullanılır. E-posta sunucunuz bu tür e-postaların gönderilmesine izin vermelidir.

DATA_DIR#

Weblate klasöründe tüm veriler bulunur. Sürüm denetimi sistemi depo bağlantılarını, tam metin dizinini ve dış araçlar için çeşitli yapılandırma dosyalarını içerir.

Genellikle aşağıdaki alt klasörler de bulunur:

home

Betikleri çağırmak için kullanılan giriş klasörü.

ssh

SSH anahtarları ve yapılandırması.

static

Durağan Django dosyalarının varsayılan konumu STATIC_ROOT tarafından belirlenir. Bilgi almak için: :ref:`static-files’.

Docker kapsayıcısı bunun için ayrı bir birim kullanır. Bilgi almak için: :ref:`docker-volume’.

media

Django ortam dosyalarının varsayılan konumu MEDIA_ROOT tarafından belirlenir. Yüklenen ekran görüntülerini içerir. Bilgi almak için: :ref:`screenshots’.

vcs

Çeviriler için sürüm denetimi depoları.

backups

Günlük yedekleme verileri. Bilgi almak için: Yedeklemeler için dökümü yapılan veriler.

fonts:

Kullanıcı tarafından yüklenen yazı tipleri. Bilgi almak için: :ref:`fonts’.

cache

Çeşitli ön bellekler, CACHE_DIR seçeneği kullanılarak başka bir konuma taşınabilir.

Docker kapsayıcısı bunun için ayrı bir birim kullanır. Bilgi almak için: :ref:`docker-volume’.

Not

Bu klasör Weblate tarafından yazılabilir olmalıdır. uWSGI olarak çalıştırıldığında, www-data kullanıcısının bu klasöre yazma erişimi olmalıdır.

Bunu yapmanın en kolay yolu, kullanıcıyı klasörün sahibi yapmaktır:

sudo chown www-data:www-data -R $DATA_DIR

Varsayılan değer: /home/weblate/data. Ancak yapılandırılması beklenir.

DATABASE_BACKUP#

3.1 sürümünde geldi.

Veri tabanı yedeklemelerinin düz metin ya da sıkıştırılmış olarak depolanacağını ya da depolanmayacağını belirler. Şu değerler kullanılabilir:

  • "plain"

  • "compressed"

  • "none"

DEFAULT_ACCESS_CONTROL#

3.3 sürümünde geldi.

Yeni projeler için varsayılan erişim denetimi ayarı:

0

Herkese açık

1

Korunmuş

100

Kişisel

200

Özel

Erişim denetimi listesini el ile yönetiyorsanız :guilabel:`Özel`olarak ayarlayın. Bu seçenek iç Weblate yönetimine güvenilmemesi anlamına gelir.

DEFAULT_AUTO_WATCH#

4.5 sürümünde geldi.

Katkıda bulunulan projeler kendiliğinden izlensin seçeneğinin yeni kullanıcılar için açık olup olmayacağını belirler. Varsayılan değer: True.

Ayrıca bakınız

Bildirimler

DEFAULT_RESTRICTED_COMPONENT#

4.1 sürümünde geldi.

Varsayılan bileşen kısıtlaması değeri.

DEFAULT_ADD_MESSAGE, DEFAULT_ADDON_MESSAGE, DEFAULT_COMMIT_MESSAGE, DEFAULT_DELETE_MESSAGE, DEFAULT_MERGE_MESSAGE#

Farklı işlemler için varsayılan işleme iletileri. Bilgi almak için: ref: component.

DEFAULT_ADDONS#

Oluşturulan her bileşene varsayılan olarak kurulacak eklentiler.

Not

Bu ayar yalnızca yeni oluşturulan bileşenleri etkiler.

Örnek:

DEFAULT_ADDONS = {
    # Add-on with no parameters
    "weblate.flags.target_edit": {},
    # Add-on with parameters
    "weblate.autotranslate.autotranslate": {
        "mode": "suggest",
        "filter_type": "todo",
        "auto_source": "mt",
        "component": "",
        "engines": ["weblate-translation-memory"],
        "threshold": "80",
    },
}

DEFAULT_COMMITER_EMAIL#

İşleyenin e-posta adresi. Varsayılan değer: noreply@weblate.org.

Ayrıca bakınız

DEFAULT_COMMITER_NAME

DEFAULT_COMMITER_NAME#

İşleyenin adı. Varsayılan değer: Weblate.

Ayrıca bakınız

DEFAULT_COMMITER_EMAIL

DEFAULT_LANGUAGE#

4.3.2 sürümünde geldi.

Tüm yeni bileşenler için Kaynak dil.

Varsayılan değer: en. Eşleşen dil nesnesinin veri tabanında bulunması gerekir.

Ayrıca bakınız

Dil tanımları, Kaynak dil

DEFAULT_MERGE_STYLE#

3.4 sürümünde geldi.

Tüm yeni bileşenler için Birleştirme biçemi.

  • rebase - default

  • merge

DEFAULT_SHARED_TM#

3.2 sürümünde geldi.

Paylaşılan çeviri belleği kullanılsın ve Paylaşılan çeviri belleğine katkıda bulunulsun varsayılan değerlerini yapılandırır.

DEFAULT_TRANSLATION_PROPAGATION#

Varsayılan çeviri yayılması ayarı. Varsayılan değer: True.

DEFAULT_PULL_MESSAGE#

Çekme isteklerinin varsayılan başlığını ve iletisini yapılandırır.

ENABLE_AVATARS#

Kullanıcıların Gravatar avatarlarının kullanılıp kullanılmayacağını belirler. Varsayılan olarak açıktır.

Avatarlar sunucu tarafından alınır ve ön belleğe eklenir. Böylece kişisel bilgilerin sızma riski azaltılır ve kullanıcı deneyimi hızlandırılır.

ENABLE_HOOKS#

Anonim uzak kancaları açar ya da kapatır.

Ayrıca bakınız

Bildirim kancaları

ENABLE_HTTPS#

HTTPS ya da HTTP olarak kullanılacak Weblate bağlantısı iletişim kuralı. Bu seçenek, gönderilen e-postaları ve oluşturulan mutlak adresleri etkiler.

Varsayılan yapılandırmada bu seçenek, HTTPS ile ilgili çeşitli Django ayarları için de kullanılır. Güvenli çerezleri etkinleştirir, HSTS seçeneğini açar ya da HTTPS adresine yönlendirmeyi etkinleştirir.

HTTPS yönlendirmesi bazı durumlarda sorunlu olabilir ve iletişim kuralı üst bilgilerini Django üzerine doğru şekilde iletmeyen bir SSL sonlandırma işlemini yapan ters bir vekil sunucu kullanmanız durumunda, sonsuz yönlendirme sorunu yaşayabilirsiniz. Lütfen ters vekil sunucu yapılandırmanızı X-Forwarded-Proto veya ``Forwarded` üst bilgilerini yayacak şekilde ayarlayın ya da SSL durumunun Django tarafından doğru bir şekilde algılanmasını sağlamak için SECURE_PROXY_SSL_HEADER seçeneğini yapılandırın.

ENABLE_SHARING#

Kullanıcıların çeviri ilerlemesini sosyal ağlarda paylaşabilmesi için Paylaş menüsünü açar ya da kapatır.

EXTRA_HTML_HEAD#

4.15 sürümünde geldi.

HTML üst bilgisine ek markup kodları ekler. Sitenin sahipliğini doğrulamak için kullanılabilir. Örneğin:

EXTRA_HTML_HEAD = '<link href="https://fosstodon.org/@weblate" rel="me">'

Uyarı

Dizge üzerinde herhangi bir ayıklama işlemi yapılmaz. HTML üst bilgisine olduğu gibi eklenir.

GET_HELP_URL#

4.5.2 sürümünde geldi.

Weblate kopyanızın destek bilgilerinin bulunduğu adres.

GITEA_CREDENTIALS#

4.12 sürümünde geldi.

Gitea sunucuları için kimlik doğrulama bilgileri listesi.

GITEA_CREDENTIALS = {
    "try.gitea.io": {
        "username": "weblate",
        "token": "your-api-token",
    },
}

The configuration dictionary consists of credentials defined for each API host. The API host might be different from what you use in the web browser, for example GitHub API is accessed as api.github.com.

The following configuration is available for each host:

username

API user, required.

token

API token for the API user, required.

scheme

4.18 sürümünde geldi.

Scheme override. Weblate attempts to parse scheme from the repository URL and falls backs to https. If you are running the API server internally, you might want to use http instead, but consider security.

İpucu

In the Docker container, the credentials are configured in three variables and the credentials are built out of that. An example configuration for GitHub might look like:

WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com

Will be used as:

GITHUB_CREDENTIALS = {
    "api.github.com": {
        "username": "api-user",
        "token": "api-token",
    }
}

GITLAB_CREDENTIALS#

4.3 sürümünde geldi.

GitLab sunucuları için kimlik doğrulama bilgileri listesi.

GITLAB_CREDENTIALS = {
    "gitlab.com": {
        "username": "weblate",
        "token": "your-api-token",
    },
}

The configuration dictionary consists of credentials defined for each API host. The API host might be different from what you use in the web browser, for example GitHub API is accessed as api.github.com.

The following configuration is available for each host:

username

API user, required.

token

API token for the API user, required.

scheme

4.18 sürümünde geldi.

Scheme override. Weblate attempts to parse scheme from the repository URL and falls backs to https. If you are running the API server internally, you might want to use http instead, but consider security.

İpucu

In the Docker container, the credentials are configured in three variables and the credentials are built out of that. An example configuration for GitHub might look like:

WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com

Will be used as:

GITHUB_CREDENTIALS = {
    "api.github.com": {
        "username": "api-user",
        "token": "api-token",
    }
}

GITHUB_CREDENTIALS#

4.3 sürümünde geldi.

GitHub sunucuları için kimlik doğrulama bilgileri listesi.

GITHUB_CREDENTIALS = {
    "api.github.com": {
        "username": "weblate",
        "token": "your-api-token",
    },
}

The configuration dictionary consists of credentials defined for each API host. The API host might be different from what you use in the web browser, for example GitHub API is accessed as api.github.com.

The following configuration is available for each host:

username

API user, required.

token

API token for the API user, required.

scheme

4.18 sürümünde geldi.

Scheme override. Weblate attempts to parse scheme from the repository URL and falls backs to https. If you are running the API server internally, you might want to use http instead, but consider security.

İpucu

In the Docker container, the credentials are configured in three variables and the credentials are built out of that. An example configuration for GitHub might look like:

WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com

Will be used as:

GITHUB_CREDENTIALS = {
    "api.github.com": {
        "username": "api-user",
        "token": "api-token",
    }
}

BITBUCKETSERVER_CREDENTIALS#

4.16 sürümünde geldi.

Bitbucket sunucuları için kimlik doğrulama bilgileri listesi.

BITBUCKETSERVER_CREDENTIALS = {
    "git.self-hosted.com": {
        "username": "weblate",
        "token": "http-access-token",
    },
}

The configuration dictionary consists of credentials defined for each API host. The API host might be different from what you use in the web browser, for example GitHub API is accessed as api.github.com.

The following configuration is available for each host:

username

API user, required.

token

API token for the API user, required.

scheme

4.18 sürümünde geldi.

Scheme override. Weblate attempts to parse scheme from the repository URL and falls backs to https. If you are running the API server internally, you might want to use http instead, but consider security.

İpucu

In the Docker container, the credentials are configured in three variables and the credentials are built out of that. An example configuration for GitHub might look like:

WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com

Will be used as:

GITHUB_CREDENTIALS = {
    "api.github.com": {
        "username": "api-user",
        "token": "api-token",
    }
}

GOOGLE_ANALYTICS_ID#

Google Analytics ile Weblate izlemesini açmak için Google Analytics kimliği.

HIDE_REPO_CREDENTIALS#

Depo kimlik doğrulama bilgilerini site arayüzünde gizler. İçinde kullanıcı adı ve parolası geçen bir depo adresiniz varsa, Weblate ilgili bilgileri kullanıcılara görüntülerken bunları gizler.

Örneğin, ``https://kullanici:parola@git.ornek.com/depo.git” yerine yalnızca ``https://git.ornek.com/depo.git” görüntülenir. Sürüm denetimi sistemi hata iletilerinde de benzer ayıklama yapılmaya çalışılır.

Not

Varsayılan olarak açık.

HIDE_VERSION#

4.3.1 sürümünde geldi.

Sürüm bilgilerini kimliği doğrulanmamış kullanıcılardan gizler. Bu seçenek aynı zamanda tüm belge bağlantılarının kurulu sürüm belgeleri yerine son sürümün belgelerini görüntülemesini sağlar.

Sürümün gizlenmesi bazı kuruluşlar için önerilen bir güvenlik önlemidir. Ancak saldırganın uygulamanın davranışını inceleyerek sürümü öğrenmesini engellemez.

Not

Bu seçenek varsayılan olarak kapalıdır.

INTERLEDGER_PAYMENT_POINTERS#

4.12.1 sürümünde geldi.

Web üzerinden para kazanmak için genel muhasebe ödeme göstergeleri (ILP) listesi.

Birden fazla belirtilirse, rastgele biri seçilerek olasılıksal gelir paylaşımı sağlanır.

Ayrıntılı bilgi almak için <https://webmonetization.org/> sitesine bakabilirsiniz.

İpucu

Varsayılan değer, kullanıcıların Weblate için fon sağlamasına yardımcı olur.

IP_BEHIND_REVERSE_PROXY#

Weblate platformunun ters vekil sunucu arkasında çalışıp çalışmadığını gösterir.

True olarak ayarlanırsa, Weblate IP adresini IP_PROXY_HEADER seçeneğindeki bir üst bilgiden alır.

Uyarı

Gerçekten bir ters vekil sunucu kullandığınızdan ve bu üst bilginin ayarlandığından emin olun. Yoksa kullanıcılar IP adresini taklit edebilir.

Not

Bu seçenek, varsayılan olarak kapalıdır.

IP_PROXY_HEADER#

IP_BEHIND_REVERSE_PROXY seçeneği açıldığında hangi Weblate üst bilgisinde IP adresinin bulunduğunu gösterir.

Varsayılan değer: HTTP_X_FORWARDED_FOR.

IP_PROXY_OFFSET#

:setting:’IP_PROXY_HEADER’ ögesinin istemci IP adresi olarak kullanılacak bölümünü gösterir.

Kurulumunuza bağlı olarak, bu üst bilgi birkaç IP adresinden oluşabilir (örneğin, X-Forwarded-For: a, b, client-ip) ve üst bilgiden hangi adresin istemci IP adresi olarak kullanılacağını bu bölümden yapılandırabilirsiniz.

Uyarı

Bunu ayarlamak kurulumunuzun güvenliğini etkiler. Yalnızca IP adresini belirlemek için güvenilen vekil sunucuları kullanacak şekilde yapılandırmanız gerekir.

Varsayılan değer: 0.

LICENSE_EXTRA#

Lisans seçeneklerine katılacak ek lisanslar.

Not

Her lisans tanımında bir kısa ad, bir uzun ad ve bir adres olmalıdır.

Örnek:

LICENSE_EXTRA = [
    (
        "AGPL-3.0",
        "GNU Affero General Public License v3.0",
        "https://www.gnu.org/licenses/agpl-3.0-standalone.html",
    ),
]

LICENSE_FILTER#

4.3 sürümünde değişti: Bu seçenek boş olarak ayarlandığında lisans uyarısını kapatır.

Görüntülenecek lisans listesini süzer. Bu seçenek, boş olarak ayarlandığında lisans uyarısını da kapatır.

Not

Bu süzgeç kısa lisans adlarını kullanır.

Örnek:

LICENSE_FILTER = {"AGPL-3.0", "GPL-3.0-or-later"}

Şu lisans uyarısını kapatır:

LICENSE_FILTER = set()

Ayrıca bakınız

Çeviri bileşeni uyarıları

LICENSE_REQUIRED#

Bileşen yapılandırması içindeki lisans özniteliğinin zorunlu olup olmadığını belirler.

Not

Bu seçenek varsayılan olarak kapalıdır.

LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH#

Belirtilen bir çevirinin uzunluğunun sınırlı olmasının gerekip gerekmediği. Kısıtlama, kaynak dizgenin uzunluğu x 10 karakterdir.

İpucu

Kaynak dizge uzunluğuna bakılmaksızın daha uzun çevirilere (10.000 karaktere kadar) izin vermek için bu seçeneği False olarak ayarlayın.

Not

Varsayılan değer: True.

LOCALIZE_CDN_URL ve LOCALIZE_CDN_PATH#

Bu ayarlar JavaScript yerelleştirme CDN eklentisini yapılandırır. LOCALIZE_CDN_URL, yerelleştirme CDN sunucusunun kullanılabildiği kök adresini belirler ve LOCALIZE_CDN_PATH seçeneği, LOCALIZE_CDN_URL adresinde sunulan oluşturulmuş dosyaların kaydedileceği yolu belirler.

İpucu

Hosted Weblate üzerinde bu seçenek, https://weblate-cdn.com/ adresini kullanır.

Ayrıca bakınız

JavaScript yerelleştirme CDN

LOGIN_REQUIRED_URLS#

Oturum açmanın dayatılmasını istediğiniz adreslerin listesi. (Weblate üzerindeki iç standart kuralların yanı sıra).

İpucu

Bu seçenek, şunu kullanarak tüm kurulumu parola ile korumanızı sağlar:

LOGIN_REQUIRED_URLS = (r"/(.*)$",)
REST_FRAMEWORK["DEFAULT_PERMISSION_CLASSES"] = [
    "rest_framework.permissions.IsAuthenticated"
]

İpucu

Yukarıdaki örnekte gösterildiği gibi API erişiminin de kilitlenmesi istenir.

Ayrıca bakınız

REQUIRE_LOGIN

LOGIN_REQUIRED_URLS_EXCEPTIONS#

LOGIN_REQUIRED_URLS için istisna listesi. Belirtilmediğinde kullanıcıların oturum açma sayfasına erişmesine izin verilir.

Eklemek isteyebileceğiniz bazı istisnalar:

LOGIN_REQUIRED_URLS_EXCEPTIONS = (
    r"/accounts/(.*)$",  # Required for sign-in
    r"/static/(.*)$",  # Required for development mode
    r"/widgets/(.*)$",  # Allowing public access to widgets
    r"/data/(.*)$",  # Allowing public access to data exports
    r"/hooks/(.*)$",  # Allowing public access to notification hooks
    r"/api/(.*)$",  # Allowing access to API
    r"/js/i18n/$",  # JavaScript localization
)

MATOMO_SITE_ID#

İzlemek istediğiniz Matomo (eski adıyla Piwik) üzerindeki Weblate sitesinin kimliği.

Not

Bu bütünleştirme Matomo Etiket Yöneticisi özelliğini desteklemez.

Ayrıca bakınız

MATOMO_URL

MATOMO_URL#

Weblate kullanımını izlemek için kullanmak istediğiniz bir Matomo (eski adıyla Piwik) kurulumunun tam adresi (sondaki bölü karakteri ile birlikte). Bilgi almak için: <https://matomo.org/>.

İpucu

Bu bütünleştirme Matomo Etiket Yöneticisi özelliğini desteklemez.

Örnek:

MATOMO_SITE_ID = 1
MATOMO_URL = "https://example.matomo.cloud/"

Ayrıca bakınız

MATOMO_SITE_ID

NEARBY_MESSAGES#

Çevrilen dizgenin yakınında görüntülenecek dizge sayısı. Bu yalnızca varsayılan bir değerdir. Kullanıcılar bu değeri Kullanıcı profili bölümünden ayarlayabilir.

DEFAULT_PAGE_LIMIT#

4.7 sürümünde geldi.

Sayfalama etkin olduğunda bir sayfada varsayılan olarak görüntülenecek öge sayısı.

PAGURE_CREDENTIALS#

4.3.2 sürümünde geldi.

Pagure sunucuları için kimlik doğrulama bilgilerinin listesi.

PAGURE_CREDENTIALS = {
    "pagure.io": {
        "username": "weblate",
        "token": "your-api-token",
    },
}

The configuration dictionary consists of credentials defined for each API host. The API host might be different from what you use in the web browser, for example GitHub API is accessed as api.github.com.

The following configuration is available for each host:

username

API user, required.

token

API token for the API user, required.

scheme

4.18 sürümünde geldi.

Scheme override. Weblate attempts to parse scheme from the repository URL and falls backs to https. If you are running the API server internally, you might want to use http instead, but consider security.

İpucu

In the Docker container, the credentials are configured in three variables and the credentials are built out of that. An example configuration for GitHub might look like:

WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com

Will be used as:

GITHUB_CREDENTIALS = {
    "api.github.com": {
        "username": "api-user",
        "token": "api-token",
    }
}

PRIVACY_URL#

4.8.1 sürümünde geldi.

Weblate kopyanızın gizlilik ilkesinin bulunduğu adres.

İpucu

Yasal belgelerinizi Weblate dışında bulunduruyor ve Weblate içine eklemek istiyorsanız yararlıdır. Bilgi almak için: Yasal.

Örnek:

PRIVACY_URL = "https://weblate.org/terms/"

Ayrıca bakınız

LEGAL_URL

PRIVATE_COMMIT_EMAIL_OPT_IN#

4.15 sürümünde geldi.

Kişisel işleme e-postasının türünü opt-in ya da opt-out olarak yapılandırır (varsayılan değer: opt-out).

PRIVATE_COMMIT_EMAIL_TEMPLATE#

4.15 sürümünde geldi.

Bir kullanıcının kişisel işleme e-postasını oluşturan kalıp. Varsayılan değer: "{username}@users.noreply.{site_domain}".

Devre dışı bırakılması için boş bırakın.

Not

Farklı işleme e-postası kullanmak, PRIVATE_COMMIT_EMAIL_OPT_IN seçeneği ile yapılandırılmadığı sürece kullanıcılar için abone olmak anlamına gelir. Kullanıcılar işleme e-postasını Profil içinde yapılandırabilir.

PROJECT_BACKUP_KEEP_COUNT#

4.14 sürümünde geldi.

Her proje için sunucuda tutulacak yedek sayısını belirler. Varsayılan değer: 3.

Ayrıca bakınız

Proje düzeyinde yedekler

PROJECT_BACKUP_KEEP_DAYS#

4.14 sürümünde geldi.

Proje yedeklerinin sunucuda tutulacağını süreyi belirler. Varsayılan değer: 30 gün.

Ayrıca bakınız

Proje düzeyinde yedekler

PROJECT_NAME_RESTRICT_RE#

4.15 sürümünde geldi.

Proje adlandırmasını kısıtlayacak kurallı ifadeyi belirler. Kurallı ifadeye uyan adlar reddedilir.

Ayrıca bakınız

Proje adı

PROJECT_WEB_RESTRICT_HOST#

4.16.2 sürümünde geldi.

Proje sitesinde belirli sunucuların kullanmasını reddeder. Tüm alt etki alanları eşleşir. Bu nedenle example.com’’ katıldığında ``test.example.com alt etki alanı da engellenir. Listede yalnızca küçük harfli dizgeler bulunmalıdır. Ayrıştırılan etki alanı eşleştirmeden önce küçük harflidir.

Varsayılan yapılandırma:

PROJECT_WEB_RESTRICT_HOST = {"localhost"}

PROJECT_WEB_RESTRICT_NUMERIC#

4.16.2 sürümünde geldi.

Proje sitesinde sayısal IP adresi kullanarak reddedilir. Varsayılan olarak açıktır.

PROJECT_WEB_RESTRICT_RE#

4.15 sürümünde geldi.

Proje sitelerini kısıtlayacak kurallı ifadeyi belirler. Kurallı ifadeye uyan adresler reddedilir.

RATELIMIT_ATTEMPTS#

3.2 sürümünde geldi.

Hız sınırlaması uygulanmadan önce yapılabilecek en fazla kimlik doğrulama girişimi sayısı.

Varsayılan değer: 5.

RATELIMIT_WINDOW#

3.2 sürümünde geldi.

Hız sınırlaması uygulandıktan sonra kimlik doğrulamasının kabul edileceği süre.

Saniye cinsinden değer. Varsayılan: 300 (5 dakika).

RATELIMIT_LOCKOUT#

3.2 sürümünde geldi.

Hız sınırlaması uygulandıktan sonra kimlik doğrulamasının kilitleneceği süre.

Varsayılan değer: 600 saniye (10 dakika).

REGISTRATION_ALLOW_BACKENDS#

4.1 sürümünde geldi.

Hesap açılmasına izin verilecek kimlik doğrulama arka uçlarının listesi. Bu seçenek yalnızca yeni kayıtları sınırlar. Kullanıcılar yapılandırılmış tüm kimlik doğrulama arka uçları ile kimlik doğrulaması yapabilir ve kimlik doğrulaması ekleyebilir.

Hesap açma arka uçlarını sınırlarken REGISTRATION_OPEN seçeneğinin açık tutulması önerilir. Yoksa kullanıcılar hesap açabilir, ancak Weblate kullanıcı arayüzüne hesap açma bağlantılarını görüntülemez.

Örnek:

REGISTRATION_ALLOW_BACKENDS = ["azuread-oauth2", "azuread-tenant-oauth2"]

İpucu

Arka uç adları, kimlik doğrulaması için adres içinde kullanılan adlarla eşleşir.

REGISTRATION_CAPTCHA#

Yeni hesap kaydının bir CAPTCHA ile korunup korunmayacağını belirler. Varsayılan olarak etkindir.

Açıksa, kullanıcıların e-posta adreslerini yazdığı tüm sayfalara bir CAPTCHA eklenir:

  • Yeni hesap açılışı.

  • Parola kurtarma.

  • Bir hesaba e-posta ekleme.

  • Oturum açmamış kullanıcılar için iletişim formu.

REGISTRATION_EMAIL_MATCH#

Hangi e-posta adreslerinin kaydedilebileceğini süzmenizi sağlar.

Varsayılan değer: .*. Herhangi bir e-posta adresi ile hesap açılmasına izin verir.

Bu seçeneği, hesap açma işlemini tek bir e-posta etki alanıyla sınırlamak için kullanabilirsiniz:

REGISTRATION_EMAIL_MATCH = r"^.*@weblate\.org$"

REGISTRATION_OPEN#

Şu anda yeni hesap açılmasına izin verilip verilmeyeceğini belirler. Varsayılan olarak etkindir.

Bu ayar, e-posta adresi ya da Python Social Auth ile yapılan iç kimlik doğrulamasını etkiler (REGISTRATION_ALLOW_BACKENDS komutunu kullanarak belirli arka uçları beyaz listeye ekleyebilirsiniz).

Not

LDAP kimlik doğrulaması gibi üçüncü taraf kimlik doğrulama yöntemleri kullanılıyorsa bu seçenek yalnızca kayıt formunu gizler. Ancak yeni kullanıcılar yine de oturum ve hesap açabilir.

REGISTRATION_REBIND#

4.16 sürümünde geldi.

Var olan kullanıcılar için kimlik doğrulama hizmeti arka uçlarının yeniden bağlanmasını sağlar. Kimlik doğrulama hizmeti sağlayıcıları arasında geçiş yaparken bu seçeneği açın.

Not

Varsayılan olarak, var olan hesaba başka kimlik doğrulama hizmeti arka uçlarının eklenmesini engellemek için kapalıdır. Yeniden bağlama seçeneği, daha fazla üçüncü taraf kimlik doğrulama hizmeti arka ucunun kullanılmasını sağlarken hesabın ele geçirilme riskini artırır.

REPOSITORY_ALERT_THRESHOLD#

4.0.2 sürümünde geldi.

Eski ya da çok fazla değişiklik içeren depolar için bir uyarı tetikleme eşiği. Varsayılan değer: 25.

Ayrıca bakınız

Çeviri bileşeni uyarıları

REQUIRE_LOGIN#

4.1 sürümünde geldi.

Bu seçenek, LOGIN_REQUIRED_URLS özelliğini etkinleştirir ve REST çatısını tüm API uç noktaları için kimlik doğrulaması gerekecek şekilde yapılandırır.

Not

Bu seçenek, Örnek yapılandırma içine eklenmiştir. Docker için WEBLATE_REQUIRE_LOGIN kullanın.

SENTRY_DSN#

3.9 sürümünde geldi.

Hata raporlarını derlemek için kullanılacak Sentry DSN.

SIMPLIFY_LANGUAGES#

Varsayılan dil/ülke kombinasyonları için basit dil kodlarının kullanılmasını sağlar. Örneğin, bir “fr_FR” çevirisi “fr” dil kodunu kullanır. Varsayılan kombinasyonlar için dillerin listelenmesini basitleştirdiğinden genellikle bu davranış istenir.

Her çeşit için farklı çeviriler yapmak istiyorsanız bu seçeneği kapatın.

SITE_DOMAIN#

Site etki alanını yapılandırır. Bu seçenek, birçok kapsamda doğru mutlak bağlantılar oluşturmak için gereklidir (etkinleştirme e-postaları, bildirimler ya da RSS akışları gibi).

Weblate standart olmayan bir bağlantı noktası kullanıyorsa, buraya da ekleyin.

Örnekler:

# Production site with domain name
SITE_DOMAIN = "weblate.example.com"

# Local development with IP address and port
SITE_DOMAIN = "127.0.0.1:8000"

Not

Bu ayarda yalnızca etki alanı adı bulunmalıdır. İletişim kuralını yapılandırmak için (HTTPS kullanımını açmak ve dayatmak) ENABLE_HTTPS seçeneğini ve adresi değiştirmek için URL_PREFIX seçeneğini kullanın.

İpucu

Bir Docker kapsayıcısında, site etki alanı WEBLATE_ALLOWED_HOSTS seçeneği ile yapılandırılır.

SITE_TITLE#

Web sitesi ve gönderilecek e-postalar için kullanılacak site başlığı.

SPECIAL_CHARS#

Görsel klavyeye eklenecek karakterler. Sanal klavye.

Varsayılan değer:

SPECIAL_CHARS = ("\t", "\n", "\u00a0", "…")

SINGLE_PROJECT#

3.8 sürümünde geldi.

Kullanıcıları pano yerine doğrudan bir proje ya da bileşene yönlendirir. True olarak ayarlandığında yalnızca Weblate üzerinde tek bir proje olması durumunda çalışır. Alternatif olarak, proje kısaltmasını ayarlarsanız koşulsuz olarak bu projeye yönlendirir.

3.11 sürümünde değişti: Artık tek bir projenin görüntülenmesini dayatmak için bir proje kısaltması da ayarlanabiliyor.

Örnek:

SINGLE_PROJECT = "test"

SSH_EXTRA_ARGS#

4.9 sürümünde geldi.

Weblate SSH çağrılarına özel parametreler eklenmesine izin verir. Bu seçenek, eski şifrelemeyi veya diğer standart olmayan özellikleri kullanan sunucularla bağlantı kurarken yardımcı olur.

Örneğin, Weblate SSH bağlantısı Legacyhost ile iletişim kuramıyor: Uygun bir anahtar değişimi yöntemi bulunamadı. Önerilen: diffie-hellman-group1-sha1 hatası ile kurulamadığında şunu kullanarak açabilirsiniz:

SSH_EXTRA_ARGS = "-oKexAlgorithms=+diffie-hellman-group1-sha1"

İpucu

Dizge kabuk tarafından değerlendirilir. Bu nedenle boşluk ve özel karakterleri tırnak arasına aldığınızdan emin olun.

Ayrıca bakınız

Eski OpenSSH seçenekleri

STATUS_URL#

Weblate kopyanızın durumunu bildireceği adres.

SUGGESTION_CLEANUP_DAYS#

3.2.1 sürümünde geldi.

Belirtilen sayıda gün sonra önerileri kendiliğinden siler. Varsayılan değer: Yok herhangi bir silme işlemi yapmaz.

UNUSED_ALERT_DAYS#

4.17 sürümünde geldi.

Bileşen kullanılmıyor gibi görünüyor uyarısının ne zaman verileceğini yapılandırır.

Varsayılan değer 365 gündür. Kapatmak için 0 olarak ayarlayın.

UPDATE_LANGUAGES#

4.3.2 sürümünde geldi.

Veri tabanı aktarımı çalıştırılırken dil veri tabanının güncellenmesinin gerekip gerekmediğini denetler ve varsayılan olarak etkindir. Bu ayarın weblate weblate setuplang ögesinin çağrılması üzerinde herhangi bir etkisi yoktur.

Uyarı

Bu seçenek diller görünümünün tutarsız olmasına yol açabilir. Weblate dil tanımları zaman içinde zenginleşir ve tanımlanan dillerin dil kodu görüntülenmez.

Ayrıca bakınız

Hazır dil tanımları

URL_PREFIX#

Bu ayar, Weblate platformunun belirli bir yol altında çalışmasını sağlar (yoksa site sunucusunun kök klasöründen çalıştırılır).

Not

Bu ayarı kullanmak için, sunucunuzu bu ön eki kaldıracak şekilde yapılandırmanız gerekir. BU işlem örneğin, WSGI ile WSGIScriptAlias seçeneği ayarlanarak elde edilebilir.

İpucu

Ön ek / karakteri ile başlamalıdır.

Örnek:

URL_PREFIX = "/translations"

Not

Bu ayar iç Django sunucusuyla çalışmaz. urls.py dosyasını bu ön eki içerecek şekilde ayarlamanız gerekir.

VCS_API_DELAY#

4.15.1 sürümünde geldi.

GitHub çekme istekleri, GitLab birleştirme istekleri, Gitea çekme isteği ve Pagure birleştirme istekleri içindeki üçüncü taraf API çağrılarında saniye olarak en az gecikmeyi yapılandırır.

Bu seçenek, aşırı yüklenmelerini önlemek için Weblate üzerinden bu hizmetlere yapılan API çağrılarının hızını sınırlar.

GitHub üzerinde ikincil hız sınırlayıcısına takılıyorsanız, bu değeri artırmak yardımcı olabilir.

Varsayılan değer: 10.

VCS_BACKENDS#

Kullanılabilecek sürüm denetimi sistemi arka uçlarının yapılandırması.

Not

Weblate, araçlarının bulunduğu desteklenen tüm arka uçları kullanmaya çalışır.

İpucu

Bu ayar ile seçenekleri sınırlayabilir ya da özel sürüm denetimi sistemi arka uçları ekleyebilirsiniz.

VCS_BACKENDS = ("weblate.vcs.git.GitRepository",)

VCS_CLONE_DEPTH#

3.10.2 sürümünde geldi.

Weblate depolarının hangi alt düzeye kadar kopyalanacağını yapılandırır.

Not

Bu seçenek şu anda yalnızca Git için destekleniyor. Varsayılan olarak Weblate, kopyalamayı hızlandırmak ve disk alanını korumak için sığ depo kopyaları oluşturur. Kullanımınıza bağlı olarak (örneğin custom Eklentiler kullanırken), kopya derinliği artırmak ya da 0 olarak ayarlayarak tümüyle kapatmak isteyebilirsiniz.

İpucu

Weblate üzerinden iterken ``fatal: protocol error: expected old/new/ref, got ‘shallow <commit hash>’` hatası alırsanız, sığ kopyaları tümüyle kapatarak şunları ayarlayın:

VCS_CLONE_DEPTH = 0

WEBLATE_ADDONS#

Kullanılabilecek eklentilerin listesi. Bunların kullanılabilmesi için, belirli bir çeviri bileşeninde etkinleştirilmeleri gerekir. Varsayılan olarak bu, tüm iç eklentileri içerir. Listeyi genişletirken büyük olasılıkla var olanları etkin tutmak isteyeceksiniz. Örneğin:

WEBLATE_ADDONS = (
    # Built-in add-ons
    "weblate.addons.gettext.GenerateMoAddon",
    "weblate.addons.gettext.UpdateLinguasAddon",
    "weblate.addons.gettext.UpdateConfigureAddon",
    "weblate.addons.gettext.MsgmergeAddon",
    "weblate.addons.gettext.GettextCustomizeAddon",
    "weblate.addons.gettext.GettextAuthorComments",
    "weblate.addons.cleanup.CleanupAddon",
    "weblate.addons.consistency.LangaugeConsistencyAddon",
    "weblate.addons.discovery.DiscoveryAddon",
    "weblate.addons.flags.SourceEditAddon",
    "weblate.addons.flags.TargetEditAddon",
    "weblate.addons.flags.SameEditAddon",
    "weblate.addons.flags.BulkEditAddon",
    "weblate.addons.generate.GenerateFileAddon",
    "weblate.addons.json.JSONCustomizeAddon",
    "weblate.addons.xml.XMLCustomizeAddon",
    "weblate.addons.properties.PropertiesSortAddon",
    "weblate.addons.git.GitSquashAddon",
    "weblate.addons.removal.RemoveComments",
    "weblate.addons.removal.RemoveSuggestions",
    "weblate.addons.resx.ResxUpdateAddon",
    "weblate.addons.autotranslate.AutoTranslateAddon",
    "weblate.addons.yaml.YAMLCustomizeAddon",
    "weblate.addons.cdn.CDNJSAddon",
    # Add-on you want to include
    "weblate.addons.example.ExampleAddon",
)

Not

Eklentiyi listeden kaldırmak, bileşenlerden kaldırmaz. Bu durumda Weblate çöker. Lütfen eklentiyi bu listeden kaldırmadan önce tüm bileşenlerden kaldırın.

Ayrıca bakınız

Eklentiler, DEFAULT_ADDONS

WEBLATE_EXPORTERS#

4.2 sürümünde geldi.

Çevirilerin veya sözlüklerin çeşitli dosya biçimlerinde indirilmesini sağlayan dışa aktarıcıların listesi.

Ayrıca bakınız

Desteklenen dosya biçimleri

WEBLATE_FORMATS#

3.0 sürümünde geldi.

Kullanılabilecek dosya biçimlerinin listesi.

Not

Varsayılan listede yaygın kullanılan biçimler bulunur.

Ayrıca bakınız

Desteklenen dosya biçimleri

WEBLATE_MACHINERY#

4.13 sürümünde geldi.

Kullanılabilecek makine hizmetlerinin listesi.

WEBLATE_GPG_IDENTITY#

3.1 sürümünde geldi.

Weblate tarafından Git işlemelerini imzalamak için kullanılacak kimlik. Örneğin:

WEBLATE_GPG_IDENTITY = "Weblate <weblate@example.com>"

Weblate GPG anahtarlığında, uygun bir anahtar aranır (home/.gnupg altında DATA_DIR). Bulunamazsa, bir anahtar oluşturulur. Bilgi almak için: Git işlemelerini GnuPG ile imzalamak.

WEBSITE_REQUIRED#

Bir proje oluşturulurken Proje sitesi ögesinin belirtilmesinin gerekip gerekmediğini belirler. Varsayılan olarak, herkese açık sunucu kurulumlarına uygun şekilde açıktır.

Örnek yapılandırma#

Bu örnek, Weblate ile birlikte gelen weblate/settings_example.py dosyasıdır:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

import os
import platform
from logging.handlers import SysLogHandler

# Title of site to use
SITE_TITLE = "Weblate"

# Site domain
SITE_DOMAIN = ""

# Whether site uses https
ENABLE_HTTPS = False

#
# Django settings for Weblate project.
#

DEBUG = True

ADMINS = (
    # ("Your Name", "your_email@example.com"),
)

MANAGERS = ADMINS

DATABASES = {
    "default": {
        # Use "postgresql" or "mysql".
        "ENGINE": "django.db.backends.postgresql",
        # Database name.
        "NAME": "weblate",
        # Database user.
        "USER": "weblate",
        # Name of role to alter to set parameters in PostgreSQL,
        # use in case role name is different than user used for authentication.
        # "ALTER_ROLE": "weblate",
        # Database password.
        "PASSWORD": "",
        # Set to empty string for localhost.
        "HOST": "127.0.0.1",
        # Set to empty string for default.
        "PORT": "",
        # Customizations for databases.
        "OPTIONS": {
            # In case of using an older MySQL server,
            # which has MyISAM as a default storage
            # "init_command": "SET storage_engine=INNODB",
            # Uncomment for MySQL older than 5.7:
            # "init_command": "SET sql_mode='STRICT_TRANS_TABLES'",
            # Set emoji capable charset for MySQL:
            # "charset": "utf8mb4",
            # Change connection timeout in case you get MySQL gone away error:
            # "connect_timeout": 28800,
        },
        # Persistent connections
        "CONN_MAX_AGE": 0,
        # Disable server-side cursors, might be needed with pgbouncer
        "DISABLE_SERVER_SIDE_CURSORS": False,
    }
}

# Data directory, you can use following for the development purposes:
# os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "data")
DATA_DIR = "/home/weblate/data"
CACHE_DIR = f"{DATA_DIR}/cache"

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
TIME_ZONE = "UTC"

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = "en-us"

LANGUAGES = (
    ("ar", "العربية"),
    ("az", "Azərbaycan"),
    ("be", "Беларуская"),
    ("be-latn", "Biełaruskaja"),
    ("bg", "Български"),
    ("br", "Brezhoneg"),
    ("ca", "Català"),
    ("cs", "Čeština"),
    ("cy", "Cymraeg"),
    ("da", "Dansk"),
    ("de", "Deutsch"),
    ("en", "English"),
    ("el", "Ελληνικά"),
    ("en-gb", "English (United Kingdom)"),
    ("es", "Español"),
    ("fi", "Suomi"),
    ("fr", "Français"),
    ("gl", "Galego"),
    ("he", "עברית"),
    ("hu", "Magyar"),
    ("hr", "Hrvatski"),
    ("id", "Indonesia"),
    ("is", "Íslenska"),
    ("it", "Italiano"),
    ("ja", "日本語"),
    ("kab", "Taqbaylit"),
    ("kk", "Қазақ тілі"),
    ("ko", "한국어"),
    ("nb", "Norsk bokmål"),
    ("nl", "Nederlands"),
    ("pl", "Polski"),
    ("pt", "Português"),
    ("pt-br", "Português brasileiro"),
    ("ro", "Română"),
    ("ru", "Русский"),
    ("sk", "Slovenčina"),
    ("sl", "Slovenščina"),
    ("sq", "Shqip"),
    ("sr", "Српски"),
    ("sr-latn", "Srpski"),
    ("sv", "Svenska"),
    ("th", "ไทย"),
    ("tr", "Türkçe"),
    ("uk", "Українська"),
    ("zh-hans", "简体中文"),
    ("zh-hant", "正體中文"),
)

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True

# Type of automatic primary key, introduced in Django 3.2
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"

# URL prefix to use, please see documentation for more details
URL_PREFIX = ""

# Absolute filesystem path to the directory that will hold user-uploaded files.
MEDIA_ROOT = os.path.join(DATA_DIR, "media")

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
MEDIA_URL = f"{URL_PREFIX}/media/"

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
STATIC_ROOT = os.path.join(CACHE_DIR, "static")

# URL prefix for static files.
STATIC_URL = f"{URL_PREFIX}/static/"

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
    "compressor.finders.CompressorFinder",
)

# Make this unique, and don't share it with anybody.
# You can generate it using weblate-generate-secret-key
SECRET_KEY = ""

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "OPTIONS": {
            "context_processors": [
                "django.contrib.auth.context_processors.auth",
                "django.template.context_processors.debug",
                "django.template.context_processors.i18n",
                "django.template.context_processors.request",
                "django.template.context_processors.csrf",
                "django.contrib.messages.context_processors.messages",
                "weblate.trans.context_processors.weblate_context",
            ],
        },
        "APP_DIRS": True,
    }
]


# GitHub username and token for sending pull requests.
# Please see the documentation for more details.
GITHUB_CREDENTIALS = {}

# GitLab username and token for sending merge requests.
# Please see the documentation for more details.
GITLAB_CREDENTIALS = {}

# Bitbucket username and token for sending merge requests.
# Please see the documentation for more details.
BITBUCKETSERVER_CREDENTIALS = {}

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.email.EmailAuth",
    # "social_core.backends.google.GoogleOAuth2",
    # "social_core.backends.github.GithubOAuth2",
    # "social_core.backends.github_enterprise.GithubEnterpriseOAuth2",
    # "social_core.backends.bitbucket.BitbucketOAuth2",
    # "social_core.backends.suse.OpenSUSEOpenId",
    # "social_core.backends.ubuntu.UbuntuOpenId",
    # "social_core.backends.fedora.FedoraOpenId",
    # "social_core.backends.facebook.FacebookOAuth2",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Custom user model
AUTH_USER_MODEL = "weblate_auth.User"

# Social auth backends setup
SOCIAL_AUTH_GITHUB_KEY = ""
SOCIAL_AUTH_GITHUB_SECRET = ""
SOCIAL_AUTH_GITHUB_SCOPE = ["user:email"]

SOCIAL_AUTH_GITHUB_ORG_KEY = ""
SOCIAL_AUTH_GITHUB_ORG_SECRET = ""
SOCIAL_AUTH_GITHUB_ORG_NAME = ""

SOCIAL_AUTH_GITHUB_TEAM_KEY = ""
SOCIAL_AUTH_GITHUB_TEAM_SECRET = ""
SOCIAL_AUTH_GITHUB_TEAM_ID = ""

SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY = ""
SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET = ""
SOCIAL_AUTH_GITHUB_ENTERPRISE_URL = ""
SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL = ""
SOCIAL_AUTH_GITHUB_ENTERPRISE_SCOPE = ""

SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY = ""
SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET = ""
SOCIAL_AUTH_BITBUCKET_OAUTH2_VERIFIED_EMAILS_ONLY = True

SOCIAL_AUTH_FACEBOOK_KEY = ""
SOCIAL_AUTH_FACEBOOK_SECRET = ""
SOCIAL_AUTH_FACEBOOK_SCOPE = ["email", "public_profile"]
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {"fields": "id,name,email"}

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = ""
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = ""

# Social auth settings
SOCIAL_AUTH_PIPELINE = (
    "social_core.pipeline.social_auth.social_details",
    "social_core.pipeline.social_auth.social_uid",
    "social_core.pipeline.social_auth.auth_allowed",
    "social_core.pipeline.social_auth.social_user",
    "weblate.accounts.pipeline.store_params",
    "weblate.accounts.pipeline.verify_open",
    "social_core.pipeline.user.get_username",
    "weblate.accounts.pipeline.require_email",
    "social_core.pipeline.mail.mail_validation",
    "weblate.accounts.pipeline.revoke_mail_code",
    "weblate.accounts.pipeline.ensure_valid",
    "weblate.accounts.pipeline.remove_account",
    "social_core.pipeline.social_auth.associate_by_email",
    "weblate.accounts.pipeline.reauthenticate",
    "weblate.accounts.pipeline.verify_username",
    "social_core.pipeline.user.create_user",
    "social_core.pipeline.social_auth.associate_user",
    "social_core.pipeline.social_auth.load_extra_data",
    "weblate.accounts.pipeline.cleanup_next",
    "weblate.accounts.pipeline.user_full_name",
    "weblate.accounts.pipeline.store_email",
    "weblate.accounts.pipeline.notify_connect",
    "weblate.accounts.pipeline.password_reset",
)
SOCIAL_AUTH_DISCONNECT_PIPELINE = (
    "social_core.pipeline.disconnect.allowed_to_disconnect",
    "social_core.pipeline.disconnect.get_entries",
    "social_core.pipeline.disconnect.revoke_tokens",
    "weblate.accounts.pipeline.cycle_session",
    "weblate.accounts.pipeline.adjust_primary_mail",
    "weblate.accounts.pipeline.notify_disconnect",
    "social_core.pipeline.disconnect.disconnect",
    "weblate.accounts.pipeline.cleanup_next",
)

# Custom authentication strategy
SOCIAL_AUTH_STRATEGY = "weblate.accounts.strategy.WeblateStrategy"

# Raise exceptions so that we can handle them later
SOCIAL_AUTH_RAISE_EXCEPTIONS = True

SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION = "weblate.accounts.pipeline.send_validation"
SOCIAL_AUTH_EMAIL_VALIDATION_URL = f"{URL_PREFIX}/accounts/email-sent/"
SOCIAL_AUTH_LOGIN_ERROR_URL = f"{URL_PREFIX}/accounts/login/"
SOCIAL_AUTH_EMAIL_FORM_URL = f"{URL_PREFIX}/accounts/email/"
SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = f"{URL_PREFIX}/accounts/profile/#account"
SOCIAL_AUTH_PROTECTED_USER_FIELDS = ("email",)
SOCIAL_AUTH_SLUGIFY_USERNAMES = True
SOCIAL_AUTH_SLUGIFY_FUNCTION = "weblate.accounts.pipeline.slugify_username"

# Password validation configuration
AUTH_PASSWORD_VALIDATORS = [
    {
        "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator"
    },
    {
        "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
        "OPTIONS": {"min_length": 10},
    },
    {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator"},
    {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator"},
    {"NAME": "weblate.accounts.password_validation.CharsPasswordValidator"},
    {"NAME": "weblate.accounts.password_validation.PastPasswordsValidator"},
    # Optional password strength validation by django-zxcvbn-password
    # {
    #     "NAME": "zxcvbn_password.ZXCVBNValidator",
    #     "OPTIONS": {
    #         "min_score": 3,
    #         "user_attributes": ("username", "email", "full_name")
    #     }
    # },
]

# Password hashing (prefer Argon)
PASSWORD_HASHERS = [
    "django.contrib.auth.hashers.Argon2PasswordHasher",
    "django.contrib.auth.hashers.PBKDF2PasswordHasher",
    "django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher",
    "django.contrib.auth.hashers.BCryptSHA256PasswordHasher",
]

# Allow new user registrations
REGISTRATION_OPEN = True

# Shortcut for login required setting
REQUIRE_LOGIN = False

# Middleware
MIDDLEWARE = [
    "weblate.middleware.RedirectMiddleware",
    "weblate.middleware.ProxyMiddleware",
    "corsheaders.middleware.CorsMiddleware",
    "django.middleware.security.SecurityMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "weblate.accounts.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
    "social_django.middleware.SocialAuthExceptionMiddleware",
    "weblate.accounts.middleware.RequireLoginMiddleware",
    "weblate.api.middleware.ThrottlingMiddleware",
    "weblate.middleware.SecurityMiddleware",
    "weblate.wladmin.middleware.ManageMiddleware",
]

ROOT_URLCONF = "weblate.urls"

# Django and Weblate apps
INSTALLED_APPS = [
    # Weblate apps on top to override Django locales and templates
    "weblate.addons",
    "weblate.auth",
    "weblate.checks",
    "weblate.formats",
    "weblate.glossary",
    "weblate.machinery",
    "weblate.trans",
    "weblate.lang",
    "weblate_language_data",
    "weblate.memory",
    "weblate.screenshots",
    "weblate.fonts",
    "weblate.accounts",
    "weblate.configuration",
    "weblate.utils",
    "weblate.vcs",
    "weblate.wladmin",
    "weblate.metrics",
    "weblate",
    # Optional: Git exporter
    "weblate.gitexport",
    # Standard Django modules
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "django.contrib.admin.apps.SimpleAdminConfig",
    "django.contrib.admindocs",
    "django.contrib.sitemaps",
    "django.contrib.humanize",
    # Third party Django modules
    "social_django",
    "crispy_forms",
    "crispy_bootstrap3",
    "compressor",
    "rest_framework",
    "rest_framework.authtoken",
    "django_filters",
    "django_celery_beat",
    "corsheaders",
]

# Custom exception reporter to include some details
DEFAULT_EXCEPTION_REPORTER_FILTER = "weblate.trans.debug.WeblateExceptionReporterFilter"

# Default logging of Weblate messages
# - to syslog in production (if available)
# - otherwise to console
# - you can also choose "logfile" to log into separate file
#   after configuring it below

# Detect if we can connect to syslog
HAVE_SYSLOG = False
if platform.system() != "Windows":
    try:
        handler = SysLogHandler(address="/dev/log", facility=SysLogHandler.LOG_LOCAL2)
        # Since Python 3.7 connect failures are silently discarded, so
        # the exception is almost never raised here. Instead we look whether the socket
        # to syslog is open after init.
        HAVE_SYSLOG = handler.socket.fileno() != -1
        handler.close()
    except OSError:
        HAVE_SYSLOG = False

DEFAULT_LOG = "console" if DEBUG or not HAVE_SYSLOG else "syslog"
DEFAULT_LOGLEVEL = "DEBUG" if DEBUG else "INFO"

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/stable/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    "version": 1,
    "disable_existing_loggers": True,
    "filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}},
    "formatters": {
        "syslog": {"format": "weblate[%(process)d]: %(levelname)s %(message)s"},
        "simple": {"format": "[%(asctime)s: %(levelname)s/%(process)s] %(message)s"},
        "logfile": {"format": "%(asctime)s %(levelname)s %(message)s"},
        "django.server": {
            "()": "django.utils.log.ServerFormatter",
            "format": "[%(server_time)s] %(message)s",
        },
    },
    "handlers": {
        "mail_admins": {
            "level": "ERROR",
            "filters": ["require_debug_false"],
            "class": "django.utils.log.AdminEmailHandler",
            "include_html": True,
        },
        "console": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "formatter": "simple",
        },
        "django.server": {
            "level": "INFO",
            "class": "logging.StreamHandler",
            "formatter": "django.server",
        },
        "syslog": {
            "level": "DEBUG",
            "class": "logging.handlers.SysLogHandler",
            "formatter": "syslog",
            "address": "/dev/log",
            "facility": SysLogHandler.LOG_LOCAL2,
        },
        # Logging to a file
        # "logfile": {
        #     "level":"DEBUG",
        #     "class":"logging.handlers.RotatingFileHandler",
        #     "filename": "/var/log/weblate/weblate.log",
        #     "maxBytes": 100000,
        #     "backupCount": 3,
        #     "formatter": "logfile",
        # },
    },
    "loggers": {
        "django.request": {
            "handlers": ["mail_admins", DEFAULT_LOG],
            "level": "ERROR",
            "propagate": True,
        },
        "django.server": {
            "handlers": ["django.server"],
            "level": "INFO",
            "propagate": False,
        },
        # Logging database queries
        # "django.db.backends": {
        #     "handlers": [DEFAULT_LOG],
        #     "level": "DEBUG",
        # },
        "redis_lock": {"handlers": [DEFAULT_LOG], "level": DEFAULT_LOGLEVEL},
        "weblate": {"handlers": [DEFAULT_LOG], "level": DEFAULT_LOGLEVEL},
        # Logging VCS operations
        "weblate.vcs": {"handlers": [DEFAULT_LOG], "level": DEFAULT_LOGLEVEL},
        # Python Social Auth
        "social": {"handlers": [DEFAULT_LOG], "level": DEFAULT_LOGLEVEL},
        # Django Authentication Using LDAP
        "django_auth_ldap": {"handlers": [DEFAULT_LOG], "level": DEFAULT_LOGLEVEL},
        # SAML IdP
        "djangosaml2idp": {"handlers": [DEFAULT_LOG], "level": DEFAULT_LOGLEVEL},
    },
}

# Remove syslog setup if it's not present
if not HAVE_SYSLOG:
    del LOGGING["handlers"]["syslog"]

# List of machine translations
MT_SERVICES = (
    #     "weblate.machinery.apertium.ApertiumAPYTranslation",
    #     "weblate.machinery.baidu.BaiduTranslation",
    #     "weblate.machinery.deepl.DeepLTranslation",
    #     "weblate.machinery.glosbe.GlosbeTranslation",
    #     "weblate.machinery.google.GoogleTranslation",
    #     "weblate.machinery.googlev3.GoogleV3Translation",
    #     "weblate.machinery.libretranslate.LibreTranslateTranslation",
    #     "weblate.machinery.microsoft.MicrosoftCognitiveTranslation",
    #     "weblate.machinery.microsoftterminology.MicrosoftTerminologyService",
    #     "weblate.machinery.modernmt.ModernMTTranslation",
    #     "weblate.machinery.mymemory.MyMemoryTranslation",
    #     "weblate.machinery.netease.NeteaseSightTranslation",
    #     "weblate.machinery.tmserver.AmagamaTranslation",
    #     "weblate.machinery.tmserver.TMServerTranslation",
    #     "weblate.machinery.yandex.YandexTranslation",
    #     "weblate.machinery.saptranslationhub.SAPTranslationHub",
    #     "weblate.machinery.youdao.YoudaoTranslation",
    "weblate.machinery.weblatetm.WeblateTranslation",
    "weblate.memory.machine.WeblateMemory",
)

# Machine translation API keys

# URL of the Apertium APy server
MT_APERTIUM_APY = None

# DeepL API key
MT_DEEPL_KEY = None

# LibreTranslate
MT_LIBRETRANSLATE_API_URL = None
MT_LIBRETRANSLATE_KEY = None

# Microsoft Cognitive Services Translator API, register at
# https://portal.azure.com/
MT_MICROSOFT_COGNITIVE_KEY = None
MT_MICROSOFT_REGION = None

# ModernMT
MT_MODERNMT_KEY = None

# MyMemory identification email, see
# https://mymemory.translated.net/doc/spec.php
MT_MYMEMORY_EMAIL = None

# Optional MyMemory credentials to access private translation memory
MT_MYMEMORY_USER = None
MT_MYMEMORY_KEY = None

# Google API key for Google Translate API v2
MT_GOOGLE_KEY = None

# Google Translate API3 credentials and project id
MT_GOOGLE_CREDENTIALS = None
MT_GOOGLE_PROJECT = None

# Baidu app key and secret
MT_BAIDU_ID = None
MT_BAIDU_SECRET = None

# Youdao Zhiyun app key and secret
MT_YOUDAO_ID = None
MT_YOUDAO_SECRET = None

# Netease Sight (Jianwai) app key and secret
MT_NETEASE_KEY = None
MT_NETEASE_SECRET = None

# API key for Yandex Translate API
MT_YANDEX_KEY = None

# tmserver URL
MT_TMSERVER = None

# SAP Translation Hub
MT_SAP_BASE_URL = None
MT_SAP_SANDBOX_APIKEY = None
MT_SAP_USERNAME = None
MT_SAP_PASSWORD = None
MT_SAP_USE_MT = True

# Use HTTPS when creating redirect URLs for social authentication, see
# documentation for more details:
# https://python-social-auth-docs.readthedocs.io/en/latest/configuration/settings.html#processing-redirects-and-urlopen
SOCIAL_AUTH_REDIRECT_IS_HTTPS = ENABLE_HTTPS

# Make CSRF cookie HttpOnly, see documentation for more details:
# https://docs.djangoproject.com/en/1.11/ref/settings/#csrf-cookie-httponly
CSRF_COOKIE_HTTPONLY = True
CSRF_COOKIE_SECURE = ENABLE_HTTPS
# Store CSRF token in session
CSRF_USE_SESSIONS = True
# Customize CSRF failure view
CSRF_FAILURE_VIEW = "weblate.trans.views.error.csrf_failure"
SESSION_COOKIE_SECURE = ENABLE_HTTPS
SESSION_COOKIE_HTTPONLY = True
# SSL redirect
SECURE_SSL_REDIRECT = ENABLE_HTTPS
SECURE_SSL_HOST = SITE_DOMAIN
# Sent referrrer only for same origin links
SECURE_REFERRER_POLICY = "same-origin"
# SSL redirect URL exemption list
SECURE_REDIRECT_EXEMPT = (r"healthz/$",)  # Allowing HTTP access to health check
# Session cookie age (in seconds)
SESSION_COOKIE_AGE = 1000
SESSION_COOKIE_AGE_AUTHENTICATED = 1209600
SESSION_COOKIE_SAMESITE = "Lax"
# Increase allowed upload size
DATA_UPLOAD_MAX_MEMORY_SIZE = 50000000
# Allow more fields for case with a lot of subscriptions in profile
DATA_UPLOAD_MAX_NUMBER_FIELDS = 2000

# Apply session coookie settings to language cookie as ewll
LANGUAGE_COOKIE_SECURE = SESSION_COOKIE_SECURE
LANGUAGE_COOKIE_HTTPONLY = SESSION_COOKIE_HTTPONLY
LANGUAGE_COOKIE_AGE = SESSION_COOKIE_AGE_AUTHENTICATED * 10
LANGUAGE_COOKIE_SAMESITE = SESSION_COOKIE_SAMESITE

# Some security headers
SECURE_BROWSER_XSS_FILTER = True
X_FRAME_OPTIONS = "DENY"
SECURE_CONTENT_TYPE_NOSNIFF = True

# Optionally enable HSTS
SECURE_HSTS_SECONDS = 31536000 if ENABLE_HTTPS else 0
SECURE_HSTS_PRELOAD = ENABLE_HTTPS
SECURE_HSTS_INCLUDE_SUBDOMAINS = ENABLE_HTTPS

# HTTPS detection behind reverse proxy
SECURE_PROXY_SSL_HEADER = None

# URL of login
LOGIN_URL = f"{URL_PREFIX}/accounts/login/"

# URL of logout
LOGOUT_URL = f"{URL_PREFIX}/accounts/logout/"

# Default location for login
LOGIN_REDIRECT_URL = f"{URL_PREFIX}/"

# Anonymous user name
ANONYMOUS_USER_NAME = "anonymous"

# Reverse proxy settings
IP_PROXY_HEADER = "HTTP_X_FORWARDED_FOR"
IP_BEHIND_REVERSE_PROXY = False
IP_PROXY_OFFSET = 0

# Sending HTML in mails
EMAIL_SEND_HTML = True

# Subject of emails includes site title
EMAIL_SUBJECT_PREFIX = f"[{SITE_TITLE}] "

# Enable remote hooks
ENABLE_HOOKS = True

# By default the length of a given translation is limited to the length of
# the source string * 10 characters. Set this option to False to allow longer
# translations (up to 10.000 characters)
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH = True

# Use simple language codes for default language/country combinations
SIMPLIFY_LANGUAGES = True

# Render forms using bootstrap
CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap3"
CRISPY_TEMPLATE_PACK = "bootstrap3"

# List of quality checks
# CHECK_LIST = (
#     "weblate.checks.same.SameCheck",
#     "weblate.checks.chars.BeginNewlineCheck",
#     "weblate.checks.chars.EndNewlineCheck",
#     "weblate.checks.chars.BeginSpaceCheck",
#     "weblate.checks.chars.EndSpaceCheck",
#     "weblate.checks.chars.DoubleSpaceCheck",
#     "weblate.checks.chars.EndStopCheck",
#     "weblate.checks.chars.EndColonCheck",
#     "weblate.checks.chars.EndQuestionCheck",
#     "weblate.checks.chars.EndExclamationCheck",
#     "weblate.checks.chars.EndEllipsisCheck",
#     "weblate.checks.chars.EndSemicolonCheck",
#     "weblate.checks.chars.MaxLengthCheck",
#     "weblate.checks.chars.KashidaCheck",
#     "weblate.checks.chars.PunctuationSpacingCheck",
#     "weblate.checks.format.PythonFormatCheck",
#     "weblate.checks.format.PythonBraceFormatCheck",
#     "weblate.checks.format.PHPFormatCheck",
#     "weblate.checks.format.CFormatCheck",
#     "weblate.checks.format.PerlFormatCheck",
#     "weblate.checks.format.JavaScriptFormatCheck",
#     "weblate.checks.format.LuaFormatCheck",
#     "weblate.checks.format.ObjectPascalFormatCheck",
#     "weblate.checks.format.SchemeFormatCheck",
#     "weblate.checks.format.CSharpFormatCheck",
#     "weblate.checks.format.JavaFormatCheck",
#     "weblate.checks.format.JavaMessageFormatCheck",
#     "weblate.checks.format.PercentPlaceholdersCheck",
#     "weblate.checks.format.VueFormattingCheck",
#     "weblate.checks.format.I18NextInterpolationCheck",
#     "weblate.checks.format.ESTemplateLiteralsCheck",
#     "weblate.checks.angularjs.AngularJSInterpolationCheck",
#     "weblate.checks.icu.ICUMessageFormatCheck",
#     "weblate.checks.icu.ICUSourceCheck",
#     "weblate.checks.qt.QtFormatCheck",
#     "weblate.checks.qt.QtPluralCheck",
#     "weblate.checks.ruby.RubyFormatCheck",
#     "weblate.checks.consistency.PluralsCheck",
#     "weblate.checks.consistency.SamePluralsCheck",
#     "weblate.checks.consistency.ConsistencyCheck",
#     "weblate.checks.consistency.ReusedCheck",
#     "weblate.checks.consistency.TranslatedCheck",
#     "weblate.checks.chars.EscapedNewlineCountingCheck",
#     "weblate.checks.chars.NewLineCountCheck",
#     "weblate.checks.markup.BBCodeCheck",
#     "weblate.checks.chars.ZeroWidthSpaceCheck",
#     "weblate.checks.render.MaxSizeCheck",
#     "weblate.checks.markup.XMLValidityCheck",
#     "weblate.checks.markup.XMLTagsCheck",
#     "weblate.checks.markup.MarkdownRefLinkCheck",
#     "weblate.checks.markup.MarkdownLinkCheck",
#     "weblate.checks.markup.MarkdownSyntaxCheck",
#     "weblate.checks.markup.URLCheck",
#     "weblate.checks.markup.SafeHTMLCheck",
#     "weblate.checks.placeholders.PlaceholderCheck",
#     "weblate.checks.placeholders.RegexCheck",
#     "weblate.checks.duplicate.DuplicateCheck",
#     "weblate.checks.source.OptionalPluralCheck",
#     "weblate.checks.source.EllipsisCheck",
#     "weblate.checks.source.MultipleFailingCheck",
#     "weblate.checks.source.LongUntranslatedCheck",
#     "weblate.checks.format.MultipleUnnamedFormatsCheck",
#     "weblate.checks.glossary.GlossaryCheck",
# )

# List of automatic fixups
# AUTOFIX_LIST = (
#     "weblate.trans.autofixes.whitespace.SameBookendingWhitespace",
#     "weblate.trans.autofixes.chars.ReplaceTrailingDotsWithEllipsis",
#     "weblate.trans.autofixes.chars.RemoveZeroSpace",
#     "weblate.trans.autofixes.chars.RemoveControlChars",
#     "weblate.trans.autofixes.chars.DevanagariDanda",
#     "weblate.trans.autofixes.html.BleachHTML",
# )

# List of enabled addons
# WEBLATE_ADDONS = (
#     "weblate.addons.gettext.GenerateMoAddon",
#     "weblate.addons.gettext.UpdateLinguasAddon",
#     "weblate.addons.gettext.UpdateConfigureAddon",
#     "weblate.addons.gettext.MsgmergeAddon",
#     "weblate.addons.gettext.GettextCustomizeAddon",
#     "weblate.addons.gettext.GettextAuthorComments",
#     "weblate.addons.cleanup.CleanupAddon",
#     "weblate.addons.cleanup.RemoveBlankAddon",
#     "weblate.addons.consistency.LangaugeConsistencyAddon",
#     "weblate.addons.discovery.DiscoveryAddon",
#     "weblate.addons.autotranslate.AutoTranslateAddon",
#     "weblate.addons.flags.SourceEditAddon",
#     "weblate.addons.flags.TargetEditAddon",
#     "weblate.addons.flags.SameEditAddon",
#     "weblate.addons.flags.BulkEditAddon",
#     "weblate.addons.generate.GenerateFileAddon",
#     "weblate.addons.generate.PseudolocaleAddon",
#     "weblate.addons.generate.PrefillAddon",
#     "weblate.addons.generate.FillReadOnlyAddon",
#     "weblate.addons.json.JSONCustomizeAddon",
#     "weblate.addons.xml.XMLCustomizeAddon",
#     "weblate.addons.properties.PropertiesSortAddon",
#     "weblate.addons.git.GitSquashAddon",
#     "weblate.addons.removal.RemoveComments",
#     "weblate.addons.removal.RemoveSuggestions",
#     "weblate.addons.resx.ResxUpdateAddon",
#     "weblate.addons.yaml.YAMLCustomizeAddon",
#     "weblate.addons.cdn.CDNJSAddon",
# )

# E-mail address that error messages come from.
SERVER_EMAIL = "noreply@example.com"

# Default email address to use for various automated correspondence from
# the site managers. Used for registration emails.
DEFAULT_FROM_EMAIL = "noreply@example.com"

# List of URLs your site is supposed to serve
ALLOWED_HOSTS = ["*"]

# Configuration for caching
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        # If redis is running on same host as Weblate, you might
        # want to use unix sockets instead:
        # "LOCATION": "unix:///var/run/redis/redis.sock?db=1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PARSER_CLASS": "redis.connection.HiredisParser",
            # If you set password here, adjust CELERY_BROKER_URL as well
            "PASSWORD": None,
            "CONNECTION_POOL_KWARGS": {},
        },
        "KEY_PREFIX": "weblate",
        "TIMEOUT": 3600,
    },
    "avatar": {
        "BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
        "LOCATION": os.path.join(CACHE_DIR, "avatar"),
        "TIMEOUT": 86400,
        "OPTIONS": {"MAX_ENTRIES": 1000},
    },
}

# Store sessions in cache
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
# Store messages in session
MESSAGE_STORAGE = "django.contrib.messages.storage.session.SessionStorage"

# REST framework settings for API
REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    "DEFAULT_PERMISSION_CLASSES": [
        # Require authentication for login required sites
        "rest_framework.permissions.IsAuthenticated"
        if REQUIRE_LOGIN
        else "rest_framework.permissions.IsAuthenticatedOrReadOnly"
    ],
    "DEFAULT_AUTHENTICATION_CLASSES": (
        "rest_framework.authentication.TokenAuthentication",
        "weblate.api.authentication.BearerAuthentication",
        "rest_framework.authentication.SessionAuthentication",
    ),
    "DEFAULT_THROTTLE_CLASSES": (
        "weblate.api.throttling.UserRateThrottle",
        "weblate.api.throttling.AnonRateThrottle",
    ),
    "DEFAULT_THROTTLE_RATES": {"anon": "100/day", "user": "5000/hour"},
    "DEFAULT_PAGINATION_CLASS": "weblate.api.pagination.StandardPagination",
    "PAGE_SIZE": 50,
    "VIEW_DESCRIPTION_FUNCTION": "weblate.api.views.get_view_description",
    "UNAUTHENTICATED_USER": "weblate.auth.models.get_anonymous",
}

# Fonts CDN URL
FONTS_CDN_URL = None

# Django compressor offline mode
COMPRESS_OFFLINE = False
COMPRESS_OFFLINE_CONTEXT = "weblate.utils.compress.offline_context"

# Require login for all URLs
if REQUIRE_LOGIN:
    LOGIN_REQUIRED_URLS = (r"/(.*)$",)

# In such case you will want to include some of the exceptions
# LOGIN_REQUIRED_URLS_EXCEPTIONS = (
#    rf"{URL_PREFIX}/accounts/(.*)$",  # Required for login
#    rf"{URL_PREFIX}/admin/login/(.*)$",  # Required for admin login
#    rf"{URL_PREFIX}/static/(.*)$",  # Required for development mode
#    rf"{URL_PREFIX}/widgets/(.*)$",  # Allowing public access to widgets
#    rf"{URL_PREFIX}/data/(.*)$",  # Allowing public access to data exports
#    rf"{URL_PREFIX}/hooks/(.*)$",  # Allowing public access to notification hooks
#    rf"{URL_PREFIX}/healthz/$",  # Allowing public access to health check
#    rf"{URL_PREFIX}/api/(.*)$",  # Allowing access to API
#    rf"{URL_PREFIX}/js/i18n/$",  # JavaScript localization
#    rf"{URL_PREFIX}/contact/$",  # Optional for contact form
#    rf"{URL_PREFIX}/legal/(.*)$",  # Optional for legal app
#    rf"{URL_PREFIX}/avatar/(.*)$",  # Optional for avatars
# )

# Silence some of the Django system checks
SILENCED_SYSTEM_CHECKS = [
    # We have modified django.contrib.auth.middleware.AuthenticationMiddleware
    # as weblate.accounts.middleware.AuthenticationMiddleware
    "admin.E408"
]

# Celery worker configuration for testing
# CELERY_TASK_ALWAYS_EAGER = True
# CELERY_BROKER_URL = "memory://"
# CELERY_TASK_EAGER_PROPAGATES = True
# Celery worker configuration for production
CELERY_TASK_ALWAYS_EAGER = False
CELERY_BROKER_URL = "redis://localhost:6379"
CELERY_RESULT_BACKEND = CELERY_BROKER_URL

# Celery settings, it is not recommended to change these
CELERY_WORKER_MAX_MEMORY_PER_CHILD = 200000
CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler"
CELERY_TASK_ROUTES = {
    "weblate.trans.tasks.auto_translate*": {"queue": "translate"},
    "weblate.accounts.tasks.notify_*": {"queue": "notify"},
    "weblate.accounts.tasks.send_mails": {"queue": "notify"},
    "weblate.utils.tasks.settings_backup": {"queue": "backup"},
    "weblate.utils.tasks.database_backup": {"queue": "backup"},
    "weblate.wladmin.tasks.backup": {"queue": "backup"},
    "weblate.wladmin.tasks.backup_service": {"queue": "backup"},
    "weblate.memory.tasks.*": {"queue": "memory"},
}

# CORS allowed origins
CORS_ALLOWED_ORIGINS = []
CORS_URLS_REGEX = r"^/api/.*$"

# Enable plain database backups
DATABASE_BACKUP = "plain"

# Enable auto updating
AUTO_UPDATE = False

# PGP commits signing
WEBLATE_GPG_IDENTITY = None

# Third party services integration
MATOMO_SITE_ID = None
MATOMO_URL = None
GOOGLE_ANALYTICS_ID = None
SENTRY_DSN = None
SENTRY_ENVIRONMENT = SITE_DOMAIN
AKISMET_API_KEY = None

Yönetim komutları#

Not

Yönetim komutlarını site sunucunuzu çalıştıran kullanıcıdan başka bir kullanıcı ile çalıştırmak, dosya izinlerinin yanlış olmasına neden olabilir. Bilgi almak için: Dosya sistemi izinleri.

Temel yönetim komutlarını (Django kaynaklarında ./manage.py dosyasında ya da genişletilmiş bir küme olarak Weblate üzerine kurulabilen weblate adlı betik dosyasında bulabilirsiniz).

Yönetim komutlarını çağırmak#

Daha önce de belirtildiği gibi, çağrı yöntemi Weblate kurulumunuza bağlıdır.

Weblate için virtualenv kullanıyorsanız, weblate komutunun tam yolunu belirtebilir ya da çağırmadan önce virtualenv etkinleştirebilirsiniz:

# Direct invocation
~/weblate-env/bin/weblate

# Activating virtualenv adds it to search path
. ~/weblate-env/bin/activate
weblate

Kaynak kodunu doğrudan kullanıyorsanız (tarball ya da Git checkout menüsünden), Weblate kaynaklarındaki yönetim betiği ./manage.py dosyasıdır. Çalıştırmak için:

python ./manage.py list_versions

Weblate kurulumu için pip kurucusunu ya da ./setup.py betiğini kullandıysanız, Weblate denetimi için kullanılacak weblate yolunuza (ya da kullandığınız virtualenv yoluna) kurulur:

weblate list_versions

Docker kalıbında betik yukarıdaki gibi kurulur ve docker exec komutuyla çalıştırıllabilir:

docker exec --user weblate <container> weblate list_versions

docker-compose-plugin için de işlem benzerdir. Yalnızca docker compose exec kullanmanız gerekir:

docker compose exec --user weblate weblate weblate list_versions

Bir dosya belirtleniz gerekirse, geçici olarak bir birim ekleyebilirsiniz:

docker compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json

docker-compose için de işlem benzerdir. Yalnızca docker-compose exec kullanmanız gerekir:

docker-compose exec --user weblate weblate weblate list_versions

Bir dosya belirtleniz gerekirse, geçici olarak bir birim ekleyebilirsiniz:

docker-compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json

add_suggestions#

weblate add_suggestions <project> <component> <language> <file>#

Dosyadaki çeviriyi belirtilen çeviri için öneri olarak içe aktarır. Aynı olan çevirileri atlar. Yalnızca farklı olanları ekler.

--author USER@EXAMPLE.COM#

Önerileriniz için sorumlu e-posta adresi. Bu kullanıcının içe aktarma işleminden önce var olması gerekir (gerekirse yönetici arayüzünden bir kullanıcı oluşturabilirsiniz).

Örnek:

weblate --author michal@cihar.com add_suggestions weblate application cs /tmp/suggestions-cs.po

auto_translate#

weblate auto_translate <project> <component> <language>#

4.6 sürümünde değişti: Çeviri kipi parametresi eklenir.

Diğer bileşen çevirilerini temel alarak kendiliğinden çeviri yapar.

--source PROJECT/COMPONENT#

Çeviri için kaynak olarak kullanılacak bileşeni belirtir. Belirtilmediğinde, projedeki tüm bileşenler kullanılır.

--user USERNAME#

Çevirilerin yazarı olarak görüntülenecek kullanıcı adını belirtir. Belirtilmediğinde “Anonim” olarak görüntülenir.

--overwrite#

Var olan çevirilerin üzerine yazılıp yazılmayacağını belirler.

--inconsistent#

Tutarsız olan var olan çevirilerin üzerine yazılıp yazılmayacağını belirler (bilgi almak için Tutarsız).

--add#

Belirtilen bir çeviri bulunmuyorsa dili kendiliğinden ekler.

--mt MT#

Makine çevirisi olarak diğer bileşenler yerine makine çevirisini kullanır.

--threshold THRESHOLD#

Makine çevirisi için benzerlik eşiği. Varsayılan değer: 80.

--mode MODE#

Çeviri kipini belirtir. Varsayılan değer: translate. fuzzy ya da suggest seçenekleri de kullanılabilir.

Örnek:

weblate auto_translate --user nijel --inconsistent --source weblate/application weblate website cs

Ayrıca bakınız

Kendiliğinden çeviri

celery_queues#

weblate celery_queues#

3.7 sürümünde geldi.

Celery görev kuyruklarının uzunluğunu görüntüler.

checkgit#

weblate checkgit <project|project/component>#

Arka uç Git deposunun geçerli durumunu yazdırır.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilirsiniz (weblate/application gibi) ya da var olan tüm bileşenleri güncellemek için --all seçeneğini kullanabilirsiniz.

commitgit#

weblate commitgit <project|project/component>#

Arka uç Git deposunda bekliyor olabilecek değişiklikleri işler.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilir (weblate/application gibi), var olan tüm bileşenleri güncellemek için -all seçeneğini kullanabilir ya da dosya biçimine göre süzmek için --file-format seçeneğini kullanabilirsiniz.

commit_pending#

weblate commit_pending <project|project/component>#

Belirli bir süreden daha önce bekleyen değişiklikleri işler.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilirsiniz (weblate/application gibi) ya da var olan tüm bileşenleri güncellemek için --all seçeneğini kullanabilirsiniz.

--age HOURS#

İşleme için saat olarak yaş. Belirtilmezse, Bileşen yapılandırması içinde yapılandırılmış değer kullanılır.

Not

Bu işlem, Weblate tarafından arka planda kendiliğinden yapılır. Bu nedenle Bileşen yapılandırması tarafından belirtilenden daha erken bir işlemeyi dayatmanın yanında, bunu el ile çağırmaya gerek yoktur.

cleanuptrans#

weblate cleanuptrans#

Arta kalmış denetimleri ve çeviri önerilerini temizler. Normalde bunu el ile çalıştırmaya gerek yoktur. Temizlik arka planda kendiliğinden yapılır.

Ayrıca bakınız

Bakım görevlerini yürütmek

cleanup_ssh_keys#

weblate cleanup_ssh_keys#

4.9.1 sürümünde geldi.

Depolanmış SSH sunucu anahtarlarını temizler:

  • GitHub tarafından kullanımdan kaldırılmış RSA anahtarlarını GitHub ile bağlantı kurma sorunlarına yol açmaması için kaldırır.

  • Çift sunucu anahtarı kayıtlarını kaldırır.

Ayrıca bakınız

SSH depoları

createadmin#

weblate createadmin#

Parola belirtilmemişse rastgele bir parolay ile bir admin hesabı oluşturur.

--password PASSWORD#

Rastgele bir parola oluşturulmaması için komut satırından bir parola belirtilmesini sağlar.

--no-password#

Parola ayarlanmaz. Bu kullanım –update seçeneği ile yararlı olabilir.

--username USERNAME#

Admin yerine belirtilen ad kullanılır.

--email USER@EXAMPLE.COM#

Yönetici e-posta adresini belirtir.

--name#

Yönetici adını belirtir (görüntülenecek).

--update#

Var olan kullanıcıyı günceller (parolaları değiştirmek için bunu kullanabilirsiniz).

dump_memory#

weblate dump_memory#

Weblate çeviri belleği içeriğini bir JSON dosyası olarak dışa aktarır.

dumpuserdata#

weblate dumpuserdata <file.json>#

Kullanıcı verilerini daha sonra weblate weblate importuserdata tarafından kullanılabilecek biçimde bir dosyaya kaydeder.

İpucu

Bu seçenek, Weblate kopyalarını taşırken ya da birleştirirken işe yarar.

import_demo#

weblate import_demo#

4.1 sürümünde geldi.

<https://github.com/WeblateOrg/demo> bileşenlerini temel alan bir tanıtım projesi oluşturur. Bu komutu çalıştırmadan önce Celery görevlerinin çalıştığından emin olun.

Bu seçenek, Weblate geliştirme çalıştırmaları için yararlı olabilir.

import_json#

weblate import_json <json-file>#

JSON verileri kullanan bileşenleri toplu olarak içe aktarır.

İçe aktarılan JSON dosya yapısı aşağı yukarı bileşen nesnesine karşılık gelir (bilgi almak için: GET /api/components/(string:project)/(string:component)/). name ve filemask alanlarını katmanız gerekir.

--project PROJECT#

Bileşenlerin nereden içe aktarılacağını belirtir.

--main-component COMPONENT#

Bunların tümü için bu bileşenden verilen sürüm denetimi sistemi deposunu kullanır.

--ignore#

İçe aktarılmış (zaten) bileşenleri atlar.

--update#

İçe aktarılmış (zaten) bileşenleri günceller.

JSON dosyası örneği:

[
  {
    "slug": "po",
    "name": "Gettext PO",
    "file_format": "po",
    "filemask": "po/*.po",
    "new_lang": "none"
  },
  {
    "name": "Android",
    "filemask": "android/values-*/strings.xml",
    "template": "android/values/strings.xml",
    "repo": "weblate://test/test",
    "file_format": "aresource"
  }
]

Ayrıca bakınız

weblate weblate import_memory

import_memory#

weblate import_memory <file>#

TMX ya da JSON dosyasını Weblate çeviri belleği içine aktarır.

--language-map LANGMAP#

TMX dosyasındaki dillerin Weblate çeviri belleği ile eşlenmesini sağlar. Dil kodları genellikle Weblate tarafından yapılan normalleştirmeden sonra eşlenir.

Örneğin, --language-map en_US:en, tüm en_US dizgelerini en dizgeleri olarak içe aktarır.

Bu seçenek, TMX dosyasının yerel ayarlarının Weblate üzerindekiler ile eşleşmemesi durumunda yararlı olabilir.

import_project#

weblate import_project <project> <gitrepo> <branch> <filemask>#

3.0 sürümünde değişti: import_project komutu artık Bileşen keşfi eklentisini temel aldığından davranışında ve kabul ettiği parametrelerde bazı değişiklikler vardır.

Toplu işlem, bileşenleri dosya maskesine göre projeye aktarır.

<project>, bileşenlerin içe aktarılacağı var olan bir projeyi adlandırır.

<gitrepo>, kullanılacak Git deposu adresini tanımlar ve <branch> Git dalını belirtir. Var olan bir Weblate bileşeninden ek çeviri bileşenlerini içe aktarmak için, <gitrepo> için bir weblate://<project>/<component> adresi kullanın.

<filemask>, depoda aranacak dosyaları tanımlar. Genel arama karakterleri kullanılarak basitleştirilebilir ya da kurallı ifadelerin tüm gücünü kullanabilir.

Basit eşleştirmede, bileşen adı için ** ve dil için * kullanılır. Örnek: **/*.po

Kurallı ifadede component ve `language adlı gruplar bulunmalıdır. Örneğin: (?P<language>[^/]*)/(?P<component>[^-/]*)\.po

İçe aktarma, dosyalara bakarak var olan bileşenleri bulur ve var olmayanları ekler. Zaten var olanları değiştirmez.

--name-template TEMPLATE#

Django kalıp söz dizimini kullanarak bir bileşenin adını özelleştirin.

Örnek: Belgeler: {{ component }}

--base-file-template TEMPLATE#

Tek dilli çeviriler için temel dosyayı özelleştirin.

Örnek: {{ component }}/res/values/string.xml

--new-base-template TEMPLATE#

Yeni çevirilerin eklenmesi için temel dosyayı özelleştirin.

Örnek: {{ component }}/ts/en.ts

--file-format FORMAT#

Kullanılacak dosya biçimini de belirtebilirsiniz (bilgi almak için: Desteklenen dosya biçimleri). Varsayılan değer: otomatik algılama.

--language-regex REGEX#

Bu parametreyle süzülecek dili belirtebilirsiniz (bilgi almak için: Bileşen yapılandırması). Kurallı ifade geçerli olmalıdır.

--main-component#

Hangi bileşenin ana bileşen olarak seçileceğini belirtebilirsiniz. VCS deposunu içeren bileşen olmalıdır.

--license NAME#

Genel, proje veya bileşen çeviri lisansını belirtin.

--license-url URL#

Çeviri lisansının bulunduğu adresi belirtin.

--vcs NAME#

Hangi sürüm denetim sistemini kullanacağınızı belirtmeniz gerekirse, buradan yapabilirsiniz. Varsayılan sürüm denetimi: Git.

Örnek olması için, iki projeyi içe aktarmayı deneyelim.

İlk olarak, her dilin her bölümün çevirilerinin ayrı bir klasörde bulunan Debian el kitabı çevirileri:

weblate import_project \
    debian-handbook \
    git://anonscm.debian.org/debian-handbook/debian-handbook.git \
    squeeze/master \
    '*/**.po'

Ardından, temel dosya kalıbıyla birlikte dosya biçiminin belirtilmesi gereken Tanaguru aracı ve tüm bileşenler ile çevirilerin tek bir klasörde nasıl bulunduğu:

weblate import_project \
    --file-format=properties \
    --base-file-template=web-app/tgol-web-app/src/main/resources/i18n/%s-I18N.properties \
    tanaguru \
    https://github.com/Tanaguru/Tanaguru \
    master \
    web-app/tgol-web-app/src/main/resources/i18n/**-I18N_*.properties

Daha karmaşık bir örnek olarak, src/security/Numerous_security_holes_in_0.10.1.de.po gibi bir dosya adından doğru bileşeni ve dili ayıklamak:

weblate import_project \
    tails \
    git://git.tails.boum.org/tails master \
    'wiki/src/security/(?P<component>.*)\.(?P<language>[^.]*)\.po$'

Yalnızca seçilmiş bir dildeki çevirileri süzme:

./manage import_project \
    --language-regex '^(cs|sk)$' \
    weblate \
    https://github.com/WeblateOrg/weblate.git \
    'weblate/locale/*/LC_MESSAGES/**.po'

Birden çok dosyaya ayrılmış Sphinx belgelerini içe aktarmak:

$ weblate import_project --name-template 'Documentation: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/**.po'

Birden çok dosya ve klasöre ayrılmış Sphinx belgelerini içe aktarmak:

$ weblate import_project --name-template 'Directory 1: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir1/**.po'
$ weblate import_project --name-template 'Directory 2: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir2/**.po'

Ayrıca bakınız

Daha ayrıntılı örnekler Yerelleştirmeye başlamak bölümünde bulunabilir. Alternatif olarak weblate weblate import_json kullanmak isteyebilirsiniz.

importuserdata#

weblate importuserdata <file.json>#

weblate weblate dumpuserdata ile oluşturulmuş bir dosyadan kullanıcı verilerini içe aktarır.

importusers#

weblate importusers --check <file.json>#

Django auth_users veri tabanının JSON dökümünden kullanıcıları içe aktarır.

--check#

Bu seçenekle, yalnızca belirli bir dosyanın içe aktarılıp aktarılamayacağı denetlenir ve kullanıcı adlarından ya da e-posta adreslerinden kaynaklanan olası çakışmalar bildirilir.

Şunu kullanarak kullanıcıları var olan Django kurulumundan dökebilirsiniz:

weblate dumpdata auth.User > users.json

install_addon#

3.2 sürümünde geldi.

weblate install_addon --addon ADDON <project|project/component>#

Bir bileşen kümesine bir eklenti kurar.

--addon ADDON#

Kurulacak eklentinin adı. Örneğin weblate.gettext.customize.

--configuration CONFIG#

Bir eklentinin JSON olarak kodlanmış yapılandırması.

--update#

Var olan eklenti yapılandırmasını güncelle.

Eklentinin hangi projeye ya da bileşene kurulacağını belirtebilir (weblate/application gibi) ya da var olan tüm bileşenleri katmak için --all kullanabilirsiniz.

Tüm bileşenler için Gettext çıktısını özelleştirme kurmak için:

weblate install_addon --addon weblate.gettext.customize --configuration '{"width": -1}' --update --all

Ayrıca bakınız

Eklentiler

install_machinery#

4.18 sürümünde geldi.

weblate install_machinery --service SERVICE#

Site genelinde çalışacak bir kendiliğinden öneri hizmeti kurar.

--service SERVICE#

Kurulacak hizmetin adı. Örneğin deepl.

--configuration CONFIG#

Bir hizmetin JSON olarak kodlanmış yapılandırması.

--update#

Var olan hizmet yapılandırmasını güncelle.

Kurmak için DeepL:

weblate install_service --service deepl --configuration '{"key": "x", "url": "https://api.deepl.com/v2/"}' --update

list_languages#

weblate list_languages <locale>#

MediaWiki kodlarında desteklenen dilleri listeler. Dil kodları, İngilizce adlar ve yerelleştirilmiş adlar.

Bu, <https://wiki.l10n.cz/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF> oluşturmak için kullanılır.

list_translators#

weblate list_translators <project|project/component>#

Belirtilen projeye katkıda bulunan çevirmenleri dile göre listeler:

[French]
Jean Dupont <jean.dupont@example.com>
[English]
John Doe <jd@example.com>
--language-code#

Adları dil adı yerine dil koduna göre listeler.

Hangi projenin ya da bileşenin kullanılacağını belirtebilirsiniz (weblate/application gibi) ya da var olan tüm bileşenlerin çevirmenlerini listelemek için --all seçeneğini kullanabilirsiniz.

list_versions#

weblate list_versions#

Tüm Weblate bağımlılıklarını ve sürümlerini listeler.

loadpo#

weblate loadpo <project|project/component>#

Çevirileri diskten yeniden yükler (örneğin, sürüm denetimi sistemi deposunda bazı güncellemeler yaptıysanız).

--force#

Dosyalar güncel olsa bile güncellemeye dayatın.

--lang LANGUAGE#

İşlemi tek bir dille sınırlandırın.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilirsiniz (weblate/application gibi) ya da var olan tüm bileşenleri güncellemek için --all seçeneğini kullanabilirsiniz.

Not

Bunu nadiren çağırmanız gerekir, Weblate her sürüm denetimi sistemi güncellemesi için değiştirilen dosyaları otomatik olarak yükler. Bu işlem, temel alınan bir Weblate sürüm denetimi sistemi deposunu el ile değiştirmeniz durumunda ya da yükseltmenin ardından bazı özel durumlarda gerekir.

lock_translation#

weblate lock_translation <project|project/component>#

Bir bileşen üzerinde çeviri yapılmasını önler.

İpucu

Temel alınan depoda bazı bakım işlemleri yapmak istediğinizde yararlıdır.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilirsiniz (weblate/application gibi) ya da var olan tüm bileşenleri güncellemek için --all seçeneğini kullanabilirsiniz.

migrate#

weblate migrate#

Veri tabanını geçerli Weblate şemasına aktarır. Komut satırı seçenekleri Django migrate bölümünde açıklanmıştır.

İpucu

Bir kurulumu etkileşimsiz olarak yapmak isterseniz, weblate migrate --noinput komutunu kullanabilir ve ardından weblate weblate createadmin komutu ile bir yönetici kullanıcı oluşturabilirsiniz.

Ayrıca bakınız

migrate, Veri tabanını doldurmak

move_language#

weblate move_language source target#

3.0 sürümünde geldi.

Dil içeriğini birleştirmenizi sağlar. Bu seçenek, (generated) son ekiyle oluşturulmuş daha önce bilinmeyen dillerin diğer adlarını içeren yeni bir sürüme güncellerken yararlıdır. Tüm içeriği kaynak dilden hedef dile taşır.

Örnek:

weblate move_language cze cs

İçeriği taşıdıktan sonra, geride bir şey kalıp kalmadığını denetleyip (bu arada birisi depoyu güncellerse yarış koşulları geçerli olur) ve (generated) dili kaldırmalısınız.

pushgit#

weblate pushgit <project|project/component>#

İşlenen değişiklikleri yukarı akış sürüm denetimi deposuna iter.

--force-commit#

Bekleyen değişikliklerin itilmeden önce işlenmesini dayatır.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilirsiniz (weblate/application gibi) ya da var olan tüm bileşenleri güncellemek için --all seçeneğini kullanabilirsiniz.

Not

Weblate Bileşen yapılandırması içindeki İşleme ile itme seçeneği açılmış ise değişiklikler otomatik olarak gönderilir ve bu varsayılan değerdir.

unlock_translation#

weblate unlock_translation <project|project/component>#

Belirli bir bileşenin kilidini açarak çeviri yapılmasına izin verir.

İpucu

Temel alınan depoda bazı bakım işlemleri yapmak istediğinizde yararlıdır.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilirsiniz (weblate/application gibi) ya da var olan tüm bileşenleri güncellemek için --all seçeneğini kullanabilirsiniz.

setupgroups#

weblate setupgroups#

Varsayılan grupları yapılandırır ve isteğe bağlı olarak tüm kullanıcıları bu varsayılan gruba atar.

--no-privs-update#

Var olan grupların otomatik olarak güncellenmesini kapatır (yalnızca yeniler eklenir).

--no-projects-update#

Var olan projeler için grupların otomatik olarak güncellenmesini engeller. Bu seçenek, var olan projelere yeni grupların eklenmesine izin verir. Bilgi almak için: Proje erişim denetimi.

setuplang#

weblate setuplang#

Weblate üzerinde tanımlanmış dillerin listesini günceller.

--no-update#

Var olan dillerin otomatik olarak güncellenmesini kapatır (yalnızca yeniler eklenir).

updatechecks#

weblate updatechecks <project|project/component>#

Tüm dizgeler için tüm denetimleri günceller.

İpucu

Denetimlerde büyük değişiklikler yapılmış olan yükseltmelerde yararlıdır.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilirsiniz (weblate/application gibi) ya da var olan tüm bileşenleri güncellemek için --all seçeneğini kullanabilirsiniz.

Not

Denetimler Weblate tarafından düzenli olarak arka planda yeniden hesaplanır. Sıklık BACKGROUND_TASKS seçeneği ile yapılandırılabilir.

updategit#

weblate updategit <project|project/component>#

Uzak sürüm denetimi sistemi depolarını getirir ve iç ön belleği günceller.

Hangi projenin veya bileşenin güncelleneceğini tanımlayabilirsiniz (weblate/application gibi) ya da var olan tüm bileşenleri güncellemek için --all seçeneğini kullanabilirsiniz.

Not

Genellikle depodaki kancaları, weblate weblate updategit ile düzenli olarak yoklamak yerine, Bildirim kancaları ögesini tetikleyecek şekilde yapılandırmak daha iyidir.

Duyurular#

4.0 sürümünde değişti: Önceki sürümlerde bu özelliğe beyaz tahta iletileri adı veriliyordu.

Site genelinde, projeye, bileşene ya da dile özel duyurular yayınlayarak çevirmenlerinize bilgi sağlayın.

Amacı, bitiş tarihlerini ve durumu duyurun ya da çeviri hedeflerini belirtin.

Kullanıcılar, izledikleri projelerin duyuruları ile ilgili bir bildirim alır (devre dışı bırakmadıkları sürece).

Bu özellik, sitenin amacını duyurmaktan çeviriler için hedefler belirlemeye kadar çeşitli konularda yararlı olabilir.

Duyurular, Yönetim menüsündeki Duyuru yayınla seçeneği ile istenilen düzeyde yayınlanabilir:

Panonun üst bölümünde “Yalnızca %60 oranına ulaşmış çeviriler kullanılacaktır" şeklinde bir duyuru görüntüleyen görsel.

Yönetim arayüzü kullanılarak da eklenebilir:

_images/announcement.png

Duyurular daha sonra belirtilen bağlamlarına göre görüntülenir:

Herhangi bir bağlam belirtilmediğinde

Panoda görüntülenir (giriş sayfası).

Proje belirtildiğinde

Projenin tüm bileşenleri ve çevirilerinde görüntülenir.

Bileşen belirtildiğinde

Belirtilen bileşen ve tüm çevirilerinde görüntülenir.

Dil belirtildiğinde

Dil özeti ve bu dildeki tüm çevirilerde görüntülenir.

Dil özet sayfası şöyle görüntülenir:

Türkçe dili özetinin üstünde “Türkçe çevirmenleri coştu!” yazan bir duyuruyu görüntüleyen görsel.

Bileşen listeleri#

Kullanıcı panosunda seçenek olarak görüntülenecek ve kullanıcıların varsayılan görünümleri olarak birini seçebileceği birkaç bileşen listesi belirtin. Bilgi almak için Pano.

İpucu

Panoda sunulan her bileşen listesi için bir durum görüntülenir.

Bileşen listelerinin adları ve içeriği, yönetim arayüzünde, Bileşen listeleri bölümünde belirtilebilir. Her bileşen listesinin kullanıcıya görüntülenen bir adı ve adresi ile onu temsil eden bir kısaltması olmalıdır.

İpucu

Yönetim bölümünden anonim kullanıcılar için pano ayarlarını değiştirerek kimliği doğrulanmamış kullanıcılara hangi panonun sunulacağını belirtin.

Kendiliğinden bileşen listeleri#

Kendiliğinden bileşen listesi ataması kuralları oluşturarak bileşenleri kısaltmalarına göre kendiliğinden listeye ekleyebilirsiniz.

  • Büyük kurulumlarda bileşen listelerini korumak için ya da Weblate kurulumunuzdaki tüm bileşenleri içeren tek bir bileşen listesi elde etmek istediğinizde kullanışlıdır.

İpucu

Weblate kurulumunuzdaki tüm bileşenlerin bulunduğu bir bileşen listesi oluşturun.

1. Define Automatic component list assignment with ^.*$ as regular expression in both the project and the component fields, as shown on this image:

Yukarıdaki yapılandırmanın ayarlandığı Weblate yönetim panosu görseli.

İsteğe bağlı Weblate modülleri#

Kurulumunuz için isteğe bağlı çeşitli modüller vardır.

Git dışa aktarıcı#

HTTP(S) kullanarak temel alınan Git deposuna salt okunur erişim sağlar.

Kurulum#

  1. settings.py dosyasındaki kurulu uygulamalara weblate.gitexport ekleyin:

INSTALLED_APPS += ("weblate.gitexport",)
  1. Kurulumdan sonra veri tabanınızı aktararak var olan depoları dışa aktarın:

weblate migrate

Kullanım#

Modül otomatik olarak Weblate bağlantısı kurar ve Bileşen yapılandırması içinde dışa aktarılan depo adresini ayarlar. Depolara Weblate adresinin /git/ bölümünden erişilebilir. örneğin https://site.org/git/weblate/main/.

Herkese açık projelerin depoları kimlik doğrulaması olmadan kopyalanabilir:

git clone 'https://example.org/git/weblate/main/'

Sınırlanmış erişimi olan depolara göz atmak için erişim (Gizli erişim denetimi ile ya da REQUIRE_LOGIN seçeneği etkinleştirilerek), <user-profile> kullanıcı profilinizden alabileceğiniz bir API kodu ile sağlanır:

git clone 'https://user:KEY@example.org/git/weblate/main/'

İpucu

Varsayılan olarak, üyeler veya Kullanıcılar grubu ve anonim kullanıcı, herkese açık projeler için depolara Depo erişimi ve Uzman kullanıcı rolleri ile erişebilir.

Faturalama#

Bu seçenek, faturalama tarifelerini tanımlamak, faturaları ve kullanım sınırlarını izlemek için Hosted Weblate üzerinde kullanılır.

Kurulum#

1. Add weblate.billing to installed apps in settings.py:

INSTALLED_APPS += ("weblate.billing",)
  1. İsteğe bağlı olarak modül için ek veri tabanı yapıları kurmak üzere veri tabanı aktarımını çalıştırın:

weblate migrate

Kullanım#

Kurulumdan sonra faturalamayı yönetici arayüzünden yönetebilirsiniz. Faturalamanın etkin olduğu kullanıcılara Kullanıcı profili içinde Faturalama sekmesi görüntülenir.

Faturalama modülü ayrıca proje yöneticilerinin süper kullanıcı olmadan yeni projeler ve bileşenler oluşturmasını sağlar (bilgi almak için: Çeviri projelerini ve bileşenleri eklemek). Bunun için şu koşullar yerine getirilmelidir:

  • Faturalama yapılandırılmış sınırlar içindedir (aşırı kullanım, proje/bileşen oluşturulmasını engeller) ve ödenmiştir (fiyatı sıfır değilse)

  • Kullanıcı, faturalama ile var olan projenin yöneticisidir ya da kullanıcı faturalamanın sahibidir (ikincisi, kullanıcıların yeni projeleri içe aktarabilmesi için yeni faturalama oluştururken gereklidir).

Proje oluşturulduktan sonra kullanıcı, daha fazla özelliğe erişebilmesi durumunda proje için hangi fatura ücretlendirmesinin uygulanacağını seçebilir.

Avatarlar#

Avatarlar, varsayılan olarak hizmet verdikleri sitelerden bilgi sızıntılarını azaltmak için sunucu tarafına indirilir ve ön belleğe alınır. Bunun için yapılandırılmış e-posta adreslerinden avatarları almayı sağlama özelliği ENABLE_AVATARS seçeneği kullanılarak kapatılabilir.

Weblate şu anda şunları destekliyor:

İstenmeyen gönderim koruması#

Akismet hizmetiyle kullanıcıların istenmeyen gönderimler yapmasını engelleyebilirsiniz.

  1. Akismet Python modülünü kurun (resmi Docker kalıbında zaten vardır).

  2. Akismet API anahtarını edinin.

  3. WEBLATE_AKISMET_API_KEY ayarına ya da Docker üzerinde AKISMET_API_KEY ayarına ekleyin.

Şu içerikler denetlenmesi için Akismet üzerine gönderilir:

  • Kimliği doğrulanmamış kullanıcılardan öneriler

  • Proje ve bileşen açıklamaları ve bağlantıları

Not

Bu (diğer şeylerin yanında) istemcinin IP adresini kullanır. Lütfen bu yapılandırmayı düzgün bir şekilde yapmak için Ters vekil sunucu arkasında çalıştırmak bölümüne bakın.

Git işlemelerini GnuPG ile imzalamak#

3.1 sürümünde geldi.

Tüm işlemeler Weblate kopyasının GnuPG anahtarı tarafından imzalanabilir.

1. Turn on WEBLATE_GPG_IDENTITY. (Weblate will generate a GnuPG key when needed and will use it to sign all translation commits.)

Bu özellik için GnuPG 2.1 ya da üzerindeki bir sürüm kurulu olmalıdır.

Anahtarı DATA_DIR içinde bulabilirsiniz. Herkese açık anahtar “Hakkında” sayfasında görüntülenir:

_images/about-gpg.png

2. Alternatively you can also import existing keys into Weblate, just set HOME=$DATA_DIR/home when invoking gpg.

Ayrıca bakınız

WEBLATE_GPG_IDENTITY

Hızı sınırlamak#

3.2 sürümünde değişti: Hız sınırlaması artık daha ayrıntlı yapılandırabiliyor.

4.6 sürümünde değişti: Hız sınırlaması artık süper kullanıcılara uygulanmıyor.

Weblate üzerinde bazı işlemlere hız sınırlaması uygulanır. RATELIMIT_WINDOW saniye içinde en fazla RATELIMIT_ATTEMPTS girişim yapılmasına izin verilir. Kullanıcı daha sonra RATELIMIT_LOCKOUT süreyle engellenir. Kapsamlara özgü ayarlar da vardır. Örneğin RATELIMIT_CONTACT_ATTEMPTS ya da RATELIMIT_TRANSLATE_ATTEMPTS. Aşağıdaki tabloda, kullanılabilecek kapsamların tam listesini görebilirsiniz.

Hız sınırlaması uygulanan işlemler şunlardır:

Ad

Kapsam

İzin verilen girişimler

Hız sınırlaması aralığı

Kilitleme süresi

Hesap açılışı

REGISTRATION

5

300

600

Yöneticilere ileti göndermek

MESSAGE

2

300

600

Oturum açarken parola kimlik doğrulaması

LOGIN

5

300

600

Site genelinde arama

SEARCH

6

60

60

Çeviri

TRANSLATE

30

60

600

Sözlüğe ekleme

GLOSSARY

30

60

600

Yeni bir dil çevirisi başlatma

LANGUAGE

2

300

600

Yeni proje oluşturma

PROJECT

5

600

600

Bir kullanıcı AUTH_LOCK_ATTEMPTS kez oturum açamazsa, parola sıfırlama işlemini yapana kadar hesabın parola kimlik doğrulaması kapatılır.

Ayarlar, seçenek adına WEBLATE_ ön eki eklenerek Docker kapsayıcısına da uygulanabilir. Örneğin RATELIMIT_ATTEMPTS seçeneği WEBLATE_RATELIMIT_ATTEMPTS olur.

API için ayrı hız sınırlama ayarları vardır. Bilgi almak için: API hız sınırlaması.

Fedora iletileri bütünleştirmesi#

Fedora Messaging, Weblate üzerinde yapılan tüm değişiklikleri ileten AMQP temelli bir yayınlayıcıdır. Bunu kullanarak Weblate üzerindeki değişikliklere ek hizmetler bağlayabilirsiniz.

Fedora Messagin bütünleştirmesi, weblate-fedora-messaging ile ayrı bir Python modülü olarak kullanılabilir. Kurulum yönergeleri için <https://github.com/WeblateOrg/fedora_messaging/> adresine bakabilirsiniz.

Weblate platformunu özelleştirmek#

Django ve Python kullanarak zenginleştirebilir ve özelleştirebilirsiniz. Herkesin yararlanabilmesi için değişikliklerinizi yukarı akışa katın. Bu yöntem, bakım maliyetlerinizi azaltır. İç arayüzler değiştirilirken veya kod yeniden düzenlenirken Weblate üzerindeki kod ele alınır.

Uyarı

Ne iç arayüzler ne de kalıplar kararlı bir API olarak kabul edilmez. Lütfen her yükseltme için kendi özelleştirmelerinizi gözden geçirin. Arayüzler veya bağlamları önceden bildirilmeksizin değişebilir.

Bir Python modülü oluşturmak#

Python ile ilgili değilseniz, temel bilgileri açıklayan ve eğitimlerin bulunduğu ‘Yeni başlayanlar için Python <https://www.python.org/about/gettingstarted/>’_ bölümüne bakmak isteyebilirsiniz.

Özel Python kodu (modül olarak adlandırılır) içeren bir dosya yazmak için, sistem yolunda (genellikle /usr/lib/python3.9/site-packages/ gibi bir şey) veya yorumlayıcı arama yoluna da eklenen Weblate klasöründe bir depolama alanına gerek duyulur.

3.8-5 sürümünde geldi: Docker kullanıldığında, Python modüllerini /app/data/python/ (see Docker kapsayıcısı birimleri) içine yerleştirebilirsiniz. Böylece Weblate bunları yükleyebilir. Örneğin bir ayar değiştirme dosyası kullanabilirsiniz.

Daha da iyisi, özelleştirmenizi uygun bir Python paketine dönüştürebilirsiniz:

  1. Paketiniz için bir klasör oluşturun (`weblate_customization’ kullanacağız).

  2. İçinde paketi açıklayan bir setup.py dosyası oluşturun:

    from setuptools import setup
    
    setup(
        name="weblate_customization",
        version="0.0.1",
        author="Your name",
        author_email="yourname@example.com",
        description="Sample Custom check for Weblate.",
        license="GPLv3+",
        keywords="Weblate check example",
        packages=["weblate_customization"],
    )
    
  3. Özelleştirme kodunun bulunduğu Python modülü için bir klasör oluşturun (weblate_customization olarak da adlandırılır).

  4. İçinde bir __init__.py dosyası oluşturarak modülün Python tarafından içe aktarabildiğinden emin olun.

  5. Bu paket artık pip install -e kullanılarak kurulabilir. Bilgi almak için: Editable installs.

  6. Kurulduktan sonra, modül Weblate yapılandırmasında kullanılabilir (weblate_customization.checks.FooCheck gibi).

Paket yapınız şöyle görünmelidir:

weblate_customization
├── setup.py
└── weblate_customization
    ├── __init__.py
    ├── addons.py
    └── checks.py

<https://github.com/WeblateOrg/customize-example> adresinde bir Weblate özelleştirme örneği bulabilirsiniz. Bu örnek aşağıda açıklanan tüm konuları kapsar.

Özel kalite denetimleri, eklentiler ve kendiliğinden düzeltmeler#

Weblate üzerine Özel kendiliğinden düzeltmeler, Kendi denetimlerinizi oluşturmak ya da Eklenti yazma kodunuzu kurmak için:

  1. Dosyaları Weblate özelleştirmesinin bulunduğu Python modülünüze yerleştirin (bilgi almak için: Bir Python modülü oluşturmak).

  2. Python sınıfının tam yolunu özel ayarlara ekleyin (WEBLATE_ADDONS, CHECK_LIST ya da AUTOFIX_LIST):

# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)

# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)

# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)

Yönetim arayüzü#

Yönetim bölümü, /manage/ adresinden yönetim ayarlarının yapılmasını sağlar. Yönetici yetkileri ile oturum açmış kullanıcılar tarafından kullanılabilir ve sağ üstteki İngiliz anahtarı simgesi kullanılarak erişilebilir:

_images/support.png

Weblate ile ilgili temel bilgileri içerir:

Django yönetim arayüzü#

Uyarı

Bu arayüz düşük düzeyde olduğundan kullanırken dikkatli olun. Genellikle bunu kullanmaya gerek duymamalısınız. Çoğu şeye Weblate kullanıcı arayüzü veya API üzerinden rahatça ulaşılabilir.

Bu bölümden kullanıcılar, çeviriler gibi veri tabanında depolanan nesneleri ve diğer ayarları yönetebilirsiniz:

_images/admin.png

In the Raporlar bölümünden, sitenizin durumuna bakabilirsiniz. Üretim kurulumu kipine geçebilir ya da Depolara erişmek erişimi için SSH anahtarlarını yönetebilirsiniz.

Bölümlerden herhangi birinin altındaki veri tabanı nesnelerini yönetin. Büyük olasılıkla en ilginç olanı, çevrilebilir projeleri yönetebileceğiniz Weblate çevirileri. Bilgi almak için: Proje yapılandırması ve Bileşen yapılandırması.

Weblate dilleri bölümünde dil tanımları bulunur. Bilgi almak için: Dil tanımları.

Proje ekleme#

Eklenen bir proje, tüm bileşenler için bir kapsayıcı görevi görür. Genellikle bir yazılım ya da kitap parçası için bir proje oluşturursunuz (kullanılabilecek parametreler ile ilgili bilgi almak için: Proje yapılandırması bölümüne bakabilirsiniz):

_images/add-project.png

Ayrıca bakınız

Proje yapılandırması

Çift dilde bileşenler#

Bir proje ekledikten sonra, ona çeviri bileşenleri ekleyebilirsiniz. (kullanılabilecek parametrelerle ilgili bilgi almak için Bileşen yapılandırması bölümüne bakabilirsiniz):

_images/add-component.png

Tek dilde bileşenler#

Bunların daha kolay çevrilmesi için, ileti kimliklerinin ilgili kaynak diliyle (genellikle İngilizce) eşlenebileceği bir kalıp dosyası sağlayın (kullanılabilecek parametrelerle ilgili bilgi almak için Bileşen yapılandırması bölümüne bakabilirsiniz):

_images/add-component-mono.png

Weblate için destek almak#

Weblate, topluluk destekli telif hakkı olmayan özgür bir yazılımdır. Aboneler ek ücret ödemeden öncelikli destek alırlar. Ön ödemeli yardım paketleri herkes tarafından kullanılabilir. Geçerli destek teklifleri ile ilgili bilgi almak için: <https://weblate.org/support/>.

Destek bütünleştirmesi#

3.8 sürümünde geldi.

Satın alınan destek paketleri, isteğe bağlı olarak, Weblate abonelik yönetimi arayüzünüzle bütünleştirilebilir ve buradan bir bağlantı bulabilirsiniz. Kopyanızla ilgili temel bulut sunucusu bilgileri de bu şekilde Weblate tarafına bildirilir.

_images/support.png

Weblate üzerine gönderilen veriler#

  • Weblate kopyanızın yapılandırıldığı adres

  • Sitenizin başlığı

  • Kullandığınız Weblate sürümü

  • Weblate veri tabanınızdaki bazı nesnelerin günlükleri (projeler, bileşenler, diller, kaynak dizgeler ve kullanıcılar)

  • Kopyanızın herkese açık SSH anahtarı

Ayrıca, Weblate uygulamasını keşfedin özelliği açık olduğunda:

  • Herkese açık projelerin listesi (ad, adres ve site)

Başka herhangi bir veri gönderilmez.

Bütünleştirme hizmetleri#

İpucu

Satın alınan destek paketleri o sırada etkinleştirilir ve bütünleştirilmeden kullanılabilir.

Weblate uygulamasını keşfedin#

4.5.2 sürümünde geldi.

Discover Weblate, kullanıcıların Weblate sunucularını ve topluluklarını bulmasını kolaylaştıran bir abonelik hizmetidir. Kullanıcılar <https://weblate.org/discover/> adresinden kaydedilmiş hizmetlere göz atabilir ve katkıda bulunulacak projeleri bulabilir.

Listelenme#

İpucu

Discover Weblate hizmetine katılmak, Weblate kopyanızın sunucunuz ile ilgili bazı bilgiler göndermesini sağlar. Bilgi almak için: Weblate üzerine gönderilen veriler.

Sunucunuzun etkin bir destek aboneliği ile Discovery Weblate hizmetinde listelenmesi için (bilgi almak için: Destek bütünleştirmesi) yönetim panosundan şu seçeneği açmanız yeterlidir:

_images/support-discovery.png

Sunucunuzu destek aboneliği olmadan Discover Weblate hizmetinde listeleme:

  1. <https://weblate.org/user/> adresinden kendinizi kaydedin

  2. Weblate sunucunuzu <https://weblate.org/subscription/discovery/> adresindeki Discover Weblate veri tabanına kaydedin

  3. Weblate kopyanızda hizmetin etkinleştirmesini onaylayın ve Weblate Discovery kullanılsın düğmesini kullanarak Weblate yönetimi sayfanızda keşif listesini açın:

_images/support-discovery.png

Listelemeyi özelleştirme#

<https://weblate.org/user/> adresinden bir metin ve görsel (570 x 260 piksel) belirterek listelemeyi özelleştirebilirsiniz.

Yerelleştirmeye başlamak#

Bir projeniz var ve onu birkaç dile çevirmek mi istiyorsunuz? Bu rehber bunu yapmanıza yardımcı olur. Birkaç tipik durum ele alınır, ancak örneklerin çoğu geneldir ve diğer senaryolara da uygulanabilir.

Herhangi bir yazılımı çevirmeden önce, dünyadaki dillerin gerçekten farklı olduğunu fark etmeli ve deneyimlerinize dayanarak herhangi bir varsayımda bulunmamalısınız. Çoğu dil için, bir cümleyi çevrilmiş bölümlerden birleştirmeye çalışırsanız garip görünür. Ayrıca çoğul biçimleri düzgün bir şekilde ele almalısınız. Birçok dilin çoğul biçimler için karmaşık kuralları vardır ve kullandığınız yerelleştirme çatısı bunu desteklemelidir.

Son olarak, bir çevirmenin çeviriyi yapabilmesi için bazen çevrilen dizgeye biraz bağlam eklemek gerekebilir. Çevirmenin İngilizce Sun dizgesini gördüğünü düşünün. Bağlam olmadan çoğu insan bunu Güneş olarak çevirir. Ancak aslında Pazar gününün kısaltması olabilir.

Yerelleştirme çatısının seçilmesi#

Platformunuzda standart olan çatıyı seçin. Yerelleştirmeleri işlemek için kendi çatınızı oluşturarak tekerleği yeniden icat etmekten kaçınmaya çalışın. Weblate, yaygın olarak kullanılan çatıların çoğunu destekler. Bilgi almak için format bölümüne bakabilirsiniz (özellikle Çeviri türü yetenekleri).

Bazı platformlar için kişisel önerimizi aşağıdaki tabloda görebilirsiniz. Bu öneriler, deneyimlerimize dayanmaktadır. Ancak bunlar tüm kullanım örneklerini kapsayamaz. Bu nedenle seçimi yaparken her zaman ortamınızı göz önünde bulundurun.

Bazı biçimler için daha ayrıntılı iş akışını şu bölümlerde bulabilirsiniz:

Weblate ile bütünleştirmek#

Weblate temelleri#

Proje ve bileşen yapısı#

Weblate üzerinde çeviriler, projeler ve bileşenler olarak düzenlenir. Bir projede çok sayıda bileşen bulunabilir ve bunlar ayrı dillerin çevirilerini içerebilir. Bileşen çevrilebilir bir dosyaya karşılık gelir GNU gettext ya da Android dizge kaynakları). Projeler, bileşeni mantıksal kümeler halinde düzenlemenize yardımcı olmak için düşünülmüştür (tek bir uygulamada kullanılan tüm çevirileri gruplamak gibi).

İçeride, her projenin varsayılan olarak içindeki diğer bileşenlere yayılan ortak dizge çevirileri vardır. Bu özellik, yinelenen ve çok sürümlü çeviri yükünü hafifletir. Çevirilerin farklılaşması durumunda Bileşen yapılandırması için Çevirilerin yayılmasını sağlamak seçeneği kullanılarak çevirilerin yayılması devre dışı bırakılabilir.

Yerelleştirme projesini Weblate içine aktarmak#

Weblete, temel bir özelliği olarak sürüm denetimi sistemi bütünleştirmesi göz önünde bulundurularak geliştirilmiştir. Bu nedenle en kolay yol, deponuza Weblate erişimi izni vermektir. İçe aktarma işlemi, çevirilerinizi bileşenlere yapılandırma konusunda size yol gösterir.

Alternatif olarak, bütünleştirmeler olmadan tüm çevirileri içeren yerel bir depo kurmak için Weblate kullanabilirsiniz.

Weblate üzerinden güncellenmiş çevirileri almak#

Weblate, güncellenen dizgeleri bir veri tabanında tutar ve bunları yerel bir sürüm denetimi deposuna gönderir. Weblate deposunu ( Git dışa aktarıcı açıkken) uzak depo olarak ekleyebilir ve çeviri güncellemelerini alabilirsiniz.

Bundan önce, bekleyen değişiklikleri göndermek isteyebilirsiniz (bilgi almak için: Lazy commit işlemeleri). Bunu kullanıcı arayüzünde (Depo bakımı bölümünde) ya da komut satırında Weblate istemcisi komutu ile yapabilirsiniz.

Weblate için deponuza itme erişimi verir ve Bileşen yapılandırması içinde Depo itme adresi değerini yapılandırırsanız, değişiklikleri itme işlemi kendiliğinden yapılabilir. Bilgi almak için: Weblate üzerindeki değişiklikleri itmek.

Alternatif olarak, çevirileri son sürümleriyle eşleşecek şekilde güncellemek için Weblate REST API uygulaması kullanabilirsiniz.

Uzak değişiklikleri Weblate üzerine almak#

Deponuzda yeni güncellenen dizgeleri Weblate üzerine getirmek için, yukarı akış deposundan çekmesine izin vermeniz yeterlidir. Bu işlem, kullanıcı arayüzünde (depo ‘bakımı bölümünden) ya da komut satırından Weblate istemcisi komutu ile yapılabilir.

Bu işlem, yeni bir işleme olduğunda Weblate tetiklemesi için deponuzda bir internet kancası ayarlayarak kendiliğinden yapılabilir. Bilgi almak için: Depoları güncellemek.

Sürüm denetimi sistemi bütünleştirmesi kullanmıyorsanız, çevirileri kod tabanınızla eşleşecek şekilde güncellemek için kullanıcı arayüzü ya da Weblate REST API uygulaması kullanabilirsiniz.

Yeni dizgeler eklemek#

Çeviri dosyalarınızın kodla birlikte bir sürüm denetimi sisteminde bulunması durumunda, büyük olasılıkla geliştiricilerin yeni dizgeler eklemesi için kullanılan bir iş akışınız vardır. Dizge eklemenin herhangi bir yolu seçilir. Ancak hatalara neden olmamak için Kaynak dizgeler için kalite aracısı kullanmayı değerlendirin.

Çeviri dosyaları koddan ayrı olduğunda, şu yöntemlerle Weblate üzerine yeni dizgeler eklenebilir.

Not

Weblate üzerine dizge eklenebilmesi Dizge yönetimi ögesine bağlıdır.

Hedef dil dosyalarını güncellemek#

Tek dilli dosyalar için (bilgi almak için: format) Weblate, gerçek çevirilerde değil, Tek dilli temel dil dosyası içinde bulunmayan yeni çeviri dizgeleri ekleyebilir. Bununla birlikte, beklenmeyen sonuçları olabileceğinden, eski dizgeleri kendiliğinden temizlemez. Bunu yapmak istiyorsanız, lütfen gereksinimlerinize göre temizleme işlemini yapacak olan Çeviri dosyalarını temizleme eklentisini kurun.

Weblate ayrıca iki dilli dosyaları hiçbir şekilde güncellemeye çalışmaz. Bu nedenle pot dosyaları ile güncellenen po dosyaları kullanmanız gerekiyorsa, Kaynak dizgeleri güncelle İçe aktarma yöntemleri ya da PO dosyalarını POT ile eşleştirerek güncelleme (msgmerge) eklentisini kullanarak kendiniz yapmalısınız.

Yeni dizgeler sunmak#

Dizge yönetimi açıkken Weblate üzerine yeni dizgeler ekleyebilirsiniz. Ancak genellikle yeni dizgeleri onları tanıtan kod değişiklikleriyle birlikte sunmak daha iyidir.

Tek dilli biçimlerde Tek dilli temel dil dosyası için yeni dizgenin eklenmesi gerekir. Bu genellikle kod geliştirme sırasında geliştiriciler tarafından yapılır. Kaynak dizgeler için kalite aracısı kullanarak bu dizgeleri onaya sunmak isteyebilirsiniz.

İki dilli biçimlerde dizgeler tipik olarak bazı araçlar kullanılarak kaynak koddan çıkarılır. Bununla ilgili yönergeler için yerelleştirme çatısı belgelerinize bakabilirsiniz. Dizgeler ayıklandıktan sonra, var olan çevirileri güncellemek için bir ek adım gerekebilir. Bilgi almak için: Hedef dil dosyalarını güncellemek.

İpucu

Yeni dizgelerin kendiliğinden çeviri olarak görünmesini sağlamak için bunu sürekli bütünleştirme altyapınızla birleştirmek isteyebilirsiniz. Bu altyapıda Birleştirme çakışmalarından kaçınmak seçeneği de kapsanmalıdır.

Sürüm denetim deposunu yönetmek#

Weblate, tüm çevirileri sürüm denetimi deposunda tutar. Yukarı akışa bağlanabilir ya da yalnızca içeride olabilir. Depo bakımı bölümünden depoyla ilgili işlemleri yapabilirsiniz.

İpucu

Sürekli yerelleştirme ile depo, değişiklik olduğunda kendiliğinden gönderilir ve genellikle el ile işlem yapmak gerekmez.

_images/component-repository.png

GNU gettext ile yazılım çevirisi#

‘GNU gettext’_, özgür yazılımın yerelleştirilmesi için en yaygın kullanılan araçlardan biridir. Yazılımı yerelleştirmek için basit ama esnek bir yol sağlar. Büyük bir çoğul biçim desteği vardır. Çevrilmiş dizgeye bağlam ekleyebilir ve etrafında geliştirilmiş pek çok araç vardır. Tabii ki büyük bir Weblate desteği de var (bilgi almak için: ref: gettext dosya biçimi açıklaması).

Not

Ticari bir yazılımda kullanmak üzereyseniz, lütfen önce lisanslamaya bakın, sizin için uygun olmayabilir.

GNU gettext çeşitli dillerle (C, Python, PHP, Ruby, JavaScript ve daha fazlası) kullanılabilir ve genellikle kullanıcı arayüzü çatıları zaten bazı desteklerle gelir. Standart olarak, kodu daha basit ve okunması daha kolay kılmak için genellikle _() biçiminde takma ad ile verilen gettext() işlevi çağrısı kullanılır.

Ek olarak, çevirmenlere ek bağlam sağlamak için pgettext() çağrısı ve hedef dil için tanımlanan çoğul türleri işleyebilen ngettext() çağrısı sağlar.

Yaygın kullanılan bir araç olarak, kullanımını gerçekten basitleştiren birçok sarmalayıcı vardır. Aşağıda açıklanan el ile gettext çağrısı yerine, bunlardan birini denemek isteyebilirsiniz. Örneğin intltool.

İş akışı özeti#

GNU gettext, yerelleştirmeyi yönetmek için birkaç dosya kullanır:

  • PACKAGE.pot, genellikle xgettext ya da intltool gibi bazı üst düzey sarmalayıcılar kullanılarak kaynak kodunuzdan ayıklanan dizgeleri içerir.

  • LANGUAGE.po tek bir dilde çevirisi olan dizgeleri içerir. PACKAGE.pot güncellendikten sonra msgmerge tarafından güncellenmesi gerekir. msginit ile ya da Weblate içinde yeni dil dosyaları oluşturabilirsiniz.

  • LANGUAGE.mo, LANGUAGE.po binary biçimini içerir ve uygulamanın çalıştırıcısında kullanılır. Genellikle sürüm denetimi altında tutulmaz, ancak derleme zamanında msgfmt kullanılarak oluşturulur. Sürüm denetiminde olmasını istiyorsanız, MO dosyaları üretme eklentisini kullanarak Weblate üzerinde de oluşturabilirsiniz.

GNU gettext iş akışı genel olarak şöyle görünür:

digraph translations { graph [fontname = "sans-serif", fontsize=10]; node [fontname = "sans-serif", fontsize=10, shape=note, margin=0.1, height=0]; edge [fontname = "monospace", fontsize=10]; "Source code" -> "PACKAGE.pot" [label=" xgettext "]; "PACKAGE.pot" -> "LANGUAGE.po" [label=" msgmerge "]; "LANGUAGE.po" -> "LANGUAGE.mo" [label=" msgfmt "]; }

Ayrıca bakınız

GNU gettext özeti

Örnek program#

C ile yazılmış basit bir gettext kullanma programı şöyle görünür:

#include <libintl.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int count = 1;
    setlocale(LC_ALL, "");
    bindtextdomain("hello", "/usr/share/locale");
    textdomain("hello");
    printf(
        ngettext(
            "Orangutan has %d banana.\n",
            "Orangutan has %d bananas.\n",
            count
        ),
        count
    );
    printf("%s\n", gettext("Thank you for using Weblate."));
    exit(0);
}

Çevrilebilir dizgeleri ayıklamak#

Gettext çağrıları ile kodu aldıktan sonra, xgettext kullanarak iletileri ayıklayabilir ve bunları bir .pot dosyası içine kaydedebilirsiniz:

$ xgettext main.c -o po/hello.pot

Not

Koddan dizgeleri ayıklamak için alternatif programlar vardır. Örneğin pybabel.

Böylece, yeni çeviriler başlatmak (msginit ile) ya da kod değişikliğinden sonra var olan çevirileri güncellemek (bunun için msgmerge kullabilirsiniz) için kullanabileceğiniz bir kalıp dosyası oluşturulur. Oluşturulan dosya yalnızca yapılandırılmış bir metin dosyasıdır:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-23 11:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"

#: main.c:14
#, c-format
msgid "Orangutan has %d banana.\n"
msgid_plural "Orangutan has %d bananas.\n"
msgstr[0] ""
msgstr[1] ""

#: main.c:20
msgid "Thank you for using Weblate."
msgstr ""

Her msgid satırı çevrilecek bir dizgeyi tanımlar. Başlangıçtaki özel boş dizge, çeviriyle ilgili üst verileri içeren dosya üst bilgisidir.

Yeni çeviriye başlamak#

Kalıp hazır olduğunda, ilk çevirimize başlayabiliriz:

$ msginit -i po/hello.pot -l cs --no-translator -o po/cs.po
Created cs.po.

Yeni oluşturulan cs.po dosyasında zaten doldurulmuş olan bazı bilgiler bulunur. En önemlisi, seçilmiş dil için uygun çoğul biçim tanımı yapılmıştır ve çoğul biçimlerin sayısının buna göre değiştiğini görebilirsiniz:

# Czech translations for PACKAGE package.
# Copyright (C) 2015 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-23 11:02+0200\n"
"PO-Revision-Date: 2015-10-23 11:02+0200\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"

#: main.c:14
#, c-format
msgid "Orangutan has %d banana.\n"
msgid_plural "Orangutan has %d bananas.\n"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

#: main.c:20
msgid "Thank you for using Weblate."
msgstr ""

Bu dosya, çalıştırma ortamında GNU gettext işlevleri tarafından kullanılmaya uygun binary .mo dosyası biçiminde derlenir.

Dizgeleri güncellemek#

Yeni dizgeler eklediğinizde ya da programınızdaki bazı dizgeleri değiştirdiğinizde, kalıp dosyasını yeniden oluşturan xgettext komutunu yeniden çalıştırırsınız:

$ xgettext main.c -o po/hello.pot

Ardından, yeni oluşturulan kalıplarla eşleşecek şekilde tek tek çeviri dosyalarını güncelleyebilirsiniz (bu işlem, dizgeleri yeni kalıpla eşleşecek şekilde yeniden sıralar):

$ msgmerge --previous --update po/cs.po po/hello.pot

Weblate içine aktarmak#

Böyle bir çeviriyi Weblate içine aktarmak için, bileşen oluştururken tanımlamanız gereken tek şey aşağıdaki alanlardır (alanlarla ilgili bilgi almak için: Bileşen yapılandırması):

Alan

Değer

Kaynak kod deposu

Projenizle birlikte sürüm denetimi sistemi deposunun adresi

Dosya maskesi

po/*.po

Yeni çeviriler kalıbı

po/selam.pot

Dosya biçimi

Seçin Gettext PO dosyası

Yeni dil

Yeni dil dosyası oluştur seçeneğini seçin

Bu kadar, artık yazılımınızı çevirmeye başlayabilirsiniz!

Ayrıca bakınız

GitHub üzerindeki Weblate Hello projesinde birçok dilde bir gettext örneği bulabilirsiniz: <https://github.com/WeblateOrg/hello>.

Sphinx kullanarak belgeleri çevirmek#

Sphinx güzel belgeler oluşturmakta kullanılan bir araçtır. Basit reStructuredText söz dizimini kullanır ve birçok biçimde çıktı oluşturabilir. Bir örnek arıyorsanız, bu belge de onunla oluşturulmuştur. Sphinx ile birlikte kullanılabilecek çok yararlı bir arkadaş, belgelerinizi ücretsiz olarak oluşturup yayınlayacak olan Read the Docs hizmetidir.

Belgeleri yazmaya odaklanmayacağım, bununla ilgili rehberliğe gerek duyuyorsanız, yalnızca Sphinx sitesindeki yönergeleri izleyin. Belgeler hazır olduğunda, Spihinx bunu desteklediğinden çevirisini yapmak oldukça kolaydır ve Internationalization bölümünde oldukça güzel bir şekilde ele alınmıştır. Bunun için, birkaç yapılandırma yönergesi ve “sphinx-intl” aracının çağrılması gereklidir.

Read the Docs hizmetini kullanıyorsanız, Read the Docs sitesinde çevrilmiş belgeler oluşturmaya başlayabilirsiniz. Localization of documentation gerek duyduğunuz hemen her şeyi kapsar. Başka bir proje oluşturabilir, dilini ayarlayabilir ve ana projeye çeviri olarak bağlayabilirsiniz.

Şimdi tek gereken belgelerin içeriğini çevirmeniz. Sphinx, her klasör ya da üst düzey dosya için bir PO dosyası oluşturur. Bu da çevrilmesi gereken oldukça fazla dosya olmasına yol açabilir (gettext_compact ayarlarına bağlı olarak). index.po dosyasını Weblate üzerine ilk bileşen olarak alabilir ve ardından Bileşen keşfi eklentisini diğer tüm ögeleri kendiliğinden bulacak şekilde yapılandırabilirsiniz.

Bileşen yapılandırması#

Bileşen adı

Documentation

Dosya maskesi

docs/locales/*/LC_MESSAGES/index.po

Yeni çeviriler kalıbı

docs/locales/index.pot

Dosya biçimi

Gettext PO dosyası

Çeviri imleri

rst-text

Bileşen keşif yapılandırması#

Çeviri dosyalarıyla eşleştirilecek kurallı ifade

docs/locales/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po

Bileşen adını özelleştirme

Documentation: {{ component|title }}

Yeni çeviriler için temel dosyayı tanımlama

docs/locales/{{ component }}.pot

İpucu

Sphinx tarafından yalnızca tek bir PO dosyasının oluşturmasını yeğler misiniz? Sphinx 3.3.0 sürümünden beri şöyle yapabilirsiniz:

gettext_compact = "docs"

Bu yaklaşım kullanılarak çevrilmekte olan birkaç belge projesi bulabilirsiniz:

Weblate içerik aktarım ağını kullanarak HTML ve JavaScript çevirmek#

Weblate 4.2 sürümünden başlayarak, JavaScript yerelleştirme CDN eklentisini kullanarak yerelleştirme bir içerik aktarımı ağı (CDN) üzerine dışa aktarılabilir.

Not

Bu özellik, Hosted Weblate hizmetinden yapılandırılır. Kurulumunuz için ek yapılandırma gerekir. Bilgi almak için: LOCALIZE_CDN_URL ve LOCALIZE_CDN_PATH.

Bileşeninize kurulduktan sonra, kaydedilmiş çevirileri (bilgi almak için: Lazy commit işlemeleri) içerik aktarım ağına iter ve bu çeviriler site sayfalarınızı yerelleştirmek için kullanılabilir.

Bileşen oluşturmak#

İlk olarak, dizgelerinizi tutacak tek dilli bir bileşen oluşturmanız gerekir. Bununla ilgili genel yönergeler için Çeviri projelerini ve bileşenleri eklemek bölümüne bakın.

Başlamak için var olan bir deponuz varsa (HTML dosyalarının bulunduğu bir depo gibi), kaynak dil için depoda boş bir JSON dosyası oluşturun (bilgi almak için: Kaynak dil). Örneğin locales/en.json. Nesnenin boş olduğunu belirtmek için içerik {} olmalıdır. Bundan sonra, depoyu Weblate üzerine aktarabilir ve bir eklenti yapılandırmasıyla başlayabilirsiniz.

İpucu

Var olan çevirileriniz varsa, bunları JSON dil dosyalarına yerleştirerek Weblate üzerinde kullanabilirsiniz.

Var olan depoyu kullanmak istemeyenler için (ya da bir deposu olmayanlar için), bileşen oluştururken Sıfırdan başla seçeneğini ve dosya biçimi olarak JSON dosyası seçeneğini seçin (bu noktada herhangi bir tek dilli biçim seçilmesi sorun değildir).

Weblate CDN eklentisini yapılandırmak#

JavaScript yerelleştirme CDN eklentisi birkaç yapılandırma seçeneği sunar.

Çeviri eşiği

Bu eşiği aşan çeviriler içerik aktarım ağına katılır.

CSS seçici

HTML belgelerinde hangi dizgelerin çevrilebilir olduğunu yapılandırır. Bilgi almak için: Weblate CDN için dizge ayıklamak ve Weblate CDN kullanarak HTML yerelleştirmek.

Dil tanımlama bilgisinin adı

Kullanıcının seçtiği dili içeren çerezin adı. JavaScript kod parçasında Weblate CDN kullanarak HTML yerelleştirmek için kullanılır.

Dizgeleri HTML dosyalarından ayıklama

Weblate tarafından çevrilebilir dizgelerin aranacağı ve bunları çeviri için sunulacağı depodaki dosyaların ya da adreslerin listesi. Bilgi almak için: Weblate CDN için dizge ayıklamak.

Weblate CDN için dizge ayıklamak#

Çeviri dizgeleri Weblate üzerinde bulunmalıdır. Bunları el ile yönetebilir, oluşturmak için API kullanabilir ya da HTML dosyalarından dizgeleri ayıkla komutunu kullanarak dosyaları ya da adresleri listeleyebilirsiniz. Weblate bunları kendiliğinden ayıklar. Dosyalar depoda ya da Weblate tarafından düzenli olarak indirilecek ve ayrıştırılacak uzak adreslerde bulunmalıdır.

CSS seçici için varsayılan yapılandırma, CSS sınıfı l10n olan ögeleri ayıklar. Örneğin aşağıdaki parçacıklardan iki dizge ayıklanır:

<section class="content">
    <div class="row">
        <div class="wrap">
            <h1 class="section-title min-m l10n">Maintenance in progress</h1>
            <div class="page-desc">
                <p class="l10n">We're sorry, but this site is currently down for maintenance.</p>
            </div>
        </div>
    </div>
</section>

Var olan kodu değiştirmek istemiyorsanız, tüm ögelerin işlenmesi için seçici olarak * kullanabilirsiniz.

Not

Şu anda, yalnızca ögelerin metni ayıklanıyor. Bu eklenti, öge özniteliklerinin ya da alt ögeleri olan ögelerin yerelleştirilmesini desteklemez.

Weblate CDN kullanarak HTML yerelleştirmek#

Bir HTML belgesini yerelleştirmek için weblate.js betiğini yüklemelisiniz:

<script src="https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/weblate.js" async></script>

Yüklendikten sonra, eşleşen tüm çevrilebilir ögeler kendiliğinden bulunur (CSS seçici yapılandırmasına göre) ve metinleri bir çeviriyle değiştirir.

Kullanıcı dili, yapılandırılmış çerezden algılanır ve tarayıcıda yapılandırılan kullanıcı tarafından yeğlenen dillere döner.

Dil çerezi adı diğer uygulamalarla bütünleştirme için yararlı olabilir (örneğin, Django kullanırken django_language olarak seçin).

JavaScript yerelleştirmek#

Tek tek çeviriler, içerik aktarım ağı altında iki dilli JSON dosyaları olarak hazırlanır. Birini almak için şu kodu kullanabilirsiniz:

fetch(("https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/cs.json")
  .then(response => response.json())
  .then(data => console.log(data));

Bu durumda gerçek yerelleştirme mantığının uygulanması gerekir.

Yerelleştirme kitaplıkları ve paketleri#

Weblate, Weblate REST API uygulaması kullanılarak çatınızla bütünleştirilebilir. Bu sayfada, Weblate ile bütünleştirilmiş üçüncü taraf kitaplıkları görebilirsiniz.

İpucu

Çatınız için bir Weblate bütünleştirmesi mi oluşturuyorsunuz? Burada yer alabilirsiniz! Doğrudan değişikliklerin bulunduğu bir çekme isteği gönderin ya da listeye eklenmek için care@weblate.org adresine yazın.

Çeviri bileşeni uyarıları#

Herhangi bir çeviri bileşeni için Weblate yapılandırmasındaki veya çeviri projesindeki hataları görüntüler. Bulunan sorunların nasıl ele alınacağı ile ilgili yol gösterir.

Şu anda şu listedeki sorunlar ele alınıyor:

  • Çeviri dosyalarında çift kaynak dizgeler

  • Çevirilerde çift diller

  • Depo birleştirme, güncelleme ya da itme sorunları

  • Çeviri dosyalarında işleme hataları

  • Faturalama (bilgi almak için: Faturalama)

  • Depoda çok fazla sayıda giden ya da eksik işlemeler var

  • Eksik lisanslar

  • Eklenti çalıştırılırken çıkan sorunlar (bilgi almak için: Eklentiler)

  • Yanlış yapılandırılmış tek dilli çeviri.

  • Bozuk Bileşen yapılandırması

  • Bozuk adresler

  • Kullanılmayan ekran görüntüleri

  • Dil kodu anlaşılamadı

  • Bileşen ayarlarında kullanılmayan yeni temel

  • Bağlantılı bileşenlerde çift dosya maskesi kullanılması

  • Bileşen kullanılmıyor gibi görünüyor

Uyarılar günlük olarak veya ilgili değişiklik yapıldığında güncellenir (:ref:’component’ değiştirildiğinde veya depo güncellendiğinde gibi).

Uyarılar, ilgili her bileşenin sayfasında Uyarılar olarak görüntülenir. Eksikse, bileşen tüm geçerli denetimleri temizler. Uyarılar yok sayılamaz, ancak uyarıya yol açan sorun çözüldükten sonra kaybolur.

Hem kopyalanmış dizgeleri hem de dilleri olan bir bileşen şöyle görünür:

_images/alerts.png

Çevirmen topluluğu oluşturmak#

Bu önerilere uymak, tam, çok dilli bir son düzenleme aracının oluşturulmasını sağlar. İyi çeviriler, bağlamsal doğru bir çeviriyi amaçlayan sistemik-işlevsel House modeli ile tanımlanır. Kendi düzenleme sonrası rehberinizi yazın ve bu önerileri kendi tanımlarınıza uyacak şekilde değiştirin. Çoğu durumda languageTool tarayıcı eklentisi düzeltme aracı olarak kullanışlıdır.

Topluluk yerelleştirme denetim listesi#

3.9 sürümünde geldi.

Her bileşenin menüsünde bulunan Topluluk yerelleştirme denetim listesi, size yerelleştirme sürecinizi topluluk çevirmenleri için kolaylaştırmak üzere yol gösterebilir.

_images/guide.png

Terminolojileri yönetmek#

Makine çevirisinin terminoloji ataması ile sonradan düzenlenmesi, çeviri sürecinin her düzeyini etkiler. Makine çevirisi sistemi, sürekli bir eğitim veya nöral bulanık onarım <https://aclanthology.org/P19-1175.pdf> ile belirli sözcük dağarcığına ve biçeme uyarlanabilir. Var olan çeviri belleğinizi Weblate içine aktarın ya da temel terminolojinizle bir başlangıç kapsamı oluşturun. Sonuçta, kapsamla ilgili iyi bir bilgi almasını ve çıktı kalitesini garanti etmek için çevirmene ek terminoloji belgeleri ile yol gösterilmelidir.

Makine çevirilerini kullanmak#

Kendiliğinden çevirinin kalitesi (genellikle BLEU skoru ile ölçülür) düzenleme süresi ile ilişkilidir [1]. Gerekli dilleri ve etki alanlarını destekleyen bir makine çevirisi hizmeti seçin. Çeviri hizmetinin nasıl çalıştığını ve son düzenleyicinin hangi kaliteyi beklemesi gerektiğini açıkça belirtin.

Çevirileri onaylamak#

Çeviriler, son düzenlemeden sonra ikinci bir kişi tarafından gözden geçirilmelidir. Tarafsız ve yetkin bir onaylayıcı ile iki adam kuralı hataları azaltır ve içeriğin kalitesi ile tutarlılığını artırır.

Yapılandırılmış geri bildirim almak#

Weblate üzerinde çevirilerin kalitesi ile ilgili yapılandırılmış geri bildirim sağlayan birçok Denetimler ve düzeltmeler bulunur.

Çeviri yönergeleri#

Güçlü bir azalma sağlayan zihinsel ve etki temelli tanımlara ek olarak, metin tabanlı dilbilimsel yaklaşım, uygulanan çeviri yöntemlerine en iyi şekilde uyar. Çeviri değerlendirmesi için iyi formüle edilmiş bir teori, özgün ve çeviri arasındaki ilişkiye odaklanan sistemik-işlevsel House modelidir. Model, çevirinin, bir dilsel koddan diğerine geçerken bir metnin anlamsal, pragmatik ve metinsel anlamını eşdeğer tutma girişimi olduğunu varsayar.

Bir çevirinin kalite düzeyi, eşdeğerlik derecesine, metin profili ile metin işlevi arasındaki yazışmalara dayanır. Kendiliğinden hesaplanamayacağından, tek türde bir insan değerlendirmesi yapabilmek için yeterli bilgi toplanmalıdır. Karşılık gelen bir modeldeki anlaşmanın iki ana parametresi, makro-bağlam (yani daha geniş bir sosyal ve edebi bağlamda gömülme) ve alan, tenor ve moddan oluşan mikro bağlamdır.

Kaynaklar#

  1. Marina Sanchez-Torron ve Philipp Koehn, Makine Çevirisi Kalitesi ve Düzenleme Sonrası Verimlilik, Şekil 1: https://www.cs.jhu.edu/~phi/publications/machine-translation-quality.pdf

  2. Joanna Best und Sylvia Kalina. Übersetzen und Dolmetschen: eine Orientierungs-hilfe. A. Francke Verlag Tübingen und Base, 2002. Möglichkeiten der Übersetzungskritik 101. sayfadan başlayarak

  3. Nöral bulanık onarım, Bram Bulté and Arda Tezcan in Neural Fuzzy Repair: Integrating Fuzzy Matches into Neural MachineTranslation, 2019 https://aclanthology.org/P19-1175.pdf

Çevirileri yönetmek#

Yeni dizgeler eklemek#

Yeni dizgeler, Yeni çeviriler kalıbı temel dosyasında göründüğünde çevirilmeye hazır olur (bilgi almak için: Bileşen yapılandırması). Dosya biçiminiz böyle bir dosya gerektirmiyorsa, çoğu tek dilli çeviri akışında olduğu gibi, boş dosyalarla başlayabilirsiniz).

Yeni çevirileri eklemek#

Yeni diller, Weblate üzerindeki bir kullanıcı tarafından istendiğinde hemen eklenebilir ya da onay bekleme ve el ile ekleme için proje yöneticilerine bir bildirim gönderilir. Bunun için, Bileşen yapılandırması içindeki Yeni çeviri ekleme kullanılabilir.

Bazı dosya biçimleri boş bir dosyayla başlamayı ve yalnızca çevrilmiş dizgelerin eklenmesini bekler (Android dizge kaynakları gibi). Bazıları ise tüm anahtarların var olmasını bekler (GNU gettext gibi). Belge temelli biçimler (OpenDocument biçimi gibi) kaynak belgenin bir kopyasıyla ve tüm düzenlenmesi gerekli olarak imlenmiş dizgelerle başlar. Bazı durumlarda bu gerçekten biçime değil, çeviriyi işlemek için kullandığınız çatıya bağlıdır (JSON dosyaları ile olduğu gibi).

Bileşen yapılandırması içinde Yeni çeviriler kalıbı ayarlandığında, Weblate yeni çeviriler başlatmak için belirtilen dosyayı kullanır. Bu yapıldığında, dosyada var olan çeviriler silinir.

Yeni çeviriler kalıbı boş bırakıldığında ve dosya biçimi desteklediğinde, çevrildikten sonra yeni dizgelerin ekleneceği boş bir dosya oluşturulur.

Dil kodu biçemi, oluşturulan dosya adlarında kullanılan dil kodunu özelleştirmenizi sağlar. Ek olarak Dil kod adları ile tanımlanmış eşleştirmeler ters yönde uygulanır.

Not

Bağlı uzak depoya bir dil dosyası eklerseniz, Weblate yerel depoyu güncellediğinde ilgili çeviri bileşene eklenir.

Depo güncelleme ayarları ile ilgili bilgi almak için Depoları güncellemek bölümüne bakabilirsiniz.

Var olan çevirileri kaldırmak#

Diller, bileşenler ya da içinde bulundukları projeler, her projenin, bileşenin ya da dilin Yönetim ↓ :guilabel:`Kaldır’ menüsünden kaldırılabilir (Weblate üzerinden ve kullanılıyorsa uzak depodan silinir).

Kaldır işlemi başlatıldığında, kaldırılacak bileşenlerin listesi gösterilir. Kaldırma işlemini onaylamak için nesnenin kısaltmasını yazmanız gerekir. Kısaltma, adreste görülebilen projenin, dilin ya da bileşenin yol adıdır.

Yalnızca belirli bazı dizgeleri kaldırmak istiyorsanız, şu yolları kullanabilirsiniz:

  • Kaynak dosyadan el ile. Weblate depo güncellemesi yaptığında çeviri projesinden de kaldırılır.

4.5 sürümünde geldi.

  • Weblate kullanıcı arayüzünden. Dizgeyi düzenlerken Araçlar`↓ :guilabel:`Kaldır düğmesi ile. Bu işlem dosya biçimlerine göre farklılık gösterebilir. Bilgi almak için: Dizge yönetimi

Not

Bağlı uzak depodaki bir dil dosyasını silerek. Weblate yerel depoyu güncellediğinde ilgili çeviri bileşenden kaldırılır.

Depo güncelleme ayarları ile ilgili bilgi almak için Depoları güncellemek bölümüne bakabilirsiniz.

Dizge çeşitleri#

Değişkenler, çevirmenlerin dizgenin tüm değişkenlerini tek bir yerde görebilmeleri için birkaç dizgeyi gruplandırmaya yarar.

İpucu

Kısaltmalar (kısaltılmış biçimler) değişkenlere iyi bir örnektir.

Kendiliğinden oluşturulan anahtar tabanlı çeşitler#

3.11 sürümünde geldi.

Dizgeleri kurallı ifade tanımlayarak, Bileşen yapılandırması içindeki tek dilli çevirilerin anahtarına göre gruplayabilirsiniz:

_images/variants-settings.png

Anahtar ifadeyle eşleşirse, çeşidin kök anahtarını oluşturmak için eşleşen kısım kaldırılır. Ardından, kök anahtarı aynı olan tüm dizgeler, kök anahtarla tam olarak eşleşen anahtarı olan dizge ile birlikte tek bir çeşit grubunun parçası olur.

Aşağıdaki tabloda bazı kullanım örneklerini bulabilirsiniz:

Kullanım amacı

Kurallı ifade değişkeni

Eşleşen çeviri anahtarları

Son ek tanımlama

(Short|Min)$

monthShort, monthMin, month

Satır arası tanımlamalar

#[SML]

dial#S.key, dial#M.key, dial.key

El ile çeşit belirlemek#

4.5 sürümünde geldi.

variant:SOURCE imini kullanarak belirli dizgeleri el ile bağlayabilirsiniz. Bu kullanım, dizgeleri otomatik olarak gruplandırmak için anahtarları olmayan iki dilli çeviriler ya da anahtarları eşleşmeyen, ancak çeviri sırasında birlikte değerlendirilmesi gereken dizgeleri gruplandırmak için yararlı olabilir.

Bir dizgenin ek çeşidi, çeviri sırasında Araçlar kullanılarak da eklenebilir (Dizge yönetimi seçeneği açıldığında):

_images/glossary-tools.png

Not

Çeşit kaynak dizgesi en fazla 768 karakter uzunluğunda olmalıdır. Bu sınırlama, MySQL veri tabanı ile uyumluluk için gereklidir.

Çeviri yapılırken çeşitler#

Çeşit daha sonra çeviri yapılırken gruplandırılır:

_images/variants-translate.png

Dizge etiketleri#

Proje yapılandırmasında bileşen çeviri dizgelerini metin ve renge göre kategorilere ayırabilirsiniz.

_images/labels.png

İpucu

Etiketler Kaynak dizgeler ile ilgili ek bilgiler içindeki birimler toplu düzenlenerek ya da Toplu düzenleme eklentisi kullanılarak atanabilir.

Dizgeleri onaylamak#

Etkinlik raporları#

Etkinlik raporları, projeler, bileşenler ya da bireysel kullanıcılar için çeviri değişikliklerini denetler.

Bir proje ya da bileşenin etkinlik raporlarına panodaki Bilgiler sekmesinden erişilebilir.

_images/activity.png

Daha fazla rapora İstatistikler sekmesinden Çeviri raporları seçilerek erişilebilir.

Oturum açmış olan kullanıcının etkinliği, sağ üstteki kullanıcı menüsünden kullanıcı adına tıklanarak görülebilir.

Kaynak dizge denetimleri#

Birçok Kalite denetimleri vardır. Bazıları kaynak dizgelerinin kalitesini artırmaya odaklanır. Başarısız olan birçok denetim, kaynak dizgelerin çevrilmesini kolaylaştırmak için bir ipucu önerir. Başarısız olan tüm kaynak denetimi türleri, her bileşenin kaynak dilinde görüntülenir.

Çeviri dizgesi denetimleri#

Hatalı olan çeviri dizgesi denetimleri, sorunun kaynak dizgede olduğunu gösterir. Çevirmenler bazen çevirideki hataları bildirmek yerine düzeltirler. Tipik bir örnek, bir cümlenin sonundaki eksik bir noktadır.

Başarısız olan tüm denetimleri gözden geçirmek, kaynak dizgelerini geliştirmek için değerli geri bildirimler sağlayabilir. Kaynak dizgelerinin gözden geçirilmesini kolaylaştırmak için, Weblate kendiliğinden kaynak dil için bir çeviri oluşturur ve kaynak düzeyi denetimlerini orada gösterir:

_images/source-review.png

En ilginç denetimlerden biri Birden çok denetim hatası, belirli bir dizgenin birden fazla çevirisinde hata olduğunda tetiklenir. Genellikle bu durum, çevirmenlerin düzgün çeviri yapmakta zorlandığı bir dizge olduğu için istenen bir şeydir.

Ayrıntılı liste, her dilin özetini görüntüler:

_images/source-review-detail.png

Kaynak dizge geri bildirimi almak#

Çevirmenler hem çeviriler hem de kaynak dizgeler ile ilgili yorum yapabilir. Her Bileşen yapılandırması bu tür yorumları bir e-posta adresine alacak şekilde yapılandırılabilir (bilgi almak için: Kaynak dizge hata bildirme adresi) ve geliştiricilerin e-posta listesini kullanmak genellikle en iyi yaklaşımdır. Böylece, çeviride sorunlar ortaya çıktığında farkedebilir, ilgilenebilir ve hızlı bir şekilde düzeltebilirsiniz.

Ayrıca bakınız

Yorumlar

Çeviriyi tanıtmak#

Weblate, çeviri projesini tanıtmak için sitenizde ya da diğer kaynaklarda paylaşabileceğiniz gereçler sağlar. Ayrıca, yeni katkıda bulunacakların çeviri ile ilgili temel bilgileri almaları için güzel bir karşılama sayfası sunar. Bunların yanında, Facebook ya da Twitter kullanarak çeviriyle ilgili bilgileri paylaşabilirsiniz. Tüm bu olasılıklar Paylaş sekmesinde bulunabilir:

_images/promote.png

Tüm bu simgeler, kullanıcılara Weblate ile çeviriyi nasıl yapacaklarını açıklayan basit bir sayfa bağlantısıyla birlikte sunulur:

_images/engage.png

Çeviri ilerlemesi raporu#

Raporlama özellikleri, bir çevirinin belirli bir dönemde nasıl ilerlediği ile ilgili fikir verir. Herhangi bir bileşene zaman içinde yapılan katkıların özeti sunulur. Raporlama aracı, herhangi bir çeviri bileşeninin, projenin ya da panodaki İçgörüler menüsünde bulunur:

_images/reporting.png

Bu sayfada çeşitli raporlama araçları vardır ve hepsi HTML, reStructuredText ya da JSON olarak çıktı oluşturabilir. İlk iki biçim, istatistikleri var olan belgelere gömmek için uygundur. JSON ise verilerin dışarıda işlenmesi için kullanışlıdır.

Sözcük sayısı#

Bir sözcük, beyaz boşluklar (boşluklar, sekmeler, yeni satırlar) arasındaki herhangi bir karakter dizisidir (harfler, sayısal değerler, özel karakterler). Aşağıdaki örnek dizgede 9 sözcük vardır.

I've just realized that they have 5 %(color)s cats.

Çoğul dizgeler için, sözcük sayısı, tüm çoğul biçimlerin sözcüklerinin toplamı olarak hesaplanır.

Çevirmen hesapları#

Çevirmen hesapları için kullanılabilen bir belge oluşturur. Diller ada göre sıralanır ve belirli bir dile katkıda bulunan tüm kişiler listelenir:

* Czech

    * John Doe <john@example.com> (5)
    * Jane Doe <jane@example.com> (1)

* Dutch

    * Jane Doe <jane@example.com> (42)

İpucu

Parantez içindeki sayı, belirli bir dönemde yapılan katkıların sayısını gösterir.

Katılımcı istatistikleri#

Çevirmen adına göre çevrilmiş sözcük ve dizge sayılarını oluşturur:

======================================== ======================================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ========================
Name                                     Email                                    Count total              Source words total       Source chars total       Target words total       Target chars total       Count new                Source words new         Source chars new         Target words new         Target chars new         Count approved           Source words approved    Source chars approved    Target words approved    Target chars approved    Count edited             Source words edited      Source chars edited      Target words edited      Target chars edited
======================================== ======================================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ========================
John Done                                john@example.com                                                1                        3                       24                        3                       21                        1                        3                       24                        3                       21                        0                        0                        0                        0                        0                        0                        0                        0                        0                        0
Jane Done                                jane@example.com                                                2                        5                       25                        4                       28                        2                        3                       24                        3                       21                        0                        0                        0                        0                        0                        0                        0                        0                        0                        0
======================================== ======================================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ======================== ========================

Çevirmenlerinize çalışma miktarlarına göre ödeme yaparsanız yararlı olabilir. Size çevirmenlerin çalışmaları ile ilgili çeşitli istatistikler verir.

Tüm istatistiklerin üç çeşidi bulunur:

Toplam

Düzenlenen dizgelerin toplam sayısı.

Yeni

Daha önce çevrilmemiş, ilk kez çevrilmiş dizge sayısı.

Onaylanmış

Gözden geçirme iş akışı ile onaylanmış dizge sayısı (bilgi almak için :referans:`reviews`).

Düzenlenmiş

Daha önce çevrilmiş, yeni düzenlenmiş dizge sayısı.

Şunların her biri için şu ölçümler kullanılabilir:

Sayı

Dizge sayısı.

Düzenlenen karakter sayısı

Dizgede düzenlenmiş karakter sayısı, Damerau-Levenshtein boyu olarak ölçülür.

Kaynak sözcük sayısı

Kaynak dizgedeki sözcük sayısı.

Kaynak karakter sayısı

Kaynak dizgedeki karakter sayısı.

Hedef sözcük sayısı

Hedef dizgedeki sözcük sayısı.

Hedef karakter sayısı

Hedef dizgedeki karakter sayısı.

Weblate için katkıda bulunmak#

Weblate platformunu geliştirmenin pek çok yolu vardır. Kodlama, görsel tasarım, belge hazırlama, destek olma veya fikir verme gibi size uygun olan birini seçebilirsiniz:

Weblate arayüzünü çevirme#

Weblate, gene Weblate kullanılarak sürekli olarak çevriliyor. Weblate kullanımının olabildiğince çok dilde sağlanmasına yardımcı olmaktan çekinmeyin. Böylece Weblate kullanıcıları ile yakınlaşır!

Kaynak dizgede olası bir hata bulursanız, bunu Weblate düzenleyicisinde bir yorumla belirtebilirsiniz. Böylece üzerinde tartışılabilir ve düzeltilebilir. Eminseniz, Kaynak dizge konumu bölümündeki bağlantıya tıklayabilir ve düzeltmenizle birlikte bir çekme isteği gönderebilirsiniz.

Weblate belgelerine katkıda bulunun#

İstediğiniz belgeler sayfasını iyileştirebilirsiniz. Bunun için sayfanın sağ üst köşesindeki GitHub üzerinde düzenle düğmesine tıklayarak kolayca yapabilirsiniz.

Lütfen yazarken şu yönergelere uyun:

  1. Geçerliyse, belgenin bir bölümünü kaldırmayın.

  2. Açık ve kolay anlaşılır bir dil kullanın. Teknoloji belgeleri yazıyorsunuz, şiir değil. Belgeleri okuyacak herkesin ana dili İngilizce değildir, düşünceli olun.

  3. Emin değilseniz sormaktan çekinmeyin. Düzenleme yaparken bazı özellikler ile ilgili soru sormanız gerekiyorsa, yanıtı almadan önce belgeleri değiştirmeyin. Özetle: Değiştirin ya da sorun. İkisini aynı anda yapmayın.

  4. Belgeleri izlerken açıklanan işlemleri yaparak değişikliklerinizi doğrulayın.

  5. Onaylama ve birleştirmenin daha kolay ve hızlı yapılması için çekme isteğinde küçük değişiklik parçaları gönderin.

  6. Büyük bir makaleyi yeniden yazmak ve yapısını değiştirmek istiyorsanız, bunu iki adımda yapın:

    1. Yeniden yazın

    2. Yeniden yazma onaylandıktan, iyileştirildikten ve birleştirildikten sonra, başka bir çekme isteğinde paragrafların yapısını değiştirin.

İç dil tanımlarını zenginleştirmek#

Dil tanımları weblate-language-data deposunda bulunur.

Eksik dil tanımlarını languages.csv dosyasına ekleyebilirsiniz. Diğer dosyalar bu dosyadan oluşturulur.

Weblate tartışmaları#

Bir fikriniz varsa ve bir sorun olarak bildirmeye uygun olup olmadığından emin değilseniz endişelenmeyin. GitHub tartışmaları ile topluluğa katılıp tartışabilirsiniz.

Weblate geliştirilme çalışmalarına maddi destek vermek#

Weblate geliştirme çalışmalarını bağış sayfasından destekleyebilirsiniz. Buradan toplanan fonlar, özgür yazılım projeleri için ücretsiz barındırma hizmeti sağlanması ve Weblate özelliklerinin geliştirilmesi için kullanılır. Fonlama hedefleri ile gururlu bir fon sağlayıcı olarak alacağınız ödüller gibi konular için `bağış sayfasına`_ bakabilirsiniz.

Weblate için bağış yapan destekçiler#

Weblate destekçilerinin listesi:

Bu listede yer almak ister misiniz? Weblate için bağış seçeneklerine bakabilirsiniz.

Weblate kodlarına katkıda bulunmak#

Weblate kaynak kodlarını anlamak için lütfen önce Weblate kaynak kodları, Weblate ön yüzü ve Weblate iç yapısı bölümlerine bakın.

Kod tabanı ile başlamak#

Weblate kod tabanına alışmak için bazı hatalar arıyorsanız, good first issue olarak etiketlenmiş olanlara bakın.

Bu konular üzerinde sormadan çalışmaya başlayabilirsiniz. Yalnızca çalışmaya başladığınızı duyurun. Böylece herkes birisinin bu konu üzerinde çalıştığını bilir.

Weblate platformunu yerel olarak çalıştırma#

Weblate geliştirmeye başlamanın en kolay yolu Kaynaklardan kurulum bölümündeki yönergeleri izlemektir. Böylece, düzenlenebilir Weblate kaynaklarını içeren bir virtualenv oluşturabilirsiniz.

  1. Weblate kaynak kodlarını kopyalayın:

    git clone https://github.com/WeblateOrg/weblate.git
    cd weblate
    
  2. Bir virtualenv oluşturun:

    virtualenv .venv
    . .venv/bin/activate
    
  3. Weblate kurulumunu yapın (bunun için bazı sistem bağımlılıklarına gerek duyulur. Bilgi almak için: Kaynaklardan kurulum):

    pip install -e '.[all]'
    
  1. Geliştirme için yararlı olacak tüm bağımlılıkları kurun:

    pip install -r requirements-dev.txt
    
  2. Bir geliştirme sunucusu başlatın:

    weblate runserver
    
  3. Yapılandırmanıza bağlı olarak, Celery işlemlerini de başlatmak isteyebilirsiniz:

    ./weblate/examples/celery start
    
  4. Bir deneme yapın (bilgi almak için: Yerel sınama):

    . scripts/test-database.sh
    ./manage.py test
    

Ayrıca bakınız

Kaynaklardan kurulum

Weblate platformunu Docker üzerinde yerel olarak çalıştırma#

Docker ve docker-compose-plugin kuruluysa, yalnızca şu komutu yürüterek geliştirme ortamını çalıştırabilirsiniz:

./rundev.sh

Bir geliştirme Docker kalıbı oluşturur ve başlatır. Weblate ile <http://127.0.0.1:8080/> adresinden admin kullanıcı adı ve admin parolası ile oturum açabilirsiniz. Yeni kurulum boştur, bu nedenle Çeviri projelerini ve bileşenleri eklemek ile ilerlemek isteyebilirsiniz.

Bunun için Dockerfile ve docker-compose.yml, dev-docker klasöründe bulunur.

Betik ayrıca sınamaları yürütmek için bazı parametreleri kabul eder. test parametresiyle çalıştırılır ve ardından herhangi bir test parametresi belirtilir. Örneğin sınamaları yalnızca weblate.machine modülünde çalıştırır:

./rundev.sh test --failfast weblate.machine

Not

Sınamaları çalıştırmadan önce Docker kapsayıcılarınızın çalışır durumda olduğundan emin olun. Bunu docker ps komutunu çalıştırarak denetleyebilirsiniz.

Günlükleri görüntülemek için:

./rundev.sh logs

Arka plan kapsayıcılarını durdurmak için şunu çalıştırın:

./rundev.sh stop

Betiği bağımsız değişkenler olmadan çalıştırmak, Docker kapsayıcısını yeniden oluşturur ve yeniden başlatır.

Not

Bu, üretim için uygun bir kurulum değildir. Güvenli olmayan birkaç ayar yapılmıştır, ancak geliştirmeyi kolaylaştırır.

Devel kopyanızı ön yüklemek#

Deneme çevirileri oluşturmak için weblate weblate import_demo ve yönetici kullanıcı oluşturmak için weblate weblate createadmin komutlarını kullanmak isteyebilirsiniz.

PyCharm ile Weblate kodlamak#

PyCharm, Python için bilinen bir IDE uygulamasıdır. Weblate projenizi PyCharm içinde ayarlamanıza yardımcı olacak bazı yönergeleri aşağıda bulabilirsiniz.

GitHub deposunu bir klasöre kopyaladığınızı düşünürsek, PyCharm ile açmanız yeterlidir. IDE açıldıktan sonra, ilk adım kullanmak istediğiniz yorumlayıcıyı belirtmektir:

_images/pycharm-1.png

PyCharm sizin için bir virtualenv oluşturabilir ya da zaten var olan bir virtualenv kullanmayı seçebilirsiniz:

_images/pycharm-2.png

Yorumlayıcı ayarlandıktan sonra bağımlılıkları kurmayı unutmayın: Konsol üzerinden (IDE içindeki konsol varsayılan olarak doğrudan belirttiğiniz virtualenv kullanır) ya da eksik bağımlılıklar ile ilgili bir uyarı aldığınızda arayüz üzerinden.

İkinci adım, PyCharm içinde yerel olarak Django kullanmak için doğru bilgiyi ayarlamaktır: Buradaki fikir, IDE üzerindeki birim sınamalarını hemen tetikleyebilmektir. Bunun için Django projesinin kök yolunu ve ayarlarına giden yolu belirtmeniz gerekir:

_images/pycharm-3.png

Dikkatli olun, Django proje kökü deponun gerçek kök klasörüdür, Weblate alt klasörü değildir. Ayarlar ile ilgili olarak, depodaki weblate/settings_test.py dosyasını kullanabilirsiniz. Bununla birlikte kendi ayarınızı da oluşturarak oradan da ayarlayabilirsiniz.

Son adım, sunucuyu çalıştırmak ve hata ayıklayabilmek için koda kesme noktaları koymaktır. Bunun için, yeni bir Django Server yapılandırması oluşturulur:

_images/pycharm-4.png _images/pycharm-5.png

İpucu

No reload özelliğine dikkat edin: Dosyaları değiştirirseniz sunucunun canlı olarak yeniden yüklenmesini engeller. Bu durum, var olan hata ayıklayıcı kesme noktalarının, normalde sunucu yeniden yüklendikten sonra yok sayılacakları zaman kalıcı olmasına yol açar.

Weblate kaynak kodları#

Weblate, GitHub üzerinde geliştirilmektedir. Kodu çatallayabilir ve çekme istekleri yapabilirsiniz. Başka herhangi bir biçimdeki yamalar da kabul edilir.

Ayrıca bakınız

Weblate platformunun içeriden nasıl göründüğünü anlamak için Weblate iç yapısı bölümüne bakabilirsiniz.

Kodlama rehberi#

Weblate için geliştirilen kodlar Tasarım ilkelerine uygun güvenlik göz önünde bulundurularak yazılmalıdır.

Tüm kodlar, kodun davranışını açıklayan belgelerle birlikte iletilmelidir. Yöntemler, karmaşık kod blokları veya kullanıcı tarafından görülebilen özellikleri belgelemeyi unutmayın.

Herhangi bir yeni kod PEP 484 türünde ipuçları kullanmalıdır. Var olan kod henüz bunları içermediğinden bunu henüz CI ile denetlemiyoruz.

Kodlama standardı ve kodu temizlemek#

Kod, PEP-8 kodlama yönergelerine uymalı ve black kod biçimlendiricisi ile biçimlendirilmelidir.

Kod kalitesini denetlemek için flake8 kullanabilirsiniz. Önerilen eklentiler .pre-commit-config.yaml içinde bulunur ve geçerli yapılandırması setup.cfg dosyasındadır.

Tüm bunları dayatmak için en kolay yaklaşım pre-commit kurmaktır. Depoda, gönderilen dosyaların düzgün olduğunu doğrulayacak bir yapılandırma bulunur. Kurulumdan sonra (requirements-lint.txt içinde bulunur) Weblate checkout sırasında pre-commit install komutunu çalıştırarak açın. Böylece tüm değişiklikleriniz kendiliğinden denetlenir.

Denetimi el ile de başlatabilirsiniz. Tüm dosyaları denetlemek için şunu yürütün:

pre-commit run --all

Weblate hatalarını ayıklamak#

Hatalar, uygulama çökmelerine veya çeşitli yanlış davranışlara yol açabilir. Böyle bir sorun ile ilgili bilgi toplayabilir ve sorun izleyici üzerine gönderebilirsiniz.

Hata ayıklama kipi#

Hata ayıklama kipinin açılması, özel durumların tarayıcıda görüntülenmesini sağlar. Bu kip, site arayüzündeki sorunları ayıklamak için yararlıdır. Ancak başarımı olumsuz etkilediğinden ve kişisel verileri sızdırabileceğinden üretim ortamı için uygun değildir.

Üretim ortamında, hata raporları ile ilgili e-postaları almak için ADMINS komutunu kullanın ya da bir üçüncü taraf hizmeti kullanarak hata toplamayı yapılandırın.

Weblate günlükleri#

Weblate, arka planda neler olup bittiği ile ilgili ayrıntılı günlükler tutabilir. Varsayılan yapılandırmada syslog kullanılır ve bu da günlüğün /var/log/messages veya /var/log/syslog içinde tutulmasını sağlar (syslog daemon yapılandırmanıza bağlı olarak).

Celery işlemi (bilgi almak için Celery ile arka plan görevlerini kullanmak) genellikle kendi günlüklerini de tutar. Örnek sistem genelindeki kurulumlarda günlükler /var/log/celery/ altındaki birkaç dosyaya kaydedilir.

Docker kapsayıcıları çıktılarını günlüğe kaydeder (Docker dünyası için her zaman olduğu gibi). Bu günlüklere docker-compose logs komutuyla bakabilirsiniz. Günlük ayrıntı düzeyini WEBLATE_LOGLEVEL seçeneği ile değiştirebilirsiniz.

Ayrıca bakınız

Örnek yapılandırma içinde LOGGING yapılandırması bulunur.

Arka plan görevleri yapılamıyor#

Celery işlemleri tarafından arka planda birçok şey yapılır. E-posta gönderme ya da bileşen kaldırma gibi işlemler yapılmıyorsa, bununla ilgili bir sorun olabilir.

Bu durumda şunlar denetlenmelidir:

Weblate e-postaları alınamıyor#

Giden e-postanın düzgün çalışıp çalışmadığını sendtestemail yönetim komutuyla (farklı ortamlarda nasıl çağrılacağı ile ilgili bilgi almak için: Yönetim komutlarını çağırmak) ya da Araçlar sekmesi altındaki Yönetim arayüzü komutuyla doğrulayabilirsiniz.

Bunlar e-postaları doğrudan gönderir. Böylece SMTP yapılandırmanızın doğru olduğunu doğrular (bilgi almak için: Giden e-postayı yapılandırmak). Bununla birlikte, Weblate üzerinden gelen e-postaların çoğu arka planda gönderilir ve Celery ile ilgili bazı sorunlar da olabilir. Hata ayıklama için Arka plan görevleri yapılamıyor bölümüne bakabilirsiniz.

Uygulama çökmelerini incelemek#

Uygulamanın çökmesi durumunda, çökme ile ilgili olabildiğince fazla bilgi toplamak yararlıdır. Bunun için, bu tür bilgileri kendiliğinden toplayabilen üçüncü taraf hizmetleri kullanılabilir. Nasıl ayarlanacağı ile ilgili bilgi almak için Hata raporlarını derlemek.

Sessiz hatalar#

Arka plan işleme için birçok görev Celery üzerine aktarılmıştır. Hatalar kullanıcı arabiriminde görüntülenmez, ancak Celery günlüklerinde görünür. Hata raporlarını derlemek komutunu yapılandırmak, bu tür hataları daha kolay fark etmenizi sağlar.

Başarım sorunları#

Bazı senaryolarda Weblate başarımı kötü oluyorsa, sorunu gösteren günlük kayıtlarını ve kodun nasıl geliştirilebileceğini anlamamıza yardımcı olabilecek her şeyi toplayın.

Bazı isteklerin herhangi bir belirti olmadan çok uzun sürmesi durumunda, Hata raporlarını derlemek ile birlikte dogslow kurmak ve hata toplama aracında kesin ve ayrıntılı geri izlemeler almak isteyebilirsiniz.

Yavaş başarımın veri tabanına bağlı olması durumunda, DEBUG komutunu etkinleştirdikten sonra aşağıdaki yapılandırmayı kullanarak tüm veri tabanı sorgularının günlüğe kaydedilmesini de sağlayabilirsiniz:

LOGGING["loggers"]["django.db.backends"] = {"handlers": ["console"], "level": "DEBUG"}

Weblate iç yapısı#

Not

Bu bölüm size Weblate iç yapısına temel bir genel bakış sunar.

Weblate, kod yapısının çoğu Django temelinden türetilmiştir.

Klasör yapısı#

Weblate ana deposunun klasör yapısına hızlı bir bakış:

docs

Bu belgelerin ‘Sphinks <https://www.sphinx-doc.org/>`_ kullanılarak oluşturulabilen kaynak kodu.

dev-docker

Geliştirme sunucusunu çalıştırmak için Docker kodu. Bilgi almak için: Weblate platformunu Docker üzerinde yerel olarak çalıştırma.

weblate

Bir Django uygulaması olarak Weblate kaynak kodu. Bilgi almak için: Weblate iç yapısı.

weblate/static

İstemci dosyaları (CSS, JavaScript ve görseller). Bilgi almak için: Weblate ön yüzü.

Modüller#

Weblate birkaç Django uygulamasından oluşur (bazıları isteğe bağlıdır. Bilgi almak için: İsteğe bağlı Weblate modülleri):

accounts

Kullanıcı hesabı, profiller ve bildirimler.

addons

Weblate davranışını değiştiren eklentiler. Bilgi almak için: Eklentiler.

api

Django REST çatısı üzerine geliştirilmiş API.

auth

Kimlik doğrulama ve izinler.

billing

İsteğe bağlı Faturalama modülü.

checks

Çeviri dizgesi: ref: checks modülü.

fonts

Yazı tipi görüntüleme denetimleri modülü.

formats

Tranlate-toolkit temelli dosya biçimi soyutlama katmanı.

gitexport

İsteğe bağlı Git dışa aktarıcı modülü.

lang

Dil ve çoğul modelleri tanımlayan modül.

legal

İsteğe bağlı Yasal modülü.

machinery

Makine çevirisi hizmetleri bütünleştirmesi.

memory

İç çeviri belleği, bkz: Çeviri belleği.

screenshots

Ekran görüntüsü yönetimi ve optik karakter tanıma (OCR) modülü.

trans

Çevirileri işleyen ana modül.

utils

Çeşitli yardımcı programlar.

vcs

Sürüm denetimi sistemi soyutlaması.

wladmin

Django yönetim arayüzü özelleştirmesi.

Eklentileri geliştirmek#

Weblate üzerinde yerelleştirme iş akışını özelleştirmek için Eklentiler kullanılabilir.

class weblate.addons.base.BaseAddon(storage=None)#

Weblate eklentileri için temel sınıf.

classmethod can_install(component, user)#

Eklentinin belirtilen bileşenle uyumlu olup olmadığını denetler.

configure(settings)#

Yapılandırmayı kaydeder.

daily(component)#

Kanca günlük olarak tetiklenir.

classmethod get_add_form(user, component, **kwargs)#

Yeni eklenti eklemek için yapılandırma formunu görüntüler.

get_settings_form(user, **kwargs)#

Bu eklenti için yapılandırma formunu görüntüler.

post_add(translation)#

Kanca yeni çeviri eklendikten sonra tetiklenir.

post_commit(component)#

Kanca değişiklikler depoya işlendikten sonra tetiklenir.

post_push(component)#

Kanca depo yukarı akışa yollandıktan sonra tetiklenir.

post_update(component, previous_head: str, skip_push: bool)#

Kanca depo yukarı akıştan güncellendikten sonra tetiklenir.

Parametreler:
  • previous_head (str) – Güncellemeden önce deponun HEAD bölümü. İlk kopyalamada boş olabilir.

  • skip_push (bool) – Eklenti işleminin değişiklikleri yukarı akışa itmeyi atlayıp atlamayacağı. Genellikle bunu temeldeki yöntemlere commit_and_push ya da commit_pending olarak iletebilirsiniz.

pre_commit(translation, author)#

Kanca değişiklikler depoya işlenmeden önce tetiklenir.

pre_push(component)#

Kanca depo yukarı akışa yollanmadan önce tetiklenir.

pre_update(component)#

Kanca depo yukarı akıştan güncellenmeden önce tetiklenir.

save_state()#

Eklenti durum bilgilerini kaydeder.

store_post_load(translation, store)#

Kanca bir dosya işlendikten sonra tetiklenir.

Parametre olarak bir dosya biçimi sınıfının bir kopyasını alır.

Bu seçenek, dosyanın nasıl kaydedileceğini ayarlamak gibi dosya biçimi sınıfı parametrelerini değiştirmek için faydalıdır.

unit_pre_create(unit)#

Kanca yeni birim oluşturulmadan önce tetiklenir.

İşte örnek bir eklenti:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

from django.utils.translation import gettext_lazy

from weblate.addons.base import BaseAddon
from weblate.addons.events import EVENT_PRE_COMMIT


class ExampleAddon(BaseAddon):
    # Filter for compatible components, every key is
    # matched against property of component
    compat = {"file_format": {"po", "po-mono"}}
    # List of events add-on should receive
    events = (EVENT_PRE_COMMIT,)
    # Add-on unique identifier
    name = "weblate.example.example"
    # Verbose name shown in the user interface
    verbose = gettext_lazy("Example add-on")
    # Detailed add-on description
    description = gettext_lazy("This add-on does nothing it is just an example.")

    # Callback to implement custom behavior
    def pre_commit(self, translation, author):
        return

Weblate ön yüzü#

Ön yüz şu anda Bootstrap, jQuery ve birkaç üçüncü taraf kitaplığı kullanılarak oluşturulmuştur.

Desteklenen tarayıcılar#

Weblate, tüm bilinen tarayıcıların ve platformların en yeni ve kararlı sürümlerini destekler.

Güncel WebKit, Blink ya da Gecko sürümünü kullanan alternatif tarayıcılar, doğrudan ya da platformun site görünümü API uygulaması üzerinden açıkça desteklenmez. Bununla birlikte, Weblate (çoğu durumda) bu tarayıcılarda da düzgün bir şekilde görüntülenmeli ve çalışmalıdır.

Eski tarayıcılar çalışabilir, ancak bazı özellikler sınırlı olabilir.

Bağımlılık yönetimi#

Üçüncü taraf kitaplıklarını güncellemek için Yarn paket yöneticisi kullanılır. Yapılandırma scripts/yarn içindedir ve kitaplıkları yükseltmek, bunları oluşturmak ve üçüncü taraf ön yüz kodunun bulunduğu weblate/static/vendor içindeki konumlara kopyalamak için scripts/yarn-update sarmalayıcı betiği kullanılır. Weblate kodu doğrudan weblate/static içine yerleştirilmeli ya da belirli alt klasörler bulunmalıdır (weblate/static/editor gibi).

Yeni üçüncü taraf kitaplığı eklemek genellikle şu şekildedir:

# Add a yarn package
yarn --cwd scripts/yarn add PACKAGE
# Edit the script to copy package to the static folder
edit scripts/yarn-update
# Run the update script
./scripts/yarn-update
# Add files to git
git add .

Kodlama biçemi#

Weblate, hem JavaScript hem de CSS dosyalarının kod biçimlendirmesi için Prettier kullanır.

Ek olarak JavaScript kodunu denetlemek için ESLint kullanıyoruz.

Yerelleştirme#

Ön yüz kodunda kullanıcı tarafından görülebilecek herhangi bir metne gerek duyuyorsanız, bu yerelleştirilebilir olmalıdır. Çoğu durumda yalnızca, metninizi gettext işlevinin içine kaydırmanız yeterlidir. Ancak kullanılabilecek daha karmaşık özellikler de vardır:

document.write(gettext('this is to be translated'));

var object_count = 1 // or 0, or 2, or 3, ...
s = ngettext('literal for the singular case',
        'literal for the plural case', object_count);

fmts = ngettext('There is %s object. Remaining: %s',
        'There are %s objects. Remaining: %s', 11);
s = interpolate(fmts, [11, 20]);
// s is 'There are 11 objects. Remaining: 20'

Simgeler#

Weblate şu anda material design simgelerini kullanıyor. Yeni simgeler arıyorsanız, Material Design Icons ya da Material Design Resources seçeneğini işaretleyin.

Ek olarak, SVG boyutunu küçültmek için scripts/optimize-svg kullanılır. Çünkü simgelerin çoğu yolların biçemine izin vermek için HTML içine gömülüdür.

Weblate sorunlarını bildirmek#

Weblate hata izleyicisi GitHub üzerinde bulunur.

Karşılaştığınız sorunları bildirmeye ya da Weblate için iyileştirme önerilerinde bulunmaktan çekinmeyen. Sorun bildirimi için size kolaylık sağlayacak çeşitli kalıplar hazırlanmıştır.

Bulduğunuz şey bir Weblate güvenlik sorunuysa, lütfen aşağıdaki Güvenlik sorunları bölümüne bakın.

Hata bildiriminiz ya da özellik isteğiniz ile ilgili emin değilseniz, Weblate tartışmaları bölümünü deneyebilirsiniz.

Güvenlik sorunları#

Topluluğa yanıt vermesi ve yükseltmesi için zaman tanımak amacıyla, tüm güvenlik sorunlarını gizlice bildirmeniz önemle önerilir. Güvenlik sorunlarını ele almak için HackerOne kullanılır ve doğrudan HackerOne adresinden bildirilebilir. Oraya gönderdikten sonra, topluluğun olayı çözmek için sınırlı ama yeterli zamanı vardır.

Alternatif olarak, HackerOne üzerine aktarılan security@weblate.org adresine bildirebilirsiniz.

Herhangi bir nedenle HackerOne kullanmak istemiyorsanız, bildirimi michal@weblate.org adresine e-posta olarak gönderebilirsiniz. İletiyi ‘3CB 1DF1 EF12 CF2A C0EE 5A32 9C27 B313 42B7 511D’ PGP anahtarıyla şifrelemeyi seçebilirsiniz. PGP anahtarını Keybase üzerinden de alabilirsiniz.

Not

Weblate, birçok şey için üçüncü taraf bileşenleri kullanır. Genel olarak bu bileşenlerden birini etkileyen bir güvenlik açığı bulursanız, lütfen bunu doğrudan ilgili projeye bildirin.

Bunların bazıları şunlardır:

Weblate sınama paketi ve sürekli bütünleştirme#

Sınama paketleri geçerli kodun çoğu için bulunabilir. Herhangi bir yeni özellik için sınama çalışmaları ekleyerek kapsamı artırın ve çalıştığını doğrulayın.

Sürekli bütünleştirme#

Güncel sınama sonuçları GitHub işlemleri bölümünde bulunabilir ve kapsama alanı Codecov bölümünde raporlanır.

Farklı yönleri doğrulayacak birkaç görev vardır:

  • Birim sınamaları

  • Belge oluşturma ve dış bağlantılar

  • Desteklenen tüm sürümlerden aktarım sınaması

  • Kod standardı

  • Kurulum doğrulaması (oluşturulan dist dosyalarının hiçbir şeyi kaçırmamasını ve sınanabilmesini sağlar)

CI yapılandırması .github/workflows klasöründe bulunur ve yoğun olarak ci klasöründeki yardımcı betikleri kullanır. Betikler el ile de yürütülebilir, ancak çoğunlukla kullanılacak Django ayarları dosyasını ve veri tabanı bağlantısını tanımlayan birkaç ortam değişkeni gereklidir. Bunun örnek tanımını scripts/test-database.sh içinde bulabilirsiniz:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

# Simple way to configure test database from environment

# shellcheck shell=sh

# Database backend to use postgresql / mysql / mariadb
export CI_DATABASE="${1:-postgresql}"

# Database server configuration
export CI_DB_USER=weblate
export CI_DB_PASSWORD=weblate
export CI_DB_HOST=127.0.0.1

# Django settings module to use
export DJANGO_SETTINGS_MODULE=weblate.settings_test

Basit yürütme şöyle görünebilir:

. scripts/test-database.sh
./ci/run-migrate
./ci/run-test
./ci/run-docs

Yerel sınama#

Bir sınama paketini yerel olarak çalıştırmak için şunu kullanın:

DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py test

İpucu

Sınama kullanılacak bir veri tabanı (PostgreSQL) sunucusuna gerek duyacaksınız. Django varsayılan olarak, test_ ön eki olan sınamaları çalıştırmak için ayrı bir veri tabanı oluşturur. Bu nedenle ayarlarınızın weblate kullanacak şekilde yapılandırılması durumunda, sınamalar test_weblate veri tabanını kullanır. Kurulum yönergeleri için Weblate için veri tabanı kurulumu bölümüne bakabilirsiniz.

weblate/settings_test.py CI ortamında da kullanılır (bilgi almak için: Sürekli bütünleştirme) ve ortam değişkenleri kullanılarak ayarlanabilir:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

# Simple way to configure test database from environment

# shellcheck shell=sh

# Database backend to use postgresql / mysql / mariadb
export CI_DATABASE="${1:-postgresql}"

# Database server configuration
export CI_DB_USER=weblate
export CI_DB_PASSWORD=weblate
export CI_DB_HOST=127.0.0.1

# Django settings module to use
export DJANGO_SETTINGS_MODULE=weblate.settings_test

Sınamaları çalıştırmadan önce, bazı sınamalar için var olmaları gerektiğinden durağan dosyaları toplamalısınız:

DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py collectstatic

Çalıştırılacak sınamaları tek tek de belirtebilirsiniz:

DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py test weblate.gitexport

İpucu

Sınamalar geliştirici docker kapsayıcısı içinde de yürütülebilir. Bilgi almak için: Weblate platformunu Docker üzerinde yerel olarak çalıştırma.

Ayrıca bakınız

Django sınamalarını çalıştırmak ve yazmak ile ilgili bilgi almak için Testing in Django bölümüne bakabilirsiniz.

Veri şemaları#

Weblate, dış JSON dosyalarının düzenini tanımlamak için JSON şeması kullanır.

Weblate çeviri belleği şeması#

https://weblate.org/schemas/weblate-memory.schema.json

tür

dizi

ögeler

Çeviri belleği ögesi

tür

nesne

özellikler

  • category

Dizge kategorisi

1 genel, 2 paylaşılmış, 10000000+ projeye özel, 20000000+ kullanıcıya özel

tür

integer

examples

1

minimum

0

default

1

  • origin

Dizge kaynağı

Dosya adı veya bileşen adı

tür

string

examples

test.tmx

project/component

default

  • source

Kaynak dizge

tür

string

examples

Merhaba

minLength

1

default

  • source_language

Kaynak dil

ISO 639-1 / ISO 639-2 / IETF BCP 47

tür

string

examples

en

pattern

^[^ ]+$

default

  • target

Hedef dizge

tür

string

examples

Ahoy

minLength

1

default

  • target_language

Hedef dil

ISO 639-1 / ISO 639-2 / IETF BCP 47

tür

string

examples

tr

pattern

^[^ ]+$

default

additionalProperties

False

definitions

Weblate kullanıcı verilerini dışa aktarma#

https://weblate.org/schemas/weblate-userdata.schema.json

tür

nesne

özellikler

  • basic

Temel

tür

nesne

özellikler

  • username

Kullanıcı adı

tür

string

examples

admin

default

  • full_name

Ad soyad

tür

string

examples

Weblate Yöneticisi

default

  • email

E-posta

tür

string

examples

noreply@ornek.com

default

format

email

  • date_joined

Katılma tarihi

tür

string

examples

2019-11-18T18:53:54.862Z

default

format

date-time

additionalProperties

False

  • profile

Profil

tür

nesne

özellikler

  • language

Dil

tür

string

examples

tr

pattern

^[^ ]*$

default

  • suggested

Önerilmiş dizge sayısı

tür

integer

examples

1

default

0

  • translated

Çevrilmiş dizge sayısı

tür

integer

examples

24

default

0

  • uploaded

Yüklenmiş ekran görüntüsü sayısı

tür

integer

examples

1

default

0

  • hide_completed

Tamamlanmış çevirileri panoda gizler

tür

boolean

examples

False

default

True

  • secondary_in_zen

Zen kipinde ikincil çevirileri görüntüler

tür

boolean

examples

True

default

True

  • hide_source_secondary

İkincil çeviri varsa kaynağı gizler

tür

boolean

examples

False

default

True

  • editor_link

Düzenleyici bağlantısı

tür

string

examples

pattern

^.*$

default

  • translate_mode

Çeviri düzenleyici kipi

tür

integer

examples

0

default

0

  • zen_mode

Zen düzenleyici kipi

tür

integer

examples

0

default

0

  • special_chars

Özel karakterler

tür

string

examples

pattern

^.*$

default

  • tema

Tema

tür

string

examples

auto

pattern

^(auto|dark|light)$

default

auto

  • dashboard_view

Varsayılan pano görünümü

tür

integer

examples

1

default

0

  • dashboard_component_list

Varsayılan bileşen listesi

default

null

anyOf

tür

null

tür

integer

  • languages

Çevrilmiş diller

tür

dizi

default

ögeler

Dil kodu

tür

string

examples

tr

pattern

^.*$

default

  • secondary_languages

İkincil diller

tür

dizi

default

ögeler

Dil kodu

tür

string

examples

sk

pattern

^.*$

default

  • watched

İzlenen projeler

tür

dizi

default

ögeler

Proje kısaltması

tür

string

examples

weblate

pattern

^.*$

default

additionalProperties

False

  • auditlog

Denetim günlüğü

tür

dizi

default

ögeler

Ögeler

tür

nesne

özellikler

  • address

IP adresi

tür

string

examples

127.0.0.1

pattern

^.*$

default

  • user_agent

Kullanıcı uygulaması

tür

string

examples

PC / Linux / Firefox 70.0

pattern

^.*$

default

  • timestamp

Zaman damgası

tür

string

examples

2019-11-18T18:58:30.845Z

default

format

date-time

  • activity

Etkinlik

tür

string

examples

oturum açma

pattern

^.*$

default

additionalProperties

False

definitions

Weblate yayınları#

Yayın zamanlaması#

Weblate, sürümler, iki aylık aralıklarla yayınlanır (x.y). Bunları genellikle gözden kaçan sorunları düzeltmek için bir dizi hata düzeltme sürümü izler (x.y.z).

Ana sürümün değişmesi, yükseltme işleminin bu sürümü atlayamayacağını gösterir. Daha yüksek x.y sürümlerine yükseltmeden önce her zaman x.0 sürümüne yükseltilmesi gerekir.

Yayın planlaması#

Yakında yayınlancak sürümlerin özellikleri GitHub kilometre taşları kullanılarak derlenir. Yol haritamızı <https://github.com/WeblateOrg/weblate/milestones> adresinde görebilirsiniz.

Yayınlama süreci#

Yayınlanma öncesi denetlenmesi gerekenler:

  1. Yeni çevrilen dilleri ./scripts/list-translated-languages ile denetleyin.

  2. Son sürümü :command:`./scripts/prepare-release’ ile ayarlayın.

  3. Ekran görüntülerinin güncel olduğundan emin olun :command:`make -j 12 -C docs update-screenshots’.

  4. Bekliyor olabilecek çevirileri birleştirin wlc push; git remote update; git merge origin/weblate

Yayını gerçekleştirin:

  1. Yayını oluşturun ./scripts/create-release --tag (gereksinimler için aşağı bakın).

Yayın sonrası el ile yapılacak adımlar:

  1. Docker kalıbını güncelleyin.

  2. GitHub kilometre taşını kapatın.

  3. Docker kalıbı sınandıktan sonra bir etiket ekleyip itin.

  4. Helm çizelgesini yeni sürüme güncelleyin.

  5. Birleştirme sınamasında işlenmesi için .github/workflows/migrations.yml içine yeni sürümü ekleyin.

  6. Site indirme bağlantılarındaki sürümü artırın.

  7. Depodaki sürümü ./scripts/set-version ile artırın.

  8. Tüm readthedocs.org çevirilerinin ./scripts/rtd-projects ile oluşturulup oluşturulmadığını denetleyin.

To create tags using the ./scripts/create-release script you will need following:

  • Yayını imzalamak için kişisel anahtar ile GnuPG

  • Weblate Git depolarına itme erişimi (etiketleri iter)

  • Yapılandırılmış hub aracı ve Weblate deposunda sürüm oluşturma erişimi

  • Weblate indirme sunucusuna SSH erişimi (site indirmeleri oraya kopyalanır)

Güvenlik ve gizlilik#

Tüyo

Weblate üzerinde güvenlik, kullanıcılarımızın gizliliğine önem veren bir ortam sağlar.

Weblate geliştirme çalışmaları, Linux Vakfı Temel Altyapı Girişiminin İyi Örneklerini izlemektedir.

Ayrıca bakınız

Güvenlik sorunları

Güvenlik güncellemeleri#

Yalnızca son sürümün güvenlik güncellemelerini alacağı garanti edilir.

Güvenlik açıkları için bağımlılıkları izlemek#

Bağımlılıklarımızdaki güvenlik sorunları Dependabot ile izlenir. Python ve JavaScript kitaplıkları kapsanır ve son kararlı sürümde, güvenlik açıklarını önlemek için bağımlılıklar güncellenir.

İpucu

Üçüncü taraf kitaplıklarında Weblate üzerinde etkisi olmayan güvenlik açıkları olabilir. Bu nedenle Weblate hata düzeltme sürümleri yayınlanmaz ve bunlar giderilmez.

Docker kapsayıcısı güvenliği#

Docker kapsayıcıları Anchore ve Trivy güvenlik tarayıcıları ile düzenli olarak taranır.

Böylece, güvenlik açıklarını erken bulmamız ve iyileştirmeleri hızlı bir şekilde yayınlamamız sağlanır.

Bu taramaların sonuçlarını GitHub üzerinden alabilirsiniz. Bunlar CI üzerinde SARIF (Statik Analiz Sonuçları Değişim Biçimi) yapıları biçiminde tutulur.

Ayrıca bakınız

Sürekli bütünleştirme

Weblate modüllerine katkıda bulunmak#

Ana deponun yanında, Weblate birkaç Python modülünden oluşur. Bütün bunlar aynı yapıyı izler ve bu belgelerde tümü kapsanır.

Örneğin, bu şunları kapsar:

Kodlama rehberi#

Weblate için geliştirilen kodlar Tasarım ilkelerine uygun güvenlik göz önünde bulundurularak yazılmalıdır.

Tüm kodlar, kodun davranışını açıklayan belgelerle birlikte iletilmelidir. Yöntemler, karmaşık kod blokları veya kullanıcı tarafından görülebilen özellikleri belgelemeyi unutmayın.

Herhangi bir yeni kod PEP 484 türünde ipuçları kullanmalıdır. Var olan kod henüz bunları içermediğinden bunu henüz CI ile denetlemiyoruz.

Sınamaları yürütmek#

Sınamalar py.test kullanılarak yürütülür. Öncelikle sınama gereksinimlerini kurmanız gerekir:

pip install -r requirements-test.txt

Daha sonra depo checkout sayfasında sınama paketini yürütebilirsiniz:

py.test

Ayrıca bakınız

CI bütünleştirmesi Weblate sınama paketi ve sürekli bütünleştirme ile çok benzer.

Kodlama standardı ve kodu temizlemek#

Kod, PEP-8 kodlama yönergelerine uymalı ve black kod biçimlendiricisi ile biçimlendirilmelidir.

Kod kalitesini denetlemek için flake8 kullanabilirsiniz. Önerilen eklentiler .pre-commit-config.yaml içinde bulunur ve geçerli yapılandırması setup.cfg dosyasındadır.

Tüm bunları dayatmak için en kolay yaklaşım pre-commit kurmaktır. Depoda, gönderilen dosyaların düzgün olduğunu doğrulayacak bir yapılandırma bulunur. Kurulumdan sonra (requirements-lint.txt içinde bulunur) Weblate checkout sırasında pre-commit install komutunu çalıştırarak açın. Böylece tüm değişiklikleriniz kendiliğinden denetlenir.

Denetimi el ile de başlatabilirsiniz. Tüm dosyaları denetlemek için şunu yürütün:

pre-commit run --all

Ayrıca bakınız

Weblate kaynak kodları

Weblate hakkında#

Proje hedefleri#

Çevirmenlerin katkıda bulunmasını kolaylaştıran, geniş bir Desteklenen dosya biçimleri yelpazesini destekleyen sıkı Sürüm denetimi bütünleştirmesi bütünleşmesi ile internet temelli sürekli yerelleştirme aracı.

Proje adı#

“Weblate”, “web” ve “translate” sözcüklerinin birleşimidir.

Proje sitesi#

Açılış sayfası https://weblate.org ve bulut barındırma hizmeti https://hosted.weblate.org adresinde bulunur. Belgeler https://docs.weblate.org adresinde görülebilir.

Proje logoları#

Proje logoları ve diğer çizelgeler https://github.com/WeblateOrg/graphics adresinde bulunabilir.

Liderlik#

Bu proje, michal@cihar.com adresinden ulaşılabileceğiniz Michal Čihař tarafından geliştiriliyor.

Katkıda bulunanlar#

Weblate, Michal Čihař tarafından kuruldu. 2012 yılında kurulduğundan bu yana binlerce kişi katkıda bulundu.

Lisans#

Daha ayrıntılı lisans bilgileri Weblate kaynak kodunda bulunabilir ve REUSE 3.0 teknik özellikleri yönergelerini izler.

Telif Hakkı © Michal Čihař michal@cihar.com

Bu yazılım özgürdür: Yeniden dağıtabilir ve/veya Özgür Yazılım Vakfı tarafından yayınlanan GNU Genel Kamu Lisansı koşulları altında, lisansın 3. sürümü ya da (seçiminize göre) daha sonraki bir sürümü koşullarına uygun olarak değiştirebilirsiniz.

Bu yazılım, yararlı olacağı umuduyla dağıtılır. Ancak HERHANGİ BİR GARANTİ VERİLMEZ; TİCARETE UYGUNLUK VEYA BELİRLİ BİR AMACA UYGUNLUK GARANTİSİ VERİLMEZ. Ayrıntılı bilgi almak için GNU Genel Kamu Lisansı koşullarına bakabilirsiniz.

Bu yazılımla birlikte GNU Genel Kamu Lisansı metninin bir kopyasını almış olmalısınız. Bulamıyorsanız <https://www.gnu.org/licenses/> adresine bakabilirsiniz.

Weblate 4.18#

15 Haziran 2023 tarihinde yayınlandı.

  • İzin verilmeyen durumların API hata iletileri iyileştirildi.

  • XML denetimlerinde yaşanan yanlış pozitif sonuçlar azaltıldı.

  • Çevrilmiş denetiminin kararlılığı iyileştirildi.

  • Fluent dosya biçiminin desteği genişletildi.

  • Bazı hız sınırlamalarında kullanıcı oturumunun kapatılması engellendi.

  • TBX biçimine sözlük açıklamalarını ekleme desteği eklendi.

  • Dizgeleri son güncellemeye göre sıralama özelliği eklendi.

  • Kullanıcıları bulmak için arama yetenekleri artırıldı.

  • Ekran görüntülerinin bir depodan kendiliğinden güncellenmesi özelliği eklendi.

  • Çeviri belleği başarımı iyileştirildi.

  • JSON/CSV dosyasına dışa aktarılan proje istatistiklerine daha fazla ayrıntı eklendi. Artık API içerikleri ile eşleşiyor.

  • Yeniden kullanılan çeviri denetimi eklendi.

  • Kendiliğinden önerilerde önerilen değişikliğin vurgulanması sağlandı.

  • Koyu tema eklendi. Tarayıcı ile aynı ve el ile ayarlama seçenekleri bulunuyor.

  • Docker kapsayıcısı artık salt okunur kök dosya sistemiyle kullanılabiliyor.

  • Bir projeye kullanıcı eklenirken kullanıcı adının otomatik olarak tamamlanması sağlandı.

  • Projeler, bileşenler, diller ve kullanıcılar için site genelinde arama özelliği eklendi.

  • New add-on Fill read-only strings with source.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.17#

17 Nisan 2023 tarihinde yayınlandı.

  • Raporların dile göre süzülmesi sağlandı.

  • Kullanımdan kaldırılan cleanup_celery komutu kaldırıldı.

  • Bazı ekiplerin yaşadığı özel proje görünürlüğü sorunları düzeltildi.

  • Kendiliğinden çevirinin diğer bileşenlerden çeviri yaparken hedef durumunu dikkate alması sağlandı.

  • Herkese açık kullanıcı profillerinin başarımı iyileştirildi.

  • Sentry bütünleştirmesi başarımı iyileştirildi.

  • Ed25519 SSH anahtarları desteği eklendi.

  • Ölçümlerin depolanması yeniden yazıldı.

  • Dizgeleri konuma göre arama özelliği eklendi.

  • Belgelerde iyileştirmeler yapıldı.

  • Çeviri değiştirilmemiş denetiminin sözlükte çevrilemez olarak imlenmiş terimlere uygun davranması sağlandı.

  • Kendiliğinden Devanagari danda düzeltme özelliği eklendi.

  • Her dilin proje çeviri belleğini indirme özelliği eklendi.

  • Kullanılmayan bileşenler için yeni uyarı eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.16.4#

16 Mart 2023 tarihinde yayınlandı.

  • Bağımlılıklar güncellendi.

  • Arka plan görevlerinin zamanlaması geliştirildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.16.3#

15 Mart 2023 tarihinde yayınlandı.

  • Proje yedeklemelerinde oturum işlenmesi iyileştirildi.

  • Bağımlılıklar güncellendi.

  • Yerelleştirme güncelleştirmeleri yapıldı.

  • Belgelerde iyileştirmeler yapıldı.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.16.2#

8 Mart 2023 tarihinde yayınlandı.

  • Çeviri belleğinde arama sorunu düzeltildi.

  • Kendiliğinden çeviri daha fazla hizmet ile düzeltildi.

  • Örtüşen sözlük terim eşleşmelerinin sunumu geliştirildi.

  • Bazı biçimlerde İngilizce olmayan kaynak dil için çoğul ayrıştırması düzeltildi.

  • go-i18n v2 JSON dosyaları desteği eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.16.1#

1 Mart 2023 tarihinde yayınlandı.

  • Sınama paketi sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.16#

1 Mart 2023 tarihinde yayınlandı.

  • Biçim dizesi denetimlerinin yinelenen biçimleri de algılaması sağlandı.

  • Bazı özel biçimlendirilmiş dizgelerin arama başarımı iyileştirildi.

  • Celery görev zamanlamasının kayıt yeri veri tabanı olarak değiştirildi.

  • IBM Watson Language Translator desteği eklendi.

  • 4.14 sürümünde kullanımdan kaldırılan sürüm denetimi sistemi bütünleştirmesi desteği kaldırıldı.

  • Bitbucket sunucusu çekme istekleri desteği eklendi.

  • Gettext PO dosyalarında çakışmaların işlenmesi iyileştirildi.

  • API ile ekleme sırasında dizge durumunu tanımlama desteği eklendi.

  • CORS tarafından izin verilen kaynakları yapılandırma desteği eklendi.

  • Çoğul biçimler için kendiliğinden öneri desteği eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.15.2#

25 Ocak 2023 tarihinde yayınlandı.

  • Varsayılan yapılandırmada gotext JSON ve i18next v4 biçimleri etkinleştirildi.

  • Bozuk dosyalar yüklendiğinde yaşanan çökme sorunu düzeltildi.

  • Git depo durumunda eski klasörlerin görüntülenmesi sağlandı.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.15.1#

19 Ocak 2023 tarihinde yayınlandı.

  • Kendiliğinden çeviri önerileri düzeltildi.

  • Bazı uç durumlarda yaşanan eklenti sayfasının çökmesi sorunu düzeltildi.

  • Bazı durumlarda yeni çevirilerde yaşanan kalıbın çevrilmemesi sorunu düzeltildi.

  • REUSE 3.0 kullanılarak lisanslama belgelendirildi.

  • Takım yönetiminde kullanıcıların sayfalandırması düzeltildi.

  • Proje oluşturma ve kaydetme başarımı iyileştirildi.

  • gotext JSON dosyaları desteği eklendi.

  • i18next v4 dosyaları desteği eklendi.

  • API üzerinde sayfalandırma artık özelleştirilebilir.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.15#

16 Aralık 2022 tarihinde yayınlandı.

  • Tek bir dizge için değişikliklere göz atma özelliği eklendi.

  • Diğer bileşenlerden kendiliğinden çeviri yapılırken çoğulların işlenmesi düzeltildi.

  • Dizgeyi öneri olarak göndermek için Alt+Enter klavye kısayolu eklendi.

  • Fluent biçiminde yerleştirilebilir ögeler desteği eklendi.

  • Çeviri belleğinin başarımı iyileştirildi.

  • İyi bilinen kod barındırma hizmetleri için repoweb tarama bağlantılarının kendiliğinden oluşturulması sağlandı.

  • Birkaç görünümün başarımı iyileştirildi.

  • Çoğul biçimleri olan dizgelerin listelenmesi iyileştirildi.

  • HTML head bölümüne markup kodu eklenmesi sağlandı.

  • Eklentide, MO dosyaları oluşturulurken yalnızca çevrilen dosyaların katılması sağlandı.

  • Kurallı ifade imlerinin işlenmesi düzeltildi.

  • Çoğul biçimlerde yer belirtici denetimi davranışı iyileştirildi.

  • Çeviri dosyalarının Google Play ile uyumlu biçimde adlandırılması özelliği eklendi.

  • API üzerine etiket desteği eklendi.

  • İşlemeler için bildirimlerden farklı e-posta seçme özelliği eklendi.

  • Docker kalıbı artık hata ayıklama kipini varsayılan olarak etkinleştirmiyor.

  • Sözlük terimleri sözlük bileşeni önceliğine göre sıralandı.

  • Takım üyeleri ekleyebilen ya da kaldırabilen takım yöneticileri eklendi.

  • Kullanıcıları silmeden önce bir açılır pencere onayı eklendi.

  • XML çıktısını özelleştirmek için eklenti eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.14.2#

5 Kasım 2022 tarihinde yayınlandı.

  • Çeviri belleğinden kayıtları kaldırma özelliği eklendi.

  • Çift dil uyarısında çözümleme iyileştirildi.

  • Ard arda yinelenen sözcük denetiminin doğruluğu iyileştirildi.

  • Çok sayıda bildirim gönderme ölçeklendirilmesi iyileştirildi.

  • Alt yazı çevirisi için dizge durumunun işlenmesi iyileştirildi.

  • VCS hizmeti API anahtarlarının _CREDENTIALS listesi yerine _TOKEN/_USERNAME yapılandırması ile güvenli olmayan yapılandırması kullanımdan kaldırıldı.

  • Yüklenen bazı CSV dosyalarının işlenmesi düzeltildi.

  • Fark görünümünde boşluk değişimlerinin işlenmesi iyileştirildi.

  • Yönetim sayfalarına kendiliğinden öneri yönetimi bağlantısı eklendi.

  • Geçmiş yorumların kaldırılması/çözümlenmesi için izleme eklendi.

  • İlişkili bileşenlerle proje yedeklerinin geri yüklenmesi düzeltildi.

  • Hesap açılamadığında captcha girişi düzeltildi.

  • DeepL dil desteği iyileştirildi.

  • Kimliği doğrulanan depolarla internet kancaları uyumluluğu iyileştirildi.

  • Python 3.11 desteği eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.14.1#

15 Eylül 2022 tarihinde yayınlandı.

  • Bazı durumlarda yaşanan proje yedeklerinin oluşturulması sorunu düzeltildi.

  • Dosya yüklemede hata bildirimi iyileştirildi.

  • Kimlik doğrulama yapılırken GitHub üzerinden e-postaları doğrulanmış tüm kullanıcıların alınması sağlandı.

  • Sözlük terimlerinin bağlam ya da anahtarlarla eşleştirmesi engellendi.

  • Dizge kaldırma bildirimleri eklendi.

  • Sözlükte çevrilemeyen terimlerin yönetimi iyileştirildi.

  • Takım yönetimi sayfasında takım üyelerinin sayısı listelendi.

  • Grup yönetimi arayüzü eklendi.

  • Onaylama kullanıldığında onaylama istatistiklerinin her zaman görüntülenmesi sağlandı.

  • Birim API uygulamasına arama özelliği eklendi.

  • Onaylama iş akışında, salt okunur dizgeler için ilerleme çubuğunun görüntülenme sorunu düzeltildi.

  • Birmanca için noktalama denetimleri iyileştirildi.

  • Ölçüm verilerinin çöp biriktirmesi düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.14#

22 Ağustos 2022 tarihinde yayınlandı.

  • Geçmişteki eklenti değişikliklerinin izlenmesi sağlandı.

  • Windows RC, HTML ve metin dosyalarından yaşanan çeviri işleme sorunu düzeltildi.

  • Dil kodu biçemi yapılandırma seçenekleri genişletildi.

  • Son CLDR sürümlerinde güncellenen çoğul biçimler desteği eklendi.

  • Çok sayıda çeviri içeren bileşenler güncellenirken bellek kullanımı azaltıldı.

  • SAP Translation Hub çeviri etki alanı desteği eklendi.

  • Kaynak dizge konumlarında mutlak bağlantıların kullanılabilmesi sağlandı.

  • Bazı ters vekil sunucuların arkasında çalışma iyileştirildi.

  • API, çeviri belleğini kapsayacak şekilde genişletildi.

  • Belge çevirisi iş akışı iyileştirildi.

  • HTML ve metin dosyaları çevirisinin güvenilirliği artırıldı.

  • Proje düzeyinde yedekleme özelliği eklendi.

  • Çeviri belleği aramalarının başarımı ve bellek kullanımı iyileştirildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.13.1#

1 Temmuz 2022 tarihinde yayınlandı.

  • Geçmiş kayıtlarında yaşanan önerilerin izlenmesi sorunu düzeltildi.

  • Cloudflare üzerinden yaşanan ters vekil sunucu bilgisini işleme sorunu düzeltildi.

  • Ayrıştırma hatasının bir bileşenin çevrilmesini kilitlemesi sağlandı.

  • Keşif eklentisinde yaşanan ara dosyayı yapılandırma sorunu düzeltildi.

  • Yer belirticilerde DeepL çeviri davranışı düzeltildi.

  • API üzerinden dizgelerin çevrilmemesi sorunu düzeltildi.

  • API üzerine bir gruptan kullanıcı kaldırma özelliği eklendi.

  • Kullanıcı davet e-postalarında yaşanan denetim günlüğü sorunu düzeltildi.

  • Java biçimlendirme dizgelerinde yaşanan im adları sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.13#

15 Haziran 2022 tarihinde yayınlandı.

  • Dil adlarını güncelleme davranışı değiştirildi.

  • Proje listesine sayfalandırma eklendi.

  • Yeni birimler oluşturma API uygulaması artık yeni oluşturulan birim ile ilgili bilgiler veriyor.

  • Bileşen keşfinde bir ara dilin yapılandırılması eklendi.

  • CSV biçimlerine sabit kodlama çeşitleri eklendi.

  • Temeldeki uygulamaya daha iyi uyması amacıyla bazı biçimler için bağlam ve konumun işlenmesi değiştirildi.

  • ResourceDictionary biçimi desteği eklendi.

  • Renk körleri için ilerleme çubuğu renkleri iyileştirildi.

  • Dizge kaldırılırken yaşanan çeşitlerin temizlenmesi sorunu düzeltildi.

  • Django 4.1 uyumluluğu sağlandı.

  • XLIFF içinde kaçırılan XML ögelerini depolama özelliği eklendi.

  • Yer belirtici denetim hatalarının biçimlendirilmesi iyileştirildi.

  • /.well-known/change-password /accounts/password/ adresine yönlendirildi.

  • Makine çevirisi hizmetleri artık her proje için ayrı olarak yapılandırılabilir.

  • Yorumların çözümlenmesi için ayrı bir izin eklendi ve Dizgeleri onaylama rolüne verildi.

  • Alternatif çevirileri CSV dosyasında depolama özelliği eklendi.

  • Yer belirtici denetimi artık büyük/küçük harfe duyarsız olarak da yapılabilir.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.12.2#

11 Mayıs 2022 tarihinde yayınlandı.

  • Bazı bileşenlerde yaşanan proje çeviri belleğinin yeniden oluşturulması sorunu düzeltildi.

  • Bileşenlerin çevrilmemiş dizgelere göre sıralanması sorunu düzeltildi.

  • Yeni dil eklenirken yaşanan olası çeviri kaybı sorunu düzeltildi.

  • Aktarım işlemleri yapılırken Weblate SSH anahtarının oluşturulduğundan emin olunması sağlandı.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.12.1#

29 Nisan 2022 tarihinde yayınlandı.

  • Çekme isteği ileti başlığı düzeltildi.

  • Fluent biçiminde söz dizimi hatalarının işlenmesi iyileştirildi.

  • Bildirim e-postalarında yaşanan avatar görüntülenme sorunu düzeltildi.

  • İnternet üzerinden para kazanma özelliği eklendi.

  • Çeviriler kaldırılırken yaşanan eski kaynak dizgelerinin kaldırılması sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.12#

20 Nisan 2022 tarihinde yayınlandı.

  • Nokta işareti farklı için Amharca desteği eklendi.

  • Soru işareti farklı için Birmanca desteği eklendi.

  • Sözde yerel oluşturma eklentisinin seçenekleri genişletildi.

  • Bir dizgedeki tüm kalite denetimlerini yok saymak için ignore-all-checks imi eklendi.

  • Sözde yerel oluşturma eklentisinin denetim hatalarını tetiklemesi engellendi.

  • Gitea çekme isteği özelliği eklendi.

  • Dil kodu biçemi için Linux biçemi dil kodu eklendi.

  • Proje çeviri belleğini yeniden oluşturma özelliği eklendi.

  • API bir dosyadan bileşenler oluşturma için iyileştirildi.

  • Diğer çevirilere kopyala ve çoğalt düğmeleri eklendi.

  • Birleştirme isteği iletisi bileşen düzeyinde yapılandırılabilir kılındı.

  • XML etiketlerinde en fazla uzunluk kısıtlama davranışı iyileştirildi.

  • Fluent dosyalarının ek yorumlarla yüklenmesi sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.11.2#

4 Mart 2022 tarihinde yayınlandı.

  • Binary sürümdeki bozuk MO dosyaları sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.11.1#

4 Mart 2022 tarihinde yayınlandı.

  • Git ve Mercurial ile yaşanan argümanların eksik temizlenmesi sorunu düzeltildi - CVE-2022-23915. Ayrıntılı bilgi almak için GHSA-3872-f48p-pxqj bölümüne bakabilirsiniz.

  • CSV dosyalarından belirsiz dizgelerin yüklenmesi sorunu düzeltildi.

  • API üzerinden takım oluşturma özelliği eklendi.

  • Kullanıcı anma önerilerinin görüntülenmesi sorunu düzeltildi.

  • Proje belirteçlerine erişim artık özelleştirilebilir.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.11#

25 Şubat 2022 tarihinde yayınlandı.

  • XSS - CVE-2022-24710 sorunları düzeltildi. Ayrıntılı bilgi almak için GHSA-6jp6-9rf9-gc66 adresine bakabilirsiniz.

  • API kullanarak eklenti kurulumu sorunu düzeltildi.

  • İşlem gereken dizgeler adı Tamamlanmamış dizgeler olarak değiştirildi.

  • ICU MessageFormat söz dizimi kaynaklı yanlış pozitif sonuç sorunu düzeltildi.

  • Diğer kullanımlar listesinde kilit ve katılımcı anlaşmasının görüntülenmesi sağlandı.

  • Eski dizgeler ya da eksik çoğullar bulunduran PO dosyalarının güncellenme sorunu düzeltildi.

  • Gerrit ile bir araya toplama eklentisi uyumluluğu iyileştirildi.

  • Kullanıcı dillerinin Accept-Language üst bilgisine göre kendiliğinden hazırlanması sağlandı.

  • Dizge kaldırılırken sorunların işlenmesi iyileştirildi.

  • Weblate için artık Django 3.2 gerekiyor.

  • Proje kodu kimlik doğrulaması ile bazı yazma işlemleri düzeltildi.

  • Depodaki dizgeler değiştiğinde dizge durumunun izlenmesi sorunu düzeltildi.

  • Depodaki dizge değişikliklerinin izlenmesi sağlandı.

  • Gezinmeyi iyileştirmek için çeviriler listesine sabitlenebilen başlık eklendi.

  • Java özellikleri ile yaşanan çevrilmeyen dizgeler sorunu düzeltildi.

  • ASCII olmayan dal adlarıyla Git işlemi sorunu düzeltildi.

  • Çeviriyi kaynak dizgeyle önceden doldurma eklentisi eklendi.

  • Hızlı ileri almadan birleştir Birleştirme biçemi özelliği eklendi.

  • Yeni eklenen dizgelerde Kendiliğinden çeviri eklentisinin tetiklenmesi sorunu düzeltildi.

  • Birmanca için noktalama denetimleri iyileştirildi.

  • Kullanıcılara erişim izni vermek için proje düzeyinde özel takımların tanımlanması sağlandı. Bilgi almak için: Her proje için erişim denetimi yönetimi.

  • Uyarılara belge bağlantıları eklendi.

  • Docker kapsayıcının, gerektiğinde giden e-posta için TLS/SSL seçeneğini kendiliğinden etkinleştirmesi sağlandı.

  • Çözümlenmiş yorumları arama özelliği eklendi.

  • borgbackup 1.2 desteği eklendi.

  • Kendiliğinden çevrilmiş etiketinin uygulanması sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.10.1#

22 Aralık 2021 tarihinde yayınlandı.

  • Django 4.0 yükseltmesi ile gelen değişiklikler belgelendirildi.

  • Kendiliğinden çevrilmiş etiketinin görüntülenmesi sorunu düzeltildi.

  • Paylaşılan bir deposu olan bileşenlerde yaşanan dalın API ile görüntülenmesi sorunu düzeltildi.

  • Başarısız olan itme uyarısının çözümlenmesi iyileştirildi.

  • Değişikliklere göz atarken sayfayı el ile düzenleme sorunu düzeltildi.

  • Kashida harfi kullanılmış doğruluğu iyileştirildi.

  • Weblate Docker kapsayıcısı artık Python 3.10 kullanıyor.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.10#

16 Aralık 2021 tarihinde yayınlandı.

  • DeepL ile düzenlilik ve yer belirtici özelliği eklendi.

  • Artık proje ve dil düzeyinde toplu düzenleme ve arama/değiştirme kullanılabilir.

  • Arama ve değiştirme için süzme eklendi.

  • Düzeltme: “Kendiliğinden çevir” yetkisi artık Diller grubunun bir parçası değil.

  • “Kendiliğinden çevir”, Yönetim ve yeni Kendiliğinden çeviri grubuna eklendi.

  • Özel karakterlerle XLSX dosyalarının oluşturulması sorunu düzeltildi.

  • GitHub kimlik doğrulama yönetim bölümüne, kullanıcının belirli bir GitHub kuruluşunda veya takımında olup olmadığını denetleme özelliği eklendi.

  • API üzerine iletilen geçersiz parametrelerle ilgili geri bildirim iyileştirildi.

  • API için proje kapsamında erişim kodları özelliği eklendi.

  • Bazı durumlarda yaşanan dizge silme sorunu düzeltildi.

  • Yeni eklenen dizgelerin çevrilmesi sorunu düzeltildi.

  • Süzülmesini kolaylaştırmak için kendiliğinden çevrilmiş dizgeler etiketlendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.9.1#

19 Kasım 2021 tarihinde yayınlandı.

  • Kalıp değiştirildikten sonra yaşanan tek dilli dosyaların yüklenmesi sorunu düzeltildi.

  • İmlerdeki boşlukların işlenmesi iyileştirildi.

  • İndirme API uygulamasına süzme özelliği eklendi.

  • Yeni çeviriler eklerken yaşanan istatistik görünümü sorunu düzeltildi.

  • GitHub SSH anahtar değişikliği ile ilgili sorunlar çözüldü.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.9#

10 Kasım 2021 tarihinde yayınlandı.

  • Geçmiş etkinliklerin ayrıntı düzeyi artırıldı.

  • Geçmişin görüntülenmesi iyileştirildi.

  • Çeviri sayfalarının başarımı iyileştirildi.

  • Çeviri dosyası indirmelerini kısıtlama özelliği eklendi.

  • safe-html artık md-text ile kullanıldığında Markdown kodlarını anlayabiliyor.

  • max-length kod imi artık xml-text ile kullanıldığında XML kodlamasını yok sayıyor.

  • Çevirinin en fazla uzunluğu içinde oluşturulan metinlerin boyutları sorunu düzeltildi.

  • Yaklaşan Google ilke değişikliklerine yardımcı olmak için uygulama mağazası başlığının uzunluğu 30 karaktere düşürüldü.

  • SSH çağrısını SSH_EXTRA_ARGS aracılığıyla özelleştirme özelliği eklendi.

  • ICU MessageFormat için denetimler eklendi.

  • Makine çevirisi arka uçlarında hata durumunun ele alınması iyileştirildi.

  • Dizgelerdeki olağan dışı boşluk karakterleri vurgulandı.

  • Düzenleme yaparken çevrilen dizgede kalma seçeneği eklendi.

  • Borg çağrısını BORG_EXTRA_ARGS aracılığıyla özelleştirme özelliği eklendi.

  • Tek dilli çevirilerde yaşanan MO dosyalarının oluşturulması sorunu düzeltildi.

  • Tüm bileşen çevirilerini ZIP dosyası olarak indirmek için API uç noktası eklendi.

  • Python 3.10 desteği eklendi.

  • Yönetim arayüzüne e-posta davetini yeniden gönderme özelliği eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.8.1#

10 Eylül 2021 tarihinde yayınlandı.

  • Django yönetici arayüzünde yaşanan kullanıcı silme sorunu düzeltildi.

  • Eklenti parametreleri daha ayrıntılı olarak belgelendirildi.

  • Sözlükte yaşanan JavaScript sorunu düzeltildi.

  • Tutarlılık denetimlerinde eşleşme sayısına sınır eklendi.

  • Makine çevirilerinde yer belirticilerin işlenmesi iyileştirildi.

  • API kullanarak eklenti oluşturma sorunu düzeltildi.

  • Alt bilgiye gizlilik ilkesi bağlantısı eklemek için PRIVACY_URL seçeneği eklendi.

  • Üye e-posta adresleri proje yöneticilerinden gizlendi.

  • Çakışma durumunda Gettext PO birleştirmesi iyileştirildi.

  • Sözlük vurgulaması iyileştirildi.

  • XML denetimleriyle safe-html iminin davranışı iyileştirildi.

  • Bağlantılı bileşenler için işleme iletileri düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.8#

21 Ağustos 2021 tarihinde yayınlandı.

  • Apple stringsdict biçimine destek eklendi.

  • PostgreSQL ile tam arama işlemine büyük/küçük harfe duyarlılık özelliği eklendi.

  • Bazı durumlarda yaşanan sözlük açıklamalarının kaydedilmesi sorunu düzeltildi.

  • Belgelerde iyileştirmeler yapıldı.

  • Başarım iyileştirmeleri yapıldı.

  • Gerrit ile bir araya toplama eklentisi uyumluluğu iyileştirildi.

  • Tek dilli sözlük bileşenlerine dizge ekleme sorunu düzeltildi.

  • Çeşitler işlenirken başarım iyileştirildi.

  • Bir araya toplama eklentisinde yaşanan yukarı akış değişikliklerinin işlenmesini atlama sorunu düzeltildi.

  • İndirmelerin dosya uzantısını korunsun.

  • Fluent biçimi desteği eklendi.

  • JSON biçimlerini girintilemek için sekmeleri kullanma özelliği eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.7.2#

15 Temmuz 2021 tarihinde yayınlandı.

  • Bir projede daha fazla dil kısaltmasının yapılandırılması özelliği eklendi.

  • API üzerinde yaşanan arama dizgesini doğrulama sorunu düzeltildi.

  • Bir etki alanı değişikliğinden sonra Git dışa aktarıcı adresleri düzeltildi.

  • Windows RC dosyaları için temizleme eklentisi düzeltildi.

  • XLIFF güncellemesinde yaşanabilecek çökme sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.7.1#

30 Haziran 2021 tarihinde yayınlandı.

  • Sözlüğe terim ekleme açılır penceresi iyileştirildi.

  • LibreTranslate makine çevirisi hizmeti desteği eklendi.

  • Yeni projeler oluşturulurken hız sınırlaması eklendi.

  • Dosya güncelleme başarımı iyileştirildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.7#

17 Haziran 2021 tarihinde yayınlandı.

  • Yapılandırma sağlığı denetimi iyileştirildi.

  • Gettext PO dosyasında kullanılan object-pascal-format desteği eklendi. Ayrıntılı bilgi: Object Pascal biçimi.

  • Amacı daha iyi açıklamak için Yakındaki dizgeler, Benzer dizgeler olarak yeniden adlandırıldı.

  • mi18n lang dosyaları desteği eklendi.

  • SAML kimlik doğrulama bütünleştirmesi iyileştirildi.

  • Uç durumları daha iyi işlemek için Gerrit bütünleştirmesi düzeltildi.

  • Weblate gereksinimi Django 3.2 olarak güncellendi.

  • E-posta kimlik doğrulaması devre dışı bırakıldığında yaşanan kullanıcıları davet etme sorunu düzeltildi.

  • Dil tanımları iyileştirildi.

  • Kullanıcıların bir projeye katkıda bulunmalarını engelleme özelliği eklendi.

  • Sözlük dillerinin kendiliğinden oluşturulması sorunu düzeltildi.

  • Eklentilerle ilgili belgeler zenginleştirildi.

  • Bağlantılı depoları olan bileşenlerin başarımları iyileştirildi.

  • Ücretsiz DeepL API desteği eklendi.

  • Kullanıcı yönetimi için artık Django yönetici arayüzüne gerek duyulmuyor.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.6.2#

8 Mayıs 2021 tarihinde yayınlandı.

  • Paylaşılan bileşenin projeler arasında taşınmasından sonra yaşanan çökme sorunu düzeltildi.

  • Boş özellikler dosyalarına yeni dizgelerin eklenmesi sorunu düzeltildi.

  • Sağdan sola yazılan dillerde kopya simgesinin hizalaması düzeltildi.

  • Bilgi sekmesindeki dizge istatistikleri zenginleştirildi.

  • Git üzerinde yok sayılan çeviri dosyalarının işlenmesi sorunu düzeltildi.

  • Ölçüm başarımı iyileştirildi.

  • Sözlükleri kaydederken ortaya çıkabilen sorun düzeltildi.

  • Farklı çoğul kuralları olan dillerde tutarlılık denetiminin davranışı düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.6.1#

2 Mayıs 2021 tarihinde yayınlandı.

  • Eski istenmeyen ileti koruma kodu kaldırıldı.

  • Kaynak çoğul denetiminin doğruluğu iyileştirildi.

  • Docker kullanıcı arayüzü dilleri listesi güncellendi.

  • Çekme istekleri oluşturulurken alınan hata iletileri iyileştirildi.

  • Pagure üzerinde çekme istekleri oluşturma sorunu düzeltildi.

  • Kurulmuş eklentilerin kendiliğinden tetiklenmesi sorunu düzeltildi.

  • Yükseltme yapılırken olası ön belleğe alma sorunları düzeltildi.

  • Yükleme yapılırken tek dilli çevirilere yeni birimler eklenmesi sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.6#

19 Nisan 2021 tarihinde yayınlandı.

  • auto_translate yönetim komutuna çeviri kipini belirten bir parametre eklendi.

  • Metin dosyaları desteği eklendi.

  • Tüm nesneler için eğilimler ve ölçümler eklendi.

  • İkincil dillerdeki metinleri doğrudan kopyalama özelliği eklendi.

  • Değişikliklere göz atarken tarihe göre süzme özelliği eklendi.

  • Etkinlik çizelgeleri iyileştirildi.

  • İletişim formu e-postalarının göndericisini yapılandırma özelliği eklendi.

  • Bileşen oluşturma API uygulamasında parametre doğrulaması iyileştirildi.

  • Hız sınırlaması artık süper kullanıcılara uygulanmıyor.

  • Kendiliğinden çeviri eklentisinin başarımı ve güvenilirliği iyileştirildi.

  • Docker kapsayıcısına hız sınırlamasını özelleştirme özelliği eklendi.

  • Bileşen oluşturma API uygulamasına kendiliğinden İç Weblate adresleri kullanma özelliği eklendi.

  • Dizge listesinde durumun gösterilmesi sadeleştirildi.

  • Parola karması varsayılan olarak Argon2 kullanacak biçimde güncellendi.

  • Çeviri durumunu gösteren ilerleme çubukları sadeleştirildi.

  • Amacı netleştirmek için Eksik dilleri ekleme adı değiştirildi.

  • Dizge durumunu XLIFF olarak kaydetme sorunu düzeltildi.

  • Dil genelinde arama özelliği eklendi.

  • Docker dağıtımında ilk kez Yatay ölçeklendirme desteği eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.5.3#

1 Nisan 2021 tarihinde yayınlandı.

  • Ölçümlerin toplanması sorunu düzeltildi.

  • Dizge eklenirken yaşanabilecek çökme sorunu düzeltildi.

  • Arama sorgusu örnekleri iyileştirildi.

  • Değiştirme yüklemesinde yaşanması olası yeni eklenen dizgelerin kaybolması sorunu düzeltildi.

Weblate 4.5.2#

26 Mart 2021 tarihinde yayınlandı.

  • Kendiliğinden çeviri için zamanlama yapılandırması eklendi.

  • Lua biçim denetimi eklendi.

  • Art arda yinelenen sözcükler var denetiminde biçim dizgeleri yok sayıldı.

  • Çeviri sayfasından ekran görüntüsü yüklenmesi sağlandı.

  • Depo bakımına zorunlu dosya eşitlemesi eklendi.

  • Daha uzun kodlu diller için kendiliğinden öneriler düzeltildi.

  • Yeni dizge ekleme başarımı iyileştirildi.

  • Kalite denetimlerinde çeşitli hata düzeltmeleri yapıldı.

  • Çeşitli başarım iyileştirmeleri yapıldı.

  • Weblate uygulamasını keşfedin ile bütünleştirme eklendi.

  • Salt okunur dizgelerin denetlenmesi davranışı düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.5.1#

5 Mart 2021 tarihinde yayınlandı.

  • Bazı uç durumlarda yaşanan sözlük imlerinin düzenlenmesi sorunu düzeltildi.

  • Birkaç sayfanın başarımını artırmak için ölçümlerin kullanımı artırıldı.

  • TMX dosyalarında doğru kaynak dilin kaydedilmesi sağlandı.

  • API kullanarak tek dilli PO yüklemelerinin işlenmesi iyileştirildi.

  • Sözlük bileşenlerinde uyarı davranışı iyileştirildi.

  • Markdown bağlantı denetimleri iyileştirildi.

  • Öge yollarında sözlük ve kaynak dil belirtildi.

  • Büyük projelerde bileşen listeleri sayfalandı.

  • Çeviri, bileşen ya da proje silme başarımı iyileştirildi.

  • Toplu düzenleme başarımı iyileştirildi.

  • ODF dosyaları için “Düzenlenmesi gerekli” ve “Onaylandı” durumlarının korunması sorunu düzeltildi.

  • Çeviri dosyası indirmelerini özelleştirme arayüzü iyileştirildi

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.5#

19 Şubat 2021 tarihinde yayınlandı.

  • Gettext PO dosyasında kullanılan lua-format desteği eklendi.

  • Bir bileşeni projeler arasında paylaşma özelliği eklendi.

  • Birden çok biçim imiyle birden çok adsız değişken denetimi davranışı düzeltildi.

  • Posta listesi alanı projelerden kaldırıldı ve yerine çevirmenler için genel yönergeler eklendi.

  • Sahte yerel oluşturma eklentisi eklendi.

  • TermBase eXchange dosyaları desteği eklendi.

  • Bir im kullanarak dizge çeşitlerini el ile tanımlama desteği eklendi.

  • Tutarlılık denetimlerinin başarımı iyileştirildi.

  • Uzun dizgeler için çeviri belleği başarımı iyileştirildi.

  • Açıklama metinlerinde arama desteği eklendi.

  • İki dilli biçimlerde dizgelerin eklenmesi ve silinmesi özelliği eklendi.

  • Amazon Translate makine çevirisinde desteklenen dillerin listesi artırıldı.

  • Java özellikleri için Java MessageFormat denetimleri kendiliğinden etkinleştirildi.

  • Bir çeviriye yeni dizgeler eklemek için yeni bir yükleme yöntemi eklendi.

  • Çeviriye göz atmak için basit bir arayüz eklendi.

  • Sözlükler artık normal bileşenler olarak tutuluyor.

  • Artık bileşen API uygulaması kullanıldığından sözlüklere özel API kaldırıldı.

  • Bazı imleri değiştirmek için basitleştirilmiş arayüz eklendi.

  • Sözlüğe çevrilemeyen veya yasak terimler desteği eklendi.

  • Sözlüklere terminoloji tanımlama özelliği eklendi.

  • Görsel klavyeye daha fazla alan sağlamak için metin yönünü değiştirme seçeneği taşındı.

  • Kullanıcının katkıda bulunduğu projeleri kendiliğinden izleme seçeneği eklendi.

  • Çevirinin sözlük ile eşleşip eşleşmediği denetimi eklendi.

  • Gezinme metninin rengini belirleme özelliği eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.4.2#

14 Ocak 2021 tarihinde yayınlandı.

  • Dağıtılan bir MO dosyasının bozulması sorunu düzeltildi.

Weblate 4.4.1#

13 Ocak 2021 tarihinde yayınlandı.

  • Çoğul değişikliklerini geri alma sorunu düzeltildi.

  • Proje ayarları için yardım görüntüleme sorunu düzeltildi.

  • Kullanıcı yönetimi iyileştirildi.

  • Tek dilli PO dosyalarında bağlamın işlenmesi iyileştirildi.

  • Temizleme eklentisinin HTML, ODF, IDML ve Windows RC biçimlerine davranışı düzeltildi.

  • CSV dosyalarında yaşanan konumun işlenmesi sorunu düzeltildi.

  • Dosya indirmeleri için içerik sıkıştırmasının kullanılması sağlandı.

  • ZIP dosyasından içe aktarmada kullanıcı deneyimi iyileştirildi.

  • Yüklemelerde dosya biçimlerinin algılanması iyileştirildi.

  • Pagure için yinelenen çekme istekleri engellendi.

  • Hayalet çevirilerin görüntülenmesi başarımı iyileştirildi.

  • Çeviri düzenleyicisi yerel tarayıcı metin alanını kullanacak biçimde yeniden uygulandı.

  • Temizleme eklentisinin eklenen yeni dizgeleri bozması sorunu düzeltildi.

  • Eklentiler için API eklendi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.4#

15 Aralık 2020 tarihinde yayınlandı.

  • Bileşen oluştururken doğrulama iyileştirildi.

  • Weblate gereksinimi Django 3.1 olarak güncellendi.

  • Yönetim arayüzüne görünümü özelleştirme özelliği eklendi.

  • Toplu düzenlemede yaşanan salt okunur durum işleme sorunu düzeltildi.

  • CodeMirror bütünleştirmesi iyileştirildi.

  • Çeviri dosyalarından boş dizgeleri kaldırma eklentisi eklendi.

  • Çeviriler için CodeMirror düzenleyicisinin kullanılması sağlandı.

  • XML, HTML, Markdown ve reStructuredText için çeviri düzenleyiciye söz dizimi vurgulaması eklendi.

  • Çeviri düzenleyicide yerleştirilebilir ögelerin vurgulanması sağlandı.

  • Standart olmayan dil kodlarının desteği iyileştirildi.

  • Belirsiz dil kodları kullanıldığında uyarı eklendi.

  • Yeni bir çeviri eklenirken kullanıcıya süzülmüş bir dil listesinin sunulması sağlandı.

  • Geçmişteki değişiklikler için arama yetenekleri artırıldı.

  • Fatura ayrıntı sayfaları ve Libre barındırma iş akışı iyileştirildi.

  • Çeviri istatistikleri API uygulaması zenginleştirildi.

  • Çeviri yaparken “diğer çeviriler” sekmesi iyileştirildi.

  • Görevler API uygulaması eklendi.

  • Dosya yükleme başarımı iyileştirildi.

  • Kullanıcı tarafından tanımlanan özel karakterlerin görüntülenmesi iyileştirildi.

  • Kendiliğinden çeviri başarımı iyileştirildi.

  • Kullanıcı arayüzünde birkaç küçük iyileştirme yapıldı.

  • ZIP indirmelerinin adlandırılması iyileştirildi.

  • İzlenmeyen projelerin bildirimlerini alma seçeneği eklendi.

Weblate 4.3.2#

4 Kasım 2020 tarihinde yayınlandı.

  • Belirli bileşen dosya maskeleriyle yaşanan çökme sorunu düzeltildi.

  • Ard arda yinelenen sözcük denetiminin doğruluğu iyileştirildi.

  • Pagure çekme istekleri desteği eklendi.

  • Başarısız olan hesap açma işlemlerinin hata iletileri iyileştirildi.

  • Geliştirici yorumlarının Markdown olarak görüntülenmesi geri alındı.

  • “master” dalından farklı bir varsayılan dal kullanan Git depolarının kurulumu basitleştirildi.

  • Yeni oluşturulan iç depoların varsayılan dal olarak main kullanması sağlandı.

  • reStructuredText çevrilirken değiştirilmemiş çevirinin yanlış pozitif sonuç oranı azaltıldı.

  • Bazı durumlarda karşılaşılan CodeMirror görüntüleme sorunları düzeltildi.

  • Anlamını netleştirmek için Kalıp grubunun adı “Kaynaklar” olarak değiştirildi.

  • Yolları uzun olan depolar için GitLab çekme istekleri düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.3.1#

21 Ekim 2020 tarihinde yayınlandı.

  • Kendiliğinden çeviri başarımı iyileştirildi.

  • Kimliği doğrulanmış kullanıcıların oturumlarının sona ermesi sorunu düzeltildi.

  • Sürüm bilgilerini gizleme özelliği eklendi.

  • Bitbucket sunucusuyla kanca uyumluluğu iyileştirildi.

  • Çeviri belleği güncellemelerinin başarımı iyileştirildi.

  • Bellek kullanımı azaltıldı.

  • Matris görünümünün başarımı iyileştirildi.

  • Bir kullanıcının bir projeden kaldırılması için onay adımı eklendi.

Weblate 4.3#

15 Ekim 2020 tarihinde yayınlandı.

  • API uygulamasına kullanıcı istatistikleri eklendi.

  • Sayfalanmış sayfalardaki bileşen sıralaması sorunu düzeltildi.

  • Bir sözlük için kaynak dil tanımlaması eklendi.

  • GitHub ve GitLab çekme istekleri desteği yeniden yazıldı.

  • Öneri kaldırıldıktan sonra istatistik sayılarının doğru olması sorunu düzeltildi.

  • Herkese açık kullanıcı profili zenginleştirildi.

  • Zorunlu denetimlerin yapılandırılması sorunu düzeltildi.

  • İç yedekleme belgeleri iyileştirildi.

  • Kaynak dil özniteliği projeden bir bileşene taşındı.

  • Vue I18n biçimlendirme denetimi eklendi.

  • Genel yer belirtici denetimine kurallı ifade desteği eklendi.

  • Matris kipinin görünümü iyileştirildi.

  • Makine çevirisinin adı kendiliğinden öneriler olarak değiştirildi.

  • Birden çok GitLab ya da GitHub kopyası ile etkileşim desteği eklendi.

  • API, proje güncellemelerini, birim güncellemeleri ve silmeleri ile sözlükleri kapsayacak şekilde zenginleştirildi.

  • Birim API uygulamasının çoğul dizgeleri düzgün şekilde işlemesi sağlandı.

  • Bileşen oluşturmanın ZIP dosyası ya da belge yüklemesini işleyebilmesi sağlandı.

  • API yanıt durum kodları birleştirildi.

  • Katılımcı anlaşmasında Markdown kullanılabilmesi sağlandı.

  • Kaynak dizge izlemesi iyileştirildi.

  • JSON, YAML ve CSV biçimleriyle uyumluluk iyileştirildi.

  • Dizgeleri silme özelliği eklendi.

  • Dosya indirme başarımı iyileştirildi.

  • Depo yönetimi görünümü iyileştirildi.

  • Android için Java biçiminin kendiliğinden etkinleştirilmesi sağlandı.

  • Yerelleştirilmiş ekran görüntüleri özelliği eklendi.

  • Python 3.9 desteği eklendi.

  • Belirli koşullarda yaşanan HTML dosyalarının çevrilmesi sorunu düzeltildi.

Ayrıntılı olarak tüm değişiklikler.

Weblate 4.2.2#

2 Eylül 2020 tarihinde yayınlandı.

  • JSON biçimlerinde yaşanan kaynak dizgelerin eşleşmesi sorunu düzeltildi.

  • Bazı kimlik doğrulama yapılandırmaları için oturum açma yönlendirmesi düzeltildi.

  • Grup eşitleme ile LDAP kimlik doğrulaması sorunu düzeltildi.

  • Kendiliğinden çeviri ilerlemesini bildirirken yaşanan çökme sorunu düzeltildi.

  • Art bilgiler etkinken Git işlemelerinin bir araya toplanması sorunu düzeltildi.

  • API kullanarak yerel sürüm denetimi sistemi bileşenleri oluşturma sorunu düzeltildi.

Weblate 4.2.1#

21 Ağustos 2020 tarihinde yayınlandı.

  • Android kaynaklarında yaşanan bazı yerel ayarlar için çoğul biçimlerin kaydedilmesi sorunu düzeltildi.

  • Bazı XLIFF dosyaları için temizleme eklentisinde yaşanan çökme sorunu düzeltildi.

  • Docker kalıbında yerelleştirme CDN sunucusu kurulması sağlandı.

Weblate 4.2#

18 Ağustos 2020 tarihinde yayınlandı.

  • Kullanıcı sayfaları iyileştirildi ve kullanıcı listesi eklendi.

  • 3.x sürümlerinden aktarım desteği kaldırıldı. 4.1 ya da 4.0 sürümünden aktarım yapın.

  • Birkaç tek dilli biçime dışa aktarım özelliği eklendi.

  • Etkinlik çizelgeleri iyileştirildi.

  • Görüntülenecek Yakındaki dizgeler sayısının yapılandırılması sağlandı.

  • Depo hataları ile karşılaşılan bileşenler için kilitleme desteği eklendi.

  • Ana gezinme basitleştirildi (düğmeler simgelerle değiştirildi).

  • Google Çeviri bütünleştirmesinde dil kodunun işlenmesi iyileştirildi.

  • Git bir araya toplama eklentisi Co-authored-by: art bilgileri oluşturabilir.

  • Arama sorgusu işleyici iyileştirildi.

  • Biçim dizgesi denetimlerinin kullanıcıya bildirilmesi iyileştirildi.

  • Toplu durum değişikliklerinin başarımı iyileştirildi.

  • Proje ya da bileşen yeniden adlandırıldıktan sonra uyumluluk yönlendirmeleri eklendi.

  • Dizge onayı, bileşen kilitleme ve lisans değişikliği bildirimleri eklendi.

  • ModernMT desteği eklendi.

  • Dosya yüklenirken onaylanan çevirilerin üzerine yazılmasından kaçınılması sağlandı.

  • Bazı uyumluluk adres yönlendirmelerinin desteği kaldırıldı.

  • ECMAScript kalıp sabitleri denetimi eklendi.

  • Bir bileşeni izleme seçeneği eklendi.

  • JSON birim anahtarlarının başındaki nokta kaldırıldı.

  • Çeviri belleği için ayrı Celery kuyruğu kaldırıldı.

  • Tüm bileşenlerin bir dili bir kerede çevirmesi sağlandı.

  • Content-Security-Policy HTTP üst bilgilerinin yapılandırılması sağlandı.

  • Dillere proje düzeyinde takma ad verme özelliği eklendi.

  • HTML ya da JavaScript yerelleştirmesine yardımcı olmak için yeni eklenti eklendi. Bilgi almak için: JavaScript yerelleştirme CDN.

  • Weblate etki alanının ayarlar bölümünden yapılandırılması sağlandı. Bilgi almak için: SITE_DOMAIN.

  • Bileşene ve projeye göre arama desteği eklendi.

Weblate 4.1.1#

19 Haziran 2020 tarihinde yayınlandı.

  • Docker üzerinde kendiliğinden düzeltme ya da eklenti yapılandırmasının değiştirilmesi sorunu düzeltildi.

  • “Hakkında” sayfasında yaşanabilecek çökme sorunu düzeltildi.

  • Bayt koduna derlenmiş yerel ayar dosyalarının kurulumu iyileştirildi.

  • Sözlüğe sözcük ekleme sorunu düzeltildi.

  • Makine çevirisi için klavye kısayolları sorunu düzeltildi.

  • Bazı kurulumlarda günlük olaylarının atlanmasına neden olan hata ayıklama çıktısı kaldırıldı.

  • Proje listesindeki kilit göstergesi sorunu düzeltildi.

  • Bazı kurulumlarda GPG anahtarlarının listelenmesi sorunu düzeltildi.

  • Kullanılacak DeepL API sürümünün seçme özelliği eklendi.

  • SAML hizmet sağlayıcısı olarak davranma özelliği eklendi. Bilgi almak için: SAML kimlik doğrulaması.

Weblate 4.1#

15 Haziran 2020 tarihinde yayınlandı.

  • Belirtilen ülke koduyla yeni çeviriler oluşturma özelliği eklendi.

  • Ekran görüntüsü ile kaynak dizgeleri arama özelliği eklendi.

  • İstatistik içgörülerindeki bilgiler zenginleştirildi.

  • “Çeviri” sayfalarında arama düzenlemesi iyileştirildi.

  • Eşzamanlı depo güncellemelerinin işlenmesi iyileştirildi.

  • Proje oluşturma formuna kaynak dil eklendi.

  • Çevirmen hesaplarına değişiklik sayısı eklendi.

  • Bazı durumlarda kullanıcı arayüzü dil seçimi düzeltildi.

  • Hesap açma kapalıyken kayıt yöntemlerinin beyaz listeye eklenmesi sağlandı.

  • Sözlükte ilgili terimlerin aranması iyileştirildi.

  • Çeviri belleği eşleşmeleri iyileştirildi.

  • Aynı makine sonuçları gruplandırıldı.

  • Ekran görüntüsünü çeviri sayfasında düzenlemek için doğrudan bağlantı eklendi.

  • Silme onayı penceresi iyileştirildi.

  • ZIP indirmeye kalıplar katıldı.

  • Duyurulara Markdown ve bildirim yapılandırması özellikleri eklendi.

  • Denetim listelerindeki ayrıntılar artırıldı.

  • Yeni dosya biçimleri desteği eklendi: Laravel PHP dizgeleri, HTML dosyaları, OpenDocument biçimi, IDML biçimi, Windows RC dosyaları, INI çevirileri, Inno Setup INI çevirileri, GWT özellikleri, go-i18n JSON dosyaları, ARB dosyası.

  • Yok sayılan denetimlerin durumu için tutarlı olarak yok sayıldı kullanıldı.

  • Etkinleştirilecek varsayılan eklentileri yapılandırma özelliği eklendi.

  • Yok sayılan denetimler için düzenleyici klavye kısayolu düzeltildi.

  • Yer belirtici bulunan dizgelerin makine çevirisi iyileştirildi.

  • Kullanıcı dillerini başlatmayı kolaylaştırmak için hayalet çevirinin görüntülenmesi sağlandı.

  • Dil kodunun işlenmesi iyileştirildi.

  • Kullanıcı dilindeki çevirilerin listenin ilk sırasında görüntülenmesi sağlandı.

  • Şekillendiriciler adı daha genel olan Çeşitler olarak değiştirildi.

  • Yeni kalite denetimleri eklendi: Birden çok değişken adlandırılmamış, Uzun süredir çevrilmemiş, Art arda yinelenen sözcükler var.

  • Çeviri belleğini boşaltma özelliği yeniden eklendi.

  • Kaynak denetimlerini yok sayma seçeneği düzeltildi.

  • Değişiklikleri itmek için farklı dallar yapılandırma özelliği eklendi.

  • API uygulamasına HTTP üst bilgilerinde hız sınırlama durumunu bildirme özelliği eklendi.

  • Google Translate V3 API (gelişmiş) desteği eklendi.

  • Bileşen düzeyinde erişimi kısıtlama özelliği eklendi.

  • Çeviri imlerinde boşluk ve diğer özel karakterleri kullanma desteği eklendi. Bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek.

  • Etkinse oluşturulan metin denetiminin her zaman görüntülenmesi sağlandı.

  • API uygulamasına değişiklikleri süzme özelliği eklendi.

  • Sözlüklerin projeler arasında paylaşılması özelliği eklendi.

Weblate 4.0.4#

7 Mayıs 2020 tarihinde yayınlandı.

  • Bazı Python 3.8 ortamlarında yaşanan sınama paketini çalıştırma sorunu düzeltildi.

  • Belgelerdeki yazım hataları düzeltildi.

  • Bazı durumlarda yaşanan API kullanılarak bileşenlerin oluşturulması sorunu düzeltildi.

  • Mobil gezinmeyi bozan JavaScript hataları düzeltildi.

  • Bazı denetimlerin görüntülenmesinde yaşanan çökme sorunu düzeltildi.

  • Ekran görüntüleri listesi düzeltildi.

  • Aylık özet bildirimleri düzeltildi.

  • Çeviride bulunmayan birimlerdeki ara çeviri davranışı düzeltildi.

Weblate 4.0.3#

2 Mayıs 2020 tarihinde yayınlandı.

  • Raporlarda yaşanabilecek kilitlenme sorunu düzeltildi.

  • Yorumlardaki kullanıcı anmalarının büyük/küçük harfe duyarsız olması sağlandı.

  • Süper kullanıcı olmayan kullanıcılar için PostgreSQL aktarımı düzeltildi.

  • Bileşen oluşturulurken depo adresinin değiştirilmesi sorunu düzeltildi.

  • Yukarı akış deposu kaybolduğunda yaşanan kilitlenme sorunu düzeltildi.

Weblate 4.0.2#

27 Nisan 2020 tarihinde yayınlandı.

  • Çeviri istatistiklerinin başarımı iyileştirildi.

  • Etiketleri değiştirme başarımı iyileştirildi.

  • Toplu düzenleme başarımı iyileştirildi.

  • Çeviri belleği başarımı iyileştirildi.

  • Bileşen silinirken yaşanabilecek çökme sorunu düzeltildi.

  • Bazı uç durumlarda yaşanan çeviri değişikliklerinin görüntülenme sorunu düzeltildi.

  • Çok uzun Celery kuyruğu uyarısı iyileştirildi.

  • Tutarlılık denetiminde yaşanması olası yanlış pozitif sonuç sorunu düzeltildi.

  • Bağlı bileşen deposu değiştirilirken yaşanan kilitlenme sorunu düzeltildi.

  • Değişiklik listesine, CSV dosyalarına ve raporlara düzenleme uzaklığı eklendi.

  • Kanada Fransızcası için noktalama işareti aralığı denetimlerinde yaşanan yanlış pozitif sonuç sorunu düzeltildi.

  • XLIFF dışa aktarmasında yaşanan yer belirticiler sorunu düzeltildi.

  • Sıfır genişlik denetiminde yaşanan yanlış pozitif sonuç sorunu düzeltildi.

  • Yapılandırma hatalarının raporlanması iyileştirildi.

  • İki dilli kaynak yükleme sorunu düzeltildi.

  • DeepL makine çevirisi için desteklenen dillerin kendiliğinden algılanması sağlandı.

  • Bazı uç durumlarda yaşanan sabit ilerleme çubuğu görüntüsü sorunu düzeltildi.

  • Çevrilmemiş dizgelerde yaşanan bazı denetimlerin tetiklenmesi sorunu düzeltildi.

Weblate 4.0.1#

16 Nisan 2020 tarihinde yayınlandı.

  • PyPI ile yaşanan paket kurulumu sorunu düzeltildi.

Weblate 4.0#

16 Nisan 2020 tarihinde yayınlandı.

  • Weblate için artık Python 3.6 ya da üzeri gerekiyor.

  • Bileşen uyarılarına yönetim özeti eklendi.

  • Bozuk depo tarayıcı adreslerine bileşen uyarısı eklendi.

  • Oturum ve hesap açma sayfaları iyileştirildi.

  • Proje erişim denetimi ve iş akışı yapılandırması proje ayarlarıyla bütünleştirildi.

  • i18next için ara değerleme ve iç içe işleme denetimi ve vurgulayıcı eklendi.

  • Yüzde yer belirticileri için denetim ve vurgulayıcı eklendi.

  • Denetim hatalarında önerilerin görüntülenmesi sağlandı.

  • Geçmişe kaynak dizge değişikliklerinin kaydedilmesi sağlandı.

  • Microsoft Translator, API 3 sürümüne yükseltildi.

  • Çeviri belleği arka ucu yeniden yazıldı.

  • Arama içine birkaç is: araması desteği eklendi.

  • İç kara listeler için Çeviri değiştirilmemiş kullanılması sağlandı.

  • Tek dilli po dosyalarındaki yorumların ayıklanması iyileştirildi.

  • Beyaz tahta iletileri duyurular olarak yeniden adlandırıldı.

  • Hesap açma e-postalarında bazen yaşanan sorunlar düzeltildi.

  • Daha fazla söz dizimi çeşidini işlemek için LINGUAS güncelleme eklentisi iyileştirildi.

  • Tek dilli XLIFF kaynak dosyasını düzenlenme sorunu düzeltildi.

  • Arama içine tam eşleşme desteği eklendi.

  • API, ekran görüntüleri, kullanıcılar, gruplar, bileşen listeleri ve gelişmiş proje oluşturma işlemlerini kapsayacak biçimde zenginleştirildi.

  • İki dilli çevirilere kaynak yükleme desteği eklendi.

  • Geliştiricilerden ara dil desteği eklendi.

  • Kaynak dizgeleri onaylama desteği eklendi.

  • Platform genelinde çeviri belleği için indirme seçenekleri zenginleştirildi.

Weblate 3.x serisi#

Weblate 3.11.3#

11 Mart 2020 tarihinde yayınlandı.

  • Belirli önceliği olan alanların aranması sorunu düzeltildi.

  • Son eklenen dizgeler için önceden tanımlanmış sorgu düzeltildi.

  • Aramada çift eşleşmelerin görüntülenmesi sorunu düzeltildi.

  • Gmail üzerinde bildirimlerin görüntülenmesi sorunu düzeltildi.

  • Geçmişteki değişikliklerin geri alınması sorunu düzeltildi.

  • Özet bildirimlerindeki etkinliklere bağlantılar eklendi.

  • Hesap silme onayı e-postası düzeltildi.

  • Docker kapsayıcısında Slack kimlik doğrulaması desteği eklendi.

  • Abone olunmayan diller için bildirim gönderilmesi engellendi.

  • Başarım özetine Celery kuyrukları katıldı.

  • Eklentiler için belge bağlantıları sorunu düzeltildi.

  • Değiştirilmemiş çeviri denetiminde hatalı negatifler azaltıldı.

  • CVE-2020-6802 sorununu çözmek için bleach bağımlılığı artırıldı.

  • Geçmişte projesi düzeyindeki değişikliklerin listelenmesi sorunu düzeltildi.

  • Bazı uç durumlarda yaşanan istatistiklerin geçersiz kılınması sorunu düzeltildi.

  • Belirli dizge durumları için arama düzeltildi.

  • Biçim dizgesi denetimi, eksik yüzde simgesini algılayacak şekilde iyileştirildi.

  • Bazı üçüncü taraf hizmet sağlayıcılarında yaşanan kimlik doğrulama sorunu düzeltildi.

Weblate 3.11.2#

22 Şubat 2020 tarihinde yayınlandı.

  • Önerilerin görüntülenmesi düzeltildi.

  • Bazı dizgelerin yanlış bir biçimde sözcük içermediğinin bildirilmesine yol açan sorun düzeltildi.

Weblate 3.11.1#

20 Şubat 2020 tarihinde yayınlandı.

  • Celery kurulum değişiklikleri belgesi yazıldı.

  • Bileşen oluşturulurken dosya adı doğrulaması iyileştirildi.

  • Bazı bağımlılıkların en düşük sürümleri düzeltildi.

  • Belirli Django sürümlerini kullanan grupların eklenmesi sorunu düzeltildi.

  • Yukarı akış deposuna el ile itme sorunu düzeltildi.

  • Sözlük eşleştirmesi iyileştirildi.

Weblate 3.11#

17 Şubat 2020 tarihinde yayınlandı.

  • API ile bileşen oluşturulurken sürüm denetimi sistemi itme adresinin kullanılması sağlandı.

  • Görüntülenen genişlik denetimi artık görüntüye görseli de ekliyor.

  • Bildirim e-postalarındaki bağlantılar düzeltildi.

  • Düz metin içerikli e-postaların görünümü iyileştirildi.

  • Yok sayılan denetimlerin görüntülenmesi ve yeniden etkinleştirilmesi sağlandı.

  • Tek dilli çevirilerde yakın anahtarların görüntülenmesi sağlandı.

  • Dizge şekillendirmelerini gruplama özelliği eklendi.

  • Sistem denetimlerine yeni Weblate sürümlerine yükseltme önerisi eklendi.

  • Yinelenen dil uyarısı için daha ayrıntılı inceleme sağlandı.

  • Proje sayfalarına ayrıntılı lisans bilgileri eklendi.

  • Gerektiğinde yerel kopyaların sığlık düzeyinin kendiliğinden kaldırılması sağlandı.

  • İşlem gerektiren dizgelerin indirilmesinde yaşanan sorun düzeltildi.

  • Aynı dosya modelinin iki kez kullanılmasına karşı uyarı eklendi.

  • Yerleştirilebilir XML ögelerinin ayıklanması iyileştirildi.

  • SINGLE_PROJECT ayarına seçilmiş projeye yönlendirme dayatması eklendi.

  • Yorumları çözümleme özelliği eklendi.

  • İmleri toplu olarak düzenlenme özelliği eklendi.

  • Dizge etiketleri desteği eklendi.

  • Toplu düzenleme eklentisi eklendi.

  • Denetimleri dayatmak seçeneği eklendi.

  • Onay bağlantılarının varsayılan geçerlilik süresi artırıldı.

  • Matomo bütünleştirmesi iyileştirildi.

  • Kaynak dizge değişikliklerinin düzgün işlenmesi için Çevrilmiş düzeltildi.

  • Kendiliğinden güncelleme yapılandırması AUTO_UPDATE seçeneği ile zenginleştirildi.

  • LINGUAS eklentilerinin Weblate üzerindeki çevirileri tam olarak eşitlemesi sağlandı.

Weblate 3.10.3#

18 Ocak 2020 tarihinde yayınlandı.

  • translate-toolkit 2.5.0 desteği eklendi.

Weblate 3.10.2#

18 Ocak 2020 tarihinde yayınlandı.

  • Projelere kilit göstergesi eklendi.

  • Bazı tarayıcılarda titremeye neden olan CSS hatası düzeltildi.

  • Yerel ayarları İngilizce olmayan sistemlerde yaşanan arama sorunu düzeltildi.

  • GitHub ve Bitbucket kancaları için depo eşleştirmesi iyileştirildi.

  • Bazı Python 2.7 kurulumlarında yaşanan veri aktarımı sorunları düzeltildi.

  • Git için sığlık düzeyi ile kopyalama yapılandırılması özelliği eklendi.

  • Arka planda bildirimlerin işlenmesi iyileştirildi.

  • Web tarayıcısına geri dönerken yaşanan formun bozuk gönderilmesi sorunu düzeltildi.

  • YAML biçimlendirmesini yapılandırmak için yeni eklenti eklendi.

  • Tek çoğul biçimli dillerde tetiklenmemesi için çoğul biçimler aynı denetimi düzeltildi.

  • Bazı alanlarda kurallı ifade aramasında yaşanan sorun düzeltildi.

Weblate 3.10.1#

9 Ocak 2020 tarihinde yayınlandı.

  • API çeviri oluşturma özelliği ile zenginleştirildi.

  • Veri aktarımlarında yaşanan bazı uç durumlar düzeltildi.

  • Django 3.0 uyumluluğu sağlandı.

  • Veri temizleme başarımı iyileştirildi.

  • Özelleştirilebilir security.txt desteği eklendi.

  • Değişiklik günlüğünde sayfa yolları iyileştirildi.

  • Panoda çeviri listesinin görünümü iyileştirildi.

  • Web kancaları için HTTP yanıtları iyileştirildi.

  • Docker kapsayıcısına GitLab birleştirme istekleri desteği eklendi.

Weblate 3.10#

20 Aralık 2019 tarihinde yayınlandı.

  • Uygulama kullanıcı arayüzü iyileştirildi.

  • Çift boşluk denetimi eklendi.

  • Yeni diller oluşturulurken yaşanan sorun düzeltildi.

  • Silinmiş e-posta adreslerine denetim günlüğü bildirimlerinin gönderilmesi engellendi.

  • Salt okunur dizge desteği eklendi.

  • Yorumlara Markdown desteği eklendi.

  • Proje bilgilerine çeviri yönerge metninin yerleştirilmesi sağlandı.

  • İkincil diller için panoya kopyalama özelliği eklendi.

  • Mercurial desteği iyileştirildi.

  • Git deposundan alma başarımı iyileştirildi.

  • Dizge yaşını arama özelliği eklendi.

  • Tüm çeviriler için kaynak dilin görüntülenmesi sağlandı.

  • Yakın dizgelerin bağlamının görüntülenmesi sağlandı.

  • Depo işlemleriyle ilgili bildirimler desteği eklendi.

  • Çevirilerin listelenmesi iyileştirildi.

  • Arama yetenekleri artırıldı.

  • Düzenlenecek olarak imlenmiş kendiliğinden çeviri dizgeleri desteği eklendi.

  • Bağlı bileşen uyarıları için yinelenen bildirimlerin gönderilmesi engellendi.

  • Varsayılan birleştirme isteği iletisi iyileştirildi.

  • Zen kipinde dizge durumunun daha iyi belirtilmesi sağlandı.

  • Yandex Translate için daha fazla dil desteği eklendi.

  • Bildirim e-postalarının görünümü iyileştirildi.

  • Çeviri lisansı için seçenek sunuldu.

Weblate 3.9.1#

28 Ekim 2019 tarihinde yayınlandı.

  • Yedeklerden bazı gereksiz dosyalar kaldırıldı.

  • Raporlardaki yaşanması olası kilitlenme sorunları düzeltildi.

  • Veri tabanları arasında aktarma sorunu düzeltildi.

  • Git depolarına dayatarak itme desteği eklendi.

  • Kayıt belirtecinin geçersiz kılınması riski azaltıldı.

  • Hesap silme işleminin hız sınırlayıcıya takılma sorunu düzeltildi.

  • Önceliğe göre arama özelliği eklendi.

  • JSON dosyasına dizge eklenirken yaşanabilecek çökme sorunu düzeltildi.

  • Güvenli HTML denetimi ve düzeltmesinin kaynak dizgenin markup koduna uyması sağlandı.

  • Davet edilmiş ve silinmiş kullanıcılara bildirim gönderilmesi engellendi.

  • Docker kapsayıcısında Celery içindeki Redis SSL bağlantısı düzeltildi.

Weblate 3.9#

15 Ekim 2019 tarihinde yayınlandı.

  • İndirilen dosyalara Weblate üst verileri eklendi.

  • Başarısız olan denetimler için kullanıcı arayüzü iyileştirildi.

  • Biçim denetimlerinde eksik dizgeler belirtildi.

  • Fransızca noktalama aralığı için özel denetim eklendi.

  • Bazı kalite denetimi hatalarını düzeltme desteği eklendi.

  • Yeni projeler oluşturmak için ayrı izinler eklendi.

  • İstatistiklere karakter sayıları eklendi.

  • Java biçemi dil kodları desteği iyileştirildi.

  • Yer belirticiler için yeni genel denetim eklendi.

  • WebExtension JSON yer belirticileri desteği eklendi.

  • Düz XML biçimi desteği eklendi.

  • API, proje, bileşen ve çeviri silme ve oluşturma özellikleri ile zenginleştirildi.

  • Gitea ve Gitee internet kancaları desteği eklendi.

  • Yeni özel kurallı ifade temelli denetim eklendi.

  • Paylaşılan çeviri belleğine katkıda bulunma yapılandırması sağlandı.

  • Birden fazla çeviri dosyasını indirmek için ZIP desteği eklendi.

  • XLIFF standardı, en fazla genişlik ve yazı tipi işlenmesi ile uyumlu hale getirildi.

  • Web uygulamalarını çevirmek üzere güvenli HTML biçimlendirmesi için yeni denetim ve düzeltici eklendi.

  • Desteklenmeyen yapılandırma için bileşen uyarısı eklendi.

  • İlk çevirileri hazırlamak için kendiliğinden çeviri eklentisi eklendi.

  • Kendiliğinden çeviri, önerileri ekleyecek şekilde zenginleştirildi.

  • Özet görünümüne eklenti parametreleri eklendi.

  • Sentry için Raven yerine modern Sentry SDK desteği eklendi.

  • Örnek ayarları, üretim ortamına daha uygun olacak biçimde değiştirildi.

  • BorgBackup kullanılarak kendiliğinden yedekleme özelliği eklendi.

  • İstenmeyen dosya güncellemelerini önlemek için RESX için temizleme eklentisi ayrıldı.

  • Gelişmiş arama özellikleri eklendi.

  • Kullanıcıların kendi raporlarını indirmeleri sağlandı.

  • Bileşenlerin yapılandırılmasına yardımcı olacak yerelleştirme rehberi eklendi.

  • GitLab birleştirme istekleri desteği eklendi.

  • Depo durumunun görüntülenmesi iyileştirildi.

  • Kendiliğinden çeviri işlemlerinin arka planda yapılması sağlandı.

Weblate 3.8#

15 Ağustos 2019 tarihinde yayınlandı.

  • Benzer bileşenlerin basitleştirilmiş oluşturulması desteği eklendi.

  • XML temelli dosya biçimleri için çeviri imlerini işleme desteği eklendi.

  • İstisnaların Celery günlüğüne kaydedilmesi sağlandı.

  • Depo kapsamındaki eklentilerin başarımı iyileştirildi.

  • Bildirim e-postalarının görünümü iyileştirildi.

  • Parola sıfırlama davranışı düzeltildi.

  • Çeviri sayfalarının çoğunda başarım iyileştirildi.

  • Weblate tarafından bilinmeyen dillerin listesi düzeltildi.

  • Keşfedilen bileşenlere eklentileri kopyalama özelliği eklendi.

  • Dosya içeriğinin yüklenenlerle değiştirilmesi desteği eklendi.

  • Sürüm denetimi sistemi temelli olmayan içeriğin çevrilmesi desteği eklendi.

  • Sosyal ağlarda kullanılmak üzere OpenGraph pano bileşeni görseli eklendi.

  • Canlandırmalı ekran görüntüleri desteği eklendi.

  • Tek dilli XLIFF dosyalarının işlenmesi iyileştirildi.

  • Tek bir etkinlik için birden fazla bildirim gönderilmesi engellendi.

  • Değişiklikleri süzme desteği eklendi.

  • Raporlama için önceden tanımlanmış süreler artırıldı.

  • Azure depoları için internet kancası desteği eklendi.

  • Bekleyen öneriler veya çevrilmemiş dizgeler ile ilgili yeni abone olma bildirimleri eklendi.

  • Bildirim e-postalarına tek tıkla abonelikten ayrılma bağlantısı eklendi.

  • Çevrilmiş denetiminde yaşanan yanlış pozitif sonuç sorunu düzeltildi.

  • Yöneticiler için yeni yönetim arayüzü eklendi.

  • Dizge önceliğinin imler kullanılarak belirlenmesi sağlandı.

  • Dil yönetimi görünümleri eklendi.

  • Qt kitaplığı ve Ruby biçim dizgeleri için denetimler eklendi.

  • Tek proje kurulumlarına daha uygun yapılandırma eklendi.

  • Tek dilli çevirilerdeki kaynak dizge değişikliğinde yeni dizge için bildirim eklendi.

  • Arama özelliği olan çeviri belleği için ayrı bir görünüm eklendi.

Weblate 3.7.1#

28 Haziran 2019 tarihinde yayınlandı.

  • Belgeler güncellendi.

  • Bazı gereksinim kısıtlamaları düzeltildi.

  • Dil veri tabanı güncellendi.

  • Yerelleştirme güncelleştirmeleri yapıldı.

  • Çeşitli kullanıcı arayüzü iyileştirmeleri yapıldı.

  • Desteklenmeyen ancak keşfedilen çeviri dosyalarının işlenmesi iyileştirildi.

  • Eksik dosya biçimi gereksinimlerinin daha ayrıntılı olarak bildirilmesi sağlandı.

Weblate 3.7#

21 Haziran 2019 tarihinde yayınlandı.

  • Bildirimler için ayrı Celery kuyruğu eklendi.

  • API ile göz atarken uygulamayla tutarlı bir görünüm kullanıldı.

  • Raporlara onaylanmış istatistikleri eklendi.

  • Çeviri bileşeni güncellenirken ilerleme durumunun bildirilmesi sağlandı.

  • Çalışan arka plan bileşeni güncellemesini iptal etme özelliği eklendi.

  • Dosya adı değiştirme işlemleri için kalıp dili zenginleştirildi.

  • Düzenleyici bağlantısı ve depo tarayıcı adresi için kalıplar kullanıldı.

  • Çeviri düzenirken en fazla uzunluk ve geçerli karakter sayısının belirtilmesi sağlandı.

  • Değiştirilmemiş çeviri denetiminde kısaltmaların işlenmesi iyileştirildi.

  • Yeni katkıda bulunanlar için giriş sayfası yenilendi.

  • msgmerge eklentisini yapılandırma desteği eklendi.

  • Bildirim gönderirken SMTP bağlantısının açılması geciktirildi.

  • Hata günlüğü iyileştirildi.

  • MO oluşturma eklentisinde özel konum kullanılması sağlandı.

  • Eski önerileri veya yorumları temizleme eklentileri eklendi.

  • Zen düzenleyicisinde yatay kipi etkinleştirme seçeneği eklendi.

  • Birçok bağlı bileşenle içe aktarma başarımı iyileştirildi.

  • Bazı durumlardaki kurulum örnekleri düzeltildi.

  • Değişiklik uyarılarının görüntülenmesi iyileştirildi.

  • Yeni yatay istatistikler pano bileşeni eklendi.

  • Çoğul biçimler için biçim dizgeleri denetimi iyileştirildi.

  • Yazı tipi yönetim aracı eklendi.

  • Görüntülenen metin boyutları için yeni denetim eklendi.

  • Alt yazı biçimleri desteği eklendi.

  • Diller için genel tamamlanma istatistikleri eklendi.

  • Proje kapsamı ve genel kapsamda raporlama özelliği eklendi.

  • Çeviri durumunu görüntüleyen kullanıcı arayüzü iyileştirildi.

  • Weblate logosu ve renk şeması yenilendi.

  • Bit eşlem simgelerinin görünümü yenilendi.

Weblate 3.6.1#

26 Nisan 2019 tarihinde yayınlandı.

  • Tek dilli XLIFF dosyalarının işlenmesi iyileştirildi.

  • Bazı uç durumlarda yaşanan özet bildirimleri sorunu düzeltildi.

  • Eklenti betiği hata uyarısı sorunu düzeltildi.

  • Tek dilli PO dosyaları için MO dosyası oluşturma sorunu düzeltildi.

  • Kaldırılan denetimlerin görüntülenmesi sorunu düzeltildi.

  • Proje listesinde yönetilen projelerin belirtilmesi sağlandı.

  • Eksik sürüm denetimi sistemi deposundan kurtarma için güncellemeye izin verildi.

Weblate 3.6#

20 Nisan 2019 tarihinde yayınlandı.

  • Kullanıcı verilerini indirme desteği eklendi.

  • Eklentilerin kurulum sırasında kendiliğinden tetiklenmesi sağlandı.

  • Aktarım çakışmalarını çözümlemek için yönergeler iyileştirildi.

  • Temizleme eklentisinin uygulama mağazası üst veri çevirileriyle uyumlu olması sağlandı.

  • Yeni çeviriler eklenirken dil kodu söz diziminin yapılandırılabilmesi sağlandı.

  • 2020 Nisan ayında desteğinin bitmesi planlanan Python 2 sürümünün kullanıldığı ile ilgili uyarı eklendi.

  • Görsel klavye için kaynak dizgeden özel karakterlerin ayıklanması sağlandı.

  • Katılımcı istatistikleri, kaynak ve hedef sayılarını yansıtacak şekilde zenginleştirildi.

  • Çeviriler kullanıcılar için devre dışı bırakılmış olsa bile, yöneticilerin ve tutarlılık eklentilerinin çeviri yapabilmesi sağlandı.

  • Language-Team üst bilgi değişikliğini devre dışı bırakma düğmesinin açıklaması düzeltildi.

  • Yorumlarda anılan kullanıcıların bilgilendirilmesi sağlandı.

  • Bileşen kurulumunda dosya biçiminin kendiliğinden algılanması özelliği kaldırıldı.

  • Tek dilli PO dosyaları için MO dosyası oluşturma sorunu düzeltildi.

  • Özet bildirimleri eklendi.

  • Bileşen bildirimlerini sessize alma desteği eklendi.

  • Yeni uyarılar, beyaz tahta iletileri ve bileşenler için bildirimler eklendi.

  • Yönetilen projelerin bildirimlerinin yapılandırılabilmesi sağlandı.

  • Üç harfli dil kodlarının işlenmesi iyileştirildi.

Weblate 3.5.1#

10 Mart 2019 tarihinde yayınlandı.

  • Celery systemd birimi örneği düzeltildi.

  • Oturum açma ile HTTP depolarından gelen bildirimler düzeltildi.

  • Tek dilli çeviriler için kaynak dizgeyi düzenlemedeki yarış durumu düzeltildi.

  • Günlüklere başarısız olan eklenti çalıştırma çıktısı eklendi.

  • Yeni dil ekleme seçeneklerinin doğrulanması iyileştirildi.

  • Bileşen ayarlarında dosya biçimlerinin düzenlenmesi sağlandı.

  • Kurulum yönergeleri Python 3 kullanacak biçimde güncellendi.

  • Çevirilerin yüklenmesinde başarım ve tutarlılık iyileştirmeleri yapıldı.

  • Microsoft Terminology hizmetinin geçerli Zeep sürümleriyle uyumlu olması sağlandı.

  • Yerelleştirme güncelleştirmeleri yapıldı.

Weblate 3.5#

3 Mart 2019 tarihinde yayınlandı.

  • İç çeviri belleğinin başarımı iyileştirildi.

  • Genel çeviri belleği yönetimi arayüzü eklendi.

  • Hatalı bileşen durumu uyarısı iyileştirildi.

  • Beyaz tahta iletilerini yönetme kullanıcı arayüzü eklendi.

  • Eklenti işleme iletisinin yapılandırılabilmesi sağlandı.

  • Yukarı akış deposu güncellenirken işleme sayısı azaltıldı.

  • Bileşenler projeler arasında taşınırken yaşanabilecek üst veri kaybı sorunu düzeltildi.

  • Zen kipinde gezinme iyileştirildi.

  • Birkaç yeni kalite denetimi eklendi (Markdown ve adresler ile ilgili).

  • Uygulama mağazası üst veri dosyaları desteği eklendi.

  • GitHub ya da Gerrit bütünleştirmesini değiştirme desteği eklendi.

  • Kashida harfleri için denetim eklendi.

  • İşlemeleri sorumluya göre bir araya toplama seçeneği eklendi.

  • XLSX dosya biçimi desteği iyileştirildi.

  • Tesseract 4.0 ile uyumluluk sağlandı.

  • Faturalama eklentisine, ödenmemiş faturalar için 45 gün sonra projeleri silme özelliği eklendi.

Weblate 3.4#

22 Ocak 2019 tarihinde yayınlandı.

  • XLIFF yer belirticileri desteği eklendi.

  • Birden fazla Celery görev kuyruğu kullanma özelliği eklendi.

  • Projeleri ve bileşenleri yeniden adlandırma ve taşıma desteği eklendi.

  • Raporlara karakter sayıları eklendi.

  • Çeviri dosyalarının kendiliğinden algılanmasıyla çeviri bileşenlerinin yönlendirme ile oluşturulması özelliği eklendi.

  • Git işlemeleri birleştirme iletilerinin özelleştirilebilmesi sağlandı.

  • Gezinmede bileşen uyarılarının görsel olarak görüntülenmesini sağlandı.

  • Çeviri dosyalarını yükleme başarımı iyileştirildi.

  • Yollamadan önce Git işlemelerini bir araya toplama eklentisi eklendi.

  • Çeviri değişikliklerinin görüntülenmesi iyileştirildi.

  • Varsayılan birleştirme biçemi değiştirilerek yeniden temellendirildi ve yapılandırılabilmesi sağlandı.

  • Dil kodundaki alt etiketlerin özel kullanımının işlenmesi iyileştirildi.

  • Tam metin dizini güncelleme başarımı iyileştirildi.

  • Dosya yükleme API işlevi daha fazla parametreyi destekleyecek biçimde zenginleştirildi.

Weblate 3.3#

30 Kasım 2018 tarihinde yayınlandı.

  • Bileşen ve proje silme desteği eklendi.

  • Bazı tek dilli çeviriler için başarım iyileştirildi.

  • Bir çeviriyle ilgili sorunları vurgulamak için çeviri bileşeni uyarıları eklendi.

  • Yapılabildiğinde, XLIFF dizgesi resname değerinin bağlam olarak sunulması sağlandı.

  • XLIFF durumları desteği eklendi.

  • DATA_DIR içindeki yazılamayan dosyalar denetimi eklendi.

  • Değişiklikler için CSV dışa aktarma işlemi iyileştirildi.

Weblate 3.2.2#

20 Ekim 2018 tarihinde yayınlandı.

  • Artık gerek duyulmayan Babel bağımlılığı kaldırıldı.

  • Dil tanımları güncellendi.

  • LDAP ve Celery eklentilerinin belgeleri iyileştirildi.

  • Yeni dos-eol ve auto-java-messageformat imlerinin etkinleştirilmesinde yaşanan sorun düzeltildi.

  • PyPI paketindeki setup.py sınamasının çalıştırılmasında yaşanan sorun düzeltildi.

  • Çoğul biçimlerin işlenmesi iyileştirildi.

  • Bazı uç durumlarda yaşanan çeviri yükleme API sorunu düzeltildi.

  • El ile değiştirilirken Git yapılandırmasının güncellenmesinde yaşanan sorun düzeltildi.

Weblate 3.2.1#

10 Ekim 2018 tarihinde yayınlandı.

  • Python 2.7 sürümünde backports.csv belge bağımlılığı eklendi.

  • Sınamaların Root olarak çalıştırılması sorunu düzeltildi.

  • Gitexport modülünde hataların işlenmesi iyileştirildi.

  • Yeni eklenen dillerin ilerleme raporlaması düzeltildi.

  • Celery işlemi hatalarının Sentry üzerine doğru şekilde bildirilmesi sağlandı.

  • Qt Linguist ile yeni çeviriler oluştururken yaşanan sorun düzeltildi.

  • Ara sıra yaşanan tam metin dizini güncelleme sorunları düzeltildi.

  • Yeni bileşenler oluşturulurken doğrulama iyileştirildi.

  • Eski önerilerin temizlenmesi desteği eklendi.

Weblate 3.2#

6 Ekim 2018 tarihinde yayınlandı.

  • Kendiliğinden eklenti kurulumu için install_addon yönetim komutu eklendi.

  • Hız sınırı ayarlarının daha ayrıntılı olması sağlandı.

  • Excel dosyalarının dışa ve içe aktarılması desteği eklendi.

  • Birden çok bileşen bulma eklentisi olması durumunda bileşen temizleme iyileştirildi.

  • Microsoft Terminology makine çevirisi arka ucu yeniden yazıldı.

  • Weblate üzerindeki bazı işlemlerin yükü Celery üzerine aktarıldı.

  • Arama yetenekleri geliştirildi ve kurallı ifade araması eklendi.

  • Youdao Zhiyun API makine çevirisi desteği eklendi.

  • Baidu API makine çevirisi desteği eklendi.

  • Celery kullanan bütünleşik bakım ve temizleme görevleri eklendi.

  • Çeviri yükleme başarımı neredeyse %25 oranında iyileştirildi.

  • Yükleme sırasında üst bilgilerin birleştirilmesi özelliği kaldırıldı.

  • Özel işleme iletileri özelliği kaldırıldı.

  • Düzenleme kipinin (zen/tam) yapılandırılabilmesi sağlandı.

  • Hataların Sentry üzerine bildirilmesi desteği eklendi.

  • Depolara kendiliğinden güncelleme desteği eklendi.

  • Kullanıcılar tarafından proje ve bileşen oluşturma özelliği eklendi.

  • İç çeviri belleğinin yapılan çevirileri kendiliğinden kaydetmesi sağlandı.

  • Kullanıcı ve projeler için var olan çeviri belleklerini içe aktarma özelliği eklendi.

  • Ekran görüntüleri ile ilgili dizgelerin daha iyi yönetilmesi sağlandı.

  • Java MessageFormat denetimi desteği eklendi.

Çözülen sorunların ayrıntılı listesine bakmak için GitHub üzerindeki 3.2 kilometre taşı bölümüne bakabilirsiniz.

Weblate 3.1.1#

27 Temmuz 2018 tarihinde yayınlandı.

  • Bazı kurulumlarda yaşanan sınama paketi sorunu düzeltildi.

Weblate 3.1#

27 Temmuz 2018 tarihinde yayınlandı.

  • 3.0.1 öncesi sürümlerden yükseltmeler desteklenmiyor.

  • Ayarlar bölümüne varsayılan işleme iletilerini değiştirme özelliği eklendi.

  • Web kancalarının kendi kendine barındırma ortamları ile uyumluluğunu iyileştirildi.

  • Amazon Translate desteği eklendi.

  • Django 2.1 uyumluluğu sağlandı.

  • Django sistem denetimlerine kurulumla ilgili sorunları tanılama özelliği eklendi.

  • Yakında kapatılacak libravatar hizmetinin desteği kaldırıldı.

  • Değiştirilmemiş çevirileri “Düzenlenmesi gerekli” olarak imleyen eklenti eklendi.

  • Çeviri yaparken belirli bir konuma atlama desteği eklendi.

  • Çeviri indirme işleminin özelleştirilebilmesi sağlandı.

  • Çeviri belleği eşleşmelerinde dizge benzerliğinin hesaplanması iyileştirildi.

  • Git işlemelerini GnuPG tarafından imzalama özelliği eklendi.

Weblate 3.0.1#

10 Haziran 2018 tarihinde yayınlandı.

  • 2.20 sürümünden geçişte yaşanabilecek sorun düzeltildi.

  • Yerelleştirme güncelleştirmeleri yapıldı.

  • Kullanımdan kaldırılmış kanca örnekleri silindi.

  • Ön bellek belgeleri iyileştirildi.

  • Yönetici belgelerinin görüntülenmesinde yaşanan sorun düzeltildi.

  • Uzun dil adlarının işlenmesi iyileştirildi.

Weblate 3.0#

1 Haziran 2018 tarihinde yayınlandı.

  • Erişim denetimi yeniden yazıldı.

  • Modüllerin taşınmasına ve yeniden adlandırılmasına yol açan çeşitli kod temizlemeleri yapıldı.

  • Yeni kendiliğinden bileşen bulma eklentisi eklendi.

  • import_project yönetim komutunun parametreleri biraz değiştirildi.

  • Windows RC dosyaları için temel destek eklendi.

  • Katkıda bulunan adlarını PO dosya üst bilgilerinde kaydeden yeni eklenti eklendi.

  • Her bileşene özgü kanca betikleri özelliği kaldırıldı. Bunun yerine eklentiler kullanıldı.

  • Katılımcı anlaşmalarını toplama desteği eklendi.

  • Erişim denetimi değişikliklerinin geçmiş kayıtlarında görülmesi sağlandı.

  • Bir projedeki tüm bileşenlerin çevirilerinin aynı olmasını sağlayan eklenti eklendi.

  • İşleme iletisi kalıplarının daha fazla değişkeni desteklemesi sağlandı.

  • Ek metin bağlamı yazma desteği eklendi.

Weblate 2.x serisi#

Weblate 2.20#

4 Nisan 2018 tarihinde yayınlandı.

  • Subversion depolarını kopyalama hızı iyileştirildi.

  • Depo kilitleme özelliği, üçüncü taraf kitaplığı kullanacak biçimde değiştirildi.

  • Yalnızca işlem gerektiren dizgeleri indirme desteği eklendi.

  • Aynı anda birkaç dilde arama yapma özelliği eklendi.

  • Gettext çıktı kaydırmasını yapılandıran yeni eklenti eklendi.

  • JSON biçimlendirmesini yapılandıran yeni eklenti eklendi.

  • RFC 6750 uyumlu Bearer kimlik doğrulaması kullanılarak, API üzerine kimlik doğrulama desteği eklendi.

  • Makine çevirisi hizmetlerini kullanan kendiliğinden çeviri özelliği eklendi.

  • Beyaz tahta iletilerine HTML kod imi desteği eklendi.

  • Dizge durumlarını toplu değiştirme özelliği eklendi.

  • En düşük translate-toolkit sürümü 2.3.0 olarak güncellendi. Eski sürümler artık desteklenmiyor.

  • İç çeviri belleği eklendi.

  • Panoya bileşen listeleri özeti ve her bileşen listesinin özeti sayfaları eklendi.

  • DeepL makine çevirisi hizmeti desteği eklendi.

  • Makine çevirisi sonuçlarının Weblate ön belleğine alınması sağlandı.

  • İşlenmiş değişiklikleri yeniden sıralama özelliği eklendi.

Weblate 2.19.1#

20 Şubat 2018 tarihinde yayınlandı.

  • 2.18 sürümünden yükseltme sırasında yaşanan aktarım sorunu düzeltildi.

  • Dosya yükleme API doğrulaması iyileştirildi.

Weblate 2.19#

15 Şubat 2018 tarihinde yayınlandı.

  • Bazı dosya biçimlerinde yaşanan içe aktarma sorunları düzeltildi.

  • İnsan dostu tarayıcı bilgilerinin denetim günlüğünde görüntülenmesi sağlandı.

  • Dosyalar için TMX dışa aktarıcısı eklendi.

  • Çeviri dosyalarının yüklenmesinde çeşitli başarım iyileştirmeleri yapıldı.

  • Django kullanımını öne alacak biçimde Weblate erişim yönetimini devre dışı bırakma seçeneği eklendi.

  • Büyük dizgeler için sözlük arama hızı iyileştirildi.

  • django_auth_ldap 1.3.0 uyumluluğu sağlandı.

  • Yapılandırma hatalarının kaydedilmesi ve kalıcı olarak bildirilmesi sağlandı.

  • Beyaz boşluk düzelticisinde imlerin yok sayılmasına uyuldu.

  • Bazı Subversion kurulumlarıyla uyumluluk geliştirildi.

  • İç makine çevirisi hizmeti iyileştirildi.

  • SAP Translation Hub hizmeti desteği eklendi.

  • Microsoft Terminology hizmeti desteği eklendi.

  • Bildirim e-postalarındaki reklam özelliği kaldırıldı.

  • Dil düzeyinde çeviri ilerleme raporları iyileştirildi.

  • Farklı çoğul biçim formülleri desteği iyileştirildi.

  • stdlayout kullanmayan Subversion depoları desteği eklendi.

  • Çeviri iş akışlarını özelleştirme eklentileri eklendi.

Weblate 2.18#

15 Aralık 2017 tarihinde yayınlandı.

  • Katılımcı istatistikleri zenginleştirildi.

  • Özel karakterler sanal klavye yapılandırması iyileştirildi.

  • DTD dosya biçimi desteği eklendi.

  • Klavye kısayolları, tarayıcı ve sistem kısayolları ile çakışma olasılığını düşürmek için değiştirildi.

  • XLIFF dosyaları için onaylandı imi desteği iyileştirildi.

  • Gettext PO dosyalarında uzun dizgelerin kaydırılmaması özelliği eklendi.

  • Geçerli çevirinin kalıcı bağlantısını kopyalama düğmesi eklendi.

  • Django 1.10 desteği kaldırıldı ve Django 2.0 desteği eklendi.

  • Çeviri sırasında çevirilerin kilitlenmesi özelliği kaldırıldı.

  • Tek dilli çevirilere yeni dizgeler ekleme özelliği eklendi.

  • Seçilmiş onaylayıcılar ile çeviri iş akışı özelliği eklendi.

Weblate 2.17.1#

13 Ekim 2017 tarihinde yayınlandı.

  • Bazı özel durumlarda sınama paketinin çalıştırılmasında yaşanan sorun düzeltildi.

  • Yereller güncellendi.

Weblate 2.17#

13 Ekim 2017 tarihinde yayınlandı.

  • Git kopyalarının varsayılan olarak sığ olması sağlandı.

  • Büyük çeviri dosyalarını güncelleme başarımı artırıldı.

  • Belirli e-posta adresleri ile hesap açılması engelleme özelliği eklendi.

  • Kullanıcıların kendi yorumlarını silebilmesi özelliği eklendi.

  • Arama ve değiştirme özelliği için ön izleme adımı eklendi.

  • Arama ve yükleme formlarındaki ayarların istemci tarafında tutulması sağlandı.

  • Arama yetenekleri artırıldı.

  • Her projeye özel erişim denetimi yapılandırmasının ayrıntıları artırıldı.

  • BASE_DIR varsayılan değeri değiştirildi.

  • Yanlışlıkla silmeyi önlemek için hesap silme işleminin iki adımda yapılması sağlandı.

  • Proje erişim denetimi ayarlarını düzenleme özelliği eklendi.

  • Öneriler için Akismet ile istenmeyen içerikleri engelleme özelliği eklendi.

Weblate 2.16#

11 Ağustos 2017 tarihinde yayınlandı.

  • Çeşitli başarım iyileştirmeleri yapıldı.

  • İç içe geçmiş JSON biçimi desteği eklendi.

  • WebExtension JSON biçimi desteği eklendi.

  • Git dışa aktarıcıda yaşanan kimlik doğrulaması sorunu düzeltildi.

  • Belirli durumlar için CSV içe aktarma işlemi iyileştirildi.

  • Diğer çeviriler pano bileşeni görünümü iyileştirildi.

  • En fazla uzunluk denetimlerinin formda metnin uzunluğunu dayatması sağlandı.

  • commit_pending yaşının her bileşene özel yapılandırılabilmesi sağlandı.

  • Kullanıcı arayüzünde bazı sadeleştirmeler yapıldı.

  • Çevirilerin bileşen/proje/site genelinde aramasında yaşanan sorun düzeltildi.

Weblate 2.15#

30 Haziran 2017 tarihinde yayınlandı.

  • Diğer çevirilerden daha fazla ilgili çevirinin görüntülenmesi sağlandı.

  • Geçerli dizgenin diğer dillerdeki çevirilerini görüntüleme özelliği eklendi.

  • Litvanyaca için varsayılan olarak 4 çoğul biçimin kullanılması sağlandı.

  • Farklı biçimdeki tek dilli dosyalarda yaşanan yükleme sorunu düzeltildi.

  • Başarısız olan kimlik doğrulaması hata iletileri iyileştirildi.

  • Sözcüğü sözlükten silerken sayfa durumunun korunması sağlandı.

  • İkincil dil çevirisini düzenlemek için doğrudan bağlantı eklendi.

  • Perl biçimi kalite denetimi eklendi.

  • Yeniden kullanılan parolaları reddetme özelliği eklendi.

  • Araç çubuğu sağdan sola yazılan dilleri düzenlemek için zenginleştirildi.

Weblate 2.14.1#

24 Mayıs 2017 tarihinde yayınlandı.

  • Arama sonuçları sayfalandırılırken yaşanabilecek sorun düzeltildi.

  • Bazı uç durumlarda yaşanan eski sürümlerden aktarım sorunu düzeltildi.

  • Proje izleme ve izlemeyi bırakma işlemlerinde yaşanabilecek CSRF sorunu düzeltildi.

  • Parola sıfırlama işleminde kullanıcı kimliğinin doğrulanması özelliği kaldırıldı.

  • Parola unutulduğunda yaşanabilecek CAPTCHA atlama sorunu düzeltildi.

Weblate 2.14#

17 Mayıs 2017 tarihinde yayınlandı.

  • Sözlük kayıtlarının eklenmesinde AJAX kullanıldı.

  • Oturumu kapatma işleminde CSRF engellemesi için POST kullanımına geçildi.

  • API anahtarı belirtecini sıfırlama işleminde CSRF engellemesi için POST kullanımına geçildi.

  • Weblate tarafından, Content-Security-Policy ayarının varsayılan olarak yapılması sağlandı.

  • Yerel düzenleyici adresinin, kendi kendine XSS tehlikesini önlemek için doğrulanması sağlandı.

  • Parolanın varsayılan olarak bilinen sorunlara karşı doğrulanması sağlandı.

  • Kullanıcıların, hesaplarında yapılan parola değişikliği gibi önemli işlemlerle ilgili bilgilendirilmesi sağlandı.

  • CSV dışa aktarımlarında olabilecek formüllerden kaçınılması sağlandı.

  • Güvenlikte bazı küçük iyileştirmeler yapıldı.

  • Kimlik doğrulama girişimlerine hız sınırlama özelliği eklendi.

  • Geçmişe öneri içeriklerinin kaydedilmesi sağlandı.

  • Önemli hesap işlemlerinin denetim günlüğüne kaydedilmesi sağlandı.

  • Hesap silme ya da ilişkilendirme işlemlerinde parola onayı istenmesi özelliği eklendi.

  • Önerinin yapıldığı zamanın görüntülenmesi sağlandı.

  • Sondaki noktalı virgül karakteri kalite denetimi eklendi.

  • Arama bağlantılarının paylaşılabildiğinden emin olunması sağlandı.

  • API üzerine kaynak dizge bilgileri ve ekran görüntüleri eklendi.

  • API yüklemesi ile çevirilerin üzerine yazma özelliği eklendi.

Weblate 2.13.1#

12 Nisan 2017 tarihinde yayınlandı.

  • Yönetilen projelerin kullanıcı profilinde listelenmesinde yaşanan sorun düzeltildi.

  • Bazı izinlerin eksik olmasına neden olan aktarım sorunu düzeltildi.

  • Çevirileri indirirken geçerli dosya biçiminin listelenmesinde yaşanan sorun düzeltildi.

  • Kullanıcı izinlerinin yetersiz olduğu bir projeye erişmeye çalıştığında HTTP 404 sayfasının görüntülenmesi sağlandı.

Weblate 2.13#

12 Nisan 2017 tarihinde yayınlandı.

  • Çeviri kalıplarında yaşanan kalite denetimleri sorunu düzeltildi.

  • Çeviri kaybında tetiklenen kalite denetimi eklendi.

  • Bekleyen kullanıcı önerilerini görüntüleme seçeneği eklendi.

  • Bileşen listelerini kendiliğinden oluşturma seçeneği eklendi.

  • Kimliğini doğrulamamış kullanıcılara görüntülenecek varsayılan panonun yapılandırılabilmesi sağlandı.

  • Onaylama işlemi için 25 rastgele dizgeye göz atma seçeneği eklendi.

  • Geçmişe dizge değişikliği işlemlerinin kaydedilmesi sağlandı.

  • Yeni çeviri ekleme sırasındaki hata bildirimleri iyileştirildi.

  • Proje içindeki her dile özel arama özelliği eklendi.

  • Grup erişim denetimi listeleri belirli izinlerle sınırlandırıldı.

  • Her projeye özel ayrı erişim denetimi listesi için grup erişim denetimi listesinin kullanılması sağlandı.

  • İzin denetiminin daha ayrıntılı yapılması sağlandı.

  • Kullanıcı arayüzünde bazı küçük iyileştirmeler yapıldı.

Weblate 2.12#

3 Mart 2017 tarihinde yayınlandı.

  • Grup yönetimi arayüzü iyileştirildi.

  • Yandex Translate API desteği eklendi.

  • Site genelinde arama hızı iyileştirildi.

  • Proje ve bileşen kapsamında arama özelliği eklendi.

  • Proje ve bileşen kapsamında arama ve değiştirme özelliği eklendi.

  • Tutarsız çevirilerin görüntülenmesi iyileştirildi.

  • Kaynak dosyaları yerel düzenleyicide açma desteği eklendi.

  • Görsel klavyeyi özel karakterlerle yapılandırma desteği eklendi.

  • Kaynak dizgeleri eşleştirmek için görsel karakter tanıma (OCR) desteği ile ekran görüntüsü yönetimi iyileştirildi.

  • Varsayılan işleme iletisine çeviri bilgileri ve adresi eklendi.

  • Joomla! çeviri biçimi desteği eklendi.

  • Farklı dosya biçimleri için içe aktarma güvenilirliği iyileştirildi.

Weblate 2.11#

31 Ocak 2017 tarihinde yayınlandı.

  • Dil sayfasına ayrıntılı dil bilgileri eklendi.

  • Mercurial arka ucunda iyileştirmeler yapıldı.

  • Çeviri bileşeni önceliğini belirtme özelliği eklendi.

  • Daha az kullanılan izinlerle bile Grup erişim denetiminin daha tutarlı kullanılması sağlandı.

  • Kanca betiklerine WL_BRANCH değişkeni eklendi.

  • Geliştirici belgeleri iyileştirildi.

  • Git dışa aktarma eklentisinde çeşitli Git sürümleriyle daha iyi uyumluluk sağlandı.

  • Her proje ve her bileşen için ayrı istatistikler özelliği eklendi.

  • Microsoft Translate API desteğine iyileştirmek için dil kodu eşleme özelliği eklendi.

  • Çeviri silme işleminin daha hızlı yapılabilmesi için tam metin temizleme işlemi arka plan görevine taşındı.

  • Tek çoğul biçimi olan dillerde çoğul kaynağın görüntülenme sorunu düzeltildi.

  • import_project komutunda hata işleme iyileştirildi.

  • Çeşitli başarım iyileştirmeleri yapıldı.

Weblate 2.10.1#

20 Ocak 2017 tarihinde yayınlandı.

  • Parola sıfırlama formundan hesabın varlığı bilgisinin sızdırılması engellendi (CVE-2017-5537).

Weblate 2.10#

15 Aralık 2016 tarihinde yayınlandı.

  • Çoğul biçimlerin aynı olup olmadığına bakan kalite denetimi eklendi.

  • Kimlik doğrulaması kullanan depolarda yaşanan GitHub kancaları sorunu düzeltildi.

  • İsteğe bağlı Git dışa aktarma modülü eklendi.

  • Microsoft Cognitive Services Translator API desteği eklendi.

  • Proje ve bileşen kullanıcı arayüzü basitleştirildi.

  • Kontrol karakterlerini kaldıran kendiliğinden düzeltme özelliği eklendi.

  • Projelere her dilin özeti görünümü eklendi.

  • CSV dışa aktarma özelliği eklendi.

  • İstatistiklerin CSV olarak indirilmesi özelliği eklendi.

  • Tüm çevirilere hızlı özet için matris görünümü eklendi.

  • Değişiklikler ve dizgeler için temel API eklendi.

  • Makine çevirileri için Apertium APy sunucusu desteği eklendi.

Weblate 2.9#

4 Kasım 2016 tarihinde yayınlandı.

  • createadmin yönetim komutu parametreleri artırıldı.

  • import_json komutu var olan bileşenleri işlemek için zenginleştirildi.

  • YAML dosyaları desteği eklendi.

  • Proje sahiplerinin çeviri bileşenini ve proje ayrıntılarını yapılandırması özelliği eklendi.

  • Projeler için “Abone olma” terimi “İzleme” terimi ile değiştirildi.

  • Projelerin doğrudan proje sayfasından izlenebilmesi sağlandı.

  • Çok dilli durum pano bileşeni eklendi.

  • Kaynak gösterilmiyorsa ikincil dilin vurgulanması sağlandı.

  • Geçmişe öneri silme işlemlerinin kaydedilmesi sağlandı.

  • Kullanıcı profilinde dil seçimi arayüzü iyileştirildi.

  • Bileşen için beyaz tahta iletilerinin görüntülenmesinde yaşanan sorun düzeltildi.

  • Kaydettikten sonra ayarlar sekmesinin seçili tutulması sağlandı.

  • Kaynak dizge yorumunun daha belirgin görüntülenmesi sağlandı.

  • Git depoları için Gettext PO birleştirme sürücüsünün kendiliğinden kurulması sağlandı.

  • Arama ve değiştirme özelliği eklendi.

  • Çeviriler için görsel bağlam (ekran görüntüleri) yükleme özelliği eklendi.

Weblate 2.8#

31 Ağustos 2016 tarihinde yayınlandı.

  • Belgelerde iyileştirmeler yapıldı.

  • Çeviriler.

  • Paketlenmiş JavaScript kitaplıkları güncellendi.

  • list_translators yönetim komutu eklendi.

  • Django 1.8 desteği eklendi.

  • Django 1.10 uyumluluğunda yaşanan sorun düzeltildi.

  • Subversion desteği eklendi.

  • XML geçerlilik denetimi uyumsuz XML kod imlerinden ayrıldı.

  • API, HIDE_REPO_CREDENTIALS ayarlarına uyacak biçimde düzeltildi.

  • Zen kipinde kaynak değişikliğinin görüntülenmesi sağlandı.

  • Alt + PageUp/PageDown/Home/End kısayol tuşlarının Zen kipinde de çalışması sağlandı.

  • Değişikliklerin tam zamanını görüntüleyen ipucu eklendi.

  • Çeviri sayfasına süzgeç seçme ve arama yapma seçeneği eklendi.

  • Çeviri silme kullanıcı arayüzü eklendi.

  • Yerleştirilebilir ögeleri ekleme davranışı iyileştirildi.

  • Zen kipinde yaşanan kendiliğinden kilitleme sorunları düzeltildi.

Weblate 2.7#

10 Temmuz 2016 tarihinde yayınlandı.

  • Google internet çeviri makine çeviri hizmeti kaldırıldı.

  • Çeviri eklenirken işleme iletisi iyileştirildi.

  • İbranice için Google Çeviri API düzeltildi.

  • Mercurial 3.8 ile uyumluluk sağlandı.

  • import_json yönetim komutu eklendi.

  • Listelenen çevirilerin doğru sıralanması sağlandı.

  • Yalnızca bir farkın değil, tam öneri metninin görüntülenmesi sağlandı.

  • API zenginleştirildi (ayrıntılı depo durumu, istatistikler, …).

  • Deneme paketindeki deneme depoları için ağ erişimi gereksinimi kaldırıldı.

Weblate 2.6#

28 Nisan 2016 tarihinde yayınlandı.

  • Dil süzgeci ile bileşenlerin doğrulanmasında yaşanan sorun düzeltildi.

  • XLIFF dosyaları desteği iyileştirildi.

  • İngilizce olmayan kaynakların makine çevirisi sorunu düzeltildi.

  • REST API eklendi.

  • Django 1.10 uyumluluğu sağlandı.

  • Beyaz tahta iletilerine kategori özelliği eklendi.

Weblate 2.5#

10 Mart 2016 tarihinde yayınlandı.

  • Proje sahipleri için kendiliğinden çeviri düzeltildi.

  • İşleme ve itme işlemlerinin başarımı iyileştirildi.

  • Komut satırından öneriler eklemek için yeni yönetim komutu eklendi.

  • Dosya yüklerken yorumları birleştirme özelliği eklendi.

  • C printf biçimindeki bazı GNU eklentileri desteği eklendi.

  • Belgelerde iyileştirmeler yapıldı.

  • Çevirmen hesaplarını tutma özelliği eklendi.

  • Katılımcı istatistikleri oluşturma özelliği eklendi.

  • Site genelinde aramanın yalnızca bir dilde arama yapması sağlandı.

  • Ermenice için kalite denetimleri iyileştirildi.

  • Çeviriler var olmadan çeviri bileşenlerini başlatma özelliği eklendi.

  • Qt TS ile yeni çeviriler ekleme özelliği eklendi.

  • PHP dosyalarını çevirme desteği iyileştirildi.

  • Kalite denetimlerinin başarımı iyileştirildi.

  • Denetim hatalarının site genelinde aranması sorunu düzeltildi.

  • Kaynak dili belirtme seçeneği eklendi.

  • XLIFF dosyaları desteği iyileştirildi.

  • import_project için seçenekler listesi zenginleştirildi.

  • Beyaz tahta iletileri için hedefleme iyileştirildi.

  • Projeler arasında kendiliğinden çeviri özelliği eklendi.

  • Tam metin arama dizini iyileştirildi.

  • Kendiliğinden çeviri için yönetim komutu eklendi.

  • Yerleştirilebilir ögeleri vurgulama özelliği eklendi.

  • Yerleştirilebilir ögeler, denetimler ve makine çevirileri için klavye kısayolları eklendi.

  • Çeviri kilitleme özelliği iyileştirildi.

  • AngularJS ara değerlemesi için kalite denetimi eklendi.

  • Kapsamlı grup tabanlı erişim denetimi listeleri eklendi.

  • Düzenlenmesi gereken dizgeler (eski adıyla belirsiz) terimi açıklığa kavuşturuldu.

  • İşlem yapılması gereken ve çevrilmemiş dizgelerle ilgili terimler açıklığa kavuşturuldu.

  • Python 3 desteği eklendi.

  • Django 1.7 desteği kaldırıldı.

  • Yeni Gettext PO dosyaları oluşturmak için msginit bağımlılığı kaldırıldı.

  • Yapılandırılabilir pano görünümleri eklendi.

  • İşleme hatalarıyla ilgili bildirimler iyileştirildi.

  • Aynı adlı bileşenleri import_project komutu ile içe aktarma seçeneği eklendi.

  • PHP dosyalarını çevirme desteği iyileştirildi.

  • Sözlüğü XLIFF olarak dışa aktarma özelliği eklendi.

  • Tüm çevirileri XLIFF ve Gettext PO olarak dışa aktarma özelliği eklendi.

  • Belgelerde iyileştirmeler yapıldı.

  • Kendiliğinden grup atamalarını yapılandırma özelliği eklendi.

  • Yeni çevirilerin eklenmesi iyileştirildi.

Weblate 2.4#

20 Eylül 2015 tarihinde yayınlandı.

  • PHP dosyaları desteği iyileştirildi.

  • Anonim kullanıcıya erişim denetimi listesi ekleme özelliği eklendi.

  • import_project komutunun yapılandırılabilirliği iyileştirildi.

  • Geçmişin CSV dökümünü alma özelliği eklendi.

  • Kopyalama/yapıştırma işlemlerinde boşluk karakteri hataları engellendi.

  • Bitbucket internet kancaları desteği eklendi.

  • Çeviri yüklerken belirsiz dizgeler üzerine uygulanan denetim sıkışlaştırıldı.

  • Birkaç adres değişti. Yer imlerinizi güncellemeniz gerekebilir.

  • Kanca betiklerinin, geçerli klasör olarak sürüm denetimi sistemi kökü ile yürütülmesi sağlandı.

  • Kanca betiklerinin, geçerli bileşeni tanımlayan ortam değişkenleriyle yürütülmesi sağlandı.

  • Tam metin dizinini en iyi duruma getiren yönetim komutu eklendi.

  • Rollbar üzerine hata bildirme desteği eklendi.

  • Projelere birden fazla sahip olabilmesi özelliği eklendi.

  • Proje sahiplerinin kendilerini yönetebilmesi özelliği eklendi.

  • Gettext PO ile kullanılan javascript-format desteği eklendi.

  • XLIFF olarak yeni çeviri ekleme özelliği eklendi.

  • Dosya biçiminin kendiliğinden algılanması iyileştirildi.

  • Klavye kısayolları artırıldı.

  • Birkaç dil için sözlük eşleştirmesi iyileştirildi.

  • Sayfaların çoğunun düzeni iyileştirildi.

  • Çeviri yaparken sözlüğe sözcük ekleme özelliği eklendi.

  • Weblate tarafından yönetilen dilleri süzme özelliği eklendi.

  • CSV dosyalarını çevirme ve içe aktarma özelliği eklendi.

  • Durağan dosyaların işlenmesi yeniden yazıldı.

  • Tek seçenek olduğunda, üçüncü taraf hizmetine doğrudan oturum / hesap açma bağlantılarının sunulması sağlandı.

  • Hesap silinirken bekleyen değişikliklerin işlenmesi sağlandı.

  • Site adını değiştiren yönetim komutu eklendi.

  • Varsayılan işleyeni yapılandırma seçeneği eklendi.

  • Yeni çeviri eklenmesinden sonra kancası eklendi.

  • İşlemeye birden çok dosya eklemek için ekle seçeneği eklendi.

Weblate 2.3#

22 Mayıs 2015 tarihinde yayınlandı.

  • Django 1.6 ve South aktarımlarının desteği kaldırıldı.

  • Java özellik dosyaları kullanılırken yeni çeviriler ekleme özelliği eklendi.

  • Düzenleme yapmadan öneriyi onaylama özelliği eklendi.

  • Google OAuth 2.0 desteği iyileştirildi.

  • Microsoft .resx dosyaları desteği eklendi.

  • Varsayılan robots.txt dosyası çevirilerin kapsamlı olarak taranmasını engelleyecek biçimde ayarlandı.

  • Önerileri kabul etme iş akışı basitleştirildi.

  • Önemli bildirimleri her zaman alacak proje sahipleri eklendi.

  • Tek dilli kalıbın düzenlenmesini devre dışı bırakma özelliği eklendi..

  • Depo durumu görünümünde ayrıntılar artırıldı.

  • Çeviriyi değiştirirken kalıbı düzenlemek için doğrudan bağlantı eklendi.

  • Proje sahiplerine daha fazla izin eklenmesi sağlandı.

  • Zen kipinde ikincil dilin görüntülenmesi sağlandı.

  • Kaynak dizgenin ikincil dil için gizlenmesi özelliği eklendi.

Weblate 2.2#

19 Şubat 2015 tarihinde yayınlandı.

  • Başarım iyileştirmeleri yapıldı.

  • Konum ve yorum alanlarında tam metin arama özelliği eklendi.

  • Yeni SVG/JavaScript temelli etkinlik çizelgeleri eklendi.

  • Django 1.8 desteği eklendi.

  • Yorumları silme özelliği eklendi.

  • Sahip SVG simgesi eklendi.

  • Google Analytics desteği eklendi.

  • Çeviri dosyası adlarının işlenmesi iyileştirildi.

  • Tek dilli JSON çevirileri desteği eklendi.

  • Geçmişe bileşen kilitleme işlemlerinin kaydedilmesi sağlandı.

  • Tek dilli çeviriler için kaynak (kalıp) dilini düzenleme özelliği eklendi.

  • Temel Gerrit desteği eklendi.

Weblate 2.1#

5 Aralık 2014 tarihinde yayınlandı.

  • Mercurial depoları desteği eklendi.

  • Glyphicon yazı tipi Awesome ile değiştirildi.

  • Sosyal ağ kimlik doğrulama hizmetlerinin simgeleri eklendi.

  • Düğme renklerinin ve simgelerinin tutarlılığı artırıldı.

  • Belgelerde iyileştirmeler yapıldı.

  • Çeşitli hata düzeltmeleri yapıldı.

  • Küçük ekranlar için çeviri listesindeki sütunların kendiliğinden gizlenmesi sağlandı.

  • Dosya sistemi yollarının yapılandırması değiştirildi.

  • SSH anahtarlarının işlenmesi ve depolanması iyileştirildi.

  • Depo kilitleme özelliği iyileştirildi.

  • Her kaynak dizge için özelleştirilebilir kalite denetimleri eklendi.

  • Tamamlanan çevirilerin panoda gizlenmesi sağlanması.

Weblate 2.0#

6 Kasım 2014 tarihinde yayınlandı.

  • Bootstrap kullanan yeni uyumlu kullanıcı arayüzü eklendi.

  • Sürüm denetimi sistemi arka ucu yeniden yazıldı.

  • Belgelerde iyileştirmeler yapıldı.

  • Site genelindeki iletiler için beyaz tahta eklendi.

  • Dizgelerin önceğinin yapılandırılabilmesi sağlandı.

  • JSON dosya biçimi desteği eklendi.

  • Bazı durumlarda mo dosyaları oluşturulurken yaşanan sorun düzeltildi.

  • GitLab bildirimleri özelliği eklendi.

  • Çeviri önerilerini devre dışı bırakma özelliği eklendi.

  • Django 1.7 desteği eklendi.

  • Erişim denetimi listesi projelerine kullanıcı yönetimi eklendi.

  • Arama olanakları genişletildi.

  • Çevirmenlere çoğul biçimler ile ilgili daha fazla ipucu verilmesi sağlandı.

  • Git deposunun kilitlenmesi sorunu düzeltildi.

  • Eski Git sürümleriyle uyumluluk sağlandı.

  • Erişim denetimi listesi desteği geliştirildi.

  • Her dil için tırnak ve diğer özel karakter düğmeleri eklendi.

  • İstatistikleri JSONP olarak dışa aktarma özelliği eklendi.

Weblate 1.x serisi#

Weblate 1.9#

6 Mayıs 2014 tarihinde yayınlandı.

  • Django 1.6 uyumluluğu sağlandı.

  • Artık Django 1.4 uyumluluğu korunmuyor.

  • Çeviriler için kilitleme ve kilit açma yönetim komutları eklendi.

  • Qt TS dosyaları desteği iyileştirildi.

  • Kullanıcıların hesaplarını silebilmesi sağlandı.

  • Avatarları devre dışı bırakma özelliği eklendi.

  • Ad ve soyad öznitelikleri birleştirildi.

  • Avatarların sunucu tarafında tutulması ve ön belleğe alınması sağlandı.

  • shields.io simgeleri desteği eklendi.

Weblate 1.8#

7 Kasım 2013 tarihinde yayınlandı.

  • Lütfen yükseltme yönergeleri için rehbere bakın.

  • Proje özetinin görünümü güzelleştirildi.

  • Paylaşım seçeneklerinin daha iyi görünmesi sağlandı.

  • Anonim kullanıcı izinleri üzerinde daha fazla denetim sağlandı.

  • Üçüncü taraf hizmetlerini kullanarak oturum açma desteği eklendi. Bilgi almak için rehbere bakabilirsiniz.

  • Kullanıcı adı yerine e-posta ile oturum açılabilmesi sağlandı.

  • Belgelerde iyileştirmeler yapıldı.

  • Kaynak dizge onaylama işlemi geliştirildi.

  • Tüm dizgelerde arama özelliği eklendi.

  • Kaynak dizgelerin izlenmesi iyileştirildi.

  • Hesap açılışına Captcha koruması eklendi.

Weblate 1.7#

7 Ekim 2013 tarihinde yayınlandı.

  • Lütfen yükseltme yönergeleri için rehbere bakın.

  • Python parantezi biçim dizgesini denetleme desteği eklendi.

  • Kalite denetimlerinin her bileşen için ayrı özelleştirilmesi sağlandı.

  • Çeviri istatistiklerine göre ayrıntılar eklendi.

  • Öneri, denetim ve yorumların dizgelerle ilişkilendirme yöntemi değiştirildi.

  • Kullanıcıların işleme iletisine metin ekleyebilmesi sağlandı.

  • Yeni dil isteklerine abone olma özelliği eklendi.

  • Yeni çeviriler ekleme özelliği eklendi.

  • Pano bileşenleri ve çizelgelerde Pango + Cairo yerine Pillow kullanılması sağlandı.

  • Durum simgesi pano bileşeni eklendi.

  • Geçersiz metin yönü denetimi kaldırıldı.

  • Sözlükte yapılan değişiklikler geçmiş kayıtlarına eklendi.

  • Çeviri görünümü başarımı iyileştirildi.

Weblate 1.6#

25 Temmuz 2013 tarihinde yayınlandı.

  • Hesap açarken çıkabilecek sorunların işlenmesi iyileştirildi.

  • Değişikliklere göz atma özelliği eklendi.

  • Makine çevirisi önerilerinin sıralanması düzeltildi.

  • MyMemory makine çevirisi desteği iyileştirildi.

  • Amagama makine çevirisi desteği eklendi.

  • Sık kullanılan sayfalarda çeşitli iyileştirmeler yapıldı.

  • Arama sonuçlarında aranan ifadenin vurgulanması sağlandı.

  • İleti kaydedilirken kendiliğinden düzeltme özelliği eklendi.

  • Çeviri geçmişini izleme ve geri döndürme özellikleri eklendi.

  • Google Çeviri API desteği eklendi.

  • SSH sunucu anahtarları yönetimi desteği eklendi.

  • Çeşitli form doğrulama iyileştirmeleri yapıldı.

  • Çeşitli kalite denetimi iyileştirmeleri yapıldı.

  • İçe aktarma başarımı iyileştirildi.

  • Önerilere oy verme desteği eklendi.

  • Yönetim arayüzü sadeleştirildi.

Weblate 1.5#

16 Nisan 2013 tarihinde yayınlandı.

  • Lütfen yükseltme yönergeleri için rehbere bakın.

  • Herkese açık kullanıcı sayfaları eklendi.

  • Çoğul biçimlerin adlandırılması iyileştirildi.

  • Sözlüğün TBX olarak dışa aktarılması desteği eklendi.

  • Bitbucket bildirimleri desteği eklendi.

  • Etkinlik çizelgelerinin her çeviri, dil ya da kullanıcı için görülebilmesi sağlandı.

  • import_project yönetici komutunun seçenekleri artırıldı.

  • Django 1.5 uyumluluğu sağlandı.

  • Avatarların libravatar kullanılarak görüntülenmesi sağlandı.

  • JSON dışa aktarımının güzel biçimde yazdırılabilmesi sağlandı.

  • Çeşitli başarım iyileştirmeleri yapıldı.

  • Başarısız olan denetimlerin veya belirsiz dizgelerin projelerin veya dillerin ilerleme çubuklarında görüntülenmesi sağlandı.

  • Özel ön işleme kancaları ve ek dosyaların işlenmesi özellikleri eklendi.

  • Arama özelliği daha iyi başarım ve kullanıcı deneyimi sağlamak için yeniden yazıldı.

  • Makine çevirileri arayüzü yenilendi.

  • Tek dilli po dosyaları desteği eklendi.

  • Çeşitli aramaların hızını artırmak için ön belleğe alınmış üst veri miktarı artırıldı.

  • Sözcük sayılarının görüntülenmesi sağlandı.

Weblate 1.4#

23 Ocak 2013 tarihinde yayınlandı.

  • Dizge silme işlemiyle ilgili denetimlerin ve yorumların silinmesinde yaşanan sorun düzeltildi.

  • Çevirilerin kendiliğinden yayılmasını engelleme seçeneği eklendi.

  • Birleştirme hatalarına abone olma seçeneği eklendi.

  • Özel ttkit yükleyiciye gerek duyan projelerin doğru biçimde içe aktarılması sağlandı.

  • Arama motoru robotlarının erişimini kolaylaştırmak için site haritaları eklendi.

  • Bildirim e-postalarına veya özet akışlarına doğrudan dizge bağlantısı eklendi.

  • Yönetim arayüzünde çeşitli iyileştirmeler yapıldı.

  • Yönetim arayüzünde üretim ortamı kurulumu için ipuçları sunuldu.

  • Her dil için ayrı pano bileşeni ve etkileşim sayfası eklendi.

  • Çeviri kilitleme işlemi iyileştirildi.

  • Pano bileşenleri için daha fazla kod parçası çeşidinin görüntülenmesi sağlandı.

  • Başarısız olan denetimlerin veya belirsiz dizgelerin ilerleme çubuklarında belirtilmesi sağlandı.

  • İşleme iletisine daha fazla biçimlendirme seçeneği eklendi.

  • Makine çevirisi hizmetleriyle ilgili hataların işlenmesinde yaşanan sorun düzeltildi.

  • Kendiliğinden çeviri kilitleme davranışı iyileştirildi.

  • Önceki kaynak dizgeye göre yapılan değişikliklerin görüntülenmesi sağlandı.

  • Alt dizge arama özelliği eklendi.

  • Çeşitli kalite denetimi iyileştirmeleri yapıldı.

  • Her proje için erişim denetimi listesi özelliği eklendi.

  • Birim sınamalarına göre temel kod kapsamı.

Weblate 1.3#

16 Kasım 2012 tarihinde yayınlandı.

  • PostgreSQL veri tabanı arka ucuyla uyumluluk sağlandı.

  • Yukarı akış Git deposunda silinen dillerin kaldırılması sağlandı.

  • Kalite denetimlerinin işlenmesi iyileştirildi.

  • Yeni denetimler eklendi (BBCode, XML biçimlendirmesi ve yeni satır karakterleri).

  • Birleştirme yerine isteğe bağlı yeniden temellendirme desteği sağlandı.

  • Weblate kurulumunun yerinin değiştirilmesi sağlandı (örneğin /weblate yolu altında çalıştırmak için).

  • Kendiliğinden algılamanın başarısız olması durumunda dosya türünü el ile seçme özelliği eklendi.

  • Android kaynakları için daha iyi destek sağlandı.

  • Web arayüzünden SSH anahtarı oluşturma özelliği eklendi.

  • Veri dışa aktarımlarının daha görünür olması sağlandı.

  • Bazı özel karakterleri yazmak için yeni düğmeler eklendi.

  • Sözlüğü dışa aktarma özelliği eklendi.

  • Tüm Weblate kurulumunu kilitleme özelliği eklendi.

  • Kaynak dizge denetimleri ve kaynak dizge onaylama özellikleri eklendi.

  • Hem çeviriler hem de kaynak dizgeler için kullanıcı yorumları özelliği eklendi.

  • Günlük izleme iyileştirildi.

  • Değişikliklerin RSS ile izlenebilmesi sağlandı.

  • Sağdan sola yazılan dillerin desteği iyileştirildi.

Weblate 1.2#

14 Ağustos 2012 tarihinde yayınlandı.

  • Weblate veri tabanı aktarımı için South kullanımına geçildi. Yükseltme yapıyorsanız lütfen yükseltme yönergelerine bakın.

  • Bağlı Git depolarıyla ilgili yaşanan küçük sorunlar düzeltildi.

  • Giriş sayfası Weblate kullanarak çeviri yapan kişilerin ilgisini çekecek biçimde yenilendi.

  • Çeviri projelerini tanıtmak için kullanılabilecek pano bileşenleri eklendi.

  • Depoyu özgün durumuna sıfırlama seçeneği eklendi (izin verilmiş kullanıcılar için).

  • Proje ve bileşenlere çevirileri kilitleme özelliği eklendi.

  • Bazı çevirilerin devre dışı bırakılabilmesi sağlandı.

  • Yeni çevirilerin eklenmesine yapılandırılabilir seçenekler eklendi.

  • Her proje için Git işlemelerini yapılandırma özelliği eklendi.

  • Basit antispam koruması eklendi.

  • Ana sayfanın düzeni iyileştirildi.

  • Her işlemede değişikliklerin kendiliğinden itilmesi sağlandı.

  • Çevirmenlere e-posta bildirimleri gönderme özelliği eklendi.

  • Ayarlarda yalnızca kullanılan dillerin listelenmesi sağlandı.

  • Proje içe aktarılırken bilinmeyen dillerin işlenmesi iyileştirildi.

  • Çevirmen tarafından çeviriyi kilitleme özelliği eklendi.

  • İsteğe bağlı olarak po dosyasında “Language-Team” üst bilgisinin korunması sağlandı.

  • Hakkında sayfasına bazı istatistikler eklendi.

  • Django-registration 0.8 sürümü desteği eklendi (ve zorunlu kılındı).

  • Denetim hatası olan dizge sayısının ön belleğe alınması sağlandı.

  • Kurulum sırasında gereksinimlerin denetlenmesi sağlandı.

  • Belgelerde iyileştirmeler yapıldı.

Weblate 1.1#

4 Temmuz 2012 tarihinde yayınlandı.

  • Birkaç çeviri iyileştirildi.

  • Bileşen oluştururken doğrulama iyileştirildi.

  • Bileşenler arasında paylaşılan Git depoları desteği eklendi.

  • Uzak depoyu çekmek için her girişimin işlenmesinin gerekmemesi sağlandı.

  • Dizin oluşturma yükünü aktarma desteği eklendi.

Weblate 1.0#

10 Mayıs 2012 tarihinde yayınlandı.

  • Bileşen eklenirken ve kaydedilirken doğrulama iyileştirildi.

  • Android bileşen dosyaları için deneysel destek eklendi (yamanmış ttkit gerekir).

  • Kancalardan gelen güncellemelerin arka planda yapılması sağlandı.

  • Yükleme yönergeleri iyileştirildi.

  • Sözlükte gezinme iyileştirildi.

Weblate 0.x serisi#

Weblate 0.9#

18 Nisan 2012 tarihinde yayınlandı.

  • Bilinmeyen diller içe aktarılırken yaşanan sorun düzeltildi.

  • Yakındaki iletilerin listelenmesi iyileştirildi.

  • Birkaç denetim iyileştirildi.

  • Belgeler güncellendi.

  • Birkaç dilin tanımları eklendi.

  • Çeşitli kod temizlemeleri yapıldı.

  • Belgelerde iyileştirmeler yapıldı.

  • Dosya düzeni değiştirildi.

  • Yardım betikleri Django 1.4 sürümüne güncellendi.

  • Çeviri sırasında gezinme iyileştirildi.

  • PO dosyası ad değişikliklerinin işlenmesi iyileştirildi.

  • Bileşen oluştururken doğrulama iyileştirildi.

  • syncdb ile bütünleşik tam kurulum sağlandı.

  • Tüm çeviri sayfalarına yapılan son değişikliklerin listesi eklendi.

  • Çevrilmemiş dizge denetiminin, yalnızca biçim dizgesi iletilerini yok sayması sağlandı.

Weblate 0.8#

3 Nisan 2012 tarihinde yayınlandı.

  • Tam metin araması Whoosh ile değiştirildi.

  • Denetimlerde çeşitli düzeltme ve iyileştirmeler yapıldı.

  • Yeni updatechecks komutu eklendi.

  • Çok sayıda çeviri güncellemesi yapıldı.

  • Sık kullanılan terimlerin kaydedilebilmesi için sözlük eklendi.

  • Depoların durumu özeti için /admin/report/ eklendi.

  • Makine çevirisi hizmetlerinin sayfa yüklemesini engellemesi önlendi.

  • Yönetim arayüzüne yararlı verileri güncelleme işlemleri eklendi.

  • Kullanıcılar tarafından yapılan değişikliklerin günlük kayıtlarının tutulması sağlandı.

  • Tek bir kullanıcıdan daha az işleme oluşturmak için Git işlemesini erteleme özelliği eklendi.

  • Başarısız olan denetimlere göz atma özelliği eklendi.

  • Önceden çevrilmiş dizgeleri kullanan kendiliğinden çeviri özelliği eklendi.

  • Kullanılan sürümleri görüntüleyen, yeni Hakkında sayfası eklendi.

  • Django 1.4 uyumluluğu sağlandı.

  • Değişiklikleri site arayüzünden uzak depoya itme özelliği eklendi.

  • Başkaları tarafından yapılmış çevirileri gözden geçirme özelliği eklendi.

Weblate 0.7#

16 Şubat 2012 tarihinde yayınlandı.

  • GitHub bildirimlerinin doğrudan desteklenmesi sağlandı.

  • Sahipsiz denetim ve çevirileri temizleme desteği eklendi.

  • Çeviri sırasında yakındaki dizgeleri görüntüleme özelliği eklendi.

  • Çeviri sırasında benzer dizgeleri görüntüleme özelliği eklendi.

  • Dizge araması iyileştirildi.

Weblate 0.6#

14 Şubat 2012 tarihinde yayınlandı.

  • Çevrilmiş iletiler için çeşitli denetimler eklendi.

  • Ayarlanabilir erişim denetimi özelliği eklendi.

  • Yeni satır karakterleri bulunan çevirilerin işlenmesi iyileştirildi.

  • Tabloların istemci tarafında sıralanması özelliği eklendi.

  • Yükseltme yapıyorsanız lütfen yükseltme yönergelerini inceleyin.

Weblate 0.5#

12 Şubat 2012 tarihinde yayınlandı.

  • Şu çevrimiçi hizmetleri kullanan makine çevirisi desteği eklendi:
    • Apertium

    • Microsoft Translator

    • MyMemory

  • Birkaç yeni çeviri.

  • Yukarı akış değişikliklerinin birleştirilmesi iyileştirildi.

  • Eşzamanlı Git çekme ve çevirilerinin işlenmesi iyileştirildi.

  • Belirsiz değişikliklerin de yayılması sağlandı.

  • Yüklenen dosyalardaki çevirilerin de yayılması sağlandı.

  • FastCGI (ve büyük olasılıkla diğerleri) kullanılırken dosya indirmelerinde yaşanan sorun düzeltildi.

Weblate 0.4#

8 Şubat 2012 tarihinde yayınlandı.

  • Belgelere kullanım rehberi eklendi.

  • API kancaları CSRF koruması gerektirmeyecek biçimde düzeltildi.

Weblate 0.3#

8 Şubat 2012 tarihinde yayınlandı.

  • Çoğul çevirilerde kaynağın daha iyi görüntülenmesi sağlandı.

  • Sphinxs biçiminde yeni belgeler hazırlandı.

  • Çeviri yapılırken ikincil dillerin görüntülenmesi sağlandı.

  • Hata sayfası var olan projelerin listesini verecek biçimde geliştirildi.

  • Her dil için istatistikler eklendi.

Weblate 0.2#

7 Şubat 2012 tarihinde yayınlandı.

  • Çeşitli formların doğrulaması iyileştirildi.

  • Profili yükseltildiğinde kullanıcıların uyarılması sağlandı.

  • Oturum açma adresinin anımsanması sağlandı.

  • Çoğul biçimler yazılırken metin aralarının adlandırılması sağlandı.

  • Çeviri alanının kendiliğinden genişletilmesi sağlandı.

Weblate 0.1#

6 Şubat 2012 tarihinde yayınlandı.

  • İlk sürüm.

Dizinler ve tablolar#