Verificări și reparații

Reparații automate personalizate

Puteți, de asemenea, să vă implementați propriile corecturi automate în plus față de cele standard și să le includeți în AUTOFIX_LIST.

Corecțiile automate sunt puternice, dar pot provoca, de asemenea, daune; aveți grijă când scrieți una.

De exemplu, următoarea corecție automată ar înlocui fiecare apariție a șirului foo într-o traducere cu bar:

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

Pentru a instala verificări personalizate, furnizați o cale complet calificată către clasa Python în AUTOFIX_LIST, a se vedea Custom quality checks, add-ons, automatic suggestions and auto-fixes.

Personalizarea comportamentului cu ajutorul stegulețelor

You can fine-tune Weblate’s behavior by using flags. The flags provide visual feedback to the translators and help them to improve their translation. The flags are merged from following sources:

The flags are comma-separated; if they have parameters, they are separated with colon. You can use quotes to include whitespaces or special characters in the string. For example:

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

Sunt acceptate atât ghilimelele simple, cât și cele duble, iar caracterele speciale sunt scăpate folosind backslash:

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

To verify that translators do not change the heading of a Markdown document. A failing check will be triggered if the string ### Index is translated as # Indice.

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

To ensure that internal links are not being translated (i.e. [test](../checks) does not become [test](../chequeos).

The flags defined on a higher level can be discarded using the discard:NAME syntax. For example, if a component is configured to safe-html, you can add discard:safe-html to the string flags to skip it for this particular string.

Iată o listă a marcajelor acceptate în prezent:

read-only

Șirul este doar pentru citire și nu trebuie editat în Weblate, a se vedea Șiruri numai pentru citire.

terminology

Used in Glosar. Copies the string into all glossary languages so it can be used consistently in all translations. Also useful in combination with read-only, for example in product names.

priority:N

Prioritatea șirului. Șirurile cu prioritate mai mare sunt prezentate mai întâi pentru traducere. Prioritatea implicită este 100. Cu cât un șir are o prioritate mai mare, cu atât este oferit mai devreme pentru traducere.

max-length:N

Limitează lungimea maximă a unui șir de caractere la N caractere, a se vedea Lungime maximă a traducerii.

xml-text

Tratează textul ca document XML, afectează Sintaxă XML și Marcaj XML.

font-family:NAME

Definește font-family pentru verificările de redare, a se vedea Gestionarea fonturilor.

font-weight:WEIGHT

Definiți font-weight pentru verificările de redare, a se vedea Gestionarea fonturilor.

font-size:SIZE

Definiți dimensiunea fontului pentru verificările de redare, a se vedea Gestionarea fonturilor.

font-spacing:SPACING

Definiți spațierea literelor pentru verificările de redare, a se vedea Gestionarea fonturilor.

icu-flags:FLAGS

Definește indicatori pentru personalizarea comportamentului verificării calității ICU MessageFormat.

icu-tag-prefix:PREFIX

Setați un prefix necesar pentru etichetele XML pentru verificarea calității ICU MessageFormat.

placeholders:NAME:NAME2:...

Șiruri de caractere de poziție așteptate în traducere, a se vedea Substituenți.

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

Înlocuirile care trebuie efectuate la verificarea parametrilor textului rezultat (de exemplu, în Dimensiune maximă a traducerii sau Lungime maximă a traducerii). Cazul tipic de utilizare pentru acest lucru este de a extinde placeables pentru a se asigura că textul se potrivește chiar și cu valori lungi, de exemplu: replacements:%s: "John Doe".

variants:SOURCE

Marchează acest șir ca fiind o variantă de șir cu sursă corespunzătoare. A se vedea Variante de șiruri.

regex:REGEX

Expresie regulată pentru a potrivi traducerea, a se vedea Expresie regulată.

discard:NAME

Discards flag defined on a higher level.

forbidden

Indică o traducere interzisă într-un glosar, a se vedea Traduceri interzise.

strict-same

Make the Traducere neschimbată avoid using the built-in words exceptions.

strict-format

Make format checks enforce using format even for plural forms with a single value, see Șiruri de caractere formatate.

case-insensitive

Ajustați comportamentul verificărilor pentru a nu ține cont de majuscule și minuscule. În prezent, afectează doar verificarea calității Substituenți.

bbcode-text

Treat a text as an Bulletin Board Code (BBCode) document, affects Traducere neschimbată. Enables the Marcaj BBCode quality check.

check-glossary

Enables the Nu respectă glosarul quality check.

fluent-parts

Enables the Părți Fluent quality check.

fluent-references

Enables the Referințe Fluent quality check.

fluent-target-inner-html

Enables the Traducere Fluent intern HTML quality check.

fluent-target-syntax

Enables the Sintaxă traducere Fluent quality check.

angularjs-format

Enables the Șir de interpolare AngularJS quality check.

automattic-components-format

Enables the Automattic components formatting quality check.

c-format

Enables the Format C quality check.

c-sharp-format

Enables the Format C# quality check.

csharp-format

Enables the Format C# quality check.

es-format

Enables the Literale șablon ECMAScript quality check.

i18next-interpolation

Enables the Interpolare i18next quality check.

icu-message-format

Enables the ICU MessageFormat and Sintaxă ICU MessageFormat quality checks.

java-printf-format

Enables the Format Java quality check.

java-format

Enables the MessageFormat Java quality check.

auto-java-messageformat

Treat a text as conditional Java MessageFormat, enabling MessageFormat Java only when the source contains Java MessageFormat placeholders. Enables the MessageFormat Java quality check.

javascript-format

Enables the Format JavaScript quality check.

laravel-format

Enables the Laravel format quality check.

lua-format

Enables the Format Lua quality check.

object-pascal-format

Enables the Format Object Pascal quality check.

objc-format

Enables the Objective-C format quality check.

percent-placeholders

Enables the Procentaj substituenți quality check.

perl-brace-format

Enables the Perl brace format quality check.

perl-format

Enables the Format Perl quality check.

php-format

Enables the Format PHP quality check.

python-brace-format

Enables the Format de acolade Python quality check.

python-format

Enables the Format Python quality check.

qt-format

Enables the Format Qt quality check.

qt-plural-format

Enables the Format plural Qt quality check.

ruby-format

Enables the Format Ruby quality check.

scheme-format

Enables the Format schemă quality check.

vue-format

Enables the Formatare Vue I18n quality check.

rst-text

Treat a text as an reStructuredText document, affects Traducere neschimbată. Enables the Inconsistent reStructuredText and reStructuredText syntax error quality checks.

md-text

Treat a text as a Markdown document, and provide Markdown syntax highlighting on the translation text area. Enables the Legături Markdown, Referințe Markdown and Sintaxă Markdown quality checks.

max-length

Enables the Lungime maximă a traducerii quality check.

max-size

Enables the Dimensiune maximă a traducerii quality check.

placeholders

Enables the Substituenți quality check.

regex

Enables the Expresie regulată quality check.

safe-html

Enables the HTML nesigur quality check.

auto-safe-html

Treat a text as conditional HTML, enabling HTML nesigur 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 HTML nesigur quality check.

url

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

fluent-source-inner-html

Enables the Sursă Fluent internă HTML quality check.

fluent-source-syntax

Enables the Sintaxă sursă Fluent quality check.

ignore-all-checks

Ignorați toate verificările de calitate.

ignore-bbcode

Săriți peste verificarea calității Marcaj BBCode.

ignore-xml-chars-around-tags

Skip the Chars around XML tags quality check.

ignore-duplicate

Săriți peste verificarea calității Cuvinte consecutive duplicate.

ignore-check-glossary

Săriți peste verificarea calității Nu respectă glosarul.

ignore-double-space

Săriți peste verificarea calității Spațiu dublu.

ignore-fluent-parts

Skip the Părți Fluent quality check.

ignore-fluent-references

Skip the Referințe Fluent quality check.

ignore-fluent-target-inner-html

Skip the Traducere Fluent intern HTML quality check.

ignore-fluent-target-syntax

Skip the Sintaxă traducere Fluent quality check.

ignore-angularjs-format

Treceți peste verificarea calității Șir de interpolare AngularJS.

ignore-automattic-components-format

Skip the Automattic components formatting quality check.

ignore-c-format

Săriți peste verificarea calității Format C.

ignore-c-sharp-format

Săriți peste verificarea calității Format C#.

ignore-es-format

Săriți peste verificarea calității Literale șablon ECMAScript.

ignore-i18next-interpolation

Treceți peste verificarea calității Interpolare i18next.

ignore-icu-message-format

Săriți peste verificarea calității ICU MessageFormat.

ignore-java-printf-format

Săriți peste verificarea calității Format Java.

ignore-java-format

Săriți peste verificarea calității MessageFormat Java.

ignore-javascript-format

Treceți peste verificarea calității Format JavaScript.

ignore-laravel-format

Skip the Laravel format quality check.

ignore-lua-format

Săriți peste verificarea calității Format Lua.

ignore-object-pascal-format

Săriți peste verificarea calității Format Object Pascal.

ignore-objc-format

Skip the Objective-C format quality check.

ignore-percent-placeholders

Săriți peste verificarea calității Procentaj substituenți.

ignore-perl-brace-format

Skip the Perl brace format quality check.

ignore-perl-format

Săriți peste verificarea calității Format Perl.

ignore-php-format

Săriți peste verificarea calității Format PHP.

ignore-python-brace-format

Săriți peste verificarea calității Format de acolade Python.

ignore-python-format

Săriți peste verificarea calității Format Python.

ignore-qt-format

Săriți peste verificarea calității Format Qt.

ignore-qt-plural-format

Săriți peste verificarea calității Format plural Qt.

ignore-ruby-format

Săriți peste verificarea calității Format Ruby.

ignore-scheme-format

Săriți peste verificarea calității Format schemă.

ignore-vue-format

Săriți peste verificarea calității Formatare Vue I18n.

ignore-translated

Săriți peste verificarea calității A fost tradus.

ignore-inconsistent

Săriți peste verificarea calității Inconsecvent.

ignore-rst-references

Skip the Inconsistent reStructuredText quality check.

ignore-kashida

Săriți peste verificarea calității Literă Kashida folosită.

ignore-md-link

Săriți peste verificarea calității Legături Markdown.

ignore-md-reflink

Săriți peste verificarea calității Referințe Markdown.

ignore-md-syntax

Săriți peste verificarea calității Sintaxă Markdown.

ignore-max-length

Săriți peste verificarea calității Lungime maximă a traducerii.

ignore-max-size

Săriți peste verificarea calității Dimensiune maximă a traducerii.

ignore-escaped-newline

Treceți peste verificarea calității Nepotrivit \n.

ignore-end-colon

Săriți peste verificarea calității Două puncte nepotrivite.

ignore-end-ellipsis

Săriți peste verificarea calității Elipsă nepotrivită.

ignore-end-exclamation

Săriți peste verificarea calității Semn exclamare nepotrivit.

ignore-end-stop

Săriți peste verificarea calității Punct final nepotrivit.

ignore-end-interrobang

Skip the Mismatched interrobang quality check.

ignore-end-question

Săriți peste verificarea calității Semn de întrebare nepotrivit.

ignore-end-semicolon

Săriți peste verificarea calității Punct și virgulă nepotrivit.

ignore-newline-count

Săriți peste verificarea calității Întreruperi de linie nepotrivite.

ignore-plurals

Săriți peste verificarea calității Lipsește plural.

ignore-multiple-capital

Skip the Multiple capitals quality check.

ignore-kabyle-characters

Skip the Non‑standard characters in Kabyle quality check.

ignore-placeholders

Săriți peste verificarea calității Substituenți.

ignore-prohibited-initial-character

Skip the Prohibited initial character quality check.

ignore-punctuation-spacing

Săriți peste verificarea calității Spațiere punctuație.

ignore-regex

Săriți peste verificarea calității Expresie regulată.

ignore-rst-syntax

Skip the reStructuredText syntax error quality check.

ignore-reused

Skip the Traducere refolosită quality check.

ignore-same-plurals

Săriți peste verificarea calității Aceleași plurale.

ignore-begin-newline

Săriți peste verificarea calității Începe linie nouă.

ignore-begin-space

Săriți peste verificarea calității Spații de pornire.

ignore-end-newline

Săriți peste verificarea calității Linie nouă de urmărire.

ignore-end-space

Săriți peste verificarea calității Spațiu de urmărire.

ignore-same

Săriți peste verificarea calității Traducere neschimbată.

ignore-safe-html

Săriți peste verificarea calității HTML nesigur.

ignore-url

Săriți peste verificarea calității URL.

ignore-xml-tags

Săriți peste verificarea calității Marcaj XML.

ignore-xml-invalid

Săriți peste verificarea calității Sintaxă XML.

ignore-zero-width-space

Săriți peste verificarea calității Spațiu cu lățime zero.

ignore-ellipsis

Săriți peste verificarea calității Elipsă.

ignore-fluent-source-inner-html

Skip the Sursă Fluent internă HTML quality check.

ignore-fluent-source-syntax

Skip the Sintaxă sursă Fluent quality check.

ignore-icu-message-format

Săriți peste verificarea calității Sintaxă ICU MessageFormat.

ignore-long-untranslated

Treceți peste verificarea calității Mult timp netradus.

ignore-multiple-failures

Săriți peste verificarea calității Mai multe verificări eșuate.

ignore-unnamed-format

Treceți peste verificarea calității Variabile multiple fără nume.

ignore-optional-plural

Săriți peste verificarea calității Fără plural.

Notă

În general, regula se numește ignore-* pentru orice verificare, folosind identificatorul acesteia, astfel încât puteți folosi acest lucru chiar și pentru verificările dumneavoastră personalizate.

Aceste indicatori sunt înțeleși atât în setările Configurația componentei, cât și în setările pentru șirul sursă și în fișierul de traducere în sine (de exemplu, în GNU gettext).

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.

Executarea controalelor

The enforced checks cannot be dismissed and mark string as Needs editing (see Statele de traducere). This prevents translators from hiding such checks.

Sugestie

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 Șiruri de caractere formatate. Using for style checks like Traducere neschimbată is not recommended because dismissal is sometimes a reasonable approach in these.

The Translation quality filter can then be used to exclude strings needing editing from being committed to the version control.

Gestionarea fonturilor

Sugestie

Fonturile încărcate în Weblate sunt folosite doar în scopul verificării Dimensiune maximă a traducerii, ele nu au niciun efect în interfața cu utilizatorul Weblate.

Verificarea Dimensiune maximă a traducerii utilizată pentru a calcula dimensiunile textului redat are nevoie ca fontul să fie încărcat în Weblate și selectat cu ajutorul unui indicator de traducere (see Personalizarea comportamentului cu ajutorul stegulețelor).

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.

Grupurile de fonturi vă permit să definiți fonturi diferite pentru diferite limbi, ceea ce este de obicei necesar pentru limbile nelatine:

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

Grupurile de fonturi sunt identificate printr-un nume, care nu poate conține spații albe sau caractere speciale, astfel încât să poată fi utilizat cu ușurință în definiția verificării:

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

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

../_images/font-edit.webp

Puteți avea mai multe fonturi încărcate în Weblate:

../_images/font-list.webp

Pentru a utiliza fonturile pentru verificarea lungimii șirului de caractere, treceți-i indicatoarele corespunzătoare (a se vedea Personalizarea comportamentului cu ajutorul stegulețelor). Probabil că veți avea nevoie de următoarele:

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

Definește grupul de fonturi care urmează să fie utilizat prin specificarea identificatorului acestuia.

font-size:22

Definește dimensiunea fontului în pixeli.

Întocmirea propriilor cecuri

Există o gamă largă de verificări ale calității încorporate (a se vedea Controale de calitate), deși s-ar putea să nu acopere tot ceea ce doriți să verificați. Lista de verificări efectuate poate fi ajustată folosind CHECK_LIST și puteți adăuga și verificări personalizate.

  1. Subclasa weblate.checks.Check

  2. Setați câteva atribute.

  3. Implementați fie check (dacă doriți să vă ocupați de plural în codul dumneavoastră), fie metoda check_single (care o face pentru dumneavoastră).

Câteva exemple:

Pentru a instala verificări personalizate, furnizați o cale complet calificată către clasa Python în CHECK_LIST, a se vedea Custom quality checks, add-ons, automatic suggestions and auto-fixes.

Verificarea faptului că textul traducerii nu conține „foo”

Aceasta este o verificare destul de simplă, care verifică doar dacă în traducere lipsește șirul „foo”.

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

Verificarea faptului că pluralul din textul traducerii în limba cehă diferă

Verificați cu ajutorul informațiilor lingvistice pentru a verifica dacă cele două forme de plural în limba cehă nu sunt identice.

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