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
:
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
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
Pentru a instala verificări personalizate, furnizați o cale complet calificată către clasa Python în AUTOFIX_LIST
, a se vedea Verificări personalizate ale calității, add-on-uri și corecții automate.
Personalizarea comportamentului cu ajutorul stegulețelor
Puteți regla cu precizie comportamentul Weblate folosind stegulețe. Acest lucru se poate face la nivelul șirului sursă (a se vedea Informații suplimentare despre șirurile sursă), sau în Configurația componentei (Indicarorii traducerii). Unele formate de fișiere permit, de asemenea, specificarea de indicatori direct în format (a se vedea Formate de fișiere acceptate).
Stegulețele sunt separate prin virgulă, iar parametrii sunt separați prin două puncte. Puteți utiliza ghilimele pentru a include spații albe sau caractere speciale în șir. De exemplu:
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\''
Iată o listă a marcajelor acceptate în prezent:
rst-text
Tratează un text ca un document reStructuredText, afectează Traducere neschimbată.
dos-eol
Folosește markeri de sfârșit de linie DOS în loc de cei Unix (
\r\n
instead of\n
).read-only
Șirul este doar pentru citire și nu trebuie editat în Weblate, a se vedea Șiruri de caractere numai pentru citire.
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 Lungimea maximă a traducerii.
xml-text
Tratează textul ca document XML, afectează Sintaxa XML și Marcarea 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 Format mesaj ICU.
icu-tag-prefix:PREFIX`
Setați un prefix necesar pentru etichetele XML pentru verificarea calității Format mesaj ICU.
placeholders:NAME:NAME2:...
Șiruri de caractere de poziție așteptate în traducere, a se vedea Semne de poziție.
replacements:FROM:TO:FROM2:TO2...
Înlocuirile care trebuie efectuate la verificarea parametrilor textului rezultat (de exemplu, în Dimensiunea maximă a traducerii sau Lungimea 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ă.
forbidden
Indică o traducere interzisă într-un glosar, a se vedea Traduceri interzise.
strict-same
Faceți ca „Traducerea neschimbată” să evite utilizarea listei negre a cuvintelor încorporate, a se vedea Traducere neschimbată.
check-glossary
Activați verificarea calității Nu respectă glosarul.
angularjs-format
Activați verificarea calității Șir de interpolare AngularJS.
c-format
Activați verificarea calității Format C.
c-sharp-format
Activați verificarea calității C# format.
es-format
Activați verificarea calității Șabloane literale ECMAScript.
i18next-interpolation
Activați verificarea calității Interpolare i18next.
icu-message-format
Activați verificarea calității Format mesaj ICU.
java-printf-format
Activați verificarea calității format Java.
java-format
Activați verificarea calității Mesaj în format Java.
javascript-format
Activați verificarea calității Format JavaScript.
lua-format
Activați verificarea calității Formatul Lua.
object-pascal-format
Activați verificarea calității check-object-pascal-pascal-format.
percent-placeholders
Activați verificarea calității Procentaje de marcaj.
perl-format
Activați verificarea calității Formatul Perl.
php-format
Activați verificarea calității Formatul Perl.
python-brace-format
Activați verificarea calității Formatul de bretea Python.
python-format
Activați verificarea calității Format Python.
qt-format
Activați verificarea calității Formatul Qt.
qt-plural-format
Activați verificarea calității Formatul Qt.
ruby-format
Activați verificarea calității Formatul Ruby.
scheme-format
Activați verificarea calității Formatul schemei.
vue-format
Activați verificarea calității Formatare Vue I18n.
md-text
Tratează textul ca pe un document Markdown. Activați verificările de calitate Legături Markdown, Referințe Markdown și Sintaxa Markdown.
case-insensitive
Ajustați comportamentul verificărilor pentru a nu ține cont de majuscule și minuscule. În prezent, afectează doar verificarea calității Semne de poziție.
safe-html
Activați verificarea calității HTML nesigur.
url
Șirul trebuie să fie format doar dintr-un URL. Activați verificarea calității URL.
ignore-all-checks
Ignorați toate verificările de calitate.
ignore-bbcode
Săriți peste verificarea calității Marcaj BBCode.
ignore-duplicate
Săriți peste verificarea calității Cuvinte consecutive duplicate.
ignore-check-glossary
Săriți peste verificarea calității check-check-check-glossary.
ignore-double-space
Săriți peste verificarea calității Spațiu dublu.
ignore-angularjs-format
Treceți peste verificarea calității Șir de interpolare AngularJS.
ignore-c-format
Săriți peste verificarea calității Format C.
ignore-c-sharp-format
Săriți peste verificarea calității C# format.
ignore-es-format
Săriți peste verificarea calității Șabloane literale ECMAScript.
ignore-i18next-interpolation
Treceți peste verificarea calității Interpolare i18next.
ignore-icu-message-format
Săriți peste verificarea calității Format mesaj ICU.
ignore-java-format
Săriți peste verificarea calității Mesaj în format Java.
ignore-java-printf-format
Săriți peste verificarea calității format Java.
ignore-javascript-format
Treceți peste verificarea calității Format JavaScript.
ignore-lua-format
Săriți peste verificarea calității Formatul Lua.
ignore-object-pascal-format
Săriți peste verificarea calității Formatul Object Pascal.
ignore-percent-placeholders
Săriți peste verificarea calității Procentaje de marcaj.
ignore-perl-format
Săriți peste verificarea calității Formatul Perl.
ignore-php-format
Săriți peste verificarea calității Formatul PHP.
ignore-python-brace-format
Săriți peste verificarea calității Formatul de bretea Python.
ignore-python-format
Săriți peste verificarea calității Format Python.
ignore-qt-format
Săriți peste verificarea calității Formatul Qt.
ignore-qt-plural-format
Săriți peste verificarea calității Formatul plural Qt.
ignore-ruby-format
Săriți peste verificarea calității Formatul Ruby.
ignore-scheme-format
Săriți peste verificarea calității Formatul schemei.
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-kashida
Săriți peste verificarea calității Scrisoarea 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 Sintaxa Markdown.
ignore-max-length
Săriți peste verificarea calității Lungimea maximă a traducerii.
ignore-max-size
Săriți peste verificarea calității Dimensiunea 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 Elipsa nepotrivită.
ignore-end-exclamation
Săriți peste verificarea calității Semnul exclamării nepotrivit.
ignore-end-stop
Săriți peste verificarea calității Punct final nepotrivit.
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 pluralul.
ignore-placeholders
Săriți peste verificarea calității Semne de poziție.
ignore-punctuation-spacing
Săriți peste verificarea calității Spațierea punctuației.
ignore-regex
Săriți peste verificarea calității Expresie regulată.
ignore-same-plurals
Săriți peste verificarea calității Același plural.
ignore-begin-newline
Săriți peste verificarea calității Începutul liniei noi.
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 Marcarea XML.
ignore-xml-invalid
Săriți peste verificarea calității Sintaxa 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-icu-message-format-syntax
Săriți peste verificarea calității Format mesaj ICU.
ignore-long-untranslated
Treceți peste verificarea calității Lungă netradusă.
ignore-multiple-failures
Săriți peste verificarea calității Controale multiple 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 Nepluralizat.
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).
Executarea controalelor
Nou în versiunea 3.11.
Puteți configura o listă de verificări care nu pot fi ignorate prin setarea Controale forțate în Configurația componentei. Fiecare verificare din listă nu poate fi neglijată în interfața cu utilizatorul, iar orice șir care nu trece de această verificare este marcat ca Needs editing (a se vedea Statele de traducere).
Notă
Dacă activați aplicarea verificărilor nu se activează automat. Verificarea poate fi activată prin adăugarea indicatorului corespunzător la indicatoarele de șir sau de componentă.
Gestionarea fonturilor
Nou în versiunea 3.7.
Sugestie
Fonturile încărcate în Weblate sunt folosite doar în scopul verificării Dimensiunea maximă a traducerii, ele nu au niciun efect în interfața cu utilizatorul Weblate.
Verificarea Dimensiunea 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).
Instrumentul de gestionare a fonturilor Weblate de la : Fonts din meniul Manage al proiectului de traducere oferă o interfață pentru încărcarea și gestionarea fonturilor. Se pot încărca fonturi TrueType sau OpenType, se pot configura grupuri de fonturi și se pot utiliza cele din verificare.
Grupurile de fonturi vă permit să definiți fonturi diferite pentru diferite limbi, ceea ce este de obicei necesar pentru limbile nelatine:

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:

Familia de caractere și stilul sunt recunoscute automat după încărcarea lor:

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

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
Definește lățimea maximă în pixeli.
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.
Subclasa weblate.checks.Check
Setați câteva atribute.
Implementați fie
check
(dacă doriți să vă ocupați de plural în codul dumneavoastră), fie metodacheck_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 Verificări personalizate ale calității, add-on-uri și corecții automate.
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”.
# 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 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
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.
# 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 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