Ellenőrzések és javítások

Egyéni automatikus javítások

A meglévő automatikus javítások mellett sajátot is készíthet, és hozzáadhatja az AUTOFIX_LIST beállításhoz.

Az automatikus javítások hatékonyak, de károkat is okozhatnak, ezért körültekintően kell őket megírni.

Például az alábbi automatikus javítás minden fordításban kicseréli a foo szöveget bar szövegre:

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

Egyedi ellenőrzések telepítéséhez adja meg a Python osztály teljes elérési útját az AUTOFIX_LIST beállításban, részletek: Custom quality checks, add-ons, automatic suggestions and auto-fixes.

Viselkedés testreszabása jelzők használatával

A Weblate viselkedése finomhangolható jelzők segítségével. A jelzők vizuális visszajelzést adnak a fordítóknak, és segítik őket a fordítások minőségének javításában. A jelzők az alábbi forrásokból származhatnak:

A jelzők vesszővel elválasztva jelennek meg; ha paraméterezettek, akkor kettősponttal választjuk el őket. Szóközök vagy speciális karakterek megadásához idézőjeleket lehet használni. Például:

placeholders:"special:value":"other value", regex:.*

Mind az egyszeres (» «), mind a dupla (” „) idézőjelek elfogadottak, a speciális karaktereket visszaperrel kell kimenekíteni:

placeholders:"quoted \"string\"":'single \'quoted\''
placeholders:r"^#*"

Például, hogy ellenőrizzük, a fordítók nem módosították-e egy Markdown-dokumentum fejlécét. Sikertelen ellenőrzés történik, ha a ### Index szöveget például # Indice fordítják.

placeholders:r"\]\([^h].*?\)"

Vagy például annak biztosítására, hogy belső hivatkozások ne legyenek lefordítva (tehát a [test](../checks) ne váljon [test](../chequeos) alakra).

A magasabb szinten definiált jelzők felülírhatók a discard:NAME szintaxis használatával. Például, ha egy összetevőn a safe-html jelző aktív, akkor a szövegspecifikus jelzőkben discard:safe-html megadásával kihagyható az adott szövegre vonatkozóan.

Jelenleg az alábbi jelzők használhatók:

read-only

A szöveg csak olvasható, nem szerkeszthető Weblate-ben, lásd: Csak olvasható szövegek.

terminology

Használat a Szójegyzék esetén. A szöveget automatikusan átmásolja minden szójegyzék-nyelvre, így következetesen használható a fordításokban. Különösen hasznos például terméknevek esetén a read-only jelzővel kombinálva.

priority:N

A szöveg prioritása. A magasabb prioritású szövegek jelennek meg először fordításra. Az alapértelmezett prioritás értéke 100; minél magasabb a prioritás, annál hamarabb kínálja fel a rendszer fordításra a szöveget.

max-length:N

Korlátozza a szöveg maximális hosszát N karakterre, lásd: Fordítás maximális hossza.

xml-text

A szöveget XML-dokumentumként kezeli, hatással van az XML szintaxis és XML jelölő ellenőrzésekre.

font-family:NAME

Betűtípus-család meghatározása a megjelenítési ellenőrzésekhez, lásd: Betűtípusok kezelése.

font-weight:WEIGHT

Betűvastagság meghatározása a megjelenítési ellenőrzésekhez, lásd: Betűtípusok kezelése.

font-size:SIZE

Betűméret meghatározása a megjelenítési ellenőrzésekhez, lásd: Betűtípusok kezelése.

font-spacing:SPACING

Betűk közötti térköz meghatározása a megjelenítési ellenőrzésekhez, lásd: Betűtípusok kezelése.

icu-flags:FLAGS

Jelzők megadása a ICU-üzenetformátum minőség-ellenőrzés viselkedésének testreszabásához.

icu-tag-prefix:PREFIX

Kötelező előtag beállítása XML-címkékhez a ICU-üzenetformátum minőség-ellenőrzéshez.

placeholders:NAME:NAME2:...

A fordításban elvárt helyettesítő szövegek megadása, lásd: Helyettesítők.

replacements:FROM:TO:FROM2:TO2...

