summaryrefslogtreecommitdiff
path: root/docs/_locale/zh_CN/LC_MESSAGES/recipes.po
blob: 187dd18d6d4f9aed0e385d0c0942578544301f91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2009-2017, Marcel Hellkamp
# This file is distributed under the same license as the Bottle package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bottle\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-12-19 14:15+0100\n"
"PO-Revision-Date: 2015-12-13 21:06+0000\n"
"Last-Translator: defnull <marc@gsites.de>\n"
"Language-Team: Chinese (China) (http://www.transifex.com/bottle/bottle/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: ../../recipes.rst:16
msgid "Recipes"
msgstr "秘诀"

#: ../../recipes.rst:18
msgid ""
"This is a collection of code snippets and examples for common use cases."
msgstr "这里收集了一些常见用例的代码片段和例子."

#: ../../recipes.rst:21
msgid "Keeping track of Sessions"
msgstr "使用Session"

#: ../../recipes.rst:23
msgid ""
"There is no built-in support for sessions because there is no *right* way to"
" do it (in a micro framework). Depending on requirements and environment you"
" could use beaker_ middleware with a fitting backend or implement it "
"yourself. Here is an example for beaker sessions with a file-based backend::"
msgstr "Bottle自身并没有提供Session的支持,因为在一个迷你框架里面,没有合适的方法来实现。根据需求和使用环境,你可以使用 beaker_ 中间件或自己来实现。下面是一个使用beaker的例子,Session数据存放在\"./data\"目录里面::"

#: ../../recipes.rst:46
msgid "Debugging with Style: Debugging Middleware"
msgstr "Debugging with Style: 调试中间件"

#: ../../recipes.rst:48
msgid ""
"Bottle catches all Exceptions raised in your app code to prevent your WSGI "
"server from crashing. If the built-in :func:`debug` mode is not enough and "
"you need exceptions to propagate to a debugging middleware, you can turn off"
" this behaviour::"
msgstr "Bottle捕获所有应用抛出的异常,防止异常导致WSGI服务器崩溃。如果内置的 :func:`debug` 模式不能满足你的要求,你想在你自己写的中间件里面处理这些异常,那么你可以关闭这个功能。"

#: ../../recipes.rst:56
msgid ""
"Now, bottle only catches its own exceptions (:exc:`HTTPError`, "
":exc:`HTTPResponse` and :exc:`BottleException`) and your middleware can "
"handle the rest."
msgstr "现在,Bottle仅会捕获并处理它自己抛出的异常( :exc:`HTTPError` , :exc:`HTTPResponse` 和 :exc:`BottleException` ),你的中间件可以处理剩下的那些异常。"

#: ../../recipes.rst:58
msgid ""
"The werkzeug_ and paste_ libraries both ship with very powerful debugging "
"WSGI middleware. Look at :class:`werkzeug.debug.DebuggedApplication` for "
"werkzeug_ and :class:`paste.evalexception.middleware.EvalException` for "
"paste_. They both allow you do inspect the stack and even execute python "
"code within the stack context, so **do not use them in production**."
msgstr "werkzeug_ 和 paste_ 这两个第三方库都提供了非常强大的调试中间件。如果是 werkzeug_ ,可看看 :class:`werkzeug.debug.DebuggedApplication` ,如果是 paste_ ,可看看 :class:`paste.evalexception.middleware.EvalException` 。它们都可让你检查运行栈,甚至在保持运行栈上下文的情况下,执行Python代码。所以 **不要在生产环境中使用它们** 。"

#: ../../recipes.rst:62
msgid "Unit-Testing Bottle Applications"
msgstr ""

#: ../../recipes.rst:64
msgid ""
"Unit-testing is usually performed against methods defined in your web "
"application without running a WSGI environment."
msgstr "Unit测试一般用于测试应用中的函数,但不需要一个WSGI环境。"

#: ../../recipes.rst:66
msgid "A simple example using `Nose <http://readthedocs.org/docs/nose>`_::"
msgstr "使用 `Nose <http://readthedocs.org/docs/nose>`_ 的简单例子。"

#: ../../recipes.rst:77
msgid "Test script::"
msgstr "测试代码::"

#: ../../recipes.rst:84
msgid ""
"In the example the Bottle route() method is never executed - only index() is"
" tested."
msgstr "在这个例子中,Bottle的route()函数没有被执行,仅测试了index()函数。"

#: ../../recipes.rst:88
msgid "Functional Testing Bottle Applications"
msgstr "功能测试"

#: ../../recipes.rst:90
msgid ""
"Any HTTP-based testing system can be used with a running WSGI server, but "
"some testing frameworks work more intimately with WSGI, and provide the "
"ability the call WSGI applications in a controlled environment, with "
"tracebacks and full use of debugging tools. `Testing tools for WSGI "
"<http://www.wsgi.org/en/latest/testing.html>`_ is a good starting point."
msgstr "任何基于HTTP的测试系统都可用于测试WSGI服务器,但是有些测试框架与WSGI服务器工作得更好。它们可以在一个可控环境里运行WSGI应用,充分利用traceback和调试工具。 `Testing tools for WSGI <http://www.wsgi.org/en/latest/testing.html>`_ 是一个很好的上手工具。"

#: ../../recipes.rst:92
msgid ""
"Example using `WebTest <http://webtest.pythonpaste.org/>`_ and `Nose "
"<http://readthedocs.org/docs/nose>`_::"
msgstr "使用 `WebTest <http://webtest.pythonpaste.org/>`_ 和 `Nose <http://readthedocs.org/docs/nose>`_ 的例子。"

#: ../../recipes.rst:112
msgid "Embedding other WSGI Apps"
msgstr "嵌入其他WSGI应用"

#: ../../recipes.rst:114
msgid ""
"This is not the recommend way (you should use a middleware in front of "
"bottle to do this) but you can call other WSGI applications from within your"
" bottle app and let bottle act as a pseudo-middleware. Here is an example::"
msgstr "并不建议你使用这个方法,你应该在Bottle前面使用一个中间件来做这样的事情。但你确实可以在Bottle里面调用其他WSGI应用,让Bottle扮演一个中间件的角色。下面是一个例子。"

#: ../../recipes.rst:130
msgid ""
"Again, this is not the recommend way to implement subprojects. It is only "
"here because many people asked for this and to show how bottle maps to WSGI."
msgstr "再次强调,并不建议使用这种方法。之所以介绍这种方法,是因为很多人问起,如何在Bottle中调用WSGI应用。"

#: ../../recipes.rst:134
msgid "Ignore trailing slashes"
msgstr "忽略尾部的反斜杠"

#: ../../recipes.rst:136
msgid ""
"For Bottle, ``/example`` and ``/example/`` are two different routes [1]_. To"
" treat both URLs the same you can add two ``@route`` decorators::"
msgstr "在Bottle看来, ``/example`` 和 ``/example/`` 是两个不同的route [1]_ 。为了一致对待这两个URL,你应该添加两个route。"

#: ../../recipes.rst:142
msgid "add a WSGI middleware that strips trailing slashes from all URLs::"
msgstr ""

#: ../../recipes.rst:155
msgid "or add a ``before_request`` hook to strip the trailing slashes::"
msgstr ""

#: ../../recipes.rst:162
msgid "Footnotes"
msgstr "脚注"

#: ../../recipes.rst:163
msgid "Because they are. See <http://www.ietf.org/rfc/rfc3986.txt>"
msgstr "因为确实如此,见 <http://www.ietf.org/rfc/rfc3986.txt>"

#: ../../recipes.rst:167
msgid "Keep-alive requests"
msgstr "Keep-alive 请求"

#: ../../recipes.rst:171
msgid "For a more detailed explanation, see :doc:`async`."
msgstr "详见 :doc:`async` 。"

#: ../../recipes.rst:173
msgid ""
"Several \"push\" mechanisms like XHR multipart need the ability to write "
"response data without closing the connection in conjunction with the "
"response header \"Connection: keep-alive\". WSGI does not easily lend itself"
" to this behavior, but it is still possible to do so in Bottle by using the "
"gevent_ async framework. Here is a sample that works with either the gevent_"
" HTTP server or the paste_ HTTP server (it may work with others, but I have "
"not tried). Just change ``server='gevent'`` to ``server='paste'`` to use the"
" paste_ server::"
msgstr "像XHR这样的\"push\"机制,需要在HTTP响应头中加入 \"Connection: keep-alive\" ,以便在不关闭连接的情况下,写入响应数据。WSGI并不支持这种行为,但如果在Bottle中使用 gevent_ 这个异步框架,还是可以实现的。下面是一个例子,可配合 gevent_ HTTP服务器或 paste_ HTTP服务器使用(也许支持其他服务器,但是我没试过)。在run()函数里面使用 ``server='gevent'`` 或 ``server='paste'`` 即可使用这两种服务器。"

#: ../../recipes.rst:190
msgid ""
"If you browse to ``http://localhost:8080/stream``, you should see 'START', "
"'MIDDLE', and 'END' show up one at a time (rather than waiting 8 seconds to "
"see them all at once)."
msgstr "通过浏览器访问 ``http://localhost:8080/stream`` ,可看到'START','MIDDLE',和'END'这三个字眼依次出现,一共用了8秒。"

#: ../../recipes.rst:193
msgid "Gzip Compression in Bottle"
msgstr "Gzip压缩"

