mirror of
https://gh.wpcy.net/https://github.com/WeblateOrg/weblate.git
synced 2026-05-28 13:46:03 +08:00
316 lines
8.9 KiB
ReStructuredText
Vendored
316 lines
8.9 KiB
ReStructuredText
Vendored
Checks and fixups
|
|
=================
|
|
|
|
.. _autofix:
|
|
|
|
Automatic fixups
|
|
----------------
|
|
|
|
In addition to :ref:`checks`, Weblate can also automatically fix some common
|
|
errors in translated strings. This can be quite powerful feature to prevent
|
|
common mistakes in translations, however use it with caution as it can cause
|
|
silent corruption as well.
|
|
|
|
.. seealso::
|
|
|
|
:setting:`AUTOFIX_LIST`
|
|
|
|
.. _checks:
|
|
|
|
Quality checks
|
|
--------------
|
|
|
|
Weblate does wide range of quality checks on messages. The following section
|
|
describes them in more detail. The checks take account also special rules for
|
|
different languages, so if you think the result is wrong, please report a bug.
|
|
|
|
.. seealso::
|
|
|
|
:setting:`CHECK_LIST`, :ref:`custom-checks`
|
|
|
|
Translation checks
|
|
++++++++++++++++++
|
|
|
|
These are executed on every translation change and help translators to keep
|
|
good quality of translations.
|
|
|
|
.. _check-same:
|
|
|
|
Unchanged translation
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The source and translated strings are the same at least in one of the plural forms.
|
|
This check ignores some strings which are quite usually same in all languages
|
|
and strips various markup, which can occur in the string, to reduce number of
|
|
false positives.
|
|
|
|
This check can help finding strings which were mistakenly not translated .
|
|
|
|
.. _check-begin-newline:
|
|
.. _check-end-newline:
|
|
|
|
Starting or trailing newline
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Source and translated do not both start (or end) with a newline.
|
|
|
|
Newlines usually appear in source string for a good reason, so omitting or
|
|
adding it can lead to formatting problems when the translated text is used in
|
|
the application.
|
|
|
|
.. _check-begin-space:
|
|
|
|
Starting spaces
|
|
~~~~~~~~~~~~~~~
|
|
|
|
Source and translation do not both start with same number of spaces.
|
|
|
|
Space in beginning is usually used for indentation in the interface and thus
|
|
is important to keep.
|
|
|
|
.. _check-end-space:
|
|
|
|
Trailing space
|
|
~~~~~~~~~~~~~~
|
|
|
|
Source and translated do not both end with a space.
|
|
|
|
Trailing space is usually used to give space between neighbouring elements, so
|
|
removing it might break application layout.
|
|
|
|
.. _check-end-stop:
|
|
|
|
Trailing stop
|
|
~~~~~~~~~~~~~
|
|
|
|
Source and translated do not both end with a full stop. Full stop is also
|
|
checked in various language variants (Chinese, Japanese, Devanagari or Urdu).
|
|
|
|
Whet the original string is a sentence, the translated one should be sentence
|
|
as well to be consistent within the translated content.
|
|
|
|
.. _check-end-colon:
|
|
|
|
Trailing colon
|
|
~~~~~~~~~~~~~~
|
|
|
|
Source and translated do not both end with a colon or the colon is not
|
|
correctly spaced. This includes spacing rules for languages like French or
|
|
Breton. Colon is also checked in various language variants (Chinese or
|
|
Japanese).
|
|
|
|
Colon is part of a label and should be kept to provide consistent translation.
|
|
Weblate also checks for various typographic conventions for colon, for example
|
|
in some languages it should be preceded with space.
|
|
|
|
.. _check-end-question:
|
|
|
|
Trailing question
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
Source and translated do not both end with a question mark or it is not
|
|
correctly spaced. This includes spacing rules for languages like French or
|
|
Breton. Question mark is also checked in various language variants (Armenian,
|
|
Arabic, Chinese, Korean, Japanese, Ethiopic, Vai or Coptic).
|
|
|
|
Question mark indicates question and this semantics should be kept in
|
|
translated string as well. Weblate also checks for various typographic
|
|
conventions for question mark, for example in some languages it should be
|
|
preceded with space.
|
|
|
|
.. _check-end-exclamation:
|
|
|
|
Trailing exclamation
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Source and translated do not both end with an exclamation mark or it is not
|
|
correctly spaced. This includes spacing rules for languages like French or
|
|
Breton. Exclamation mark is also checked in various language variants
|
|
(Chinese, Japanese, Korean, Armenian, Limbu, Myanmar or Nko).
|
|
|
|
Exclamation mark indicates some important statement and this semantics should
|
|
be kept in translated string as well. Weblate also checks for various
|
|
typographic conventions for exclamation mark, for example in some languages it
|
|
should be preceded with space.
|
|
|
|
.. _check-end-ellipsis:
|
|
|
|
Trailing ellipsis
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
Source and translation do not both end with an ellipsis. This only checks for
|
|
real ellipsis (``…``) not for three dots (``...``).
|
|
|
|
Ellipsis is usually rendered nicer than three dots, so it's good to keep it
|
|
when the original string was using that as well.
|
|
|
|
.. seealso::
|
|
|
|
`Ellipsis on wikipedia <https://en.wikipedia.org/wiki/Ellipsis>`_
|
|
|
|
.. _check-max-length:
|
|
|
|
Maximum Length
|
|
~~~~~~~~~~~~~~
|
|
|
|
Translation is too long to accept. This only checks for the length of translation
|
|
characters.
|
|
|
|
Source and translation usually do not have same amount of characters, but if
|
|
translation is too long, it can be affect a rendered shape. For example, in some UI
|
|
widget, it should be kept in a specific length of characters in order to show
|
|
complete translation within limited space.
|
|
|
|
Unlike the other checks, the flag should be set as a ``key:value`` pair like
|
|
``max-length:100``.
|
|
|
|
.. _check-python-format:
|
|
.. _check-python-brace-format:
|
|
.. _check-php-format:
|
|
.. _check-c-format:
|
|
.. _check-javascript-format:
|
|
.. _check-angularjs-format:
|
|
|
|
Format strings
|
|
~~~~~~~~~~~~~~
|
|
|
|
Format string does not match source. Weblate supports following formats:
|
|
|
|
* Python format
|
|
* Python brace format
|
|
* PHP format
|
|
* C format
|
|
* Javascript format
|
|
* AngularJS interpolation string
|
|
|
|
Omitting format string from translation usually cause severe problems, so you
|
|
should really keep the format string matching the original one.
|
|
|
|
.. seealso::
|
|
|
|
`Python string formatting <https://docs.python.org/2.7/library/stdtypes.html#string-formatting>`_,
|
|
`Python brace format <https://docs.python.org/3.3/library/string.html#string-formatting>`_,
|
|
`PHP format strings <https://php.net/manual/en/function.sprintf.php>`_,
|
|
`C printf format <https://en.wikipedia.org/wiki/Printf_format_string>`_,
|
|
`AngularJS: API: $interpolate <https://docs.angularjs.org/api/ng/service/$interpolate>`_
|
|
|
|
.. _check-plurals:
|
|
|
|
Missing plurals
|
|
~~~~~~~~~~~~~~~
|
|
|
|
Some plural forms are not translated. Check plural form definition to see for
|
|
which counts each plural form is being used.
|
|
|
|
Not filling in some plural forms will lead to showing no text in the
|
|
application in case this plural would be displayed.
|
|
|
|
.. _check-inconsistent:
|
|
|
|
Inconsistent
|
|
~~~~~~~~~~~~
|
|
|
|
More different translations of one string in a project. This can also lead to
|
|
inconsistencies in displayed checks. You can find other translations of this
|
|
string on :guilabel:`All locations` tab.
|
|
|
|
Weblate checks translations of the same string across all translation within a
|
|
project to help you keep consistent translations.
|
|
|
|
.. _check-escaped-newline:
|
|
|
|
Mismatched \\n
|
|
~~~~~~~~~~~~~~
|
|
|
|
Number of \\n in translation does not match source.
|
|
|
|
Usually escaped newlines are important for formatting program output, so this
|
|
should match to source.
|
|
|
|
.. _check-bbcode:
|
|
|
|
Mismatched BBcode
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
BBcode in translation does not match source.
|
|
|
|
This code is used as a simple markup to highlight important parts of a
|
|
message, so it is usually a good idea to keep them.
|
|
|
|
.. note::
|
|
|
|
The method for detecting BBcode is currently quite simple so this check
|
|
might produce false positives.
|
|
|
|
.. _check-zero-width-space:
|
|
|
|
Zero-width space
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
Translation contains extra zero-width space (<U+200B>) character.
|
|
|
|
This character is usually inserted by mistake, though it might have legitimate
|
|
use. Some programs might have problems when this character is used.
|
|
|
|
.. seealso::
|
|
|
|
`Zero width space on wikipedia <https://en.wikipedia.org/wiki/Zero-width_space>`_
|
|
|
|
.. _check-xml-tags:
|
|
|
|
XML tags mismatch
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
XML tags in translation do not match source.
|
|
|
|
This usually means resulting output will look different. In most cases this is
|
|
not desired result from translation, but occasionally it is desired.
|
|
|
|
Source checks
|
|
+++++++++++++
|
|
|
|
Source checks can help developers to improve quality of source strings.
|
|
|
|
.. _check-optional-plural:
|
|
|
|
Optional plural
|
|
~~~~~~~~~~~~~~~
|
|
|
|
The string is optionally used as plural, but not using plural forms. In case
|
|
your translation system supports this, you should use plural aware variant of
|
|
it.
|
|
|
|
For example with Gettext in Python it could be:
|
|
|
|
.. code-block:: python
|
|
|
|
from gettext import ngettext
|
|
|
|
print ngettext('Selected %d file', 'Selected %d files', files) % files
|
|
|
|
.. _check-ellipsis:
|
|
|
|
Ellipsis
|
|
~~~~~~~~
|
|
|
|
The string uses three dots (``...``) instead of an ellipsis character (``…``).
|
|
|
|
Using Unicode character is in most cases better approach and looks better when
|
|
rendered.
|
|
|
|
.. seealso::
|
|
|
|
`Ellipsis on wikipedia <https://en.wikipedia.org/wiki/Ellipsis>`_
|
|
|
|
.. _check-multiple-failures:
|
|
|
|
Multiple failing checks
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
More translations of this string have some failed quality checks. This is
|
|
usually indication that something could be done about improving the source
|
|
string.
|
|
|
|
This check can be quite often caused by missing full stop at the end of
|
|
sentence or similar minor issues which translators tend to fix in
|
|
translations, while it would be better to fix it in a source string.
|