Controles en reparaties

Aangepaste automatische reparaties

U kunt ook uw eigen automatische reparatie implementeren, in aanvulling op die van de standaard, en ze opnemen in AUTOFIX_LIST.

De automatische reparaties zijn krachtig, maar kunnen ook schade toebrengen; wees voorzichtig bij het schrijven ervan.

De volgende automatische reparatie zou, bijvoorbeeld, elke instantie van de tekenreeks foo in een vertaling vervangen door 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

Verschaf, om aangepaste controles te installeren, een volledig gekwalificeerd pad naar de Python class in de AUTOFIX_LIST, bekijk Aangepaste controles voor kwaliteit, add-ons, automatische suggesties en automatisch repareren.

Gedrag aanpassen met vlaggen

U kunt het gedrag van Weblate fijn afstemmen met vlaggen. De vlaggen verschaffen visuele terugkoppeling aan de vertalers en helpen ze om hun vertaling te verbeteren. De vlaggen worden samengevoegd uit de volgende bronnen:

De vlaggen worden gescheiden met komma’s; als zij parameters hebben worden die gescheiden door een dubbele punt. U kunt aanhalingstekens gebruiken om witruimte of speciale tekens in de tekenreeks op te nemen. Bijvoorbeeld:

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

Zowel enkele als dubbele aanhalingstekens worden geaccepteerd, speciale tekens moeten worden geëscapet met een backslash:

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

Verifiëren dat vertalers de kop van een document met Markdown niet wijzigen: Een mislukte controle zal worden geactiveerd wanneer de tekenreeks ### Index is vertaald als # Indice.

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

Zorgen dat interne koppelingen niet worden vertaald (d.i. [test](../checks) mag niet worden [test](../chequeos).

De vlaggen, die zijn gedefinieerd op een hoger niveau, kunnen worden genegeerd met de syntaxis discard:NAME. Bijvoorbeeld als een onderdeel is geconfigureerd voor safe-html, kunt u discard:safe-html toevoegen aan de vlaggen van de tekenreeks om die voor deze bepaalde tekenreeks over te slaan.

Hier is een lijst met momenteel geaccepteerde vlaggen:

dos-eol

Gebruikt markeringen van DOS voor einde regel in plaats van die van Unix (\r\n in plaats van \n).

read-only

De tekenreeks is alleen-lezen en zou niet moeten worden bewerkt in Weblate, bekijk Alleen-lezen-tekenreeksen.

terminology

Gebruikt in Woordenlijst. Kopieert de tekenreeks naar alle talen voor de woordenlijst, zodat het consistent kan worden gebruikt in alle vertalingen. Ook nuttig in combinatie met read-only, bijvoorbeeld voor productnamen.

priority:N

Prioriteit van de tekenreeks. Tekenreeksen met een hogere prioriteit worden als eerste gepresenteerd voor vertaling. De standaard prioriteit is 100, hoe hoger de prioriteit die een tekenreeks heeft, hoe eerder die wordt aangeboden voor vertaling.

max-length:N

Beperkt de maximale lengte voor een tekenreeks tot N tekens, bekijk Maximumlengte van de vertaling.

xml-text

Behandel tekst als een document met XML, heeft invloed op xml-syntaxis en XML-opmaak.

font-family:NAME

Definieert familie van lettertype voor controles voor renderen, bekijk Lettertypen beheren.

font-weight:WEIGHT

Definieer het letterbeeld voor controles voor renderen, bekijk Lettertypen beheren.

font-size:SIZE

Definieer grootte voor het lettertype voor controles voor renderen, bekijk Lettertypen beheren.

font-spacing:SPACING

Definieer afstand tussen letters voor controles voor renderen, bekijk Lettertypen beheren.

icu-flags:FLAGS

Vlaggen definiëren voor aanpassen van het gedrag van de kwaliteitscontrole ICU MessageFormat.

icu-tag-prefix:PREFIX

Stel een vereist voorvoegsel in voor XML-tags voor de kwaliteitscontrole ICU MessageFormat.

placeholders:NAME:NAME2:...

Tekenreeksen als plaatsvervanger, verwacht in vertaling, bekijk Tijdelijke aanduidingen.

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

Vervangingen om uit te voeren bij het controleren van resulterende tekstparameters (bijvoorbeeld in Maximumomvang van de vertaling of Maximumlengte van de vertaling). Een typisch gebruiksgeval hiervoor is om plaatsvervangers uit te breiden om ervoor te zorgen dat tekstbestanden zelfs met lange waarden passen, bijvoorbeeld: replacements:%s:"John Doe".

variants:SOURCE

Markeer deze tekenreeks als een variant van een tekenreeks met een overeenkomende bron. Bekijk Varianten van tekenreeksen.

regex:REGEX

Reguliere expressie om vertalingen mee te vergelijken, bekijk Reguliere uitdrukking.

discard:NAME

Vlaggen op een hoger niveau negeren.

forbidden

Geeft verboden vertalingen aan in een woordenlijst, bekijk Verboden vertalingen.

strict-same

Zorg ervoor dat ongewijzigde vertaling de ingebouwde uitzonderingen van woorden vermijdt.

strict-format

Forceren dat controles voor indeling de indeling zelfs voor meervoudsvormen met een enkele waarde gebruiken, bekijk Opgemaakte tekenreeksen.

case-insensitive

Pas het gedrag van controles aan naar niet-hoofdlettergevoelig. Beïnvloedt momenteel alleen de kwaliteitscontrole Tijdelijke aanduidingen.

bbcode-text

Treat a text as an Bulletin Board Code (BBCode) document, affects ongewijzigde vertaling. Enables the BBCode-opmaak quality check.

check-glossary

Enables the Niet-overeenkomend met begrippenlijst quality check.

fluent-parts

Enables the Fluent-onderdelen quality check.

fluent-references

Enables the Fluent-referenties quality check.

fluent-target-inner-html

Enables the Fluent-vertaling binnen html quality check.

fluent-target-syntax

Enables the Fluent-vertaalsyntaxis quality check.

angularjs-format

Enables the AngularJS-interpolatietekenreeks quality check.

automattic-components-format

Enables the Opmaak van onderdelen van Automattic quality check.

c-format

Enables the C-opmaak quality check.

c-sharp-format

Enables the C#-opmaak quality check.

csharp-format

Enables the C#-opmaak quality check.

es-format

Enables the ECMAScript-sjabloonletters quality check.

i18next-interpolation

Enables the i18next-interpolatie quality check.

icu-message-format

Enables the ICU MessageFormat and ICU Java MessageFormat-syntaxis quality checks.

java-printf-format

Enables the Java-opmaak quality check.

java-format

Enables the Java MessageFormat quality check.

auto-java-messageformat

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

javascript-format

Enables the JavaScript-opmaak quality check.

laravel-format

Enables the Laravel-opmaak quality check.

lua-format

Enables the Lua-opmaak quality check.

object-pascal-format

Enables the Object Pascal-formaat quality check.

objc-format

Enables the Objective-C format quality check.

percent-placeholders

Enables the Procentaanduidingen quality check.

perl-brace-format

Enables the Perl-haakjes opmaak quality check.

perl-format

Enables the Perl-opmaak quality check.

php-format

Enables the PHP-opmaak quality check.

python-brace-format

Enables the Python-haakjesopmaak quality check.

python-format

Enables the Python-opmaak quality check.

qt-format

Enables the Qt indeling quality check.

qt-plural-format

Enables the Qt meervoudsformaat quality check.

ruby-format

Enables the Ruby-opmaak quality check.

scheme-format

Enables the Schemaformaat quality check.

vue-format

Enables the Vue i18n-opmaak quality check.

rst-text

Treat a text as an reStructuredText document, affects ongewijzigde vertaling. Enables the Inconsistente reStructuredText and reStructuredText fout in syntaxis quality checks.

md-text

Treat a text as a Markdown document, and provide Markdown syntax highlighting on the translation text area. Enables the Markdown-links, Markdown-verwijzingen and Markdown-syntaxis quality checks.

max-length

Enables the Maximumlengte van de vertaling quality check.

max-size

Enables the Maximumomvang van de vertaling quality check.

placeholders

Enables the Tijdelijke aanduidingen quality check.

regex

Enables the Reguliere uitdrukking quality check.

safe-html

Enables the Onveilige html quality check.

auto-safe-html

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

url

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

fluent-source-inner-html

Enables the Fluent interne html quality check.

fluent-source-syntax

Enables the Fluent-syntaxis bron quality check.

ignore-all-checks

Alle kwaliteitscontroles negeren.

ignore-bbcode

Sla de kwaliteitscontrole BBCode-opmaak over.

ignore-xml-chars-around-tags

Skip the Tekens rond XML-tags quality check.

ignore-duplicate

Sla de kwaliteitscontrole Opeenvolgende dubbele woorden over.

ignore-check-glossary

Sla de kwaliteitscontrole Niet-overeenkomend met begrippenlijst over.

ignore-double-space

Sla de kwaliteitscontrole Dubbele spatie over.

ignore-fluent-parts

Sla de kwaliteitscontrole Fluent-onderdelen over.

ignore-fluent-references

Sla de kwaliteitscontrole Fluent-referenties over.

ignore-fluent-target-inner-html

Sla de kwaliteitscontrole Fluent-vertaling binnen html over.

ignore-fluent-target-syntax

Sla de kwaliteitscontrole Fluent-vertaalsyntaxis over.

ignore-angularjs-format

Sla de kwaliteitscontrole AngularJS-interpolatietekenreeks over.

ignore-automattic-components-format

Sla de kwaliteitscontrole Opmaak van onderdelen van Automattic over.

ignore-c-format

Sla de kwaliteitscontrole C-opmaak over.

ignore-c-sharp-format

Sla de kwaliteitscontrole C#-opmaak over.

ignore-es-format

Sla de kwaliteitscontrole ECMAScript-sjabloonletters over.

ignore-i18next-interpolation

Sla de kwaliteitscontrole i18next-interpolatie over.

ignore-icu-message-format

Sla de kwaliteitscontrole ICU MessageFormat over.

ignore-java-printf-format

Sla de kwaliteitscontrole Java-opmaak over.

ignore-java-format

Sla de kwaliteitscontrole Java MessageFormat over.

ignore-javascript-format

Sla de kwaliteitscontrole JavaScript-opmaak over.

ignore-laravel-format

Skip the Laravel-opmaak quality check.

ignore-lua-format

Sla de kwaliteitscontrole Lua-opmaak over.

ignore-object-pascal-format

Sla de kwaliteitscontrole Object Pascal-formaat over.

ignore-objc-format

Skip the Objective-C format quality check.

ignore-percent-placeholders

Sla de kwaliteitscontrole Procentaanduidingen over.

ignore-perl-brace-format

Sla de kwaliteitscontrole Perl-haakjes opmaak over.

ignore-perl-format

Sla de kwaliteitscontrole Perl-opmaak over.

ignore-php-format

Sla de kwaliteitscontrole PHP-opmaak over.

ignore-python-brace-format

Sla de kwaliteitscontrole Python-haakjesopmaak over.

ignore-python-format

Sla de kwaliteitscontrole Python-opmaak over.

ignore-qt-format

Sla de kwaliteitscontrole Qt indeling over.

ignore-qt-plural-format

Sla de kwaliteitscontrole Qt meervoudsformaat over.

ignore-ruby-format

Sla de kwaliteitscontrole Ruby-opmaak over.

ignore-scheme-format

Sla de kwaliteitscontrole Schemaformaat over.

ignore-vue-format

Sla de kwaliteitscontrole Vue i18n-opmaak over.

ignore-translated

Sla de kwaliteitscontrole Is vertaald over.

ignore-inconsistent

Sla de kwaliteitscontrole Inconsistent over.

ignore-rst-references

Sla de kwaliteitscontrole Inconsistente reStructuredText over.

ignore-kashida

Sla de kwaliteitscontrole Gebruikte kashida-letter over.

ignore-md-link

Sla de kwaliteitscontrole Markdown-links over.

ignore-md-reflink

Sla de kwaliteitscontrole Markdown-verwijzingen over.

ignore-md-syntax

Sla de kwaliteitscontrole Markdown-syntaxis over.

ignore-max-length

Sla de kwaliteitscontrole Maximumlengte van de vertaling over.

ignore-max-size

Sla de kwaliteitscontrole Maximumomvang van de vertaling over.

ignore-escaped-newline

Sla de kwaliteitscontrole Niet overeenkomende \n over.

ignore-end-colon

Sla de kwaliteitscontrole Niet overeenkomende dubbele punt over.

ignore-end-ellipsis

Sla de kwaliteitscontrole Niet overeenkomend beletselteken over.

ignore-end-exclamation

Sla de kwaliteitscontrole Niet overeenkomend uitroepteken over.

ignore-end-stop

Sla de kwaliteitscontrole Niet overeenkomende punt over.

ignore-end-interrobang

Sla de kwaliteitscontrole Niet overeenkomende interrobang (‽) over.

ignore-end-question

Sla de kwaliteitscontrole Niet overeenkomend vraagteken over.

ignore-end-semicolon

Sla de kwaliteitscontrole niet-overeenkomende puntkomma over.

ignore-newline-count

Sla de kwaliteitscontrole Het aantal witruimtes komt niet overeen over.

ignore-plurals

Sla de kwaliteitscontrole Ontbrekende meervouden over.

ignore-multiple-capital

Skip the Meerdere hoofdletters quality check.

ignore-kabyle-characters

Sla de kwaliteitscontrole Niet standaard tekens in Kabyle over.

ignore-placeholders

Sla de kwaliteitscontrole Tijdelijke aanduidingen over.

ignore-prohibited-initial-character

Sla de kwaliteitscontrole Verboden initiële teken over.

ignore-punctuation-spacing

Sla de kwaliteitscontrole Interpunctie-afstand over.

ignore-regex

Sla de kwaliteitscontrole Reguliere uitdrukking over.

ignore-rst-syntax

Sla de kwaliteitscontrole reStructuredText fout in syntaxis over.

ignore-reused

Sla de kwaliteitscontrole Hergebruikte vertaling over.

ignore-same-plurals

Sla de kwaliteitscontrole Identieke meervouden over.

ignore-begin-newline

Sla de kwaliteitscontrole Nieuwe regel aan het begin over.

ignore-begin-space

Sla de kwaliteitscontrole Spaties aan het begin over.

ignore-end-newline

Sla de kwaliteitscontrole Nieuwe regel aan het einde over.

ignore-end-space

Sla de kwaliteitscontrole spatie aan het einde over.

ignore-same

Sla de kwaliteitscontrole ongewijzigde vertaling over.

ignore-safe-html

Sla de kwaliteitscontrole Onveilige html over.

ignore-url

Sla de kwaliteitscontrole URL over.

ignore-xml-tags

Sla de kwaliteitscontrole XML-opmaak over.

ignore-xml-invalid

Sla de kwaliteitscontrole xml-syntaxis over.

ignore-zero-width-space

Sla de kwaliteitscontrole Spatie zonder breedte over.

ignore-ellipsis

Sla de kwaliteitscontrole Beletselteken (…) over.

ignore-fluent-source-inner-html

Sla de kwaliteitscontrole Fluent interne html over.

ignore-fluent-source-syntax

Sla de kwaliteitscontrole Fluent-syntaxis bron over.

ignore-icu-message-format

Sla de kwaliteitscontrole ICU Java MessageFormat-syntaxis over.

ignore-long-untranslated

Sla de kwaliteitscontrole Al lange tijd onvertaald over.

ignore-multiple-failures

Sla de kwaliteitscontrole Meerdere foutmeldingen over.

ignore-unnamed-format

Sla de kwaliteitscontrole Meerdere naamloze variabelen over.

ignore-optional-plural

Sla de kwaliteitscontrole geen meervoud over.

Notitie

Gewoonlijk is de controle genaamd ignore-* voor elke controle, zijn identificatie gebruikend, dus u kunt dit zelfs gebruiken voor uw aangepaste controles.

Deze vlaggen worden begrepen in zowel instellingen Configuratie onderdeel, instellingen per tekenreeks en in het vertaalbestand zelf (bijvoorbeeld in GNU gettext).

Op locatie gebaseerde vlaggen

Sommige vlaggen worden standaard aan tekenreeksen toegevoegd, gebaseerd op hun locaties. Dat betekent dat bepaalde controles automatisch zullen worden ingeschakeld, afhankelijk van waar de tekenreeks wordt gebruikt.

  • rst-text: Deze vlag wordt automatisch toegevoegd in bestanden met reStructuredText, als de extensie van de locatie .rst is.

  • md-text: Deze vlag wordt automatisch toegevoegd in bestanden met Markdown, als de extensie van de locatie .md of .markdown is.

Controles afdwingen

De afgedwongen controles kunnen niet worden uitgeschakeld en markeren een tekenreeks met Bewerken nodig (bekijk Statussen voor vertalingen). Dit voorkomt dat vertalers dergelijke controles verbergen.

Hint

Inschakelen van het afdwingen van controles schakelt ze niet automatisch in. Sommige controles moeten worden ingeschakeld door de corresponderende vlag toe te voegen aan de tekenreeks of de vlaggen van het onderdeel.

Dit kan het beste worden gebruikt met controles zoals voor Opgemaakte tekenreeksen. Gebruiken van controles voor opmaak, zoals ongewijzigde vertaling, wordt niet aanbevolen, omdat in deze het uitschakelen een redelijke benadering is.

De Kwaliteitsfilter vertaling kan dan worden gebruikt om tekenreeksen uit te sluiten dat tekenreeksen, die moeten worden bewerkt, worden ingediend bij versiebeheer.

Lettertypen beheren

Hint

Lettertypen die worden geüpload in Weblate worden puur gebruikt voor de doelen van de controle Maximumomvang van de vertaling, zij hebben geen effect in de gebruikersinterface van Weblate.

De controle Maximumomvang van de vertaling, die wordt gebruikt om dimensies van de gerenderde tekst te berekenen, heeft lettertypen nodig die zijn geladen in Weblate en zijn geselecteerd met een vlag voor de vertaling (bekijk Gedrag aanpassen met vlaggen).

Het gereedschap voor het beheren van lettertypen in Weblate Lettertypen in het menu Bewerkingen van uw vertaalproject verschaft de interface voor het uploaden en beheren van lettertypen. Lettertypen TrueType of OpenType kunnen worden geüpload, groepen lettertypen kunnen worden ingesteld en die kunnen worden gebruikt in de controle.

De groepen voor lettertypen stellen u in staat verschillende lettertypen te definiëren voor verschillende talen, wat gewoonlijk nodig is voor niet-Latijnse talen:

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

De groepen lettertypen worden geïdentificeerd op naam, die geen witruimte of speciale tekens mag bevatten, zodat het gemakkelijk kan worden gebruikt in de definitie van de controle:

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

Familie en stijl van lettertype worden automatisch herkend na het uploaden ervan:

../_images/font-edit.webp

U mag een aantal lettertypen hebben geladen in Weblate:

../_images/font-list.webp

Geef het, om de lettertypen te gebruiken voor het controleren van de lengte van de tekenreeks, de toepasselijke vlaggen (bekijk Gedrag aanpassen met vlaggen). U zult waarschijnlijk de volgende nodig hebben:

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

Definieert de maximale breedte in pixels en, optioneel, het maximum aantal regels (tekstterugloop wordt toegepast).

font-family:ubuntu

Definieert de groep van het lettertype door zijn identificatie te specificeren.

font-size:22

Definieert de grootte van het lettertype in pixels.

Eigen controles schrijven

Een breed scala aan kwaliteitscontroles is ingebouwd, (bekijk Kwaliteitscontroles), hoewel zij misschien niet alles afdekken wat u wilt controleren. De lijst met uitgevoerde controles kan worden aangepast met CHECK_LIST, en u kunt ook aangepaste controles toevoegen.

  1. Subklasseer de weblate.checks.Check

  2. Stel een paar attributen in.

  3. Implementeer ofwel de methode check (als u meervouden wilt afhandelen in uw code) of de methode check_single (die het voor u doet).

Enkele voorbeelden:

Verschaf, om aangepaste controles te installeren, een volledig gekwalificeerd pad naar de klasse van Python in de CHECK_LIST, bekijk Aangepaste controles voor kwaliteit, add-ons, automatische suggesties en automatisch repareren.

Controleren of de vertaalde tekst niet “foo” bevat

Dit is een vrij eenvoudige controle die slechts controleert of in de vertaling de tekenreeks “foo” ontbreekt.

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

Controleren dat Tsjechische meervouden in de vertaalde tekst verschillen

Controleren met informatie voor de taal om te verifiëren of de twee meervouden in de Tsjechische taal niet hetzelfde zijn.

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