#: ../../recipes.rst:196
msgid "For a detailed discussion, see compression_"
msgstr "详见 compression_"

#: ../../recipes.rst:198
msgid ""
"A common feature request is for Bottle to support Gzip compression, which "
"speeds up sites by compressing static resources (like CSS and JS files) "
"during a request."
msgstr "Gzip压缩,可加速网站静态资源(例如CSS和JS文件)的访问。人们希望Bottle支持Gzip压缩,(但是不支持)......"

#: ../../recipes.rst:200
msgid ""
"Supporting Gzip compression is not a straightforward proposition, due to a "
"number of corner cases that crop up frequently. A proper Gzip implementation"
" must:"
msgstr "支持Gzip压缩并不简单,一个合适的Gzip实现应该满足以下条件。"

#: ../../recipes.rst:202
msgid "Compress on the fly and be fast doing so."
msgstr "压缩速度要快"

#: ../../recipes.rst:203
msgid "Do not compress for browsers that don't support it."
msgstr "如果浏览器不支持,则不压缩"

#: ../../recipes.rst:204
msgid "Do not compress files that are compressed already (images, videos)."
msgstr "不压缩那些已经充分压缩的文件(图像,视频)"

#: ../../recipes.rst:205
msgid "Do not compress dynamic files."
msgstr "不压缩动态文件"

#: ../../recipes.rst:206
msgid "Support two differed compression algorithms (gzip and deflate)."
msgstr "支持两种压缩算法(gzip和deflate)"

#: ../../recipes.rst:207
msgid "Cache compressed files that don't change often."
msgstr "缓存那些不经常变化的压缩文件"

#: ../../recipes.rst:208
msgid "De-validate the cache if one of the files changed anyway."
msgstr "不验证缓存中那些已经变化的文件(De-validate the cache if one of the files changed anyway)"

#: ../../recipes.rst:209
msgid "Make sure the cache does not get to big."
msgstr "确保缓存不太大"

#: ../../recipes.rst:210
msgid ""
"Do not cache small files because a disk seek would take longer than on-the-"
"fly compression."
msgstr "不缓存小文件,因为寻道时间或许比压缩时间还长"

#: ../../recipes.rst:212
msgid ""
"Because of these requirements, it is the recommendation of the Bottle "
"project that Gzip compression is best handled by the WSGI server Bottle runs"
" on top of. WSGI servers such as cherrypy_ provide a GzipFilter_ middleware "
"that can be used to accomplish this."
msgstr "因为有上述种种限制,建议由WSGI服务器来处理Gzip压缩而不是Bottle。像 cherrypy_ 就提供了一个 GzipFilter_ 中间件来处理Gzip压缩。"

#: ../../recipes.rst:216
msgid "Using the hooks plugin"
msgstr "使用钩子"

#: ../../recipes.rst:218
msgid ""
"For example, if you want to allow Cross-Origin Resource Sharing for the "
"content returned by all of your URL, you can use the hook decorator and "
"setup a callback function::"
msgstr "例如,你想提供跨域资源共享,可参考下面的例子。"

#: ../../recipes.rst:236
msgid ""
"You can also use the ``before_request`` to take an action before every "
"function gets called."
msgstr "你也可以使用 ``before_request`` ,这样在route的回调函数被调用之前,都会调用你的钩子函数。"

#: ../../recipes.rst:241
msgid "Using Bottle with Heroku"
msgstr "在Heroku中使用Bottle"

#: ../../recipes.rst:243
msgid ""
"Heroku_, a popular cloud application platform now provides support for "
"running Python applications on their infastructure."
msgstr "Heroku_ ,一个流行的云应用平台,提供Python支持。"

#: ../../recipes.rst:246
msgid ""
"This recipe is based upon the `Heroku Quickstart "
"<http://devcenter.heroku.com/articles/quickstart>`_, with Bottle specific "
"code replacing the `Write Your App "
"<http://devcenter.heroku.com/articles/python#write_your_app>`_ section of "
"the `Getting Started with Python on Heroku/Cedar "
"<http://devcenter.heroku.com/articles/python>`_ guide::"
msgstr "这份教程基于 `Heroku Quickstart <http://devcenter.heroku.com/articles/quickstart>`_, 用Bottle特有的代码替换了 `Getting Started with Python on Heroku/Cedar <http://devcenter.heroku.com/articles/python>`_ 中的`Write Your App <http://devcenter.heroku.com/articles/python#write_your_app>`_ 这部分::"

#: ../../recipes.rst:262
msgid ""
"Heroku's app stack passes the port that the application needs to listen on "
"for requests, using the `os.environ` dictionary."
msgstr "Heroku使用 `os.environ` 字典来提供Bottle应用需要监听的端口。"