Überprüfungen und Korrekturen¶
Benutzerdefinierte automatische Korrekturen¶
Sie können auch Ihre eigenen automatischen Korrekturen zusätzlich zu den Standardkorrekturen implementieren und sie in AUTOFIX_LIST aufnehmen.
Die automatischen Korrekturen sind leistungsstark, können aber auch Schaden anrichten; seien Sie vorsichtig, wenn Sie eine schreiben.
Zum Beispiel würde die folgende automatische Korrektur jedes Vorkommen der Zeichenfolge foo in einer Übersetzung durch bar ersetzen:
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
Um benutzerdefinierte Prüfungen zu installieren, geben Sie in AUTOFIX_LIST einen vollqualifizierten Pfad zu der Python-Klasse an, siehe Benutzerdefinierte Qualitätsprüfungen, Erweiterungen, automatische Vorschläge und automatische Korrekturen.
Verhalten mit Markierungen anpassen¶
Sie können das Verhalten von Weblate mit Hilfe von Markierungen feinabstimmen. Die Markierungen geben den Übersetzern eine visuelle Rückmeldung und helfen ihnen, ihre Übersetzungen zu verbessern. Die Markierungen werden aus folgenden Quellen zusammengeführt:
Zusätzliche Markierungen der Ausgangszeichenkette:
Zusätzliche Informationen über Ausgangszeichenketten beschreibt die manuelle Bearbeitung.
Massenbearbeitung kann verwendet werden, um Markierungen stapelweise anzuwenden.
Massenbearbeitung-Erweiterung kann Markierungen automatisch anwenden.
Markierungen pro Zeichenkette, extrahiert aus dem Dateiformat, siehe Lokalisierungsdateiformate.
Übersetzungsmarkierungen (aktuell nur
read-only-Markierung für zweisprachige Ausgangszeichenketten oder wenn einsprachige Vorlagenbearbeitung ausgeschaltet ist).Dateiformatspezifische Markierungen.
Die Markierungen sind durch Komma getrennt; wenn sie Parameter haben, werden sie durch Doppelpunkt getrennt. Sie können Anführungszeichen verwenden, um Leerzeichen oder Sonderzeichen in die Zeichenkette aufzunehmen. Zum Beispiel:
placeholders:"special:value":"other value", regex:.*
Es werden sowohl einfache als auch doppelte Anführungszeichen akzeptiert, Sonderzeichen werden mit Backslash maskiert:
placeholders:"quoted \"string\"":'single \'quoted\''
placeholders:r"^#*"
Um zu überprüfen, dass Übersetzer die Überschrift eines Markdown-Dokuments nicht ändern. Eine fehlgeschlagene Prüfung wird ausgelöst, wenn die Zeichenkette ### Index mit # Indice übersetzt wird.
placeholders:r"\]\([^h].*?\)"
Um sicherzustellen, dass interne Links nicht übersetzt werden (d. h. [test](../checks) wird nicht zu [test](../chequeos).
Die auf einer höhereren Ebene definierten Markierungen können mit der Syntax discard:NAME verworfen werden. Wenn eine Komponente beispielsweise auf safe-html konfiguriert ist, können Sie discard:safe-html zu den Markierungen der Zeichenketten hinzufügen, um sie für diese spezielle Zeichenkette zu überspringen.
Hier finden Sie eine Liste der derzeit akzeptierten Markierungen:
read-onlyDie Zeichenkette ist schreibgeschützt und sollte nicht in Weblate bearbeitet werden, siehe Schreibgeschützte Zeichenketten.
terminologyVerwendet im Glossar. Kopiert die Zeichenkette in alle Sprachen des Glossars, damit sie in allen Übersetzungen einheitlich verwendet werden kann. Auch nützlich in Kombination mit
read-only, zum Beispiel in Produktnamen.priority:NPriorität der Zeichenkette. Zeichenketten mit höherer Priorität werden zuerst zur Übersetzung angeboten. Die Standardpriorität ist 100. Je höher die Priorität einer Zeichenkette ist, desto früher wird sie zur Übersetzung angeboten.
max-length:NBegrenzt die maximale Länge für eine Zeichenkette auf N Zeichen, siehe Maximale Länge der Übersetzung.
xml-textBehandelt Text als XML-Dokument, betrifft XML-Syntax und XML-Auszeichnung.
font-family:NAMEDefiniert die Schriftfamilie für Rendering-Prüfungen, siehe Schriftarten verwalten.
font-weight:WEIGHTDefiniert das Schriftgewicht für Rendering-Prüfungen, siehe Schriftarten verwalten.
font-size:SIZEDefiniert die Schriftgröße für Rendering-Prüfungen, siehe Schriftarten verwalten.
font-spacing:SPACINGDefiniert die Buchstabenabstände für Rendering-Prüfungen, siehe Schriftarten verwalten.
icu-flags:FLAGSDefiniert Markierungen, um das Verhalten der Qualitätsprüfung ICU MessageFormat anzupassen.
icu-tag-prefix:PREFIXSetzt ein erforderliches Präfix für XML-Tags für die Qualitätsprüfung ICU MessageFormat.
placeholders:NAME:NAME2:...Platzhalter-Zeichenketten werden in der Übersetzung erwartet, siehe Platzhalter.
replacements:FROM:TO:FROM2:TO2...Ersetzungen, die bei der Überprüfung der resultierenden Textparameter durchgeführt werden sollen (zum Beispiel in Maximaler Umfang der Übersetzung oder Maximale Länge der Übersetzung). Der typische Anwendungsfall hierfür ist die Erweiterung von Platzhaltern, um sicherzustellen, dass der Text auch bei langen Werten passt, zum Beispiel:
replacements:%s:"John Doe".variants:SOURCEMarkiert diese Zeichenkette als Variante der Zeichenkette mit gleicher Ausgangszeichenkette. Siehe Zeichenkette-Varianten.
regex:REGEXRegulärer Ausdruck zum Abgleich mit der Übersetzung, siehe Regulärer Ausdruck.
discard:NAMEVerwirft die auf einer höheren Ebene definierte Markierung.
forbiddenVerweist auf eine unzulässige Übersetzung in einem Glossar, siehe Unzulässige Übersetzungen.
strict-sameVermeidet, dass Unveränderte Übersetzung die integrierte Wörter-Ausnahmeliste verwendet.
strict-formatErzwingt für Formatprüfungen die Verwendung des Formats auch für Pluralformen mit einem einzigen Wert, siehe Formatierte Zeichenketten.
case-insensitivePasst das Prüfverhaltens an, so dass Groß-/Kleinschreibung nicht berücksichtigt wird. Betrifft derzeit nur die Qualitätsprüfung Platzhalter.
bbcode-textBehandelt einen Text als Bulletin-Board-Code-Dokument (BBCode), betrifft Unveränderte Übersetzung. Aktiviert die Qualitätsprüfung BBCode-Auszeichnung.
check-glossaryAktiviert die Qualitätsprüfung Folgt nicht dem Glossar.
fluent-partsAktiviert die Qualitätsprüfung Fluent-Teile.
fluent-referencesAktiviert die Qualitätsprüfung Fluent-Referenzen.
fluent-target-inner-htmlAktiviert die Qualitätsprüfung Inneres HTML der Fluent-Übersetzung.
fluent-target-syntaxAktiviert die Qualitätsprüfung Fluent-Übersetzungssyntax.
angularjs-formatAktiviert die Qualitätsprüfung AngularJS-Interpolations-Zeichenkette.
automattic-components-formatAktiviert die Qualitätsprüfung Automattic-Komponenten-Formatierung.
c-formatAktiviert die Qualitätsprüfung C-Format.
c-sharp-formatAktiviert die Qualitätsprüfung C#-Format.
csharp-formatAktiviert die Qualitätsprüfung C#-Format.
es-formatAktiviert die Qualitätsprüfung ECMAScript-Buchstabenvorlagen.
i18next-interpolationAktiviert die Qualitätsprüfung i18next-Interpolation.
icu-message-formatAktiviert die Qualitätsprüfungen ICU MessageFormat und ICU-MessageFormat-Syntax.
java-printf-formatAktiviert die Qualitätsprüfung Java-Format.
java-formatAktiviert die Qualitätsprüfung Java-MessageFormat.
auto-java-messageformatTreat a text as conditional Java MessageFormat, enabling Java-MessageFormat only when the source contains Java MessageFormat placeholders. Enables the Java-MessageFormat quality check.
javascript-formatAktiviert die Qualitätsprüfung JavaScript-Format.
laravel-formatAktiviert die Qualitätsprüfung Laravel-Format.
lua-formatAktiviert die Qualitätsprüfung Lua-Format.
object-pascal-formatAktiviert die Qualitätsprüfung Object-Pascal-Format.
objc-formatAktiviert die Qualitätsprüfung Objective-C-Format.
percent-placeholdersAktiviert die Qualitätsprüfung Platzhalter in Prozent.
perl-brace-formatAktiviert die Qualitätsprüfung Perl-Brace-Format.
perl-formatAktiviert die Qualitätsprüfung Perl-Format.
php-formatAktiviert die Qualitätsprüfung PHP-Format.
python-brace-formatAktiviert die Qualitätsprüfung Python-Brace-Format.
python-formatAktiviert die Qualitätsprüfung Python-Format.
qt-formatAktiviert die Qualitätsprüfung Qt-Format.
qt-plural-formatAktiviert die Qualitätsprüfung Qt-Plural-Format.
ruby-formatAktiviert die Qualitätsprüfung Ruby-Format.
scheme-formatAktiviert die Qualitätsprüfung Scheme-Format.
vue-formatAktiviert die Qualitätsprüfung Vue-I18n-Formatierung.
rst-textBehandelt einen Text als reStructuredText-Dokument, betrifft Unveränderte Übersetzung. Aktiviert die Qualitätsprüfungen Inkonsistenter reStructuredText und reStructuredText-Syntaxfehler.
md-textBehandelt einen Text als Markdown-Dokument und bietet Markdown-Syntax-Hervorhebung im Textbereich der Übersetzung. Aktivert die Qualitätsprüfungen Markdown-Links, Markdown-Referenzen und Markdown-Syntax.
max-lengthAktiviert die Qualitätsprüfung Maximale Länge der Übersetzung.
max-sizeAktiviert die Qualitätsprüfung Maximaler Umfang der Übersetzung.
placeholdersAktiviert die Qualitätsprüfung Platzhalter.
regexAktiviert die Qualitätsprüfung Regulärer Ausdruck.
safe-htmlAktiviert die Qualitätsprüfung Unsicheres HTML.
auto-safe-htmlTreat a text as conditional HTML, enabling Unsicheres 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 Unsicheres HTML quality check.
urlDie Zeichenkette sollte nur aus einer URL bestehen. Aktiviert die Qualitätsprüfung URL.
fluent-source-inner-htmlAktiviert die Qualitätsprüfung Inneres HTML der Fluent-Quelle.
fluent-source-syntaxAktiviert die Qualitätsprüfung Fluent-Quellsyntax.
ignore-all-checksIgnoriert alle Qualitätsprüfungen.
ignore-bbcodeÜberspringt die Qualitätsprüfung BBCode-Auszeichnung.
ignore-xml-chars-around-tagsÜberspringt die Qualitätsprüfung XML-Tags umgebende Zeichen.
ignore-duplicateÜberspringt die Qualitätsprüfung Aufeinanderfolgende doppelte Wörter.
ignore-check-glossaryÜberspringt die Qualitätsprüfung Folgt nicht dem Glossar.
ignore-double-spaceÜberspringt die Qualitätsprüfung Doppeltes Leerzeichen.
ignore-fluent-partsÜberspringt die Qualitätsprüfung Fluent-Teile.
ignore-fluent-referencesÜberspringt die Qualitätsprüfung Fluent-Referenzen.
ignore-fluent-target-inner-htmlÜberspringt die Qualitätsprüfung Inneres HTML der Fluent-Übersetzung.
ignore-fluent-target-syntaxÜberspringt die Qualitätsprüfung Fluent-Übersetzungssyntax.
ignore-angularjs-formatÜberspringt die Qualitätsprüfung AngularJS-Interpolations-Zeichenkette.
ignore-automattic-components-formatÜberspringt die Qualitätsprüfung Automattic-Komponenten-Formatierung.
ignore-c-formatÜberspringt die Qualitätsprüfung C-Format.
ignore-c-sharp-formatÜberspringt die Qualitätsprüfung C#-Format.
ignore-es-formatÜberspringt die Qualitätsprüfung ECMAScript-Buchstabenvorlagen.
ignore-i18next-interpolationÜberspringt die Qualitätsprüfung i18next-Interpolation.
ignore-icu-message-formatÜberspringt die Qualitätsprüfung ICU MessageFormat.
ignore-java-printf-formatÜberspringt die Qualitätsprüfung Java-Format.
ignore-java-formatÜberspringt die Qualitätsprüfung Java-MessageFormat.
ignore-javascript-formatÜberspringt die Qualitätsprüfung JavaScript-Format.
ignore-laravel-formatÜberspringt die Qualitätsprüfung Laravel-Format.
ignore-lua-formatÜberspringt die Qualitätsprüfung Lua-Format.
ignore-object-pascal-formatÜberspringt die Qualitätsprüfung Object-Pascal-Format.
ignore-objc-formatÜberspringt die Qualitätsprüfung Objective-C-Format.
ignore-percent-placeholdersÜberspringt die Qualitätsprüfung Platzhalter in Prozent.
ignore-perl-brace-formatÜberspringt die Qualitätsprüfung Perl-Brace-Format.
ignore-perl-formatÜberspringt die Qualitätsprüfung Perl-Format.
ignore-php-formatÜberspringt die Qualitätsprüfung PHP-Format.
ignore-python-brace-formatÜberspringt die Qualitätsprüfung Python-Brace-Format.
ignore-python-formatÜberspringt die Qualitätsprüfung Python-Format.
ignore-qt-formatÜberspringt die Qualitätsprüfung Qt-Format.
ignore-qt-plural-formatÜberspringt die Qualitätsprüfung Qt-Plural-Format.
ignore-ruby-formatÜberspringt die Qualitätsprüfung Ruby-Format.
ignore-scheme-formatÜberspringt die Qualitätsprüfung Scheme-Format.
ignore-vue-formatÜberspringt die Qualitätsprüfung Vue-I18n-Formatierung.
ignore-translatedÜberspringt die Qualitätsprüfung Ist übersetzt worden.
ignore-inconsistentÜberspringt die Qualitätsprüfung Inkonsistent.
ignore-rst-referencesÜberspringt die Qualitätsprüfung Inkonsistenter reStructuredText.
ignore-kashidaÜberspringt die Qualitätsprüfung Kashida-Buchstabe verwendet.
ignore-md-linkÜberspringt die Qualitätsprüfung Markdown-Links.
ignore-md-reflinkÜberspringt die Qualitätsprüfung Markdown-Referenzen.
ignore-md-syntaxÜberspringt die Qualitätsprüfung Markdown-Syntax.
ignore-max-lengthÜberspringt die Qualitätsprüfung Maximale Länge der Übersetzung.
ignore-max-sizeÜberspringt die Qualitätsprüfung Maximaler Umfang der Übersetzung.
ignore-escaped-newlineÜberspringt die Qualitätsprüfung Unterschiedliche Menge \n.
ignore-end-colonÜberspringt die Qualitätsprüfung Nicht übereinstimmender Doppelpunkt.
ignore-end-ellipsisÜberspringt die Qualitätsprüfung Nicht übereinstimmende Auslassungspunkte.
ignore-end-exclamationÜberspringt die Qualitätsprüfung Nicht übereinstimmendes Ausrufezeichen.
ignore-end-stopÜberspringt die Qualitätsprüfung Nicht übereinstimmender Punkt.
ignore-end-interrobangÜberspringt die Qualitätsprüfung Nicht übereinstimmendes Fragerufzeichen.
ignore-end-questionÜberspringt die Qualitätsprüfung Nicht übereinstimmendes Fragezeichen.
ignore-end-semicolonÜberspringt die Qualitätsprüfung Nicht übereinstimmendes Semikolon.
ignore-newline-countÜberspringt die Qualitätsprüfung Nicht übereinstimmende Zeilenumbrüche.
ignore-pluralsÜberspringt die Qualitätsprüfung Fehlende Pluralformen.
ignore-multiple-capitalÜberspringt die Qualitätsprüfung Mehrere Großbuchstaben.
ignore-kabyle-charactersÜberspringt die Qualitätsprüfung Nicht standardisierte Zeichen in Kabyle.
ignore-placeholdersÜberspringt die Qualitätsprüfung Platzhalter.
ignore-prohibited-initial-characterÜberspringt die Qualitätsprüfung Unzulässiges Anfangszeichen.
ignore-punctuation-spacingÜberspringt die Qualitätsprüfung Interpunktionszeichenabstand.
ignore-regexÜberspringt die Qualitätsprüfung Regulärer Ausdruck.
ignore-rst-syntaxÜberspringt die Qualitätsprüfung reStructuredText-Syntaxfehler.
ignore-reusedÜberspringt die Qualitätsprüfung Wiederverwendete Übersetzung.
ignore-same-pluralsÜberspringt die Qualitätsprüfung Identische Pluralformen.
ignore-begin-newlineÜberspringt die Qualitätsprüfung Zeilenumbruch am Anfang.
ignore-begin-spaceÜberspringt die Qualitätsprüfung Leerzeichen am Anfang.
ignore-end-newlineÜberspringt die Qualitätsprüfung Zeilenumbruch am Ende.
ignore-end-spaceÜberspringt die Qualitätsprüfung Leerzeichen am Ende.
ignore-sameÜberspringt die Qualitätsprüfung Unveränderte Übersetzung.
ignore-safe-htmlÜberspringt die Qualitätsprüfung Unsicheres HTML.
ignore-urlÜberspringt die Qualitätsprüfung URL.
ignore-xml-tagsÜberspringt die Qualitätsprüfung XML-Auszeichnung.
ignore-xml-invalidÜberspringt die Qualitätsprüfung XML-Syntax.
ignore-zero-width-spaceÜberspringt die Qualitätsprüfung Breitenloses Leerzeichen.
ignore-ellipsisÜberspringt die Qualitätsprüfung Auslassungspunkte.
ignore-fluent-source-inner-htmlÜberspringt die Qualitätsprüfung Inneres HTML der Fluent-Quelle.
ignore-fluent-source-syntaxÜberspringt die Qualitätsprüfung Fluent-Quellsyntax.
ignore-icu-message-formatÜberspringt die Qualitätsprüfung ICU-MessageFormat-Syntax.
ignore-long-untranslatedÜberspringt die Qualitätsprüfung Lange nicht übersetzt.
ignore-multiple-failuresÜberspringt die Qualitätsprüfung Mehrfach fehlgeschlagene Überprüfungen.
ignore-unnamed-formatÜberspringt die Qualitätsprüfung Mehrere unbenannte Variablen.
ignore-optional-pluralÜberspringt die Qualitätsprüfung Ohne Pluralformen.
Bemerkung
Im Allgemeinen heißt die Regel ignore-* für jede Qualitätsprüfung, wobei ihr Bezeichner verwendet wird, sodass Sie dies auch für Ihre benutzerdefinierten Qualitätsprüfungen verwenden können.
Diese Markierungen werden sowohl in den Komponentenkonfiguration-Einstellungen, in den Einstellungen für die Ausgangszeichenkette als auch in der Übersetzungsdatei selbst (zum Beispiel in GNU gettext) verstanden.
Speicherortbezogene Markierungen¶
Einige Markierungen werden Zeichenketten standardmäßig basierend auf ihrem Speicherort hinzugefügt. Das bedeutet, dass bestimmte Qualitätsprüfungen automatisch aktiviert werden, je nachdem, wo die Zeichenkette verwendet wird.
rst-text: Diese Markierung wird automatisch zu Zeichenketten in reStructuredText-Dateien hinzugefügt, wenn die Dateiendung.rstlautet.md-text: Diese Markierung wird automatisch zu Zeichenketten in Markdown- und MDX-Dateien hinzugefügt, wenn die Dateiendung.md,.markdownoder.mdxlautet.
Qualitätsprüfungen erzwingen¶
Die erzwungenen Prüfungen können nicht verworfen werden und kennzeichnen Zeichenketten als Bearbeitungsbedürftig (siehe Übersetzungsstatus). Dadurch wird verhindert, dass Übersetzer solche Prüfungen ausblenden können.
Hinweis
Das Einschalten der Qualitätsprüfung-Erzwingung aktiviert diese nicht automatisch. Einige Prüfungen müssen durch Hinzufügen der entsprechenden Markierung zu den Zeichenketten- oder Komponenten-Markierungen aktiviert werden.
Dies eignet sich am besten für Prüfungen, die beim Anwenden schwerwiegende Probleme verursachen können, wie z. B. bei Prüfungen für Formatierte Zeichenketten. Das Verwenden bei Stilprüfungen wie Unveränderte Übersetzung wird nicht empfohlen, da ein Verwerfen dort manchmal sinnvoll ist.
Die Filter für die Übersetzungsqualität können dann verwendet werden, um bearbeitungsbedürftige Zeichenketten beim Commit an die Versionsverwaltung auszuschließen.
Schriftarten verwalten¶
Hinweis
In Weblate hochgeladene Schriften werden nur für die Maximaler Umfang der Übersetzung-Prüfung verwendet, sie haben keine Auswirkungen auf die Weblate-Bedienoberfläche.
Die Qualitätsprüfung Maximaler Umfang der Übersetzung, die zur Berechnung der Größe des gerenderten Textes verwendet wird, benötigt eine Schriftart, die in Weblate geladen und mit einer Übersetzungsmarkierung ausgewählt wurde (siehe Verhalten mit Markierungen anpassen).
Das Werkzeug für die Weblate-Schriftartenverwaltung in Schriftarten unter dem Menü Operationen Ihres Übersetzungsprojekts bietet eine Oberfläche zum Hochladen und Verwalten von Schriftarten. Sie können TrueType- oder OpenType-Schriften hochladen, Font-Gruppen einrichten und diese bei der Prüfung verwenden.
Die Schriftartgruppen ermöglichen es Ihnen, verschiedene Schriftarten für verschiedene Sprachen zu definieren, was normalerweise für nicht-lateinische Sprachen erforderlich ist:
Die Schriftartgruppen werden durch einen Namen identifiziert, der keine Leer- oder Sonderzeichen enthalten darf, damit er in der Prüfdefinition leicht verwendet werden kann:
Font-family and style are automatically recognized after uploading them:
In Weblate können Sie eine Reihe von Schriftarten laden:
Um die Schriftarten für die Überprüfung der Zeichenkettenlänge zu verwenden, übergeben Sie ihr die entsprechenden Markierungen (siehe Verhalten mit Markierungen anpassen). Sie werden wahrscheinlich die folgenden benötigen:
max-size:500/max-size:300:5Definiert die maximale Breite in Pixeln und optional die maximale Anzahl von Zeilen (Wortumbruch wird angewendet).
font-family:ubuntuDefiniert die zu verwendende Schriftartgruppe durch Angabe ihres Bezeichners.
font-size:22Definiert die Schriftgröße in Pixeln.
Eigene Qualitätsprüfungen schreiben¶
Eine breite Palette von Qualitätsprüfungen ist integriert (siehe Qualitätsprüfungen), obwohl sie möglicherweise nicht alles abdecken, was Sie überprüfen möchten. Die Liste der durchgeführten Prüfungen kann mit CHECK_LIST angepasst werden, und Sie können auch eigene Prüfungen hinzufügen.
Unterklasse von weblate.checks.Check erstellen
Ein paar Attribute festlegen.
Entweder die
check- (wenn Sie in Ihrem Code mit Pluralformen umgehen möchten) odercheck_single-Methode (die dies für Sie erledigt) implementieren.
Einige Beispiele:
Um benutzerdefinierte Prüfungen zu installieren, geben Sie in CHECK_LIST einen vollqualifizierten Pfad zur Python-Klasse an, siehe Benutzerdefinierte Qualitätsprüfungen, Erweiterungen, automatische Vorschläge und automatische Korrekturen.
Prüfen, ob der Übersetzungstext „foo“ enthält¶
Es handelt sich um eine recht einfache Prüfung, bei der lediglich überprüft wird, ob in der Übersetzung die Zeichenfolge „foo“ fehlt.
"""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
Prüfen, ob sich die Pluralformen des tschechischen Übersetzungstextes unterscheiden¶
Prüfen Sie anhand der Sprachinfo, ob die beiden Pluralformen im Tschechischen nicht gleich sind.
"""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