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

Автоматичні виправлення¶
Окрім перевірок, Weblate може автоматично виправляти деякі типові помилки у рядках перекладу. Користуйтеся цим обережно, щоб не наробити помилок.
Дивись також
Перевірки якості¶
Weblate застосовує до рядків широкий діапазон перевірок якості. У наступному розділі докладно описано усі ці перевірки. Також передбачено специфічні для мов перевірки. Якщо у звітах вади ви знайшли помилку, повідомте нам про неї.
Дивись також
Перевірки перекладів¶
Виконуються після кожної зміни у перекладі, допомагаючи перекладачам підтримувати високу якість перекладів.
Розмітка BBcode¶
BB-код у перекладі не збігається з BB-кодом у джерелі
BBCode використовує просту розмітку, наприклад, надає змогу позначити важливі частини повідомлення напівжирним або курсивним шрифтом.
Ця перевірка забезпечує наявність розмітки у перекладі.
Примітка
Спосіб виявлення BBcode у поточній версії є доволі простим, тому ця перевірка може помилково повідомляти про хиби у перекладі.
Послідовне повторення слів¶
Текст містить те саме слово двічі поспіль:
Нове в версії 4.1.
Перевіряє переклад на відсутність послідовного дублювання слів. Дублювання, зазвичай, вказує на помилку у перекладі.
Підказка
До цієї перевірки включено специфічні для мови правила для уникнення хибного спрацьовування. Якщо у вашому випадку рядок без помилок не проходить перевірки, повідомте про це нас. Див. розділ Надсилання звітів щодо вад у Weblate.
Подвійний пробіл¶
Переклад містить подвійну прогалину
Перевіряє, чи немає у перекладі подвійних пробілів, щоб уникнути хибних спрацювань інших пов’язаних із пробілами перевірок.
Перевірка вважається пройденою, якщо буде виявлено подвійний пробіл у початковому рядку, що означатиме, що подвійний пробіл було використано навмисно.
Форматовані рядки¶
Перевіряє, чи є однаковим форматування у початковому рядку і перекладі. Пропускання рядків форматування у перекладі, зазвичай, спричиняє серйозні проблеми, тому форматування у рядках перекладів має, зазвичай, збігатися із форматуванням у початковому рядку.
У Weblate передбачено підтримку рядків форматування декількох мов програмування. Перевірка не вмикається автоматично, а лише якщо рядок позначено відповідним прапорцем (наприклад c-format для форматування C). Gettext додає такі прапорці автоматично, але вам, ймовірно, доведеться додавати прапорці вручну для файлів в інших форматах, або якщо ваші файли PO не створено за допомогою xgettext.
Це можна зробити на рівні модуля перекладу (див. Додаткові відомості щодо початкових рядків) або у складнику. Визначити перевірку на рівні складника простіше, але це може призвести до помилкових спрацювань, якщо рядок не позначено як форматований, але у ньому все ж використано синтаксис рядків форматування.
Підказка
Якщо специфічна перевірка форматування є недоступною у Weblate, ви можете скористатися загальною перевіркою на символи-замінники.
Окрім перевірки, Weblate підсвітить рядки форматування для спрощення вставлення їх до рядків перекладу:

