[ADD] doc: basic translations guide

This commit is contained in:
Xavier Morel 2014-10-10 17:29:09 +02:00 committed by Raphael Collet
parent 184f396ea0
commit f1af60b3a6
2 changed files with 97 additions and 0 deletions

View File

@ -0,0 +1,97 @@
.. _guides/translations:
===================
Translating Modules
===================
Exporting translatable term
===========================
A number of terms in your modules are "implicitly translatable" as a result,
even if you haven't done any specific work towards translation you can export
your module's translatable terms and may find content to work with.
.. todo:: needs technical features
Translations export is done via the administration interface by logging into
the backend interface and opening :menuselection:`Settings --> Translations
--> Import / Export --> Export Translations`
* leave the language to the default (new language/empty template)
* select the `PO File`_ format
* select your module
* click :guilabel:`Export` and download the file
.. image:: translations/po-export.*
:align: center
:width: 75%
This gives you a file called :file:`{yourmodule}.po` which should be renamed
to :file:`{yourmodule}.pot` and moved to the :file:`{yourmodule}/i18n/`
directory. The file is a *PO Template* which simply lists translatable strings
and from which actual translations (PO files) can be created. PO files can
be created using msginit_, with a dedicated translation tool like POEdit_ or
by simply copying the template to a new file called :file:`{language}.po`.
Translation files should be put in :file:`{yourmodule}/i18n/`, next to
:file:`{yourmodule}.pot`, and will be automatically loaded by Odoo when the
corresponding language is installed (via :menuselection:`Settings -->
Translations --> Load a Translation`)
.. note:: translations for all loaded languages are also installed or updated
when installing or updating a module
Implicit exports
================
Odoo automatically exports translatable strings from "data"-type content:
* in non-QWeb views, all text nodes are exported as well as the content of
the ``string``, ``help``, ``sum``, ``confirm`` and ``placeholder``
attributes
* QWeb templates (both server-side and client-side), all text nodes are
exported except inside ``t-translation="off"`` blocks, the content of the
``title``, ``alt``, ``label`` and ``placeholder`` attributes are also
exported
* for :class:`~openerp.fields.Field`, unless their model is marked with
``_translate = False``:
* their ``string`` and ``help`` attributes are exported
* if ``selection`` is present and a list (or tuple), it's exported
* if their ``translate`` attribute is set to ``True``, all of their existing
values (across all records) are exported
* help/error messages of :attr:`~openerp.models.Model._constraints` and
:attr:`~openerp.models.Model._sql_constraints` are exported
Explicit exports
================
When it comes to more "imperative" situations in Python code or Javascript
code, Odoo is not able to automatically export translatable terms and they
must be marked explicitly for export. This is done by wrapping a literal
string in a function call.
In Python, the wrapping function is :func:`openerp.tools.translate._`::
title = _("Bank Accounts")
In JavaScript, the wrapping function is generally :js:func:`openerp.web._t`:
.. code-block:: javascript
title = _t("Bank Accounts")
.. warning::
only literal strings can be marked for exports, not expressions and not
variables. For situations where strings are formatted, this means the
format string must be marked not the formatted string::
# bad, the extract may work but it will not correctly translate the text
_("Scheduled meeting with %s" % invitee.name)
# good
_("Scheduled meeting with %s") % invitee.name
.. _PO File: http://en.wikipedia.org/wiki/Gettext#Translating
.. _msginit: http://www.gnu.org/software/gettext/manual/gettext.html#Creating
.. _POEdit: http://poedit.net/

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB