deb-manila/doc/source/devref/i18n.rst
Danny Al-Gaaf 84e953ca75 Unify usage of project name in doc to 'manila'
Change project name in doc according to style rules in
http://docs.openstack.org/contributor-guide/writing-style/openstack-components.html

Closes-Bug: #1537808

Change-Id: I849b0ec34a1bfc01263f35a9ef0128100945867e
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2016-02-15 20:25:28 +01:00

1.2 KiB

Internationalization

Manila uses gettext so that user-facing strings such as log messages appear in the appropriate language in different locales.

To use gettext, make sure that the strings passed to the logger are wrapped in a _() function call. For example:

LOG.info(_("block_device_mapping %s"), block_device_mapping)

Do not use locals() for formatting messages because: 1. It is not as clear as using explicit dicts. 2. It could produce hidden errors during refactoring. 3. Changing the name of a variable causes a change in the message. 4. It creates a lot of otherwise unused variables.

If you do not follow the project conventions, your code may cause the LocalizationTestCase.test_multiple_positional_format_placeholders test to fail in manila/tests/test_localization.py.

The _() function is brought into the global scope by doing:

from manila.openstack.common import gettextutils
gettextutils.install("manila")

These lines are needed in any toplevel script before any manila modules are imported. If this code is missing, it may result in an error that looks like:

NameError: name '_' is not defined