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. Ayrıntılı 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. Yer imleri şu kaynaklardan aktarılabilir:

İ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.

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. Ayrıntılı 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. Ayrıntılı 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. Ayrıntılı bilgi almak için: Yazı tiplerini yönetmek.

font-weight:WEIGHT

Görselleştirme denetimleri için yazı koyuluğunu belirler. Ayrıntılı bilgi almak için: Yazı tiplerini yönetmek.

font-size:SIZE

Görselleştirme denetimleri için yazı boyutunu belirler. Ayrıntılı bilgi almak için: Yazı tiplerini yönetmek.

font-spacing:SPACING

Görselleştirme denetimleri için harf aralığını belirler. Ayrıntılı 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. Ayrıntılı 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. Ayrıntılı bilgi almak için: :ref:’variants`.

regex:REGEX

Çevirilerin eşleştirileceği kurallı ifadeyi belirtir. Ayrıntılı bilgi almak için: Kurallı ifade.

forbidden

Bir sözlükte yasaklanmış bir çeviriyi belirtir. Ayrıntılı bilgi almak için: Yasaklı çeviriler.

strict-same

“Değiştirilmemiş çeviri” içinde iç kara listedeki sözcüklerin kullanmasını engeller. Ayrıntılı bilgi almak için: Çeviri değiştirilmemiş.

strict-format

Tek 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.

check-glossary

Sözlük ile uyumlu değil kalite denetimini kullanıma alır.

angularjs-format

AngularJS değer ekleme dizgesi kalite denetimini kullanıma alır.

c-format

C biçimi kalite denetimini kullanıma alır.

c-sharp-format

C# biçimi kalite denetimini kullanıma alır.

es-format

ECMAScript kalıbı sabitleri kalite denetimini kullanıma alır.

i18next-interpolation

i18next değer eklemesi kalite denetimini kullanıma alır.

icu-message-format

ICU MessageFormat kalite denetimini kullanıma alır.

java-printf-format

Java biçimi kalite denetimini kullanıma alır.

java-format

Java MessageFormat kalite denetimini kullanıma alır.

javascript-format

JavaScript biçimi kalite denetimini kullanıma alır.

lua-format

Lua biçimi kalite denetimini kullanıma alır.

object-pascal-format

Object Pascal biçimi kalite denetimini kullanıma alır.

percent-placeholders

Yüzde yer belirticileri kalite denetimini kullanıma alır.

perl-brace-format

Perl brace biçimi kalite denetimini kullanıma alır.

perl-format

Perl biçimi kalite denetimini kullanıma alır.

php-format

PHP biçimi kalite denetimini kullanıma alır.

python-brace-format

Python parantez biçimi kalite denetimini kullanıma alır.

python-format

Python biçimi kalite denetimini kullanıma alır.

qt-format

Qt biçimi kalite denetimini kullanıma alır.

qt-plural-format

Qt çoğul biçimi kalite denetimini kullanıma alır.

ruby-format

Ruby biçimi kalite denetimini kullanıma alır.

scheme-format

Şema biçimi kalite denetimini kullanıma alır.

vue-format

Vue I18n biçimlendirmesi kalite denetimini kullanıma alır.

md-text

Metnin Markdown belgesi olarak işlenmesini sağlar. Çeviri metni alanında markdown söz dizimi vurgulanır. Markdown bağlantıları, Markdown başvuruları ve Markdown söz dizimi kalite denetimlerini kullanıma alır.

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 kullanıma alır.

url

Dizge yalnızca bir adresten oluşmalıdır. Adres kalite denetimini kullanıma alın.

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-brace-format

Perl brace biçimi 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

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 (ayrıntılı bilgi almak için: :ref:`states’).

Not

Denetim dayatması kendiliğinden kullanıma alınmaz. Denetim, dizge ya da bileşen imlerine karşılık gelen im eklenerek kullanıma alınabilir.

Yazı tiplerini yönetmek

İ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 (ayrıntılı 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.webp

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.webp

Yazı tipi ailesi ve biçemi, yüklendikten sonra kendiliğinden tanınır:

../_images/font-edit.webp

Weblate üzerine çeşitli yazı tipleri yükleyebilirsiniz:

../_images/font-list.webp

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:5

Defines maximal width in pixels and, optionally, the maximum number of lines (word wrapping is applied).

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 (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.

  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. Ayrıntılı 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 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