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 İşlemler ↓ Eklentiler menüsünden eklentiler ekleyip yönetebilir. Eklentiler Yönetim arayüzü bölümünden de site genelinde kurulabilir.
İpucu
Eklentileri API, DEFAULT_ADDONS ya da install_addon kullanarak da yapılandırabilirsiniz.
Eklentileri tetikleyen olaylar¶
Eklenti kurulumu¶
Eklenti kurulurken tetiklenir.
Bileşen güncellemesi¶
Bir bileşende aşağıdaki gibi bir değişiklik olduğunda tetiklenir:
Depodaki dizgeler değiştirildiğinde.
Bir dizge eklendiğinde.
Yeni bir çeviri eklendi.
Günlük¶
Günlük olarak tetiklenir, ancak eklentiler genellikle BACKGROUND_TASKS seçeneğine bağlı olarak günlük yükü bileşenler arasında paylaştırır.
Değişiklik etkinliği¶
Bir değişiklik etkinliğinin kaydedilmesinden sonra tetiklenir.
Depo ekleme sonrası¶
Yeni çeviri eklendikten ve işlendikten hemen sonra tetiklenir.
Depo işleme sonrası¶
Değişiklikler işlendikten hemen sonra tetiklenir.
Depo itme sonrası¶
Depo yukarı akışa itildikten hemen sonra tetiklenir.
Depo güncelleme sonrası¶
Yukarı akış deposundan yeni değişiklikler her çekildiğinde tetiklenir.
Depo işleme öncesi¶
Değişiklikler işlenmeden hemen önce tetiklenir.
Depo itme öncesi¶
Depo yukarı akışa itilmeden hemen önce tetiklenir.
Depo güncelleme öncesi¶
Deponun güncellenmesi denenmeden hemen önce tetiklenir.
Birim kaydetme sonrası¶
Dizgenin kaydedilmesinden hemen sonra tetiklenir.
Birim eşitleme sonrası¶
Dizgenin sürüm denetimi sistemi ile eşitlenmesinden sonra tetiklenir.
Birim oluşturma öncesi¶
Yeni oluşturulan dizge kaydedildikten hemen sonra tetiklenir.
Hazır eklentiler¶
Kendiliğinden çeviri¶
- Eklenti kimliği:
weblate.autotranslate.autotranslate- Yapılandırma:
modeKendiliğinden çeviri kipi
Kullanılabilecek seçenekler:¶ suggestÖneri olarak ekle
translateÇeviri olarak ekle
fuzzy“Düzenlenmesi gerekli” olarak ekle
qSorgu
Lütfen tüm dizgeleri çevirdiğinizde var olan tüm çevirileri yok sayılacağını unutmayın.
auto_sourceKendiliğinden yapılmış çevirilerin kaynağı
Kullanılabilecek seçenekler:¶ othersDiğer çeviri bileşenleri
mtMakine çevirisi
componentBileş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.
enginesMakine çevirisi hizmetleri
thresholdSkor eşiği
- Tetikleyiciler:
Eklenti kurulumu, Bileşen güncellemesi, Günlük, Değişiklik etkinliği
Makine çevirisini ya da diğer bileşenleri kullanarak dizgeleri kendiliğinden çevirir.
JavaScript yerelleştirme CDN¶
Added in version 4.2.
- Eklenti kimliği:
weblate.cdn.cdnjs- Yapılandırma:
thresholdÇeviri eşiği
Çevirinin katılması için ulaşılması gereken çevrilmiş dizge yüzdesi.
css_selectorCSS seçici
Yerelleştirilebilir ögeleri algılamak için CSS seçici.
cookie_nameDil tanımlama bilgisinin adı
Dil seçiminin kaydedildiği tanımlama bilgisinin adı.
filesDizgeleri HTML dosyalarından ayıklama
Geçerli depoda ya da uzak adreslerde çevrilebilir dizgeler için işlenecek dosya adlarının listesi.
- Tetikleyiciler:
Eklenti kurulumu, Günlük, Depo işleme sonrası, Depo güncelleme sonrası
JavaScript ya da HTML yerelleştirmesinde kullanılmak üzere içerik dağıtım ağına çevirileri yayınlar.
Durağan 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. Ayrıntılı bilgi almak için: Weblate içerik aktarım ağını kullanarak HTML ve JavaScript çevirmek.
Not
Bu eklenti için, Weblate sunucusunda ek yapılandırma gerekir. LOCALIZE_CDN_PATH, oluşturulan dosyaların nereye yazılacağını (bir dosya sisteminde) ayarlar ve LOCALIZE_CDN_URL, bunların nereden sunulacağını (adres) belirler. Dosyalar Weblate tarafından sunulmaz ve dışarıdan ayarlanması gerekir (genellikle bir CDN içerik dağıtımı ağı hizmeti kullanılarak).
Bu eklenti Hosted Weblate üzerinde yapılandırılmıştır ve dosyaları https://weblate-cdn.com/ adresinden sunar.
Boş dizgeleri silme¶
Added in version 4.4.
- Eklenti kimliği:
weblate.cleanup.blank- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Eklenti kurulumu, Depo işleme sonrası, Depo güncelleme sonrası
Ç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:
Eklenti kurulumu, Depo güncelleme sonrası, Depo işleme öncesi
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.
Çeviri dizgelerinin yanı sıra ek içerik barındıran biçimler için (HTML dosyaları, Windows RC dosyaları veya OpenDocument biçimi gibi) bu işlem çeviri dosyasını temel dosyayla eşitler.
Eksik dilleri ekleme¶
- Eklenti kimliği:
weblate.consistency.languages- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Proje içindeki tüm bileşenler için tutarlı bir dil kümesinin kullanılmasını sağlar.
Not
Diğer projelerden paylaşılan bileşenler bu kapsamda değerlendirilmemiştir.
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_formatDosya biçimi
name_templateBileşen adını özelleştirme
base_file_templateTek dil temel dosya adını tanımlama
İki dilli çeviri dosyaları için boş bırakın.
new_base_templateYeni ç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_templateAra 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_regexDil süzgeci
Dosya maskesi taranırken çeviri dosyalarını süzmek için kullanılan kurallı ifade.
copy_addonsAna bileşendeki eklentileri yeni oluşturulanlara kopyalama
removeVar olmayan dosyalar için bileşenleri kaldırma
confirmYukarıdaki eşleşmelerin doğru göründüğünü onaylıyorum
- Tetikleyiciler:
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:
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.pocs/website.pode/application.pode/website.po
Gettext yerelleri yerleşimi¶
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.polocale/cs/LC_MESSAGES/website.polocale/de/LC_MESSAGES/application.polocale/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.posrc/locale/website.cs.posrc/locale/application.de.posrc/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.polocale/cs/website/cs.polocale/de/application/de.polocale/de/website/de.po
Android dizgeleri ayrılsın¶
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.xmlres/values-cs/strings-help.xmlres/values-de/strings-about.xmlres/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.propertiesparent/module1/submodule/src/main/resources/ApplicationResource_es.propertiesparent/module2/src/main/resources/ApplicationResource_de.propertiesparent/module2/src/main/resources/ApplicationResource_ro.properties
Excluding certain matches¶
Negative lookahead can be used to exclude certain patterns from being processed.
- Kurallı ifade:
res/values-(?P<language>[^/.]*)/strings-(?P<component>(?!(about|info)[^/]*)\.xml- Eşleşen dosyalar:
res/values-cs/strings-help.xmlres/values-de/strings-help.xml
- Not matching files:
res/values-cs/strings-about.xmlres/values-de/strings-about.xmlres/values-cs/strings-info-1.xmlres/values-de/strings-info-1.xmlres/values-cs/strings-info-2.xmlres/values-de/strings-info-2.xml
İ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 (İşlemler ↓ Ayarlar ↓ Sü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.
İpucu
Yeni bileşende Eksik dilleri ekleme ile çevrilebilecek dillerin tam kümesinin bulunduğundan emin olun.
Uyarı
Yeni bir bileşenin keşfedilebilmesi için base_file_template ile eşleşen bir dosya ve match ile eşleşen bir adı olan en az bir dosya içermesi gerekir. Yani, bileşende bir temel dil dosyası ve en az bir var olan çeviri bulunmalıdır. Böyle değilse yok sayılır.
Ayrıca bakınız
Fedora Messaging¶
Added in version 5.15.
- Eklenti kimliği:
weblate.fedora_messaging.publish- Yapılandırma:
eventsDeğişiklik etkinlikleri
amqp_hostAMQP aracı ana makinesi
Bağlanılacak AMQP aracısı.
amqp_sslAMQP bağlantısı için SSL kullan
ca_certCA sertifikaları
Sunucuca sunulan sertifikayı doğrulamada kullanılacak PEM kodlu CA sertifikaları takımı.
client_keyİstemci SSL anahtarı
PEM kodlu istemci özel SSL anahtarı.
client_certİstemci SSL sertifikaları
PEM kodlu istemci SSL sertifikası.
- Tetikleyiciler:
Fedora Messaging uyumlu AMQP takasına bildirim gönderir.
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.
Message topic¶
All messages have topic
weblate.<action>.<project>.<component>.<translation>. The action is
lowercase textual representation of action with underscores instead of space,
for example resource_update, all other parts are optional and represent
slug of the object or a language code.
Message body¶
The body consists of following fields (given that they are available for the event):
change_idDeğişikliğin sayısal kimliği
actionVerbose name of the change.
timestampISO biçiminde zaman damgası
targetDeğişikliğin yeni değeri (örneğin dizgenin yeni çevirisi)
oldDeğişikliğin eski değeri (örneğin dizgenin önceki çevirisi)
sourceSource string.
urlAbsolute URL to view the related object.
authorYazar kullanıcı adı (örneğin önerileri kabul ederken kullanıcıdan farklı olabilir)
userActing username
projectProje kısaltması
componentBileşen kısaltması
translationÇeviri dili kodu
Message headers¶
There are additional headers which you might utilize for routing as well:
actionVerbose name of the change.
projectProje kısaltması
componentBileşen kısaltması
Example messages¶
Repository merge event:
{
"id": 1,
"action": "Merged repository",
"timestamp": "2017-06-15T11:30:47.325000+00:00",
"url": "http://example.com/projects/test/test/",
"component": "test"
}
New source string event:
{
"id": 2,
"action": "New source string",
"timestamp": "2017-06-15T11:30:47.372000+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Resource update event:
{
"id": 6,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.410000+00:00",
"url": "http://example.com/projects/test/test/cs/",
"project": "test",
"component": "test",
"translation": "cs"
}
{
"id": 7,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.510000+00:00",
"url": "http://example.com/projects/test/test/de/",
"project": "test",
"component": "test",
"translation": "de"
}
{
"id": 8,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.595000+00:00",
"url": "http://example.com/projects/test/test/it/",
"project": "test",
"component": "test",
"translation": "it"
}
Project removal event:
{
"id": 9,
"action": "Removed project",
"timestamp": "2019-10-17T15:57:08.559420+00:00",
"target": "test",
"user": "testuser"
}
New contributor event:
{
"id": 11,
"action": "New contributor",
"timestamp": "2019-10-17T15:57:08.759960+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
New translation event:
{
"id": 12,
"action": "New translation",
"timestamp": "2019-10-17T15:57:08.772591+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"target": ["Ahoj svete!\n"],
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Ayrıca bakınız
Toplu düzenleme¶
- Eklenti kimliği:
weblate.flags.bulk- Yapılandırma:
qSorgu
stateAyarlanacak durum
Kullanılabilecek seçenekler:¶ -1Değiştirilmesin
10Düzenlenmesi gerekli
11Düzenlenmesi gerekli (Yeniden yazılması gerekli)
12Düzenlenmesi gerekli (Denetlenmesi gerekli)
20Çevrilmiş
30Onaylanmış
add_flagsEklenecek çeviri imleri
remove_flagsKaldırılacak çeviri imleri
add_labelsEklenecek etiketler
remove_labelsKaldırılacak etiketler
- Tetikleyiciler:
Dizgelerin imlerini, etiketlerini veya durumlarını toplu düzenleyin.
Örnekler:
Arama sorgusu |
|
|---|---|
Eklenecek etiketler |
son |
Arama sorgusu |
|
|---|---|
Eklenecek çeviri imleri |
|
Arama sorgusu |
|
|---|---|
Eklenecek çeviri imleri |
|
Değiştirilmemiş çevirileri “Yeniden yazılması gerekli” olarak imle¶
- Eklenti kimliği:
weblate.flags.same_edit- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Sürüm denetimi sisteminden yeni bir çevrilebilir dizge içe aktarıldığında ve bir kaynak dizgeyle eşleştiğinde, Weblate üzerinde yeniden yazılması 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ş kalite denetimini sıkılaştırmak isteyebilirsiniz.
Ayrıca bakınız
Yeni kaynak dizgeleri “Denetlenmesi gerekli” olarak imle¶
- Eklenti kimliği:
weblate.flags.source_edit- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Sürüm denetimi sisteminden yeni bir kaynak dizge içe her aktarıldığında, Weblate üzerinde denetlenmesi gerekli olarak imlenir. Böylece geliştiriciler tarafından yazılan kaynak dizgeleri kolayca süzebilir ve düzenleyebilirsiniz.
Ayrıca bakınız
Yeni çevirileri “Yeniden yazılması gerekli” olarak imleme¶
- Eklenti kimliği:
weblate.flags.target_edit- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Sürüm denetimi sisteminden yeni bir çevrilebilir dizge içeri her aktarıldığında, Weblate üzerinde yeniden yazılması gerekli olarak imlenir. Böylece geliştiricilerin oluşturduğu çevirileri kolayca süzebilir ve düzenleyebilirsiniz.
Ayrıca bakınız
Depodan güncellenmiş çevirileri “Yeniden yazılması gerekli” olarak imle¶
- Eklenti kimliği:
weblate.flags.target_repo_update- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Sürüm denetimi sisteminden bir dizge çevirisi değiştirildiğinde, Weblate üzerinde yeniden yazılması gerekli olarak imlenir. Özellikle çeviri dosyaları sık sık el ile veya bir dış hizmet tarafından güncelleniyorsa kullanışlıdır.
Ayrıca bakınız
Salt okunur dizgeleri kaynak ile doldurma¶
Added in version 4.18.
- Eklenti kimliği:
weblate.generate.fill_read_only- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Salt okunur dizgelerin çevirilerini kaynak dizgeler ile doldurur.
İstatistik oluşturma¶
- Eklenti kimliği:
weblate.generate.generate- Yapılandırma:
filenameOluşturulacak dosyanın adı
templateOluşturulacak dosyanın içeriği
- Tetikleyiciler:
Ç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 ayrıntılı 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
Çeviriyi kaynak dizgeyle önceden doldurma¶
Added in version 4.11.
- Eklenti kimliği:
weblate.generate.prefill- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Ç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¶
Added in version 4.5.
- Eklenti kimliği:
weblate.generate.pseudolocale- Yapılandırma:
sourceKaynak dizgeler
targetHedef çeviri
Bu çevirideki tüm dizgelerin üzerine yazılacak
prefixBaşa eklenmiş sabit yazı
var_prefixBaşa eklenmiş değişken yazı
suffixSona eklenmiş sabit yazı
var_suffixSona eklenmiş değişken yazı
var_multiplierDeğişken yazı çarpanı
Kaynak dizgenin uzunluğuna bağlı olarak değişken yazının kaç kez yineleneceği.
include_readonlySalt okunur dizgeleri katma
- Tetikleyiciler:
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ı yerleşime 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. İçerik kaynak dizge uzunluğuna göre genişletilir. Değişken yazılar, içeriğin uzunluğunun çarpanla çarpılmasıyla yinelenir. Örneğin, Merhaba dünya ve _ değişken yazısı ile değişken çarpanı 1 olduğunda Merhaba dünya___________ olur. Yazı kaynak dizgedeki her karakter için bir kez yinelenir.
Dizgeler şu model kullanılarak oluşturulacak:
Başa eklenmiş sabit yazı Başa eklenmiş değişken yazı Kaynak dizge Sona eklenmiş değişken yazı Sona eklenmiş sabit yazı
İ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:
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:
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¶
Removed in version 5.13: Dosya biçimi parametreleri ile değiştirildi.
LINGUAS dosyasını güncelleme¶
- Eklenti kimliği:
weblate.gettext.linguas- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
Yeni bir çeviri eklendiğinde LINGUAS dosyası güncellenir.
MO dosyaları üretme¶
- Eklenti kimliği:
weblate.gettext.mo- Yapılandırma:
pathOluşturulan MO dosyasının yolu
Belirtilmemişse, PO dosyasının konumu kullanılır.
fuzzyDüzenlenmesi gereken dizgeler katılsın
Düzenlenmesi gereken (belirsiz) dizgeler genellikle çeviri olarak kullanılmaya hazır değildir.
- Tetikleyiciler:
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)¶
5.13 sürümünde değişti: Ayarlar yapılandırması Dosya biçimi parametreleri konumuna taşındı.
- Eklenti kimliği:
weblate.gettext.msgmerge- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
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.
Bu eklenti, POT (kalıb) dosyasının yeni dizgelerle ya da var olan dizgelerdeki değişikliklerle güncellendiği gettext PO dosyalarıyla çalışırken çok önemlidir. POT dosyası depoda güncellendiğinde, bu eklenti bu değişiklikleri otomatik olarak tüm dil PO dosyalarıyla birleştirerek şunları sağlar:
Yeni çevrilebilir dizgeler tüm dillerde görüntülenir
Kaldırılmış dizgeler kullanılmıyor olarak işaretlenir
Değiştirilmiş dizgeler gözden geçirilmesi gerekli olarak işaretlenir (bulanık)
Çoğu msgmerge komut satırı seçeneği dosya biçimi parametreleri yapılandırması ile ayarlanabilir.
Git işlemelerini bir araya toplar¶
- Eklenti kimliği:
weblate.git.squash- Yapılandırma:
squashİşlemeleri bir araya toplama
Kullanılabilecek seçenekler:¶ allTüm işlemeler bir arada
languageDile göre
fileDosyaya göre
authorKatkıda bulunana göre
append_trailersBir 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:
Değişiklikleri yollamadan önce Git işlemelerini bir araya toplar.
İpucu
Gereksiz çakışmaları önlemek için, yukarı akış değişikliklerinin internet kancaları veya API ile kendiliğinden alınacak şekilde yapılandırmanız önerilir. Ayrıntılı bilgi almak için: Depoları güncellemek.
Git işlemeleri, değişiklikler itilmeden ö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¶
5.12 sürümünde değişti: Ayraçlardan sonra boşluk bırakılmasın seçeneği eklendi.
Removed in version 5.13: Dosya biçimi parametreleri ile değiştirildi.
Java özellikleri dosyasını biçimlendirme¶
- Eklenti kimliği:
weblate.properties.sort- Yapılandırma:
case_sensitiveBüyük/küçük harfe duyarlı anahtar sıralaması kullanılsın
- Tetikleyiciler:
Java özellikleri dosyasını biçimlendirir ve sıralar.
Yeni satır karakterlerini Unix karakterleri olarak değiştirir.
Unicode kaçınma 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¶
- Eklenti kimliği:
weblate.removal.comments- Yapılandırma:
ageTutulacak gün sayısı
- Tetikleyiciler:
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¶
- Eklenti kimliği:
weblate.removal.suggestions- Yapılandırma:
ageTutulacak gün sayısı
votesOy verme eşiği
Kaldırma eşiği. Oylama kapalıyken bu alanın herhangi bir etkisi yoktur.
- Tetikleyiciler:
Ö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 (ayrıntılı bilgi almak için: Akran değerlendirmesi) bağlantılı olarak çok yararlı olabilir.
RESX dosyalarını güncelleme¶
- Eklenti kimliği:
weblate.resx.update- Yapılandırma:
Bu eklentinin yapılandırması yok.
- Tetikleyiciler:
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.
Slack internet kancaları¶
Added in version 5.12.
- Eklenti kimliği:
weblate.webhook.slack- Yapılandırma:
webhook_urlİnternet kancası adresi
eventsDeğişiklik etkinlikleri
- Tetikleyiciler:
Seçilmiş etkinliklere göre bir Slack kanalına bildirim gönderir.
Uyarı
Bildirim içeriğinde HTML kod imleri görüntülenebilir. Bu durum, bilinen ve yakında ele alınacak olan bir sorundur. Ayrıntılı bilgi almak için: https://github.com/WeblateOrg/weblate/issues/15056.
İpucu
Bir internet kancası adresi edinmek için, Slack gelen internet kancaları belgesi içinde anlatılan adımları izleyin
İnternet kancası¶
Added in version 5.11.
5.15 sürümünde değişti: Compliance of the secret length with the specification is now validated.
- Eklenti kimliği:
weblate.webhook.webhook- Yapılandırma:
webhook_urlİnternet kancası adresi
secretİnternet kancası gizi
Standart İnternet Kancası gizi base64 kodlu dizgedir.
eventsDeğişiklik etkinlikleri
- Tetikleyiciler:
Standart Webhooks teknik özelliklerine uygun olarak, seçilmiş etkinliklere göre dış hizmetlere bildirim gönderir.
İstek yükü Weblate Messaging şeması ile uyumludur. OpenAPI açıklaması /api/docs/ adresinde de bulunabilir. Örnek istek gövdesi:
{
"change_id": 99,
"action": "Translation changed",
"timestamp": "2019-08-24T14:15:22Z",
"target": "Nazdar svete!",
"old": "Nazdar!",
"source": "Hello, world",
"url": "/translate/project-slug/component-slug/cs/?checksum=46add148a53cab6f",
"author": "author-username",
"user": "user-username",
"project": "project-slug",
"component": "component-slug",
"translation": "cs"
}
Kategoriler ile örnek istek gövdesi:
{
"change_id": 8910,
"action": "Component renamed",
"timestamp": "2025-06-11T07:15:09Z",
"target": ["new-name"],
"old": ["component-slug"],
"url": "/projects/project-slug/parent-category/child-category/sub-category/component-slug/",
"user": "testuser",
"project": "project-slug",
"component": "component-slug",
"category": [
"sub-category",
"child-category",
"parent-category"
]
}
Örnek istek üst bilgileri:
{
"webhook-id": "7f1c5477f6275a69af7b83236c20cb1a",
"webhook-timestamp": "1748505623.044281",
"webhook-signature": "v1,Ceo5qEr07ixe2NLpvHk3FH9bwy/WavXrAFQ/9tdO6mc="
}
Webhook-signature, secret dizgesi, istek yükü, webhook-timestamp ve webhook-id kullanılarak oluşturulan HMAC imzalarının boşluklarla ayrılmış bir listesidir. Bu imza internet kancası isteğinin gerçekliğini ve bütünlüğünü doğrular.
The provided secret is a base64 encoded string between 24 bytes (192 bits)
and 64 bytes (512 bits). It can be prefixed with whsec_ for easy
identification.
Bir isteği doğrulamak için standardwebhooks kitaplığındaki Webhook.verify yöntemini veya “Standart Webhooks teknik özelliklerinin” bir uygulamasını kullanabilirsiniz.
XML çıktısını özelleştirme¶
Added in version 4.15.
Removed in version 5.13: Dosya biçimi parametreleri ile değiştirildi.
YAML çıktısını özelleştirme¶
Removed in version 5.13: Dosya biçimi parametreleri ile değiştirildi.
Common add-on parameters¶
Makine çevirisi hizmetleri¶
|
Amazon Translate |
|
DeepL |
|
Google Cloud Translation Advanced |
|
Google Cloud Translation Basic |
|
Azure AI Translator |
|
ModernMT |
|
OpenAI |
|
Weblate |
|
Weblate çeviri belleği |
Değişiklik etkinlikleri¶
|
Kaynak güncellendi |
|
Çeviri tamamlandı |
|
Çeviri değiştirildi |
|
Yorum eklendi |
|
Öneri eklendi |
|
Çeviri eklendi |
|
Kendiliğinden çevrildi |
|
Öneri kabul edildi |
|
Çeviri geri alındı |
|
Çeviri yüklendi |
|
Kaynak dizge eklendi |
|
Bileşen kilitlendi |
|
Bileşenin kilidi açıldı |
|
Değişiklikler işlendi |
|
Değişiklikler itildi |
|
Depo sıfırlandı |
|
Depo birleştirildi |
|
Depo yeniden yerleştirildi |
|
Depo birleştirilemedi |
|
Depo yeniden yerleştirilemedi |
|
İşlenemedi |
|
Çeviri silindi |
|
Öneri silindi |
|
Çeviri değiştirildi |
|
Depo itilemedi |
|
Öneri temizleme sırasında silindi |
|
Kaynak dizge değiştirildi |
|
Dizge eklendi |
|
Durum toplu olarak değiştirildi |
|
Görünürlük değiştirildi |
|
Kullanıcı eklendi |
|
Kullanıcı silindi |
|
Çeviri onaylandı |
|
Düzenlenmek üzere imlendi |
|
Bileşen silindi |
|
Proje silindi |
|
Proje yeniden adlandırıldı |
|
Bileşen yeniden adlandırıldı |
|
Bileşen taşındı |
|
Katkıda bulunan katıldı |
|
Duyuru gönderildi |
|
Uyarı tetiklendi |
|
Dil eklendi |
|
Dil istendi |
|
Proje oluşturuldu |
|
Bileşen oluşturuldu |
|
Kullanıcı çağrıldı |
|
Depo bildirimi alındı |
|
Çeviri dosya yüklemesi ile değiştirildi |
|
Lisans değiştirildi |
|
Katılımcı lisans anlaşması değiştirildi |
|
Ekran görüntüsü eklendi |
|
Ekran görüntüsü yüklendi |
|
Depodaki dizge değiştirildi |
|
Eklenti kuruldu |
|
Eklenti yapılandırması değiştirildi |
|
Eklenti kaldırıldı |
|
Dizge kaldırıldı |
|
Yorum silindi |
|
Yorum çözümlendi |
|
Açıklama güncellendi |
|
Kategori silindi |
|
Kategori yeniden adlandırıldı |
|
Kategori taşındı |
|
Dizge kaydedilemedi |
|
Depoya dizge eklendi |
|
Yüklemedeki dizge güncellendi |
|
Yüklemeye dizge eklendi |
|
Çeviri kaynak yüklemesi ile değiştirildi |
|
Bileşen çevirisi tamamlandı |
|
Zorunlu denetim uygulandı |
|
Değişiklik yayıldı |
|
Dosya yüklendi |
|
Ek imler güncellendi |
|
Yazı tipi yüklendi |
|
Yazı tipi değiştirildi |
|
Yazı tipi silindi |
|
Çevirilerin eşitlenmesi dayatıldı |
|
Çevirilerin yeniden taranması dayatıldı |
|
Ekran görüntüsü kaldırıldı |
|
Etiket eklendi |
|
Etiket kaldırıldı |
|
Depo temizliği |
Dosya biçimi¶
|
Uygulama mağazası üst veri dosyaları |
|
ARB dosyası |
|
Android Dizgi Kaynağı |
|
Advanced SubStation Alpha alt yazı dosyası |
|
Haiku catkeys |
|
Çok platformlu kaynak oluştur |
|
CSV dosyası |
|
Çok değerli CSV dosyası (UTF-8) |
|
Basit CSV dosyası |
|
Basit CSV dosyası (ISO-8859-1) |
|
Basit CSV dosyası (UTF-8) |
|
CSV dosyası (UTF-8) |
|
DokuWiki metin dosyası |
|
DTD dosyası |
|
Düz XML dosyası |
|
Fluent dosyası |
|
Format.JS JSON dosyası |
|
go-i18n v1 JSON dosyası |
|
go-i18n v2 JSON dosyası |
|
go-i18n TOML dosyası |
|
gotext JSON dosyası |
|
GWT özellikleri (UTF-8) |
|
GWT özellikleri (ISO 8859-1) |
|
HTML dosyası |
|
i18next JSON dosyası v3 |
|
i18next JSON dosyası v4 |
|
IDML dosyası |
|
INI dosyası |
|
Inno Setup INI dosyası |
|
Joomla! dil dosyası |
|
JSON dosyası |
|
JSON iç içe yapı dosyası |
|
Laravel PHP dizgeleri |
|
Markdown dosyası |
|
MediaWiki metin dosyası |
|
@draggable/i18n dil dosyası |
|
Mobil Kotlin kaynağı |
|
Nextcloud JSON dosyası |
|
OpenDocument dosyası |
|
PHP dizgeleri |
|
XLIFF 1.2 çeviri dosyası |
|
Gettext PO dosyası |
|
Gettext PO dosyası (tek dilli) |
|
Gettext eklentileriyle XLIFF 1.2 |
|
Java özellikleri (ISO 8859-1) |
|
Java özellikleri (UTF-16) |
|
Java özellikleri (UTF-8) |
|
RC dosyası |
|
RESJSON dosyası |
|
ResourceDictionary dosyası |
|
.NET kaynak dosyası |
|
Ruby YAML dosyası |
|
SubRip alt yazı dosyası |
|
Substation Alpha alt yazı dosyası |
|
iOS dizgeleri (UTF-16) |
|
iOS dizgeleri (UTF-8) |
|
Stringsdict dosyası |
|
MicroDVD alt yazı dosyası |
|
TermBase eXchange dosyası |
|
TOML dosyası |
|
Qt Linguist çeviri dosyası |
|
Düz metin dosyası |
|
WebExtension JSON dosyası |
|
Yerleştirilebilir desteği olan XLIFF 1.2 |
|
XLIFF 2.0 çeviri dosyası |
|
Yerleştirilebilir desteği olan XLIFF 2.0 çeviri dosyası |
|
Excel Open XML |
|
XWiki Full Page |
|
XWiki Java Properties |
|
XWiki Page Properties |
|
YAML dosyası |
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
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 __future__ import annotations
from typing import ClassVar
from django.utils.translation import gettext_lazy
from weblate.addons.events import AddonEvent
from weblate.addons.scripts import BaseScriptAddon
class ExamplePreAddon(BaseScriptAddon):
# Event used to trigger the script
events: ClassVar[set[AddonEvent]] = {
AddonEvent.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 ayrıntılı bilgi almak için: Özel kalite denetimleri, eklentiler, kendiliğinden öneriler 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¶
Adresi oluşturmak için kullanılan bileşen kısaltması.
- WL_PROJECT_SLUG¶
Adresi oluşturmak için kullanılan proje kısaltması.
- WL_COMPONENT_NAME¶
Bileşen adı.
- WL_PROJECT_NAME¶
Proje adı.
- WL_COMPONENT_URL¶
Bileşen adresi.
- WL_ENGAGE_URL¶
Proje etkileşim sayfası adresi.
Ayrıca bakınız
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.
Eklenti işlemleri günlüklerinin kaydedilmesi¶
Eklenti işlem günlüğü, eklentinin çalışmasını izler ve eklenti işlemlerini izlemek için kullanılabilir.
ADDON_ACTIVITY_LOG_EXPIRY seçeneği yapılandırılarak belirli bir zamandan önceki günlük kayıtları kaldırılabilir.