diff options
Diffstat (limited to 'docs/_locale/zh_CN/LC_MESSAGES/recipes.po')
-rw-r--r-- | docs/_locale/zh_CN/LC_MESSAGES/recipes.po | 115 |
1 files changed, 66 insertions, 49 deletions
diff --git a/docs/_locale/zh_CN/LC_MESSAGES/recipes.po b/docs/_locale/zh_CN/LC_MESSAGES/recipes.po index 187dd18..dd0c92a 100644 --- a/docs/_locale/zh_CN/LC_MESSAGES/recipes.po +++ b/docs/_locale/zh_CN/LC_MESSAGES/recipes.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2009-2017, Marcel Hellkamp +# Copyright (C) 2009-2020, Marcel Hellkamp # This file is distributed under the same license as the Bottle package. # # Translators: @@ -7,8 +7,8 @@ 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" +"POT-Creation-Date: 2020-12-31 18:35+0100\n" +"PO-Revision-Date: 2020-12-31 17:35+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" @@ -38,11 +38,22 @@ msgid "" "yourself. Here is an example for beaker sessions with a file-based backend::" msgstr "Bottle自身并没有提供Session的支持,因为在一个迷你框架里面,没有合适的方法来实现。根据需求和使用环境,你可以使用 beaker_ 中间件或自己来实现。下面是一个使用beaker的例子,Session数据存放在\"./data\"目录里面::" -#: ../../recipes.rst:46 +#: ../../recipes.rst:45 +msgid "" +"WARNING: Beaker's SessionMiddleware is not thread safe. If two concurrent " +"requests modify the same session at the same time, one of the updates might " +"get lost. For this reason, sessions should only be populated once and " +"treated as a read-only store after that. If you find yourself updating " +"sessions regularly, and don't want to risk losing any updates, think about " +"using a real database instead or seek alternative session middleware " +"libraries." +msgstr "" + +#: ../../recipes.rst:49 msgid "Debugging with Style: Debugging Middleware" msgstr "Debugging with Style: 调试中间件" -#: ../../recipes.rst:48 +#: ../../recipes.rst:51 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 " @@ -50,14 +61,14 @@ msgid "" " this behaviour::" msgstr "Bottle捕获所有应用抛出的异常,防止异常导致WSGI服务器崩溃。如果内置的 :func:`debug` 模式不能满足你的要求,你想在你自己写的中间件里面处理这些异常,那么你可以关闭这个功能。" -#: ../../recipes.rst:56 +#: ../../recipes.rst:59 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 +#: ../../recipes.rst:61 msgid "" "The werkzeug_ and paste_ libraries both ship with very powerful debugging " "WSGI middleware. Look at :class:`werkzeug.debug.DebuggedApplication` for " @@ -66,35 +77,41 @@ msgid "" "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 +#: ../../recipes.rst:65 msgid "Unit-Testing Bottle Applications" msgstr "" -#: ../../recipes.rst:64 +#: ../../recipes.rst:67 msgid "" "Unit-testing is usually performed against methods defined in your web " "application without running a WSGI environment." msgstr "Unit测试一般用于测试应用中的函数,但不需要一个WSGI环境。" -#: ../../recipes.rst:66 +#: ../../recipes.rst:69 msgid "A simple example using `Nose <http://readthedocs.org/docs/nose>`_::" msgstr "使用 `Nose <http://readthedocs.org/docs/nose>`_ 的简单例子。" -#: ../../recipes.rst:77 +#: ../../recipes.rst:80 ../../recipes.rst:97 msgid "Test script::" msgstr "测试代码::" -#: ../../recipes.rst:84 +#: ../../recipes.rst:87 msgid "" "In the example the Bottle route() method is never executed - only index() is" " tested." msgstr "在这个例子中,Bottle的route()函数没有被执行,仅测试了index()函数。" -#: ../../recipes.rst:88 +#: ../../recipes.rst:89 +msgid "" +"If the code being tested requires access to ``bottle.request`` you can mock " +"it using `Boddle <https://github.com/keredson/boddle>`_::" +msgstr "" + +#: ../../recipes.rst:108 msgid "Functional Testing Bottle Applications" msgstr "功能测试" -#: ../../recipes.rst:90 +#: ../../recipes.rst:110 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 " @@ -103,64 +120,64 @@ msgid "" "<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 +#: ../../recipes.rst:112 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 +#: ../../recipes.rst:132 msgid "Embedding other WSGI Apps" msgstr "嵌入其他WSGI应用" -#: ../../recipes.rst:114 +#: ../../recipes.rst:134 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 +#: ../../recipes.rst:150 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 +#: ../../recipes.rst:154 msgid "Ignore trailing slashes" msgstr "忽略尾部的反斜杠" -#: ../../recipes.rst:136 +#: ../../recipes.rst:156 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 +#: ../../recipes.rst:162 msgid "add a WSGI middleware that strips trailing slashes from all URLs::" msgstr "" -#: ../../recipes.rst:155 +#: ../../recipes.rst:175 msgid "or add a ``before_request`` hook to strip the trailing slashes::" msgstr "" -#: ../../recipes.rst:162 +#: ../../recipes.rst:182 msgid "Footnotes" msgstr "脚注" -#: ../../recipes.rst:163 +#: ../../recipes.rst:183 msgid "Because they are. See <http://www.ietf.org/rfc/rfc3986.txt>" msgstr "因为确实如此,见 <http://www.ietf.org/rfc/rfc3986.txt>" -#: ../../recipes.rst:167 +#: ../../recipes.rst:187 msgid "Keep-alive requests" msgstr "Keep-alive 请求" -#: ../../recipes.rst:171 +#: ../../recipes.rst:191 msgid "For a more detailed explanation, see :doc:`async`." msgstr "详见 :doc:`async` 。" -#: ../../recipes.rst:173 +#: ../../recipes.rst:193 msgid "" "Several \"push\" mechanisms like XHR multipart need the ability to write " "response data without closing the connection in conjunction with the " @@ -172,74 +189,74 @@ msgid "" " paste_ server::" msgstr "像XHR这样的\"push\"机制,需要在HTTP响应头中加入 \"Connection: keep-alive\" ,以便在不关闭连接的情况下,写入响应数据。WSGI并不支持这种行为,但如果在Bottle中使用 gevent_ 这个异步框架,还是可以实现的。下面是一个例子,可配合 gevent_ HTTP服务器或 paste_ HTTP服务器使用(也许支持其他服务器,但是我没试过)。在run()函数里面使用 ``server='gevent'`` 或 ``server='paste'`` 即可使用这两种服务器。" -#: ../../recipes.rst:190 +#: ../../recipes.rst:210 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 +#: ../../recipes.rst:213 msgid "Gzip Compression in Bottle" msgstr "Gzip压缩" -#: ../../recipes.rst:196 +#: ../../recipes.rst:216 msgid "For a detailed discussion, see compression_" msgstr "详见 compression_" -#: ../../recipes.rst:198 +#: ../../recipes.rst:218 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 +#: ../../recipes.rst:220 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 +#: ../../recipes.rst:222 msgid "Compress on the fly and be fast doing so." msgstr "压缩速度要快" -#: ../../recipes.rst:203 +#: ../../recipes.rst:223 msgid "Do not compress for browsers that don't support it." msgstr "如果浏览器不支持,则不压缩" -#: ../../recipes.rst:204 +#: ../../recipes.rst:224 msgid "Do not compress files that are compressed already (images, videos)." msgstr "不压缩那些已经充分压缩的文件(图像,视频)" -#: ../../recipes.rst:205 +#: ../../recipes.rst:225 msgid "Do not compress dynamic files." msgstr "不压缩动态文件" -#: ../../recipes.rst:206 +#: ../../recipes.rst:226 msgid "Support two differed compression algorithms (gzip and deflate)." msgstr "支持两种压缩算法(gzip和deflate)" -#: ../../recipes.rst:207 +#: ../../recipes.rst:227 msgid "Cache compressed files that don't change often." msgstr "缓存那些不经常变化的压缩文件" -#: ../../recipes.rst:208 +#: ../../recipes.rst:228 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 +#: ../../recipes.rst:229 msgid "Make sure the cache does not get to big." msgstr "确保缓存不太大" -#: ../../recipes.rst:210 +#: ../../recipes.rst:230 msgid "" "Do not cache small files because a disk seek would take longer than on-the-" "fly compression." msgstr "不缓存小文件,因为寻道时间或许比压缩时间还长" -#: ../../recipes.rst:212 +#: ../../recipes.rst:232 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" @@ -247,34 +264,34 @@ msgid "" "that can be used to accomplish this." msgstr "因为有上述种种限制,建议由WSGI服务器来处理Gzip压缩而不是Bottle。像 cherrypy_ 就提供了一个 GzipFilter_ 中间件来处理Gzip压缩。" -#: ../../recipes.rst:216 +#: ../../recipes.rst:236 msgid "Using the hooks plugin" msgstr "使用钩子" -#: ../../recipes.rst:218 +#: ../../recipes.rst:238 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 +#: ../../recipes.rst:256 msgid "" "You can also use the ``before_request`` to take an action before every " "function gets called." msgstr "你也可以使用 ``before_request`` ,这样在route的回调函数被调用之前,都会调用你的钩子函数。" -#: ../../recipes.rst:241 +#: ../../recipes.rst:261 msgid "Using Bottle with Heroku" msgstr "在Heroku中使用Bottle" -#: ../../recipes.rst:243 +#: ../../recipes.rst:263 msgid "" "Heroku_, a popular cloud application platform now provides support for " "running Python applications on their infastructure." msgstr "Heroku_ ,一个流行的云应用平台,提供Python支持。" -#: ../../recipes.rst:246 +#: ../../recipes.rst:266 msgid "" "This recipe is based upon the `Heroku Quickstart " "<http://devcenter.heroku.com/articles/quickstart>`_, with Bottle specific " @@ -284,7 +301,7 @@ msgid "" "<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 +#: ../../recipes.rst:282 msgid "" "Heroku's app stack passes the port that the application needs to listen on " "for requests, using the `os.environ` dictionary." |