Prepare marconi for localization

Setup configuration for localization and add
initial translation template like it's done for all other OpenStack
projects. Once this is in, we can add the usual translation bot job to
sync translations with transifex.

Change-Id: Ia3be79e8ddfa9d68474e5a2bb2c7928ec5beca96
This commit is contained in:
Andreas Jaeger 2014-06-04 22:31:55 +02:00
parent 366d9b578d
commit ec6c6ea0f9
3 changed files with 372 additions and 0 deletions

2
babel.cfg Normal file
View File

@ -0,0 +1,2 @@
[python: **.py]

356
marconi/locale/marconi.pot Normal file
View File

@ -0,0 +1,356 @@
# Translations template for marconi.
# Copyright (C) 2014 ORGANIZATION
# This file is distributed under the same license as the marconi project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: marconi 2014.2.dev44.g366d9b5\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-06-04 22:30+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 1.3\n"
#: marconi/common/api.py:48
msgid "{0} is not a valid operation"
msgstr ""
#: marconi/common/cli.py:50
msgid "Terminating"
msgstr ""
#: marconi/common/pipeline.py:94
#, python-format
msgid "Stage %(stage)s does not implement %(method)s"
msgstr ""
#: marconi/common/pipeline.py:108
#, python-format
msgid "Method %s not found in any of the registered stages"
msgstr ""
#: marconi/common/transport/wsgi/helpers.py:44
msgid ""
"\n"
"X-PROJECT-ID cannot be an empty string. Specify the right header X"
"-PROJECT-ID\n"
"and retry."
msgstr ""
#: marconi/common/transport/wsgi/helpers.py:83
msgid "Invalid queue identification"
msgstr ""
#: marconi/common/transport/wsgi/helpers.py:84
msgid "The format of the submitted queue name or project id is not valid."
msgstr ""
#: marconi/openstack/common/gettextutils.py:320
msgid "Message objects do not support addition."
msgstr ""
#: marconi/openstack/common/gettextutils.py:330
msgid ""
"Message objects do not support str() because they may contain non-ascii "
"characters. Please use unicode() or translate() instead."
msgstr ""
#: marconi/openstack/common/lockutils.py:102
#, python-format
msgid "Unable to acquire lock on `%(filename)s` due to %(exception)s"
msgstr ""
#: marconi/openstack/common/log.py:326
#, python-format
msgid "Deprecated: %s"
msgstr ""
#: marconi/openstack/common/log.py:437
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
#: marconi/openstack/common/log.py:488
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
#: marconi/openstack/common/log.py:709
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
#: marconi/openstack/common/strutils.py:92
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
#: marconi/openstack/common/strutils.py:197
#, python-format
msgid "Invalid unit system: \"%s\""
msgstr ""
#: marconi/openstack/common/strutils.py:206
#, python-format
msgid "Invalid string format: %s"
msgstr ""
#: marconi/queues/storage/pipeline.py:30
msgid ""
"Pipeline to use for processing {0} operations. This pipeline will be "
"consumed before calling the storage driver's controller methods, which "
"will always be appended to this pipeline."
msgstr ""
#: marconi/queues/storage/pipeline.py:78
#, python-format
msgid "Stage %(stage)d could not be imported: %(ex)s"
msgstr ""
#: marconi/queues/storage/mongodb/messages.py:546
#, python-format
msgid ""
"%(attempts)d attempt(s) required to post %(num_messages)d messages to "
"queue \"%(queue)s\" under project %(project)s"
msgstr ""
#: marconi/queues/storage/mongodb/messages.py:590
#, python-format
msgid ""
"First attempt failed while adding messages to queue \"%(queue)s\" under "
"project %(project)s"
msgstr ""
#: marconi/queues/storage/mongodb/messages.py:604
#, python-format
msgid ""
"Exceeded maximum retry duration for queue \"%(queue)s\" under project "
"%(project)s"
msgstr ""
#: marconi/queues/storage/mongodb/messages.py:664
#, python-format
msgid ""
"Hit maximum number of attempts (%(max)s) for queue \"%(queue)s\" under "
"project %(project)s"
msgstr ""
#: marconi/queues/storage/mongodb/queues.py:151
#, python-format
msgid ""
"Failed to increment the message counter for queue %(name)s and project "
"%(project)s"
msgstr ""
#: marconi/queues/storage/mongodb/utils.py:288
msgid "Caught AutoReconnect, retrying the call to {0}"
msgstr ""
#: marconi/queues/storage/mongodb/utils.py:293
msgid "Caught AutoReconnect, maximum attempts to {0} exceeded."
msgstr ""
#: marconi/queues/transport/validation.py:95
msgid "Project ids may not be more than {0} characters long."
msgstr ""
#: marconi/queues/transport/validation.py:99
msgid "Queue names may not be more than {0} characters long."
msgstr ""
#: marconi/queues/transport/validation.py:104
msgid ""
"Queue names may only contain ASCII letters, digits, underscores, and "
"dashes."
msgstr ""
#: marconi/queues/transport/validation.py:117
msgid "Limit must be at least 1 and no greater than {0}."
msgstr ""
#: marconi/queues/transport/validation.py:128
msgid "Queue metadata is too large. Max size: {0}"
msgstr ""
#: marconi/queues/transport/validation.py:140
msgid "No messages to enqueu."
msgstr ""
#: marconi/queues/transport/validation.py:153
msgid "Message collection size is too large. Max size {0}"
msgstr ""
#: marconi/queues/transport/validation.py:162
msgid ""
"The TTL for a message may not exceed {0} seconds, and must be at least "
"{1} seconds long."
msgstr ""
#: marconi/queues/transport/validation.py:178
#: marconi/queues/transport/validation.py:197
msgid "Limit must be at least 1 and may not be greater than {0}."
msgstr ""
#: marconi/queues/transport/validation.py:206
msgid ""
"The grace for a claim may not exceed {0} seconds, and must be at least "
"{1} seconds long."
msgstr ""
#: marconi/queues/transport/validation.py:222
msgid ""
"The TTL for a claim may not exceed {0} seconds, and must be at least {1} "
"seconds long."
msgstr ""
#: marconi/queues/transport/wsgi/driver.py:105
#, python-format
msgid "Serving on host %(bind)s:%(port)s"
msgstr ""
#: marconi/queues/transport/wsgi/errors.py:24
msgid "Service temporarily unavailable"
msgstr ""
#: marconi/queues/transport/wsgi/errors.py:25
msgid "Please try again in a few seconds."
msgstr ""
#: marconi/queues/transport/wsgi/errors.py:36
msgid "Invalid API call"
msgstr ""
#: marconi/queues/transport/wsgi/errors.py:45
msgid "Invalid request body"
msgstr ""
#: marconi/queues/transport/wsgi/errors.py:54
msgid "Document type not supported."
msgstr ""
#: marconi/queues/transport/wsgi/utils.py:59
msgid "Request body can not be empty"
msgstr ""
#: marconi/queues/transport/wsgi/utils.py:70
msgid "Request body could not be parsed."
msgstr ""
#: marconi/queues/transport/wsgi/utils.py:75
msgid "JSON contains integer that is too large."
msgstr ""
#: marconi/queues/transport/wsgi/utils.py:81
msgid "Request body could not be read."
msgstr ""
#: marconi/queues/transport/wsgi/utils.py:147
msgid "Missing \"{name}\" field."
msgstr ""
#: marconi/queues/transport/wsgi/utils.py:153
msgid "The value of the \"{name}\" field must be a {vtype}."
msgstr ""
#: marconi/queues/transport/wsgi/utils.py:171
msgid "Malformed hexadecimal UUID."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/claims.py:77
#: marconi/queues/transport/wsgi/v1_1/claims.py:77
msgid "Claim could not be created."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/claims.py:125
#: marconi/queues/transport/wsgi/v1_1/claims.py:125
msgid "Claim could not be queried."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/claims.py:173
#: marconi/queues/transport/wsgi/v1_1/claims.py:173
msgid "Claim could not be updated."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/claims.py:191
#: marconi/queues/transport/wsgi/v1_1/claims.py:191
msgid "Claim could not be deleted."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/messages.py:60
#: marconi/queues/transport/wsgi/v1_0/messages.py:269
#: marconi/queues/transport/wsgi/v1_1/messages.py:60
#: marconi/queues/transport/wsgi/v1_1/messages.py:269
msgid "Message could not be retrieved."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/messages.py:108
#: marconi/queues/transport/wsgi/v1_1/messages.py:108
msgid "Messages could not be listed."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/messages.py:183
#: marconi/queues/transport/wsgi/v1_1/messages.py:183
msgid "No messages could be enqueued."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/messages.py:188
#: marconi/queues/transport/wsgi/v1_1/messages.py:188
msgid "Messages could not be enqueued."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/messages.py:238
#: marconi/queues/transport/wsgi/v1_1/messages.py:238
msgid "Messages could not be deleted."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/messages.py:295
#: marconi/queues/transport/wsgi/v1_1/messages.py:295
msgid "Unable to delete"
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/messages.py:296
#: marconi/queues/transport/wsgi/v1_1/messages.py:296
msgid "This message is claimed; it cannot be deleted without a valid claim_id."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/messages.py:302
#: marconi/queues/transport/wsgi/v1_1/messages.py:302
msgid "Message could not be deleted."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/metadata.py:54
#: marconi/queues/transport/wsgi/v1_1/metadata.py:54
msgid "Queue metadata could not be retrieved."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/metadata.py:92
#: marconi/queues/transport/wsgi/v1_1/metadata.py:92
msgid "Metadata could not be updated."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/queues.py:48
#: marconi/queues/transport/wsgi/v1_1/queues.py:48
msgid "Queue could not be created."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/queues.py:77
#: marconi/queues/transport/wsgi/v1_1/queues.py:77
msgid "Queue could not be deleted."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/queues.py:113
#: marconi/queues/transport/wsgi/v1_1/queues.py:113
msgid "Queues could not be listed."
msgstr ""
#: marconi/queues/transport/wsgi/v1_0/stats.py:63
#: marconi/queues/transport/wsgi/v1_1/stats.py:63
msgid "Queue stats could not be read."
msgstr ""

View File

@ -90,3 +90,17 @@ cover-inclusive = true
[pbr] [pbr]
warnerrors = True warnerrors = True
[compile_catalog]
directory = marconi/locale
domain = marconi
[update_catalog]
domain = marconi
output_dir = marconi/locale
input_file = marconi/locale/marconi.pot
[extract_messages]
keywords = _ gettext ngettext l_ lazy_gettext
mapping_file = babel.cfg
output_file = marconi/locale/marconi.pot