From ec6c6ea0f95ed2e11adcd59b496042e449be54a6 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Wed, 4 Jun 2014 22:31:55 +0200 Subject: [PATCH] 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 --- babel.cfg | 2 + marconi/locale/marconi.pot | 356 +++++++++++++++++++++++++++++++++++++ setup.cfg | 14 ++ 3 files changed, 372 insertions(+) create mode 100644 babel.cfg create mode 100644 marconi/locale/marconi.pot diff --git a/babel.cfg b/babel.cfg new file mode 100644 index 000000000..15cd6cb76 --- /dev/null +++ b/babel.cfg @@ -0,0 +1,2 @@ +[python: **.py] + diff --git a/marconi/locale/marconi.pot b/marconi/locale/marconi.pot new file mode 100644 index 000000000..785885ebc --- /dev/null +++ b/marconi/locale/marconi.pot @@ -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 , 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 \n" +"Language-Team: LANGUAGE \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 "" + diff --git a/setup.cfg b/setup.cfg index c0bf89f95..48787223c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -90,3 +90,17 @@ cover-inclusive = true [pbr] 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