mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-03-16 22:20:24 +00:00
123 lines
3.6 KiB
ReStructuredText
123 lines
3.6 KiB
ReStructuredText
=====================================
|
|
Internationalization and localization
|
|
=====================================
|
|
|
|
.. index:: internationalization
|
|
|
|
Refer to the `Django i18n documentation`_ to get started with
|
|
internationalization (i18n).
|
|
|
|
|
|
Enabling i18n in Django
|
|
=======================
|
|
|
|
Make sure you've activated translation for your project
|
|
(the fastest way is to check in your ``settings.py`` file if ``MIDDLEWARE_CLASSES`` includes
|
|
``django.middleware.locale.LocaleMiddleware``).
|
|
|
|
Then compile the messages so they can be used by Django.
|
|
|
|
.. code-block:: bash
|
|
|
|
python manage.py compilemessages
|
|
|
|
It should get you started !
|
|
|
|
|
|
Translating django-admin2
|
|
=========================
|
|
|
|
The translation of the language files is handled using Transifex_.
|
|
|
|
Improving existing translations
|
|
-------------------------------
|
|
|
|
To check out what languages are currently being worked on, check out the
|
|
`Project page`_. If you want to help with one of the translations, open the
|
|
team page by clicking on the language and request to join the team.
|
|
|
|
.. image:: _static/join_team.png
|
|
:alt: Button labeled "Join team"
|
|
|
|
Now you can start translating. Open the language page, select a language
|
|
resource (e.g. *djadmin2.po*).
|
|
|
|
.. image:: _static/translate_now.png
|
|
:alt: Button labeled "Translate now"
|
|
|
|
Then select a string from the list on the left and enter a translation on the
|
|
right side. Finally, click the *Save* button on the top right and you're done.
|
|
|
|
It is also possible to suggest better translations for existing ones with the
|
|
*Suggest* button on the bottom.
|
|
|
|
Requesting a new language
|
|
-------------------------
|
|
|
|
If a language is not available on Transifex_ yet, you can request it with the
|
|
*Request language* button on the `Project page`_.
|
|
|
|
.. image:: _static/request_language.png
|
|
:alt: Button labeled "Request language"
|
|
|
|
|
|
Using i18n in the django-admin2 project development
|
|
===================================================
|
|
|
|
This section is mainly directed at
|
|
|
|
Marking strings for translation
|
|
-------------------------------
|
|
|
|
**Python code**
|
|
|
|
Make sure to use ugettext or ugettext_lazy on strings that will be shown to the users,
|
|
with string interpolation ( "%(name_of_variable)s" instead of "%s" ) where needed.
|
|
|
|
Remember that all languages do not use the same word order, so try to provide flexible strings to translate !
|
|
|
|
**Templates**
|
|
|
|
Make sure to load the i18n tags and put ``trans`` tags and ``blocktrans`` blocks where needed.
|
|
|
|
Block variables are very useful to keep the strings simple.
|
|
|
|
Adding a new locale
|
|
-------------------
|
|
|
|
.. code-block:: bash
|
|
|
|
cd djadmin2
|
|
django-admin.py makemessages -l $LOCALE_CODE
|
|
|
|
A new file will be created under ``locale/$LOCALE_CODE/LC_MESSAGES/django.po``
|
|
|
|
Update the headers of the newly created file to match existing files and start the translation!
|
|
|
|
If you need help to adjust the *Plural-Forms* configuration in the .po file,
|
|
refer to the `gettext docs`_.
|
|
|
|
|
|
Updating existing locales
|
|
-------------------------
|
|
|
|
To update the language files with new strings in your .py files / templates:
|
|
|
|
.. code-block:: bash
|
|
|
|
cd djadmin2 # or any other package, for instance example/blog
|
|
django-admin.py makemessages -a
|
|
|
|
Then translate the files directly or upload them to Transifex_.
|
|
|
|
When the translation is done, you need to recompile the new translations:
|
|
|
|
.. code-block:: bash
|
|
|
|
django-admin.py compilemessages
|
|
|
|
|
|
.. _`django i18n documentation`: https://docs.djangoproject.com/en/dev/topics/i18n/
|
|
.. _transifex: https://www.transifex.com/projects/p/django-admin2/
|
|
.. _project page: https://www.transifex.com/projects/p/django-admin2/
|
|
.. _gettext docs: http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/Plural-forms.html
|