##// END OF EJS Templates
i18n: updated translation for Polish...
i18n: updated translation for Polish Currently translated at 56.5% (614 of 1087 strings)

File last commit:

r8089:01aca0a4 default
r8092:7fef5132 default
Show More
how_to
120 lines | 4.5 KiB | text/plain | TextLexer
============
Translations
============
Translations are available on Hosted Weblate at the following URL:
https://hosted.weblate.org/projects/kallithea/kallithea/
Registered users may contribute to the existing languages, or request a new
language translation.
Translating using Weblate
-------------------------
Weblate_ offers a simple and easy to use interface featuring glossary, machine
translation, suggestions based on similar translations in other projects,
automatic checks etc. Weblate imports the source code tree directly from
the version control system, and commits edits back from time to time.
When registering at Weblate, make sure you use the name and email address you
prefer to be used when your changes are committed. We can and probably will
amend changesets coming from Weblate, but having things right from the beginning
makes things easier.
Weblate performs sanity checks all the time and tries to prevent you from ignoring
them. Most common mistakes are inconsistent punctuation, whitespace, missing or extra
format parameters, untranslated strings copied into the translation. Please perform
necessary corrections when they're needed, or override the false positives.
Merging translations from Weblate (admin-only)
----------------------------------------------
Weblate rebases its changes every time it pulls from our repository. Pulls are triggered
by a web hook from Our Own Kallithea every time it receives new commits. Usually merging
the new translations is a straightforward process consisting of a pull from the Weblate-hosted
repository which is available under the Data Exports tab in the Weblate interface.
Weblate tries to minimise the number of commits, but that doesn't always work, especially
when two translators work with different languages at more or less the same time.
It makes sense sometimes to re-order or fold commits by the same author when they touch
just the same language translation. That, however, may confuse Weblate sometimes, in
which case it should be manually convinced it has to discard the commits it created by
using its administrative interface.
Regenerating translations after source code changes (admin-only)
----------------------------------------------------------------
When the Kallithea source code changes, both the location as the content of
translation strings can change. It is therefore necessary to regularly
regenerate the `kallithea.pot` file containing these strings, as well as aligning
the translation files (`*.po`).
First update the translation strings::
python3 setup.py extract_messages
Then regenerate the translation files. This could either be done with `python3
setup.py update_catalog` or with `msgmerge` from the `gettext` package. As
Weblate is also touching these translation files, it is preferred to use the
same tools (`msgmerge`) and settings as Weblate to minimize the diff::
find kallithea/i18n -name kallithea.po | xargs -I '{}' \
msgmerge --width=76 --backup=none --previous --update '{}' \
kallithea/i18n/kallithea.pot
Manual creation of a new language translation
---------------------------------------------
In the prepared development environment, run the following to ensure
all translation strings are extracted and up-to-date::
python3 setup.py extract_messages
Create new language by executing following command::
python3 setup.py init_catalog -l <new_language_code>
This creates a new translation under directory `kallithea/i18n/<new_language_code>`
based on the translation template file, `kallithea/i18n/kallithea.pot`.
Edit the new PO file located in `LC_MESSAGES` directory with poedit or your
favorite PO files editor. After you finished with the translations, check the
translation file for errors by executing::
msgfmt -f -c kallithea/i18n/<new_language_code>/LC_MESSAGES/<updated_file.po>
Finally, compile the translations::
python3 setup.py compile_catalog -l <new_language_code>
Manually updating translations
------------------------------
Extract the latest versions of strings for translation by running::
python3 setup.py extract_messages
Update the PO file by doing::
python3 setup.py update_catalog -l <new_language_code>
Edit the newly updated translation file. Repeat all steps after the
`init_catalog` step from the 'new translation' instructions above.
Testing translations
--------------------
Edit `kallithea/tests/conftest.py` and set `i18n.lang` to `<new_language_code>`
and run Kallithea tests by executing::
py.test
.. _Weblate: http://weblate.org/