Merge pull request #265 from dbrgn/translation-docs

Better translation docs
This commit is contained in:
Daniel Greenfeld 2013-07-06 09:25:29 -07:00
commit 1337c5fd49
6 changed files with 71 additions and 25 deletions

View file

@ -9,7 +9,13 @@ django-admin2
:alt: Coverage Status
:target: https://coveralls.io/r/twoscoops/django-admin2
One of the most useful parts of ``django.contrib.admin`` is the ability to configure various views that touch and alter data. django-admin2 is a complete rewrite of that library using modern Class-Based Views and enjoying a design focused on extendibility and adaptability. By starting over, we can avoid the legacy code and make it easier to write extensions and themes.
One of the most useful parts of ``django.contrib.admin`` is the ability to
configure various views that touch and alter data. django-admin2 is a complete
rewrite of that library using modern Class-Based Views and enjoying a design
focused on extendibility and adaptability. By starting over, we can avoid the
legacy code and make it easier to write extensions and themes.
Documentation: http://django-admin2.rtfd.org/
Features
=============

BIN
docs/_static/join_team.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
docs/_static/request_language.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
docs/_static/translate_now.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -63,8 +63,8 @@ Content
installation
contributing
design
tutorial
internationalization
tutorial
Reference
-----------

View file

@ -4,13 +4,12 @@ Internationalization and localization
.. index:: internationalization
Refer to the `Django i18n documentation`_ to get started.
.. _`Django i18n documentation`: https://docs.djangoproject.com/en/dev/topics/i18n/
Refer to the `Django i18n documentation`_ to get started with
internationalization (i18n).
Using internationalization in your project
==========================================
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
@ -22,35 +21,62 @@ Then compile the messages so they can be used by Django.
python manage.py compilemessages
It should get you started !
Contributing to localization
============================
Django-admin2 has adopted `Transifex`_ to manage the localization process, `join and
help us`_ making django-admin2 available for everyone !
Translating django-admin2
=========================
.. _Transifex: https://www.transifex.com
.. _`join and help us`: https://www.transifex.com/projects/p/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 internationalization in the django-admin2 project development
===================================================================
Using i18n in the django-admin2 project development
===================================================
Internationalization
--------------------
This section is mainly directed at
Python code
###########
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
#########
**Templates**
Make sure to load the i18n tags and put ``trans`` tags and ``blocktrans`` blocks where needed.
@ -66,18 +92,32 @@ Adding a new locale
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 !
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
# update the translations
# make sure to fix all fuzzy translations
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