swift 2.23.2__py3-none-any.whl → 2.35.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. swift/__init__.py +29 -50
  2. swift/account/auditor.py +21 -118
  3. swift/account/backend.py +33 -28
  4. swift/account/reaper.py +37 -28
  5. swift/account/replicator.py +22 -0
  6. swift/account/server.py +60 -26
  7. swift/account/utils.py +28 -11
  8. swift-2.23.2.data/scripts/swift-account-audit → swift/cli/account_audit.py +23 -13
  9. swift-2.23.2.data/scripts/swift-config → swift/cli/config.py +2 -2
  10. swift/cli/container_deleter.py +5 -11
  11. swift-2.23.2.data/scripts/swift-dispersion-populate → swift/cli/dispersion_populate.py +8 -7
  12. swift/cli/dispersion_report.py +10 -9
  13. swift-2.23.2.data/scripts/swift-drive-audit → swift/cli/drive_audit.py +63 -21
  14. swift/cli/form_signature.py +3 -7
  15. swift-2.23.2.data/scripts/swift-get-nodes → swift/cli/get_nodes.py +8 -2
  16. swift/cli/info.py +183 -29
  17. swift/cli/manage_shard_ranges.py +708 -37
  18. swift-2.23.2.data/scripts/swift-oldies → swift/cli/oldies.py +25 -14
  19. swift-2.23.2.data/scripts/swift-orphans → swift/cli/orphans.py +7 -3
  20. swift/cli/recon.py +196 -67
  21. swift-2.23.2.data/scripts/swift-recon-cron → swift/cli/recon_cron.py +17 -20
  22. swift-2.23.2.data/scripts/swift-reconciler-enqueue → swift/cli/reconciler_enqueue.py +2 -3
  23. swift/cli/relinker.py +807 -126
  24. swift/cli/reload.py +135 -0
  25. swift/cli/ringbuilder.py +217 -20
  26. swift/cli/ringcomposer.py +0 -1
  27. swift/cli/shard-info.py +4 -3
  28. swift/common/base_storage_server.py +9 -20
  29. swift/common/bufferedhttp.py +48 -74
  30. swift/common/constraints.py +20 -15
  31. swift/common/container_sync_realms.py +9 -11
  32. swift/common/daemon.py +25 -8
  33. swift/common/db.py +198 -127
  34. swift/common/db_auditor.py +168 -0
  35. swift/common/db_replicator.py +95 -55
  36. swift/common/digest.py +141 -0
  37. swift/common/direct_client.py +144 -33
  38. swift/common/error_limiter.py +93 -0
  39. swift/common/exceptions.py +25 -1
  40. swift/common/header_key_dict.py +2 -9
  41. swift/common/http_protocol.py +373 -0
  42. swift/common/internal_client.py +129 -59
  43. swift/common/linkat.py +3 -4
  44. swift/common/manager.py +284 -67
  45. swift/common/memcached.py +396 -147
  46. swift/common/middleware/__init__.py +4 -0
  47. swift/common/middleware/account_quotas.py +211 -46
  48. swift/common/middleware/acl.py +3 -8
  49. swift/common/middleware/backend_ratelimit.py +230 -0
  50. swift/common/middleware/bulk.py +22 -34
  51. swift/common/middleware/catch_errors.py +1 -3
  52. swift/common/middleware/cname_lookup.py +6 -11
  53. swift/common/middleware/container_quotas.py +1 -1
  54. swift/common/middleware/container_sync.py +39 -17
  55. swift/common/middleware/copy.py +12 -0
  56. swift/common/middleware/crossdomain.py +22 -9
  57. swift/common/middleware/crypto/__init__.py +2 -1
  58. swift/common/middleware/crypto/crypto_utils.py +11 -15
  59. swift/common/middleware/crypto/decrypter.py +28 -11
  60. swift/common/middleware/crypto/encrypter.py +12 -17
  61. swift/common/middleware/crypto/keymaster.py +8 -15
  62. swift/common/middleware/crypto/kms_keymaster.py +2 -1
  63. swift/common/middleware/dlo.py +15 -11
  64. swift/common/middleware/domain_remap.py +5 -4
  65. swift/common/middleware/etag_quoter.py +128 -0
  66. swift/common/middleware/formpost.py +73 -70
  67. swift/common/middleware/gatekeeper.py +8 -1
  68. swift/common/middleware/keystoneauth.py +33 -3
  69. swift/common/middleware/list_endpoints.py +4 -4
  70. swift/common/middleware/listing_formats.py +85 -49
  71. swift/common/middleware/memcache.py +4 -81
  72. swift/common/middleware/name_check.py +3 -2
  73. swift/common/middleware/proxy_logging.py +160 -92
  74. swift/common/middleware/ratelimit.py +17 -10
  75. swift/common/middleware/read_only.py +6 -4
  76. swift/common/middleware/recon.py +59 -22
  77. swift/common/middleware/s3api/acl_handlers.py +25 -3
  78. swift/common/middleware/s3api/acl_utils.py +6 -1
  79. swift/common/middleware/s3api/controllers/__init__.py +6 -0
  80. swift/common/middleware/s3api/controllers/acl.py +3 -2
  81. swift/common/middleware/s3api/controllers/bucket.py +242 -137
  82. swift/common/middleware/s3api/controllers/logging.py +2 -2
  83. swift/common/middleware/s3api/controllers/multi_delete.py +43 -20
  84. swift/common/middleware/s3api/controllers/multi_upload.py +219 -133
  85. swift/common/middleware/s3api/controllers/obj.py +112 -8
  86. swift/common/middleware/s3api/controllers/object_lock.py +44 -0
  87. swift/common/middleware/s3api/controllers/s3_acl.py +2 -2
  88. swift/common/middleware/s3api/controllers/tagging.py +57 -0
  89. swift/common/middleware/s3api/controllers/versioning.py +36 -7
  90. swift/common/middleware/s3api/etree.py +22 -9
  91. swift/common/middleware/s3api/exception.py +0 -4
  92. swift/common/middleware/s3api/s3api.py +113 -41
  93. swift/common/middleware/s3api/s3request.py +384 -218
  94. swift/common/middleware/s3api/s3response.py +126 -23
  95. swift/common/middleware/s3api/s3token.py +16 -17
  96. swift/common/middleware/s3api/schema/delete.rng +1 -1
  97. swift/common/middleware/s3api/subresource.py +7 -10
  98. swift/common/middleware/s3api/utils.py +27 -10
  99. swift/common/middleware/slo.py +665 -358
  100. swift/common/middleware/staticweb.py +64 -37
  101. swift/common/middleware/symlink.py +52 -19
  102. swift/common/middleware/tempauth.py +76 -58
  103. swift/common/middleware/tempurl.py +192 -174
  104. swift/common/middleware/versioned_writes/__init__.py +51 -0
  105. swift/common/middleware/{versioned_writes.py → versioned_writes/legacy.py} +27 -26
  106. swift/common/middleware/versioned_writes/object_versioning.py +1482 -0
  107. swift/common/middleware/x_profile/exceptions.py +1 -4
  108. swift/common/middleware/x_profile/html_viewer.py +18 -19
  109. swift/common/middleware/x_profile/profile_model.py +1 -2
  110. swift/common/middleware/xprofile.py +10 -10
  111. swift-2.23.2.data/scripts/swift-container-server → swift/common/recon.py +13 -8
  112. swift/common/registry.py +147 -0
  113. swift/common/request_helpers.py +324 -57
  114. swift/common/ring/builder.py +67 -25
  115. swift/common/ring/composite_builder.py +1 -1
  116. swift/common/ring/ring.py +177 -51
  117. swift/common/ring/utils.py +1 -1
  118. swift/common/splice.py +10 -6
  119. swift/common/statsd_client.py +205 -0
  120. swift/common/storage_policy.py +49 -44
  121. swift/common/swob.py +86 -102
  122. swift/common/{utils.py → utils/__init__.py} +2191 -2762
  123. swift/common/utils/base.py +131 -0
  124. swift/common/utils/config.py +433 -0
  125. swift/common/utils/ipaddrs.py +256 -0
  126. swift/common/utils/libc.py +345 -0
  127. swift/common/utils/logs.py +859 -0
  128. swift/common/utils/timestamp.py +412 -0
  129. swift/common/wsgi.py +555 -536
  130. swift/container/auditor.py +14 -100
  131. swift/container/backend.py +552 -227
  132. swift/container/reconciler.py +126 -37
  133. swift/container/replicator.py +96 -22
  134. swift/container/server.py +397 -176
  135. swift/container/sharder.py +1580 -639
  136. swift/container/sync.py +94 -88
  137. swift/container/updater.py +53 -32
  138. swift/obj/auditor.py +153 -35
  139. swift/obj/diskfile.py +466 -217
  140. swift/obj/expirer.py +406 -124
  141. swift/obj/mem_diskfile.py +7 -4
  142. swift/obj/mem_server.py +1 -0
  143. swift/obj/reconstructor.py +523 -262
  144. swift/obj/replicator.py +249 -188
  145. swift/obj/server.py +213 -122
  146. swift/obj/ssync_receiver.py +145 -85
  147. swift/obj/ssync_sender.py +113 -54
  148. swift/obj/updater.py +653 -139
  149. swift/obj/watchers/__init__.py +0 -0
  150. swift/obj/watchers/dark_data.py +213 -0
  151. swift/proxy/controllers/account.py +11 -11
  152. swift/proxy/controllers/base.py +848 -604
  153. swift/proxy/controllers/container.py +452 -86
  154. swift/proxy/controllers/info.py +3 -2
  155. swift/proxy/controllers/obj.py +1009 -490
  156. swift/proxy/server.py +185 -112
  157. swift-2.35.0.dist-info/AUTHORS +501 -0
  158. swift-2.35.0.dist-info/LICENSE +202 -0
  159. {swift-2.23.2.dist-info → swift-2.35.0.dist-info}/METADATA +52 -61
  160. swift-2.35.0.dist-info/RECORD +201 -0
  161. {swift-2.23.2.dist-info → swift-2.35.0.dist-info}/WHEEL +1 -1
  162. {swift-2.23.2.dist-info → swift-2.35.0.dist-info}/entry_points.txt +43 -0
  163. swift-2.35.0.dist-info/pbr.json +1 -0
  164. swift/locale/de/LC_MESSAGES/swift.po +0 -1216
  165. swift/locale/en_GB/LC_MESSAGES/swift.po +0 -1207
  166. swift/locale/es/LC_MESSAGES/swift.po +0 -1085
  167. swift/locale/fr/LC_MESSAGES/swift.po +0 -909
  168. swift/locale/it/LC_MESSAGES/swift.po +0 -894
  169. swift/locale/ja/LC_MESSAGES/swift.po +0 -965
  170. swift/locale/ko_KR/LC_MESSAGES/swift.po +0 -964
  171. swift/locale/pt_BR/LC_MESSAGES/swift.po +0 -881
  172. swift/locale/ru/LC_MESSAGES/swift.po +0 -891
  173. swift/locale/tr_TR/LC_MESSAGES/swift.po +0 -832
  174. swift/locale/zh_CN/LC_MESSAGES/swift.po +0 -833
  175. swift/locale/zh_TW/LC_MESSAGES/swift.po +0 -838
  176. swift-2.23.2.data/scripts/swift-account-auditor +0 -23
  177. swift-2.23.2.data/scripts/swift-account-info +0 -51
  178. swift-2.23.2.data/scripts/swift-account-reaper +0 -23
  179. swift-2.23.2.data/scripts/swift-account-replicator +0 -34
  180. swift-2.23.2.data/scripts/swift-account-server +0 -23
  181. swift-2.23.2.data/scripts/swift-container-auditor +0 -23
  182. swift-2.23.2.data/scripts/swift-container-info +0 -51
  183. swift-2.23.2.data/scripts/swift-container-reconciler +0 -21
  184. swift-2.23.2.data/scripts/swift-container-replicator +0 -34
  185. swift-2.23.2.data/scripts/swift-container-sharder +0 -33
  186. swift-2.23.2.data/scripts/swift-container-sync +0 -23
  187. swift-2.23.2.data/scripts/swift-container-updater +0 -23
  188. swift-2.23.2.data/scripts/swift-dispersion-report +0 -24
  189. swift-2.23.2.data/scripts/swift-form-signature +0 -20
  190. swift-2.23.2.data/scripts/swift-init +0 -119
  191. swift-2.23.2.data/scripts/swift-object-auditor +0 -29
  192. swift-2.23.2.data/scripts/swift-object-expirer +0 -33
  193. swift-2.23.2.data/scripts/swift-object-info +0 -60
  194. swift-2.23.2.data/scripts/swift-object-reconstructor +0 -33
  195. swift-2.23.2.data/scripts/swift-object-relinker +0 -41
  196. swift-2.23.2.data/scripts/swift-object-replicator +0 -37
  197. swift-2.23.2.data/scripts/swift-object-server +0 -27
  198. swift-2.23.2.data/scripts/swift-object-updater +0 -23
  199. swift-2.23.2.data/scripts/swift-proxy-server +0 -23
  200. swift-2.23.2.data/scripts/swift-recon +0 -24
  201. swift-2.23.2.data/scripts/swift-ring-builder +0 -24
  202. swift-2.23.2.data/scripts/swift-ring-builder-analyzer +0 -22
  203. swift-2.23.2.data/scripts/swift-ring-composer +0 -22
  204. swift-2.23.2.dist-info/DESCRIPTION.rst +0 -166
  205. swift-2.23.2.dist-info/RECORD +0 -220
  206. swift-2.23.2.dist-info/metadata.json +0 -1
  207. swift-2.23.2.dist-info/pbr.json +0 -1
  208. {swift-2.23.2.dist-info → swift-2.35.0.dist-info}/top_level.txt +0 -0
