Ü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:
#
# Copyright © 2012–2022 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
from django.utils.translation import gettext_lazy as _
from weblate.trans.autofixes.base import AutoFix
class ReplaceFooWithBar(AutoFix):
"""Replace foo with bar."""
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 der :Einstellung:`AUTOFIX_LIST` einen vollqualifizierten Pfad zu der Python-Klasse an, siehe Custom quality checks, add-ons and auto-fixes.
Anpassen des Verhaltens mit Flaggen
Sie können das Verhalten von Weblate durch die Verwendung von Flags feinabstimmen. Dies kann auf der Ebene des Quelltextes geschehen (siehe Additional info on source strings) oder in der Komponente (Übersetzungsmarkierungen). Einige Dateiformate erlauben es auch, Flags direkt im Format anzugeben (siehe Supported file formats).
Die Flags sind durch Kommas getrennt, die Parameter durch Doppelpunkte. Sie können Anführungszeichen verwenden, um Leerzeichen oder Sonderzeichen in die Zeichenfolge 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\''
Hier finden Sie eine Liste der derzeit akzeptierten Flaggen:
rst-text
Behandelt einen Text als ein reStructuredText-Dokument, wirkt sich auf Unveränderte Übersetzung aus.
dos-eol
Verwendet DOS-Zeilenende-Markierungen anstelle von Unix-Markierungen (
\r\n
anstelle von\n
).read-only
Der String ist schreibgeschützt und sollte in Weblate nicht bearbeitet werden, siehe Schreibgeschützte Zeichenketten.
- priority:N
Priorität der Zeichenfolge. Zeichenketten mit höherer Priorität werden zuerst zur Übersetzung angeboten. Die Standardpriorität ist 100. Je höher die Priorität einer Zeichenfolge ist, desto früher wird sie zur Übersetzung angeboten.
- max-length:N
Begrenzt die maximale Länge für eine Zeichenkette auf N Zeichen, siehe Maximale Länge der Übersetzung.
xml-text
Behandelt Text als XML-Dokument, betrifft XML-Syntax und XML-Auszeichnung.
- font-family:NAME
Definieren Sie die Schriftart für Rendering Checks, siehe Schriftarten verwalten.
- font-weight:WEIGHT
Definieren Sie font-weight für Rendering Checks, siehe Schriftarten verwalten.
font-size:SIZE
Definieren Sie die Schriftgröße für Rendering Checks, siehe Schriftarten verwalten.
font-spacing:SPACING
Definieren Sie die Buchstabenabstände für Rendering Checks, siehe Schriftarten verwalten.
icu-flags:FLAGS
Define flags for customizing the behavior of the ICU MessageFormat quality check.
icu-tag-prefix:PREFIX
Set a required prefix for XML tags for the ICU MessageFormat quality check.
placeholders:NAME:NAME2:...
Platzhalter-Strings 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"
.icu-flags:FLAGS
Markiert diese Zeichenkette als eine Variante von Zeichenkette mit passender Quelle. Siehe Varianten.
regex:REGEX
Regulärer Ausdruck zum Abgleich mit der Übersetzung, siehe Regulärer Ausdruck.
forbidden
Zeigt eine verbotene Übersetzung in einem Glossar an, siehe Forbidden translations.
strict-same
Unveränderte Übersetzung“ vermeiden, indem man die eingebaute schwarze Liste der Wörter verwendet, siehe Unveränderte Übersetzung.
check-glossary
Aktiviere Qualitätsprüfung Folgt nicht dem Glossar.
angularjs-format
Aktiviere Qualitätsprüfung AngularJS-Interpolations-Zeichenkette.
c-format
Aktiviere Qualitätsprüfung C-Format.
c-sharp-format
Aktiviere Qualitätsprüfung C#-Format.
es-format
Aktiviere Qualitätsprüfung ECMAScript-Buchstabenvorlagen.
i18next-interpolation
Aktiviere Qualitätsprüfung i18next Interpolation.
icu-message-format
Aktiviere Qualitätsprüfung ICU MessageFormat.
java-printf-format
Enable the Java-Format quality check.
java-format
Aktiviere Qualitätsprüfung Java-MessageFormat.
javascript-format
Aktiviere Qualitätsprüfung JavaScript-Format.
lua-format
Aktiviere Qualitätsprüfung Lua-Format.
object-pascal-format
Aktiviere Qualitätsprüfung Object Pascal-Format.
percent-placeholders
Aktiviere Qualitätsprüfung Platzhalter in Prozent.
perl-format
Aktiviere Qualitätsprüfung Perl-Format.
php-format
Aktiviere Qualitätsprüfung PHP-Format.
python-brace-format
Aktiviere Qualitätsprüfung Python-Brace-Format.
python-format
Aktiviere Qualitätsprüfung Python-Format.
qt-format
Aktiviere Qualitätsprüfung Qt-Format.
qt-plural-format
Aktiviere Qualitätsprüfung Qt-Plural-Format.
ruby-format
Aktiviere Qualitätsprüfung Ruby-Format.
scheme-format
Aktiviere Qualitätsprüfung Scheme-Format.
vue-format
Aktiviere Qualitätsprüfung Vue I18n-Formatierung.
md-text
Text wie ein Markdown-Dokument behandeln. Aktivieren Sie die Qualitätsprüfungen Markdown-Links, Markdown-Referenzen, und Markdown-Syntax.
case-insensitive
Anpassung des Prüfverhaltens, so dass Groß- und Kleinschreibung nicht berücksichtigt werden. Betrifft derzeit nur die Qualitätsprüfung Platzhalter.
safe-html
Aktiviere Qualitätsprüfung Unsicheres HTML.
url
Die Zeichenkette sollte nur aus einer URL bestehen. Aktivieren Sie die Qualitätsprüfung URL.
ignore-all-checks
Ignoriere alle Qualitätsprüfungen.
ignore-bbcode
Überspringe Qualitätsprüfung BBCode-Markup.
ignore-duplicate
Überspringe Qualitätsprüfung Aufeinanderfolgende doppelte Wörter.
ignore-check-glossary
Überspringe Qualitätsprüfung Folgt nicht dem Glossar.
ignore-double-space
Überspringe Qualitätsprüfung Doppeltes Leerzeichen.
ignore-angularjs-format
Überspringe Qualitätsprüfung AngularJS-Interpolations-Zeichenkette.
ignore-c-format
Überspringe Qualitätsprüfung C-Format.
ignore-c-sharp-format
Überspringe Qualitätsprüfung C#-Format.
ignore-es-format
Überspringe Qualitätsprüfung ECMAScript-Buchstabenvorlagen.
ignore-i18next-interpolation
Überspringe Qualitätsprüfung i18next Interpolation.
ignore-icu-message-format
Überspringe Qualitätsprüfung ICU MessageFormat.
ignore-java-format
Überspringe Qualitätsprüfung Java-MessageFormat.
ignore-java-printf-format
Überspringe Qualitätsprüfung Java-Format.
ignore-javascript-format
Überspringe Qualitätsprüfung JavaScript-Format.
ignore-lua-format
Überspringe Qualitätsprüfung Lua-Format.
ignore-object-pascal-format
Überspringe Qualitätsprüfung Object Pascal-Format.
ignore-percent-placeholders
Überspringe Qualitätsprüfung Platzhalter in Prozent.
ignore-perl-format
Überspringe Qualitätsprüfung Perl-Format.
ignore-php-format
Überspringe Qualitätsprüfung PHP-Format.
ignore-python-brace-format
Überspringe Qualitätsprüfung Python-Brace-Format.
ignore-python-format
Überspringe Qualitätsprüfung Python-Format.
ignore-qt-format
Überspringe Qualitätsprüfung Qt-Format.
ignore-qt-plural-format
Überspringe Qualitätsprüfung Qt-Plural-Format.
ignore-ruby-format
Überspringe Qualitätsprüfung Ruby-Format.
ignore-scheme-format
Überspringe Qualitätsprüfung Scheme-Format.
ignore-vue-format
Überspringe Qualitätsprüfung Vue I18n-Formatierung.
ignore-translated
Überspringe Qualitätsprüfung Ist übersetzt worden.
ignore-inconsistent
Überspringe Qualitätsprüfung Inkonsistent.
ignore-kashida
Überspringe Qualitätsprüfung Kashida-Buchstabe verwendet.
ignore-md-link
Überspringe Qualitätsprüfung Markdown-Links.
ignore-md-reflink
Überspringe Qualitätsprüfung Markdown-Referenzen.
ignore-md-syntax
Überspringe Qualitätsprüfung Markdown-Syntax.
ignore-max-length
Überspringe Qualitätsprüfung Maximale Länge der Übersetzung.
ignore-max-size
Überspringe Qualitätsprüfung Maximaler Umfang der Übersetzung.
ignore-escaped-newline
Überspringe Qualitätsprüfung Mismatched \n.
ignore-end-colon
Überspringe Qualitätsprüfung Nicht übereinstimmender Doppelpunkt.
ignore-end-ellipsis
Überspringe Qualitätsprüfung Nicht übereinstimmende Auslassungspunkte.
ignore-end-exclamation
Überspringe Qualitätsprüfung Nicht übereinstimmendes Ausrufezeichen.
ignore-end-stop
Überspringe Qualitätsprüfung Nicht übereinstimmender Punkt.
ignore-end-question
Überspringe Qualitätsprüfung Nicht übereinstimmendes Fragezeichen.
ignore-end-semicolon
Überspringe Qualitätsprüfung Nicht übereinstimmendes Semikolon.
ignore-newline-count
Überspringe Qualitätsprüfung Nicht übereinstimmende Zeilenumbrüche.
ignore-plurals
Überspringe Qualitätsprüfung Fehlende Pluralformen.
ignore-placeholders
Überspringe Qualitätsprüfung Platzhalter.
ignore-punctuation-spacing
Überspringe Qualitätsprüfung Satzzeichenabstand.
ignore-regex
Überspringe Qualitätsprüfung Regulärer Ausdruck.
ignore-same-plurals
Überspringe Qualitätsprüfung Identische Pluralformen.
ignore-begin-newline
Überspringe Qualitätsprüfung Zeilenumbruch am Anfang.
ignore-begin-space
Überspringe Qualitätsprüfung Leerzeichen am Anfang.
ignore-end-newline
Überspringe Qualitätsprüfung Zeilenumbruch am Ende.
ignore-end-space
Überspringe Qualitätsprüfung Leerzeichen am Ende.
ignore-same
Überspringe Qualitätsprüfung Unveränderte Übersetzung.
ignore-safe-html
Überspringe Qualitätsprüfung Unsicheres HTML.
ignore-url
Überspringe Qualitätsprüfung URL.
ignore-xml-tags
Überspringe Qualitätsprüfung XML-Auszeichnung.
ignore-xml-invalid
Überspringe Qualitätsprüfung XML-Syntax.
ignore-zero-width-space
Überspringe Qualitätsprüfung Leerzeichen ohne Breite.
ignore-ellipsis
Überspringe Qualitätsprüfung Auslassungspunkte.
ignore-icu-message-format-syntax
Überspringe Qualitätsprüfung ICU MessageFormat-Syntax.
ignore-long-untranslated
Überspringe Qualitätsprüfung Lange nicht übersetzt.
ignore-multiple-failures
Überspringe Qualitätsprüfung Mehrfach fehlgeschlagene Überpüfungen.
ignore-unnamed-format
Überspringe Qualitätsprüfung Mehrere unbenannte Variablen.
ignore-optional-plural
Überspringe Qualitätsprüfung Ohne Pluralformen.
Bemerkung
Im Allgemeinen heißt die Regel ignore-*
für jede Prüfung, wobei ihr Bezeichner verwendet wird, so dass Sie dies auch für Ihre benutzerdefinierten Prüfungen verwenden können.
Diese Flags werden sowohl in den Component configuration-Einstellungen, in den Einstellungen für die Quelltexte als auch in der Übersetzungsdatei selbst (zum Beispiel in GNU gettext) verstanden.
Durchsetzung der Kontrollen
Neu in Version 3.11.
Sie können eine Liste von Prüfungen konfigurieren, die nicht ignoriert werden können, indem Sie Erzwungene Qualitätsprüfungen in Component configuration setzen. Jede aufgelistete Prüfung kann in der Benutzeroberfläche nicht abgewiesen werden und jede Zeichenkette, die diese Prüfung nicht besteht, wird als Needs editing markiert (siehe Translation states).
Bemerkung
Das Einschalten der Check-Erzwingung aktiviert diese nicht automatisch. Die Prüfung kann durch Hinzufügen des entsprechenden Flags zu String- oder Komponenten-Flags aktiviert werden.
Schriftarten verwalten
Neu in Version 3.7.
Hinweis
In Weblate hochgeladene Schriften werden nur für die Maximaler Umfang der Übersetzung-Prüfung verwendet, sie haben keine Auswirkungen auf die Weblate-Benutzeroberfläche.
Der Maximaler Umfang der Übersetzung-Check, der zur Berechnung der Größe des gerenderten Textes verwendet wird, benötigt eine Schriftart, die in Weblate geladen und mit einem Übersetzungsflag ausgewählt wurde (siehe Anpassen des Verhaltens mit Flaggen).
Das Weblate-Schriftarten-Management-Tool in Fonts unter dem Menü Manage Ihres Übersetzungsprojekts bietet eine Schnittstelle 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 Schriftgruppen ermöglichen es Ihnen, verschiedene Schriftarten für verschiedene Sprachen zu definieren, was in der Regel für nicht-lateinische Sprachen erforderlich ist:

