Denetimler ve düzeltmeler¶
Özel kendiliğinden düzeltmeler¶
Standart olanların yanında özel kendiliğinden düzeltmeleri de uygulayabilir ve bunları 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:
from weblate.trans.autofixes.base import AutoFix
class ReplaceFooWithBar(AutoFix):
"""Replace foo with bar."""
# Might be localized using gettext_lazy
name = "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. Ayrıntılı bilgi almak için: Özel kalite denetimleri, eklentiler, kendiliğinden öneriler ve kendiliğinden düzeltmeler.
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. Yer imleri şu kaynaklardan aktarılabilir:
Kaynak dizge ek imleri:
Kaynak dizgeler ile ilgili ek bilgiler manuel düzenlemeyi tanımlar.
Toplu düzenleme imleri toplu olarak uygulamak için kullanılabilir.
Toplu düzenleme eklentisi imleri otomatik olarak uygulayabilir.
Dosya biçiminden ayıklanan her dizgenin yer imleri. Ayrıntılı bilgi almak için: Yerelleştirme dosyası biçimleri.
Çeviri imleri (şu anda yalnızca iki dilli kaynak dizge için ya da tek dilli kalıp düzenlemesi kapatılmışken
salt okunuryer imi).Dosya biçimine özel yer 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çınılır:
placeholders:"quoted \"string\"":'single \'quoted\''
placeholders:r"^#*"
Çevirmenlerin bir Markdown belgesinin başlığını değiştirmediğini doğrular: ### Index dizgesi # Indice olarak çevrilirse denetim başarısız olur.
placeholders:r"\]\([^h].*?\)"
İç bağlantıların çevrilmediğinden emin olur (örneğin [test](../checks), [test](../denetimler) olarak çevrilmez.
Daha yüksek bir düzeyde tanımlanan imler discard:NAME sözdizimi kullanılarak atılabilir. Örneğin, bir bileşen safe-html olarak yapılandırılmışsa, bu belirli dizge için atlanması için dizge imlerine discard:safe-html ekleyebilirsiniz.
Kullanılabilecek imlerin listesi şu şekildedir:
read-onlyDizgenin salt okunur olduğunu ve Weblate üzerinde düzenlenemeyeceğini belirler. Ayrıntılı bilgi almak için: Salt okunur dizgeler.
terminologySö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-onlyile birlikte kullanışlıdır.priority:NDizgenin ö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:NBir dizgenin en fazla uzunluğunu N karakter olarak sınırlandırır. Ayrıntılı bilgi almak için: Çevirinin en fazla uzunluğu.
xml-textMetnin XML belgesi olarak işlenmesini sağlar. XML söz dizimi ve XML kodlaması parametrelerini etkiler.
font-family:NAMEGörselleştirme denetimleri için yazı tipi ailesini belirler. Ayrıntılı bilgi almak için: Yazı tiplerini yönetmek.
font-weight:WEIGHTGörselleştirme denetimleri için yazı koyuluğunu belirler. Ayrıntılı bilgi almak için: Yazı tiplerini yönetmek.
font-size:SIZEGörselleştirme denetimleri için yazı boyutunu belirler. Ayrıntılı bilgi almak için: Yazı tiplerini yönetmek.
font-spacing:SPACINGGörselleştirme denetimleri için harf aralığını belirler. Ayrıntılı bilgi almak için: Yazı tiplerini yönetmek.
icu-flags:FLAGSICU MessageFormat kalite denetiminin davranışını özelleştirecek imleri belirler.
icu-tag-prefix:PREFIXICU MessageFormat kalite denetimi için XML kod imlerinin gerekli olan ön ekini belirler.
placeholders:NAME:NAME2:...Çeviride beklenen yer belirtici dizgeleri belirler. Ayrıntılı bilgi almak için: Yer belirticiler.
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:SOURCEBu dizgenin, eşleşen kaynağın bir dizge çeşidi olarak imlenmesini sağlar. Ayrıntılı bilgi almak için: Dizge çeşitleri.
regex:REGEXÇevirilerin eşleştirileceği kurallı ifadeyi belirtir. Ayrıntılı bilgi almak için: Kurallı ifade.
discard:NAMEDaha yüksek bir düzeyde tanımlanan imi yok sayar.
forbiddenBir sözlükte yasaklanmış bir çeviriyi belirtir. Ayrıntılı bilgi almak için: Yasaklı çeviriler.
strict-sameÇeviri değiştirilmemiş kalite denetiminin iç kara listedeki sözcükleri engellemesini sağlar.
strict-formatTek değerli çoğul biçimler için bile biçim denetimlerinde biçim kullanımının dayatılmasını sağlar. Ayrıntılı bilgi almak için: Biçimlendirilmiş dizgeler.
case-insensitiveDenetim davranışını büyük/küçük harfe duyarlı olmayacak şekilde ayarlar. Şu anda yalnızca Yer belirticiler kalite denetimini etkiler.
bbcode-textBir yazının Bulletin Board Code (BBCode) belgesi olarak işlenmesini sağlar. Çeviri değiştirilmemiş denetimini etkiler. BBCode kodlaması kalite denetimini kullanıma alır.
check-glossarySözlük ile uyumlu değil kalite denetimini kullanıma alır.
fluent-partsFluent bölümleri kalite denetimini kullanıma alır.
fluent-referencesFluent başvuruları kalite denetimini kullanıma alır.
fluent-target-inner-htmlFluent çevirisinin iç HTML kodu kalite denetimini kullanıma alır.
fluent-target-syntaxFluent çevirisi söz dizimi kalite denetimini kullanıma alır..
angularjs-formatAngularJS araya ekleme dizgesi kalite denetimini kullanıma alır.
automattic-components-formatAutomattic bileşenleri biçimlendirmesi kalite denetimini kullanıma alır.
c-formatC biçimi kalite denetimini kullanıma alır.
c-sharp-formatC# biçimi kalite denetimini kullanıma alır.
csharp-formatC# biçimi kalite denetimini kullanıma alır.
es-formatECMAScript kalıbı sabitleri kalite denetimini kullanıma alır.
i18next-interpolationi18next araya ekleme kalite denetimini kullanıma alır.
icu-message-formatICU MessageFormat ve ICU MessageFormat söz dizimi kalite denetimlerini kullanıma alır.
java-printf-formatJava biçimi kalite denetimini kullanıma alır.
java-formatJava MessageFormat kalite denetimini kullanıma alır.
auto-java-messageformatBir yazıyı koşullu Java MessageFormat olarak işler. Yalnızca kaynakta Java MessageFormat yer belirticileri bulunduğunda Java MessageFormat kalite denetimini kullanıma alın. Java MessageFormat kalite denetimini kullanıma alır.
javascript-formatJavaScript biçimi kalite denetimini kullanıma alır.
laravel-formatLaravel biçimi kalite denetimini kullanıma alır.
lua-formatLua biçimi kalite denetimini kullanıma alır.
object-pascal-formatObject Pascal biçimi kalite denetimini kullanıma alır.
objc-formatObjective-C biçimi kalite denetimini kullanıma alır.
percent-placeholdersYüzde yer belirticileri kalite denetimini kullanıma alır.
perl-brace-formatPerl süslü parantez biçimi kalite denetimini kullanıma alır.
perl-formatPerl biçimi kalite denetimini kullanıma alır.
php-formatPHP biçimi kalite denetimini kullanıma alır.
python-brace-formatPython süslü parantez biçimi kalite denetimini kullanıma alır.
python-formatPython biçimi kalite denetimini kullanıma alır.
qt-formatQt biçimi kalite denetimini kullanıma alır.
qt-plural-formatQt çoğul biçimi kalite denetimini kullanıma alır.
ruby-formatRuby biçimi kalite denetimini kullanıma alır.
scheme-formatŞema biçimi kalite denetimini kullanıma alır.
vue-formatVue I18n biçimlendirmesi kalite denetimini kullanıma alır.
rst-textBir yazının reStructuredText belgesi olarak işlenmesini sağlar. Çeviri değiştirilmemiş kalite denetimini etkiler. reStructuredText tutarsız ve reStructuredText söz dizimi sorunu kalite denetimlerini kullanıma alır.
md-textBir yazının Markdown belgesi olarak işlenmesini sağlar. Çeviri içeriği alanında markdown söz dizimini vurgular. Markdown bağlantıları, Markdown başvuruları ve Markdown söz dizimi kalite denetimlerini kullanıma alır.
max-lengthÇevirinin en fazla uzunluğu kalite denetimini kullanıma alır.
max-sizeÇevirinin en fazla uzunluğu kalite denetimini kullanıma alır.
placeholdersYer belirticiler kalite denetimini kullanıma alır.
regexKurallı ifade kalite denetimini kullanıma alır.
safe-htmlGüvenli olmayan HTML kalite denetimini kullanıma alır.
auto-safe-htmlBir yazıyı koşullu HTML olarak işler, Güvenli olmayan HTML kalite denetimini yalnızca düz yazı veya standart HTML biçimlendirmesi veya geçerli özel bileşenler bulunan kaynak dizgeler için etkinleştirin. Bu denetim, köşeli parantez sözdiziminin HTML olmayabileceği MDX gibi genişletilmiş Markdown çeşitleri için kullanışlıdır. Güvenli olmayan HTML kalite denetimini kullanıma alır.
urlDizge yalnızca bir adresten oluşmalıdır. Adres kalite denetimini kullanıma alır.
fluent-source-inner-htmlFluent kaynağı iç HTML kodu kalite denetimini kullanıma alır.
fluent-source-syntaxFluent kaynak söz dizimi kalite denetimini kullanıma alır.
ignore-all-checksTüm kalite denetimlerini yok sayar.
ignore-bbcodeBBCode kodlaması kalite denetimini atlar.
ignore-xml-chars-around-tagsXML kod imleri etrafındaki karakterler kalite denetimini atlar.
ignore-duplicateArt arda yinelenen sözcükler var kalite denetimini atlar.
ignore-check-glossarySözlük ile uyumlu değil kalite denetimini atlar.
ignore-double-spaceÇift boşluk kalite denetimini atlar.
ignore-fluent-partsFluent bölümleri kalite denetimini atlar.
ignore-fluent-referencesFluent başvuruları kalite denetimini atlar.
ignore-fluent-target-inner-htmlFluent çevirisinin iç HTML kodu kalite denetimini atlar.
ignore-fluent-target-syntaxFluent çevirisi söz dizimi kalite denetimini atlar.
ignore-angularjs-formatAngularJS araya ekleme dizgesi kalite denetimini atlar.
ignore-automattic-components-formatAutomattic bileşenleri biçimlendirmesi kalite denetimini atlar.
ignore-c-formatC biçimi kalite denetimini atlar.
ignore-c-sharp-formatC# biçimi kalite denetimini atlar.
ignore-es-formatECMAScript kalıbı sabitleri kalite denetimini atlar.
ignore-i18next-interpolationi18next araya ekleme kalite denetimini atlar.
ignore-icu-message-formatICU MessageFormat kalite denetimini atlar.
ignore-java-printf-formatJava biçimi kalite denetimini atlar.
ignore-java-formatJava MessageFormat kalite denetimini atlar.
ignore-javascript-formatJavaScript biçimi kalite denetimini atlar.
ignore-laravel-formatLaravel biçimi kalite denetimini atlar.
ignore-lua-formatLua biçimi kalite denetimini atlar.
ignore-object-pascal-formatObject Pascal biçimi kalite denetimini atlar.
ignore-objc-formatObjective-C biçimi kalite denetimini atlar.
ignore-percent-placeholdersYüzde yer belirticileri kalite denetimini atlar.
ignore-perl-brace-formatPerl süslü parantez biçimi kalite denetimini atlar.
ignore-perl-formatPerl biçimi kalite denetimini atlar.
ignore-php-formatPHP biçimi kalite denetimini atlar.
ignore-python-brace-formatPython süslü parantez biçimi kalite denetimini atlar.
ignore-python-formatPython biçimi kalite denetimini atlar.
ignore-qt-formatQt biçimi kalite denetimini atlar.
ignore-qt-plural-formatQt çoğul biçimi kalite denetimini atlar.
ignore-ruby-formatRuby biçimi kalite denetimini atlar.
ignore-scheme-formatŞema biçimi kalite denetimini atlar.
ignore-vue-formatVue I18n biçimlendirmesi kalite denetimini atlar.
ignore-translatedÇevrilmiş kalite denetimini atlar.
ignore-inconsistentTutarsız kalite denetimini atlar.
ignore-rst-referencesreStructuredText tutarsız kalite denetimini atlar.
ignore-kashidaKashida harfi kullanılmış kalite denetimini atlar.
ignore-md-linkMarkdown bağlantıları kalite denetimini atlar.
ignore-md-reflinkMarkdown başvuruları kalite denetimini atlar.
ignore-md-syntaxMarkdown 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-stopNokta işareti farklı kalite denetimini atlar.
ignore-end-interrobangİnterrobang işareti farklı kalite denetimini atlar.
ignore-end-questionSoru işareti farklı kalite denetimini atlar.
ignore-end-semicolonNoktalı virgül farklı kalite denetimini atlar.
ignore-newline-countSatır sonları farklı kalite denetimini atlar.
ignore-pluralsÇoğul biçim eksik kalite denetimini atlar.
ignore-multiple-capitalBirden çok büyük harf kullanılmış kalite denetimini atlar.
ignore-kabyle-charactersKabyle dilinde standart olmayan karakterler var kalite denetimini atlar.
ignore-placeholdersYer belirticiler kalite denetimini atlar.
ignore-prohibited-initial-characterİzin verilmeyen başlangıç karakteri kalite denetimini atlar.
ignore-punctuation-spacingNoktalama aralığı kalite denetimini atlar.
ignore-regexKurallı ifade kalite denetimini atlar.
ignore-rst-syntaxreStructuredText söz dizimi sorunu kalite denetimini atlar.
ignore-reusedÇeviri yeniden kullanılmış kalite denetimini atlar.
ignore-same-pluralsTekil ile çoğul biçim aynı kalite denetimini atlar.
ignore-begin-newlineBaşta yeni satır var kalite denetimini atlar.
ignore-begin-spaceBaştaki boşluk kalite denetimini atlar.
ignore-end-newlineSondaki yeni satır kalite denetimini atlar.
ignore-end-spaceSondaki boşluk kalite denetimini atlar.
ignore-sameÇeviri değiştirilmemiş kalite denetimini atlar.
ignore-safe-htmlGüvenli olmayan HTML kalite denetimini atlar.
ignore-urlAdres kalite denetimini atlar.
ignore-xml-tagsXML kodlaması kalite denetimini atlar.
ignore-xml-invalidXML söz dizimi kalite denetimini atlar.
ignore-zero-width-spaceSıfır genişlikli boşluk kalite denetimini atlar.
ignore-ellipsisÜç nokta kalite denetimini atlar.
ignore-fluent-source-inner-htmlFluent kaynağı iç HTML kodu kalite denetimini atlar.
ignore-fluent-source-syntaxFluent kaynak söz dizimi kalite denetimini atlar.
ignore-icu-message-formatICU MessageFormat söz dizimi kalite denetimini atlar.
ignore-long-untranslatedUzun süredir çevrilmemiş kalite denetimini atlar.
ignore-multiple-failuresBirden çok denetim hatası kalite denetimini atlar.
ignore-unnamed-formatBirden ç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 ignore-* 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.
Konum temelli imler¶
Bazı imler, konumlarına göre varsayılan olarak dizgelere eklenir. Bu işlem, dizgenin kullanıldığı yere bağlı olarak belirli denetimlerin kendiliğinden etkinleştirileceği anlamına gelir.
rst-text: Bu im, konum uzantısı.rstise reStructuredText dosyalarındaki dizgelere kendiliğinden eklenir.md-text: This flag is automatically added to strings in Markdown and MDX files, if location extension is.md,.markdown, or.mdx.
Denetimleri dayatmak¶
Dayatılan denetimler reddedilemez ve dizgeyi Düzenlenmesi gerekli olarak imleyemez (ayrıntılı bilgi almak için: Çeviri durumları). Böylece çevirmenlerin bu tür denetimleri gizlemesi önlenir.
İpucu
Denetim dayatması kendiliğinden açılmaz. Bazı denetimler, dizge ya da bileşen imlerine karşılık gelen im eklenerek açılabilir.
Bu en iyi Biçimlendirilmiş dizgeler denetimleri gibi kullanıldığında ciddi sorunlara neden olabilecek denetimlerde kullanılır. Çeviri değiştirilmemiş gibi biçem denetimleri için kullanılması önerilmez. Çünkü bu tür denetimlerde reddetmek bazen kabul edilebilir.
Daha sonra Çeviri kalitesi süzgeci, düzenlenmesi gereken dizgelerin sürüm denetimi sistemine işlenmesini engellemek için kullanılabilir.
Yazı tiplerini yönetmek¶
İpucu
Weblate üzerine yüklenen yazı tipleri yalnızca Çevirinin en fazla uzunluğu kalite 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 (ayrıntılı bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek).
Çeviri projenizin İşlemler 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:
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:
Font-family and style are automatically recognized after uploading them:
Weblate üzerine çeşitli yazı tipleri yükleyebilirsiniz:
Dizge uzunluğunu denetleme üzere yazı tiplerini kullanmak için, uygun imleri aktarın (ayrıntılı bilgi almak için: Parametreleri kullanarak davranışı özelleştirmek). Büyük olasılıkla şunlara gerek duyacaksınız:
max-size:500/max-size:300:5Piksel olarak en fazla genişliği ve isteğe bağlı olarak en fazla satır sayısını belirler (sözcük kaydırma uygulanır).
font-family:ubuntuBelirteci ile kullanılacak yazı tipi grubunu tanımlar.
font-size:22Yazı boyutunu piksel olarak tanımlar.
Kendi denetimlerinizi oluşturmak¶
Çok çeşitli kalite denetimleri hazır olarak bulunur (ayrıntılı 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.
weblate.checks.Check alt sınıfı
Birkaç öznitelik ayarlayın.
check(kodunuzdaki çoğulları işlemek istiyorsanız) ya dacheck_singleyö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. Ayrıntılı bilgi almak için: Özel kalite denetimleri, eklentiler, kendiliğinden öneriler ve kendiliğinden düzeltmeler.
“foo” içermeyen çeviri metinlerini denetlemek¶
Çeviride “foo” dizgesinin eksik olup olmadığına bakan basit bir denetim.
"""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
# Might be localized using gettext_lazy
name = "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.
"""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
# Might be localized using gettext_lazy
name = "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 unit.translation.language.is_base({"cs"}):
return targets[1] == targets[2]
return False
def check_single(self, source, target, unit) -> bool:
"""We don't check target strings here."""
return False