summaryrefslogtreecommitdiff
path: root/doc/reference
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2014-12-02 16:18:08 +0100
committerChristophe Simonis <chs@odoo.com>2014-12-02 16:18:08 +0100
commit1d3f8eba879f02da7fc0bb46c9801029eccbc8c8 (patch)
tree10ef917de1be8ef9755cba4f3c9ac951af176b18 /doc/reference
parent7878b2fd0cb42827b71bd00a1fd8199e73269fe4 (diff)
parent591e329bb0efe4997677a0bee2e6f3b558e35df8 (diff)
[MERGE] forward port of branch 8.0 up to 591e329
Diffstat (limited to 'doc/reference')
-rw-r--r--doc/reference/cmdline.rst6
-rw-r--r--doc/reference/security.rst2
-rw-r--r--doc/reference/translations.rst96
-rw-r--r--doc/reference/translations/po-export.pngbin0 -> 6069 bytes
-rw-r--r--doc/reference/views.rst6
-rw-r--r--doc/reference/workflows.rst2
6 files changed, 109 insertions, 3 deletions
diff --git a/doc/reference/cmdline.rst b/doc/reference/cmdline.rst
index 1ec7d96ae9d..e0713410981 100644
--- a/doc/reference/cmdline.rst
+++ b/doc/reference/cmdline.rst
@@ -54,6 +54,12 @@ Running the server
runs tests after installing modules
+.. option:: --debug
+
+ when an unexpected error is raised (not a warning or an access error),
+ automatically starts :mod:`python:pdb` before logging and returning the
+ error
+
.. _reference/cmdline/scaffold:
Scaffolding
diff --git a/doc/reference/security.rst b/doc/reference/security.rst
index 72742f0639c..05ca9079fb7 100644
--- a/doc/reference/security.rst
+++ b/doc/reference/security.rst
@@ -71,6 +71,8 @@ This means the first *group rule* restricts access, but any further
although access rules do
+.. _reference/security/fields:
+
Field Access
============
diff --git a/doc/reference/translations.rst b/doc/reference/translations.rst
new file mode 100644
index 00000000000..45616189c0d
--- /dev/null
+++ b/doc/reference/translations.rst
@@ -0,0 +1,96 @@
+.. _reference/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}.pot` which should be 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._`::
+
+ 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/
diff --git a/doc/reference/translations/po-export.png b/doc/reference/translations/po-export.png
new file mode 100644
index 00000000000..82f8d5ad011
--- /dev/null
+++ b/doc/reference/translations/po-export.png
Binary files differ
diff --git a/doc/reference/views.rst b/doc/reference/views.rst
index 9eaab61b324..3f5b2ea2043 100644
--- a/doc/reference/views.rst
+++ b/doc/reference/views.rst
@@ -85,8 +85,8 @@ There are three types of inheritance specs:
* any other element, the first element with the same name and identical
attributes (ignoring ``position``) is matched
-The inheritance spec can an optional ``position`` attribute specifhing how
-the matched node should be altered:
+The inheritance spec may have an optional ``position`` attribute specifying
+how the matched node should be altered:
``inside`` (default)
the content of the inheritance spec is appended to the matched node
@@ -98,7 +98,7 @@ the matched node should be altered:
``before``
the content of the inheritance spec is added to the matched node's
parent, before the matched node
-``attribute``
+``attributes``
the content of the inheritance spec should be ``attribute`` elements
with a ``name`` attribute and an optional body:
diff --git a/doc/reference/workflows.rst b/doc/reference/workflows.rst
index 210213e5f55..a6890f05ab6 100644
--- a/doc/reference/workflows.rst
+++ b/doc/reference/workflows.rst
@@ -284,6 +284,8 @@ defined (in addition to the Odoo ``safe_eval`` environment):
- all the model column names, and
- all the browse record's attributes.
+.. _reference/workflows/signals:
+
Signals
'''''''