Csereértékek megadása az eredményül kapott szövegparaméterek ellenőrzésekor (például a Fordítás maximális mérete vagy Fordítás maximális hossza ellenőrzéseknél). Tipikus használati példa: helykitöltők bővítése annak érdekében, hogy a szöveg hosszabb értékek mellett is illeszkedjen, például: replacements:%s:\"John Doe\".

variants:SOURCE

A szöveg megjelölése olyan változatként, amely egy egyező forrásszöveg változata, lásd: Szövegváltozatok.

regex:REGEX

Reguláris kifejezés megadása a fordítás egyeztetéséhez, lásd: Reguláris kifejezés.

discard:NAME

Magasabb szinten definiált jelzők elvetése.

forbidden

Tiltott fordítás jelzése egy szójegyzékben, lásd: Tiltott fordítások.

strict-same

A Változatlan fordítás ellenőrzésnél a beépített szó-kivétellisták használatának mellőzése.

strict-format

A formátumellenőrzések szigorú érvényesítése, még olyan többes számú alakok esetén is, ahol csak egy érték szerepel, lásd: Formázott szövegek.

case-insensitive

Az ellenőrzések viselkedését kis- és nagybetűk figyelmen kívül hagyására állítja. Jelenleg csak a Helyettesítők minőség-ellenőrzést érinti.

bbcode-text

Treat a text as an Bulletin Board Code (BBCode) document, affects Változatlan fordítás. Enables the BBCode jelölés quality check.

check-glossary

Enables the Nem követi a szójegyzéket quality check.

fluent-parts

Enables the Fluent-részek quality check.

fluent-references

Enables the Fluent-hivatkozások quality check.

fluent-target-inner-html

Enables the Fluent-fordítás belső HTML quality check.

fluent-target-syntax

Enables the Fluent-fordítás szintaxisa quality check.

angularjs-format

Enables the AngularJS-helyettesítési szöveg quality check.

automattic-components-format

Enables the Automattic-összetevők formázása quality check.

c-format

Enables the C formátum quality check.

c-sharp-format

Enables the C# formátum quality check.

csharp-format

Enables the C# formátum quality check.

es-format

Enables the ECMAScript sablonszövegek quality check.

i18next-interpolation

Enables the i18next-helyettesítés quality check.

icu-message-format

Enables the ICU-üzenetformátum and ICU üzenetformátum szintaxis quality checks.

java-printf-format

Enables the Java formátum quality check.

java-format

Enables the Java-üzenetformátum quality check.

auto-java-messageformat

Treat a text as conditional Java MessageFormat, enabling Java-üzenetformátum only when the source contains Java MessageFormat placeholders. Enables the Java-üzenetformátum quality check.

javascript-format

Enables the JavaScript formátum quality check.

laravel-format

Enables the Laravel formátum quality check.

lua-format

Enables the Lua formátum quality check.

object-pascal-format

Enables the Object Pascal formátum quality check.

objc-format

Enables the Objective-C format quality check.

percent-placeholders

Enables the Százalékos helyettesítők quality check.

perl-brace-format

Enables the Perl kapcsos zárójeles formátum quality check.

perl-format

Enables the Perl formátum quality check.

php-format

Enables the PHP formátum quality check.

python-brace-format

Enables the Python kapcsos zárójeles formátum quality check.

python-format

Enables the Python formátum quality check.

qt-format

Enables the Qt formátum quality check.

qt-plural-format

Enables the Qt többes szám formátum quality check.

ruby-format

Enables the Ruby formátum quality check.

scheme-format

Enables the Scheme formátum quality check.

vue-format

Enables the Vue I18n formázás quality check.

rst-text

Treat a text as an reStructuredText document, affects Változatlan fordítás. Enables the Nem egységes reStructuredText and reStructuredText szintaxis hiba quality checks.

md-text

Treat a text as a Markdown document, and provide Markdown syntax highlighting on the translation text area. Enables the Markdown hivatkozások, Markdown hivatkozási címkék and Markdown szintaxis quality checks.

max-length

Enables the Fordítás maximális hossza quality check.

max-size

Enables the Fordítás maximális mérete quality check.

placeholders

Enables the Helyettesítők quality check.

regex

Enables the Reguláris kifejezés quality check.

safe-html

Enables the Nem biztonságos HTML quality check.

auto-safe-html

