From f40f93514825bd9e1f3622e76955a5826b63ab88 Mon Sep 17 00:00:00 2001 From: OpenStack Proposal Bot Date: Fri, 20 Jun 2014 06:01:49 +0000 Subject: [PATCH] Imported Translations from Transifex Change-Id: Ifd607b7f28655b2b7e9b890f1cbccd81154e1019 --- ceilometer/locale/ceilometer-log-info.pot | 32 ++++--- ceilometer/locale/ceilometer-log-warning.pot | 18 +++- ceilometer/locale/ceilometer.pot | 34 +++---- .../de/LC_MESSAGES/ceilometer-log-info.po | 34 +++---- .../de/LC_MESSAGES/ceilometer-log-warning.po | 16 +++- .../en_AU/LC_MESSAGES/ceilometer-log-info.po | 34 +++---- .../en_GB/LC_MESSAGES/ceilometer-log-info.po | 34 +++---- .../locale/en_US/LC_MESSAGES/ceilometer.po | 32 +++---- .../es/LC_MESSAGES/ceilometer-log-info.po | 34 +++---- .../fr/LC_MESSAGES/ceilometer-log-error.po | 88 +++++++++++++++++++ .../fr/LC_MESSAGES/ceilometer-log-info.po | 34 +++---- .../pt_BR/LC_MESSAGES/ceilometer-log-info.po | 34 +++---- .../zh_CN/LC_MESSAGES/ceilometer-log-info.po | 30 ++++--- 13 files changed, 299 insertions(+), 155 deletions(-) create mode 100644 ceilometer/locale/fr/LC_MESSAGES/ceilometer-log-error.po diff --git a/ceilometer/locale/ceilometer-log-info.pot b/ceilometer/locale/ceilometer-log-info.pot index 9831c2d92..c022ab4df 100644 --- a/ceilometer/locale/ceilometer-log-info.pot +++ b/ceilometer/locale/ceilometer-log-info.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: ceilometer 2014.2.dev50.ga2139d8\n" +"Project-Id-Version: ceilometer 2014.2.dev56.g0da00bf\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: ceilometer/openstack/common/eventlet_backdoor.py:141 +#: ceilometer/openstack/common/eventlet_backdoor.py:140 #, python-format msgid "Eventlet backdoor listening on %(port)s for process %(pid)d" msgstr "" @@ -33,54 +33,58 @@ msgid "Failed to remove file %(file)s" msgstr "" #: ceilometer/openstack/common/service.py:176 -#: ceilometer/openstack/common/service.py:270 #, python-format msgid "Caught %s, exiting" msgstr "" -#: ceilometer/openstack/common/service.py:239 +#: ceilometer/openstack/common/service.py:240 msgid "Parent process has died unexpectedly, exiting" msgstr "" -#: ceilometer/openstack/common/service.py:309 +#: ceilometer/openstack/common/service.py:271 +#, python-format +msgid "Child caught %s, exiting" +msgstr "" + +#: ceilometer/openstack/common/service.py:310 msgid "Forking too fast, sleeping" msgstr "" -#: ceilometer/openstack/common/service.py:328 +#: ceilometer/openstack/common/service.py:329 #, python-format msgid "Started child %d" msgstr "" -#: ceilometer/openstack/common/service.py:338 +#: ceilometer/openstack/common/service.py:339 #, python-format msgid "Starting %d workers" msgstr "" -#: ceilometer/openstack/common/service.py:355 +#: ceilometer/openstack/common/service.py:356 #, python-format msgid "Child %(pid)d killed by signal %(sig)d" msgstr "" -#: ceilometer/openstack/common/service.py:359 +#: ceilometer/openstack/common/service.py:360 #, python-format msgid "Child %(pid)s exited with status %(code)d" msgstr "" -#: ceilometer/openstack/common/service.py:394 +#: ceilometer/openstack/common/service.py:399 #, python-format msgid "Caught %s, stopping children" msgstr "" -#: ceilometer/openstack/common/service.py:403 +#: ceilometer/openstack/common/service.py:408 msgid "Wait called after thread killed. Cleaning up." msgstr "" -#: ceilometer/openstack/common/service.py:414 +#: ceilometer/openstack/common/service.py:424 #, python-format msgid "Waiting on %d children to exit" msgstr "" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:379 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:387 #, python-format msgid "Deleting duplicated row with id: %(id)s from table: %(table)s" msgstr "" diff --git a/ceilometer/locale/ceilometer-log-warning.pot b/ceilometer/locale/ceilometer-log-warning.pot index c5f17d2db..2725fce7d 100644 --- a/ceilometer/locale/ceilometer-log-warning.pot +++ b/ceilometer/locale/ceilometer-log-warning.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: ceilometer 2014.2.dev50.ga2139d8\n" +"Project-Id-Version: ceilometer 2014.2.dev56.g0da00bf\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,19 @@ msgstr "" msgid "task run outlasted interval by %s sec" msgstr "" -#: ceilometer/openstack/common/service.py:363 +#: ceilometer/openstack/common/network_utils.py:149 +msgid "tcp_keepidle not available on your system" +msgstr "" + +#: ceilometer/openstack/common/network_utils.py:156 +msgid "tcp_keepintvl not available on your system" +msgstr "" + +#: ceilometer/openstack/common/network_utils.py:163 +msgid "tcp_keepknt not available on your system" +msgstr "" + +#: ceilometer/openstack/common/service.py:364 #, python-format msgid "pid %d not in child list" msgstr "" diff --git a/ceilometer/locale/ceilometer.pot b/ceilometer/locale/ceilometer.pot index 6e1969c75..9ca720c66 100644 --- a/ceilometer/locale/ceilometer.pot +++ b/ceilometer/locale/ceilometer.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: ceilometer 2014.2.dev50.ga2139d8\n" +"Project-Id-Version: ceilometer 2014.2.dev56.g0da00bf\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -921,11 +921,11 @@ msgstr "" msgid "Swift endpoint not found" msgstr "" -#: ceilometer/openstack/common/gettextutils.py:271 +#: ceilometer/openstack/common/gettextutils.py:320 msgid "Message objects do not support addition." msgstr "" -#: ceilometer/openstack/common/gettextutils.py:280 +#: ceilometer/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." @@ -941,35 +941,35 @@ msgstr "" msgid "Deprecated: %s" msgstr "" -#: ceilometer/openstack/common/log.py:438 +#: ceilometer/openstack/common/log.py:436 #, python-format msgid "Error loading logging config %(log_config)s: %(err_msg)s" msgstr "" -#: ceilometer/openstack/common/log.py:489 +#: ceilometer/openstack/common/log.py:487 #, python-format msgid "syslog facility must be one of: %s" msgstr "" -#: ceilometer/openstack/common/log.py:710 +#: ceilometer/openstack/common/log.py:725 #, python-format msgid "Fatal call to deprecated config: %(msg)s" msgstr "" #: ceilometer/openstack/common/policy.py:96 -msgid "JSON file containing policy" +msgid "The JSON file that defines policies." msgstr "" #: ceilometer/openstack/common/policy.py:99 -msgid "Rule enforced when requested rule is not found" +msgid "Default rule. Enforced when a requested rule is not found." msgstr "" -#: ceilometer/openstack/common/policy.py:113 +#: ceilometer/openstack/common/policy.py:114 #, python-format msgid "Policy doesn't allow %s to be performed." msgstr "" -#: ceilometer/openstack/common/policy.py:207 +#: ceilometer/openstack/common/policy.py:208 #, python-format msgid "Rules must be an instance of dict or Rules, got %s instead" msgstr "" @@ -979,12 +979,12 @@ msgstr "" msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s" msgstr "" -#: ceilometer/openstack/common/strutils.py:203 +#: ceilometer/openstack/common/strutils.py:197 #, python-format msgid "Invalid unit system: \"%s\"" msgstr "" -#: ceilometer/openstack/common/strutils.py:212 +#: ceilometer/openstack/common/strutils.py:206 #, python-format msgid "Invalid string format: %s" msgstr "" @@ -1039,27 +1039,27 @@ msgstr "" msgid "model should be a subclass of ModelBase" msgstr "" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:286 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:294 #, python-format msgid "" "Please specify column %s in col_name_col_instance param. It is required " "because column has unsupported type by sqlite)." msgstr "" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:292 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:300 #, python-format msgid "" "col_name_col_instance param has wrong type of column instance for column " "%s It should be instance of sqlalchemy.Column." msgstr "" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:400 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:408 msgid "Unsupported id columns type" msgstr "" #: ceilometer/openstack/common/middleware/sizelimit.py:55 #: ceilometer/openstack/common/middleware/sizelimit.py:64 -#: ceilometer/openstack/common/middleware/sizelimit.py:75 +#: ceilometer/openstack/common/middleware/sizelimit.py:76 msgid "Request is too large." msgstr "" diff --git a/ceilometer/locale/de/LC_MESSAGES/ceilometer-log-info.po b/ceilometer/locale/de/LC_MESSAGES/ceilometer-log-info.po index 199018fd3..9a7826a0e 100644 --- a/ceilometer/locale/de/LC_MESSAGES/ceilometer-log-info.po +++ b/ceilometer/locale/de/LC_MESSAGES/ceilometer-log-info.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" -"PO-Revision-Date: 2014-06-14 19:30+0000\n" -"Last-Translator: Andreas Jaeger \n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" +"PO-Revision-Date: 2014-06-19 11:01+0000\n" +"Last-Translator: openstackjenkins \n" "Language-Team: German (http://www.transifex.com/projects/p/ceilometer/" "language/de/)\n" "Language: de\n" @@ -19,7 +19,7 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ceilometer/openstack/common/eventlet_backdoor.py:141 +#: ceilometer/openstack/common/eventlet_backdoor.py:140 #, python-format msgid "Eventlet backdoor listening on %(port)s for process %(pid)d" msgstr "Eventlet backdoor hört auf %(port)s für Prozess %(pid)d" @@ -35,55 +35,59 @@ msgid "Failed to remove file %(file)s" msgstr "Löschen der Datei %(file)s fehlgeschlagen" #: ceilometer/openstack/common/service.py:176 -#: ceilometer/openstack/common/service.py:270 #, python-format msgid "Caught %s, exiting" msgstr "%s abgefangen. Vorgang wird beendet" -#: ceilometer/openstack/common/service.py:239 +#: ceilometer/openstack/common/service.py:240 msgid "Parent process has died unexpectedly, exiting" msgstr "" "Übergeordneter Prozess wurde unerwartet abgebrochen. Vorgang wird beendet" -#: ceilometer/openstack/common/service.py:309 +#: ceilometer/openstack/common/service.py:271 +#, python-format +msgid "Child caught %s, exiting" +msgstr "Untergeordnetes Element %s abgefangen; Vorgang wird beendet" + +#: ceilometer/openstack/common/service.py:310 msgid "Forking too fast, sleeping" msgstr "Verzweigung zu schnell; im Ruhemodus" -#: ceilometer/openstack/common/service.py:328 +#: ceilometer/openstack/common/service.py:329 #, python-format msgid "Started child %d" msgstr "Untergeordnetes Element %d gestartet" -#: ceilometer/openstack/common/service.py:338 +#: ceilometer/openstack/common/service.py:339 #, python-format msgid "Starting %d workers" msgstr "Starten von %d Workers" -#: ceilometer/openstack/common/service.py:355 +#: ceilometer/openstack/common/service.py:356 #, python-format msgid "Child %(pid)d killed by signal %(sig)d" msgstr "Untergeordnetes Element %(pid)d durch Signal %(sig)d abgebrochen" -#: ceilometer/openstack/common/service.py:359 +#: ceilometer/openstack/common/service.py:360 #, python-format msgid "Child %(pid)s exited with status %(code)d" msgstr "Untergeordnete %(pid)s mit Status %(code)d beendet" -#: ceilometer/openstack/common/service.py:394 +#: ceilometer/openstack/common/service.py:399 #, python-format msgid "Caught %s, stopping children" msgstr "%s abgefangen, untergeordnete Elemente werden gestoppt" -#: ceilometer/openstack/common/service.py:403 +#: ceilometer/openstack/common/service.py:408 msgid "Wait called after thread killed. Cleaning up." msgstr "Warten aufgerufen nach dem der Thread abgebrochen wurde. Bereinige." -#: ceilometer/openstack/common/service.py:414 +#: ceilometer/openstack/common/service.py:424 #, python-format msgid "Waiting on %d children to exit" msgstr "Warten auf Beenden von %d untergeordneten Elementen" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:379 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:387 #, python-format msgid "Deleting duplicated row with id: %(id)s from table: %(table)s" msgstr "Lösche doppelte Zeile mit der ID %(id)s aus der Tabelle %(table)s" diff --git a/ceilometer/locale/de/LC_MESSAGES/ceilometer-log-warning.po b/ceilometer/locale/de/LC_MESSAGES/ceilometer-log-warning.po index 2a58f2b2e..6525835d0 100644 --- a/ceilometer/locale/de/LC_MESSAGES/ceilometer-log-warning.po +++ b/ceilometer/locale/de/LC_MESSAGES/ceilometer-log-warning.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" "PO-Revision-Date: 2014-06-14 19:30+0000\n" "Last-Translator: Andreas Jaeger \n" "Language-Team: German (http://www.transifex.com/projects/p/ceilometer/" @@ -25,7 +25,19 @@ msgstr "" msgid "task run outlasted interval by %s sec" msgstr "Ausgeführte Task hat Intervall um %s Sekunden überschritten" -#: ceilometer/openstack/common/service.py:363 +#: ceilometer/openstack/common/network_utils.py:149 +msgid "tcp_keepidle not available on your system" +msgstr "" + +#: ceilometer/openstack/common/network_utils.py:156 +msgid "tcp_keepintvl not available on your system" +msgstr "" + +#: ceilometer/openstack/common/network_utils.py:163 +msgid "tcp_keepknt not available on your system" +msgstr "" + +#: ceilometer/openstack/common/service.py:364 #, python-format msgid "pid %d not in child list" msgstr "PID %d nicht in Liste untergeordneter Elemente" diff --git a/ceilometer/locale/en_AU/LC_MESSAGES/ceilometer-log-info.po b/ceilometer/locale/en_AU/LC_MESSAGES/ceilometer-log-info.po index 4110ae3f7..cf2718369 100644 --- a/ceilometer/locale/en_AU/LC_MESSAGES/ceilometer-log-info.po +++ b/ceilometer/locale/en_AU/LC_MESSAGES/ceilometer-log-info.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" -"PO-Revision-Date: 2014-06-14 19:30+0000\n" -"Last-Translator: Andreas Jaeger \n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" +"PO-Revision-Date: 2014-06-19 07:49+0000\n" +"Last-Translator: openstackjenkins \n" "Language-Team: English (Australia) (http://www.transifex.com/projects/p/" "ceilometer/language/en_AU/)\n" "Language: en_AU\n" @@ -19,7 +19,7 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ceilometer/openstack/common/eventlet_backdoor.py:141 +#: ceilometer/openstack/common/eventlet_backdoor.py:140 #, python-format msgid "Eventlet backdoor listening on %(port)s for process %(pid)d" msgstr "Eventlet backdoor listening on %(port)s for process %(pid)d" @@ -35,54 +35,58 @@ msgid "Failed to remove file %(file)s" msgstr "" #: ceilometer/openstack/common/service.py:176 -#: ceilometer/openstack/common/service.py:270 #, python-format msgid "Caught %s, exiting" msgstr "Caught %s, exiting" -#: ceilometer/openstack/common/service.py:239 +#: ceilometer/openstack/common/service.py:240 msgid "Parent process has died unexpectedly, exiting" msgstr "Parent process has died unexpectedly, exiting" -#: ceilometer/openstack/common/service.py:309 +#: ceilometer/openstack/common/service.py:271 +#, python-format +msgid "Child caught %s, exiting" +msgstr "" + +#: ceilometer/openstack/common/service.py:310 msgid "Forking too fast, sleeping" msgstr "Forking too fast, sleeping" -#: ceilometer/openstack/common/service.py:328 +#: ceilometer/openstack/common/service.py:329 #, python-format msgid "Started child %d" msgstr "Started child %d" -#: ceilometer/openstack/common/service.py:338 +#: ceilometer/openstack/common/service.py:339 #, python-format msgid "Starting %d workers" msgstr "Starting %d workers" -#: ceilometer/openstack/common/service.py:355 +#: ceilometer/openstack/common/service.py:356 #, python-format msgid "Child %(pid)d killed by signal %(sig)d" msgstr "Child %(pid)d killed by signal %(sig)d" -#: ceilometer/openstack/common/service.py:359 +#: ceilometer/openstack/common/service.py:360 #, python-format msgid "Child %(pid)s exited with status %(code)d" msgstr "Child %(pid)s exited with status %(code)d" -#: ceilometer/openstack/common/service.py:394 +#: ceilometer/openstack/common/service.py:399 #, python-format msgid "Caught %s, stopping children" msgstr "Caught %s, stopping children" -#: ceilometer/openstack/common/service.py:403 +#: ceilometer/openstack/common/service.py:408 msgid "Wait called after thread killed. Cleaning up." msgstr "" -#: ceilometer/openstack/common/service.py:414 +#: ceilometer/openstack/common/service.py:424 #, python-format msgid "Waiting on %d children to exit" msgstr "Waiting on %d children to exit" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:379 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:387 #, python-format msgid "Deleting duplicated row with id: %(id)s from table: %(table)s" msgstr "Deleting duplicated row with id: %(id)s from table: %(table)s" diff --git a/ceilometer/locale/en_GB/LC_MESSAGES/ceilometer-log-info.po b/ceilometer/locale/en_GB/LC_MESSAGES/ceilometer-log-info.po index 03d56ea91..1b92e5393 100644 --- a/ceilometer/locale/en_GB/LC_MESSAGES/ceilometer-log-info.po +++ b/ceilometer/locale/en_GB/LC_MESSAGES/ceilometer-log-info.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" -"PO-Revision-Date: 2014-06-14 19:30+0000\n" -"Last-Translator: Andreas Jaeger \n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" +"PO-Revision-Date: 2014-06-19 07:49+0000\n" +"Last-Translator: openstackjenkins \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/" "ceilometer/language/en_GB/)\n" "Language: en_GB\n" @@ -19,7 +19,7 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ceilometer/openstack/common/eventlet_backdoor.py:141 +#: ceilometer/openstack/common/eventlet_backdoor.py:140 #, python-format msgid "Eventlet backdoor listening on %(port)s for process %(pid)d" msgstr "Eventlet backdoor listening on %(port)s for process %(pid)d" @@ -35,54 +35,58 @@ msgid "Failed to remove file %(file)s" msgstr "" #: ceilometer/openstack/common/service.py:176 -#: ceilometer/openstack/common/service.py:270 #, python-format msgid "Caught %s, exiting" msgstr "Caught %s, exiting" -#: ceilometer/openstack/common/service.py:239 +#: ceilometer/openstack/common/service.py:240 msgid "Parent process has died unexpectedly, exiting" msgstr "Parent process has died unexpectedly, exiting" -#: ceilometer/openstack/common/service.py:309 +#: ceilometer/openstack/common/service.py:271 +#, python-format +msgid "Child caught %s, exiting" +msgstr "" + +#: ceilometer/openstack/common/service.py:310 msgid "Forking too fast, sleeping" msgstr "Forking too fast, sleeping" -#: ceilometer/openstack/common/service.py:328 +#: ceilometer/openstack/common/service.py:329 #, python-format msgid "Started child %d" msgstr "Started child %d" -#: ceilometer/openstack/common/service.py:338 +#: ceilometer/openstack/common/service.py:339 #, python-format msgid "Starting %d workers" msgstr "Starting %d workers" -#: ceilometer/openstack/common/service.py:355 +#: ceilometer/openstack/common/service.py:356 #, python-format msgid "Child %(pid)d killed by signal %(sig)d" msgstr "Child %(pid)d killed by signal %(sig)d" -#: ceilometer/openstack/common/service.py:359 +#: ceilometer/openstack/common/service.py:360 #, python-format msgid "Child %(pid)s exited with status %(code)d" msgstr "Child %(pid)s exited with status %(code)d" -#: ceilometer/openstack/common/service.py:394 +#: ceilometer/openstack/common/service.py:399 #, python-format msgid "Caught %s, stopping children" msgstr "Caught %s, stopping children" -#: ceilometer/openstack/common/service.py:403 +#: ceilometer/openstack/common/service.py:408 msgid "Wait called after thread killed. Cleaning up." msgstr "" -#: ceilometer/openstack/common/service.py:414 +#: ceilometer/openstack/common/service.py:424 #, python-format msgid "Waiting on %d children to exit" msgstr "Waiting on %d children to exit" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:379 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:387 #, python-format msgid "Deleting duplicated row with id: %(id)s from table: %(table)s" msgstr "Deleting duplicated row with id: %(id)s from table: %(table)s" diff --git a/ceilometer/locale/en_US/LC_MESSAGES/ceilometer.po b/ceilometer/locale/en_US/LC_MESSAGES/ceilometer.po index 7c0204a37..4827e9d39 100644 --- a/ceilometer/locale/en_US/LC_MESSAGES/ceilometer.po +++ b/ceilometer/locale/en_US/LC_MESSAGES/ceilometer.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" "PO-Revision-Date: 2012-12-11 06:53+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (United States) " @@ -922,11 +922,11 @@ msgstr "" msgid "Swift endpoint not found" msgstr "" -#: ceilometer/openstack/common/gettextutils.py:271 +#: ceilometer/openstack/common/gettextutils.py:320 msgid "Message objects do not support addition." msgstr "" -#: ceilometer/openstack/common/gettextutils.py:280 +#: ceilometer/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." @@ -942,35 +942,35 @@ msgstr "" msgid "Deprecated: %s" msgstr "" -#: ceilometer/openstack/common/log.py:438 +#: ceilometer/openstack/common/log.py:436 #, python-format msgid "Error loading logging config %(log_config)s: %(err_msg)s" msgstr "" -#: ceilometer/openstack/common/log.py:489 +#: ceilometer/openstack/common/log.py:487 #, python-format msgid "syslog facility must be one of: %s" msgstr "" -#: ceilometer/openstack/common/log.py:710 +#: ceilometer/openstack/common/log.py:725 #, python-format msgid "Fatal call to deprecated config: %(msg)s" msgstr "" #: ceilometer/openstack/common/policy.py:96 -msgid "JSON file containing policy" +msgid "The JSON file that defines policies." msgstr "" #: ceilometer/openstack/common/policy.py:99 -msgid "Rule enforced when requested rule is not found" +msgid "Default rule. Enforced when a requested rule is not found." msgstr "" -#: ceilometer/openstack/common/policy.py:113 +#: ceilometer/openstack/common/policy.py:114 #, python-format msgid "Policy doesn't allow %s to be performed." msgstr "" -#: ceilometer/openstack/common/policy.py:207 +#: ceilometer/openstack/common/policy.py:208 #, python-format msgid "Rules must be an instance of dict or Rules, got %s instead" msgstr "" @@ -980,12 +980,12 @@ msgstr "" msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s" msgstr "" -#: ceilometer/openstack/common/strutils.py:203 +#: ceilometer/openstack/common/strutils.py:197 #, python-format msgid "Invalid unit system: \"%s\"" msgstr "" -#: ceilometer/openstack/common/strutils.py:212 +#: ceilometer/openstack/common/strutils.py:206 #, python-format msgid "Invalid string format: %s" msgstr "" @@ -1040,27 +1040,27 @@ msgstr "" msgid "model should be a subclass of ModelBase" msgstr "" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:286 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:294 #, python-format msgid "" "Please specify column %s in col_name_col_instance param. It is required " "because column has unsupported type by sqlite)." msgstr "" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:292 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:300 #, python-format msgid "" "col_name_col_instance param has wrong type of column instance for column " "%s It should be instance of sqlalchemy.Column." msgstr "" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:400 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:408 msgid "Unsupported id columns type" msgstr "" #: ceilometer/openstack/common/middleware/sizelimit.py:55 #: ceilometer/openstack/common/middleware/sizelimit.py:64 -#: ceilometer/openstack/common/middleware/sizelimit.py:75 +#: ceilometer/openstack/common/middleware/sizelimit.py:76 msgid "Request is too large." msgstr "" diff --git a/ceilometer/locale/es/LC_MESSAGES/ceilometer-log-info.po b/ceilometer/locale/es/LC_MESSAGES/ceilometer-log-info.po index 8ddb3b714..902c47bd6 100644 --- a/ceilometer/locale/es/LC_MESSAGES/ceilometer-log-info.po +++ b/ceilometer/locale/es/LC_MESSAGES/ceilometer-log-info.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" -"PO-Revision-Date: 2014-06-14 19:30+0000\n" -"Last-Translator: Andreas Jaeger \n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" +"PO-Revision-Date: 2014-06-19 07:49+0000\n" +"Last-Translator: openstackjenkins \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/ceilometer/" "language/es/)\n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ceilometer/openstack/common/eventlet_backdoor.py:141 +#: ceilometer/openstack/common/eventlet_backdoor.py:140 #, python-format msgid "Eventlet backdoor listening on %(port)s for process %(pid)d" msgstr "Eventlet oculto escuchando en %(port)s para el proceso %(pid)d" @@ -35,54 +35,58 @@ msgid "Failed to remove file %(file)s" msgstr "" #: ceilometer/openstack/common/service.py:176 -#: ceilometer/openstack/common/service.py:270 #, python-format msgid "Caught %s, exiting" msgstr "Se ha captado %s, saliendo" -#: ceilometer/openstack/common/service.py:239 +#: ceilometer/openstack/common/service.py:240 msgid "Parent process has died unexpectedly, exiting" msgstr "El proceso padre se ha detenido inesperadamente, saliendo" -#: ceilometer/openstack/common/service.py:309 +#: ceilometer/openstack/common/service.py:271 +#, python-format +msgid "Child caught %s, exiting" +msgstr "" + +#: ceilometer/openstack/common/service.py:310 msgid "Forking too fast, sleeping" msgstr "Bifurcación demasiado rápida, en reposo" -#: ceilometer/openstack/common/service.py:328 +#: ceilometer/openstack/common/service.py:329 #, python-format msgid "Started child %d" msgstr "Se ha iniciado el hijo %d" -#: ceilometer/openstack/common/service.py:338 +#: ceilometer/openstack/common/service.py:339 #, python-format msgid "Starting %d workers" msgstr "Iniciando %d trabajadores" -#: ceilometer/openstack/common/service.py:355 +#: ceilometer/openstack/common/service.py:356 #, python-format msgid "Child %(pid)d killed by signal %(sig)d" msgstr "Hijo %(pid)d matado por señal %(sig)d" -#: ceilometer/openstack/common/service.py:359 +#: ceilometer/openstack/common/service.py:360 #, python-format msgid "Child %(pid)s exited with status %(code)d" msgstr "El hijo %(pid)s ha salido con el estado %(code)d" -#: ceilometer/openstack/common/service.py:394 +#: ceilometer/openstack/common/service.py:399 #, python-format msgid "Caught %s, stopping children" msgstr "Se ha captado %s, deteniendo hijos" -#: ceilometer/openstack/common/service.py:403 +#: ceilometer/openstack/common/service.py:408 msgid "Wait called after thread killed. Cleaning up." msgstr "" -#: ceilometer/openstack/common/service.py:414 +#: ceilometer/openstack/common/service.py:424 #, python-format msgid "Waiting on %d children to exit" msgstr "En espera de %d hijos para salir" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:379 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:387 #, python-format msgid "Deleting duplicated row with id: %(id)s from table: %(table)s" msgstr "Eliminando registro duplicado con id: %(id)s de la tabla: %(table)s" diff --git a/ceilometer/locale/fr/LC_MESSAGES/ceilometer-log-error.po b/ceilometer/locale/fr/LC_MESSAGES/ceilometer-log-error.po new file mode 100644 index 000000000..6df749c9c --- /dev/null +++ b/ceilometer/locale/fr/LC_MESSAGES/ceilometer-log-error.po @@ -0,0 +1,88 @@ +# Translations template for ceilometer. +# Copyright (C) 2014 ORGANIZATION +# This file is distributed under the same license as the ceilometer project. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Ceilometer\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" +"PO-Revision-Date: 2014-06-19 20:30+0000\n" +"Last-Translator: openstackjenkins \n" +"Language-Team: French (http://www.transifex.com/projects/p/ceilometer/" +"language/fr/)\n" +"Language: fr\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" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ceilometer/openstack/common/excutils.py:76 +#, python-format +msgid "Original exception being dropped: %s" +msgstr "Exception d'origine en cours de suppression : %s" + +#: ceilometer/openstack/common/excutils.py:105 +#, python-format +msgid "Unexpected exception occurred %d time(s)... retrying." +msgstr "Exception inattendue survenue %d fois... Nouvel essai." + +#: ceilometer/openstack/common/lockutils.py:120 +#, python-format +msgid "Could not release the acquired lock `%s`" +msgstr "Impossible de libérer le verrou acquis `%s`" + +#: ceilometer/openstack/common/loopingcall.py:89 +msgid "in fixed duration looping call" +msgstr "dans l'appel en boucle de durée fixe" + +#: ceilometer/openstack/common/loopingcall.py:131 +msgid "in dynamic looping call" +msgstr "dans l'appel en boucle dynamique" + +#: ceilometer/openstack/common/policy.py:511 +#, python-format +msgid "Failed to understand rule %s" +msgstr "Règle %s incompréhensible" + +#: ceilometer/openstack/common/policy.py:521 +#, python-format +msgid "No handler for matches of kind %s" +msgstr "Aucun gestionnaire pour les correspondances de type %s" + +#: ceilometer/openstack/common/policy.py:791 +#, python-format +msgid "Failed to understand rule %r" +msgstr "Règle %r incompréhensible" + +#: ceilometer/openstack/common/service.py:188 +msgid "Exception during rpc cleanup." +msgstr "Exception pendant le nettoyage rpc." + +#: ceilometer/openstack/common/service.py:277 +msgid "Unhandled exception" +msgstr "Exception non gérée" + +#: ceilometer/openstack/common/db/api.py:72 +msgid "DB exceeded retry limit." +msgstr "DB dépassé limite de tentatives" + +#: ceilometer/openstack/common/db/api.py:76 +msgid "DB connection error." +msgstr "erreurs de connexion DB" + +#: ceilometer/openstack/common/db/sqlalchemy/session.py:460 +msgid "DB exception wrapped." +msgstr "Exception BD encapsulée." + +#: ceilometer/openstack/common/db/sqlalchemy/test_migrations.py:267 +#, python-format +msgid "Failed to migrate to version %s on engine %s" +msgstr "" + +#: ceilometer/openstack/common/middleware/catch_errors.py:40 +#, python-format +msgid "An error occurred during processing the request: %s" +msgstr "" diff --git a/ceilometer/locale/fr/LC_MESSAGES/ceilometer-log-info.po b/ceilometer/locale/fr/LC_MESSAGES/ceilometer-log-info.po index 8084f1f69..2818ebcc1 100644 --- a/ceilometer/locale/fr/LC_MESSAGES/ceilometer-log-info.po +++ b/ceilometer/locale/fr/LC_MESSAGES/ceilometer-log-info.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" -"PO-Revision-Date: 2014-06-16 01:20+0000\n" -"Last-Translator: Andreas Jaeger \n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" +"PO-Revision-Date: 2014-06-19 07:49+0000\n" +"Last-Translator: openstackjenkins \n" "Language-Team: French (http://www.transifex.com/projects/p/ceilometer/" "language/fr/)\n" "Language: fr\n" @@ -19,7 +19,7 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ceilometer/openstack/common/eventlet_backdoor.py:141 +#: ceilometer/openstack/common/eventlet_backdoor.py:140 #, python-format msgid "Eventlet backdoor listening on %(port)s for process %(pid)d" msgstr "Eventlet backdoor en écoute sur le port %(port)s for process %(pid)d" @@ -35,54 +35,58 @@ msgid "Failed to remove file %(file)s" msgstr "Echec de la suppression du fichier %(file)s" #: ceilometer/openstack/common/service.py:176 -#: ceilometer/openstack/common/service.py:270 #, python-format msgid "Caught %s, exiting" msgstr "%s interceptée, sortie" -#: ceilometer/openstack/common/service.py:239 +#: ceilometer/openstack/common/service.py:240 msgid "Parent process has died unexpectedly, exiting" msgstr "Processus parent arrêté de manière inattendue, sortie" -#: ceilometer/openstack/common/service.py:309 +#: ceilometer/openstack/common/service.py:271 +#, python-format +msgid "Child caught %s, exiting" +msgstr "" + +#: ceilometer/openstack/common/service.py:310 msgid "Forking too fast, sleeping" msgstr "Bifurcation trop rapide, pause" -#: ceilometer/openstack/common/service.py:328 +#: ceilometer/openstack/common/service.py:329 #, python-format msgid "Started child %d" msgstr "Enfant démarré %d" -#: ceilometer/openstack/common/service.py:338 +#: ceilometer/openstack/common/service.py:339 #, python-format msgid "Starting %d workers" msgstr "Démarrage des travailleurs %d" -#: ceilometer/openstack/common/service.py:355 +#: ceilometer/openstack/common/service.py:356 #, python-format msgid "Child %(pid)d killed by signal %(sig)d" msgstr "Enfant %(pid)d arrêté par le signal %(sig)d" -#: ceilometer/openstack/common/service.py:359 +#: ceilometer/openstack/common/service.py:360 #, python-format msgid "Child %(pid)s exited with status %(code)d" msgstr "Processus fils %(pid)s terminé avec le status %(code)d" -#: ceilometer/openstack/common/service.py:394 +#: ceilometer/openstack/common/service.py:399 #, python-format msgid "Caught %s, stopping children" msgstr "%s interceptée, arrêt de l'enfant" -#: ceilometer/openstack/common/service.py:403 +#: ceilometer/openstack/common/service.py:408 msgid "Wait called after thread killed. Cleaning up." msgstr "" -#: ceilometer/openstack/common/service.py:414 +#: ceilometer/openstack/common/service.py:424 #, python-format msgid "Waiting on %d children to exit" msgstr "En attente %d enfants pour sortie" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:379 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:387 #, python-format msgid "Deleting duplicated row with id: %(id)s from table: %(table)s" msgstr "Suppression ligne en double avec l'ID : %(id)s de la table : %(table)s" diff --git a/ceilometer/locale/pt_BR/LC_MESSAGES/ceilometer-log-info.po b/ceilometer/locale/pt_BR/LC_MESSAGES/ceilometer-log-info.po index 5974468b8..695c2613d 100644 --- a/ceilometer/locale/pt_BR/LC_MESSAGES/ceilometer-log-info.po +++ b/ceilometer/locale/pt_BR/LC_MESSAGES/ceilometer-log-info.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" -"PO-Revision-Date: 2014-06-14 19:30+0000\n" -"Last-Translator: Andreas Jaeger \n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" +"PO-Revision-Date: 2014-06-19 07:49+0000\n" +"Last-Translator: openstackjenkins \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" "ceilometer/language/pt_BR/)\n" "Language: pt_BR\n" @@ -19,7 +19,7 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ceilometer/openstack/common/eventlet_backdoor.py:141 +#: ceilometer/openstack/common/eventlet_backdoor.py:140 #, python-format msgid "Eventlet backdoor listening on %(port)s for process %(pid)d" msgstr "Backdoor de Eventlet escutando na porta %(port)s pelo processo %(pid)d" @@ -35,54 +35,58 @@ msgid "Failed to remove file %(file)s" msgstr "" #: ceilometer/openstack/common/service.py:176 -#: ceilometer/openstack/common/service.py:270 #, python-format msgid "Caught %s, exiting" msgstr "%s capturadas, saindo" -#: ceilometer/openstack/common/service.py:239 +#: ceilometer/openstack/common/service.py:240 msgid "Parent process has died unexpectedly, exiting" msgstr "Processo pai saiu inesperadamente, saindo" -#: ceilometer/openstack/common/service.py:309 +#: ceilometer/openstack/common/service.py:271 +#, python-format +msgid "Child caught %s, exiting" +msgstr "" + +#: ceilometer/openstack/common/service.py:310 msgid "Forking too fast, sleeping" msgstr "Bifurcação muito rápida, suspendendo" -#: ceilometer/openstack/common/service.py:328 +#: ceilometer/openstack/common/service.py:329 #, python-format msgid "Started child %d" msgstr "Filho %d iniciado" -#: ceilometer/openstack/common/service.py:338 +#: ceilometer/openstack/common/service.py:339 #, python-format msgid "Starting %d workers" msgstr "Iniciando %d trabalhadores" -#: ceilometer/openstack/common/service.py:355 +#: ceilometer/openstack/common/service.py:356 #, python-format msgid "Child %(pid)d killed by signal %(sig)d" msgstr "%(pid)d filho eliminado pelo sinal %(sig)d" -#: ceilometer/openstack/common/service.py:359 +#: ceilometer/openstack/common/service.py:360 #, python-format msgid "Child %(pid)s exited with status %(code)d" msgstr "Filho %(pid)s encerrando com status %(code)d" -#: ceilometer/openstack/common/service.py:394 +#: ceilometer/openstack/common/service.py:399 #, python-format msgid "Caught %s, stopping children" msgstr "%s capturado, parando filhos" -#: ceilometer/openstack/common/service.py:403 +#: ceilometer/openstack/common/service.py:408 msgid "Wait called after thread killed. Cleaning up." msgstr "" -#: ceilometer/openstack/common/service.py:414 +#: ceilometer/openstack/common/service.py:424 #, python-format msgid "Waiting on %d children to exit" msgstr "Aguardando em %d filhos para sair" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:379 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:387 #, python-format msgid "Deleting duplicated row with id: %(id)s from table: %(table)s" msgstr "Excluindo linha duplicada com ID: %(id)s da tabela: %(table)s" diff --git a/ceilometer/locale/zh_CN/LC_MESSAGES/ceilometer-log-info.po b/ceilometer/locale/zh_CN/LC_MESSAGES/ceilometer-log-info.po index c30dbbef9..ba2866348 100644 --- a/ceilometer/locale/zh_CN/LC_MESSAGES/ceilometer-log-info.po +++ b/ceilometer/locale/zh_CN/LC_MESSAGES/ceilometer-log-info.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Ceilometer\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-19 06:01+0000\n" +"POT-Creation-Date: 2014-06-20 06:01+0000\n" "PO-Revision-Date: 2014-06-14 19:30+0000\n" "Last-Translator: Andreas Jaeger \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/" @@ -19,7 +19,7 @@ msgstr "" "Generated-By: Babel 1.3\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ceilometer/openstack/common/eventlet_backdoor.py:141 +#: ceilometer/openstack/common/eventlet_backdoor.py:140 #, python-format msgid "Eventlet backdoor listening on %(port)s for process %(pid)d" msgstr "" @@ -35,54 +35,58 @@ msgid "Failed to remove file %(file)s" msgstr "" #: ceilometer/openstack/common/service.py:176 -#: ceilometer/openstack/common/service.py:270 #, python-format msgid "Caught %s, exiting" msgstr "捕获到 %s,正在退出" -#: ceilometer/openstack/common/service.py:239 +#: ceilometer/openstack/common/service.py:240 msgid "Parent process has died unexpectedly, exiting" msgstr "父进程已意外终止,正在退出" -#: ceilometer/openstack/common/service.py:309 +#: ceilometer/openstack/common/service.py:271 +#, python-format +msgid "Child caught %s, exiting" +msgstr "" + +#: ceilometer/openstack/common/service.py:310 msgid "Forking too fast, sleeping" msgstr "派生速度太快,正在休眠" -#: ceilometer/openstack/common/service.py:328 +#: ceilometer/openstack/common/service.py:329 #, python-format msgid "Started child %d" msgstr "已启动子代 %d" -#: ceilometer/openstack/common/service.py:338 +#: ceilometer/openstack/common/service.py:339 #, python-format msgid "Starting %d workers" msgstr "正在启动 %d 工作程序" -#: ceilometer/openstack/common/service.py:355 +#: ceilometer/openstack/common/service.py:356 #, python-format msgid "Child %(pid)d killed by signal %(sig)d" msgstr "信号 %(sig)d 已终止子代 %(pid)d" -#: ceilometer/openstack/common/service.py:359 +#: ceilometer/openstack/common/service.py:360 #, python-format msgid "Child %(pid)s exited with status %(code)d" msgstr "子代 %(pid)s 已退出,状态为 %(code)d" -#: ceilometer/openstack/common/service.py:394 +#: ceilometer/openstack/common/service.py:399 #, python-format msgid "Caught %s, stopping children" msgstr "捕获到 %s,正在停止子代" -#: ceilometer/openstack/common/service.py:403 +#: ceilometer/openstack/common/service.py:408 msgid "Wait called after thread killed. Cleaning up." msgstr "" -#: ceilometer/openstack/common/service.py:414 +#: ceilometer/openstack/common/service.py:424 #, python-format msgid "Waiting on %d children to exit" msgstr "正在等待 %d 个子代退出" -#: ceilometer/openstack/common/db/sqlalchemy/utils.py:379 +#: ceilometer/openstack/common/db/sqlalchemy/utils.py:387 #, python-format msgid "Deleting duplicated row with id: %(id)s from table: %(table)s" msgstr "正在从表 %(table)s 中删除具有id %(id)s 的重复行"