Перевірки і виправлення

Перевірки якості допомагають знайти типові помилки перекладачів, що забезпечує якість перекладу. Підсумками перевірок можна нехтувати, якщо ви впевнені у їхній хибності.

Одразу після надсилання перекладу, який не проходить перевірки, Weblate покаже користувачеві повідомлення про помилку:

../_images/checks.webp

Автоматичні виправлення

Окрім перевірок, Weblate може автоматично виправляти деякі типові помилки у рядках перекладу. Користуйтеся цим обережно, щоб не наробити помилок.

Дивись також

AUTOFIX_LIST

Засіб заміни завершальних багатокрапок

Замінити кінцеві крапки (...) на багатокрапку () для забезпечення однорідності зі початковим рядком.

Вилучення символів нульової ширини

Зазвичай, символи нульової ширини є зайвими у перекладі. Це виправлення призводить до вилучення таких символів, якщо їх немає у початковому рядку.

Вилучення керівних символів

Вилучає усі керівні символи з перекладу.

Деванагарі данда

Замінює помилкову кінцеву крапку у деванагарі на данду ().

Щільність знаків

Added in version 5.3.

Забезпечує належні пробіли навколо знаків пунктуації у французькій та бретонській мовах.

Це виправлення можна вимкнути за допомогою прапорця ignore-punctuation-spacing (який також вимикає Щільність знаків).

Небезпечне чищення коду HTML

Якщо увімкнено за допомогою прапорця safe-html, виконує виправлення розмітки HTML.

Дивись також

Небезпечний HTML-код

Засіб виправлення кінцевих і початкових пробілів

Робить початкові і кінцеві комплекти пробілів однаковими у перекладі і початковому рядку. Поведінку можна скоригувати за допомогою прапорців ignore-begin-space і ignore-end-space з метою пропускання обробки частин рядка.

Перевірки якості

Weblate застосовує до рядків широкий діапазон перевірок якості. У наступному розділі докладно описано усі ці перевірки. Також передбачено специфічні для мов перевірки. Якщо у звітах вади ви знайшли помилку, повідомте нам про неї.

Перевірки перекладів

Виконуються після кожної зміни у перекладі, допомагаючи перекладачам підтримувати високу якість перекладів.

Розмітка BBCode

Підсумок:

BB-код у перекладі не збігається з BB-кодом у джерелі

Область:

перекладені рядки

Клас перевірки:

weblate.checks.markup.BBCodeCheck

Перевірити ідентифікатор:

bbcode

Прапорець для нехтування:

ignore-bbcode

BBCode використовує просту розмітку, наприклад, надає змогу позначити важливі частини повідомлення напівжирним або курсивним шрифтом.

Ця перевірка забезпечує наявність розмітки у перекладі.

Примітка

Спосіб виявлення BBCode у поточній версії є доволі простим, тому ця перевірка може помилково повідомляти про хиби у перекладі.

Послідовне повторення слів

Added in version 4.1.

Підсумок:

Текст містить те саме слово двічі поспіль:

Область:

перекладені рядки

Клас перевірки:

weblate.checks.duplicate.DuplicateCheck

Перевірити ідентифікатор:

duplicate

Прапорець для нехтування:

ignore-duplicate

Перевіряє переклад на відсутність послідовного дублювання слів. Дублювання, зазвичай, вказує на помилку у перекладі.

Підказка

До цієї перевірки включено специфічні для мови правила для уникнення хибного спрацьовування. Якщо у вашому випадку рядок без помилок не проходить перевірки, повідомте про це нас. Див. розділ Надсилання звітів щодо вад у Weblate.

Не відповідає вимогам глосарію

Added in version 4.5.

Підсумок:

Переклад не слідує термінам, які визначено у глосарії.

Область:

перекладені рядки

Клас перевірки:

weblate.checks.glossary.GlossaryCheck

Перевірити ідентифікатор:

check_glossary

Прапорець для вмикання:

check-glossary

Прапорець для нехтування:

ignore-check-glossary

Цю перевірку має бути увімкнено за допомогою прапорця check-glossary (див. Налаштовування поведінки за допомогою прапорців). Будь ласка, зважте на таке, перш ніж її вмикати:

  • Виконує точну перевірку збігу рядків. У глосарії мають міститися терміни в усіх варіантах.

  • Зіставлення всіх рядків з глосарієм ресурсовитратна операція. Вона сповільнює будь-які дії у Weblate, які стосуються виконання перевірок, подібних до імпортування рядків або перекладу.

  • Також використовує непридатні до перекладу терміни з глосарія у Переклад не змінено.

Подвійний пробіл

Підсумок:

Переклад містить подвійний пробіл

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.DoubleSpaceCheck

Перевірити ідентифікатор:

double_space

Прапорець для нехтування:

ignore-double-space

Перевіряє, чи немає у перекладі подвійних пробілів, щоб уникнути хибних спрацювань інших пов’язаних із пробілами перевірок.

Перевірка вважається пройденою, якщо буде виявлено подвійний пробіл у початковому рядку, що означатиме, що подвійний пробіл було використано навмисно.

Частини Fluent

Added in version 5.0.

Підсумок:

Частини Fluent мають бути відповідними

Область:

перекладені рядки

Клас перевірки:

weblate.checks.fluent.parts.FluentPartsCheck

Перевірити ідентифікатор:

fluent-parts

Прапорець для вмикання:

fluent-parts

Прапорець для нехтування:

ignore-fluent-parts

Кожне повідомлення Fluent може мати необов’язкове значення (основний текстовий вміст) та необов’язкові атрибути, кожен з яких є «частиною» повідомлення. Усі ці частини перебувають в одному блоці з використанням Fluent-подібного синтаксису для визначення атрибутів. Приклад:

This is the Message value
.title = This is the title attribute
.alt = This is the alt attribute

Ця перевірка забезпечує наявність значення у перекладеному повідомленні, якщо воно є у початковому повідомленні, або відсутність значення, якщо його немає у початковому повідомленні. Також буде перевірено, що усі атрибути початкового повідомлення є у перекладі, без будь-яких додавань.

Примітка

Ця перевірка є незастосовною до термінів Fluent, оскільки терміни завжди мають значення, а атрибути терміну загалом є специфічними для локалей (використовуються для граматичних правил тощо), вони мають бути не в усіх перекладах.

Дивись також

Атрибути Fluent

Посилання Fluent

Added in version 5.0.

Підсумок:

