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
:
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
from django.utils.translation import gettext_lazy
from weblate.trans.autofixes.base import AutoFix
class ReplaceFooWithBar(AutoFix):
"""Replace foo with bar."""
name = gettext_lazy("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 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:
Brontekenreeks, bekijk Aanvullende informatie over brontekenreeksen.
Vlaggen per tekenreeks uitgenomen uit de bestandsindeling, bekijk Bestandsindelingen voor vertalen.
Vlaggen voor vertaling (momenteel alleen de vlag
read-only
voor tweetalige brontekenreeks).Specifieke vlaggen voor bestandsindeling.
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).
Hier is een lijst met momenteel geaccepteerde vlaggen:
rst-text
Behandelt een tekst als een document met reStructuredText, heeft invloed op ongewijzigde vertaling. Schakelt reStructuredText fout in syntaxis en Inconsistente verwijzingen reStructuredText in.
bbcode-text
Behandelt tekst als een document met Bulletin Board Code (BBCode), heeft invloed op ongewijzigde vertaling.
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.
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.
check-glossary
Schakel de kwaliteitscontrole Niet-overeenkomend met begrippenlijst in.
angularjs-format
Schakel de kwaliteitscontrole AngularJS-interpolatietekenreeks in.
c-format
Schakel de kwaliteitscontrole C-opmaak in.
c-sharp-format
Schakel de kwaliteitscontrole C#-opmaak in.
es-format
Schakel de kwaliteitscontrole ECMAScript-sjabloonletters in.
i18next-interpolation
Schakel de kwaliteitscontrole i18next-interpolatie in.
icu-message-format
Schakel de kwaliteitscontrole ICU MessageFormat in.
java-printf-format
Schakel de kwaliteitscontrole Java-opmaak in.
java-format
Schakel de kwaliteitscontrole Java MessageFormat in.
javascript-format
Schakel de kwaliteitscontrole JavaScript-opmaak in.
lua-format
Schakel de kwaliteitscontrole Lua-opmaak in.
object-pascal-format
Schakel de kwaliteitscontrole Object Pascal-formaat in.
percent-placeholders
Schakel de kwaliteitscontrole Procentaanduidingen in.
perl-brace-format
Schakel de kwaliteitscontrole Perl-haakjes opmaak in.
perl-format
Schakel de kwaliteitscontrole Perl-opmaak in.
php-format
Schakel de kwaliteitscontrole PHP-opmaak in.
python-brace-format
Schakel de kwaliteitscontrole Python-haakjesopmaak in.
python-format
Schakel de kwaliteitscontrole Python-opmaak in.
qt-format
Schakel de kwaliteitscontrole Qt indeling in.
qt-plural-format
Schakel de kwaliteitscontrole Qt meervoudsformaat in.
ruby-format
Schakel de kwaliteitscontrole Ruby-opmaak in.
scheme-format
Schakel de kwaliteitscontrole Schemaformaat in.
vue-format
Schakel de kwaliteitscontrole Vue i18n-opmaak in.
md-text
Behandel tekst als een document van Markdown en verschaf accentueren van syntaxis van Markdown in het gebied van de vertaling. Schakelt kwaliteitscontroles Markdown-links, Markdown-verwijzingen en Markdown-syntaxis in.
case-insensitive
Pas het gedrag van controles aan naar niet-hoofdlettergevoelig. Beïnvloedt momenteel alleen de kwaliteitscontrole Tijdelijke aanduidingen.
safe-html
Schakel de kwaliteitscontrole Onveilige html in.
url
De tekenreeks zou allen uit een URL moeten bestaan. Schakel de kwaliteitscontrole URL in.
ignore-all-checks
Alle kwaliteitscontroles negeren.
ignore-bbcode
Sla de kwaliteitscontrole BBCode-opmaak over.
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-angularjs-format
Sla de kwaliteitscontrole AngularJS-interpolatietekenreeks 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-lua-format
Sla de kwaliteitscontrole Lua-opmaak over.
ignore-object-pascal-format
Sla de kwaliteitscontrole Object Pascal-formaat over.
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-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 overeenkomend teken 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-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-icu-message-format-syntax
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).
Controles afdwingen¶
U kunt een lijst met controles configureren die niet genegeerd kan worden door de instelling Afgedwongen controles in Configuratie onderdeel. Elke vermelde controle kan niet worden uitgeschakeld in de gebruikersinterface en elke tekenreeks die niet voldoet aan deze controle wordt gemarkeerd als Bewerken nodig (bekijk Statussen voor vertalingen).
Notitie
Inschakelen van het afdwingen van controles schakelt ze niet automatisch in. De controle kan worden ingeschakeld door de corresponderende vlag toe te voegen aan de tekenreeks of de vlaggen van het onderdeel.
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 Beheren 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:

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:

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

U mag een aantal lettertypen hebben geladen in Weblate:

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.
Subklasseer de weblate.checks.Check
Stel een paar attributen in.
Implementeer ofwel de methode
check
(als u meervouden wilt afhandelen in uw code) of de methodecheck_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 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.
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
"""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
name = gettext_lazy("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.
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
"""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
name = gettext_lazy("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