summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--swift/locale/swift.pot437
-rw-r--r--swift/locale/zh_CN/LC_MESSAGES/swift.po447
2 files changed, 539 insertions, 345 deletions
diff --git a/swift/locale/swift.pot b/swift/locale/swift.pot
index f7a79f723..484581907 100644
--- a/swift/locale/swift.pot
+++ b/swift/locale/swift.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: swift 2.2.2.post136\n"
+"Project-Id-Version: swift 2.3.0rc1.1.gf6482bd\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-03-24 06:06+0000\n"
+"POT-Creation-Date: 2015-04-20 11:15+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"
@@ -63,98 +63,98 @@ msgstr ""
msgid "ERROR Could not get account info %s"
msgstr ""
-#: swift/account/reaper.py:133 swift/common/utils.py:2127
-#: swift/obj/diskfile.py:470 swift/obj/updater.py:87 swift/obj/updater.py:130
+#: swift/account/reaper.py:134 swift/common/utils.py:2127
+#: swift/obj/diskfile.py:476 swift/obj/updater.py:88 swift/obj/updater.py:131
#, python-format
msgid "Skipping %s as it is not mounted"
msgstr ""
-#: swift/account/reaper.py:137
+#: swift/account/reaper.py:138
msgid "Exception in top-level account reaper loop"
msgstr ""
-#: swift/account/reaper.py:140
+#: swift/account/reaper.py:141
#, python-format
msgid "Devices pass completed: %.02fs"
msgstr ""
-#: swift/account/reaper.py:237
+#: swift/account/reaper.py:238
#, python-format
msgid "Beginning pass on account %s"
msgstr ""
-#: swift/account/reaper.py:254
+#: swift/account/reaper.py:255
#, python-format
msgid "Exception with containers for account %s"
msgstr ""
-#: swift/account/reaper.py:261
+#: swift/account/reaper.py:262
#, python-format
msgid "Exception with account %s"
msgstr ""
-#: swift/account/reaper.py:262
+#: swift/account/reaper.py:263
#, python-format
msgid "Incomplete pass on account %s"
msgstr ""
-#: swift/account/reaper.py:264
+#: swift/account/reaper.py:265
#, python-format
msgid ", %s containers deleted"
msgstr ""
-#: swift/account/reaper.py:266
+#: swift/account/reaper.py:267
#, python-format
msgid ", %s objects deleted"
msgstr ""
-#: swift/account/reaper.py:268
+#: swift/account/reaper.py:269
#, python-format
msgid ", %s containers remaining"
msgstr ""
-#: swift/account/reaper.py:271
+#: swift/account/reaper.py:272
#, python-format
msgid ", %s objects remaining"
msgstr ""
-#: swift/account/reaper.py:273
+#: swift/account/reaper.py:274
#, python-format
msgid ", %s containers possibly remaining"
msgstr ""
-#: swift/account/reaper.py:276
+#: swift/account/reaper.py:277
#, python-format
msgid ", %s objects possibly remaining"
msgstr ""
-#: swift/account/reaper.py:279
+#: swift/account/reaper.py:280
msgid ", return codes: "
msgstr ""
-#: swift/account/reaper.py:283
+#: swift/account/reaper.py:284
#, python-format
msgid ", elapsed: %.02fs"
msgstr ""
-#: swift/account/reaper.py:289
+#: swift/account/reaper.py:290
#, python-format
msgid "Account %s has not been reaped since %s"
msgstr ""
-#: swift/account/reaper.py:348 swift/account/reaper.py:396
-#: swift/account/reaper.py:463 swift/container/updater.py:306
+#: swift/account/reaper.py:349 swift/account/reaper.py:397
+#: swift/account/reaper.py:464 swift/container/updater.py:306
#, python-format
msgid "Exception with %(ip)s:%(port)s/%(device)s"
msgstr ""
-#: swift/account/reaper.py:368
+#: swift/account/reaper.py:369
#, python-format
msgid "Exception with objects for container %(container)s for account %(account)s"
msgstr ""
#: swift/account/server.py:275 swift/container/server.py:582
-#: swift/obj/server.py:730
+#: swift/obj/server.py:910
#, python-format
msgid "ERROR __call__ error with %(method)s %(path)s "
msgstr ""
@@ -270,90 +270,90 @@ msgstr ""
msgid "Unexpected response: %s"
msgstr ""
-#: swift/common/manager.py:62
+#: swift/common/manager.py:63
msgid "WARNING: Unable to modify file descriptor limit. Running as non-root?"
msgstr ""
-#: swift/common/manager.py:69
+#: swift/common/manager.py:70
msgid "WARNING: Unable to modify memory limit. Running as non-root?"
msgstr ""
-#: swift/common/manager.py:76
+#: swift/common/manager.py:77
msgid "WARNING: Unable to modify max process limit. Running as non-root?"
msgstr ""
-#: swift/common/manager.py:194
+#: swift/common/manager.py:195
msgid ""
"\n"
"user quit"
msgstr ""
-#: swift/common/manager.py:231 swift/common/manager.py:543
+#: swift/common/manager.py:232 swift/common/manager.py:544
#, python-format
msgid "No %s running"
msgstr ""
-#: swift/common/manager.py:244
+#: swift/common/manager.py:245
#, python-format
msgid "%s (%s) appears to have stopped"
msgstr ""
-#: swift/common/manager.py:254
+#: swift/common/manager.py:255
#, python-format
msgid "Waited %s seconds for %s to die; giving up"
msgstr ""
-#: swift/common/manager.py:437
+#: swift/common/manager.py:438
#, python-format
msgid "Unable to locate config %sfor %s"
msgstr ""
-#: swift/common/manager.py:441
+#: swift/common/manager.py:442
msgid "Found configs:"
msgstr ""
-#: swift/common/manager.py:485
+#: swift/common/manager.py:486
#, python-format
msgid "Signal %s pid: %s signal: %s"
msgstr ""
-#: swift/common/manager.py:492
+#: swift/common/manager.py:493
#, python-format
msgid "Removing stale pid file %s"
msgstr ""
-#: swift/common/manager.py:495
+#: swift/common/manager.py:496
#, python-format
msgid "No permission to signal PID %d"
msgstr ""
-#: swift/common/manager.py:540
+#: swift/common/manager.py:541
#, python-format
msgid "%s #%d not running (%s)"
msgstr ""
-#: swift/common/manager.py:547 swift/common/manager.py:640
-#: swift/common/manager.py:643
+#: swift/common/manager.py:548 swift/common/manager.py:641
+#: swift/common/manager.py:644
#, python-format
msgid "%s running (%s - %s)"
msgstr ""
-#: swift/common/manager.py:646
+#: swift/common/manager.py:647
#, python-format
msgid "%s already started..."
msgstr ""
-#: swift/common/manager.py:655
+#: swift/common/manager.py:656
#, python-format
msgid "Running %s once"
msgstr ""
-#: swift/common/manager.py:657
+#: swift/common/manager.py:658
#, python-format
msgid "Starting %s"
msgstr ""
-#: swift/common/manager.py:664
+#: swift/common/manager.py:665
#, python-format
msgid "%s does not exist"
msgstr ""
@@ -373,7 +373,12 @@ msgstr ""
msgid "Error limiting server %s"
msgstr ""
-#: swift/common/request_helpers.py:387
+#: swift/common/request_helpers.py:102
+#, python-format
+msgid "No policy with index %s"
+msgstr ""
+
+#: swift/common/request_helpers.py:395
msgid "ERROR: An error occurred while retrieving segments"
msgstr ""
@@ -436,51 +441,51 @@ msgstr ""
msgid "Unable to find %s config section in %s"
msgstr ""
-#: swift/common/utils.py:2348
+#: swift/common/utils.py:2353
#, python-format
msgid "Invalid X-Container-Sync-To format %r"
msgstr ""
-#: swift/common/utils.py:2353
+#: swift/common/utils.py:2358
#, python-format
msgid "No realm key for %r"
msgstr ""
-#: swift/common/utils.py:2357
+#: swift/common/utils.py:2362
#, python-format
msgid "No cluster endpoint for %r %r"
msgstr ""
-#: swift/common/utils.py:2366
+#: swift/common/utils.py:2371
#, python-format
msgid ""
"Invalid scheme %r in X-Container-Sync-To, must be \"//\", \"http\", or "
"\"https\"."
msgstr ""
-#: swift/common/utils.py:2370
+#: swift/common/utils.py:2375
msgid "Path required in X-Container-Sync-To"
msgstr ""
-#: swift/common/utils.py:2373
+#: swift/common/utils.py:2378
msgid "Params, queries, and fragments not allowed in X-Container-Sync-To"
msgstr ""
-#: swift/common/utils.py:2378
+#: swift/common/utils.py:2383
#, python-format
msgid "Invalid host %r in X-Container-Sync-To"
msgstr ""
-#: swift/common/utils.py:2570
+#: swift/common/utils.py:2575
msgid "Exception dumping recon cache"
msgstr ""
-#: swift/common/wsgi.py:175
+#: swift/common/wsgi.py:197
#, python-format
msgid "Could not bind to %s:%s after trying for %s seconds"
msgstr ""
-#: swift/common/wsgi.py:185
+#: swift/common/wsgi.py:207
msgid ""
"WARNING: SSL should only be enabled for testing purposes. Use external "
"SSL termination for a production deployment."
@@ -521,27 +526,27 @@ msgstr ""
msgid "Warning: Cannot ratelimit without a memcached client"
msgstr ""
-#: swift/common/middleware/recon.py:78
+#: swift/common/middleware/recon.py:80
msgid "Error reading recon cache file"
msgstr ""
-#: swift/common/middleware/recon.py:80
+#: swift/common/middleware/recon.py:82
msgid "Error parsing recon cache file"
msgstr ""
-#: swift/common/middleware/recon.py:82
+#: swift/common/middleware/recon.py:84
msgid "Error retrieving recon data"
msgstr ""
-#: swift/common/middleware/recon.py:151
+#: swift/common/middleware/recon.py:158
msgid "Error listing devices"
msgstr ""
-#: swift/common/middleware/recon.py:247
+#: swift/common/middleware/recon.py:254
msgid "Error reading ringfile"
msgstr ""
-#: swift/common/middleware/recon.py:261
+#: swift/common/middleware/recon.py:268
msgid "Error reading swift.conf"
msgstr ""
@@ -648,52 +653,61 @@ msgid ""
"later)"
msgstr ""
-#: swift/container/sync.py:193
+#: swift/container/sync.py:217
+msgid ""
+"Configuration option internal_client_conf_path not defined. Using default"
+" configuration, See internal-client.conf-sample for options"
+msgstr ""
+
+#: swift/container/sync.py:230
+#, python-format
+msgid "Unable to load internal client from config: %r (%s)"
+msgstr ""
+
+#: swift/container/sync.py:264
msgid "Begin container sync \"once\" mode"
msgstr ""
-#: swift/container/sync.py:205
+#: swift/container/sync.py:276
#, python-format
msgid "Container sync \"once\" mode completed: %.02fs"
msgstr ""
-#: swift/container/sync.py:213
+#: swift/container/sync.py:284
#, python-format
msgid ""
"Since %(time)s: %(sync)s synced [%(delete)s deletes, %(put)s puts], "
"%(skip)s skipped, %(fail)s failed"
msgstr ""
-#: swift/container/sync.py:266
+#: swift/container/sync.py:337
#, python-format
msgid "ERROR %(db_file)s: %(validate_sync_to_err)s"
msgstr ""
-#: swift/container/sync.py:322
+#: swift/container/sync.py:393
#, python-format
msgid "ERROR Syncing %s"
msgstr ""
-#: swift/container/sync.py:410
+#: swift/container/sync.py:476
#, python-format
-msgid ""
-"Unknown exception trying to GET: %(node)r %(account)r %(container)r "
-"%(object)r"
+msgid "Unknown exception trying to GET: %(account)r %(container)r %(object)r"
msgstr ""
-#: swift/container/sync.py:444
+#: swift/container/sync.py:510
#, python-format
msgid "Unauth %(sync_from)r => %(sync_to)r"
msgstr ""
-#: swift/container/sync.py:450
+#: swift/container/sync.py:516
#, python-format
msgid ""
"Not found %(sync_from)r => %(sync_to)r - object "
"%(obj_name)r"
msgstr ""
-#: swift/container/sync.py:457 swift/container/sync.py:464
+#: swift/container/sync.py:523 swift/container/sync.py:530
#, python-format
msgid "ERROR Syncing %(db_file)s %(row)s"
msgstr ""
@@ -703,8 +717,8 @@ msgstr ""
msgid "ERROR: Failed to get paths to drive partitions: %s"
msgstr ""
-#: swift/container/updater.py:91 swift/obj/replicator.py:484
-#: swift/obj/replicator.py:570
+#: swift/container/updater.py:91 swift/obj/reconstructor.py:788
+#: swift/obj/replicator.py:487 swift/obj/replicator.py:575
#, python-format
msgid "%s is not mounted"
msgstr ""
@@ -816,42 +830,57 @@ msgstr ""
msgid "ERROR auditing: %s"
msgstr ""
-#: swift/obj/diskfile.py:318
+#: swift/obj/diskfile.py:323 swift/obj/diskfile.py:2305
#, python-format
msgid "Quarantined %(hsh_path)s to %(quar_path)s because it is not a directory"
msgstr ""
-#: swift/obj/diskfile.py:409
+#: swift/obj/diskfile.py:414 swift/obj/diskfile.py:2373
msgid "Error hashing suffix"
msgstr ""
-#: swift/obj/diskfile.py:484 swift/obj/updater.py:169
+#: swift/obj/diskfile.py:486 swift/obj/updater.py:162
#, python-format
-msgid "Directory %s does not map to a valid policy"
+msgid "Directory %r does not map to a valid policy (%s)"
msgstr ""
-#: swift/obj/diskfile.py:678
+#: swift/obj/diskfile.py:737
#, python-format
msgid "Quarantined %(object_path)s to %(quar_path)s because it is not a directory"
msgstr ""
-#: swift/obj/diskfile.py:869
+#: swift/obj/diskfile.py:936 swift/obj/diskfile.py:1795
#, python-format
msgid "Problem cleaning up %s"
msgstr ""
-#: swift/obj/diskfile.py:1168
+#: swift/obj/diskfile.py:1253
#, python-format
msgid "ERROR DiskFile %(data_file)s close failure: %(exc)s : %(stack)s"
msgstr ""
-#: swift/obj/diskfile.py:1449
+#: swift/obj/diskfile.py:1543
#, python-format
msgid ""
"Client path %(client)s does not match path stored in object metadata "
"%(meta)s"
msgstr ""
+#: swift/obj/diskfile.py:1797
+#, python-format
+msgid "Problem fsyncing durable state file: %s"
+msgstr ""
+
+#: swift/obj/diskfile.py:1802
+#, python-format
+msgid "No space left on device for %s"
+msgstr ""
+
+#: swift/obj/diskfile.py:1806
+#, python-format
+msgid "Problem writing durable state file: %s"
+msgstr ""
+
#: swift/obj/expirer.py:79
#, python-format
msgid "Pass completed in %ds; %d objects expired"
@@ -881,326 +910,394 @@ msgstr ""
msgid "Exception while deleting object %s %s %s"
msgstr ""
-#: swift/obj/mem_server.py:87
+#: swift/obj/reconstructor.py:189 swift/obj/reconstructor.py:472
+#, python-format
+msgid "Invalid response %(resp)s from %(full_path)s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:195
+#, python-format
+msgid "Trying to GET %(full_path)s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:301
+#, python-format
+msgid "Error trying to rebuild %(path)s policy#%(policy)d frag#%(frag_index)s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:324
+#, python-format
+msgid ""
+"%(reconstructed)d/%(total)d (%(percentage).2f%%) partitions reconstructed"
+" in %(time).2fs (%(rate).2f/sec, %(remaining)s remaining)"
+msgstr ""
+
+#: swift/obj/reconstructor.py:337 swift/obj/replicator.py:419
#, python-format
msgid ""
-"ERROR Container update failed: %(status)d response from "
-"%(ip)s:%(port)s/%(dev)s"
+"%(checked)d suffixes checked - %(hashed).2f%% hashed, %(synced).2f%% "
+"synced"
+msgstr ""
+
+#: swift/obj/reconstructor.py:344 swift/obj/replicator.py:426
+#, python-format
+msgid "Partition times: max %(max).4fs, min %(min).4fs, med %(med).4fs"
+msgstr ""
+
+#: swift/obj/reconstructor.py:352
+#, python-format
+msgid "Nothing reconstructed for %s seconds."
+msgstr ""
+
+#: swift/obj/reconstructor.py:381 swift/obj/replicator.py:463
+msgid "Lockup detected.. killing live coros."
+msgstr ""
+
+#: swift/obj/reconstructor.py:442
+#, python-format
+msgid "Trying to sync suffixes with %s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:467
+#, python-format
+msgid "%s responded as unmounted"
+msgstr ""
+
+#: swift/obj/reconstructor.py:849 swift/obj/replicator.py:295
+#, python-format
+msgid "Removing partition: %s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:865
+msgid "Ring change detected. Aborting current reconstruction pass."
+msgstr ""
+
+#: swift/obj/reconstructor.py:884
+msgid "Exception in top-levelreconstruction loop"
msgstr ""
-#: swift/obj/mem_server.py:93
+#: swift/obj/reconstructor.py:894
+msgid "Running object reconstructor in script mode."
+msgstr ""
+
+#: swift/obj/reconstructor.py:903
#, python-format
-msgid "ERROR container update failed with %(ip)s:%(port)s/%(dev)s"
+msgid "Object reconstruction complete (once). (%.02f minutes)"
+msgstr ""
+
+#: swift/obj/reconstructor.py:910
+msgid "Starting object reconstructor in daemon mode."
msgstr ""
-#: swift/obj/replicator.py:138
+#: swift/obj/reconstructor.py:914
+msgid "Starting object reconstruction pass."
+msgstr ""
+
+#: swift/obj/reconstructor.py:919
+#, python-format
+msgid "Object reconstruction complete. (%.02f minutes)"
+msgstr ""
+
+#: swift/obj/replicator.py:139
#, python-format
msgid "Killing long-running rsync: %s"
msgstr ""
-#: swift/obj/replicator.py:152
+#: swift/obj/replicator.py:153
#, python-format
msgid "Bad rsync return code: %(ret)d <- %(args)s"
msgstr ""
-#: swift/obj/replicator.py:159 swift/obj/replicator.py:163
+#: swift/obj/replicator.py:160 swift/obj/replicator.py:164
#, python-format
msgid "Successful rsync of %(src)s at %(dst)s (%(time).03f)"
msgstr ""
-#: swift/obj/replicator.py:278
+#: swift/obj/replicator.py:281
#, python-format
msgid "Removing %s objects"
msgstr ""
-#: swift/obj/replicator.py:286
+#: swift/obj/replicator.py:289
msgid "Error syncing handoff partition"
msgstr ""
-#: swift/obj/replicator.py:292
-#, python-format
-msgid "Removing partition: %s"
-msgstr ""
-
-#: swift/obj/replicator.py:347
+#: swift/obj/replicator.py:351
#, python-format
msgid "%(ip)s/%(device)s responded as unmounted"
msgstr ""
-#: swift/obj/replicator.py:352
+#: swift/obj/replicator.py:356
#, python-format
msgid "Invalid response %(resp)s from %(ip)s"
msgstr ""
-#: swift/obj/replicator.py:387
+#: swift/obj/replicator.py:391
#, python-format
msgid "Error syncing with node: %s"
msgstr ""
-#: swift/obj/replicator.py:391
+#: swift/obj/replicator.py:395
msgid "Error syncing partition"
msgstr ""
-#: swift/obj/replicator.py:404
+#: swift/obj/replicator.py:408
#, python-format
msgid ""
"%(replicated)d/%(total)d (%(percentage).2f%%) partitions replicated in "
"%(time).2fs (%(rate).2f/sec, %(remaining)s remaining)"
msgstr ""
-#: swift/obj/replicator.py:415
-#, python-format
-msgid ""
-"%(checked)d suffixes checked - %(hashed).2f%% hashed, %(synced).2f%% "
-"synced"
-msgstr ""
-
-#: swift/obj/replicator.py:422
-#, python-format
-msgid "Partition times: max %(max).4fs, min %(min).4fs, med %(med).4fs"
-msgstr ""
-
-#: swift/obj/replicator.py:430
+#: swift/obj/replicator.py:434
#, python-format
msgid "Nothing replicated for %s seconds."
msgstr ""
-#: swift/obj/replicator.py:459
-msgid "Lockup detected.. killing live coros."
-msgstr ""
-
-#: swift/obj/replicator.py:573
+#: swift/obj/replicator.py:578
msgid "Ring change detected. Aborting current replication pass."
msgstr ""
-#: swift/obj/replicator.py:594
+#: swift/obj/replicator.py:599
msgid "Exception in top-level replication loop"
msgstr ""
-#: swift/obj/replicator.py:603
+#: swift/obj/replicator.py:608
msgid "Running object replicator in script mode."
msgstr ""
-#: swift/obj/replicator.py:621
+#: swift/obj/replicator.py:626
#, python-format
msgid "Object replication complete (once). (%.02f minutes)"
msgstr ""
-#: swift/obj/replicator.py:628
+#: swift/obj/replicator.py:633
msgid "Starting object replicator in daemon mode."
msgstr ""
-#: swift/obj/replicator.py:632
+#: swift/obj/replicator.py:637
msgid "Starting object replication pass."
msgstr ""
-#: swift/obj/replicator.py:637
+#: swift/obj/replicator.py:642
#, python-format
msgid "Object replication complete. (%.02f minutes)"
msgstr ""
-#: swift/obj/server.py:202
+#: swift/obj/server.py:231
#, python-format
msgid ""
"ERROR Container update failed (saving for async update later): %(status)d"
" response from %(ip)s:%(port)s/%(dev)s"
msgstr ""
-#: swift/obj/server.py:209
+#: swift/obj/server.py:238
#, python-format
msgid ""
"ERROR container update failed with %(ip)s:%(port)s/%(dev)s (saving for "
"async update later)"
msgstr ""
-#: swift/obj/server.py:244
+#: swift/obj/server.py:273
#, python-format
msgid ""
"ERROR Container update failed: different numbers of hosts and devices in "
"request: \"%s\" vs \"%s\""
msgstr ""
-#: swift/obj/updater.py:62
+#: swift/obj/updater.py:63
#, python-format
msgid "ERROR: Unable to access %(path)s: %(error)s"
msgstr ""
-#: swift/obj/updater.py:77
+#: swift/obj/updater.py:78
msgid "Begin object update sweep"
msgstr ""
-#: swift/obj/updater.py:103
+#: swift/obj/updater.py:104
#, python-format
msgid ""
"Object update sweep of %(device)s completed: %(elapsed).02fs, %(success)s"
" successes, %(fail)s failures"
msgstr ""
-#: swift/obj/updater.py:112
+#: swift/obj/updater.py:113
#, python-format
msgid "Object update sweep completed: %.02fs"
msgstr ""
-#: swift/obj/updater.py:121
+#: swift/obj/updater.py:122
msgid "Begin object update single threaded sweep"
msgstr ""
-#: swift/obj/updater.py:135
+#: swift/obj/updater.py:136
#, python-format
msgid ""
"Object update single threaded sweep completed: %(elapsed).02fs, "
"%(success)s successes, %(fail)s failures"
msgstr ""
-#: swift/obj/updater.py:187
+#: swift/obj/updater.py:179
#, python-format
msgid "ERROR async pending file with unexpected name %s"
msgstr ""
-#: swift/obj/updater.py:217
+#: swift/obj/updater.py:209
#, python-format
msgid "ERROR Pickle problem, quarantining %s"
msgstr ""
-#: swift/obj/updater.py:282
+#: swift/obj/updater.py:274
#, python-format
msgid "ERROR with remote server %(ip)s:%(port)s/%(device)s"
msgstr ""
-#: swift/proxy/server.py:380
+#: swift/proxy/server.py:405
msgid "ERROR Unhandled exception in request"
msgstr ""
-#: swift/proxy/server.py:435
+#: swift/proxy/server.py:460
#, python-format
msgid "Node error limited %(ip)s:%(port)s (%(device)s)"
msgstr ""
-#: swift/proxy/server.py:452 swift/proxy/server.py:470
+#: swift/proxy/server.py:477 swift/proxy/server.py:495
#, python-format
msgid "%(msg)s %(ip)s:%(port)s/%(device)s"
msgstr ""
-#: swift/proxy/server.py:540
+#: swift/proxy/server.py:571
#, python-format
msgid "ERROR with %(type)s server %(ip)s:%(port)s/%(device)s re: %(info)s"
msgstr ""
-#: swift/proxy/controllers/account.py:63
+#: swift/proxy/controllers/account.py:64
msgid "Account"
msgstr ""
-#: swift/proxy/controllers/base.py:698 swift/proxy/controllers/base.py:731
-#: swift/proxy/controllers/obj.py:192 swift/proxy/controllers/obj.py:319
-#: swift/proxy/controllers/obj.py:366 swift/proxy/controllers/obj.py:382
-#: swift/proxy/controllers/obj.py:593
+#: swift/proxy/controllers/base.py:752 swift/proxy/controllers/base.py:814
+#: swift/proxy/controllers/obj.py:364 swift/proxy/controllers/obj.py:411
+#: swift/proxy/controllers/obj.py:427 swift/proxy/controllers/obj.py:643
+#: swift/proxy/controllers/obj.py:1130 swift/proxy/controllers/obj.py:1591
+#: swift/proxy/controllers/obj.py:1763 swift/proxy/controllers/obj.py:1908
+#: swift/proxy/controllers/obj.py:2093
msgid "Object"
msgstr ""
-#: swift/proxy/controllers/base.py:699
+#: swift/proxy/controllers/base.py:753
msgid "Trying to read during GET (retrying)"
msgstr ""
-#: swift/proxy/controllers/base.py:732
+#: swift/proxy/controllers/base.py:815
msgid "Trying to read during GET"
msgstr ""
-#: swift/proxy/controllers/base.py:736
+#: swift/proxy/controllers/base.py:819
#, python-format
msgid "Client did not read from proxy within %ss"
msgstr ""
-#: swift/proxy/controllers/base.py:741
+#: swift/proxy/controllers/base.py:824
msgid "Client disconnected on read"
msgstr ""
-#: swift/proxy/controllers/base.py:743
+#: swift/proxy/controllers/base.py:826
msgid "Trying to send to client"
msgstr ""
-#: swift/proxy/controllers/base.py:780 swift/proxy/controllers/base.py:1049
+#: swift/proxy/controllers/base.py:863 swift/proxy/controllers/base.py:1141
#, python-format
msgid "Trying to %(method)s %(path)s"
msgstr ""
-#: swift/proxy/controllers/base.py:817 swift/proxy/controllers/base.py:1037
-#: swift/proxy/controllers/obj.py:357 swift/proxy/controllers/obj.py:402
+#: swift/proxy/controllers/base.py:902 swift/proxy/controllers/base.py:1129
+#: swift/proxy/controllers/obj.py:402 swift/proxy/controllers/obj.py:450
+#: swift/proxy/controllers/obj.py:1900 swift/proxy/controllers/obj.py:2138
msgid "ERROR Insufficient Storage"
msgstr ""
-#: swift/proxy/controllers/base.py:820
+#: swift/proxy/controllers/base.py:905
#, python-format
msgid "ERROR %(status)d %(body)s From %(type)s Server"
msgstr ""
-#: swift/proxy/controllers/base.py:1040
+#: swift/proxy/controllers/base.py:1132
#, python-format
msgid "ERROR %(status)d Trying to %(method)s %(path)sFrom Container Server"
msgstr ""
-#: swift/proxy/controllers/base.py:1152
+#: swift/proxy/controllers/base.py:1260
#, python-format
msgid "%(type)s returning 503 for %(statuses)s"
msgstr ""
-#: swift/proxy/controllers/container.py:97 swift/proxy/controllers/obj.py:118
+#: swift/proxy/controllers/container.py:98 swift/proxy/controllers/obj.py:161
msgid "Container"
msgstr ""
-#: swift/proxy/controllers/obj.py:320
+#: swift/proxy/controllers/obj.py:365 swift/proxy/controllers/obj.py:1592
#, python-format
msgid "Trying to write to %s"
msgstr ""
-#: swift/proxy/controllers/obj.py:361
+#: swift/proxy/controllers/obj.py:406 swift/proxy/controllers/obj.py:1903
#, python-format
msgid "ERROR %(status)d Expect: 100-continue From Object Server"
msgstr ""
-#: swift/proxy/controllers/obj.py:367
+#: swift/proxy/controllers/obj.py:412 swift/proxy/controllers/obj.py:1909
#, python-format
msgid "Expect: 100-continue on %s"
msgstr ""
-#: swift/proxy/controllers/obj.py:383
+#: swift/proxy/controllers/obj.py:428
#, python-format
msgid "Trying to get final status of PUT to %s"
msgstr ""
-#: swift/proxy/controllers/obj.py:406
+#: swift/proxy/controllers/obj.py:454 swift/proxy/controllers/obj.py:2143
#, python-format
msgid "ERROR %(status)d %(body)s From Object Server re: %(path)s"
msgstr ""
-#: swift/proxy/controllers/obj.py:663
+#: swift/proxy/controllers/obj.py:716
#, python-format
msgid "Object PUT returning 412, %(statuses)r"
msgstr ""
-#: swift/proxy/controllers/obj.py:672
+#: swift/proxy/controllers/obj.py:725
#, python-format
msgid "Object PUT returning 202 for 409: %(req_timestamp)s <= %(timestamps)r"
msgstr ""
-#: swift/proxy/controllers/obj.py:755
+#: swift/proxy/controllers/obj.py:811 swift/proxy/controllers/obj.py:2048
#, python-format
msgid "ERROR Client read timeout (%ss)"
msgstr ""
-#: swift/proxy/controllers/obj.py:762
+#: swift/proxy/controllers/obj.py:818 swift/proxy/controllers/obj.py:2055
msgid "ERROR Exception causing client disconnect"
msgstr ""
-#: swift/proxy/controllers/obj.py:767
+#: swift/proxy/controllers/obj.py:823 swift/proxy/controllers/obj.py:2060
msgid "Client disconnected without sending enough data"
msgstr ""
-#: swift/proxy/controllers/obj.py:813
+#: swift/proxy/controllers/obj.py:869
#, python-format
msgid "Object servers returned %s mismatched etags"
msgstr ""
-#: swift/proxy/controllers/obj.py:817
+#: swift/proxy/controllers/obj.py:873 swift/proxy/controllers/obj.py:2218
msgid "Object PUT"
msgstr ""
+#: swift/proxy/controllers/obj.py:2035
+#, python-format
+msgid "Not enough object servers ack'ed (got %d)"
+msgstr ""
+
+#: swift/proxy/controllers/obj.py:2094
+#, python-format
+msgid "Trying to get %s status of PUT to %s"
+msgstr ""
+
diff --git a/swift/locale/zh_CN/LC_MESSAGES/swift.po b/swift/locale/zh_CN/LC_MESSAGES/swift.po
index b123396e0..8c239cc18 100644
--- a/swift/locale/zh_CN/LC_MESSAGES/swift.po
+++ b/swift/locale/zh_CN/LC_MESSAGES/swift.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Swift\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-03-24 06:06+0000\n"
-"PO-Revision-Date: 2015-03-24 04:20+0000\n"
+"POT-Creation-Date: 2015-04-20 11:15+0200\n"
+"PO-Revision-Date: 2015-04-15 12:48+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Chinese (China) "
"(http://www.transifex.com/projects/p/swift/language/zh_CN/)\n"
@@ -65,98 +65,98 @@ msgstr "审计失败%s: %s"
msgid "ERROR Could not get account info %s"
msgstr "错误:无法获取账号信息%s"
-#: swift/account/reaper.py:133 swift/common/utils.py:2127
-#: swift/obj/diskfile.py:470 swift/obj/updater.py:87 swift/obj/updater.py:130
+#: swift/account/reaper.py:134 swift/common/utils.py:2127
+#: swift/obj/diskfile.py:476 swift/obj/updater.py:88 swift/obj/updater.py:131
#, python-format
msgid "Skipping %s as it is not mounted"
msgstr "挂载失败 跳过%s"
-#: swift/account/reaper.py:137
+#: swift/account/reaper.py:138
msgid "Exception in top-level account reaper loop"
msgstr "异常出现在top-level账号reaper环"
-#: swift/account/reaper.py:140
+#: swift/account/reaper.py:141
#, python-format
msgid "Devices pass completed: %.02fs"
msgstr "设备通过完成: %.02fs"
-#: swift/account/reaper.py:237
+#: swift/account/reaper.py:238
#, python-format
msgid "Beginning pass on account %s"
msgstr "账号%s开始通过"
-#: swift/account/reaper.py:254
+#: swift/account/reaper.py:255
#, python-format
msgid "Exception with containers for account %s"
msgstr "账号%s内容器出现异常"
-#: swift/account/reaper.py:261
+#: swift/account/reaper.py:262
#, python-format
msgid "Exception with account %s"
msgstr "账号%s出现异常"
-#: swift/account/reaper.py:262
+#: swift/account/reaper.py:263
#, python-format
msgid "Incomplete pass on account %s"
msgstr "账号%s未完成通过"
-#: swift/account/reaper.py:264
+#: swift/account/reaper.py:265
#, python-format
msgid ", %s containers deleted"
msgstr ",删除容器%s"
-#: swift/account/reaper.py:266
+#: swift/account/reaper.py:267
#, python-format
msgid ", %s objects deleted"
msgstr ",删除对象%s"
-#: swift/account/reaper.py:268
+#: swift/account/reaper.py:269
#, python-format
msgid ", %s containers remaining"
msgstr ",剩余容器%s"
-#: swift/account/reaper.py:271
+#: swift/account/reaper.py:272
#, python-format
msgid ", %s objects remaining"
msgstr ",剩余对象%s"
-#: swift/account/reaper.py:273
+#: swift/account/reaper.py:274
#, python-format
msgid ", %s containers possibly remaining"
msgstr ",可能剩余容器%s"
-#: swift/account/reaper.py:276
+#: swift/account/reaper.py:277
#, python-format
msgid ", %s objects possibly remaining"
msgstr ",可能剩余对象%s"
-#: swift/account/reaper.py:279
+#: swift/account/reaper.py:280
msgid ", return codes: "
msgstr ",返回代码:"
-#: swift/account/reaper.py:283
+#: swift/account/reaper.py:284
#, python-format
msgid ", elapsed: %.02fs"
msgstr ",耗时:%.02fs"
-#: swift/account/reaper.py:289
+#: swift/account/reaper.py:290
#, python-format
msgid "Account %s has not been reaped since %s"
msgstr "账号%s自%s起未被reaped"
-#: swift/account/reaper.py:348 swift/account/reaper.py:396
-#: swift/account/reaper.py:463 swift/container/updater.py:306
+#: swift/account/reaper.py:349 swift/account/reaper.py:397
+#: swift/account/reaper.py:464 swift/container/updater.py:306
#, python-format
msgid "Exception with %(ip)s:%(port)s/%(device)s"
msgstr "%(ip)s:%(port)s/%(device)s出现异常"
-#: swift/account/reaper.py:368
+#: swift/account/reaper.py:369
#, python-format
msgid "Exception with objects for container %(container)s for account %(account)s"
msgstr "账号%(account)s容器%(container)s的对象出现异常"
#: swift/account/server.py:275 swift/container/server.py:582
-#: swift/obj/server.py:730
+#: swift/obj/server.py:910
#, python-format
msgid "ERROR __call__ error with %(method)s %(path)s "
msgstr "%(method)s %(path)s出现错误__call__ error"
@@ -272,19 +272,19 @@ msgstr "尝试复制时发生错误"
msgid "Unexpected response: %s"
msgstr "意外响应:%s"
-#: swift/common/manager.py:62
+#: swift/common/manager.py:63
msgid "WARNING: Unable to modify file descriptor limit. Running as non-root?"
msgstr "警告:无法修改文件描述限制。是否按非root运行?"
-#: swift/common/manager.py:69
+#: swift/common/manager.py:70
msgid "WARNING: Unable to modify memory limit. Running as non-root?"
msgstr "警告:无法修改内存极限,是否按非root运行?"
-#: swift/common/manager.py:76
+#: swift/common/manager.py:77
msgid "WARNING: Unable to modify max process limit. Running as non-root?"
msgstr "警告:无法修改最大运行极限,是否按非root运行?"
-#: swift/common/manager.py:194
+#: swift/common/manager.py:195
msgid ""
"\n"
"user quit"
@@ -292,72 +292,72 @@ msgstr ""
"\n"
"用户退出"
-#: swift/common/manager.py:231 swift/common/manager.py:543
+#: swift/common/manager.py:232 swift/common/manager.py:544
#, python-format
msgid "No %s running"
msgstr "无%s账号运行"
-#: swift/common/manager.py:244
+#: swift/common/manager.py:245
#, python-format
msgid "%s (%s) appears to have stopped"
msgstr "%s (%s)显示已停止"
-#: swift/common/manager.py:254
+#: swift/common/manager.py:255
#, python-format
msgid "Waited %s seconds for %s to die; giving up"
msgstr "等待%s秒直到%s停止;放弃"
-#: swift/common/manager.py:437
+#: swift/common/manager.py:438
#, python-format
msgid "Unable to locate config %sfor %s"
-msgstr "无法找到配置%s的%s"
+msgstr ""
-#: swift/common/manager.py:441
+#: swift/common/manager.py:442
msgid "Found configs:"
msgstr "找到配置"
-#: swift/common/manager.py:485
+#: swift/common/manager.py:486
#, python-format
msgid "Signal %s pid: %s signal: %s"
msgstr "发出信号%s pid: %s 信号: %s"
-#: swift/common/manager.py:492
+#: swift/common/manager.py:493
#, python-format
msgid "Removing stale pid file %s"
msgstr "移除原有pid文件%s"
-#: swift/common/manager.py:495
+#: swift/common/manager.py:496
#, python-format
msgid "No permission to signal PID %d"
msgstr "无权限发送信号PID%d"
-#: swift/common/manager.py:540
+#: swift/common/manager.py:541
#, python-format
msgid "%s #%d not running (%s)"
msgstr "%s #%d无法运行(%s)"
-#: swift/common/manager.py:547 swift/common/manager.py:640
-#: swift/common/manager.py:643
+#: swift/common/manager.py:548 swift/common/manager.py:641
+#: swift/common/manager.py:644
#, python-format
msgid "%s running (%s - %s)"
msgstr "%s运行(%s - %s)"
-#: swift/common/manager.py:646
+#: swift/common/manager.py:647
#, python-format
msgid "%s already started..."
msgstr "%s已启动..."
-#: swift/common/manager.py:655
+#: swift/common/manager.py:656
#, python-format
msgid "Running %s once"
msgstr "运行%s一次"
-#: swift/common/manager.py:657
+#: swift/common/manager.py:658
#, python-format
msgid "Starting %s"
msgstr "启动%s"
-#: swift/common/manager.py:664
+#: swift/common/manager.py:665
#, python-format
msgid "%s does not exist"
msgstr "%s不存在"
@@ -377,7 +377,12 @@ msgstr "%(action)s错误 高性能内存对象缓存: %(server)s"
msgid "Error limiting server %s"
msgstr "服务器出现错误%s "
-#: swift/common/request_helpers.py:387
+#: swift/common/request_helpers.py:102
+#, python-format
+msgid "No policy with index %s"
+msgstr ""
+
+#: swift/common/request_helpers.py:395
msgid "ERROR: An error occurred while retrieving segments"
msgstr ""
@@ -440,51 +445,51 @@ msgstr "无法从%s读取设置"
msgid "Unable to find %s config section in %s"
msgstr "无法在%s中查找到%s设置部分"
-#: swift/common/utils.py:2348
+#: swift/common/utils.py:2353
#, python-format
msgid "Invalid X-Container-Sync-To format %r"
msgstr "无效的X-Container-Sync-To格式%r"
-#: swift/common/utils.py:2353
+#: swift/common/utils.py:2358
#, python-format
msgid "No realm key for %r"
msgstr "%r权限key不存在"
-#: swift/common/utils.py:2357
+#: swift/common/utils.py:2362
#, python-format
msgid "No cluster endpoint for %r %r"
msgstr "%r %r的集群节点不存在"
-#: swift/common/utils.py:2366
+#: swift/common/utils.py:2371
#, python-format
msgid ""
"Invalid scheme %r in X-Container-Sync-To, must be \"//\", \"http\", or "
"\"https\"."
msgstr "在X-Container-Sync-To中%r是无效的方案,须为\"//\", \"http\", or \"https\"。"
-#: swift/common/utils.py:2370
+#: swift/common/utils.py:2375
msgid "Path required in X-Container-Sync-To"
msgstr "在X-Container-Sync-To中路径是必须的"
-#: swift/common/utils.py:2373
+#: swift/common/utils.py:2378
msgid "Params, queries, and fragments not allowed in X-Container-Sync-To"
msgstr "在X-Container-Sync-To中,变量,查询和碎片不被允许"
-#: swift/common/utils.py:2378
+#: swift/common/utils.py:2383
#, python-format
msgid "Invalid host %r in X-Container-Sync-To"
msgstr "X-Container-Sync-To中无效主机%r"
-#: swift/common/utils.py:2570
+#: swift/common/utils.py:2575
msgid "Exception dumping recon cache"
msgstr "执行dump recon的时候出现异常"
-#: swift/common/wsgi.py:175
+#: swift/common/wsgi.py:197
#, python-format
msgid "Could not bind to %s:%s after trying for %s seconds"
msgstr "尝试过%s秒后无法捆绑%s:%s"
-#: swift/common/wsgi.py:185
+#: swift/common/wsgi.py:207
msgid ""
"WARNING: SSL should only be enabled for testing purposes. Use external "
"SSL termination for a production deployment."
@@ -527,27 +532,27 @@ msgstr ""
msgid "Warning: Cannot ratelimit without a memcached client"
msgstr "警告:缺失缓存客户端 无法控制流量 "
-#: swift/common/middleware/recon.py:78
+#: swift/common/middleware/recon.py:80
msgid "Error reading recon cache file"
msgstr "读取recon cache file时出现错误"
-#: swift/common/middleware/recon.py:80
+#: swift/common/middleware/recon.py:82
msgid "Error parsing recon cache file"
msgstr "解析recon cache file时出现错误"
-#: swift/common/middleware/recon.py:82
+#: swift/common/middleware/recon.py:84
msgid "Error retrieving recon data"
msgstr "检索recon data时出现错误"
-#: swift/common/middleware/recon.py:151
+#: swift/common/middleware/recon.py:158
msgid "Error listing devices"
msgstr "设备列表时出现错误"
-#: swift/common/middleware/recon.py:247
+#: swift/common/middleware/recon.py:254
msgid "Error reading ringfile"
msgstr "读取ringfile时出现错误"
-#: swift/common/middleware/recon.py:261
+#: swift/common/middleware/recon.py:268
msgid "Error reading swift.conf"
msgstr "读取swift.conf时出现错误"
@@ -654,16 +659,27 @@ msgid ""
"later)"
msgstr "错误 账号更新失败 %(ip)s:%(port)s/%(device)s (稍后尝试)"
-#: swift/container/sync.py:193
+#: swift/container/sync.py:217
+msgid ""
+"Configuration option internal_client_conf_path not defined. Using default"
+" configuration, See internal-client.conf-sample for options"
+msgstr ""
+
+#: swift/container/sync.py:230
+#, python-format
+msgid "Unable to load internal client from config: %r (%s)"
+msgstr ""
+
+#: swift/container/sync.py:264
msgid "Begin container sync \"once\" mode"
msgstr "开始容器同步\"once\"模式"
-#: swift/container/sync.py:205
+#: swift/container/sync.py:276
#, python-format
msgid "Container sync \"once\" mode completed: %.02fs"
msgstr "容器同步\"once\"模式完成:%.02fs"
-#: swift/container/sync.py:213
+#: swift/container/sync.py:284
#, python-format
msgid ""
"Since %(time)s: %(sync)s synced [%(delete)s deletes, %(put)s puts], "
@@ -672,36 +688,34 @@ msgstr ""
"自%(time)s起:%(sync)s完成同步 [%(delete)s 删除, %(put)s 上传], \"\n"
"\"%(skip)s 跳过, %(fail)s 失败"
-#: swift/container/sync.py:266
+#: swift/container/sync.py:337
#, python-format
msgid "ERROR %(db_file)s: %(validate_sync_to_err)s"
msgstr "错误 %(db_file)s: %(validate_sync_to_err)s"
-#: swift/container/sync.py:322
+#: swift/container/sync.py:393
#, python-format
msgid "ERROR Syncing %s"
msgstr "同步时发生错误%s"
-#: swift/container/sync.py:410
+#: swift/container/sync.py:476
#, python-format
-msgid ""
-"Unknown exception trying to GET: %(node)r %(account)r %(container)r "
-"%(object)r"
-msgstr "尝试获取时发生未知的异常%(node)r %(account)r %(container)r %(object)r"
+msgid "Unknown exception trying to GET: %(account)r %(container)r %(object)r"
+msgstr ""
-#: swift/container/sync.py:444
+#: swift/container/sync.py:510
#, python-format
msgid "Unauth %(sync_from)r => %(sync_to)r"
msgstr "未授权%(sync_from)r => %(sync_to)r"
-#: swift/container/sync.py:450
+#: swift/container/sync.py:516
#, python-format
msgid ""
"Not found %(sync_from)r => %(sync_to)r - object "
"%(obj_name)r"
msgstr "未找到: %(sync_from)r => %(sync_to)r - object %(obj_name)r"
-#: swift/container/sync.py:457 swift/container/sync.py:464
+#: swift/container/sync.py:523 swift/container/sync.py:530
#, python-format
msgid "ERROR Syncing %(db_file)s %(row)s"
msgstr "同步错误 %(db_file)s %(row)s"
@@ -711,8 +725,8 @@ msgstr "同步错误 %(db_file)s %(row)s"
msgid "ERROR: Failed to get paths to drive partitions: %s"
msgstr "%s未挂载"
-#: swift/container/updater.py:91 swift/obj/replicator.py:484
-#: swift/obj/replicator.py:570
+#: swift/container/updater.py:91 swift/obj/reconstructor.py:788
+#: swift/obj/replicator.py:487 swift/obj/replicator.py:575
#, python-format
msgid "%s is not mounted"
msgstr "%s未挂载"
@@ -834,42 +848,57 @@ msgstr "错误:无法执行审计:%s"
msgid "ERROR auditing: %s"
msgstr "审计错误:%s"
-#: swift/obj/diskfile.py:318
+#: swift/obj/diskfile.py:323 swift/obj/diskfile.py:2305
#, python-format
msgid "Quarantined %(hsh_path)s to %(quar_path)s because it is not a directory"
msgstr "隔离%(hsh_path)s和%(quar_path)s因为非目录"
-#: swift/obj/diskfile.py:409
+#: swift/obj/diskfile.py:414 swift/obj/diskfile.py:2373
msgid "Error hashing suffix"
msgstr "执行Hashing后缀时发生错误"
-#: swift/obj/diskfile.py:484 swift/obj/updater.py:169
+#: swift/obj/diskfile.py:486 swift/obj/updater.py:162
#, python-format
-msgid "Directory %s does not map to a valid policy"
-msgstr "目录%s无法映射到一个有效的policy"
+msgid "Directory %r does not map to a valid policy (%s)"
+msgstr ""
-#: swift/obj/diskfile.py:678
+#: swift/obj/diskfile.py:737
#, python-format
msgid "Quarantined %(object_path)s to %(quar_path)s because it is not a directory"
msgstr "隔离%(object_path)s和%(quar_path)s因为非目录"
-#: swift/obj/diskfile.py:869
+#: swift/obj/diskfile.py:936 swift/obj/diskfile.py:1795
#, python-format
msgid "Problem cleaning up %s"
msgstr "问题清除%s"
-#: swift/obj/diskfile.py:1168
+#: swift/obj/diskfile.py:1253
#, python-format
msgid "ERROR DiskFile %(data_file)s close failure: %(exc)s : %(stack)s"
msgstr "磁盘文件错误%(data_file)s关闭失败: %(exc)s : %(stack)s"
-#: swift/obj/diskfile.py:1449
+#: swift/obj/diskfile.py:1543
#, python-format
msgid ""
"Client path %(client)s does not match path stored in object metadata "
"%(meta)s"
msgstr "客户路径%(client)s与对象元数据中存储的路径%(meta)s不符"
+#: swift/obj/diskfile.py:1797
+#, python-format
+msgid "Problem fsyncing durable state file: %s"
+msgstr ""
+
+#: swift/obj/diskfile.py:1802
+#, python-format
+msgid "No space left on device for %s"
+msgstr ""
+
+#: swift/obj/diskfile.py:1806
+#, python-format
+msgid "Problem writing durable state file: %s"
+msgstr ""
+
#: swift/obj/expirer.py:79
#, python-format
msgid "Pass completed in %ds; %d objects expired"
@@ -899,67 +928,138 @@ msgstr "未处理的异常"
msgid "Exception while deleting object %s %s %s"
msgstr "执行删除对象时发生异常%s %s %s"
-#: swift/obj/mem_server.py:87
+#: swift/obj/reconstructor.py:189 swift/obj/reconstructor.py:472
+#, python-format
+msgid "Invalid response %(resp)s from %(full_path)s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:195
+#, python-format
+msgid "Trying to GET %(full_path)s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:301
+#, python-format
+msgid "Error trying to rebuild %(path)s policy#%(policy)d frag#%(frag_index)s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:324
#, python-format
msgid ""
-"ERROR Container update failed: %(status)d response from "
-"%(ip)s:%(port)s/%(dev)s"
-msgstr "错误 容器更新失败:%(status)d 从%(ip)s:%(port)s/%(dev)s得到回应"
+"%(reconstructed)d/%(total)d (%(percentage).2f%%) partitions reconstructed"
+" in %(time).2fs (%(rate).2f/sec, %(remaining)s remaining)"
+msgstr ""
-#: swift/obj/mem_server.py:93
+#: swift/obj/reconstructor.py:337 swift/obj/replicator.py:419
#, python-format
-msgid "ERROR container update failed with %(ip)s:%(port)s/%(dev)s"
-msgstr "错误 容器更新失败%(ip)s:%(port)s/%(dev)s"
+msgid ""
+"%(checked)d suffixes checked - %(hashed).2f%% hashed, %(synced).2f%% "
+"synced"
+msgstr "%(checked)d后缀已被检查 %(hashed).2f%% hashed, %(synced).2f%% synced"
-#: swift/obj/replicator.py:138
+#: swift/obj/reconstructor.py:344 swift/obj/replicator.py:426
+#, python-format
+msgid "Partition times: max %(max).4fs, min %(min).4fs, med %(med).4fs"
+msgstr "分区时间: max %(max).4fs, min %(min).4fs, med %(med).4fs"
+
+#: swift/obj/reconstructor.py:352
+#, python-format
+msgid "Nothing reconstructed for %s seconds."
+msgstr ""
+
+#: swift/obj/reconstructor.py:381 swift/obj/replicator.py:463
+msgid "Lockup detected.. killing live coros."
+msgstr "检测到lockup。终止正在执行的coros"
+
+#: swift/obj/reconstructor.py:442
+#, python-format
+msgid "Trying to sync suffixes with %s"
+msgstr ""
+
+#: swift/obj/reconstructor.py:467
+#, python-format
+msgid "%s responded as unmounted"
+msgstr ""
+
+#: swift/obj/reconstructor.py:849 swift/obj/replicator.py:295
+#, python-format
+msgid "Removing partition: %s"
+msgstr "移除分区:%s"
+
+#: swift/obj/reconstructor.py:865
+msgid "Ring change detected. Aborting current reconstruction pass."
+msgstr ""
+
+#: swift/obj/reconstructor.py:884
+msgid "Exception in top-levelreconstruction loop"
+msgstr ""
+
+#: swift/obj/reconstructor.py:894
+msgid "Running object reconstructor in script mode."
+msgstr ""
+
+#: swift/obj/reconstructor.py:903
+#, python-format
+msgid "Object reconstruction complete (once). (%.02f minutes)"
+msgstr ""
+
+#: swift/obj/reconstructor.py:910
+msgid "Starting object reconstructor in daemon mode."
+msgstr ""
+
+#: swift/obj/reconstructor.py:914
+msgid "Starting object reconstruction pass."
+msgstr ""
+
+#: swift/obj/reconstructor.py:919
+#, python-format
+msgid "Object reconstruction complete. (%.02f minutes)"
+msgstr ""
+
+#: swift/obj/replicator.py:139
#, python-format
msgid "Killing long-running rsync: %s"
msgstr "终止long-running同步: %s"
-#: swift/obj/replicator.py:152
+#: swift/obj/replicator.py:153
#, python-format
msgid "Bad rsync return code: %(ret)d <- %(args)s"
msgstr "Bad rsync返还代码:%(ret)d <- %(args)s"
-#: swift/obj/replicator.py:159 swift/obj/replicator.py:163
+#: swift/obj/replicator.py:160 swift/obj/replicator.py:164
#, python-format
msgid "Successful rsync of %(src)s at %(dst)s (%(time).03f)"
msgstr "成功的rsync %(src)s at %(dst)s (%(time).03f)"
-#: swift/obj/replicator.py:278
+#: swift/obj/replicator.py:281
#, python-format
msgid "Removing %s objects"
msgstr ""
-#: swift/obj/replicator.py:286
+#: swift/obj/replicator.py:289
msgid "Error syncing handoff partition"
msgstr "执行同步切换分区时发生错误"
-#: swift/obj/replicator.py:292
-#, python-format
-msgid "Removing partition: %s"
-msgstr "移除分区:%s"
-
-#: swift/obj/replicator.py:347
+#: swift/obj/replicator.py:351
#, python-format
msgid "%(ip)s/%(device)s responded as unmounted"
msgstr "%(ip)s/%(device)s的回应为未挂载"
-#: swift/obj/replicator.py:352
+#: swift/obj/replicator.py:356
#, python-format
msgid "Invalid response %(resp)s from %(ip)s"
msgstr "无效的回应%(resp)s来自%(ip)s"
-#: swift/obj/replicator.py:387
+#: swift/obj/replicator.py:391
#, python-format
msgid "Error syncing with node: %s"
msgstr "执行同步时节点%s发生错误"
-#: swift/obj/replicator.py:391
+#: swift/obj/replicator.py:395
msgid "Error syncing partition"
msgstr "执行同步分区时发生错误"
-#: swift/obj/replicator.py:404
+#: swift/obj/replicator.py:408
#, python-format
msgid ""
"%(replicated)d/%(total)d (%(percentage).2f%%) partitions replicated in "
@@ -968,259 +1068,256 @@ msgstr ""
"%(replicated)d/%(total)d (%(percentage).2f%%) 分区被复制 持续时间为 \"\n"
"\"%(time).2fs (%(rate).2f/sec, %(remaining)s remaining)"
-#: swift/obj/replicator.py:415
-#, python-format
-msgid ""
-"%(checked)d suffixes checked - %(hashed).2f%% hashed, %(synced).2f%% "
-"synced"
-msgstr "%(checked)d后缀已被检查 %(hashed).2f%% hashed, %(synced).2f%% synced"
-
-#: swift/obj/replicator.py:422
-#, python-format
-msgid "Partition times: max %(max).4fs, min %(min).4fs, med %(med).4fs"
-msgstr "分区时间: max %(max).4fs, min %(min).4fs, med %(med).4fs"
-
-#: swift/obj/replicator.py:430
+#: swift/obj/replicator.py:434
#, python-format
msgid "Nothing replicated for %s seconds."
msgstr "%s秒无复制"
-#: swift/obj/replicator.py:459
-msgid "Lockup detected.. killing live coros."
-msgstr "检测到lockup。终止正在执行的coros"
-
-#: swift/obj/replicator.py:573
+#: swift/obj/replicator.py:578
msgid "Ring change detected. Aborting current replication pass."
msgstr "Ring改变被检测到。退出现有的复制通过"
-#: swift/obj/replicator.py:594
+#: swift/obj/replicator.py:599
msgid "Exception in top-level replication loop"
msgstr "top-level复制圈出现异常"
-#: swift/obj/replicator.py:603
+#: swift/obj/replicator.py:608
msgid "Running object replicator in script mode."
msgstr "在加密模式下执行对象复制"
-#: swift/obj/replicator.py:621
+#: swift/obj/replicator.py:626
#, python-format
msgid "Object replication complete (once). (%.02f minutes)"
msgstr "对象复制完成(一次)。(%.02f minutes)"
-#: swift/obj/replicator.py:628
+#: swift/obj/replicator.py:633
msgid "Starting object replicator in daemon mode."
msgstr "在守护模式下开始对象复制"
-#: swift/obj/replicator.py:632
+#: swift/obj/replicator.py:637
msgid "Starting object replication pass."
msgstr "开始通过对象复制"
-#: swift/obj/replicator.py:637
+#: swift/obj/replicator.py:642
#, python-format
msgid "Object replication complete. (%.02f minutes)"
msgstr "对象复制完成。(%.02f minutes)"
-#: swift/obj/server.py:202
+#: swift/obj/server.py:231
#, python-format
msgid ""
"ERROR Container update failed (saving for async update later): %(status)d"
" response from %(ip)s:%(port)s/%(dev)s"
msgstr "错误 容器更新失败(正在保存 稍后同步更新):%(status)d回应来自%(ip)s:%(port)s/%(dev)s"
-#: swift/obj/server.py:209
+#: swift/obj/server.py:238
#, python-format
msgid ""
"ERROR container update failed with %(ip)s:%(port)s/%(dev)s (saving for "
"async update later)"
msgstr "错误 容器更新失败%(ip)s:%(port)s/%(dev)s(正在保存 稍后同步更新)"
-#: swift/obj/server.py:244
+#: swift/obj/server.py:273
#, python-format
msgid ""
"ERROR Container update failed: different numbers of hosts and devices in "
"request: \"%s\" vs \"%s\""
msgstr "错误 容器更新失败:主机数量和设备数量不符合请求: \"%s\" vs \"%s\""
-#: swift/obj/updater.py:62
+#: swift/obj/updater.py:63
#, python-format
msgid "ERROR: Unable to access %(path)s: %(error)s"
msgstr ""
-#: swift/obj/updater.py:77
+#: swift/obj/updater.py:78
msgid "Begin object update sweep"
msgstr "开始对象更新扫除"
-#: swift/obj/updater.py:103
+#: swift/obj/updater.py:104
#, python-format
msgid ""
"Object update sweep of %(device)s completed: %(elapsed).02fs, %(success)s"
" successes, %(fail)s failures"
msgstr "%(device)s对象更新扫除完成:%(elapsed).02fs, %(success)s成功, %(fail)s失败"
-#: swift/obj/updater.py:112
+#: swift/obj/updater.py:113
#, python-format
msgid "Object update sweep completed: %.02fs"
msgstr "对象更新扫除完成:%.02fs"
-#: swift/obj/updater.py:121
+#: swift/obj/updater.py:122
msgid "Begin object update single threaded sweep"
msgstr "开始对象更新单线程扫除"
-#: swift/obj/updater.py:135
+#: swift/obj/updater.py:136
#, python-format
msgid ""
"Object update single threaded sweep completed: %(elapsed).02fs, "
"%(success)s successes, %(fail)s failures"
msgstr "对象更新单线程扫除完成:%(elapsed).02fs,%(success)s 成功, %(fail)s 失败"
-#: swift/obj/updater.py:187
+#: swift/obj/updater.py:179
#, python-format
msgid "ERROR async pending file with unexpected name %s"
msgstr "执行同步等待文件 文件名不可知%s"
-#: swift/obj/updater.py:217
+#: swift/obj/updater.py:209
#, python-format
msgid "ERROR Pickle problem, quarantining %s"
msgstr "错误 Pickle问题 隔离%s"
-#: swift/obj/updater.py:282
+#: swift/obj/updater.py:274
#, python-format
msgid "ERROR with remote server %(ip)s:%(port)s/%(device)s"
msgstr "远程服务器发生错误 %(ip)s:%(port)s/%(device)s"
-#: swift/proxy/server.py:380
+#: swift/proxy/server.py:405
msgid "ERROR Unhandled exception in request"
msgstr "错误 未处理的异常发出请求"
-#: swift/proxy/server.py:435
+#: swift/proxy/server.py:460
#, python-format
msgid "Node error limited %(ip)s:%(port)s (%(device)s)"
msgstr "节点错误极限 %(ip)s:%(port)s (%(device)s)"
-#: swift/proxy/server.py:452 swift/proxy/server.py:470
+#: swift/proxy/server.py:477 swift/proxy/server.py:495
#, python-format
msgid "%(msg)s %(ip)s:%(port)s/%(device)s"
msgstr "%(msg)s %(ip)s:%(port)s/%(device)s"
-#: swift/proxy/server.py:540
+#: swift/proxy/server.py:571
#, python-format
msgid "ERROR with %(type)s server %(ip)s:%(port)s/%(device)s re: %(info)s"
msgstr "%(type)s服务器发生错误 %(ip)s:%(port)s/%(device)s re: %(info)s"
-#: swift/proxy/controllers/account.py:63
+#: swift/proxy/controllers/account.py:64
msgid "Account"
msgstr "账号"
-#: swift/proxy/controllers/base.py:698 swift/proxy/controllers/base.py:731
-#: swift/proxy/controllers/obj.py:192 swift/proxy/controllers/obj.py:319
-#: swift/proxy/controllers/obj.py:366 swift/proxy/controllers/obj.py:382
-#: swift/proxy/controllers/obj.py:593
+#: swift/proxy/controllers/base.py:752 swift/proxy/controllers/base.py:814
+#: swift/proxy/controllers/obj.py:364 swift/proxy/controllers/obj.py:411
+#: swift/proxy/controllers/obj.py:427 swift/proxy/controllers/obj.py:643
+#: swift/proxy/controllers/obj.py:1130 swift/proxy/controllers/obj.py:1591
+#: swift/proxy/controllers/obj.py:1763 swift/proxy/controllers/obj.py:1908
+#: swift/proxy/controllers/obj.py:2093
msgid "Object"
msgstr "对象"
-#: swift/proxy/controllers/base.py:699
+#: swift/proxy/controllers/base.py:753
msgid "Trying to read during GET (retrying)"
msgstr "执行GET时尝试读取(重新尝试)"
-#: swift/proxy/controllers/base.py:732
+#: swift/proxy/controllers/base.py:815
msgid "Trying to read during GET"
msgstr "执行GET时尝试读取"
-#: swift/proxy/controllers/base.py:736
+#: swift/proxy/controllers/base.py:819
#, python-format
msgid "Client did not read from proxy within %ss"
msgstr "客户尚未从代理处读取%ss"
-#: swift/proxy/controllers/base.py:741
+#: swift/proxy/controllers/base.py:824
msgid "Client disconnected on read"
msgstr "客户读取时中断"
-#: swift/proxy/controllers/base.py:743
+#: swift/proxy/controllers/base.py:826
msgid "Trying to send to client"
msgstr "尝试发送到客户端"
-#: swift/proxy/controllers/base.py:780 swift/proxy/controllers/base.py:1049
+#: swift/proxy/controllers/base.py:863 swift/proxy/controllers/base.py:1141
#, python-format
msgid "Trying to %(method)s %(path)s"
msgstr "尝试执行%(method)s %(path)s"
-#: swift/proxy/controllers/base.py:817 swift/proxy/controllers/base.py:1037
-#: swift/proxy/controllers/obj.py:357 swift/proxy/controllers/obj.py:402
+#: swift/proxy/controllers/base.py:902 swift/proxy/controllers/base.py:1129
+#: swift/proxy/controllers/obj.py:402 swift/proxy/controllers/obj.py:450
+#: swift/proxy/controllers/obj.py:1900 swift/proxy/controllers/obj.py:2138
msgid "ERROR Insufficient Storage"
msgstr "错误 存储空间不足"
-#: swift/proxy/controllers/base.py:820
+#: swift/proxy/controllers/base.py:905
#, python-format
msgid "ERROR %(status)d %(body)s From %(type)s Server"
msgstr "错误 %(status)d %(body)s 来自 %(type)s 服务器"
-#: swift/proxy/controllers/base.py:1040
+#: swift/proxy/controllers/base.py:1132
#, python-format
msgid "ERROR %(status)d Trying to %(method)s %(path)sFrom Container Server"
msgstr ""
-#: swift/proxy/controllers/base.py:1152
+#: swift/proxy/controllers/base.py:1260
#, python-format
msgid "%(type)s returning 503 for %(statuses)s"
msgstr "%(type)s 返回 503 在 %(statuses)s"
-#: swift/proxy/controllers/container.py:97 swift/proxy/controllers/obj.py:118
+#: swift/proxy/controllers/container.py:98 swift/proxy/controllers/obj.py:161
msgid "Container"
msgstr "容器"
-#: swift/proxy/controllers/obj.py:320
+#: swift/proxy/controllers/obj.py:365 swift/proxy/controllers/obj.py:1592
#, python-format
msgid "Trying to write to %s"
msgstr "尝试执行书写%s"
-#: swift/proxy/controllers/obj.py:361
+#: swift/proxy/controllers/obj.py:406 swift/proxy/controllers/obj.py:1903
#, python-format
msgid "ERROR %(status)d Expect: 100-continue From Object Server"
msgstr ""
-#: swift/proxy/controllers/obj.py:367
+#: swift/proxy/controllers/obj.py:412 swift/proxy/controllers/obj.py:1909
#, python-format
msgid "Expect: 100-continue on %s"
msgstr "已知:100-continue on %s"
-#: swift/proxy/controllers/obj.py:383
+#: swift/proxy/controllers/obj.py:428
#, python-format
msgid "Trying to get final status of PUT to %s"
msgstr "尝试执行获取最后的PUT状态%s"
-#: swift/proxy/controllers/obj.py:406
+#: swift/proxy/controllers/obj.py:454 swift/proxy/controllers/obj.py:2143
#, python-format
msgid "ERROR %(status)d %(body)s From Object Server re: %(path)s"
msgstr "错误 %(status)d %(body)s 来自 对象服务器 re: %(path)s"
-#: swift/proxy/controllers/obj.py:663
+#: swift/proxy/controllers/obj.py:716
#, python-format
msgid "Object PUT returning 412, %(statuses)r"
msgstr "对象PUT返还 412,%(statuses)r "
-#: swift/proxy/controllers/obj.py:672
+#: swift/proxy/controllers/obj.py:725
#, python-format
msgid "Object PUT returning 202 for 409: %(req_timestamp)s <= %(timestamps)r"
msgstr ""
-#: swift/proxy/controllers/obj.py:755
+#: swift/proxy/controllers/obj.py:811 swift/proxy/controllers/obj.py:2048
#, python-format
msgid "ERROR Client read timeout (%ss)"
msgstr "错误 客户读取超时(%ss)"
-#: swift/proxy/controllers/obj.py:762
+#: swift/proxy/controllers/obj.py:818 swift/proxy/controllers/obj.py:2055
msgid "ERROR Exception causing client disconnect"
msgstr "错误 异常导致客户端中断连接"
-#: swift/proxy/controllers/obj.py:767
+#: swift/proxy/controllers/obj.py:823 swift/proxy/controllers/obj.py:2060
msgid "Client disconnected without sending enough data"
msgstr "客户中断 尚未发送足够"
-#: swift/proxy/controllers/obj.py:813
+#: swift/proxy/controllers/obj.py:869
#, python-format
msgid "Object servers returned %s mismatched etags"
msgstr "对象服务器返还%s不匹配etags"
-#: swift/proxy/controllers/obj.py:817
+#: swift/proxy/controllers/obj.py:873 swift/proxy/controllers/obj.py:2218
msgid "Object PUT"
msgstr "对象上传"
+#: swift/proxy/controllers/obj.py:2035
+#, python-format
+msgid "Not enough object servers ack'ed (got %d)"
+msgstr ""
+
+#: swift/proxy/controllers/obj.py:2094
+#, python-format
+msgid "Trying to get %s status of PUT to %s"
+msgstr ""
+