Посилання Fluent мають бути відповідними

Область:

перекладені рядки

Клас перевірки:

weblate.checks.fluent.references.FluentReferencesCheck

Перевірити ідентифікатор:

fluent-references

Прапорець для вмикання:

fluent-references

Прапорець для нехтування:

ignore-fluent-references

Повідомлення або термін Fluent може посилатися на інше повідомлення, термін, атрибут або змінну. Приклад:

Here is a { message }, a { message.attribute } a { -term } and a { $variable }.
Within a function { NUMBER($num, minimumFractionDigits: 2) }

Загалом, вважається, що у перекладених повідомленнях або термінах містяться ті самі посилання, що і у початкових даних, хоча і не обов’язково у тому самому порядку. Отже, ця перевірка забезпечує використання тих самих посилань із їхніми значеннями, що і у початкових даних, у перекладах, у тій самій кількості без жодних додавань. Для повідомлень також буде перевірено, що у кожному атрибуті у перекладі буде використано ті самі посилання, що і у відповідному атрибуті початкових даних.

Якщо у початкових даних або перекладі містяться вирази вибору Fluent, кожному можливому варіанту у початковому коді має відповідати принаймні один варіант у перекладі із тими самими посиланнями, і навпаки.

Більше того, якщо посилання на змінну є одразу у виборі виразу вибору і одному з його варіантів, можна також перевірити, чи в усіх варіантах міститься це посилання. Припущення може полягати у тому, що ключ варіанта може робити посилання зайвим для варіанта. Приклад:

{ $num ->
    [one] an apple
   *[other] { $num } apples
}

Тут, з метою перевірки, вважатиметься, що варіант [one] також має містити посилання $num.

Втім, посилання у виборі виразу вибору, яке може бути лише змінною атрибута терміна у синтаксисі Fluent, не буде вважатися саме собою обов’язковим посиланням, оскільки вони не формують самі текстові дані рядка, які побачить кінцевий користувач, а наявність виразу вибору вважатиметься специфічною для локалі. Приклад:

{ -term.starts-with-vowel ->
    [yes] an { -term }
   *[no] a { -term }
}

Тут посилання -term.starts-with-vowel не повинно бути у перекладах, а посилання -term має бути.

Внутрішній HTML у перекладі Fluent

Added in version 5.0.

Підсумок:

Призначення Fluent має бути коректним відповідним внутрішнім HTML

Область:

перекладені рядки

Клас перевірки:

weblate.checks.fluent.inner_html.FluentTargetInnerHTMLCheck

Перевірити ідентифікатор:

fluent-target-inner-html

Прапорець для вмикання:

fluent-target-inner-html

Прапорець для нехтування:

ignore-fluent-target-inner-html

Ця перевірка забезпечує наявність тих сами елементів HTML у перекладеному значенні повідомлення або терміна.

По-перше, якщо початкове значення не проходить перевірку Внутрішній HTML коду Fluent, ця перевірка не призводить до будь-яких наслідків. Якщо це не так, перекладене значення також буде перевірено на відповідність тим самим умовам.

По-друге, елементи HTML, які буде виявлено у перекладеному значенні, буде порівняно із елементами HTML, які виявлено у початковому значенні. Два елементи вважатимуться відповідними, якщо у них точно та сама назва теґу, точно ті самі атрибути і значення, а усі успадковані елементи також є відповідними. Ця перевірка забезпечує наявність усіх елементів початкового коду у перекладі, у тій самій кількості, без додавання додаткових елементів. Якщо у значенні декілька елементів, у перекладі вони можуть з’являтися в іншому порядку.

Якщо у початкових даних або перекладі містяться вирази вибору Fluent, кожному можливому варіанту у початковому коді має відповідати принаймні один варіант у перекладі із тими самими елементами HTML, і навпаки.

При використанні Fluent у поєднанні з пакунком DOM Fluent, ця перевірка забезпечує наявність у перекладі усіх обов’язкових елементів data-l10n-name початкового коду або будь-яких дозволених вбудованих елементів, зокрема <br>.

Наприклад, такий початковий код:

Source message <img data-l10n-name="icon"/> with icon

має відповідати:

Translated message <img data-l10n-name="icon"/> with icon

але не:

Translated message <img data-l10n-name="new-val"/> with icon

і не

Translated message <br data-l10n-name="icon"/> with no icon

Синтаксис перекладу Fluent

Added in version 5.0.

Підсумок:

Синтаксична помилка Fluent у перекладі

Область:

перекладені рядки

Клас перевірки:

weblate.checks.fluent.syntax.FluentTargetSyntaxCheck

Перевірити ідентифікатор:

fluent-target-syntax

Прапорець для вмикання:

fluent-target-syntax

Прапорець для нехтування:

ignore-fluent-target-syntax

У Weblate рядки Fluent використовують синтаксис Fluent для посилань та змінних, але також для складніших речей, зокрема визначення атрибутів та варіантів вибору, зокрема форм множини. Ця перевірка забезпечує коректність синтаксису Fluent перекладу.

Форматовані рядки

Перевіряє, чи є однаковим форматування у початковому рядку і перекладі. Пропускання рядків форматування у перекладі, зазвичай, спричиняє серйозні проблеми, тому форматування у рядках перекладів має, зазвичай, збігатися із форматуванням у початковому рядку.

У Weblate передбачено підтримку рядків форматування декількох мов програмування. Перевірка не вмикається автоматично, а лише якщо рядок позначено відповідним прапорцем (наприклад c-format для форматування C). Gettext додає такі прапорці автоматично, але вам, ймовірно, доведеться додавати прапорці вручну для файлів в інших форматах, або якщо ваші файли PO не створено за допомогою xgettext.

Більшість перевірок форматування надають змогу пропускати рядки форматування для форм множини, якщо така форма множини є єдиною. Уможливлює для перекладачів написання кращих рядків для цих випадків (Одне яблуко замість %d яблуко). Вимикається прапорцем strict-format.

Прапорці можна налаштувати на рівні рядка перекладу (див. Додаткові відомості щодо початкових рядків) або у складнику. Визначити перевірку на рівні складника простіше, але це може призвести до помилкових спрацювань, якщо рядок не позначено як форматований, але у ньому все ж використано синтаксис рядків форматування.

Підказка

Якщо специфічна перевірка форматування є недоступною у Weblate, ви можете скористатися загальною перевіркою на символи-замінники.

Окрім перевірки, Weblate підсвітить рядки форматування для спрощення вставлення їх до рядків перекладу:

