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:
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
Pentru a instala verificări personalizate, furnizați o cale complet calificată către clasa Python în AUTOFIX_LIST, a se vedea Custom quality checks, add-ons, automatic suggestions and auto-fixes.
Personalizarea comportamentului cu ajutorul stegulețelor¶
You can fine-tune Weblate’s behavior by using flags. The flags provide visual feedback to the translators and help them to improve their translation. The flags are merged from following sources:
Source string additional flags:
Informații suplimentare despre șirurile sursă describes manual editing.
Editare în masă can be used to apply flags in batch.
Editare în masă add-on can apply flags automatically.
Per-string flags extracted from the file format, see Localization file formats.
Translation flags (currently only
read-onlyflag for bilingual source string).File-format specific flags.
The flags are comma-separated; if they have parameters, they are separated with colon. You can use quotes to include whitespaces or special characters in the string. For example:
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\''
placeholders:r"^#*"
To verify that translators do not change the heading of a Markdown document.
A failing check will be triggered if the string ### Index is translated as # Indice.
placeholders:r"\]\([^h].*?\)"
To ensure that internal links are not being translated (i.e. [test](../checks) does not become [test](../chequeos).
The flags defined on a higher level can be discarded using the
discard:NAME syntax. For example, if a component is configured to
safe-html, you can add discard:safe-html to the string flags to skip it
for this particular string.
Iată o listă a marcajelor acceptate în prezent:
rst-textTreat a text as an reStructuredText document, affects Traducere neschimbată. Turns on reStructuredText syntax error and Inconsistent reStructuredText.
bbcode-textTreat a text as an Bulletin Board Code (BBCode) document, affects Traducere neschimbată.
dos-eolFolosește markeri de sfârșit de linie DOS în loc de cei Unix (
\r\ninstead of\n).read-onlyȘirul este doar pentru citire și nu trebuie editat în Weblate, a se vedea Șiruri numai pentru citire.
terminologyUsed in Glosar. Copies the string into all glossary languages so it can be used consistently in all translations. Also useful in combination with
read-only, for example in product names.priority:NPrioritatea ș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:NLimitează lungimea maximă a unui șir de caractere la N caractere, a se vedea Lungime maximă a traducerii.
xml-textTratează textul ca document XML, afectează Sintaxă XML și Marcaj XML.
font-family:NAMEDefinește font-family pentru verificările de redare, a se vedea Gestionarea fonturilor.
font-weight:WEIGHTDefiniți font-weight pentru verificările de redare, a se vedea Gestionarea fonturilor.
font-size:SIZEDefiniți dimensiunea fontului pentru verificările de redare, a se vedea Gestionarea fonturilor.
font-spacing:SPACINGDefiniți spațierea literelor pentru verificările de redare, a se vedea Gestionarea fonturilor.
icu-flags:FLAGSDefinește indicatori pentru personalizarea comportamentului verificării calității ICU MessageFormat.
icu-tag-prefix:PREFIXSetați un prefix necesar pentru etichetele XML pentru verificarea calității ICU MessageFormat.
placeholders:NAME:NAME2:...Șiruri de caractere de poziție așteptate în traducere, a se vedea Substituenți.
replacements:FROM:TO:FROM2:TO2...Înlocuirile care trebuie efectuate la verificarea parametrilor textului rezultat (de exemplu, în Dimensiune maximă a traducerii sau Lungime 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:SOURCEMarchează acest șir ca fiind o variantă de șir cu sursă corespunzătoare. A se vedea Variante de șiruri.
regex:REGEXExpresie regulată pentru a potrivi traducerea, a se vedea Expresie regulată.
discard:NAMEDiscards flag defined on a higher level.
forbiddenIndică o traducere interzisă într-un glosar, a se vedea Traduceri interzise.
strict-sameMake the Traducere neschimbată avoid using the built-in words exceptions.
strict-formatMake format checks enforce using format even for plural forms with a single value, see Șiruri de caractere formatate.
check-glossaryActivați verificarea calității Nu respectă glosarul.
angularjs-formatActivați verificarea calității Șir de interpolare AngularJS.
c-formatActivați verificarea calității Format C.
c-sharp-formatActivați verificarea calității Format C#.
es-formatActivați verificarea calității Literale șablon ECMAScript.
i18next-interpolationActivați verificarea calității Interpolare i18next.
icu-message-formatActivați verificarea calității ICU MessageFormat.
java-printf-formatActivați verificarea calității Format Java.
java-formatActivați verificarea calității MessageFormat Java.
javascript-formatActivați verificarea calității Format JavaScript.
lua-formatActivați verificarea calității Format Lua.
object-pascal-formatActivați verificarea calității Format Object Pascal.
percent-placeholdersActivați verificarea calității Procentaj substituenți.
perl-brace-formatEnable the Perl brace format quality check.
perl-formatActivați verificarea calității Format Perl.
php-formatActivați verificarea calității Format PHP.
python-brace-formatActivați verificarea calității Format de acolade Python.
python-formatActivați verificarea calității Format Python.
qt-formatActivați verificarea calității Format Qt.
qt-plural-formatActivați verificarea calității Format plural Qt.
ruby-formatActivați verificarea calității Format Ruby.
scheme-formatActivați verificarea calității Format schemă.
vue-formatActivați verificarea calității Formatare Vue I18n.
md-textTreat text as a Markdown document, and provide Markdown syntax highlighting on the translation text area. Enables Legături Markdown, Referințe Markdown, and Sintaxă Markdown quality checks.
case-insensitiveAjustați comportamentul verificărilor pentru a nu ține cont de majuscule și minuscule. În prezent, afectează doar verificarea calității Substituenți.
safe-htmlActivați verificarea calității HTML nesigur.
urlȘirul trebuie să fie format doar dintr-un URL. Activați verificarea calității URL.
ignore-all-checksIgnorați toate verificările de calitate.
fluent-source-inner-htmlEnable the Sursă Fluent internă HTML quality check.
fluent-source-syntaxEnable the Sintaxă sursă Fluent quality check.
icu-message-formatEnable the Sintaxă ICU MessageFormat quality check.
ignore-bbcodeSăriți peste verificarea calității Marcaj BBCode.
ignore-duplicateSăriți peste verificarea calității Cuvinte consecutive duplicate.
ignore-check-glossarySăriți peste verificarea calității Nu respectă glosarul.
ignore-double-spaceSăriți peste verificarea calității Spațiu dublu.
ignore-fluent-partsSkip the Părți Fluent quality check.
ignore-fluent-referencesSkip the Referințe Fluent quality check.
ignore-fluent-target-inner-htmlSkip the Traducere Fluent intern HTML quality check.
ignore-fluent-target-syntaxSkip the Sintaxă traducere Fluent quality check.
ignore-angularjs-formatTreceți peste verificarea calității Șir de interpolare AngularJS.
ignore-automattic-components-formatSkip the Automattic components formatting quality check.
ignore-c-formatSăriți peste verificarea calității Format C.
ignore-c-sharp-formatSăriți peste verificarea calității Format C#.
ignore-es-formatSăriți peste verificarea calității Literale șablon ECMAScript.
ignore-i18next-interpolationTreceți peste verificarea calității Interpolare i18next.
ignore-icu-message-formatSăriți peste verificarea calității ICU MessageFormat.
ignore-java-printf-formatSăriți peste verificarea calității Format Java.
ignore-java-formatSăriți peste verificarea calității MessageFormat Java.
ignore-javascript-formatTreceți peste verificarea calității Format JavaScript.
ignore-lua-formatSăriți peste verificarea calității Format Lua.
ignore-object-pascal-formatSăriți peste verificarea calității Format Object Pascal.
ignore-percent-placeholdersSăriți peste verificarea calității Procentaj substituenți.
ignore-perl-brace-formatSkip the Perl brace format quality check.
ignore-perl-formatSăriți peste verificarea calității Format Perl.
ignore-php-formatSăriți peste verificarea calității Format PHP.
ignore-python-brace-formatSăriți peste verificarea calității Format de acolade Python.
ignore-python-formatSăriți peste verificarea calității Format Python.
ignore-qt-formatSăriți peste verificarea calității Format Qt.
ignore-qt-plural-formatSăriți peste verificarea calității Format plural Qt.
ignore-ruby-formatSăriți peste verificarea calității Format Ruby.
ignore-scheme-formatSăriți peste verificarea calității Format schemă.
ignore-vue-formatSăriți peste verificarea calității Formatare Vue I18n.
ignore-translatedSăriți peste verificarea calității A fost tradus.
ignore-inconsistentSăriți peste verificarea calității Inconsecvent.
ignore-rst-referencesSkip the Inconsistent reStructuredText quality check.
ignore-kashidaSăriți peste verificarea calității Literă Kashida folosită.
ignore-md-linkSăriți peste verificarea calității Legături Markdown.
ignore-md-reflinkSăriți peste verificarea calității Referințe Markdown.
ignore-md-syntaxSăriți peste verificarea calității Sintaxă Markdown.
ignore-max-lengthSăriți peste verificarea calității Lungime maximă a traducerii.
ignore-max-sizeSăriți peste verificarea calității Dimensiune maximă a traducerii.
ignore-escaped-newlineTreceți peste verificarea calității Nepotrivit \n.
ignore-end-colonSăriți peste verificarea calității Două puncte nepotrivite.
ignore-end-ellipsisSăriți peste verificarea calității Elipsă nepotrivită.
ignore-end-exclamationSăriți peste verificarea calității Semn exclamare nepotrivit.
ignore-end-stopSăriți peste verificarea calității Punct final nepotrivit.
ignore-end-interrobangSkip the Mismatched interrobang quality check.
ignore-end-questionSăriți peste verificarea calității Semn de întrebare nepotrivit.
ignore-end-semicolonSăriți peste verificarea calității Punct și virgulă nepotrivit.
ignore-newline-countSăriți peste verificarea calității Întreruperi de linie nepotrivite.
ignore-pluralsSăriți peste verificarea calității Lipsește plural.
ignore-kabyle-charactersSkip the Non‑standard characters in Kabyle quality check.
ignore-placeholdersSăriți peste verificarea calității Substituenți.
ignore-prohibited-initial-characterSkip the Prohibited initial character quality check.
ignore-punctuation-spacingSăriți peste verificarea calității Spațiere punctuație.
ignore-regexSăriți peste verificarea calității Expresie regulată.
ignore-rst-syntaxSkip the reStructuredText syntax error quality check.
ignore-reusedSkip the Traducere refolosită quality check.
ignore-same-pluralsSăriți peste verificarea calității Aceleași plurale.
ignore-begin-newlineSăriți peste verificarea calității Începe linie nouă.
ignore-begin-spaceSăriți peste verificarea calității Spații de pornire.
ignore-end-newlineSăriți peste verificarea calității Linie nouă de urmărire.
ignore-end-spaceSăriți peste verificarea calității Spațiu de urmărire.
ignore-sameSăriți peste verificarea calității Traducere neschimbată.
ignore-safe-htmlSăriți peste verificarea calității HTML nesigur.
ignore-urlSăriți peste verificarea calității URL.
ignore-xml-tagsSăriți peste verificarea calității Marcaj XML.
ignore-xml-invalidSăriți peste verificarea calității Sintaxă XML.
ignore-zero-width-spaceSăriți peste verificarea calității Spațiu cu lățime zero.
ignore-ellipsisSăriți peste verificarea calității Elipsă.
ignore-fluent-source-inner-htmlSkip the Sursă Fluent internă HTML quality check.
ignore-fluent-source-syntaxSkip the Sintaxă sursă Fluent quality check.
ignore-icu-message-formatSăriți peste verificarea calității Sintaxă ICU MessageFormat.
ignore-long-untranslatedTreceți peste verificarea calității Mult timp netradus.
ignore-multiple-failuresSăriți peste verificarea calității Mai multe verificări eșuate.
ignore-unnamed-formatTreceți peste verificarea calității Variabile multiple fără nume.
ignore-optional-pluralSăriți peste verificarea calității Fără plural.
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).
Location-based flags¶
Some flags are added to strings by default, based on their locations. This means that certain checks will be automatically enabled depending on where the string is used.
rst-text: This flag is automatically added to strings in reStructuredText files, if location extension is.rst.md-text: This flag is automatically added to strings in Markdown files, if location extension is.mdor.markdown.
Executarea controalelor¶
The enforced checks cannot be dismissed and mark string as Needs editing (see Statele de traducere). This prevents translators from hiding such checks.
Sugestie
Turning on check enforcing doesn’t enable it automatically. Some checks have to be turned on by adding the corresponding flag to the string or component flags.
This is best used with checks that can cause serious issues when used like checks for Șiruri de caractere formatate. Using for style checks like Traducere neschimbată is not recommended because dismissal is sometimes a reasonable approach in these.
The Translation quality filter can then be used to exclude strings needing editing from being committed to the version control.
Gestionarea fonturilor¶
Sugestie
Fonturile încărcate în Weblate sunt folosite doar în scopul verificării Dimensiune maximă a traducerii, ele nu au niciun efect în interfața cu utilizatorul Weblate.
Verificarea Dimensiune 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).
Weblate font management tool in Fonts under the Operations menu of your translation project provides interface to upload and manage fonts. TrueType or OpenType fonts can be uploaded, set up font-groups and use those in the check.
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/max-size:300:5Defines maximal width in pixels and, optionally, the maximum number of lines (word wrapping is applied).
font-family:ubuntuDefinește grupul de fonturi care urmează să fie utilizat prin specificarea identificatorului acestuia.
font-size:22Defineș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 Custom quality checks, add-ons, automatic suggestions and auto-fixes.
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”.
"""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
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.
"""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