From baad3c800f078ef4af994d553eaec869dacad610 Mon Sep 17 00:00:00 2001 From: Lianhao Lu Date: Wed, 12 Dec 2012 20:13:34 +0800 Subject: [PATCH] Ground work for transifex-ify ceilometer. Following http://wiki.openstack.org/Translations to integrate transifex translation into ceilometer and to fix bug 1082805. This is the ground work to enable translation jobs using transifex and Jenkin's in ceilometer. We added the empty file ceilometer/locale/ceilometer.pot to avoid the failure of the Jenkin' translation-jobs because git doesn't allow empty directory to be added into the repository. We still need to do the following things once this patch gets accepted: 1. Make the transifex ceilometer project (https://www.transifex.com/projects/p/ceilometer/) as part of the openstack transifex project hub and give access to the transifex openstack Jenkins account. 2. Add the translation-jobs into openstack/openstack-ci-puppet for ceilometer. 3. Recheck and/or clean the LOG.foobar strings in ceilometer so that only the useful and necessary strings would be extracted into the .pot file. NOTE: 1. Don't use '_' as the variable name for "don't care", since it clashes with gettext module. 2. Wrap the string with the underscore function to make it ready for translation, e.g. internationalized_string = _("I'm internationalized!") LOG.debug(_('I speak the language of %(language)s'), locals()) Change-Id: I9732e424b374afa8f0650baf4e3537109e7520d1 --- .gitignore | 1 + MANIFEST.in | 1 + babel.cfg | 2 ++ ceilometer/__init__.py | 19 +++++++++++++++++++ ceilometer/locale/ceilometer.pot | 0 setup.cfg | 14 ++++++++++++++ tools/test-requires | 1 + 7 files changed, 38 insertions(+) create mode 100644 babel.cfg create mode 100644 ceilometer/locale/ceilometer.pot diff --git a/.gitignore b/.gitignore index 03506f397a..8336faa951 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ dist *.egg ceilometer/versioninfo doc/source/api/*.rst +*.mo diff --git a/MANIFEST.in b/MANIFEST.in index 9c8ae9ee24..06333841d8 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -6,3 +6,4 @@ exclude .gitreview global-exclude *.pyc recursive-include public * +recursive-include ceilometer/locale * diff --git a/babel.cfg b/babel.cfg new file mode 100644 index 0000000000..15cd6cb76b --- /dev/null +++ b/babel.cfg @@ -0,0 +1,2 @@ +[python: **.py] + diff --git a/ceilometer/__init__.py b/ceilometer/__init__.py index e69de29bb2..9ed525a335 100644 --- a/ceilometer/__init__.py +++ b/ceilometer/__init__.py @@ -0,0 +1,19 @@ +# +# Copyright 2012 Intel Corp. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +import gettext + +gettext.install('ceilometer', unicode=1) diff --git a/ceilometer/locale/ceilometer.pot b/ceilometer/locale/ceilometer.pot new file mode 100644 index 0000000000..e69de29bb2 diff --git a/setup.cfg b/setup.cfg index d8b5960b58..68f85d6a9b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,3 +11,17 @@ where=tests all_files = 1 build-dir = doc/build source-dir = doc/source + +[extract_messages] +keywords = _ gettext ngettext l_ lazy_gettext +mapping_file = babel.cfg +output_file = ceilometer/locale/ceilometer.pot + +[compile_catalog] +directory = ceilometer/locale +domain = ceilometer + +[update_catalog] +domain = ceilometer +output_dir = ceilometer/locale +input_file = ceilometer/locale/ceilometer.pot diff --git a/tools/test-requires b/tools/test-requires index 607a005c0e..b577956c1a 100644 --- a/tools/test-requires +++ b/tools/test-requires @@ -3,6 +3,7 @@ coverage pep8>=1.0 mock mox +Babel>=0.9.6 # NOTE(dhellmann): Ming is necessary to provide the Mongo-in-memory # implementation of MongoDB. The original source for Ming is at # http://sourceforge.net/project/merciless but there does not seem to