diff options
-rw-r--r-- | swift/locale/swift.pot | 437 | ||||
-rw-r--r-- | swift/locale/zh_CN/LC_MESSAGES/swift.po | 447 |
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 "" + |