Treat a text as conditional HTML, enabling Nem biztonságos HTML only for plain text or source strings that contain standard HTML markup or valid custom elements. This is useful for extended Markdown variants such as MDX, where angle-bracket syntax may not be HTML. Enables the Nem biztonságos HTML quality check.

url

The string should consist of only a URL. Enables the URL quality check.

fluent-source-inner-html

Enables the Fluent-forrás – belső HTML quality check.

fluent-source-syntax

Enables the Fluent forrásszintaxis quality check.

ignore-all-checks

Minden minőség-ellenőrzés figyelmen kívül hagyása.

ignore-bbcode

A BBCode jelölés minőség-ellenőrzés kihagyása.

ignore-xml-chars-around-tags

Skip the Karakterek XML-címkék körül quality check.

ignore-duplicate

Az Egymás utáni ismétlődő szavak minőség-ellenőrzés kihagyása.

ignore-check-glossary

A Nem követi a szójegyzéket minőség-ellenőrzés kihagyása.

ignore-double-space

A Dupla szóköz minőség-ellenőrzés kihagyása.

ignore-fluent-parts

A Fluent-részek minőség-ellenőrzés kihagyása.

ignore-fluent-references

A Fluent-hivatkozások minőség-ellenőrzés kihagyása.

ignore-fluent-target-inner-html

A Fluent-fordítás belső HTML minőség-ellenőrzés kihagyása.

ignore-fluent-target-syntax

A Fluent-fordítás szintaxisa minőség-ellenőrzés kihagyása.

ignore-angularjs-format

A AngularJS-helyettesítési szöveg minőség-ellenőrzés kihagyása.

ignore-automattic-components-format

Az Automattic-összetevők formázása minőség-ellenőrzés kihagyása.

ignore-c-format

A C formátum minőség-ellenőrzés kihagyása.

ignore-c-sharp-format

A C# formátum minőség-ellenőrzés kihagyása.

ignore-es-format

A ECMAScript sablonszövegek minőség-ellenőrzés kihagyása.

ignore-i18next-interpolation

A i18next-helyettesítés minőség-ellenőrzés kihagyása.

ignore-icu-message-format

A ICU-üzenetformátum minőség-ellenőrzés kihagyása.

ignore-java-printf-format

A Java formátum minőség-ellenőrzés kihagyása.

ignore-java-format

A Java-üzenetformátum minőség-ellenőrzés kihagyása.

ignore-javascript-format

A JavaScript formátum minőség-ellenőrzés kihagyása.

ignore-laravel-format

Skip the Laravel formátum quality check.

ignore-lua-format

A Lua formátum minőség-ellenőrzés kihagyása.

ignore-object-pascal-format

A Object Pascal formátum minőség-ellenőrzés kihagyása.

ignore-objc-format

Skip the Objective-C format quality check.

ignore-percent-placeholders

A Százalékos helyettesítők minőség-ellenőrzés kihagyása.

ignore-perl-brace-format

A Perl kapcsos zárójeles formátum minőség-ellenőrzés kihagyása.

ignore-perl-format

A Perl formátum minőség-ellenőrzés kihagyása.

ignore-php-format

A PHP formátum minőség-ellenőrzés kihagyása.

ignore-python-brace-format

A Python kapcsos zárójeles formátum minőség-ellenőrzés kihagyása.

ignore-python-format

A Python formátum minőség-ellenőrzés kihagyása.

ignore-qt-format

A Qt formátum minőség-ellenőrzés kihagyása.

ignore-qt-plural-format

A Qt többes szám formátum minőség-ellenőrzés kihagyása.

ignore-ruby-format

A Ruby formátum minőség-ellenőrzés kihagyása.

ignore-scheme-format

A Scheme formátum minőség-ellenőrzés kihagyása.

ignore-vue-format

A Vue I18n formázás minőség-ellenőrzés kihagyása.

ignore-translated

A Már le lett fordítva minőség-ellenőrzés kihagyása.

ignore-inconsistent

A Nem egységes minőség-ellenőrzés kihagyása.

ignore-rst-references

A Nem egységes reStructuredText minőség-ellenőrzés kihagyása.

ignore-kashida

A Kashida karakter használata minőség-ellenőrzés kihagyása.

ignore-md-link

A Markdown hivatkozások minőség-ellenőrzés kihagyása.

ignore-md-reflink

