diff options
author | Brant Knudson <bknudson@us.ibm.com> | 2013-07-25 17:43:36 -0500 |
---|---|---|
committer | Brant Knudson <bknudson@us.ibm.com> | 2013-08-14 18:09:01 -0500 |
commit | 760856e9669b0af20909c56d4a5a082bd4d7e450 (patch) | |
tree | b32c7c0547d8ee19e5e4c954aa2d2d729d9d6057 /doc/source/developing.rst | |
parent | 14e090154c10001550127628c2728013f15d4256 (diff) | |
download | keystone-760856e9669b0af20909c56d4a5a082bd4d7e450.tar.gz keystone-760856e9669b0af20909c56d4a5a082bd4d7e450.tar.xz keystone-760856e9669b0af20909c56d4a5a082bd4d7e450.zip |
Add support for API message localization
Add support for doing language resolution for a request, based on the
Accept-Language HTTP header.
Using the lazy gettext functionality from oslo gettextutils, it is
possible to use the resolved language to translate an exception message
to the user requested language and return that translation from the API.
Co-authored-by: Luis A. Garcia <luis@linux.vnet.ibm.com>
Co-authored-by: Mathew Odden <mrodden@us.ibm.com>
Implements bp user-locale-api
Change-Id: Id8e92a42039d2f0b01d5c2dada733d068b2bdfeb
Diffstat (limited to 'doc/source/developing.rst')
-rw-r--r-- | doc/source/developing.rst | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/source/developing.rst b/doc/source/developing.rst index 7029e1c8..312d7892 100644 --- a/doc/source/developing.rst +++ b/doc/source/developing.rst @@ -228,6 +228,37 @@ installed devstack with a different LDAP password, modify the file ``keystone/tests/backend_liveldap.conf`` to reflect your password. +Translated responses +-------------------- + +The Keystone server can provide error responses translated into the language in +the ``Accept-Language`` header of the request. In order to test this in your +development environment, there's a couple of things you need to do. + +1. Build the message files. Run the following command in your keystone + directory:: + + $ python setup.py compile_catalog + +This will generate .mo files like keystone/locale/[lang]/LC_MESSAGES/[lang].mo + +2. When running Keystone, set the ``KEYSTONE_LOCALEDIR`` environment variable + to the keystone/locale directory. For example:: + + $ KEYSTONE_LOCALEDIR=/opt/stack/keystone/keystone/locale keystone-all + +Now you can get a translated error response:: + + $ curl -s -H "Accept-Language: zh" http://localhost:5000/notapath | python -mjson.tool + { + "error": { + "code": 404, + "message": "\u627e\u4e0d\u5230\u8cc7\u6e90\u3002", + "title": "Not Found" + } + } + + Building the Documentation ========================== |