Рядок інтерполяції AngularJS¶
Рядки інтерполяції AngularJS не відповідають джерелу
Іменований рядок форматування |
|
Прапорець для вмикання |
angularjs-format |
Дивись також
Формат C¶
Рядок формату C# не відповідає джерелу
Простий рядок форматування |
|
Позиційний рядок форматування |
|
Прапорець для вмикання |
c-format |
Дивись також
Формат C#¶
Рядок формату C# не відповідає джерелу
Позиційний рядок форматування |
|
Прапорець для вмикання |
c-sharp-format |
Дивись також
Літерали шаблонів ECMAScript¶
Літерали шаблонів ECMAScript не відповідають джерелу
Інтерполяція |
|
Прапорець для вмикання |
es-format |
Дивись також
i18next інтерполяція¶
Інтерполяція i18next не відповідає джерелу
Нове в версії 4.0.
Інтерполяція |
|
Вкладення |
|
Прапорець для вмикання |
i18next-interpolation |
Дивись також
Формат Java¶
Рядок формату Java не відповідає джерелу
Простий рядок форматування |
|
Позиційний рядок форматування |
|
Прапорець для вмикання |
java-format |
Дивись також
Формат Java Message¶
Рядок формату Java Message не відповідає джерелу
Позиційний рядок форматування |
|
Прапорець для вмикання |
java-messageformat вмикає перевірку безумовно |
auto-java-messageformat вмикає перевірку, лише якщо у початковому рядку є рядок форматування |
Дивись також
Формат JavaScript¶
Рядок, формату JavaScript, не відповідає джерелу
Простий рядок форматування |
|
Прапорець для вмикання |
javascript-format |
Дивись також
Відсоток заповнювачів¶
Відсоток заповнювачів не відповідає джерелам
Нове в версії 4.0.
Простий рядок форматування |
|
Прапорець для вмикання |
percent-placeholders |
Формат Perl¶
Рядок формату Perl не відповідає джерелу
Простий рядок форматування |
|
Позиційний рядок форматування |
|
Прапорець для вмикання |
perl-format |
Дивись також
Формат PHP¶
Рядок, формату PHP, не відповідає джерелу
Простий рядок форматування |
|
Позиційний рядок форматування |
|
Прапорець для вмикання |
php-format |
Дивись також
Формат дужок Python¶
Рядок, формату Python brace, не відповідає джерелу
Простий рядок форматування |
|
Іменований рядок форматування |
|
Прапорець для вмикання |
python-brace-format |
Формат Python¶
Рядок форматування Python не відповідає джерелу
Простий рядок форматування |
|
Іменований рядок форматування |
|
Прапорець для вмикання |
python-format |
Дивись також
Форматуватування рядків у Python, Рядки форматування у Python
Формат Qt¶
Рядок формату Qt не відповідає джерелу
Позиційний рядок форматування |
|
Прапорець для вмикання |
qt-format |
Дивись також
Формат Qt у множині¶
Рядок формату Qt у множині не відповідає джерелу
Рядок форматування форм множини |
|
Прапорець для вмикання |
qt-plural-format |
Дивись також
Формат Ruby¶
Рядок формату Ruby не збігається з джерелом
Простий рядок форматування |
|
Позиційний рядок форматування |
|
Іменований рядок форматування |
|
Рядок із іменованим шаблоном |
|
Прапорець для вмикання |
ruby-format |
Дивись також
Форматування I18n Vue¶
Форматування i18n Vue не збігається із початковим рядком
Іменоване форматування |
|
Форматування i18n Rails |
|
Пов’язані повідомлення локалі |
|
Прапорець для вмикання |
vue-format |
Дивись також
Форматування I18n Vue, пов’язані повідомлення локалі i18n Vue
Вже перекладено¶
Цей рядок перекладено раніше
Означає, що рядок вже було перекладено. Таке може трапитися, якщо переклади було скасовано у системі керування версіями або втрачено у інший спосіб.
Неузгодженість¶
Цей рядок має більше одного перекладу в цьому проєкті або не перекладається в деяких складниках.
Weblate шукає різні переклади однакових рядків в усьому проєкті, щоб забезпечити однорідність перекладів.
Ця перевірка вважається не пройденою, якщо у межах проєкту буде знайдено різні переклади одного рядка. Неоднорідність буде показано серед інших даних щодо перекладу. Знайти інші переклади рядка можна на вкладці Інші входження.
Примітка
Перевірка також вважається не пройденою, якщо рядок перекладено в одному складнику проєкту і не перекладено в іншому. Нею можна скористатися як швидким способом обробки рядків, які не перекладено у деяких складниках: достатньо просто натиснути кнопку Використати цей переклад, яку показано для кожного з рядків на вкладці Інші входження.
Ви можете скористатися додатком Автоматичний переклад для автоматизації нових доданих рядків, які вже було перекладено в іншому складнику.
Використано літеру кашида¶
Декоративні букви кашиди не повинні використовуватися
Нове в версії 3.5.
Декоративні букви кашиди не повинні використовуватися. Такі букви також називають татвілами.
Дивись також
Посилання Markdown¶
Посилання Markdown не відповідають джерелу
Нове в версії 3.5.
Посилання Markdown не відповідають джерелу.
Дивись також
Markdown посилання¶
Посилання Markdown не збігаються з джерелом
Нове в версії 3.5.
Посилання Markdown не збігаються з джерелом.
Дивись також
Синтаксис Markdown¶
Синтаксис Markdown не відповідає джерелу
Нове в версії 3.5.
Синтаксис Markdown не відповідає джерелу
Дивись також
Максимальна довжина перекладу¶
Переклад не перевищує заданої довжини
Перевіряє, чи прийнятною є довжина перекладів і чи вкладаються вони у доступне місце. У цій перевірці враховується лише довжина перекладу у символах.
На відміну від інших перевірок, прапорець слід встановити як пару ключ:значення
, наприклад max-length:100
.
Підказка
Ця перевірка використовує кількість символів — це значення може бути не найкращим варіантом, якщо для показу тексту використовується пропорційний шрифт. Справжню довжину тексту можна оцінити за допомогою перевірки Найбільший розмір перекладу.
Крім того, може стати у пригоді прапорець replacements:
для розгортання замінників перед перевіркою рядка.
Найбільший розмір перекладу¶
Перекладений текст не повинен перевищувати заданий розмір
Нове в версії 3.7.
Перекладений текст не повинен перевищувати заданий розмір. Програма обробляє текст із перенесенням рядків і перевіряє, чи вкладається він у вказані обмеження.
Для перевірки потрібні два параметри — максимальна ширина і максимальна кількість рядків. Якщо кількість рядків не вказано, буде перевірено однорядковий текст.
Ви також можете налаштувати використаний шрифт за допомогою інструкції font-*
(див. Налаштовування поведінки). Наприклад, вказані нижче прапорці перекладу встановлюють, що запис тексту шрифтом ubuntu розміру 22 має вкладатися у два рядки і ширину у 500 пікселів:
max-size:500:2, font-family:ubuntu, font-size:22
Підказка
Вам варто встановити інструкції font-*
на рівні складника, щоб той самий шрифт було використано для усіх рядків у складнику. Ви можете перевизначити значення на рівні рядка, якщо вам потрібно якимось чином виконати специфічну перевірку для окремого рядка.
Крім того, може стати у пригоді прапорець replacements:
для розгортання замінників перед перевіркою рядка.
Не збіглися \n¶
Число \n у перекладі не відповідає джерелу
Зазвичай, екрановані символи розриву рядка є важливими для форматування виведених програмою даних. Перевірка вважається не пройденою, якщо кількість записів \n
у перекладі не збігається із кількістю у початковому рядку.
Невідповідність двокрапки¶
Джерело та переклад не закінчуються двокрапкою
Перевіряє, чи правильно відтворено двокрапки з початкового рядка у перекладі. Також виконується перевірка двокрапок у мовах, де вони не використовуються (китайській і японській).
Дивись також
Невідповідність багатокрапок¶
Джерело і переклад не завершуються трикрапкою
Перевіряє, чи відтворено кінцеві три крапки з початкового рядка у перекладі. Виконується перевірка лише для справжнього символу трьох крапок (…
), а не трьох послідовних крапок (...
).
Символ багатокрапки, зазвичай, краще виглядає у друкованому варіанті і краще обробляється системами озвучення тексту.
Дивись також
Невідповідність знаків оклику¶
Джерело та переклад не закінчуються знаком оклику
Перевіряє, чи правильно відтворено знаки оклику з початкового рядка у перекладі. Також виконується перевірка знаків оклику у мовах, де вони не використовуються (китайській, японській, корейській, вірменській, лімбу, м’янмській та нко).
Дивись також
Невідповідність кінцевої крапки¶
Джерело і переклад не завершуються кінцевою крапкою
Перевіряє, чи правильно відтворено крапки з початкового рядка у перекладі. Також виконується перевірка крапок у мовах, де вони не використовуються (китайській, японській, деванагарі та урду).
Дивись також
Невідповідність знаків питання¶
Джерело та переклад не закінчуються знаком питання
Перевіряє, чи правильно відтворено знаки питання з початкового рядка у перекладі. Також виконується перевірка знаків питання у мовах, де вони не використовуються (вірменській, арабській, китайській, корейській, японській, ефіопській, ваї або коптській).
Дивись також
Невідповідність крапки з комою¶
Джерело і переклад не завершуються крапкою з комою
Перевіряє, чи відтворено крапки з комами наприкінці рядків з початкового рядка у перекладі. Це може бути корисним для збереження форматування записів, зокрема у файлах .desktop.
Дивись також
Розбіжність розривів рядків¶
Кількість знаків нових рядків у перекладі не збігається з джерелом
Зазвичай, символи розриву рядка є важливими для форматування виведених програмою даних. Перевірка вважається не пройденою, якщо кількість записів \n
у перекладі не збігається із кількістю у початковому рядку.
Бракує множини¶
Деякі форми множини не перекладено
Перевіряє, чи було перекладено усіх форми множини початкового рядка. Специфіку використання кожної з форм множини, яку використано, можна знайти у визначенні рядка.
Якщо деякі з форм множини пропущено, у деяких випадках користувачу буде показано порожній рядок замість форми множини.
Заповнювачі¶
У перекладі відсутні деякі замінники:
Нове в версії 3.9.
Змінено в версії 4.3: Ви можете використовувати формальний вираз як замінник.
У перекладі пропущено деякі з символів-замінників. Символи-замінники видобуваються з файла перекладу або визначаються вручну за допомогою прапорця placeholders
. Декілька символів-замінників можна відокремити двокрапкою, рядки з пробілами слід вказувати у лапках:
placeholders:$URL$:$TARGET$:"some long text"
Якщо ви знаєте певну синтаксичну конструкцію для замінників, ви можете скористатися формальним виразом:
placeholders:r"%[^% ]%"
Дивись також
Щільність знаків¶
Пропущений нерозривний пробіл перед подвійним знаком пунктуації
Нове в версії 3.9.
Перевіряє, чи є нерозривний пробіл перед символом пунктуації, що складається з двох частин (знаком оклику, знаком питання, крапкою з комою та двокрапкою). Правило щодо додавання пробілу використовується лише у деяких мовах, зокрема французькій та бретонській, де це правило є частиною типографії.
Дивись також
Регулярний вираз¶
Переклад не відповідає регулярному виразу:
Нове в версії 3.9.
Переклад не відповідає формальному виразу. Вираз або видобувається з файла перекладу, або визначається вручну за допомогою прапорця regex
:
regex:^foo|bar$
Однакова множина¶
Деякі форми множини перекладені однаково
Перевірка вважається не пройденою, якщо у перекладі усі форми множини є однаковими. У більшості мов форми множини мають бути різними.
Перехід у новий рядок¶
Джерело і переклад не починаються з переходу у новий рядок
Символи розриву рядка, зазвичай, з’являються у початкових рядках з певних причин. Пропускання або додавання цих символів може призвести до проблем із форматуванням при використанні перекладеного тексту.
Дивись також
Початкові пропуски¶
Джерело і переклад не починаються з однакового числа пропусків
Пробіл на початку рядка зазвичай використовується для відступів у інтерфейсі, тому його важливо зберігати.
Кінцевий знак нового рядка¶
Джерело і переклад не завершуються переходом у новий рядок
Символи розриву рядка, зазвичай, з’являються у початкових рядках з певних причин. Пропускання або додавання цих символів може призвести до проблем із форматуванням при використанні перекладеного тексту.
Дивись також
Кінцеві пропуски¶
Джерело і переклад не завершуються пропуском
Перевіряє, чи відтворено кінцеві крапки з початкового рядка у перекладі.
Кінцевий пробіл зазвичай використовується для відокремлення сусідніх елементів, тому його вилучення може призвести до помилок при показі тексту.
Переклад не змінено¶
Джерело і переклад збігаються
Вважається не пройденою, якщо початковий рядок збігається із перекладом, аж до принаймні одної з форм множини. Деякі рядки, які є типовими для усіх мов буде проігноровано, а розмітку при перевірці вилучено. Таким чином Weblate уникає помилок при перевірці.
Ця перевірка може допомогти рядки, які помилково не було перекладено.
Типовою поведінкою для цієї перевірки є виключення слів з вбудованого «чорного» списку з перевірок. Слова зі списку часто не перекладають. Перевірка є важливою для усування помилкових спрацювань на коротких рядках, які складаються з одного слова, яке є однаковим у декількох мовах. Цей «чорний» список можна вимкнути за допомогою додавання прапорця strict-same
до рядка або складника.
Дивись також
Небезпечний HTML-код¶
Переклад використовує небезпечну HTML-розмітку
Нове в версії 3.9.
Переклад використовує небезпечну розмітку HTML. Цю перевірку слід увімкнути за допомогою прапорця safe-html
(див. Налаштовування поведінки). Також передбачено автоматичний засіб виправлення розмітки.
Дивись також
Перевірка HTML виконується бібліотекою Bleach, яку розроблено Mozilla.
URL¶
Цей переклад не містить URL
Нове в версії 3.5.
У перекладі не міститься адреси. Ця перевірка виконується, лише якщо модуль перекладу позначено як такий, що містить адресу. У цьому випадку у перекладі також має бути коректна адреса.
Розмітка XML¶
Теґи XML у перекладі не збігаються з тегами XML у джерелі
Це, зазвичай, означає, що остаточний результат виглядатиме інакше. У більшості цей результат є небажаним у перекладі, але іноді без зміни не обійтися.
Перевіряє, чи відтворено теґи XML з початкового рядка у перекладі.
Простір нульової ширини¶
Переклад містить зайві символи пропуску нульової ширини
Символи пробілів нульової ширини (<U+200B>) використовуються для розриву рядків посередині слова (перенесення рядків).
Оскільки ці символи часто включають до перекладів помилково, ця перевірка вмикається, якщо відповідні символи буде знайдено у перекладі. У роботі деяких програм можуть виникати проблеми, якщо буде використано такі символи.
Дивись також
Перевірки джерела¶
Перевірки початкових рядків можуть допомогти розробникам удосконалити початкові рядки.
Трикрапка¶
Рядок використовує три крапки (…) замість символу трикрапки (…)
Ця перевірка вважається не пройденою, якщо у рядку використано три крапки (...
) замість символу багатокрапки (…
).
Використання символу Unicode у більшості випадків є кращим варіантом — символ виглядає краще у друкованому варіанті і краще озвучуються системами озвучення тексту.
Дивись також
Тривалий час не перекладено¶
Цей рядок вже тривалий час не перекладено
Нове в версії 4.1.
Якщо рядок не було перекладено доволі давно, це може вказувати на проблему у рядку, яка робить його переклад утрудненим.
Кратні невдалі перевірки¶
Переклади на декількох мовах мають непройдені перевірки
Багато перекладів цього рядка не проходять перевірок якості. Це, зазвичай, означає, що початковий рядок слід якимось чином удосконалити.
Поширеною причиною того, що рядок не пройшов перевірки, є нестача крапки наприкінці речення або подібні незначні проблеми, які перекладачі намагаються виправити у перекладі, хоча найкращим способом є виправлення початкового рядка.
Декілька змінних без назв¶
У рядку є декілька змінних без назв — перекладачі не зможуть змінити порядок цих змінних
Нове в версії 4.1.
У рядку є декілька змінних без назв — перекладачі не зможуть змінити порядок цих змінних.
Вам варто використовувати іменовані змінні, щоб перекладачі могли переставляти їх у перекладі.
Немає форм множини¶
Рядок використовується як множина, але не використовує форми множини
Рядок використано як рядок із формами множини, але у ньому не використовуються форми множини. Якщо у вашій системі перекладу передбачено підтримку форм множини, вам слід використовувати варіант рядка, який уможливлює переклад за усіма правилами форм множини різних мов.
Наприклад, із Gettext у Python це може бути:
from gettext import ngettext
print ngettext("Selected %d file", "Selected %d files", files) % files