Проверки и исправления¶
Проверки качества помогают выявить распространённые ошибки переводчиков, что гарантирует хорошее состояние перевода. В случае ложно-положительных срабатываний проверки могут быть проигнорированы.
После отправки перевода с неудачной проверкой, она сразу же показывается пользователю:
Автоматические исправления¶
В дополнение к Проверки качества, Weblate может автоматически исправлять некоторые распространённые ошибки в переведённых строках. Используйте это с осторожностью, чтобы не добавлять ошибки.
См. также
Заменитель завершающего многоточия¶
- Имя класса:
weblate.trans.autofixes.chars.ReplaceTrailingDotsWithEllipsis
Замените конечные точки (...) многоточием (…), чтобы обеспечить соответствие исходной строке.
Удаление пространства нулевой ширины¶
- Имя класса:
weblate.trans.autofixes.chars.RemoveZeroSpace
Пространство нулевой ширины обычно нежелательно при переводе. Это исправление удалит его, если он также не присутствует в исходной строке.
Удаление управляющих символов¶
- Имя класса:
weblate.trans.autofixes.chars.RemoveControlChars
Удаляет управляющие символы, если исходная строка их не содержит.
Деванагари данда¶
- Имя класса:
weblate.trans.autofixes.chars.DevanagariDanda
Заменяет точку в конце предложения в бенгальском языке на символ деванагари данда (।).
Пробелы и пунктуация¶
- Имя класса:
weblate.trans.autofixes.chars.PunctuationSpacing
Добавлено в версии 5.3.
Обеспечивает правильные пробелы перед знаками препинания во французском языке.
Это исправление можно отключить с помощью флага ignore-punctuation-spacing (который также отключает Пробелы и пунктуация).
Небезопасная очистка HTML¶
- Имя класса:
weblate.trans.autofixes.html.BleachHTML
Удаляет небезопасную HTML-разметку из строк, помеченных флагом safe-html.
См. также
Конечный и ведущий фиксатор пробелов¶
- Имя класса:
weblate.trans.autofixes.whitespace.SameBookendingWhitespace
Приводит начальные и конечные пробелы в соответствие с исходной строкой. Поведение можно настроить с помощью флагов ignore-begin-space и ignore-end-space для пропуска обработки частей строки.
Проверки качества¶
Weblate использует широкий спектр проверок качества строк. В следующем разделе они все описываются более подробно. Также существуют проверки, специфичные для конкретных языков. Если какая-то проверка срабатывает ошибочно, пожалуйста, отправьте сообщение об ошибке.
Проверки перевода¶
Выполняется при каждом изменении перевода, помогая переводчикам поддерживать высокое качество перевода.
BBCode-разметка¶
Изменено в версии 5.10: Эта проверка больше не полагается на ненадёжное автоматическое обнаружение, теперь её необходимо включать с помощью флага bbcode-text.
- Сводка:
BBCode в переводе не соответствует источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.markup.BBCodeCheck- Проверить идентификатор:
bbcode- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
bbcode-text- Флаг для игнорирования:
ignore-bbcode
BBCode представляет собой простую разметку, полезную для, например, выделения важных частей сообщения жирным шрифтом или курсивом.
Эта проверка гарантирует, что они также будут присутствовать в переводе.
Примечание
На данный момент метод обнаружения тегов BBCode достаточно прост, поэтому данная проверка может привести к ложным срабатываниям.
Повторяющиеся слова¶
Добавлено в версии 4.1.
- Сводка:
Одно и то же слово повторяется в тексте дважды подряд.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.duplicate.DuplicateCheck- Проверить идентификатор:
duplicate- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-duplicate
Проверяет, что в переводе не встречаются последовательные дубликаты слова. Обычно это указывает на ошибку в переводе.
Подсказка
Эта проверка включает в себя правила, специфичные для конкретных языков, чтобы избежать ложных срабатываний. В случае ложного срабатывания этой проверки в вашем случае, сообщите нам об этом. Смотрите раздел Сообщение о проблемах в Weblate.
Не соответствует словарю¶
Добавлено в версии 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¶
Добавлено в версии 5.0.
- Сводка:
Части Fluent должны соответствовать.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.fluent.parts.FluentPartsCheck- Проверить идентификатор:
fluent-parts- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
fluent-parts- Флаг для игнорирования:
ignore-fluent-parts
Каждое сообщение Fluent может иметь необязательное значение (основное текстовое содержимое) и необязательные атрибуты, каждый из которых является «частью» (part) сообщения. В Weblate все эти части отображаются в одном блоке с использованием синтаксиса, подобного Fluent, для указания атрибутов. Например:
This is the Message value
.title = This is the title attribute
.alt = This is the alt attribute
Эта проверка гарантирует, что переведённое сообщение также имеет значение, если оно есть в исходном сообщении, или не имеет значения, если его нет в источнике. При этом также проверяется, что в переводе присутствуют те же атрибуты, которые использовались в исходном сообщении, без каких-либо дополнений.
Примечание
Эта проверка не применяется к терминам Fluent, поскольку термины всегда имеют значение, а атрибуты терминов обычно зависят от локали (используются для грамматических правил и т. д.) и не должны появляться во всех переводах.
См. также
Ссылки Fluent¶
Добавлено в версии 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 Select, то каждый возможный вариант в источнике должен сопоставляться хотя бы с одним вариантом в переводе с теми же ссылками, и наоборот.
Более того, если ссылка на переменную появляется как в селекторе Select Expression, так и в одном из его вариантов, то все варианты также могут рассматриваться так, как будто они также содержат эту ссылку. Предполагается, что ключ варианта мог сделать ссылку избыточной для этого варианта. Например:
{ $num ->
[one] an apple
*[other] { $num } apples
}
Здесь, для целей этой проверки, вариант [one] также будет считаться содержащим ссылку $num.
Однако ссылка в селекторе выражения Select, которая может быть только переменной атрибута термина в синтаксисе Fluent, сама по себе не будет считаться обязательной ссылкой, поскольку она не формирует фактическое текстовое содержимое строки, которую конечный пользователь увидит, и наличие выражения выбора считается зависящим от языка. Например:
{ -term.starts-with-vowel ->
[yes] an { -term }
*[no] a { -term }
}
Здесь не ожидается, что ссылка на -term.starts-with-vowel появится в переводах, но ссылка на -term появится.
Внутренний HTML Fluent перевода¶
Добавлено в версии 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 Select, то каждый возможный вариант в источнике должен сопоставляться хотя бы с одним вариантом в переводе с теми же элементами HTML, и наоборот.
При использовании Fluent в сочетании с пакетом Fluent DOM эта проверка гарантирует, что перевод также включает все необходимые элементы 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¶
Добавлено в версии 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 отсутствует, вы можете использовать общую проверку Символы-заполнители.
Помимо проверки, эти флаги также включают подсветку строк формата, чтобы их было легко вставлять в перевод:
Интерполяционная строка AngularJS¶
- Сводка:
Интерполяционные строки AngularJS не соответствуют источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.angularjs.AngularJSInterpolationCheck- Проверить идентификатор:
angularjs_format- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
angularjs-format- Флаг для игнорирования:
ignore-angularjs-format
- Пример именованной строки формата:
Your balance is {{amount}} {{ currency }}
Автоматическое форматирование компонентов¶
- Сводка:
Заполнители компонентов Automattic не отвечают источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.format.AutomatticComponentsCheck- Проверить идентификатор:
automattic_components_format- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
automattic-components-format- Флаг для игнорирования:
ignore-automattic-components-format
- Пример простой строки формата:
They bought {{strong}}apples{{/strong}}.
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,csharp-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¶
Добавлено в версии 4.0.
- Сводка:
Интерполяция i18next не соответствует источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.format.I18NextInterpolationCheck- Проверить идентификатор:
i18next_interpolation- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
i18next-interpolation- Флаг для игнорирования:
ignore-i18next-interpolation
- Пример интерполяции:
There are {{number}} apples- Пример вложения:
There are $t(number) apples
См. также
ICU MessageFormat¶
Добавлено в версии 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}}.
Эта проверка поддерживает как чистые сообщения ICU MessageFormat, так и ICU с простыми XML-тегами. Вы можете настроить поведение этой проверки с помощью icu-flags:*, либо включив поддержку XML, либо отключив определённые подпроверки. Например, следующий флаг включает поддержку XML и отключает проверку множественных подсообщений:
icu-message-format, icu-flags:xml:-plural_selectors
|
Включите поддержку простых XML-тегов. По умолчанию XML-теги анализируются нечётко. Блуждающие символы (Stray) |
|
Включите поддержку строгих XML-тегов. Все символы |
|
Отключите подсветку заполнителей в редакторе. |
|
Отключите требования, чтобы вложенные сообщения имели селектор |
|
Пропустите проверку соответствия селекторов подсообщений источнику. |
|
Пропустите проверку соответствия типов заполнителей источнику. |
|
Пропустите проверку того, что в исходной строке отсутствуют заполнители, которых не было в исходной строке. |
|
Пропустите проверку того, что отсутствуют заполнители, которые присутствовали в исходной строке. |
Кроме того, когда 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- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
Строковые ресурсы Android, Мобильные ресурсы Kotlin, Ресурсы Compose Multiplatform
- Флаг для включения:
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 MessageFormat¶
- Сводка:
Строка в формате Java MessageFormat не соответствует источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.format.JavaMessageFormatCheck- Проверить идентификатор:
java_format- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
auto-java-messageformat,java-format- Автоматическое поведение флагов:
auto-java-messageformat: Обрабатывать текст как условный Java MessageFormat, включая Java MessageFormat только тогда, когда исходный текст содержит заполнители 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
Laravel-формат¶
- Сводка:
Строка в формате Laravel не соответствует источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.format.LaravelFormatCheck- Проверить идентификатор:
laravel_format- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
laravel-format- Флаг для игнорирования:
ignore-laravel-format
- Пример именованной строки формата:
The :attribute must be :value
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
Формат Objective-C¶
Добавлено в версии 5.17.
- Сводка:
Строка формата Objective-C не соответствует источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.format.ObjCFormatCheck- Проверить идентификатор:
objc_format- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
objc-format- Флаг для игнорирования:
ignore-objc-format
Символы-заполнители в процентной нотации¶
Добавлено в версии 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 не соответствует источнику.
- Область:
переведённые строки
- Класс проверки:
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}
См. также
Формат схемы¶
- Сводка:
Строка формата схемы не соответствует источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.format.SchemeFormatCheck- Проверить идентификатор:
scheme_format- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
scheme-format- Флаг для игнорирования:
ignore-scheme-format
- Пример простой строки формата:
There are ~d apples
Форматирование Vue I18n¶
- Сводка:
Форматирование Vue I18n не соответствует источнику.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.format.VueFormattingCheck- Проверить идентификатор:
vue_format- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
vue-format- Флаг для игнорирования:
ignore-vue-format
- Именованная строка формата:
There are {count} apples- Форматирование локализации 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 проверяет переводы одинаковых строк по всем переводам в проекте, чтобы помочь вам поддерживать переводы согласованными.
Проверка срабатывает, когда в проекте обнаруживаются различные переводы одной и той же строки. Также это может привести к несогласованности в отображаемых проверках. Другие переводы этой строки можно найти на вкладке Другие вхождения.
Эта проверка будет применена ко всем компонентам проекта, содержащим Разрешить распространение перевода.
Подсказка
По соображениям производительности проверка может не найти все несоответствия, она ограничивает количество совпадений.
Примечание
Эта проверка также срабатывает в случае, если строка переведена в одном компоненте, а не в другом. Его можно использовать как быстрый способ вручную обрабатывать строки, которые не переведены в некоторых компонентах, просто нажав кнопку «Использовать этот перевод», отображаемую в каждой строке на вкладке «Другие вхождения».
Вы можете использовать дополнение Автоматический перевод для автоматизации перевода вновь добавленных строк, которые уже переведены в другом компоненте.
Противоречивый reStructuredText¶
Добавлено в версии 5.10.
- Сводка:
Противоречивая разметка reStructuredText в переведённом сообщении.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.markup.RSTReferencesCheck- Проверить идентификатор:
rst-references- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
rst-text- Флаг для игнорирования:
ignore-rst-references
Ссылки на термины reStructuredText или другая разметка не соответствуют источнику; типичные причины этих ошибок:
Несовпадающие или отсутствующие обратные кавычки.
Отсутствуют пробелы или знаки препинания вокруг ссылки. Встроенные блоки reStructuredText должны быть разделены символами, не являющимися буквами.
Пробел между встроенным тегом и обратными кавычками.
Имя ссылки не переводится.
Использование обычных кавычек вместо обратных.
Несовпадающие подстановки или ссылки на сноски.
Используется кашида¶
- Сводка:
Декоративные буквы кашиды не должны использоваться.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.chars.KashidaCheck- Проверить идентификатор:
kashida- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-kashida
Декоративные буквы кашида не должны использоваться в переводе. Также они известны как татвиль.
См. также
Ссылки Markdown¶
- Сводка:
Ссылки в Markdown не совпадают с источником.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.markup.MarkdownLinkCheck- Проверить идентификатор:
md-link- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
md-text- Флаг для игнорирования:
ignore-md-link
Ссылки в Markdown не совпадают с источником.
См. также
Сноски Markdown¶
- Сводка:
Сноски (link references) в Markdown не совпадают с источником.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.markup.MarkdownRefLinkCheck- Проверить идентификатор:
md-reflink- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
md-text- Флаг для игнорирования:
ignore-md-reflink
Сноски (link references) в 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
Обычно Escape-символы новой строки важны для форматирования вывода программы. Проверка не удалась, если количество литералов \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.EndInterrobangCheck- Проверить идентификатор:
end_interrobang- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-end-interrobang
Проверяет, что знаки интерробанга воспроизводятся как в исходной строке, так и в переводе. Допускается замена «!?» на «?!».
См. также
Несовпадающие вопросительные знаки¶
- Сводка:
Источник и перевод не заканчиваются оба вопросительным знаком.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.chars.EndQuestionCheck- Проверить идентификатор:
end_question- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-end-question
Проверяет, что вопросительные знаки в исходной строке и в переводе одинаковы. Также проверяется наличие вопросительных знаков для тех языков, в которых они не используются (армянский, арабский, китайский, корейский, японский, эфиопский, ваи или коптский).
См. также
Несовпадающие точки с запятой¶
- Сводка:
Источник и перевод не заканчиваются оба точкой с запятой.
- Область:
переведённые строки
- Класс проверки:
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
Проверяет, что были переведены все формы множественного числа исходной строки. Сведения о том, как используется каждая форма множественного числа, можно найти в определении строки.
Отсутствие перевода в форме множественного числа в некоторых случаях приводит к тому, что при использовании формы множественного числа ничего не будет отображаться.
Несколько заглавных¶
Добавлено в версии 5.16.
- Сводка:
Перевод содержит слова с несколькими неправильно расположенными заглавными буквами.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.chars.MultipleCapitalCheck- Проверить идентификатор:
multiple_capital- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-multiple-capital
Проверяет на неправильное использование заглавных букв, обнаруживая слова, которые содержат последовательные заглавные буквы в иначе строчном или обычно пишущемся с заглавной буквы тексте (например, HEllo или CAmelCase). Строки, которые содержат заглавные буквы в исходной строке, могут содержать заглавные буквы и в переводе.
Нестандартные символы в кабильском языке¶
Добавлено в версии 5.12.
- Сводка:
Используйте стандартизированные латинские символы кабильского языка (например, ɣ вместо греческой γ; ɛ вместо ε).
- Область:
переведённые строки
- Класс проверки:
weblate.checks.chars.KabyleCharactersCheck- Проверить идентификатор:
kabyle-characters- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-kabyle-characters
Проверяет, что переводы на кабильский язык используют правильные буквы кабильского языка, а не похожие греческие, которые часто использовались до стандартизации символов кабильского языка в Юникоде.
Символы-заполнители¶
Изменено в версии 4.3: В качестве заполнителя вы можете использовать регулярное выражение.
Изменено в версии 4.13: С флагом case-insensitive (регистронезависимости) заполнители не чувствительны к регистру.
- Сводка:
В переводе пропущены некоторые символы-заполнители.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.placeholders.PlaceholderCheck- Проверить идентификатор:
placeholders- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
placeholders- Флаг для игнорирования:
ignore-placeholders
В переводе пропущены некоторые символы-заполнители. Эти символы либо извлекаются из файла перевода, либо определяются вручную с помощью флага placeholders; если их несколько, они разделяются двоеточием, а строки с пробелами могут быть заключены в кавычки:
placeholders:$URL$:$TARGET$:"some long text"
Если у вас есть регулярный синтаксис для имён заполнителей, то вы можете применить регулярные выражения:
placeholders:r"%[^% ]%"
Вы также можете использовать заполнители без учёта регистра:
placeholders:$URL$:$TARGET$,case-insensitive
См. также
Запрещённый начальный символ¶
Добавлено в версии 5.9.
- Сводка:
Строка начинается с запрещённого символа в CSV.
- Область:
строки словаря
- Класс проверки:
weblate.checks.glossary.ProhibitedInitialCharacterCheck- Проверить идентификатор:
prohibited_initial_character- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-prohibited-initial-character
Словарь часто распространяется как CSV, и использование некоторых символов в начале ограничено многими приложениями, поскольку это может привести к тому, что текст будет восприниматься как выражение. Это также влияет на Словари в автоматических предложениях, где многие службы используют CSV для синхронизации словарей и отклоняют такие строки.
Пробелы и пунктуация¶
Изменено в версии 5.10: Раньше эта проверка применялась и к бретонскому языку, но теперь она ограничена только французским.
- Сводка:
Отсутствует неразрывный пробел перед двойным знаком пунктуации.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.chars.PunctuationSpacingCheck- Проверить идентификатор:
punctuation_spacing- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-punctuation-spacing
Проверяет наличие неразрывного пробела перед знаком двойной пунктуации (восклицательным знаком, вопросительным знаком, точкой с запятой и двоеточием). Это правило используется только в отдельных языках, например во французском, где пробел перед знаком двойной пунктуации является типографским правилом.
Регулярное выражение¶
Изменено в версии 5.10: Расширенная поддержка расширенных регулярных выражений, включая свойства кодовых точек Юникода.
- Сводка:
Перевод не соответствует регулярному выражению.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.placeholders.RegexCheck- Проверить идентификатор:
regex- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
regex- Флаг для игнорирования:
ignore-regex
Перевод не соответствует регулярному выражению. Это выражение либо извлекается из файла перевода, либо определяется вручную с помощью флага regex:
regex:^foo|bar$
Сопоставление также поддерживает свойства кодовых точек Юникода, включая сценарии и блоки:
regex:^[-_\p{L}\p{N}\p{sc=Deva}\p{sc=Thai}]{1,32}$
Подсказка
Используйте Символы-заполнители для обнаружения отсутствующих заполнителей в строке.
См. также
Ошибка синтаксиса reStructuredText¶
Добавлено в версии 5.10.
- Сводка:
Ошибка синтаксиса reStructuredText в переводе.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.markup.RSTSyntaxCheck- Проверить идентификатор:
rst-syntax- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
rst-text- Флаг для игнорирования:
ignore-rst-syntax
Ошибка синтаксиса reStructuredText в переводе. Проблемы для изучения:
Несоответствие закрывающих/открывающих тегов.
Отсутствуют пробелы или знаки препинания вокруг ссылки. Встроенные блоки reStructuredText должны быть разделены символами, не являющимися буквами.
Использование обычных кавычек вместо обратных.
Повторно используемый перевод¶
Добавлено в версии 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
Возникает, если исходная строка и соответствующий перевод идентичны, по крайней мере в одной из форм множественного числа. Некоторые строки, обычно встречающиеся во всех языках, игнорируются, а различная разметка удаляется. Это уменьшает количество ложных срабатываний.
Эта проверка может помочь найти ошибочно не переведённые строки.
Поведение этой проверки по умолчанию заключается в исключении из проверки слов из встроенного списка терминов. Это слова, которые часто не переводятся. Это полезно для избежания ложных срабатываний на коротких строках, состоящих из одного слова, одинакового в нескольких языках. Этот список можно отключить, добавив флаг strict-same к строке или компоненту.
Изменено в версии 4.17: При использовании флага check-glossary (см. Не соответствует словарю) непереводимые термины словаря исключаются из проверки.
Небезопасный HTML-код¶
- Сводка:
Перевод использует небезопасную HTML-разметку.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.markup.SafeHTMLCheck- Проверить идентификатор:
safe-html- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
auto-safe-html,safe-html- Автоматическое поведение флагов:
auto-safe-html: Обрабатывать текст как условный HTML, включая Небезопасный HTML-код только для обычного текста или исходных строк, содержащих стандартную HTML-разметку или допустимые пользовательские элементы. Это полезно для расширенных вариантов Markdown, таких как MDX, где синтаксис с угловыми скобками может не быть HTML.- Флаг для игнорирования:
ignore-safe-html
Перевод использует небезопасную HTML-разметку. Эта проверка должна быть включена с помощью флага safe-html (смотрите раздел Настройка поведения с помощью флагов). Также имеется соответствующий автоматический исправляльщик, который может автоматически почистить разметку.
Подсказка
Если используется флаг md-text, ссылки в стиле Markdown также разрешены.
См. также
Проверка HTML выполняется библиотекой Ammonia.
URL-адреса¶
- Сводка:
Перевод не содержит URL-адреса.
- Область:
переведённые строки
- Класс проверки:
weblate.checks.markup.URLCheck- Проверить идентификатор:
url- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Флаг для включения:
url- Флаг для игнорирования:
ignore-url
Перевод не содержит URL-адрес. Эта проверка срабатывает только в том случае, если единица перевода помечена как содержащая URL-адрес. В этом случае перевод должен быть корректным URL-адресом.
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
Эта проверка срабатывает, когда в строке используются три подряд стоящих точки (...), когда вместо них должен использоваться символ многоточия (…).
Использование юникодного символа в большинстве случаев является лучшим подходом; он лучше выглядит при отрисовке текста и может лучше звучать при преобразовании текста в речь.
См. также
Исходный внутренний HTML Fluent¶
Добавлено в версии 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-элемента. Например, при использовании пакета Fluent DOM.
Цель этой проверки — предсказать, как значение будет разобрано как внутренний HTML, предполагая синтаксический анализатор, соответствующий HTML5, чтобы выявить случаи «непреднамеренной» потери строки, не будучи слишком строгой к техническим ошибкам разбора, которые не приводят к потере строки.
Эта проверка применяется к значению сообщений Fluent или терминов, но не к их атрибутам. Для сообщений атрибуты Fluent часто представляют собой просто значения атрибутов HTML, поэтому могут быть произвольными строками. Для терминов атрибуты Fluent часто представляют собой свойства языка, на которые можно ссылаться только в селекторах выражений Fluent Select.
Как правило, большинство значений Fluent не должны содержать HTML-разметку. Поэтому эта проверка не ожидает и не требует, чтобы переводчики и разработчики строго избегали любых технических ошибок синтаксического анализа HTML5 (не говоря уже об ошибках синтаксического анализа XHTML). Вместо этого эта проверка просто предупреждает их, когда они могли случайно открыть HTML-тег или вставить ссылку на символ.
Более того, для значений Fluent, которые намеренно содержат HTML-теги или ссылки на символы, эта проверка проверит некоторые «хорошие практики», такие как сопоставление закрывающих и конечных тегов, допустимые ссылки на символы и значения атрибутов в кавычках. Кроме того, хотя спецификация HTML5 технически допускает довольно произвольные имена тегов и атрибутов, эта проверка ограничит их некоторыми базовыми значениями ASCII, которые должны охватывать стандартные теги и атрибуты элементов HTML5, а также допускать некоторые пользовательские имена элементов или атрибутов. . Частично это делается для того, чтобы гарантировать, что пользователь намеренно использует HTML.
Примеры:
Значение |
Предупреждает? |
Причина |
|---|---|---|
|
да |
Часть |
|
нет |
|
|
да |
Не хватает закрывающего тега. |
|
да |
|
|
нет |
Тег пользовательского элемента с соответствующим закрывающим тегом. |
|
нет |
|
|
нет |
|
|
да |
Значение атрибута не заключено в кавычки. |
|
да |
Имя тега, отличного от ASCII. |
|
да |
Часть |
|
нет |
Ссылка на символ кажется намеренной. |
|
да |
Часть |
|
да |
Ссылка на символ недействительна. |
|
да |
Переменная Fluent может непреднамеренно стать тегом. |
|
да |
Переменная Fluent может непреднамеренно стать ссылкой на символ. |
Примечание
Эта проверка не гарантирует, что внутренний HTML-код безопасен или очищен, и не предназначен для защиты от злонамеренных попыток изменить внутренний HTML-код. Более того, следует помнить, что переменные и ссылки Fluent могут расширяться до произвольных строк, а значит, могут расширяться до произвольного HTML, если они не Escape. В качестве исключения, символ < или & перед ссылкой Fluent вызовет эту проверку, поскольку даже Escape-значение может привести к неожиданным результатам.
Примечание
Пакет Fluent DOM имеет дополнительные ограничения, такие как разрешённые теги и атрибуты, которые эта проверка не применяет.
См. также
Синтаксис исходного кода Fluent¶
Добавлено в версии 5.0.
- Сводка:
Ошибка синтаксиса в исходном коде Fluent.
- Область:
исходные строки
- Класс проверки:
weblate.checks.fluent.syntax.FluentSourceSyntaxCheck- Проверить идентификатор:
fluent-source-syntax- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
fluent-source-syntax- Флаг для игнорирования:
ignore-fluent-source-syntax
В Weblate строки Fluent используют синтаксис Fluent для ссылок и переменных, а также для более сложных функций, таких как определение атрибутов и вариантов селекторов, включая множественное число. Эта проверка гарантирует, что синтаксис, используемый в исходном коде, будет допустимым для Fluent.
Синтаксис ICU MessageFormat¶
Добавлено в версии 4.9.
- Сводка:
Ошибки синтаксиса в строках ICU MessageFormat.
- Область:
исходные строки
- Класс проверки:
weblate.checks.icu.ICUSourceCheck- Проверить идентификатор:
icu_message_format_syntax- Триггер:
Эта проверка должна быть включена с помощью флажка.
- Форматы файлов, автоматически включающие эту проверку:
- Флаг для включения:
icu-message-format- Флаг для игнорирования:
ignore-icu-message-format
См. также
Давно не переводилась¶
Добавлено в версии 4.1.
- Сводка:
Строка давно не переводилась.
- Область:
исходные строки
- Класс проверки:
weblate.checks.source.LongUntranslatedCheck- Проверить идентификатор:
long_untranslated- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-long-untranslated
Если строка долго не переводилась, это может указывать на проблему в исходной строке, затрудняющую её перевод.
Множество неудачных проверок¶
- Сводка:
Переводы на несколько языков имеют неудачные проверки.
- Область:
исходные строки
- Класс проверки:
weblate.checks.source.MultipleFailingCheck- Проверить идентификатор:
multiple_failures- Триггер:
Эта проверка всегда включена, но её можно игнорировать с помощью флага.
- Флаг для игнорирования:
ignore-multiple-failures
Во многих переводах этой строки имеются неудачные проверки качества. Обычно это свидетельствует о том, что нужно что-то сделать для улучшения исходной строки.
Часто неудачная проверка может быть вызвана пропущенной точкой в конце предложения или подобными мелкими проблемами, которые переводчики склонны исправлять в переводе, в то время как лучше было бы их исправить в исходной строке.
Несколько переменных без названий¶
Добавлено в версии 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)
Заполнители в автоматических предложениях¶
Проверки на заполнители предоставляют информацию о текущих заполнителях, и это может использоваться для указания механизмам автоматических предложений сохранять их. Поддержка этого варьируется в разных службах, и во многих случаях нет способа гарантировать сохранение заполнителей нетронутыми.
См. также