Die Font-Gruppen werden durch einen Namen identifiziert, der keine Leer- oder Sonderzeichen enthalten darf, damit er in der Prüfdefinition leicht verwendet werden kann:

Schriftart und -stil werden nach dem Hochladen automatisch erkannt:

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 Flags (siehe Anpassen des Verhaltens mit Flaggen). Sie werden wahrscheinlich die folgenden benötigen:
max-length:N
Legt die maximale Breite in Pixeln fest.
font-weight:WEIGHT
Definiert die zu verwendende Schriftgruppe durch Angabe ihres Bezeichners.
max-length:N
Definition der Schriftgröße in Pixeln.
Ausstellen eigener Schecks
Eine breite Palette von Qualitätsprüfungen ist eingebaut (siehe Qualitätsprüfungen), obwohl sie möglicherweise nicht alles abdecken, was Sie überprüfen wollen. Die Liste der durchgeführten Prüfungen kann mit CHECK_LIST
angepasst werden, und Sie können auch eigene Prüfungen hinzufügen.
Unterklasse der weblate.checks.Check
Legen Sie ein paar Attribute fest.
Implementieren Sie entweder die Methode
check
(wenn Sie in Ihrem Code mit Pluralen umgehen wollen) oder die Methodecheck_single
(die dies für Sie erledigt).
Einige Beispiele:
Um benutzerdefinierte Prüfungen zu installieren, geben Sie in der :Einstellung:`CHECK_LIST` einen vollqualifizierten Pfad zur Python-Klasse an, siehe Custom quality checks, add-ons and auto-fixes.
Prüfen, ob der Übersetzungstext „foo“ nicht 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.
#
# Copyright © 2012–2022 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
"""Simple quality check example."""
from django.utils.translation import gettext_lazy as _
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 = _("Foo check")
# Description for failing check
description = _("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.
#
# Copyright © 2012–2022 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
"""Quality check example for Czech plurals."""
from django.utils.translation import gettext_lazy as _
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 = _("Foo check")
# Description for failing check
description = _("Your translation is foo")
# Real check code
def check_target_unit(self, sources, targets, unit):
if self.is_language(unit, ("cs",)):
return targets[1] == targets[2]
return False
def check_single(self, source, target, unit):
"""We don't check target strings here."""
return False