A Markdown hivatkozási címkék minőség-ellenőrzés kihagyása.

ignore-md-syntax

A Markdown szintaxis minőség-ellenőrzés kihagyása.

ignore-max-length

A Fordítás maximális hossza minőség-ellenőrzés kihagyása.

ignore-max-size

A Fordítás maximális mérete minőség-ellenőrzés kihagyása.

ignore-escaped-newline

A Eltérő \n-karakterek minőség-ellenőrzés kihagyása.

ignore-end-colon

Az Eltérő kettőspont minőség-ellenőrzés kihagyása.

ignore-end-ellipsis

A Eltérő hármaspont minőség-ellenőrzés kihagyása.

ignore-end-exclamation

A Eltérő felkiáltójel minőség-ellenőrzés kihagyása.

ignore-end-stop

Az Eltérő mondatvégi pont minőség-ellenőrzés kihagyása.

ignore-end-interrobang

A Eltérő felkiáltójel–kérdőjel kombináció minőség-ellenőrzés kihagyása.

ignore-end-question

A Eltérő kérdőjel minőség-ellenőrzés kihagyása.

ignore-end-semicolon

A Eltérő pontosvessző minőség-ellenőrzés kihagyása.

ignore-newline-count

A Eltérő sortörések minőség-ellenőrzés kihagyása.

ignore-plurals

A Hiányzó többes számú alakok minőség-ellenőrzés kihagyása.

ignore-multiple-capital

Skip the Több nagybetű quality check.

ignore-kabyle-characters

A Nem szabványos karakterek a kabil nyelvben minőség-ellenőrzés kihagyása.

ignore-placeholders

A Helyettesítők minőség-ellenőrzés kihagyása.

ignore-prohibited-initial-character

A Tiltott kezdőkarakter minőség-ellenőrzés kihagyása.

ignore-punctuation-spacing

Az Írásjel térköze minőség-ellenőrzés kihagyása.

ignore-regex

A Reguláris kifejezés minőség-ellenőrzés kihagyása.

ignore-rst-syntax

A reStructuredText szintaxis hiba minőség-ellenőrzés kihagyása.

ignore-reused

Az Újrahasznált fordítás minőség-ellenőrzés kihagyása.

ignore-same-plurals

A Ugyanaz a többes szám minőség-ellenőrzés kihagyása.

ignore-begin-newline

A Kezdő soremelés minőség-ellenőrzés kihagyása.

ignore-begin-space

A Kezdő szóközök minőség-ellenőrzés kihagyása.

ignore-end-newline

A Lezáró soremelés minőség-ellenőrzés kihagyása.

ignore-end-space

A Lezáró szóköz minőség-ellenőrzés kihagyása.

ignore-same

A Változatlan fordítás minőség-ellenőrzés kihagyása.

ignore-safe-html

A Nem biztonságos HTML minőség-ellenőrzés kihagyása.

ignore-url

A URL minőség-ellenőrzés kihagyása.

ignore-xml-tags

Az XML jelölő minőség-ellenőrzés kihagyása.

ignore-xml-invalid

Az XML szintaxis minőség-ellenőrzés kihagyása.

ignore-zero-width-space

A Nulla szélességű szóköz minőség-ellenőrzés kihagyása.

ignore-ellipsis

A Hármaspont minőség-ellenőrzés kihagyása.

ignore-fluent-source-inner-html

A Fluent-forrás – belső HTML minőség-ellenőrzés kihagyása.

ignore-fluent-source-syntax

A Fluent forrásszintaxis minőség-ellenőrzés kihagyása.

ignore-icu-message-format

A ICU üzenetformátum szintaxis minőség-ellenőrzés kihagyása.

ignore-long-untranslated

A Régóta lefordítatlan minőség-ellenőrzés kihagyása.

ignore-multiple-failures

A Több sikertelen ellenőrzés minőség-ellenőrzés kihagyása.

ignore-unnamed-format

A Több névtelen változó minőség-ellenőrzés kihagyása.

ignore-optional-plural

A Többes szám nélküli minőség-ellenőrzés kihagyása.

Megjegyzés

Általánosan igaz, hogy bármely ellenőrzés esetében az ignore-* elnevezést kell használni az azonosító alapján, így ezt saját egyedi ellenőrzéseknél is alkalmazhatja.