@@ -1,838 +0,0 @@
1
- # Translations template for swift.
2
- # Copyright (C) 2015 ORGANIZATION
3
- # This file is distributed under the same license as the swift project.
4
- #
5
- # Translators:
6
- # Andreas Jaeger <jaegerandi@gmail.com>, 2016. #zanata
7
- msgid ""
8
- msgstr ""
9
- "Project-Id-Version: swift VERSION\n"
10
- "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
11
- "POT-Creation-Date: 2019-10-03 19:48+0000\n"
12
- "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
- "Content-Transfer-Encoding: 8bit\n"
15
- "PO-Revision-Date: 2016-04-12 06:43+0000\n"
16
- "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
17
- "Language: zh_TW\n"
18
- "Plural-Forms: nplurals=1; plural=0;\n"
19
- "Generated-By: Babel 2.0\n"
20
- "X-Generator: Zanata 4.3.3\n"
21
- "Language-Team: Chinese (Taiwan)\n"
22
-
23
- msgid ""
24
- "\n"
25
- "user quit"
26
- msgstr ""
27
- "\n"
28
- "使用者退出"
29
-
30
- #, python-format
31
- msgid " - %s"
32
- msgstr " - %s"
33
-
34
- #, python-format
35
- msgid " - parallel, %s"
36
- msgstr " - 平行,%s"
37
-
38
- #, python-format
39
- msgid ""
40
- "%(checked)d suffixes checked - %(hashed).2f%% hashed, %(synced).2f%% synced"
41
- msgstr ""
42
- "已檢查 %(checked)d 個字尾 - %(hashed).2f%% 個已雜湊,%(synced).2f%% 個已同步"
43
-
44
- #, python-format
45
- msgid "%(msg)s %(ip)s:%(port)s/%(device)s"
46
- msgstr "%(msg)s %(ip)s:%(port)s/%(device)s"
47
-
48
- #, python-format
49
- msgid ""
50
- "%(replicated)d/%(total)d (%(percentage).2f%%) partitions replicated in "
51
- "%(time).2fs (%(rate).2f/sec, %(remaining)s remaining)"
52
- msgstr ""
53
- "已抄寫 %(replicated)d/%(total)d (%(percentage).2f%%) 個分割區(在 "
54
- "%(time).2fs 內,%(rate).2f/秒,剩餘 %(remaining)s)"
55
-
56
- #, python-format
57
- msgid "%(success)s successes, %(failure)s failures"
58
- msgstr "%(success)s 個成功,%(failure)s 個失敗"
59
-
60
- #, python-format
61
- msgid "%(type)s returning 503 for %(statuses)s"
62
- msgstr "%(type)s 針對 %(statuses)s 正在傳回 503"
63
-
64
- #, python-format
65
- msgid "%s already started..."
66
- msgstr "%s 已啟動..."
67
-
68
- #, python-format
69
- msgid "%s does not exist"
70
- msgstr "%s 不存在"
71
-
72
- #, python-format
73
- msgid "%s is not mounted"
74
- msgstr "未裝載 %s"
75
-
76
- #, python-format
77
- msgid "%s responded as unmounted"
78
- msgstr "%s 已回應為未裝載"
79
-
80
- #, python-format
81
- msgid "%s: Connection reset by peer"
82
- msgstr "%s:已由對等項目重設連線"
83
-
84
- msgid "Account"
85
- msgstr "帳戶"
86
-
87
- #, python-format
88
- msgid "Account audit \"once\" mode completed: %.02fs"
89
- msgstr "帳戶審核「一次性」模式已完成:%.02fs"
90
-
91
- #, python-format
92
- msgid "Account audit pass completed: %.02fs"
93
- msgstr "帳戶審核通過已完成:%.02fs"
94
-
95
- #, python-format
96
- msgid ""
97
- "Attempted to replicate %(count)d dbs in %(time).5f seconds (%(rate).5f/s)"
98
- msgstr "已嘗試在 %(time).5f 秒內抄寫 %(count)d 個資料庫 (%(rate).5f/s)"
99
-
100
- #, python-format
101
- msgid "Bad rsync return code: %(ret)d <- %(args)s"
102
- msgstr "不當的遠端同步回覆碼:%(ret)d <- %(args)s"
103
-
104
- msgid "Begin account audit \"once\" mode"
105
- msgstr "開始帳戶審核「一次性」模式"
106
-
107
- msgid "Begin account audit pass."
108
- msgstr "開始帳戶審核通過。"
109
-
110
- msgid "Begin container audit \"once\" mode"
111
- msgstr "開始儲存器審核「一次性」模式"
112
-
113
- msgid "Begin container audit pass."
114
- msgstr "開始儲存器審核通過。"
115
-
116
- msgid "Begin container sync \"once\" mode"
117
- msgstr "開始儲存器同步「一次性」模式"
118
-
119
- msgid "Begin container update single threaded sweep"
120
- msgstr "開始儲存器更新單一執行緒清理"
121
-
122
- msgid "Begin container update sweep"
123
- msgstr "開始儲存器更新清理"
124
-
125
- msgid "Begin object update single threaded sweep"
126
- msgstr "開始物件更新單一執行緒清理"
127
-
128
- msgid "Begin object update sweep"
129
- msgstr "開始物件更新清理"
130
-
131
- msgid "Beginning replication run"
132
- msgstr "正在開始抄寫執行"
133
-
134
- msgid "Broker error trying to rollback locked connection"
135
- msgstr "嘗試回復已鎖定的連線時發生分配管理系統錯誤"
136
-
137
- #, python-format
138
- msgid "Can not access the file %s."
139
- msgstr "無法存取檔案 %s。"
140
-
141
- #, python-format
142
- msgid "Can not load profile data from %s."
143
- msgstr "無法從 %s 中載入設定檔資料。"
144
-
145
- #, python-format
146
- msgid "Client did not read from proxy within %ss"
147
- msgstr "用戶端未在 %s 秒內從 Proxy 中讀取"
148
-
149
- msgid "Client disconnected on read"
150
- msgstr "用戶端在讀取時中斷連線"
151
-
152
- msgid "Client disconnected without sending enough data"
153
- msgstr "用戶端已中斷連線,未傳送足夠的資料"
154
-
155
- msgid "Client disconnected without sending last chunk"
156
- msgstr "用戶端已中斷連線,未傳送最後一個片段"
157
-
158
- #, python-format
159
- msgid ""
160
- "Client path %(client)s does not match path stored in object metadata %(meta)s"
161
- msgstr "用戶端路徑 %(client)s 不符合物件 meta 資料%(meta)s 中儲存的路徑"
162
-
163
- msgid ""
164
- "Configuration option internal_client_conf_path not defined. Using default "
165
- "configuration, See internal-client.conf-sample for options"
166
- msgstr ""
167
- "為定義配置選項 internal_client_conf_path。將使用預設配置,請參閱 internal-"
168
- "client.conf-sample 以取得選項"
169
-
170
- msgid "Connection refused"
171
- msgstr "連線遭拒"
172
-
173
- msgid "Connection timeout"
174
- msgstr "連線逾時"
175
-
176
- msgid "Container"
177
- msgstr "容器"
178
-
179
- #, python-format
180
- msgid "Container audit \"once\" mode completed: %.02fs"
181
- msgstr "儲存器審核「一次性」模式已完成:%.02fs"
182
-
183
- #, python-format
184
- msgid "Container audit pass completed: %.02fs"
185
- msgstr "儲存器審核通過已完成:%.02fs"
186
-
187
- #, python-format
188
- msgid "Container sync \"once\" mode completed: %.02fs"
189
- msgstr "儲存器同步「一次性」模式已完成:%.02fs"
190
-
191
- #, python-format
192
- msgid ""
193
- "Container update single threaded sweep completed: %(elapsed).02fs, "
194
- "%(success)s successes, %(fail)s failures, %(no_change)s with no changes"
195
- msgstr ""
196
- "儲存器更新單一執行緒清理已完成:%(elapsed).02fs,%(success)s 個成"
197
- "功,%(fail)s 個失敗,%(no_change)s 個無變更"
198
-
199
- #, python-format
200
- msgid "Container update sweep completed: %.02fs"
201
- msgstr "儲存器更新清理已完成:%.02fs"
202
-
203
- #, python-format
204
- msgid ""
205
- "Container update sweep of %(path)s completed: %(elapsed).02fs, %(success)s "
206
- "successes, %(fail)s failures, %(no_change)s with no changes"
207
- msgstr ""
208
- "%(path)s 的儲存器更新清理已完成:%(elapsed).02fs,%(success)s 個成"
209
- "功,%(fail)s 個失敗,%(no_change)s 個無變更"
210
-
211
- #, python-format
212
- msgid "Data download error: %s"
213
- msgstr "資料下載錯誤:%s"
214
-
215
- #, python-format
216
- msgid "ERROR %(db_file)s: %(validate_sync_to_err)s"
217
- msgstr "錯誤:%(db_file)s:%(validate_sync_to_err)s"
218
-
219
- #, python-format
220
- msgid "ERROR %(status)d %(body)s From %(type)s Server"
221
- msgstr "錯誤:%(status)d %(body)s 來自 %(type)s 伺服器"
222
-
223
- #, python-format
224
- msgid "ERROR %(status)d %(body)s From Object Server re: %(path)s"
225
- msgstr "錯誤:%(status)d %(body)s 來自物件伺服器 re:%(path)s"
226
-
227
- #, python-format
228
- msgid "ERROR %(status)d Expect: 100-continue From Object Server"
229
- msgstr "錯誤:%(status)d 預期:100 繼續自物件伺服器"
230
-
231
- #, python-format
232
- msgid ""
233
- "ERROR Account update failed with %(ip)s:%(port)s/%(device)s (will retry "
234
- "later): Response %(status)s %(reason)s"
235
- msgstr ""
236
- "錯誤:%(ip)s:%(port)s/%(device)s 的帳戶更新失敗(將稍後重試):回應 "
237
- "%(status)s %(reason)s"
238
-
239
- #, python-format
240
- msgid "ERROR Client read timeout (%ss)"
241
- msgstr "錯誤:用戶端讀取逾時 (%ss)"
242
-
243
- #, python-format
244
- msgid ""
245
- "ERROR Container update failed (saving for async update later): %(status)d "
246
- "response from %(ip)s:%(port)s/%(dev)s"
247
- msgstr ""
248
- "錯誤:儲存器更新失敗(儲存以稍後進行非同步更新):%(status)d回應(來自 "
249
- "%(ip)s:%(port)s/%(dev)s)"
250
-
251
- #, python-format
252
- msgid "ERROR Could not get account info %s"
253
- msgstr "錯誤:無法取得帳戶資訊 %s"
254
-
255
- #, python-format
256
- msgid "ERROR Could not get container info %s"
257
- msgstr "錯誤:無法取得儲存器資訊 %s"
258
-
259
- #, python-format
260
- msgid "ERROR DiskFile %(data_file)s close failure: %(exc)s : %(stack)s"
261
- msgstr "錯誤:磁碟檔 %(data_file)s 關閉失敗:%(exc)s:%(stack)s"
262
-
263
- msgid "ERROR Exception causing client disconnect"
264
- msgstr "錯誤:異常狀況造成用戶端中斷連線"
265
-
266
- #, python-format
267
- msgid "ERROR Exception transferring data to object servers %s"
268
- msgstr "錯誤:將資料轉送至物件伺服器 %s 時發生異常狀況"
269
-
270
- msgid "ERROR Failed to get my own IPs?"
271
- msgstr "錯誤:無法取得我自己的 IP?"
272
-
273
- msgid "ERROR Insufficient Storage"
274
- msgstr "錯誤:儲存體不足"
275
-
276
- #, python-format
277
- msgid "ERROR Object %(obj)s failed audit and was quarantined: %(err)s"
278
- msgstr "錯誤:物件 %(obj)s 審核失敗,已隔離:%(err)s"
279
-
280
- #, python-format
281
- msgid "ERROR Pickle problem, quarantining %s"
282
- msgstr "錯誤:挑選問題,正在隔離 %s"
283
-
284
- #, python-format
285
- msgid "ERROR Remote drive not mounted %s"
286
- msgstr "錯誤:未裝載遠端磁碟機 %s"
287
-
288
- #, python-format
289
- msgid "ERROR Syncing %(db_file)s %(row)s"
290
- msgstr "同步 %(db_file)s %(row)s 時發生錯誤"
291
-
292
- #, python-format
293
- msgid "ERROR Syncing %s"
294
- msgstr "同步 %s 時發生錯誤"
295
-
296
- #, python-format
297
- msgid "ERROR Trying to audit %s"
298
- msgstr "嘗試審核 %s 時發生錯誤"
299
-
300
- msgid "ERROR Unhandled exception in request"
301
- msgstr "錯誤:要求中有無法處理的異常狀況"
302
-
303
- #, python-format
304
- msgid "ERROR __call__ error with %(method)s %(path)s "
305
- msgstr "錯誤:%(method)s %(path)s 發生呼叫錯誤"
306
-
307
- #, python-format
308
- msgid ""
309
- "ERROR account update failed with %(ip)s:%(port)s/%(device)s (will retry "
310
- "later)"
311
- msgstr "錯誤:%(ip)s:%(port)s/%(device)s 的帳戶更新失敗(將稍後重試)"
312
-
313
- #, python-format
314
- msgid ""
315
- "ERROR account update failed with %(ip)s:%(port)s/%(device)s (will retry "
316
- "later): "
317
- msgstr "錯誤:%(ip)s:%(port)s/%(device)s 的帳戶更新失敗(將稍後重試):"
318
-
319
- #, python-format
320
- msgid "ERROR async pending file with unexpected name %s"
321
- msgstr "錯誤:具有非預期名稱 %s 的非同步擱置檔案"
322
-
323
- msgid "ERROR auditing"
324
- msgstr "審核時發生錯誤"
325
-
326
- #, python-format
327
- msgid "ERROR auditing: %s"
328
- msgstr "審核時發生錯誤:%s"
329
-
330
- #, python-format
331
- msgid ""
332
- "ERROR container update failed with %(ip)s:%(port)s/%(dev)s (saving for async "
333
- "update later)"
334
- msgstr ""
335
- "錯誤:%(ip)s:%(port)s/%(dev)s 的儲存器更新失敗(儲存以稍後進行非同步更新)"
336
-
337
- #, python-format
338
- msgid "ERROR reading HTTP response from %s"
339
- msgstr "從 %s 讀取 HTTP 回應時發生錯誤"
340
-
341
- #, python-format
342
- msgid "ERROR reading db %s"
343
- msgstr "讀取資料庫 %s 時發生錯誤"
344
-
345
- #, python-format
346
- msgid "ERROR rsync failed with %(code)s: %(args)s"
347
- msgstr "錯誤:遠端同步失敗,%(code)s:%(args)s"
348
-
349
- #, python-format
350
- msgid "ERROR syncing %(file)s with node %(node)s"
351
- msgstr "同步 %(file)s 與節點 %(node)s 時發生錯誤"
352
-
353
- msgid "ERROR trying to replicate"
354
- msgstr "嘗試抄寫時發生錯誤"
355
-
356
- #, python-format
357
- msgid "ERROR while trying to clean up %s"
358
- msgstr "嘗試清除 %s 時發生錯誤"
359
-
360
- #, python-format
361
- msgid "ERROR with %(type)s server %(ip)s:%(port)s/%(device)s re: %(info)s"
362
- msgstr "%(type)s 伺服器發生錯誤:%(ip)s:%(port)s/%(device)s re: %(info)s"
363
-
364
- #, python-format
365
- msgid "ERROR with loading suppressions from %s: "
366
- msgstr "從 %s 載入抑制時發生錯誤:"
367
-
368
- #, python-format
369
- msgid "ERROR with remote server %(ip)s:%(port)s/%(device)s"
370
- msgstr "遠端伺服器發生錯誤:%(ip)s:%(port)s/%(device)s"
371
-
372
- #, python-format
373
- msgid "ERROR: Failed to get paths to drive partitions: %s"
374
- msgstr "錯誤:無法取得磁碟機分割區的路徑:%s"
375
-
376
- #, python-format
377
- msgid "ERROR: Unable to access %(path)s: %(error)s"
378
- msgstr "錯誤:無法存取 %(path)s:%(error)s"
379
-
380
- #, python-format
381
- msgid "ERROR: Unable to run auditing: %s"
382
- msgstr "錯誤:無法執行審核:%s"
383
-
384
- msgid "Error hashing suffix"
385
- msgstr "混合字尾時發生錯誤"
386
-
387
- msgid "Error listing devices"
388
- msgstr "列出裝置時發生錯誤"
389
-
390
- #, python-format
391
- msgid "Error on render profiling results: %s"
392
- msgstr "呈現側寫結果時發生錯誤:%s"
393
-
394
- msgid "Error parsing recon cache file"
395
- msgstr "剖析 recon 快取檔案時發生錯誤"
396
-
397
- msgid "Error reading recon cache file"
398
- msgstr "讀取 recon 快取檔案時發生錯誤"
399
-
400
- msgid "Error reading ringfile"
401
- msgstr "讀取 ringfile 時發生錯誤"
402
-
403
- msgid "Error reading swift.conf"
404
- msgstr "讀取 swift.conf 時發生錯誤"
405
-
406
- msgid "Error retrieving recon data"
407
- msgstr "擷取 recon 資料時發生錯誤"
408
-
409
- msgid "Error syncing handoff partition"
410
- msgstr "同步遞交分割區時發生錯誤"
411
-
412
- msgid "Error syncing partition"
413
- msgstr "同步分割區時發生錯誤"
414
-
415
- #, python-format
416
- msgid "Error syncing with node: %s"
417
- msgstr "與節點同步時發生錯誤:%s"
418
-
419
- #, python-format
420
- msgid "Error trying to rebuild %(path)s policy#%(policy)d frag#%(frag_index)s"
421
- msgstr "嘗試重建 %(path)s 原則 #%(policy)d 分段 #%(frag_index)s 時發生錯誤"
422
-
423
- msgid "Error: An error occurred"
424
- msgstr "錯誤:發生錯誤"
425
-
426
- msgid "Error: missing config path argument"
427
- msgstr "錯誤:遺漏配置路徑引數"
428
-
429
- #, python-format
430
- msgid "Error: unable to locate %s"
431
- msgstr "錯誤:找不到 %s"
432
-
433
- #, python-format
434
- msgid "Exception with %(ip)s:%(port)s/%(device)s"
435
- msgstr "%(ip)s:%(port)s/%(device)s 發生異常狀況"
436
-
437
- #, python-format
438
- msgid "Expect: 100-continue on %s"
439
- msgstr "預期 100 - 在 %s 上繼續"
440
-
441
- #, python-format
442
- msgid "Following CNAME chain for %(given_domain)s to %(found_domain)s"
443
- msgstr "遵循 %(given_domain)s 到 %(found_domain)s 的 CNAME 鏈"
444
-
445
- msgid "Found configs:"
446
- msgstr "找到配置:"
447
-
448
- msgid ""
449
- "Handoffs first mode still has handoffs remaining. Aborting current "
450
- "replication pass."
451
- msgstr "「遞交作業最先」模式仍有剩餘的遞交作業。正在中斷現行抄寫傳遞。"
452
-
453
- msgid "Host unreachable"
454
- msgstr "無法抵達主機"
455
-
456
- #, python-format
457
- msgid "Invalid X-Container-Sync-To format %r"
458
- msgstr "無效的 X-Container-Sync-To 格式 %r"
459
-
460
- #, python-format
461
- msgid "Invalid host %r in X-Container-Sync-To"
462
- msgstr "X-Container-Sync-To 中的主機 %r 無效"
463
-
464
- #, python-format
465
- msgid "Invalid pending entry %(file)s: %(entry)s"
466
- msgstr "無效的擱置項目 %(file)s:%(entry)s"
467
-
468
- #, python-format
469
- msgid "Invalid response %(resp)s from %(full_path)s"
470
- msgstr "來自 %(full_path)s 的回應 %(resp)s 無效"
471
-
472
- #, python-format
473
- msgid "Invalid response %(resp)s from %(ip)s"
474
- msgstr "來自 %(ip)s 的回應 %(resp)s 無效"
475
-
476
- #, python-format
477
- msgid ""
478
- "Invalid scheme %r in X-Container-Sync-To, must be \"//\", \"http\", or "
479
- "\"https\"."
480
- msgstr ""
481
- "X-Container-Sync-To 中的架構 %r 無效,必須是 \"//\"、\"http\" 或\"https\"。"
482
-
483
- #, python-format
484
- msgid "Killing long-running rsync: %s"
485
- msgstr "正在結束長時間執行的遠端同步:%s"
486
-
487
- msgid "Lockup detected.. killing live coros."
488
- msgstr "偵測到鎖定。正在結束即時 coro。"
489
-
490
- #, python-format
491
- msgid "Mapped %(given_domain)s to %(found_domain)s"
492
- msgstr "已將 %(given_domain)s 對映至 %(found_domain)s"
493
-
494
- #, python-format
495
- msgid "No %s running"
496
- msgstr "沒有 %s 在執行中"
497
-
498
- #, python-format
499
- msgid "No permission to signal PID %d"
500
- msgstr "沒有信號 PID %d 的許可權"
501
-
502
- #, python-format
503
- msgid "No policy with index %s"
504
- msgstr "沒有具有索引 %s 的原則"
505
-
506
- #, python-format
507
- msgid "No realm key for %r"
508
- msgstr "沒有 %r 的範圍金鑰"
509
-
510
- #, python-format
511
- msgid "Node error limited %(ip)s:%(port)s (%(device)s)"
512
- msgstr "節點錯誤限制 %(ip)s:%(port)s (%(device)s)"
513
-
514
- #, python-format
515
- msgid "Not enough object servers ack'ed (got %d)"
516
- msgstr "未確認足夠的物件伺服器(已取得 %d)"
517
-
518
- #, python-format
519
- msgid ""
520
- "Not found %(sync_from)r => %(sync_to)r - object "
521
- "%(obj_name)r"
522
- msgstr ""
523
- "找不到 %(sync_from)r => %(sync_to)r - 物件%(obj_name)r"
524
-
525
- #, python-format
526
- msgid "Nothing reconstructed for %s seconds."
527
- msgstr "%s 秒未重新建構任何內容。"
528
-
529
- #, python-format
530
- msgid "Nothing replicated for %s seconds."
531
- msgstr "未抄寫任何項目達 %s 秒。"
532
-
533
- msgid "Object"
534
- msgstr "物件"
535
-
536
- msgid "Object PUT"
537
- msgstr "物件 PUT"
538
-
539
- #, python-format
540
- msgid "Object PUT returning 202 for 409: %(req_timestamp)s <= %(timestamps)r"
541
- msgstr "物件 PUT 針對 409 正在傳回 202:%(req_timestamp)s <= %(timestamps)r"
542
-
543
- #, python-format
544
- msgid "Object PUT returning 412, %(statuses)r"
545
- msgstr "物件 PUT 正在傳回 412,%(statuses)r"
546
-
547
- #, python-format
548
- msgid ""
549
- "Object audit (%(type)s) \"%(mode)s\" mode completed: %(elapsed).02fs. Total "
550
- "quarantined: %(quars)d, Total errors: %(errors)d, Total files/sec: "
551
- "%(frate).2f, Total bytes/sec: %(brate).2f, Auditing time: %(audit).2f, Rate: "
552
- "%(audit_rate).2f"
553
- msgstr ""
554
- "物件審核 (%(type)s) \"%(mode)s\" 模式已完成:%(elapsed).02fs。已隔離總計:"
555
- "%(quars)d,錯誤總計:%(errors)d,檔案/秒總計:%(frate).2f,位元組/秒總計:"
556
- "%(brate).2f,審核時間:%(audit).2f,速率:%(audit_rate).2f"
557
-
558
- #, python-format
559
- msgid ""
560
- "Object audit (%(type)s). Since %(start_time)s: Locally: %(passes)d passed, "
561
- "%(quars)d quarantined, %(errors)d errors, files/sec: %(frate).2f, bytes/sec: "
562
- "%(brate).2f, Total time: %(total).2f, Auditing time: %(audit).2f, Rate: "
563
- "%(audit_rate).2f"
564
- msgstr ""
565
- "物件審核 (%(type)s)。自 %(start_time)s 以來:本端:%(passes)d 個已通"
566
- "過,%(quars)d 個已隔離,%(errors)d 個錯誤,檔案/秒:%(frate).2f,位元組數/"
567
- "秒:%(brate).2f,時間總計:%(total).2f,審核時間:%(audit).2f,速率:"
568
- "%(audit_rate).2f"
569
-
570
- #, python-format
571
- msgid "Object audit stats: %s"
572
- msgstr "物件審核統計資料:%s"
573
-
574
- #, python-format
575
- msgid "Object reconstruction complete (once). (%.02f minutes)"
576
- msgstr "物件重新建構完成(一次性)。(%.02f 分鐘)"
577
-
578
- #, python-format
579
- msgid "Object reconstruction complete. (%.02f minutes)"
580
- msgstr "物件重新建構完成。(%.02f 分鐘)"
581
-
582
- #, python-format
583
- msgid "Object replication complete (once). (%.02f minutes)"
584
- msgstr "物件抄寫完成(一次性)。(%.02f 分鐘)"
585
-
586
- #, python-format
587
- msgid "Object replication complete. (%.02f minutes)"
588
- msgstr "物件抄寫完成。(%.02f 分鐘)"
589
-
590
- #, python-format
591
- msgid "Object servers returned %s mismatched etags"
592
- msgstr "物件伺服器已傳回 %s 個不符 etag"
593
-
594
- #, python-format
595
- msgid "Object update sweep completed: %.02fs"
596
- msgstr "物件更新清理已完成:%.02fs"
597
-
598
- msgid "Params, queries, and fragments not allowed in X-Container-Sync-To"
599
- msgstr "X-Container-Sync-To 中不容許參數、查詢及片段"
600
-
601
- #, python-format
602
- msgid "Partition times: max %(max).4fs, min %(min).4fs, med %(med).4fs"
603
- msgstr "分割區時間:最大 %(max).4fs,最小 %(min).4fs,中間 %(med).4fs"
604
-
605
- msgid "Path required in X-Container-Sync-To"
606
- msgstr "X-Container-Sync-To 中需要路徑"
607
-
608
- #, python-format
609
- msgid "Problem cleaning up %s"
610
- msgstr "清除 %s 時發生問題"
611
-
612
- #, python-format
613
- msgid "Profiling Error: %s"
614
- msgstr "側寫錯誤:%s"
615
-
616
- #, python-format
617
- msgid "Quarantined %(hsh_path)s to %(quar_path)s because it is not a directory"
618
- msgstr "已將 %(hsh_path)s 隔離至 %(quar_path)s,原因是它不是目錄"
619
-
620
- #, python-format
621
- msgid ""
622
- "Quarantined %(object_path)s to %(quar_path)s because it is not a directory"
623
- msgstr "已將 %(object_path)s 隔離至 %(quar_path)s,原因是它不是目錄"
624
-
625
- #, python-format
626
- msgid "Quarantining DB %s"
627
- msgstr "正在隔離資料庫 %s"
628
-
629
- #, python-format
630
- msgid "Ratelimit sleep log: %(sleep)s for %(account)s/%(container)s/%(object)s"
631
- msgstr "%(account)s/%(container)s/%(object)s 的 ratelimit 休眠日誌:%(sleep)s"
632
-
633
- #, python-format
634
- msgid "Removed %(remove)d dbs"
635
- msgstr "已移除 %(remove)d 個資料庫"
636
-
637
- #, python-format
638
- msgid "Removing %s objects"
639
- msgstr "正在移除 %s 物件"
640
-
641
- #, python-format
642
- msgid "Removing partition: %s"
643
- msgstr "正在移除分割區:%s"
644
-
645
- #, python-format
646
- msgid "Removing pid file %(pid_file)s with wrong pid %(pid)d"
647
- msgstr "正在移除具有錯誤 PID %(pid)d 的 PID 檔 %(pid_file)s"
648
-
649
- #, python-format
650
- msgid "Removing pid file %s with invalid pid"
651
- msgstr "正在移除具有無效 PID 的 PID 檔 %s"
652
-
653
- #, python-format
654
- msgid "Removing stale pid file %s"
655
- msgstr "正在移除過時 PID 檔案 %s"
656
-
657
- msgid "Replication run OVER"
658
- msgstr "抄寫執行結束"
659
-
660
- #, python-format
661
- msgid "Returning 497 because of blacklisting: %s"
662
- msgstr "由於黑名單,正在傳回 497:%s"
663
-
664
- #, python-format
665
- msgid ""
666
- "Returning 498 for %(meth)s to %(acc)s/%(cont)s/%(obj)s . Ratelimit (Max "
667
- "Sleep) %(e)s"
668
- msgstr ""
669
- "正在將 %(meth)s 的 498 傳回至 %(acc)s/%(cont)s/%(obj)s。Ratelimit(休眠上"
670
- "限)%(e)s"
671
-
672
- msgid "Ring change detected. Aborting current reconstruction pass."
673
- msgstr "偵測到環變更。正在中斷現行重新建構傳遞。"
674
-
675
- msgid "Ring change detected. Aborting current replication pass."
676
- msgstr "偵測到環變更。正在中斷現行抄寫傳遞。"
677
-
678
- #, python-format
679
- msgid "Running %s once"
680
- msgstr "正在執行 %s 一次"
681
-
682
- msgid "Running object reconstructor in script mode."
683
- msgstr "正在 Script 模式下執行物件重新建構器。"
684
-
685
- msgid "Running object replicator in script mode."
686
- msgstr "正在 Script 模式下執行物件抄寫器"
687
-
688
- #, python-format
689
- msgid ""
690
- "Since %(time)s: %(sync)s synced [%(delete)s deletes, %(put)s puts], %(skip)s "
691
- "skipped, %(fail)s failed"
692
- msgstr ""
693
- "自 %(time)s 以來:已同步 %(sync)s 個 [已刪除 [%(delete)s 個,已放置 %(put)s "
694
- "個],已跳過 %(skip)s 個,%(fail)s 個失敗"
695
-
696
- #, python-format
697
- msgid ""
698
- "Since %(time)s: Account audits: %(passed)s passed audit,%(failed)s failed "
699
- "audit"
700
- msgstr ""
701
- "自 %(time)s 以來:帳戶審核:%(passed)s 個已通過審核,%(failed)s 個失敗審核"
702
-
703
- #, python-format
704
- msgid ""
705
- "Since %(time)s: Container audits: %(pass)s passed audit, %(fail)s failed "
706
- "audit"
707
- msgstr ""
708
- "自 %(time)s 以來:儲存器審核:%(pass)s 個已通過審核,%(fail)s 個失敗審核"
709
-
710
- #, python-format
711
- msgid "Skipping %s as it is not mounted"
712
- msgstr "正在跳過 %s,原因是它未裝載"
713
-
714
- #, python-format
715
- msgid "Starting %s"
716
- msgstr "正在啟動 %s"
717
-
718
- msgid "Starting object reconstruction pass."
719
- msgstr "正在啟動物件重新建構傳遞。"
720
-
721
- msgid "Starting object reconstructor in daemon mode."
722
- msgstr "正在常駐程式模式下啟動物件重新建構器。"
723
-
724
- msgid "Starting object replication pass."
725
- msgstr "正在啟動物件抄寫傳遞。"
726
-
727
- msgid "Starting object replicator in daemon mode."
728
- msgstr "正在常駐程式模式下啟動物件抄寫器。"
729
-
730
- #, python-format
731
- msgid "Successful rsync of %(src)s at %(dst)s (%(time).03f)"
732
- msgstr "已順利遠端同步 %(dst)s 中的 %(src)s (%(time).03f)"
733
-
734
- msgid "The file type are forbidden to access!"
735
- msgstr "此檔案類型禁止存取!"
736
-
737
- #, python-format
738
- msgid ""
739
- "The total %(key)s for the container (%(total)s) does not match the sum of "
740
- "%(key)s across policies (%(sum)s)"
741
- msgstr ""
742
- "儲存器的 %(key)s 總計 (%(total)s) 不符合原則中的 %(key)s 總和 (%(sum)s) "
743
-
744
- #, python-format
745
- msgid "Trying to %(method)s %(path)s"
746
- msgstr "正在嘗試 %(method)s %(path)s"
747
-
748
- #, python-format
749
- msgid "Trying to GET %(full_path)s"
750
- msgstr "正在嘗試對 %(full_path)s 執行 GET 動作"
751
-
752
- msgid "Trying to read during GET"
753
- msgstr "正在嘗試於 GET 期間讀取"
754
-
755
- msgid "Trying to send to client"
756
- msgstr "正在嘗試傳送至用戶端"
757
-
758
- #, python-format
759
- msgid "Trying to sync suffixes with %s"
760
- msgstr "正在嘗試與 %s 同步字尾"
761
-
762
- #, python-format
763
- msgid "Trying to write to %s"
764
- msgstr "正在嘗試寫入至 %s"
765
-
766
- msgid "UNCAUGHT EXCEPTION"
767
- msgstr "未捕捉的異常狀況"
768
-
769
- #, python-format
770
- msgid "Unable to locate %s in libc. Leaving as a no-op."
771
- msgstr "在 libc 中找不到 %s。保留為 no-op。"
772
-
773
- #, python-format
774
- msgid "Unable to locate config for %s"
775
- msgstr "找不到 %s 的配置"
776
-
777
- msgid ""
778
- "Unable to locate fallocate, posix_fallocate in libc. Leaving as a no-op."
779
- msgstr "在 libc 中找不到 fallocate、posix_fallocate。保留為 no-op。"
780
-
781
- #, python-format
782
- msgid "Unable to read config from %s"
783
- msgstr "無法從 %s 讀取配置"
784
-
785
- #, python-format
786
- msgid "Unauth %(sync_from)r => %(sync_to)r"
787
- msgstr "未鑑別 %(sync_from)r => %(sync_to)r"
788
-
789
- msgid "Unhandled exception"
790
- msgstr "無法處理的異常狀況"
791
-
792
- #, python-format
793
- msgid "Unknown exception trying to GET: %(account)r %(container)r %(object)r"
794
- msgstr ""
795
- "嘗試執行 GET 動作時發生不明異常狀況:%(account)r %(container)r %(object)r"
796
-
797
- #, python-format
798
- msgid "Update report failed for %(container)s %(dbfile)s"
799
- msgstr "%(container)s %(dbfile)s 的更新報告失敗"
800
-
801
- #, python-format
802
- msgid "Update report sent for %(container)s %(dbfile)s"
803
- msgstr "已傳送 %(container)s %(dbfile)s 的更新報告"
804
-
805
- msgid ""
806
- "WARNING: SSL should only be enabled for testing purposes. Use external SSL "
807
- "termination for a production deployment."
808
- msgstr ""
809
- "警告:應該僅啟用 SSL 以用於測試目的。使用外部SSL 終止以進行正式作業部署。"
810
-
811
- msgid "WARNING: Unable to modify file descriptor limit. Running as non-root?"
812
- msgstr "警告:無法修改檔案描述子限制。以非 root 使用者身分執行?"
813
-
814
- msgid "WARNING: Unable to modify max process limit. Running as non-root?"
815
- msgstr "警告:無法修改處理程序數上限限制。以非 root 使用者身分執行?"
816
-
817
- msgid "WARNING: Unable to modify memory limit. Running as non-root?"
818
- msgstr "警告:無法修改記憶體限制。以非 root 使用者身分執行?"
819
-
820
- msgid "Warning: Cannot ratelimit without a memcached client"
821
- msgstr "警告:無法在沒有 memcached 用戶端的情況下限制速率"
822
-
823
- #, python-format
824
- msgid "method %s is not allowed."
825
- msgstr "不容許方法 %s。"
826
-
827
- msgid "no log file found"
828
- msgstr "找不到日誌檔"
829
-
830
- msgid "odfpy not installed."
831
- msgstr "未安裝 odfpy。"
832
-
833
- #, python-format
834
- msgid "plotting results failed due to %s"
835
- msgstr "由於 %s,繪製結果失敗"
836
-
837
- msgid "python-matplotlib not installed."
838
- msgstr "未安裝 python-matplotlib。"