../_images/format-highlight.webp

Рядок інтерполяції AngularJS

Підсумок:

Рядки інтерполяції AngularJS не відповідають джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.angularjs.AngularJSInterpolationCheck

Перевірити ідентифікатор:

angularjs_format

Прапорець для вмикання:

angularjs-format

Прапорець для нехтування:

ignore-angularjs-format

Приклад рядка іменованого форматування:

Your balance is {{amount}} {{ currency }}

Формат C

Підсумок:

Рядок, формату C, не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.CFormatCheck

Перевірити ідентифікатор:

c_format

Прапорець для вмикання:

c-format

Прапорець для нехтування:

ignore-c-format

Приклад рядка простого форматування:

There are %d apples

Приклад рядка позиційного форматування:

Your balance is %1$d %2$s

Формат C#

Підсумок:

Рядок формату C# не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.CSharpFormatCheck

Перевірити ідентифікатор:

c_sharp_format

Прапорець для вмикання:

c-sharp-format

Прапорець для нехтування:

ignore-c-sharp-format

Приклад рядка позиційного форматування:

There are {0} apples

Літерали шаблонів ECMAScript

Підсумок:

Літерали шаблонів ECMAScript не відповідають джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.ESTemplateLiteralsCheck

Перевірити ідентифікатор:

es_format

Прапорець для вмикання:

es-format

Прапорець для нехтування:

ignore-es-format

Приклад інтерполяції:

There are ${number} apples

i18next інтерполяція

Added in version 4.0.

Підсумок:

Інтерполяція i18next не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.I18NextInterpolationCheck

Перевірити ідентифікатор:

i18next_interpolation

Прапорець для вмикання:

i18next-interpolation

Прапорець для нехтування:

ignore-i18next-interpolation

Приклад інтерполяції:

There are {{number}} apples

Приклад вкладеності:

There are $t(number) apples

MessageFormat ICU

Added in version 4.9.

Підсумок:

Помилки синтаксису та/або невідповідності заповнювача в рядках ICU MessageFormat.

Область:

перекладені рядки

Клас перевірки:

weblate.checks.icu.ICUMessageFormatCheck

Перевірити ідентифікатор:

icu_message_format

Прапорець для вмикання:

icu-message-format

Прапорець для нехтування:

ignore-icu-message-format

Приклад інтерполяції:

There {number, plural, one {is one apple} other {are # apples}}.

У цій перевірці передбачено підтримку чистих повідомлень MessageFormat ICU, а також ICU із простими теґами XML. Ви можете налаштувати поведінку цієї перевірки за допомогою icu-flags:*, або доповнивши підтримку XML, або вимкнувши певні підлеглі перевірки. Наприклад, вказаний нижче прапорець вмикає підтримку XML і вимикає перевірку підповідомлень із формами множини:

icu-message-format, icu-flags:xml:-plural_selectors

xml

Увімкнути підтримку простих теґів XML. Типово, обробку теґів XML оптимізовано. Окремі символи < буде проігноровано, якщо вони не є природною частиною теґу.

strict-xml

Увімкнути підтримку строгої обробки теґів XML. Усі символи < має бути екрановано, якщо вони не є частиною теґу.

-highlight

Вимкнути підсвічування замінників у редакторі.

-require_other

Вимкнути вимогу щодо того, що підповідомлення повинні належати до селектора other.

-submessage_selectors

Пропустити перевірку того, чи селектори підповідомлень відповідають джерелу.

-types

Пропустити перевірку відповідності типів замінників джерелу.

-extra

Пропустити перевірку того, чи є замінники, яких немає у початковому рядку.

-missing

Пропустити перевірку того, чи не пропущено замінники, які були у початковому рядку.

Крім того, якщо не увімкнено strict-xml, але увімкнено xml, ви можете скористатися прапорцем icu-tag-prefix:ПРЕФІКС, щоб вказати, що усі теґи XML мають починатися із вказаного рядка. Наприклад, вказаний нижче прапорець призводить до того, що відповідність теґами XML встановлюється, лише якщо вони починаються з <x::

icu-message-format, icu-flags:xml, icu-tag-prefix:"x:"

Тобто, відповідність буде встановлено для <x:link>натисніть тут</x:link>, але не для <strong>це</strong>.

Формат Java

Підсумок:

Рядок формату Java не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.JavaFormatCheck

Перевірити ідентифікатор:

java_printf_format

Прапорець для вмикання:

java-printf-format

Прапорець для нехтування:

ignore-java-printf-format

Приклад рядка простого форматування:

There are %d apples

Приклад рядка позиційного форматування:

Your balance is %1$d %2$s

Змінено в версії 4.14: Зазвичай, перемикається прапорцем java-format, було змінено для сумісності із GNU gettext.

Формат Java Message

Підсумок:

Рядок формату Java Message не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.JavaMessageFormatCheck

Перевірити ідентифікатор:

java_format

Прапорець для безумовного вмикання:

java-format

Прапорець для вмикання автовиявлення:

auto-java-messageformat вмикає перевірку, лише якщо у початковому рядку є рядок форматування

Прапорець для нехтування:

ignore-java-format

Приклад рядка позиційного форматування:

There are {0} apples

Змінено в версії 4.14: Зазвичай, перемикається прапорцем java-messageformat, було змінено для сумісності із GNU gettext.

Ця перевірка визначає, чи є рядок форматування коректним для класу Java MessageFormat. Окрім встановлення відповідності рядків форматування у фігурних дужках, також буде виконано перевірку відповідності одинарних лапок специфічного призначення. Одинарні лапки має бути записано як ''. Якщо у лапок немає пари, обробник вважатиме їх початком цитування і не показуватиме при обробці рядка.

Формат JavaScript

Підсумок:

Рядок, формату JavaScript, не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.JavaScriptFormatCheck

Перевірити ідентифікатор:

javascript_format

Прапорець для вмикання:

javascript-format

Прапорець для нехтування:

ignore-javascript-format

Приклад рядка простого форматування:

There are %d apples

Формат Lua

Підсумок:

Рядок, формату Lua, не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.LuaFormatCheck

Перевірити ідентифікатор:

lua_format

Прапорець для вмикання:

lua-format

Прапорець для нехтування:

ignore-lua-format

Приклад рядка простого форматування:

There are %d apples

Форматування Object Pascal

Підсумок:

Рядок форматування Object Pascal не збігається із джерелом

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.ObjectPascalFormatCheck

Перевірити ідентифікатор:

object_pascal_format

Прапорець для вмикання:

object-pascal-format

Прапорець для нехтування:

ignore-object-pascal-format

Приклад рядка простого форматування:

There are %d apples

Відсоток заповнювачів

Added in version 4.0.

Підсумок:

Відсоток заповнювачів не відповідає джерелам

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.PercentPlaceholdersCheck

Перевірити ідентифікатор:

percent_placeholders

Прапорець для вмикання:

percent-placeholders

Прапорець для нехтування:

ignore-percent-placeholders

Приклад рядка простого форматування:

There are %number% apples

Дивись також

Форматовані рядки,

Формат дужок Perl

Підсумок:

Рядок формату дужок Perl не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.PerlBraceFormatCheck

Перевірити ідентифікатор:

perl_brace_format

Прапорець для вмикання:

perl-brace-format

Прапорець для нехтування:

ignore-perl-brace-format

Приклад рядка іменованого форматування:

There are {number} apples

Формат Perl

Підсумок:

Рядок формату Perl не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.PerlFormatCheck

Перевірити ідентифікатор:

perl_format

Прапорець для вмикання:

perl-format

Прапорець для нехтування:

ignore-perl-format

Приклад рядка простого форматування:

There are %d apples

Приклад рядка позиційного форматування:

Your balance is %1$d %2$s

Формат PHP

Підсумок:

Рядок, формату PHP, не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.PHPFormatCheck

Перевірити ідентифікатор:

php_format

Прапорець для вмикання:

php-format

Прапорець для нехтування:

ignore-php-format

Приклад рядка простого форматування:

There are %d apples

Приклад рядка позиційного форматування:

Your balance is %1$d %2$s

Формат дужок Python

Підсумок:

Рядок, формату Python brace, не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.PythonBraceFormatCheck

Перевірити ідентифікатор:

python_brace_format

Прапорець для вмикання:

python-brace-format

Прапорець для нехтування:

ignore-python-brace-format

Простий рядок форматування:

There are {} apples

Приклад рядка іменованого форматування:

Your balance is {amount} {currency}

Формат Python

Підсумок:

Рядок, формату Python, не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.PythonFormatCheck

Перевірити ідентифікатор:

python_format

Прапорець для вмикання:

python-format

Прапорець для нехтування:

ignore-python-format

Простий рядок форматування:

There are %d apples

Приклад рядка іменованого форматування:

Your balance is %(amount)d %(currency)s

Формат Qt

Підсумок:

Рядок формату Qt не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.qt.QtFormatCheck

Перевірити ідентифікатор:

qt_format

Прапорець для вмикання:

qt-format

Прапорець для нехтування:

ignore-qt-format

Приклад рядка позиційного форматування:

There are %1 apples

Формат Qt у множині

Підсумок:

Рядок формату Qt у множині не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.qt.QtPluralCheck

Перевірити ідентифікатор:

qt_plural_format

Прапорець для вмикання:

qt-plural-format

Прапорець для нехтування:

ignore-qt-plural-format

Приклад рядка форматування форм множини:

There are %Ln apple(s)

Формат Ruby

Підсумок:

Рядок формату Ruby не збігається з джерелом

Область:

перекладені рядки

Клас перевірки:

weblate.checks.ruby.RubyFormatCheck

Перевірити ідентифікатор:

ruby_format

Прапорець для вмикання:

ruby-format

Прапорець для нехтування:

ignore-ruby-format

Приклад рядка простого форматування:

There are %d apples

Приклад рядка позиційного форматування:

Your balance is %1$f %2$s

Приклад рядка іменованого форматування:

Your balance is %+.2<amount>f %<currency>s

Рядок із іменованим шаблоном:

Your balance is %{amount} %{currency}

Формат Scheme

Підсумок:

Рядок форматування Scheme не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.SchemeFormatCheck

Перевірити ідентифікатор:

scheme_format

Прапорець для вмикання:

scheme-format

Прапорець для нехтування:

ignore-scheme-format

Приклад рядка простого форматування:

There are ~d apples

Форматування I18n Vue

Підсумок:

Форматування I18n Vue не збігається із початковим рядком

Область:

перекладені рядки

Клас перевірки:

weblate.checks.format.VueFormattingCheck

Перевірити ідентифікатор:

vue_format

Прапорець для вмикання:

vue-format

Прапорець для нехтування:

ignore-vue-format

Іменоване форматування:

There are {count} apples

Форматування i18n Rails:

There are %{count} apples

Пов’язані повідомлення локалі:

@:message.dio @:message.the_world!

Вже перекладено

Підсумок:

Цей рядок перекладено раніше

Область:

усі рядки

Клас перевірки:

weblate.checks.consistency.TranslatedCheck

Перевірити ідентифікатор:

translated

Прапорець для нехтування:

ignore-translated

Означає, що рядок вже було перекладено. Таке може трапитися, якщо переклади було скасовано у системі керування версіями або втрачено у інший спосіб.

Неузгодженість

Підсумок:

Цей рядок має більше одного перекладу в цьому проєкті або не перекладений у деяких складниках.

Область:

усі рядки

Клас перевірки:

weblate.checks.consistency.ConsistencyCheck

Перевірити ідентифікатор:

inconsistent

Прапорець для нехтування:

ignore-inconsistent

Weblate шукає різні переклади однакових рядків в усьому проєкті, щоб забезпечити однорідність перекладів.

Ця перевірка вважається не пройденою, якщо у межах проєкту буде знайдено різні переклади одного рядка. Неоднорідність буде показано серед інших даних щодо перекладу. Знайти інші переклади рядка можна на вкладці Інші входження.

Цю перевірку буде застосовано до всіх складників у проєкті, для яких увімкнено Дозволити поширення перекладу.

Підказка

З міркувань швидкодії перевірка може шукати не усі неузгодженості — кількість відповідників обмежено.

Примітка

Перевірка також вважається не пройденою, якщо рядок перекладено в одному складнику проєкту і не перекладено в іншому. Нею можна скористатися як швидким способом обробки рядків, які не перекладено у деяких складниках: достатньо просто натиснути кнопку Використати цей переклад, яку показано для кожного з рядків на вкладці Інші входження.

Ви можете скористатися додатком Автоматичний переклад для автоматизації нових доданих рядків, які вже було перекладено в іншому складнику.

Використано літеру кашида

Підсумок:

Декоративні букви кашиди не повинні використовуватися

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.KashidaCheck

Перевірити ідентифікатор:

kashida

Прапорець для нехтування:

ignore-kashida

Декоративні літери кашиди не повинні використовуватися. Такі літери також називають татвілами.

Дивись також

Кашида у Вікіпедії

Markdown посилання

Підсумок:

Посилання Markdown не збігаються з джерелом

Область:

перекладені рядки

Клас перевірки:

weblate.checks.markup.MarkdownRefLinkCheck

Перевірити ідентифікатор:

md-reflink

Прапорець для вмикання:

md-text

Прапорець для нехтування:

ignore-md-reflink

Посилання Markdown не збігаються з джерелом.

Дивись також

Посилання у Markdown

Синтаксис Markdown

Підсумок:

Синтаксис Markdown не відповідає джерелу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.markup.MarkdownSyntaxCheck

Перевірити ідентифікатор:

md-syntax

Прапорець для вмикання:

md-text

Прапорець для нехтування:

ignore-md-syntax

Синтаксис Markdown не відповідає джерелу

Максимальна довжина перекладу

Підсумок:

Переклад не перевищує заданої довжини

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.MaxLengthCheck

Перевірити ідентифікатор:

max-length

Прапорець для вмикання:

max-length

Прапорець для нехтування:

ignore-max-length

Перевіряє, чи прийнятною є довжина перекладів і чи вкладаються вони у доступне місце. У цій перевірці враховується лише довжина перекладу у символах.

На відміну від інших перевірок, прапорець слід встановити як пару ключ:значення, наприклад max-length:100.

Підказка

Ця перевірка використовує кількість символів — це значення може бути не найкращим варіантом, якщо для показу тексту використовується пропорційний шрифт. Справжню довжину тексту можна оцінити за допомогою перевірки Найбільший розмір перекладу.

Крім того, може стати у пригоді прапорець replacements: для розгортання замінників перед перевіркою рядка.

Якщо також використано прапорець xml-text, в обчисленнях довжини буде проігноровано теґи XML.

Найбільший розмір перекладу

Підсумок:

Перекладений текст не повинен перевищувати заданий розмір

Область:

перекладені рядки

Клас перевірки:

weblate.checks.render.MaxSizeCheck

Перевірити ідентифікатор:

max-size

Прапорець для вмикання:

max-size

Прапорець для нехтування:

ignore-max-size

Перекладений текст не повинен перевищувати заданий розмір. Програма обробляє текст із перенесенням рядків і перевіряє, чи вкладається він у вказані обмеження.

Для перевірки потрібні два параметри — максимальна ширина і максимальна кількість рядків. Якщо кількість рядків не вказано, буде перевірено однорядковий текст.

Ви також можете налаштувати використаний шрифт за допомогою інструкції font-* (див. Налаштовування поведінки за допомогою прапорців). Наприклад, вказані нижче прапорці перекладу встановлюють, що запис тексту шрифтом ubuntu розміру 22 має вкладатися у два рядки і ширину у 500 пікселів:

max-size:500:2, font-family:ubuntu, font-size:22

Підказка

Вам варто встановити інструкції font-* на рівні складника, щоб той самий шрифт було використано для всіх рядків складника. Ви можете перевизначити значення на рівні рядка, якщо вам потрібно виконати специфічну перевірку для окремого рядка.

Крім того, може стати у пригоді прапорець replacements: для розгортання замінників перед перевіркою рядка.

Якщо також використано прапорець xml-text, в обчисленнях довжини буде проігноровано теґи XML.

Не збіглися \n

Підсумок:

Кількість літералів n у перекладі не збігається з джерелом

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EscapedNewlineCountingCheck

Перевірити ідентифікатор:

escaped_newline

Прапорець для нехтування:

ignore-escaped-newline

Зазвичай, екрановані символи розриву рядка є важливими для форматування виведених програмою даних. Перевірка вважається не пройденою, якщо кількість записів \n у перекладі не збігається із кількістю у початковому рядку.

Невідповідність двокрапки

Підсумок:

Джерело та переклад не закінчуються двокрапкою

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndColonCheck

Перевірити ідентифікатор:

end_colon

Прапорець для нехтування:

ignore-end-colon

Перевіряє, чи правильно відтворено двокрапки з початкового рядка у перекладі. Також виконується перевірка двокрапок у мовах, де вони не використовуються (китайській і японській).

Невідповідність багатокрапок

Підсумок:

Джерело і переклад не завершуються трикрапкою

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndEllipsisCheck

Перевірити ідентифікатор:

end_ellipsis

Прапорець для нехтування:

ignore-end-ellipsis

Перевіряє, чи відтворено кінцеві три крапки з початкового рядка у перекладі. Виконується перевірка лише для справжнього символу трьох крапок (), а не трьох послідовних крапок (...).

Символ багатокрапки, зазвичай, краще виглядає у друкованому варіанті і краще обробляється системами озвучення тексту.

Невідповідність знаків оклику

Підсумок:

Джерело та переклад не закінчуються знаком оклику

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndExclamationCheck

Перевірити ідентифікатор:

end_exclamation

Прапорець для нехтування:

ignore-end-exclamation

Перевіряє, чи правильно відтворено знаки оклику з початкового рядка у перекладі. Також виконується перевірка знаків оклику у мовах, де вони не використовуються (китайській, японській, корейській, вірменській, лімбу, м’янмській та нко).

Невідповідність кінцевої крапки

Підсумок:

Джерело і переклад не завершуються кінцевою крапкою

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndStopCheck

Перевірити ідентифікатор:

end_stop

Прапорець для нехтування:

ignore-end-stop

Перевіряє, чи правильно відтворено крапки з початкового рядка у перекладі. Також виконується перевірка крапок у мовах, де вони не використовуються (китайській, японській, деванагарі та урду).

Дивись також

Крапка у Вікіпедії

Невідповідність знаків питання

Підсумок:

Джерело та переклад не закінчуються знаком питання

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndQuestionCheck

Перевірити ідентифікатор:

end_question

Прапорець для нехтування:

ignore-end-question

Перевіряє, чи правильно відтворено знаки питання з початкового рядка у перекладі. Також виконується перевірка знаків питання у мовах, де вони не використовуються (вірменській, арабській, китайській, корейській, японській, ефіопській, ваї або коптській).

Невідповідність знаків інтерробенга

Підсумок:

Джерело і переклад не завершуються інтерробенгом

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndInterrobangCheck

Перевірити ідентифікатор:

end_Interrobang

Прапорець для нехтування:

ignore-end-Interrobang

Перевіряє, чи відтворено позначки інтерробенга з початкового рядка у перекладі. Уможливлює перемикання між «!?» і «?!».

Невідповідність крапки з комою

Підсумок:

Джерело і переклад не завершуються крапкою з комою

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndSemicolonCheck

Перевірити ідентифікатор:

end_semicolon

Прапорець для нехтування:

ignore-end-semicolon

Перевіряє, чи відтворено кінцеві двокрапки з початкового рядка у перекладі.

Розбіжність розривів рядків

Підсумок:

Кількість знаків нових рядків у перекладі не збігається з джерелом

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.NewLineCountCheck

Перевірити ідентифікатор:

newline-count

Прапорець для нехтування:

ignore-newline-count

Зазвичай, символи розриву рядка є важливими для форматування виведених програмою даних. Перевірка вважається не пройденою, якщо кількість перенесень рядків у перекладі не збігається із кількістю у початковому рядку.

Бракує множини

Підсумок:

Деякі форми множини не перекладено

Область:

перекладені рядки

Клас перевірки:

weblate.checks.consistency.PluralsCheck

Перевірити ідентифікатор:

plurals

Прапорець для нехтування:

ignore-plurals

Перевіряє, чи було перекладено усіх форми множини початкового рядка. Специфіку використання кожної з форм множини, яку використано, можна знайти у визначенні рядка.

Якщо деякі з форм множини пропущено, у деяких випадках користувачу буде показано порожній рядок замість форми множини.

Заповнювачі

Підсумок:

У перекладі не вистачає деяких замінників

Область:

перекладені рядки

Клас перевірки:

weblate.checks.placeholders.PlaceholderCheck

Перевірити ідентифікатор:

placeholders

Прапорець для вмикання:

placeholders

Прапорець для нехтування:

ignore-placeholders

Змінено в версії 4.3: Ви можете використовувати формальний вираз як замінник.

Змінено в версії 4.13: Із прапорцем case-insensitive програма не зважатиме на регістр символів у символах-замінника.

У перекладі пропущено деякі з символів-замінників. Символи-замінники видобуваються з файла перекладу або визначаються вручну за допомогою прапорця placeholders. Декілька символів-замінників можна відокремити двокрапкою, рядки з пробілами слід вказувати у лапках:

placeholders:$URL$:$TARGET$:"some long text"

Якщо ви знаєте синтаксичну конструкцію для замінників, ви можете скористатися регулярним виразом:

placeholders:r"%[^% ]%"

Також можна вказати, що не слід враховувати регістр символів у символах-замінниках:

placeholders:$URL$:$TARGET$,case-insensitive

Щільність знаків

Підсумок:

Пропущений нерозривний пробіл перед подвійним знаком пунктуації

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.PunctuationSpacingCheck

Перевірити ідентифікатор:

punctuation_spacing

Прапорець для нехтування:

ignore-punctuation-spacing

Перевіряє, чи є нерозривний пробіл перед символом пунктуації, що складається з двох частин (знаком оклику, знаком питання, крапкою з комою та двокрапкою). Правило щодо додавання пробілу використовується лише у деяких мовах, зокрема французькій та бретонській, де це правило є частиною типографії.

Регулярний вираз

Підсумок:

Переклад не відповідає регулярному виразу

Область:

перекладені рядки

Клас перевірки:

weblate.checks.placeholders.RegexCheck

Перевірити ідентифікатор:

regex

Прапорець для вмикання:

regex

Прапорець для нехтування:

ignore-regex

Переклад не відповідає формальному виразу. Вираз або видобувається з файла перекладу, або визначається вручну за допомогою прапорця regex:

regex:^foo|bar$

Повторно використаний переклад

Added in version 4.18.

Підсумок:

Різні рядки перекладено однаково.

Область:

перекладені рядки

Клас перевірки:

weblate.checks.consistency.ReusedCheck

Перевірити ідентифікатор:

reused

Прапорець для нехтування:

ignore-reused

Перевірка, яка вважається непройденою, якщо той самий переклад використано для інших початкових рядків. Такі переклади може бути використано навмисне, але вони можуть заплутати користувача.

Однакова множина

Підсумок:

Деякі форми множини перекладені однаково

Область:

перекладені рядки

Клас перевірки:

weblate.checks.consistency.SamePluralsCheck

Перевірити ідентифікатор:

same-plurals

Прапорець для нехтування:

ignore-same-plurals

Перевірка вважається не пройденою, якщо у перекладі усі форми множини є однаковими. У більшості мов форми множини мають бути різними.

Перехід у новий рядок

Підсумок:

Джерело і переклад не починаються з переходу у новий рядок

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.BeginNewlineCheck

Перевірити ідентифікатор:

begin_newline

Прапорець для нехтування:

ignore-begin-newline

Символи розриву рядка, зазвичай, з’являються у початкових рядках з певних причин. Пропускання або додавання цих символів може призвести до проблем із форматуванням при використанні перекладеного тексту.

Початкові пропуски

Підсумок:

Джерело і переклад не починаються з однакового числа пропусків

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.BeginSpaceCheck

Перевірити ідентифікатор:

begin_space

Прапорець для нехтування:

ignore-begin-space

Пробіл на початку рядка зазвичай використовується для відступів у інтерфейсі, тому його важливо зберігати.

Кінцевий знак нового рядка

Підсумок:

Джерело і переклад не завершуються переходом у новий рядок

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndNewlineCheck

Перевірити ідентифікатор:

end_newline

Прапорець для нехтування:

ignore-end-newline

Символи розриву рядка, зазвичай, з’являються у початкових рядках з певних причин. Пропускання або додавання цих символів може призвести до проблем із форматуванням при використанні перекладеного тексту.

Дивись також

Перехід у новий рядок

Кінцеві пропуски

Підсумок:

Джерело і переклад не завершуються пропуском

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.EndSpaceCheck

Перевірити ідентифікатор:

end_space

Прапорець для нехтування:

ignore-end-space

Перевіряє, чи відтворено кінцеві крапки з початкового рядка у перекладі.

Кінцевий пробіл зазвичай використовується для відокремлення сусідніх елементів, тому його вилучення може призвести до помилок при показі тексту.

Переклад не змінено

Підсумок:

Джерело і переклад збігаються

Область:

перекладені рядки

Клас перевірки:

weblate.checks.same.SameCheck

Перевірити ідентифікатор:

same

Прапорець для нехтування:

ignore-same

Вважається не пройденою, якщо початковий рядок збігається з перекладом, аж до принаймні одної з форм множини. Деякі рядки, які типові для всіх мов, буде проігноровано, а розмітку вилучено під час перевірки. Так Weblate уникає помилок під час перевірки.

Ця перевірка може допомогти рядки, які помилково не було перекладено.

Типовою поведінкою для цієї перевірки є виключення слів з вбудованого «чорного» списку з перевірок. Слова зі списку часто не перекладають. Перевірка є важливою для усування помилкових спрацювань на коротких рядках, які складаються з одного слова, яке є однаковим у декількох мовах. Цей «чорний» список можна вимкнути за допомогою додавання прапорця strict-same до рядка або складника.

Змінено в версії 4.17: Якщо вказано прапорець check-glossary (див. Не відповідає вимогам глосарію), непридатні до перекладу терміни з глосарія буде виключено з перевірки.

Небезпечний HTML-код

Підсумок:

Переклад використовує небезпечну HTML-розмітку

Область:

перекладені рядки

Клас перевірки:

weblate.checks.markup.SafeHTMLCheck

Перевірити ідентифікатор:

safe-html

Прапорець для вмикання:

safe-html

Прапорець для нехтування:

ignore-safe-html

Переклад використовує небезпечну розмітку HTML. Цю перевірку слід увімкнути за допомогою прапорця safe-html (див. Налаштовування поведінки за допомогою прапорців). Також передбачено автоматичний засіб виправлення розмітки.

Підказка

Якщо також використано прапорець md-text, буде дозволено також посилання у стилі Markdown.

Дивись також

Перевірка HTML виконується бібліотекою Ammonia.

URL

Підсумок:

Цей переклад не містить URL

Область:

перекладені рядки

Клас перевірки:

weblate.checks.markup.URLCheck

Перевірити ідентифікатор:

url

Прапорець для вмикання:

url

Прапорець для нехтування:

ignore-url

У перекладі не міститься адреси. Ця перевірка виконується, лише якщо модуль перекладу позначено як такий, що містить адресу. У цьому випадку у перекладі також має бути коректна адреса.

Розмітка XML

Підсумок:

Теґи XML у перекладі не збігаються з тегами XML у джерелі

Область:

перекладені рядки

Клас перевірки:

weblate.checks.markup.XMLTagsCheck

Перевірити ідентифікатор:

xml-tags

Прапорець для нехтування:

ignore-xml-tags

Це, зазвичай, означає, що остаточний результат виглядатиме інакше. У більшості цей результат є небажаним у перекладі, але іноді без зміни не обійтися.

Перевіряє, чи відтворено теґи XML з початкового рядка у перекладі.

Цю перевірку автоматично увімкнено для XML-подібних рядків. У деяких випадках вам слід додати прапорець xml-text для примусового увімкнення перевірки.

Примітка

Цю перевірку вимкнено прапорцем safe-html, оскільки чищення коду HTML, яке вона виконує, може призвести до створення розмітки HTML, яка не є коректним кодом XML.

Синтаксис XML

Підсумок:

Цей переклад не є правильним XML

Область:

перекладені рядки

Клас перевірки:

weblate.checks.markup.XMLValidityCheck

Перевірити ідентифікатор:

xml-invalid

Прапорець для нехтування:

ignore-xml-invalid

Розмітка XML є некоректною.

Цю перевірку автоматично увімкнено для XML-подібних рядків. У деяких випадках вам слід додати прапорець xml-text для примусового увімкнення перевірки.

Примітка

Цю перевірку вимкнено прапорцем safe-html, оскільки чищення коду HTML, яке вона виконує, може призвести до створення розмітки HTML, яка не є коректним кодом XML.

Простір нульової ширини

Підсумок:

Переклад містить зайві символи пропуску нульової ширини

Область:

перекладені рядки

Клас перевірки:

weblate.checks.chars.ZeroWidthSpaceCheck

Перевірити ідентифікатор:

zero-width-space

Прапорець для нехтування:

ignore-zero-width-space

Символи пробілів нульової ширини (<U+200B>) використовуються для розриву рядків посередині слова (перенесення рядків).

Оскільки ці символи часто включають до перекладів помилково, ця перевірка вмикається, якщо відповідні символи буде знайдено у перекладі. У роботі деяких програм можуть виникати проблеми, якщо буде використано такі символи.

Перевірки джерела

Перевірки початкових рядків можуть допомогти розробникам удосконалити початкові рядки.

Трикрапка

Підсумок:

Рядок використовує три крапки (…) замість символу трикрапки (…)

Область:

джерельні рядки

Клас перевірки:

weblate.checks.source.EllipsisCheck

Перевірити ідентифікатор:

ellipsis

Прапорець для нехтування:

ignore-ellipsis

Ця перевірка вважається не пройденою, якщо у рядку використано три крапки (...) замість символу багатокрапки ().

Використання символу Unicode у більшості випадків є кращим варіантом — символ виглядає краще у друкованому варіанті і краще озвучуються системами озвучення тексту.

Внутрішній HTML коду Fluent

Added in version 5.0.

Підсумок:

Код Fluent має бути коректним внутрішнім HTML

Область:

джерельні рядки

Клас перевірки:

weblate.checks.fluent.inner_html.FluentSourceInnerHTMLCheck

Перевірити ідентифікатор:

fluent-source-inner-html

Прапорець для вмикання:

fluent-source-inner-html

Прапорець для нехтування:

ignore-fluent-source-inner-html

Fluent часто використовують у контекстах, де значення для повідомлення (або терміна) має бути використано безпосередньо як .innerHTML (а не як .textContent) для якогось елемента HTML. Прикладом є використання пакунка DOM Fluent.

Призначенням цієї перевірки є передбачення того, як буде оброблено значення як вбудований код HTML, припускаючи сумісний із HTML5 обробник, для виявлення випадків, коли відбудеться «ненавмисна» втрата рядка, без надмірної строгості щодо помилок технічної обробки, які не призводять до втрати рядка.

Цю перевірку буде застосовано до значення повідомлень або термінів Fluent, але не до їхніх атрибутів. Для повідомлень атрибути Fluent часто є просто значенням атрибутів HTML, тому можуть бути довільними рядками. Для термінів атрибути Fluent часто є властивостями мови, посилання на які можливі лише у виборі виразів вибору Fluent.

Загалом, вважається, що більшість значень Fluent не містять розмітки HTML. Тому ми не очікуємо і не хочемо, щоб перекладачі або розробники переймалися строгим униканням будь-яких технічних помилок обробки HTML5 (окрім помилок обробки XHTML). Замість цього, ми просто хочемо попередити їх, якщо вони ненавмисно відкрили теґ HTML або вставили символьне посилання.

Більше того, для значень Fluent, які навмисно містять теґи HTML або символьні посилання, ми хочемо перевірити «правильність», зокрема відповідність завершальних або кінцевих теґів, коректність символьних посилань та лапки у значеннях атрибутів. Крім того, хоча специфікація HTML5 технічно дозволяє майже довільні назви теґів та атрибутів, ця перевірка обмежує їх певними базовими значеннями у ASCII, серед яких містяться усі стандартні теґи та атрибути елементів HTML5, а також дозволяє деякі нетипові назви елементів або атрибутів. Таким чином, частково можна забезпечити «навмисність» використання HTML.

Приклади:

Значення

Попередження?

Причина

three<four

так

Частину <four буде втрачено як .innerHTML.

three < four

ні

.innerHTML має відповідати .textContent.

three <four>

так

Немає завершального теґу.

three <four/>

так

four не є порожнім елементом HTML, отже, самозавершення не повинно бути.

<a-b>text</a-b>

ні

Нетиповий теґ елемента із відповідним завершальним теґом.

a <img/> b

ні

img є порожнім елементом HTML. Самозавершення дозволено.

a <br> b

ні

br є порожнім елементом HTML.

<img class=a/>

так

Значення атрибуту вказано без лапок.

<aØ attr=''/>

так

Назва теґу поза ASCII.

kind&ethical

так

Частину &eth має бути перетворено на ð.

kind&eth;ical

ні

Символьне посилання, здається, є навмисним.

three&lte;four

так

Частину &lte; має бути перетворено на <e;.

three&lf;four

так

Символьне посилання є некоректним.

three<{ $val }

так

Змінну Fluent може бути ненавмисно перетворено на теґ.

&l{ $val }

так

Змінну Fluent може бути ненавмисно перетворено на символьне посилання.

Примітка

Ця перевірка не забезпечує безпечності або притомності вбудованого коду HTML і не захищає від зловмисних спроб змінити вбудований код HTML. Більше того, слід пам’ятати, що змінні і посилання Fluent може бути розгорнуто до довільних рядків, тому можливе розгортання до довільного коду HTML, якщо рядки не екрановано. Виключення: символ < або & перед посиланням Fluent спричиняє спрацювання цієї перевірки, оскільки навіть екрановане значення може призвести до неочікуваних результатів.

Примітка

Пакунок DOM Fluent містить додаткові обмеження, зокрема список дозволених теґів та атрибутів, які ця перевірка не обмежує примусово.

Синтаксис початкового коду Fluent

Added in version 5.0.

Підсумок:

Синтаксична помилка Fluent у початковому коді

Область:

джерельні рядки

Клас перевірки:

weblate.checks.fluent.syntax.FluentSourceSyntaxCheck

Перевірити ідентифікатор:

fluent-source-syntax

Прапорець для вмикання:

fluent-source-syntax

Прапорець для нехтування:

ignore-fluent-source-syntax

У Weblate рядки Fluent використовують синтаксис Fluent для посилань та змінних, але також для складніших речей, зокрема визначення атрибутів та варіантів вибору, зокрема форм множини. Ця перевірка забезпечує коректність синтаксису Fluent початкових даних.

Синтаксис ICU MessageFormat

Added in version 4.9.

Підсумок:

Помилки синтаксису в рядках ICU MessageFormat.

Область:

джерельні рядки

Клас перевірки:

weblate.checks.icu.ICUSourceCheck

Перевірити ідентифікатор:

icu_message_format_syntax

Прапорець для вмикання:

icu-message-format

Прапорець для нехтування:

ignore-icu-message-format

Дивись також

MessageFormat ICU

Тривалий час не перекладено

Added in version 4.1.

Підсумок:

Цей рядок вже тривалий час не перекладено

Область:

джерельні рядки

Клас перевірки:

weblate.checks.source.LongUntranslatedCheck

Перевірити ідентифікатор:

long_untranslated

Прапорець для нехтування:

ignore-long-untranslated

Якщо рядок не було перекладено доволі давно, це може вказувати на проблему у рядку, яка робить його переклад утрудненим.

Кратні невдалі перевірки

Підсумок:

Переклади на декількох мовах мають непройдені перевірки

Область:

джерельні рядки

Клас перевірки:

weblate.checks.source.MultipleFailingCheck

Перевірити ідентифікатор:

multiple_failures

Прапорець для нехтування:

ignore-multiple-failures

Багато перекладів цього рядка не проходять перевірок якості. Це, зазвичай, означає, що початковий рядок слід якимось чином удосконалити.

Поширеною причиною того, що рядок не пройшов перевірки, є нестача крапки наприкінці речення або подібні незначні проблеми, які перекладачі намагаються виправити у перекладі, хоча найкращим способом є виправлення початкового рядка.

Декілька змінних без назв

Added in version 4.1.

Підсумок:

У рядку є декілька змінних без назв — перекладачі не зможуть змінити порядок цих змінних

Область:

джерельні рядки

Клас перевірки:

weblate.checks.format.MultipleUnnamedFormatsCheck

Перевірити ідентифікатор:

unnamed_format

Прапорець для нехтування:

ignore-unnamed-format

У рядку є декілька змінних без назв — перекладачі не зможуть змінити порядок цих змінних.

Вам варто використовувати іменовані змінні, щоб перекладачі могли переставляти їх у перекладі.

Немає форм множини

Підсумок:

Рядок використовується як множина, але не використовує форми множини

Область:

джерельні рядки

Клас перевірки:

weblate.checks.source.OptionalPluralCheck

Перевірити ідентифікатор:

optional_plural

Прапорець для нехтування:

ignore-optional-plural

Рядок використано як рядок із формами множини, але у ньому не використовуються форми множини. Якщо у вашій системі перекладу передбачено підтримку форм множини, вам слід використовувати варіант рядка, який уможливлює переклад за усіма правилами форм множини різних мов.

Наприклад, із Gettext у Python це може бути:

from gettext import ngettext

print(ngettext("Selected %d file", "Selected %d files", files) % files)