Ezeket a jelzőket az összetevő beállításai, a forrásszövegenkénti beállítások és maga a fordítási fájl is értelmezi (például a GNU gettext esetében).

Location-based flags

Some flags are added to strings by default, based on their locations. This means that certain checks will be automatically enabled depending on where the string is used.

  • rst-text: This flag is automatically added to strings in reStructuredText files, if location extension is .rst.

  • md-text: This flag is automatically added to strings in Markdown and MDX files, if location extension is .md, .markdown, or .mdx.

Ellenőrzések kötelezővé tétele

The enforced checks cannot be dismissed and mark string as Needs editing (see Fordítási állapotok). This prevents translators from hiding such checks.

Tipp

Turning on check enforcing doesn’t enable it automatically. Some checks have to be turned on by adding the corresponding flag to the string or component flags.

This is best used with checks that can cause serious issues when used like checks for Formázott szövegek. Using for style checks like Változatlan fordítás is not recommended because dismissal is sometimes a reasonable approach in these.

The Fordításminőség szűrő can then be used to exclude strings needing editing from being committed to the version control.

Betűtípusok kezelése

Tipp

A Weblate-be feltöltött betűtípusok kizárólag a Fordítás maximális mérete ellenőrzéshez szükségesek, a Weblate felhasználói felületének megjelenését nem befolyásolják.

A Fordítás maximális mérete ellenőrzés, amely a megjelenített szöveg méretét számítja ki, megköveteli a megfelelő betűtípus betöltését a Weblate-be, és annak kiválasztását egy fordítási jelzőn keresztül (lásd: Viselkedés testreszabása jelzők használatával).

Weblate font management tool in Fonts under the Operations menu of your translation project provides interface to upload and manage fonts. TrueType or OpenType fonts can be uploaded, set up font-groups and use those in the check.

A betűcsoportok lehetővé teszik, hogy különböző nyelvekhez eltérő betűtípusokat rendeljen, ami jellemzően nem latin alapú nyelveknél szükséges:

../_images/font-group-edit.webp

A betűcsoportokat névvel kell azonosítani, amely nem tartalmazhat szóközt vagy speciális karaktert, hogy könnyen lehessen hivatkozni rájuk az ellenőrzésekben:

../_images/font-group-list.webp

Font-family and style are automatically recognized after uploading them:

../_images/font-edit.webp

Több betűtípus is betölthető a Weblate-be:

../_images/font-list.webp

A szöveghossz ellenőrzéséhez a megfelelő jelzők segítségével kell beállítani a használandó betűtípust (lásd: Viselkedés testreszabása jelzők használatával). Általában az alábbi beállításokra lesz szükség:

max-size:500 / max-size:300:5

Maximális szélesség pixelben, és opcionálisan a maximális sorok száma (szövegtördelés figyelembevételével).

font-family:ubuntu

A használandó betűcsoport azonosítójának megadása.

font-size:22

A betűméret pixelben.

Egyedi ellenőrzések írása

Számos minőség-ellenőrzés be van építve (lásd: Minőség-ellenőrzések), de ezek nem feltétlenül fednek le minden egyedi igényt. Az elvégzett ellenőrzések listája a CHECK_LIST beállítással módosítható, és saját egyedi ellenőrzéseket is hozzá lehet adni.

  1. Ehhez származtasson egy osztályt a weblate.checks.Check osztályból

  2. Állítson be néhány attribútumot.

  3. Valósítsa meg vagy a check metódust (ha a többes számok kezelését is saját kódban szeretné végezni) vagy a check_single metódust (ami ezt automatikusan elintézi).

Néhány példa:

Egyedi ellenőrzések telepítéséhez adja meg a Python osztály teljes elérési útját a CHECK_LIST beállításban, részletek: Custom quality checks, add-ons, automatic suggestions and auto-fixes.

Ellenőrzés: a fordítás szövege nem tartalmazhatja a „foo” karakterláncot

Ez egy egyszerű ellenőrzés, amely csak azt vizsgálja, hogy a fordításból hiányzik-e a „foo” szöveg.

"""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

Ellenőrzés: a cseh fordítás többes számai eltérnek-e

Ez az ellenőrzés nyelvi információ alapján ellenőrzi, hogy a cseh nyelv két többes számú alakja nem azonos-e.

"""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