diff options
Diffstat (limited to 'docs/_locale/pt_BR')
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/api.po | 150 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/async.po | 4 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/changelog.po | 491 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/configuration.po | 130 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/contact.po | 12 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/deployment.po | 193 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/development.po | 93 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/faq.po | 19 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/index.po | 70 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/plugindev.po | 10 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/plugins/index.po | 190 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/recipes.po | 115 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/routing.po | 67 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/stpl.po | 60 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/tutorial.po | 297 | ||||
-rw-r--r-- | docs/_locale/pt_BR/LC_MESSAGES/tutorial_app.po | 359 |
16 files changed, 1384 insertions, 876 deletions
diff --git a/docs/_locale/pt_BR/LC_MESSAGES/api.po b/docs/_locale/pt_BR/LC_MESSAGES/api.po index 29d2d1b..bad88ac 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/api.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/api.po @@ -1,15 +1,16 @@ # 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: # Igor P. Leroy <ip.leroy@gmail.com>, 2015 +# john snow <mfrcouto@hotmail.com>, 2017 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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -30,7 +31,7 @@ msgstr "" #: ../../api.rst:17 msgid "Module Contents" -msgstr "" +msgstr "Conteúdo dos Módulos" #: ../../api.rst:19 msgid "The module defines several functions, constants, and an exception." @@ -47,6 +48,22 @@ msgid "" "Start a server instance. This method blocks until the server terminates." msgstr "" +#: ../../../bottle.pydocstring of bottle.run:0 ../../../bottle.pydocstring of +#: bottle.path_shift:0 ../../../bottle.pydocstring of bottle.MultiDict.get:0 +#: ../../../bottle.pydocstring of bottle.HeaderDict.get:0 +#: ../../../bottle.pydocstring of bottle.ResourceManager:0 +#: ../../../bottle.pydocstring of bottle.ResourceManager.add_path:0 +#: ../../../bottle.pydocstring of bottle.FileUpload.save:0 +#: ../../../bottle.pydocstring of bottle.Bottle:0 ../../../bottle.pydocstring +#: of bottle.Bottle.mount:0 ../../../bottle.pydocstring of +#: bottle.Bottle.route:0 ../../../bottle.pydocstring of +#: bottle.BaseRequest.path_shift:0 ../../../bottle.pydocstring of +#: bottle.BaseResponse:0 ../../../bottle.pydocstring of +#: bottle.BaseResponse.set_cookie:0 ../../../bottle.pydocstring of +#: bottle.BaseResponse.set_cookie:0 +msgid "Parameters" +msgstr "" + #: ../../../bottle.pydocstring of bottle.run:3 msgid "" "WSGI application or target string supported by :func:`load_app`. (default: " @@ -202,6 +219,10 @@ msgstr "" msgid "Shift path fragments from PATH_INFO to SCRIPT_NAME and vice versa." msgstr "" +#: ../../../bottle.pydocstring of bottle.path_shift:0 +msgid "Returns" +msgstr "" + #: ../../../bottle.pydocstring of bottle.path_shift:3 msgid "The modified paths." msgstr "" @@ -231,40 +252,59 @@ msgid "" "special methods available to access the full list of values." msgstr "" +#: ../../../bottle.pydocstring of bottle.MultiDict.keys:1 +msgid "D.keys() -> a set-like object providing a view on D's keys" +msgstr "" + +#: ../../../bottle.pydocstring of bottle.MultiDict.values:1 +msgid "D.values() -> an object providing a view on D's values" +msgstr "" + +#: ../../../bottle.pydocstring of bottle.MultiDict.items:1 +msgid "D.items() -> a set-like object providing a view on D's items" +msgstr "" + #: ../../../bottle.pydocstring of bottle.MultiDict.get:1 +#: ../../../bottle.pydocstring of bottle.HeaderDict.get:1 msgid "Return the most recent value for a key." msgstr "" #: ../../../bottle.pydocstring of bottle.MultiDict.get:3 +#: ../../../bottle.pydocstring of bottle.HeaderDict.get:3 msgid "" "The default value to be returned if the key is not present or the type " "conversion fails." msgstr "" #: ../../../bottle.pydocstring of bottle.MultiDict.get:5 +#: ../../../bottle.pydocstring of bottle.HeaderDict.get:5 msgid "An index for the list of available values." msgstr "" #: ../../../bottle.pydocstring of bottle.MultiDict.get:6 +#: ../../../bottle.pydocstring of bottle.HeaderDict.get:6 msgid "" "If defined, this callable is used to cast the value into a specific type. " "Exception are suppressed and result in the default value to be returned." msgstr "" #: ../../../bottle.pydocstring of bottle.MultiDict.append:1 +#: ../../../bottle.pydocstring of bottle.HeaderDict.append:1 msgid "Add a new value to the list of values for this key." msgstr "" #: ../../../bottle.pydocstring of bottle.MultiDict.replace:1 +#: ../../../bottle.pydocstring of bottle.HeaderDict.replace:1 msgid "Replace the list of values with a single value." msgstr "" #: ../../../bottle.pydocstring of bottle.MultiDict.getall:1 -#: ../../../bottle.pydocstring of bottle.MultiDict.getlist:1 +#: ../../../bottle.pydocstring of bottle.MultiDict.getall:1 +#: ../../../bottle.pydocstring of bottle.HeaderDict.getall:1 msgid "Return a (possibly empty) list of values for a key." msgstr "" -#: ../../../bottle.pydocstring of bottle.MultiDict.getone:1 +#: ../../../bottle.pydocstring of bottle.MultiDict.get:1 msgid "Aliases for WTForms to mimic other multi-dict APIs (Django)" msgstr "" @@ -338,6 +378,7 @@ msgid "Return the current default application and remove it from the stack." msgstr "" #: ../../../bottle.pydocstring of bottle.AppStack.push:1 +#: ../../../bottle.pydocstring of bottle.AppStack.push:1 msgid "Add a new :class:`Bottle` instance to the stack" msgstr "" @@ -359,11 +400,11 @@ msgstr "" msgid "controls which lookups are cached. One of 'all', 'found' or 'none'." msgstr "" -#: ../../../bottle.pydocstring of bottle.ResourceManager.path:1 +#: ../docstring of bottle.ResourceManager.path:1 msgid "A list of search paths. See :meth:`add_path` for details." msgstr "" -#: ../../../bottle.pydocstring of bottle.ResourceManager.cache:1 +#: ../docstring of bottle.ResourceManager.cache:1 msgid "A cache for resolved paths. ``res.cache.clear()`` clears the cache." msgstr "" @@ -404,7 +445,7 @@ msgstr "" #: ../../../bottle.pydocstring of bottle.ResourceManager.lookup:3 msgid "" -"The :attr:`path` list is searched in order. The first match is returend. " +"The :attr:`path` list is searched in order. The first match is returned. " "Symlinks are followed. The result is cached to speed up future lookups." msgstr "" @@ -412,19 +453,19 @@ msgstr "" msgid "Find a resource and return a file object, or raise IOError." msgstr "" -#: ../../../bottle.pydocstring of bottle.FileUpload.file:1 +#: ../docstring of bottle.FileUpload.file:1 msgid "Open file(-like) object (BytesIO buffer or temporary file)" msgstr "" -#: ../../../bottle.pydocstring of bottle.FileUpload.name:1 +#: ../docstring of bottle.FileUpload.name:1 msgid "Name of the upload form field" msgstr "" -#: ../../../bottle.pydocstring of bottle.FileUpload.raw_filename:1 +#: ../docstring of bottle.FileUpload.raw_filename:1 msgid "Raw filename as sent by the client (may contain unsafe characters)" msgstr "" -#: ../../../bottle.pydocstring of bottle.FileUpload.headers:1 +#: ../docstring of bottle.FileUpload.headers:1 msgid "A :class:`HeaderDict` with additional headers (e.g. content-type)" msgstr "" @@ -438,6 +479,10 @@ msgstr "" msgid "Current value of the 'Content-Length' header." msgstr "" +#: ../../../bottle.pydocstring of bottle.FileUpload.get_header:1 +msgid "Return the value of a header within the mulripart part." +msgstr "" + #: ../../../bottle.pydocstring of bottle.FileUpload.filename:1 msgid "" "Name of the file on the client file system, but normalized to ensure file " @@ -496,11 +541,11 @@ msgid "" "middleware handle exceptions." msgstr "" -#: ../../../bottle.pydocstring of bottle.Bottle.config:1 +#: ../docstring of bottle.Bottle.config:1 msgid "A :class:`ConfigDict` for app specific configuration." msgstr "" -#: ../../../bottle.pydocstring of bottle.Bottle.resources:1 +#: ../docstring of bottle.Bottle.resources:1 msgid "A :class:`ResourceManager` for application files" msgstr "" @@ -624,7 +669,7 @@ msgstr "" #: ../../../bottle.pydocstring of bottle.Bottle.match:1 msgid "" -"Search for a matching route and return a (:class:`Route` , urlargs) tuple. " +"Search for a matching route and return a (:class:`Route`, urlargs) tuple. " "The second value is a dictionary with parameters extracted from the URL. " "Raise :exc:`HTTPError` (404/405) on a non-match." msgstr "" @@ -707,7 +752,9 @@ msgid "Equals :meth:`route` with a ``PATCH`` method parameter." msgstr "" #: ../../../bottle.pydocstring of bottle.Bottle.error:1 -msgid "Decorator: Register an output handler for a HTTP error code" +msgid "" +"Register an output handler for a HTTP error code. Can be used as a decorator" +" or called directly ::" msgstr "" #: ../../../bottle.pydocstring of bottle.Bottle.wsgi:1 @@ -718,40 +765,40 @@ msgstr "" msgid "" "This class wraps a route callback along with route specific metadata and " "configuration and applies Plugins on demand. It is also responsible for " -"turing an URL path rule into a regular expression usable by the Router." +"turning an URL path rule into a regular expression usable by the Router." msgstr "" -#: ../../../bottle.pydocstring of bottle.Route.app:1 +#: ../docstring of bottle.Route.app:1 msgid "The application this route is installed to." msgstr "" -#: ../../../bottle.pydocstring of bottle.Route.rule:1 +#: ../docstring of bottle.Route.rule:1 msgid "The path-rule string (e.g. ``/wiki/<page>``)." msgstr "" -#: ../../../bottle.pydocstring of bottle.Route.method:1 +#: ../docstring of bottle.Route.method:1 msgid "The HTTP method as a string (e.g. ``GET``)." msgstr "" -#: ../../../bottle.pydocstring of bottle.Route.callback:1 +#: ../docstring of bottle.Route.callback:1 msgid "" "The original callback with no plugins applied. Useful for introspection." msgstr "" -#: ../../../bottle.pydocstring of bottle.Route.name:1 +#: ../docstring of bottle.Route.name:1 msgid "The name of the route (if specified) or ``None``." msgstr "" -#: ../../../bottle.pydocstring of bottle.Route.plugins:1 +#: ../docstring of bottle.Route.plugins:1 msgid "A list of route-specific plugins (see :meth:`Bottle.route`)." msgstr "" -#: ../../../bottle.pydocstring of bottle.Route.skiplist:1 +#: ../docstring of bottle.Route.skiplist:1 msgid "" "A list of plugins to not apply to this route (see :meth:`Bottle.route`)." msgstr "" -#: ../../../bottle.pydocstring of bottle.Route.config:1 +#: ../docstring of bottle.Route.config:1 msgid "" "Additional keyword arguments passed to the :meth:`Bottle.route` decorator " "are stored in this dictionary. Used for route-specific plugin configuration " @@ -906,10 +953,10 @@ msgstr "" #: ../../../bottle.pydocstring of bottle.BaseRequest.json:1 msgid "" -"If the ``Content-Type`` header is ``application/json``, this property holds " -"the parsed content of the request body. Only requests smaller than " -":attr:`MEMFILE_MAX` are processed to avoid memory exhaustion. Invalid JSON " -"raises a 400 error response." +"If the ``Content-Type`` header is ``application/json`` or ``application" +"/json-rpc``, this property holds the parsed content of the request body. " +"Only requests smaller than :attr:`MEMFILE_MAX` are processed to avoid memory" +" exhaustion. Invalid JSON raises a 400 error response." msgstr "" #: ../../../bottle.pydocstring of bottle.BaseRequest.body:1 @@ -925,7 +972,7 @@ msgstr "" msgid "True if Chunked transfer encoding was." msgstr "" -#: ../../../bottle.pydocstring of bottle.BaseRequest.GET:1 +#: ../../../bottle.pydocstring of bottle.BaseRequest.query:1 msgid "An alias for :attr:`query`." msgstr "" @@ -968,7 +1015,7 @@ msgid "" msgstr "" #: ../../../bottle.pydocstring of bottle.BaseRequest.path_shift:2 -msgid "Shift path segments from path to script_name and" +msgid "Shift path segments from :attr:`path` to :attr:`script_name` and" msgstr "" #: ../../../bottle.pydocstring of bottle.BaseRequest.path_shift:2 @@ -1048,15 +1095,10 @@ msgid "" "multithreaded server)." msgstr "" -#: ../../../bottle.pydocstring of bottle.LocalRequest.bind:1 +#: ../../../bottle.pydocstring of bottle.BaseRequest.__init__:1 msgid "Wrap a WSGI environ dictionary." msgstr "" -#: ../../../bottle.pydocstring of bottle.LocalRequest.environ:1 -#: ../../../bottle.pydocstring of bottle.LocalResponse.body:1 -msgid "Thread-local property" -msgstr "" - #: ../../api.rst:146 msgid "The :class:`Response` Object" msgstr "" @@ -1212,23 +1254,37 @@ msgstr "" #: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:17 msgid "" "prevents client-side javascript to read this cookie (default: off, requires " -"Python 2.7 or newer)." +"Python 2.6 or newer)." msgstr "" -#: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:20 +#: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:19 msgid "" -"If neither `expires` nor `max_age` is set (default), the cookie will expire " +"Control or disable third-party use for this cookie. Possible values: `lax`, " +"`strict` or `none` (default)." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:22 +msgid "" +"If neither `expires` nor `maxage` is set (default), the cookie will expire " "at the end of the browser session (as soon as the browser window is closed)." msgstr "" -#: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:24 +#: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:26 msgid "" "Signed cookies may store any pickle-able object and are cryptographically " "signed to prevent manipulation. Keep in mind that cookies are limited to 4kb" " in most browsers." msgstr "" -#: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:28 +#: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:30 +msgid "" +"Warning: Pickle is a potentially dangerous format. If an attacker gains " +"access to the secret key, he could forge cookies that execute code on server" +" side if unpickled. Using pickle is discouraged and support for it will be " +"removed in later versions of bottle." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.BaseResponse.set_cookie:35 msgid "" "Warning: Signed cookies are not encrypted (the client can still see the " "content) and not copy-protected (the client can restore an old cookie). The " @@ -1250,6 +1306,14 @@ msgid "" "response at the end of the request/response cycle." msgstr "" +#: ../../../bottle.pydocstring of bottle.BaseResponse.__init__:1 +msgid "Initialize self. See help(type(self)) for accurate signature." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.LocalResponse.body:1 +msgid "Thread-local property" +msgstr "" + #: ../../api.rst:160 msgid "" "The following two classes can be raised as an exception. The most noticeable" diff --git a/docs/_locale/pt_BR/LC_MESSAGES/async.po b/docs/_locale/pt_BR/LC_MESSAGES/async.po index 193b722..e12cf7b 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/async.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/async.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,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: bottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-19 14:15+0100\n" +"POT-Creation-Date: 2020-12-31 18:35+0100\n" "PO-Revision-Date: 2015-01-22 19:17+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" diff --git a/docs/_locale/pt_BR/LC_MESSAGES/changelog.po b/docs/_locale/pt_BR/LC_MESSAGES/changelog.po index 413c231..0b85b47 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/changelog.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/changelog.po @@ -1,15 +1,15 @@ # 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: 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-01-22 19:17+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,28 +25,281 @@ msgstr "" msgid "Release 0.13" msgstr "" -#: ../../changelog.rst:13 -msgid "Added :func:`patch` shortcut for `route(..., method='PATCH')`" +#: ../../changelog.rst:11 +msgid "Not released yet." msgstr "" -#: ../../changelog.rst:17 -msgid "Release 0.12" +#: ../../changelog.rst:14 +msgid "Dropped support for Python versions that reached their end-of-life." msgstr "" -#: ../../changelog.rst:19 +#: ../../changelog.rst:15 msgid "" -"New SimpleTemplate parser implementation * Support for multi-line code " -"blocks (`<% ... %>`). * The keywords `include` and `rebase` are functions " -"now and can accept variable template names." +"Keeping up support for ancient Python versions hinders adaptation of new " +"features and serves no real purpose. If you need support for older Python " +"versions, you can stay on bottle-0.12. The updated list of tested and " +"supported python releases is as follows:" +msgstr "" + +#: ../../changelog.rst:20 +msgid "Python 2.7 (>= 2.7.3)" +msgstr "" + +#: ../../changelog.rst:21 +msgid "Python 3.6" msgstr "" #: ../../changelog.rst:22 +msgid "Python 3.7" +msgstr "" + +#: ../../changelog.rst:23 +msgid "Python 3.8" +msgstr "" + +#: ../../changelog.rst:24 +msgid "Python 3.9" +msgstr "" + +#: ../../changelog.rst:25 +msgid "PyPy 2.7" +msgstr "" + +#: ../../changelog.rst:26 +msgid "PyPy 3.6" +msgstr "" + +#: ../../changelog.rst:27 +msgid "PyPy 3.7" +msgstr "" + +#: ../../changelog.rst:29 +msgid "" +"Support for Python 2.5 was marked as deprecated since 0.12. We decided to go" +" a step further and also remove support for 2.6 and 3.1 to 3.5 even if it " +"was never deprecated explicitly in bottle. This means that this release is " +"*not* backwards compatible in Python <2.7.3 or <3.6 environments. " +"Maintainers for distributions or systems that still use these old python " +"versions should not update to Bottle 0.13 and stick with 0.12 instead." +msgstr "" + +#: ../../changelog.rst:35 +msgid "Stabilized APIs" +msgstr "" + +#: ../../changelog.rst:36 +msgid "" +"The documented API of the :class:`ConfigDict` class is now considered stable" +" and ready to use." +msgstr "" + +#: ../../changelog.rst:38 +msgid "Deprecated APIs" +msgstr "" + +#: ../../changelog.rst:39 +msgid "" +"The old route syntax (``/hello/:name``) is deprecated in favor of the more " +"readable and flexible ``/hello/<name>`` syntax." +msgstr "" + +#: ../../changelog.rst:40 +msgid "" +":meth:`Bottle.mount` now recognizes Bottle instance and will warn about " +"parameters that are not compatible with the new mounting behavior. The old " +"behavior (mount applications as WSGI callable) still works and is used as a " +"fallback automatically." +msgstr "" + +#: ../../changelog.rst:41 +msgid "The undocumented :func:`local_property` helper is now deprecated." +msgstr "" + +#: ../../changelog.rst:42 +msgid "" +"The server adapter for google app engine is not useful anymore and marked as" +" deprecated." +msgstr "" + +#: ../../changelog.rst:43 +msgid "" +"Bottle uses pickle to store arbitrary objects into signed cookies. This is " +"safe, as long as the signature key remains a secret. Unfortunately, people " +"tend to push code with signature keys to github all the time, so we decided " +"to remove pickle-support from bottle. Signed cookies will now issue a " +"deprecation warning if the value is not a string, and support for non-string" +" values will be removed in 0.14. The global :func:`cookie_encode`, " +":func:`cookie_decode` and :func:`is_cookie_encoded` are now also deprecated." +" If you are using this feature, think about using json to serialize your " +"objects before storing them into cookies, or switch to a session system that" +" stores data server-side instead of client-side." +msgstr "" + +#: ../../changelog.rst:45 +msgid "Removed APIs (deprecated since 0.12)" +msgstr "" + +#: ../../changelog.rst:46 +msgid "" +"Plugins with the old API (``api=1`` or no api attribute) will no longer " +"work." +msgstr "" + +#: ../../changelog.rst:47 +msgid "" +"Parameter order of :meth:`Bottle.mount` changed in 0.10. The old order will " +"now result in an error instead of a warning." +msgstr "" + +#: ../../changelog.rst:48 +msgid "" +"The :class:`ConfigDict` class was introduced in 0.11 and changed during " +"0.12. These changes are now final." +msgstr "" + +#: ../../changelog.rst:50 +msgid "" +"Attribute access and assignment was removed due to high overhead and limited" +" usability." +msgstr "" + +#: ../../changelog.rst:51 +msgid "" +"Namespaced sub-instance creation was removed. ``config[\"a\"][\"b\"]`` has a" +" high overhead and little benefit over ``config[\"a.b\"]``." +msgstr "" + +#: ../../changelog.rst:52 +msgid "" +":class:`ConfigDict` instances are no longer callable. This was a shortcut " +"for :meth:`ConfigDict.update`." +msgstr "" + +#: ../../changelog.rst:53 +msgid "" +":class:`ConfigDict` constructor no longer accepts any parameters. Use the " +"`load_*` methods instead." +msgstr "" + +#: ../../changelog.rst:55 +msgid "" +"Bottle 0.12 changed some aspects of the Simple Template Engine. These " +"changes are now final and the old syntax will now longer work." +msgstr "" + +#: ../../changelog.rst:57 +msgid "" +"The magic ``{{rebase()}}`` call was replaced by a ``base`` variable. " +"Example: ``{{base}}``" +msgstr "" + +#: ../../changelog.rst:58 +msgid "" +"In STPL Templates, the 'rebase' and 'include' keywords were replaced with " +"functions in 0.12." +msgstr "" + +#: ../../changelog.rst:59 +msgid "" +"PEP-263 encoding strings are no longer recognized. Templates are always " +"utf-8." +msgstr "" + +#: ../../changelog.rst:61 +msgid "" +"The 'geventSocketIO' server adapter was removed without notice. It did not " +"work anyway." +msgstr "" + +#: ../../changelog.rst:63 +msgid "Changes" +msgstr "" + +#: ../../changelog.rst:64 +msgid "These changes might require special care when updating." +msgstr "" + +#: ../../changelog.rst:66 +msgid "" +"Signed cookies now use a stronger HMAC algorithm by default. This will " +"result in old cookies to appear invalid after the update. Pass an explicit " +"``digestmod=hashlib.md5`` to :meth:`Request.get_cookie` and " +":meth:`Response.set_cookie` to get the old behavior." +msgstr "" + +#: ../../changelog.rst:68 +msgid "Other Improvements" +msgstr "" + +#: ../../changelog.rst:69 +msgid "" +"Bottle() instances are now context managers. If used in a with-statement, " +"the default application changes to the specific instance and the shortcuts " +"for many instance methods can be used." +msgstr "" + +#: ../../changelog.rst:70 +msgid "" +"Added support for ``PATCH`` requests and the :meth:`Bottle.patch` decorator." +msgstr "" + +#: ../../changelog.rst:71 +msgid "" +"Added `aiohttp <http://aiohttp.readthedocs.io/en/stable/>`_ and `uvloop " +"<https://github.com/MagicStack/uvloop>`_ server adapters." +msgstr "" + +#: ../../changelog.rst:72 +msgid "Added command-line arguments for config from json or ini files." +msgstr "" + +#: ../../changelog.rst:73 +msgid "" +":meth:`Bottle.mount` now recognizes instances of :class:`Bottle` and mounts " +"them with significantly less overhead than other WSGI applications." +msgstr "" + +#: ../../changelog.rst:74 +msgid "" +"The :attr:`Request.json` property now accepts ``application/json-rpc`` " +"requests." +msgstr "" + +#: ../../changelog.rst:75 +msgid "" +":func:`static_file` gained support for ``ETag`` headers. It will generate " +"ETags and recognizes ``If-None-Match`` headers." +msgstr "" + +#: ../../changelog.rst:76 +msgid "Jinja2 templates will produce better error messages than before." +msgstr "" + +#: ../../changelog.rst:82 +msgid "Release 0.12" +msgstr "" + +#: ../../changelog.rst:84 +msgid "New SimpleTemplate parser implementation" +msgstr "" + +#: ../../changelog.rst:86 +msgid "Support for multi-line code blocks (`<% ... %>`)." +msgstr "" + +#: ../../changelog.rst:87 +msgid "" +"The keywords `include` and `rebase` are functions now and can accept " +"variable template names." +msgstr "" + +#: ../../changelog.rst:89 msgid "" -"The new :meth:`BaseRequest.route` property returns the :class:`Route` that " +"The new :attr:`BaseRequest.route` property returns the :class:`Route` that " "originally matched the request." msgstr "" -#: ../../changelog.rst:23 +#: ../../changelog.rst:90 msgid "" "Removed the ``BaseRequest.MAX_PARAMS`` limit. The hash collision bug in " "CPythons dict() implementation was fixed over a year ago. If you are still " @@ -54,69 +307,69 @@ msgid "" "that you get security fixed from your distributor." msgstr "" -#: ../../changelog.rst:24 +#: ../../changelog.rst:91 msgid "New :class:`ConfigDict` API (see :doc:`configuration`)" msgstr "" -#: ../../changelog.rst:26 +#: ../../changelog.rst:93 msgid "" "More information can be found in this `development blog post " "<http://blog.bottlepy.org/2013/07/19/preview-bottle-012.html>`_." msgstr "" -#: ../../changelog.rst:30 +#: ../../changelog.rst:97 msgid "Release 0.11" msgstr "" -#: ../../changelog.rst:32 +#: ../../changelog.rst:99 msgid "" "Native support for Python 2.x and 3.x syntax. No need to run 2to3 anymore." msgstr "" -#: ../../changelog.rst:33 +#: ../../changelog.rst:100 msgid "" "Support for partial downloads (``Range`` header) in :func:`static_file`." msgstr "" -#: ../../changelog.rst:34 +#: ../../changelog.rst:101 msgid "" "The new :class:`ResourceManager` interface helps locating files bundled with" " an application." msgstr "" -#: ../../changelog.rst:35 +#: ../../changelog.rst:102 msgid "" "Added a server adapter for `waitress " "<http://docs.pylonsproject.org/projects/waitress/en/latest/>`_." msgstr "" -#: ../../changelog.rst:36 +#: ../../changelog.rst:103 msgid "" "New :meth:`Bottle.merge` method to install all routes from one application " "into another." msgstr "" -#: ../../changelog.rst:37 +#: ../../changelog.rst:104 msgid "" "New :attr:`BaseRequest.app` property to get the application object that " "handles a request." msgstr "" -#: ../../changelog.rst:38 +#: ../../changelog.rst:105 msgid "" "Added :meth:`FormsDict.decode()` to get an all-unicode version (needed by " "WTForms)." msgstr "" -#: ../../changelog.rst:39 +#: ../../changelog.rst:106 msgid ":class:`MultiDict` and subclasses are now pickle-able." msgstr "" -#: ../../changelog.rst:42 +#: ../../changelog.rst:109 msgid "API Changes" msgstr "" -#: ../../changelog.rst:43 +#: ../../changelog.rst:110 msgid "" ":attr:`Response.status` is a read-write property that can be assigned either" " a numeric status code or a status string with a reason phrase (``200 OK``)." @@ -125,53 +378,53 @@ msgid "" ":attr:`BaseResponse.status_code` and :attr:`BaseResponse.status_line`." msgstr "" -#: ../../changelog.rst:46 +#: ../../changelog.rst:113 msgid "API Deprecations" msgstr "" -#: ../../changelog.rst:47 +#: ../../changelog.rst:114 msgid "" ":class:`SimpleTALTemplate` is now deprecating. There seems to be no demand." msgstr "" -#: ../../changelog.rst:50 +#: ../../changelog.rst:117 msgid "Release 0.10" msgstr "" -#: ../../changelog.rst:52 +#: ../../changelog.rst:119 msgid "Plugin API v2" msgstr "" -#: ../../changelog.rst:54 +#: ../../changelog.rst:121 msgid "To use the new API, set :attr:`Plugin.api` to ``2``." msgstr "" -#: ../../changelog.rst:55 +#: ../../changelog.rst:122 msgid "" ":meth:`Plugin.apply` receives a :class:`Route` object instead of a context " "dictionary as second parameter. The new object offers some additional " "information and may be extended in the future." msgstr "" -#: ../../changelog.rst:56 +#: ../../changelog.rst:123 msgid "" "Plugin names are considered unique now. The topmost plugin with a given name" " on a given route is installed, all other plugins with the same name are " "silently ignored." msgstr "" -#: ../../changelog.rst:58 +#: ../../changelog.rst:125 msgid "The Request/Response Objects" msgstr "" -#: ../../changelog.rst:60 +#: ../../changelog.rst:127 msgid "" "Added :attr:`BaseRequest.json`, :attr:`BaseRequest.remote_route`, " ":attr:`BaseRequest.remote_addr`, :attr:`BaseRequest.query` and " ":attr:`BaseRequest.script_name`." msgstr "" -#: ../../changelog.rst:61 +#: ../../changelog.rst:128 msgid "" "Added :attr:`BaseResponse.status_line` and :attr:`BaseResponse.status_code` " "attributes. In future releases, :attr:`BaseResponse.status` will return a " @@ -180,204 +433,204 @@ msgid "" "use the verbose attributes from now on." msgstr "" -#: ../../changelog.rst:62 +#: ../../changelog.rst:129 msgid "" "Replaced :class:`MultiDict` with a specialized :class:`FormsDict` in many " "places. The new dict implementation allows attribute access and handles " "unicode form values transparently." msgstr "" -#: ../../changelog.rst:64 +#: ../../changelog.rst:131 msgid "Templates" msgstr "" -#: ../../changelog.rst:66 +#: ../../changelog.rst:133 msgid "" "Added three new functions to the SimpleTemplate default namespace that " "handle undefined variables: :func:`stpl.defined`, :func:`stpl.get` and " ":func:`stpl.setdefault`." msgstr "" -#: ../../changelog.rst:67 +#: ../../changelog.rst:134 msgid "" "The default escape function for SimpleTemplate now additionally escapes " "single and double quotes." msgstr "" -#: ../../changelog.rst:69 +#: ../../changelog.rst:136 msgid "Routing" msgstr "" -#: ../../changelog.rst:71 +#: ../../changelog.rst:138 msgid "" "A new route syntax (e.g. ``/object/<id:int>``) and support for route " "wildcard filters." msgstr "" -#: ../../changelog.rst:72 +#: ../../changelog.rst:139 msgid "Four new wildcard filters: `int`, `float`, `path` and `re`." msgstr "" -#: ../../changelog.rst:74 +#: ../../changelog.rst:141 msgid "Other changes" msgstr "" -#: ../../changelog.rst:76 +#: ../../changelog.rst:143 msgid "Added command line interface to load applications and start servers." msgstr "" -#: ../../changelog.rst:77 +#: ../../changelog.rst:144 msgid "" "Introduced a :class:`ConfigDict` that makes accessing configuration a lot " "easier (attribute access and auto-expanding namespaces)." msgstr "" -#: ../../changelog.rst:78 +#: ../../changelog.rst:145 msgid "Added support for raw WSGI applications to :meth:`Bottle.mount`." msgstr "" -#: ../../changelog.rst:79 +#: ../../changelog.rst:146 msgid ":meth:`Bottle.mount` parameter order changed." msgstr "" -#: ../../changelog.rst:80 +#: ../../changelog.rst:147 msgid "" ":meth:`Bottle.route` now accpets an import string for the ``callback`` " "parameter." msgstr "" -#: ../../changelog.rst:81 +#: ../../changelog.rst:148 msgid "Dropped Gunicorn 0.8 support. Current supported version is 0.13." msgstr "" -#: ../../changelog.rst:82 +#: ../../changelog.rst:149 msgid "Added custom options to Gunicorn server." msgstr "" -#: ../../changelog.rst:83 +#: ../../changelog.rst:150 msgid "" "Finally dropped support for type filters. Replace with a custom plugin of " "needed." msgstr "" -#: ../../changelog.rst:87 +#: ../../changelog.rst:154 msgid "Release 0.9" msgstr "" -#: ../../changelog.rst:90 +#: ../../changelog.rst:157 msgid "Whats new?" msgstr "" -#: ../../changelog.rst:91 +#: ../../changelog.rst:158 msgid "" "A brand new plugin-API. See :ref:`plugins` and :doc:`plugindev` for details." msgstr "" -#: ../../changelog.rst:92 +#: ../../changelog.rst:159 msgid "" "The :func:`route` decorator got a lot of new features. See " ":meth:`Bottle.route` for details." msgstr "" -#: ../../changelog.rst:93 +#: ../../changelog.rst:160 msgid "" "New server adapters for `gevent <http://www.gevent.org/>`_, `meinheld " "<http://meinheld.org/>`_ and `bjoern " "<https://github.com/jonashaag/bjoern>`_." msgstr "" -#: ../../changelog.rst:94 +#: ../../changelog.rst:161 msgid "Support for SimpleTAL templates." msgstr "" -#: ../../changelog.rst:95 +#: ../../changelog.rst:162 msgid "Better runtime exception handling for mako templates in debug mode." msgstr "" -#: ../../changelog.rst:96 +#: ../../changelog.rst:163 msgid "Lots of documentation, fixes and small improvements." msgstr "" -#: ../../changelog.rst:97 +#: ../../changelog.rst:164 msgid "A new :data:`Request.urlparts` property." msgstr "" -#: ../../changelog.rst:100 +#: ../../changelog.rst:167 msgid "Performance improvements" msgstr "" -#: ../../changelog.rst:101 +#: ../../changelog.rst:168 msgid "" "The :class:`Router` now special-cases ``wsgi.run_once`` environments to " "speed up CGI." msgstr "" -#: ../../changelog.rst:102 +#: ../../changelog.rst:169 msgid "" "Reduced module load time by ~30% and optimized template parser. See `8ccb2d " -"<http://github.com/bottlepy/bottle/commit/8ccb2d>`_, `f72a7c <http://github.com/bottlepy/bottle/commit/f72a7c>`_ and `b14b9a " -"<http://github.com/bottlepy/bottle/commit/b14b9a>`_ for details." +"</commit/8ccb2d>`_, `f72a7c </commit/f72a7c>`_ and `b14b9a " +"</commit/b14b9a>`_ for details." msgstr "" -#: ../../changelog.rst:103 +#: ../../changelog.rst:170 msgid "" "Support for \"App Caching\" on Google App Engine. See `af93ec " -"<http://github.com/bottlepy/bottle/commit/af93ec>`_." +"</commit/af93ec>`_." msgstr "" -#: ../../changelog.rst:104 +#: ../../changelog.rst:171 msgid "" "Some of the rarely used or deprecated features are now plugins that avoid " "overhead if the feature is not used." msgstr "" -#: ../../changelog.rst:107 ../../changelog.rst:118 +#: ../../changelog.rst:174 ../../changelog.rst:185 msgid "API changes" msgstr "" -#: ../../changelog.rst:108 +#: ../../changelog.rst:175 msgid "" "This release is mostly backward compatible, but some APIs are marked " "deprecated now and will be removed for the next release. Most noteworthy:" msgstr "" -#: ../../changelog.rst:110 +#: ../../changelog.rst:177 msgid "" "The ``static`` route parameter is deprecated. You can escape wild-cards with" " a backslash." msgstr "" -#: ../../changelog.rst:111 +#: ../../changelog.rst:178 msgid "" "Type-based output filters are deprecated. They can easily be replaced with " "plugins." msgstr "" -#: ../../changelog.rst:115 +#: ../../changelog.rst:182 msgid "Release 0.8" msgstr "" -#: ../../changelog.rst:119 +#: ../../changelog.rst:186 msgid "These changes may break compatibility with previous versions." msgstr "" -#: ../../changelog.rst:121 +#: ../../changelog.rst:188 msgid "" "The built-in Key/Value database is not available anymore. It is marked " "deprecated since 0.6.4" msgstr "" -#: ../../changelog.rst:122 +#: ../../changelog.rst:189 msgid "The Route syntax and behaviour changed." msgstr "" -#: ../../changelog.rst:124 +#: ../../changelog.rst:191 msgid "" "Regular expressions must be encapsulated with ``#``. In 0.6 all non-" "alphanumeric characters not present in the regular expression were allowed." msgstr "" -#: ../../changelog.rst:125 +#: ../../changelog.rst:192 msgid "" "Regular expressions not part of a route wildcard are escaped automatically. " "You don't have to escape dots or other regular control characters anymore. " @@ -386,69 +639,69 @@ msgid "" "behaviour." msgstr "" -#: ../../changelog.rst:127 +#: ../../changelog.rst:194 msgid "" "The ``BreakTheBottle`` exception is gone. Use :class:`HTTPResponse` instead." msgstr "" -#: ../../changelog.rst:128 +#: ../../changelog.rst:195 msgid "" "The :class:`SimpleTemplate` engine escapes HTML special characters in " "``{{bad_html}}`` expressions automatically. Use the new ``{{!good_html}}`` " "syntax to get old behaviour (no escaping)." msgstr "" -#: ../../changelog.rst:129 +#: ../../changelog.rst:196 msgid "" "The :class:`SimpleTemplate` engine returns unicode strings instead of lists " "of byte strings." msgstr "" -#: ../../changelog.rst:130 +#: ../../changelog.rst:197 msgid "" "``bottle.optimize()`` and the automatic route optimization is obsolete." msgstr "" -#: ../../changelog.rst:131 +#: ../../changelog.rst:198 msgid "Some functions and attributes were renamed:" msgstr "" -#: ../../changelog.rst:133 +#: ../../changelog.rst:200 msgid ":attr:`Request._environ` is now :attr:`Request.environ`" msgstr "" -#: ../../changelog.rst:134 +#: ../../changelog.rst:201 msgid ":attr:`Response.header` is now :attr:`Response.headers`" msgstr "" -#: ../../changelog.rst:135 +#: ../../changelog.rst:202 msgid ":func:`default_app` is obsolete. Use :func:`app` instead." msgstr "" -#: ../../changelog.rst:137 +#: ../../changelog.rst:204 msgid "The default :func:`redirect` code changed from 307 to 303." msgstr "" -#: ../../changelog.rst:138 +#: ../../changelog.rst:205 msgid "Removed support for ``@default``. Use ``@error(404)`` instead." msgstr "" -#: ../../changelog.rst:142 +#: ../../changelog.rst:209 msgid "New features" msgstr "" -#: ../../changelog.rst:143 +#: ../../changelog.rst:210 msgid "This is an incomplete list of new features and improved functionality." msgstr "" -#: ../../changelog.rst:145 +#: ../../changelog.rst:212 msgid "" "The :class:`Request` object got new properties: :attr:`Request.body`, " ":attr:`Request.auth`, :attr:`Request.url`, :attr:`Request.header`, " ":attr:`Request.forms`, :attr:`Request.files`." msgstr "" -#: ../../changelog.rst:146 +#: ../../changelog.rst:213 msgid "" "The :meth:`Response.set_cookie` and :meth:`Request.get_cookie` methods are " "now able to encode and decode python objects. This is called a *secure " @@ -456,41 +709,41 @@ msgid "" "client side. All pickle-able data structures are allowed." msgstr "" -#: ../../changelog.rst:147 +#: ../../changelog.rst:214 msgid "" "The new :class:`Router` class drastically improves performance for setups " "with lots of dynamic routes and supports named routes (named route + dict = " "URL string)." msgstr "" -#: ../../changelog.rst:148 +#: ../../changelog.rst:215 msgid "" "It is now possible (and recommended) to return :exc:`HTTPError` and " ":exc:`HTTPResponse` instances or other exception objects instead of raising " "them." msgstr "" -#: ../../changelog.rst:149 +#: ../../changelog.rst:216 msgid "" "The new function :func:`static_file` equals :func:`send_file` but returns a " ":exc:`HTTPResponse` or :exc:`HTTPError` instead of raising it. " ":func:`send_file` is deprecated." msgstr "" -#: ../../changelog.rst:150 +#: ../../changelog.rst:217 msgid "" "New :func:`get`, :func:`post`, :func:`put` and :func:`delete` decorators." msgstr "" -#: ../../changelog.rst:151 +#: ../../changelog.rst:218 msgid "The :class:`SimpleTemplate` engine got full unicode support." msgstr "" -#: ../../changelog.rst:152 +#: ../../changelog.rst:219 msgid "Lots of non-critical bugfixes." msgstr "" -#: ../../changelog.rst:158 +#: ../../changelog.rst:225 msgid "Contributors" msgstr "" @@ -693,65 +946,69 @@ msgid "Nicolas Vanhoren" msgstr "" #: ../../../AUTHORS:51 -msgid "Robert Rollins" +msgid "Oz N Tiram" msgstr "" #: ../../../AUTHORS:52 -msgid "rogererens" +msgid "Robert Rollins" msgstr "" #: ../../../AUTHORS:53 -msgid "rwxrwx" +msgid "rogererens" msgstr "" #: ../../../AUTHORS:54 -msgid "Santiago Gala" +msgid "rwxrwx" msgstr "" #: ../../../AUTHORS:55 -msgid "Sean M. Collins" +msgid "Santiago Gala" msgstr "" #: ../../../AUTHORS:56 -msgid "Sebastian Wollrath" +msgid "Sean M. Collins" msgstr "" #: ../../../AUTHORS:57 -msgid "Seth" +msgid "Sebastian Wollrath" msgstr "" #: ../../../AUTHORS:58 -msgid "Sigurd Høgsbro" +msgid "Seth" msgstr "" #: ../../../AUTHORS:59 -msgid "Stuart Rackham" +msgid "Sigurd Høgsbro" msgstr "" #: ../../../AUTHORS:60 -msgid "Sun Ning" +msgid "Stuart Rackham" msgstr "" #: ../../../AUTHORS:61 -msgid "Tomás A. Schertel" +msgid "Sun Ning" msgstr "" #: ../../../AUTHORS:62 -msgid "Tristan Zajonc" +msgid "Tomás A. Schertel" msgstr "" #: ../../../AUTHORS:63 -msgid "voltron" +msgid "Tristan Zajonc" msgstr "" #: ../../../AUTHORS:64 -msgid "Wieland Hoffmann" +msgid "voltron" msgstr "" #: ../../../AUTHORS:65 -msgid "zombat" +msgid "Wieland Hoffmann" msgstr "" #: ../../../AUTHORS:66 +msgid "zombat" +msgstr "" + +#: ../../../AUTHORS:67 msgid "Thiago Avelino" msgstr "" diff --git a/docs/_locale/pt_BR/LC_MESSAGES/configuration.po b/docs/_locale/pt_BR/LC_MESSAGES/configuration.po index 71af62e..043653b 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/configuration.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/configuration.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 20:58+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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -106,22 +106,46 @@ msgid "" "configuration::" msgstr "" -#: ../../configuration.rst:84 +#: ../../configuration.rst:85 +msgid "Loading Configuration from a python module" +msgstr "" + +#: ../../configuration.rst:89 +msgid "" +"Loading configuration from a Python module is a common pattern for Python " +"programs and frameworks. Bottle assumes that configuration keys are all " +"upper case:" +msgstr "" + +#: ../../configuration.rst:98 +msgid "" +"You can load the this Python module with :met:`ConfigDict.load_module`::" +msgstr "" + +#: ../../configuration.rst:107 +msgid "" +"Note the second parameter to disable loading as namespaced items as in " +":meth:`ConfigDict.load_dict`. By default, loading from a Python module will " +"call this method, unless you specifically call this method with `False` as " +"the second argument." +msgstr "" + +#: ../../configuration.rst:110 msgid "Loading Configuration from a nested :class:`dict`" msgstr "" -#: ../../configuration.rst:88 +#: ../../configuration.rst:114 msgid "" "Another useful method is :meth:`ConfigDict.load_dict`. This method takes an " "entire structure of nested dictionaries and turns it into a flat list of " "keys and values with namespaced keys::" msgstr "" -#: ../../configuration.rst:109 +#: ../../configuration.rst:135 msgid "Listening to configuration changes" msgstr "" -#: ../../configuration.rst:113 +#: ../../configuration.rst:139 msgid "" "The ``config`` hook on the application object is triggered each time a value" " in :attr:`Bottle.config` is changed. This hook can be used to react on " @@ -133,37 +157,37 @@ msgid "" "preserved." msgstr "" -#: ../../configuration.rst:122 +#: ../../configuration.rst:148 msgid "" "The hook callbacks cannot *change* the value that is to be stored to the " "dictionary. That is what filters are for." msgstr "" -#: ../../configuration.rst:128 +#: ../../configuration.rst:154 msgid "Filters and other Meta Data" msgstr "" -#: ../../configuration.rst:132 +#: ../../configuration.rst:158 msgid "" ":class:`ConfigDict` allows you to store meta data along with configuration " "keys. Two meta fields are currently defined:" msgstr "" -#: ../../configuration.rst:136 +#: ../../configuration.rst:162 msgid "help" msgstr "" -#: ../../configuration.rst:135 +#: ../../configuration.rst:161 msgid "" "A help or description string. May be used by debugging, introspection or " "admin tools to help the site maintainer configuring their application." msgstr "" -#: ../../configuration.rst:139 +#: ../../configuration.rst:165 msgid "filter" msgstr "" -#: ../../configuration.rst:139 +#: ../../configuration.rst:165 msgid "" "A callable that accepts and returns a single value. If a filter is defined " "for a key, any new value stored to that key is first passed through the " @@ -171,37 +195,46 @@ msgid "" "type, check for invalid values (throw a ValueError) or trigger side effects." msgstr "" -#: ../../configuration.rst:141 +#: ../../configuration.rst:167 msgid "" "This feature is most useful for plugins. They can validate their config " "parameters or trigger side effects using filters and document their " "configuration via ``help`` fields::" msgstr "" -#: ../../configuration.rst:163 +#: ../../configuration.rst:189 msgid "API Documentation" msgstr "" #: ../../../bottle.pydocstring of bottle.ConfigDict:1 msgid "" "A dict-like configuration storage with additional support for namespaces, " -"validators, meta-data, on_change listeners and more." +"validators, meta-data, overlays and more." msgstr "" -#: ../../../bottle.pydocstring of bottle.ConfigDict.load_module:1 +#: ../../../bottle.pydocstring of bottle.ConfigDict:4 msgid "" -"Load values from a Python module. :param squash: Squash nested dicts into " -"namespaces by using" +"This dict-like class is heavily optimized for read access. All read-only " +"methods as well as item access should be as fast as the built-in dict." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_module:1 +msgid "Load values from a Python module." msgstr "" #: ../../../bottle.pydocstring of bottle.ConfigDict.load_module:3 -msgid "load_dict(), otherwise use update()" +msgid "Example modue ``config.py``::" msgstr "" -#: ../../../bottle.pydocstring of bottle.ConfigDict.load_module:4 +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_module:0 +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_config:0 +msgid "Parameters" +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_module:17 msgid "" -"Example: load_config('my.app.settings', True) Example: " -"load_config('my.app.settings', False)" +"If true (default), dictionary values are assumed to represent namespaces " +"(see :meth:`load_dict`)." msgstr "" #: ../../../bottle.pydocstring of bottle.ConfigDict.load_config:1 @@ -210,9 +243,41 @@ msgstr "" #: ../../../bottle.pydocstring of bottle.ConfigDict.load_config:3 msgid "" -"If the config file contains sections, their names are used as namespaces for" -" the values within. The two special sections ``DEFAULT`` and ``bottle`` " -"refer to the root namespace (no prefix)." +"A configuration file consists of sections, each led by a ``[section]`` " +"header, followed by key/value entries separated by either ``=`` or ``:``. " +"Section names and keys are case-insensitive. Leading and trailing whitespace" +" is removed from keys and values. Values can be omitted, in which case the " +"key/value delimiter may also be left out. Values can also span multiple " +"lines, as long as they are indented deeper than the first line of the value." +" Commands are prefixed by ``#`` or ``;`` and may only appear on their own on" +" an otherwise empty line." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_config:13 +msgid "" +"Both section and key names may contain dots (``.``) as namespace separators." +" The actual configuration parameter name is constructed by joining section " +"name and key name together and converting to lower case." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_config:18 +msgid "" +"The special sections ``bottle`` and ``ROOT`` refer to the root namespace and" +" the ``DEFAULT`` section defines default values for all other sections." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_config:22 +msgid "With Python 3, extended string interpolation is enabled." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_config:24 +msgid "The path of a config file, or a list of paths." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.load_config:25 +msgid "" +"All keyword parameters are passed to the underlying " +":class:`python:configparser.ConfigParser` constructor call." msgstr "" #: ../../../bottle.pydocstring of bottle.ConfigDict.load_dict:1 @@ -224,8 +289,15 @@ msgstr "" #: ../../../bottle.pydocstring of bottle.ConfigDict.update:1 msgid "" "If the first parameter is a string, all keys are prefixed with this " -"namespace. Apart from that it works just as the usual dict.update(). " -"Example: ``update('some.namespace', key='value')``" +"namespace. Apart from that it works just as the usual dict.update()." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.setdefault:1 +msgid "Insert key with a value of default if key is not in the dictionary." +msgstr "" + +#: ../../../bottle.pydocstring of bottle.ConfigDict.setdefault:3 +msgid "Return the value for key if key is in the dictionary, else default." msgstr "" #: ../../../bottle.pydocstring of bottle.ConfigDict.meta_get:1 diff --git a/docs/_locale/pt_BR/LC_MESSAGES/contact.po b/docs/_locale/pt_BR/LC_MESSAGES/contact.po index a48912c..7c6dfce 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/contact.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/contact.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,9 +7,9 @@ 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-01-22 19:18+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +22,7 @@ msgid "Contact" msgstr "" #: ../../contact.rst:6 -msgid "About the Autor" +msgid "About the Author" msgstr "" #: ../../contact.rst:7 @@ -39,7 +39,7 @@ msgstr "" #: ../../contact.rst:10 msgid "About Bottle" -msgstr "" +msgstr "Sobre o Bottle" #: ../../contact.rst:11 msgid "" diff --git a/docs/_locale/pt_BR/LC_MESSAGES/deployment.po b/docs/_locale/pt_BR/LC_MESSAGES/deployment.po index d3d027d..1f583db 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/deployment.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/deployment.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 20:58+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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -30,42 +30,43 @@ msgstr "" #: ../../deployment.rst:31 msgid "" -"To get your application available to the outside world, specify the IP of " -"the interface the server should listen to (e.g. ``run(host='192.168.0.1')``)" -" or let the server listen to all interfaces at once (e.g. " -"``run(host='0.0.0.0')``). The listening port can be changed in a similar " -"way, but you need root or admin rights to choose a port below 1024. Port 80 " -"is the standard for HTTP servers::" +"To get your application available to the outside world, specify the IP the " +"server should listen to (e.g. ``run(host='192.168.0.1')``) or let the server" +" listen to all interfaces at once (e.g. ``run(host='0.0.0.0')``). The " +"listening port can be changed in a similar way, but you need root or admin " +"rights to choose a port below 1024. Port 80 is the standard for HTTP " +"servers::" msgstr "" -#: ../../deployment.rst:36 +#: ../../deployment.rst:37 msgid "Server Options" msgstr "" -#: ../../deployment.rst:38 +#: ../../deployment.rst:39 msgid "" "The built-in default server is based on `wsgiref WSGIServer " "<http://docs.python.org/library/wsgiref.html#module-" "wsgiref.simple_server>`_. This non-threading HTTP server is perfectly fine " -"for development and early production, but may become a performance " -"bottleneck when server load increases. There are three ways to eliminate " -"this bottleneck:" +"for development, but may become a performance bottleneck when server load " +"increases. There are three ways to eliminate this bottleneck:" msgstr "" -#: ../../deployment.rst:40 -msgid "Use a different server that is either multi-threaded or asynchronous." +#: ../../deployment.rst:41 +msgid "" +"Use a different server that is either multi-threaded or supports " +"asynchronous IO." msgstr "" -#: ../../deployment.rst:41 +#: ../../deployment.rst:42 msgid "" "Start multiple server processes and spread the load with a load-balancer." msgstr "" -#: ../../deployment.rst:42 +#: ../../deployment.rst:43 msgid "Do both." msgstr "" -#: ../../deployment.rst:44 +#: ../../deployment.rst:45 msgid "" "**Multi-threaded** servers are the 'classic' way to do it. They are very " "robust, reasonably fast and easy to manage. As a drawback, they can only " @@ -76,15 +77,15 @@ msgid "" "image processing)." msgstr "" -#: ../../deployment.rst:46 +#: ../../deployment.rst:47 msgid "" -"**Asynchronous** servers are very fast, can handle a virtually unlimited " +"**Asynchronous IO** servers are very fast, can handle a virtually unlimited " "number of concurrent connections and are easy to manage. To take full " "advantage of their potential, you need to design your application " "accordingly and understand the concepts of the specific server." msgstr "" -#: ../../deployment.rst:48 +#: ../../deployment.rst:49 msgid "" "**Multi-processing** (forking) servers are not limited by the GIL and " "utilize more than one CPU core, but make communication between server " @@ -94,105 +95,101 @@ msgid "" "there are good tutorials available." msgstr "" -#: ../../deployment.rst:51 +#: ../../deployment.rst:52 msgid "Switching the Server Backend" msgstr "" -#: ../../deployment.rst:53 +#: ../../deployment.rst:54 msgid "" "The easiest way to increase performance is to install a multi-threaded " "server library like paste_ or cherrypy_ and tell Bottle to use that instead " "of the single-threaded default server::" msgstr "" -#: ../../deployment.rst:57 +#: ../../deployment.rst:58 msgid "" "Bottle ships with a lot of ready-to-use adapters for the most common WSGI " "servers and automates the setup process. Here is an incomplete list:" msgstr "" -#: ../../deployment.rst:60 +#: ../../deployment.rst:61 msgid "Name" msgstr "" -#: ../../deployment.rst:60 +#: ../../deployment.rst:61 msgid "Homepage" msgstr "" -#: ../../deployment.rst:60 +#: ../../deployment.rst:61 msgid "Description" msgstr "" -#: ../../deployment.rst:62 +#: ../../deployment.rst:63 msgid "cgi" msgstr "" -#: ../../deployment.rst:62 +#: ../../deployment.rst:63 msgid "Run as CGI script" msgstr "" -#: ../../deployment.rst:63 +#: ../../deployment.rst:64 msgid "flup" msgstr "" -#: ../../deployment.rst:63 +#: ../../deployment.rst:64 msgid "flup_" msgstr "" -#: ../../deployment.rst:63 +#: ../../deployment.rst:64 msgid "Run as FastCGI process" msgstr "" -#: ../../deployment.rst:64 +#: ../../deployment.rst:65 msgid "gae" msgstr "" -#: ../../deployment.rst:64 +#: ../../deployment.rst:65 msgid "gae_" msgstr "" -#: ../../deployment.rst:64 +#: ../../deployment.rst:65 msgid "Helper for Google App Engine deployments" msgstr "" -#: ../../deployment.rst:65 +#: ../../deployment.rst:66 msgid "wsgiref" msgstr "" -#: ../../deployment.rst:65 +#: ../../deployment.rst:66 msgid "wsgiref_" msgstr "" -#: ../../deployment.rst:65 +#: ../../deployment.rst:66 msgid "Single-threaded default server" msgstr "" -#: ../../deployment.rst:66 +#: ../../deployment.rst:67 msgid "cherrypy" msgstr "" -#: ../../deployment.rst:66 +#: ../../deployment.rst:67 msgid "cherrypy_" msgstr "" -#: ../../deployment.rst:66 +#: ../../deployment.rst:67 msgid "Multi-threaded and very stable" msgstr "" -#: ../../deployment.rst:67 +#: ../../deployment.rst:68 msgid "paste" msgstr "" -#: ../../deployment.rst:67 +#: ../../deployment.rst:68 msgid "paste_" msgstr "" -#: ../../deployment.rst:67 -msgid "Multi-threaded, stable, tried and tested" -msgstr "" - #: ../../deployment.rst:68 -msgid "Multi-threaded" +msgid "Multi-threaded, stable, tried and tested" msgstr "" #: ../../deployment.rst:69 @@ -252,78 +249,66 @@ msgid "diesel_" msgstr "" #: ../../deployment.rst:74 -msgid "fapws3" -msgstr "" - -#: ../../deployment.rst:74 -msgid "fapws3_" -msgstr "" - -#: ../../deployment.rst:74 -msgid "Asynchronous (network side only), written in C" -msgstr "" - -#: ../../deployment.rst:75 msgid "tornado" msgstr "" -#: ../../deployment.rst:75 +#: ../../deployment.rst:74 msgid "tornado_" msgstr "" -#: ../../deployment.rst:75 +#: ../../deployment.rst:74 msgid "Asynchronous, powers some parts of Facebook" msgstr "" -#: ../../deployment.rst:76 +#: ../../deployment.rst:75 msgid "twisted" msgstr "" -#: ../../deployment.rst:76 +#: ../../deployment.rst:75 msgid "twisted_" msgstr "" -#: ../../deployment.rst:76 +#: ../../deployment.rst:75 msgid "Asynchronous, well tested but... twisted" msgstr "" -#: ../../deployment.rst:77 +#: ../../deployment.rst:76 msgid "meinheld" msgstr "" -#: ../../deployment.rst:77 +#: ../../deployment.rst:76 msgid "meinheld_" msgstr "" -#: ../../deployment.rst:77 +#: ../../deployment.rst:76 msgid "Asynchronous, partly written in C" msgstr "" -#: ../../deployment.rst:78 +#: ../../deployment.rst:77 msgid "bjoern" msgstr "" -#: ../../deployment.rst:78 +#: ../../deployment.rst:77 msgid "bjoern_" msgstr "" -#: ../../deployment.rst:78 +#: ../../deployment.rst:77 msgid "Asynchronous, very fast and written in C" msgstr "" -#: ../../deployment.rst:79 +#: ../../deployment.rst:78 msgid "auto" msgstr "" -#: ../../deployment.rst:79 +#: ../../deployment.rst:78 msgid "Automatically selects an available server adapter" msgstr "" -#: ../../deployment.rst:82 +#: ../../deployment.rst:81 msgid "The full list is available through :data:`server_names`." msgstr "" -#: ../../deployment.rst:84 +#: ../../deployment.rst:83 msgid "" "If there is no adapter for your favorite server or if you need more control " "over the server setup, you may want to start the server manually. Refer to " @@ -331,41 +316,50 @@ msgid "" " for paste_::" msgstr "" -#: ../../deployment.rst:93 +#: ../../deployment.rst:91 msgid "Apache mod_wsgi" msgstr "" -#: ../../deployment.rst:95 +#: ../../deployment.rst:93 msgid "" "Instead of running your own HTTP server from within Bottle, you can attach " "Bottle applications to an `Apache server <apache>`_ using mod_wsgi_." msgstr "" -#: ../../deployment.rst:97 +#: ../../deployment.rst:95 msgid "" "All you need is an ``app.wsgi`` file that provides an ``application`` " "object. This object is used by mod_wsgi to start your application and should" " be a WSGI-compatible Python callable." msgstr "" -#: ../../deployment.rst:99 +#: ../../deployment.rst:97 msgid "File ``/var/www/yourapp/app.wsgi``::" msgstr "" -#: ../../deployment.rst:110 +#: ../../deployment.rst:108 msgid "The Apache configuration may look like this::" msgstr "" #: ../../deployment.rst:126 +msgid "uWSGI" +msgstr "" + +#: ../../deployment.rst:128 msgid "" -"With newer versions of Apache (2.4) use a configuration similar to this::" +"uWSGI_ is a modern alternative to FastCGI and the recommended deployment " +"option on servers like nginx_, lighttpd_, and cherokee_. The uWSGI project " +"provides an application server that runs your application, and defines a " +"protocol that frontend webservers can speak to. Have a look at the excellent" +" `Quickstart for Python/WSGI applications <https://uwsgi-" +"docs.readthedocs.io/en/latest/WSGIquickstart.html>`_." msgstr "" -#: ../../deployment.rst:144 +#: ../../deployment.rst:132 msgid "Google AppEngine" msgstr "" -#: ../../deployment.rst:148 +#: ../../deployment.rst:136 msgid "" "New App Engine applications using the Python 2.7 runtime environment support" " any WSGI application and should be configured to use the Bottle application" @@ -373,40 +367,31 @@ msgid "" "``myapp.py``::" msgstr "" -#: ../../deployment.rst:158 +#: ../../deployment.rst:146 msgid "" "Then you can configure App Engine's ``app.yaml`` to use the ``app`` object " "like so::" msgstr "" -#: ../../deployment.rst:169 -msgid "" -"Bottle also provides a ``gae`` server adapter for legacy App Engine " -"applications using the Python 2.5 runtime environment. It works similar to " -"the ``cgi`` adapter in that it does not start a new HTTP server, but " -"prepares and optimizes your application for Google App Engine and makes sure" -" it conforms to their API::" -msgstr "" - -#: ../../deployment.rst:173 +#: ../../deployment.rst:158 msgid "" "It is always a good idea to let GAE serve static files directly. Here is " "example for a working ``app.yaml`` (using the legacy Python 2.5 runtime " "environment)::" msgstr "" -#: ../../deployment.rst:189 +#: ../../deployment.rst:175 msgid "Load Balancer (Manual Setup)" msgstr "" -#: ../../deployment.rst:191 +#: ../../deployment.rst:177 msgid "" "A single Python process can utilize only one CPU at a time, even if there " "are more CPU cores available. The trick is to balance the load between " "multiple independent Python processes to utilize all of your CPU cores." msgstr "" -#: ../../deployment.rst:193 +#: ../../deployment.rst:179 msgid "" "Instead of a single Bottle application server, you start one instance for " "each CPU core available using different local port (localhost:8080, 8081, " @@ -417,29 +402,29 @@ msgid "" "spread out the load between different physical servers." msgstr "" -#: ../../deployment.rst:195 +#: ../../deployment.rst:181 msgid "" "One of the fastest load balancers available is Pound_ but most common web " "servers have a proxy-module that can do the work just fine." msgstr "" -#: ../../deployment.rst:197 +#: ../../deployment.rst:183 msgid "Pound example::" msgstr "" -#: ../../deployment.rst:215 +#: ../../deployment.rst:201 msgid "Apache example::" msgstr "" -#: ../../deployment.rst:223 +#: ../../deployment.rst:209 msgid "Lighttpd example::" msgstr "" -#: ../../deployment.rst:235 +#: ../../deployment.rst:221 msgid "Good old CGI" msgstr "" -#: ../../deployment.rst:237 +#: ../../deployment.rst:223 msgid "" "A CGI server starts a new process for each request. This adds a lot of " "overhead but is sometimes the only option, especially on cheap hosting " diff --git a/docs/_locale/pt_BR/LC_MESSAGES/development.po b/docs/_locale/pt_BR/LC_MESSAGES/development.po index 0fc0403..0cd7f17 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/development.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/development.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,9 +7,9 @@ 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 20:58+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -185,7 +185,7 @@ msgid "The source repository is structured as follows:" msgstr "" #: ../../development.rst:55 -msgid "master branch" +msgid "``master`` branch" msgstr "" #: ../../development.rst:55 @@ -195,7 +195,7 @@ msgid "" msgstr "" #: ../../development.rst:58 -msgid "release-x.y branches" +msgid "``release-x.y`` branches" msgstr "" #: ../../development.rst:58 @@ -209,33 +209,22 @@ msgid "" "branches, so you can keep up with important changes." msgstr "" -#: ../../development.rst:61 -msgid "bugfix_name-x.y branches" -msgstr "" - -#: ../../development.rst:61 -msgid "" -"These branches are only temporary and used to develop and share non-trivial " -"bug-fixes for existing releases. They are merged into the corresponding " -"release branch and deleted soon after that." -msgstr "" - -#: ../../development.rst:65 +#: ../../development.rst:62 msgid "Feature branches" msgstr "" -#: ../../development.rst:64 +#: ../../development.rst:61 msgid "" "All other branches are feature branches. These are based on the master " "branch and only live as long as they are still active and not merged back " "into ``master``." msgstr "" -#: ../../development.rst:68 +#: ../../development.rst:65 msgid "What does this mean for a developer?" msgstr "" -#: ../../development.rst:69 +#: ../../development.rst:66 msgid "" "If you want to add a feature, create a new branch from ``master``. If you " "want to fix a bug, branch ``release-x.y`` for each affected release. Please " @@ -244,17 +233,17 @@ msgid "" "page." msgstr "" -#: ../../development.rst:71 +#: ../../development.rst:68 msgid "" "Oh, and never ever change the release number. We'll do that on integration. " "You never know in which order we pull pending requests anyway :)" msgstr "" -#: ../../development.rst:75 +#: ../../development.rst:72 msgid "What does this mean for a maintainer ?" msgstr "" -#: ../../development.rst:76 +#: ../../development.rst:73 msgid "" "Watch the tags (and the mailing list) for bug-fixes and new releases. If you" " want to fetch a specific release from the git repository, trust the tags, " @@ -262,11 +251,11 @@ msgid "" "but a tag marks the exact commit which changed the version number." msgstr "" -#: ../../development.rst:80 +#: ../../development.rst:77 msgid "Submitting Patches" msgstr "" -#: ../../development.rst:82 +#: ../../development.rst:79 msgid "" "The best way to get your changes integrated into the main development branch" " is to fork the main repository at github, create a new feature-branch, " @@ -276,57 +265,57 @@ msgid "" "follow some basic rules:" msgstr "" -#: ../../development.rst:84 +#: ../../development.rst:81 msgid "" "**Documentation:** Tell us what your patch does. Comment your code. If you " "introduced a new feature, add to the documentation so others can learn about" " it." msgstr "" -#: ../../development.rst:85 +#: ../../development.rst:82 msgid "" "**Test:** Write tests to prove that your code works as expected and does not" " break anything. If you fixed a bug, write at least one test-case that " "triggers the bug. Make sure that all tests pass before you submit a patch." msgstr "" -#: ../../development.rst:86 +#: ../../development.rst:83 msgid "" "**One patch at a time:** Only fix one bug or add one feature at a time. " "Design your patches so that they can be applyed as a whole. Keep your " "patches clean, small and focused." msgstr "" -#: ../../development.rst:87 +#: ../../development.rst:84 msgid "" "**Sync with upstream:** If the ``upstream/master`` branch changed while you " "were working on your patch, rebase or pull to make sure that your patch " "still applies without conflicts." msgstr "" -#: ../../development.rst:91 +#: ../../development.rst:88 msgid "Building the Documentation" msgstr "" -#: ../../development.rst:93 +#: ../../development.rst:90 msgid "" "You need a recent version of Sphinx to build the documentation. The " "recommended way is to install :command:`virtualenv` using your distribution " "package repository and install sphinx manually to get an up-to-date version." msgstr "" -#: ../../development.rst:124 +#: ../../development.rst:121 msgid "GIT Workflow Examples" msgstr "" -#: ../../development.rst:126 +#: ../../development.rst:123 msgid "" "The following examples assume that you have an (free) `github account " "<https://github.com>`_. This is not mandatory, but makes things a lot " "easier." msgstr "" -#: ../../development.rst:128 +#: ../../development.rst:125 msgid "" "First of all you need to create a fork (a personal clone) of the official " "repository. To do this, you simply click the \"fork\" button on the `bottle " @@ -334,7 +323,7 @@ msgid "" "you will be presented with a short introduction to your new repository." msgstr "" -#: ../../development.rst:130 +#: ../../development.rst:127 msgid "" "The fork you just created is hosted at github and read-able by everyone, but" " write-able only by you. Now you need to clone the fork locally to actually " @@ -342,7 +331,7 @@ msgid "" " the public (read-only) one::" msgstr "" -#: ../../development.rst:134 +#: ../../development.rst:131 msgid "" "Once the clone is complete your repository will have a remote named " "\"origin\" that points to your fork on github. Don’t let the name confuse " @@ -351,18 +340,18 @@ msgid "" "\"upstream\"::" msgstr "" -#: ../../development.rst:140 +#: ../../development.rst:137 msgid "" "Note that \"upstream\" is a public clone URL, which is read-only. You cannot" " push changes directly to it. Instead, we will pull from your public " "repository. This is described later." msgstr "" -#: ../../development.rst:143 +#: ../../development.rst:140 msgid "Submit a Feature" msgstr "" -#: ../../development.rst:144 +#: ../../development.rst:141 msgid "" "New features are developed in separate feature-branches to make integration " "easy. Because they are going to be integrated into the ``master`` branch, " @@ -370,20 +359,20 @@ msgid "" "type the following::" msgstr "" -#: ../../development.rst:148 +#: ../../development.rst:145 msgid "" "Now implement your feature, write tests, update the documentation, make sure" " that all tests pass and commit your changes::" msgstr "" -#: ../../development.rst:152 +#: ../../development.rst:149 msgid "" "If the ``upstream/master`` branch changed in the meantime, there may be " "conflicts with your changes. To solve these, 'rebase' your feature-branch " "onto the top of the updated ``upstream/master`` branch::" msgstr "" -#: ../../development.rst:157 +#: ../../development.rst:154 msgid "" "This is equivalent to undoing all your changes, updating your branch to the " "latest version and reapplying all your patches again. If you released your " @@ -392,13 +381,13 @@ msgid "" "the tests again and commit." msgstr "" -#: ../../development.rst:159 +#: ../../development.rst:156 msgid "" "Now you are almost ready to send a pull request. But first you need to make " "your feature-branch public by pushing it to your github fork::" msgstr "" -#: ../../development.rst:163 +#: ../../development.rst:160 msgid "" "After you’ve pushed your commit(s) you need to inform us about the new " "feature. One way is to send a pull-request using github. Another way would " @@ -407,39 +396,39 @@ msgid "" "for free :)" msgstr "" -#: ../../development.rst:165 +#: ../../development.rst:162 msgid "" "If we accept your patch, we will integrate it into the official development " "branch and make it part of the next release." msgstr "" -#: ../../development.rst:168 +#: ../../development.rst:165 msgid "Fix a Bug" msgstr "" -#: ../../development.rst:169 +#: ../../development.rst:166 msgid "" "The workflow for bug-fixes is very similar to the one for features, but " "there are some differences:" msgstr "" -#: ../../development.rst:171 +#: ../../development.rst:168 msgid "" "Branch off of the affected release branches instead of just the development " "branch." msgstr "" -#: ../../development.rst:172 +#: ../../development.rst:169 msgid "Write at least one test-case that triggers the bug." msgstr "" -#: ../../development.rst:173 +#: ../../development.rst:170 msgid "" "Do this for each affected branch including ``upstream/master`` if it is " "affected. ``git cherry-pick`` may help you reducing repetitive work." msgstr "" -#: ../../development.rst:174 +#: ../../development.rst:171 msgid "" "Name your branch after the release it is based on to avoid confusion. " "Examples: ``my_bugfix-x.y`` or ``my_bugfix-dev``." diff --git a/docs/_locale/pt_BR/LC_MESSAGES/faq.po b/docs/_locale/pt_BR/LC_MESSAGES/faq.po index c4b3ee3..173dd0f 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/faq.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/faq.po @@ -1,15 +1,16 @@ # 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: +# Claudio Rogerio Carvalho Filho <excriptbrasil@gmail.com>, 2017 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-01-22 19:19+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,11 +20,11 @@ msgstr "" #: ../../faq.rst:10 msgid "Frequently Asked Questions" -msgstr "" +msgstr "Perguntas Frequentes" #: ../../faq.rst:13 msgid "About Bottle" -msgstr "" +msgstr "Sobre o Bottle" #: ../../faq.rst:16 msgid "Is bottle suitable for complex applications?" @@ -67,11 +68,11 @@ msgstr "" #: ../../faq.rst:40 msgid "" "In :ref:`dynamic route syntax <tutorial-dynamic-routes>`, a placeholder " -"token (``:name``) matches everything up to the next slash. This equals to " +"token (``<name>``) matches everything up to the next slash. This equals to " "``[^/]+`` in regular expression syntax. To accept slashes too, you have to " "add a custom regular pattern to the placeholder. An example: " -"``/images/:filepath#.*#`` would match ``/images/icons/error.png`` but " -"``/images/:filename`` won't." +"``/images/<filepath:path>`` would match ``/images/icons/error.png`` but " +"``/images/<filename>`` won't." msgstr "" #: ../../faq.rst:43 diff --git a/docs/_locale/pt_BR/LC_MESSAGES/index.po b/docs/_locale/pt_BR/LC_MESSAGES/index.po index 5d78776..ccb9ccd 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/index.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/index.po @@ -1,19 +1,19 @@ # 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: # alephmelo <alephmelo@icloud.com>, 2015 # Igor P. Leroy <ip.leroy@gmail.com>, 2015 # Igor P. Leroy <ip.leroy@gmail.com>, 2015 -# Thiago Avelino <thiago@avelino.xxx>, 2015 +# Thiago Avelino <t@avelino.xxx>, 2015 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-14 18:04+0000\n" -"Last-Translator: alephmelo <alephmelo@icloud.com>\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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,112 +21,116 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ../../index.rst:21 +#: ../../index.rst:20 msgid "Bottle: Python Web Framework" msgstr "Bottle: Python Web Framework" -#: ../../index.rst:23 +#: ../../index.rst:22 msgid "" "Bottle is a fast, simple and lightweight WSGI_ micro web-framework for " "Python_. It is distributed as a single file module and has no dependencies " "other than the `Python Standard Library <http://docs.python.org/library/>`_." msgstr "Bottle é um simples, rápido, e leve WSGI_ micro web-framework para Python_. Ele é distribuído como um único arquivo (módulo) e não tem dependências que além `Biblioteca padrão do Python <http://docs.python.org/library/>`_." -#: ../../index.rst:26 +#: ../../index.rst:25 msgid "" "**Routing:** Requests to function-call mapping with support for clean and " "dynamic URLs." msgstr "**Rotas:** Solicitações de chamada de função de mapeamento com suporte para URLs limpas e dinâmicos." -#: ../../index.rst:27 +#: ../../index.rst:26 msgid "" "**Templates:** Fast and pythonic :ref:`built-in template engine <tutorial-" "templates>` and support for mako_, jinja2_ and cheetah_ templates." msgstr "**Templates:**Rápido e pythonico :ref:`mecanismo de templates interno <tutorial-templates>` e suporte para mako_, jinja2_ and cheetah_ templates." -#: ../../index.rst:28 +#: ../../index.rst:27 msgid "" "**Utilities:** Convenient access to form data, file uploads, cookies, " "headers and other HTTP-related metadata." msgstr "**Utilitários:** Conveniente acesso a dados de formulários, upload de arquivos, cookies, cabeçalhos e outros metadados relacionados ao HTTP." -#: ../../index.rst:29 +#: ../../index.rst:28 msgid "" "**Server:** Built-in HTTP development server and support for paste_, " -"fapws3_, bjoern_, gae_, cherrypy_ or any other WSGI_ capable HTTP server." -msgstr "**Servidor:** Servidor HTTP interno para desenvolvimento e suporte para paste_, fapws3_, bjoern_, gae_, cherrypy_ ou qualquer outro WSGI_ capaz de servir HTTP" +"bjoern_, gae_, cherrypy_ or any other WSGI_ capable HTTP server." +msgstr "" -#: ../../index.rst:32 +#: ../../index.rst:31 msgid "Example: \"Hello World\" in a bottle" msgstr "Exemplo: \"Olá Mundo\" em bottle" -#: ../../index.rst:43 +#: ../../index.rst:42 msgid "" "Run this script or paste it into a Python console, then point your browser " "to `<http://localhost:8080/hello/world>`_. That's it." msgstr "Execute este script ou cole em um console de Python, em seguida, acesse em seu navegador o `<http://localhost:8080/hello/world>`_. Feito!" -#: ../../index.rst:46 +#: ../../index.rst:45 msgid "Download and Install" msgstr "Download e Instalar" -#: ../../index.rst:49 +#: ../../index.rst:48 msgid "" -"Install the latest stable release with ``pip install bottle``, " -"``easy_install -U bottle`` or download `bottle.py`__ (unstable) into your " -"project directory. There are no hard [1]_ dependencies other than the Python" -" standard library. Bottle runs with **Python 2.7 and 3.4+**." -msgstr "Instale a última versão estável com ``pip install bottle``, ``easy_install -U bottle`` ou faça o download do `bottle.py`__(instável) dentro do diretório do seu projeto. Não há depedências [1]_ além das bibliotecas padrões do Python. Bottle é compatível com **Python 2.7 e 3.4+**." +"Install the latest stable release with ``pip install bottle`` or download " +"`bottle.py`__ (unstable) into your project directory. There are no hard [1]_" +" dependencies other than the Python standard library. Bottle supports " +"**Python 2.7 and Python 3**." +msgstr "" + +#: ../../index.rst:50 +msgid "Support for Python 2.5 and 2.6 was dropped with this release." +msgstr "" -#: ../../index.rst:52 +#: ../../index.rst:55 msgid "User's Guide" msgstr "Guia do usuário" -#: ../../index.rst:53 +#: ../../index.rst:56 msgid "" "Start here if you want to learn how to use the bottle framework for web " "development. If you have any questions not answered here, feel free to ask " "the `mailing list <mailto:bottlepy@googlegroups.com>`_." msgstr "Comece por aqui se você quer aprender como usar o bottle framework para desenvolvimento web. Se você tiver quaisquer perguntas não respondidas aqui, sinta-se livre para pedir ajuda a `lista de discussão <mailto:bottlepy@googlegroups.com>`_." -#: ../../index.rst:68 +#: ../../index.rst:71 msgid "Knowledge Base" msgstr "Base de conhecimento" -#: ../../index.rst:69 +#: ../../index.rst:72 msgid "A collection of articles, guides and HOWTOs." msgstr "Uma coleção de artigos, guias e COMO FAZER." -#: ../../index.rst:81 +#: ../../index.rst:84 msgid "Development and Contribution" msgstr "Desenvolvimento e contribuição" -#: ../../index.rst:83 +#: ../../index.rst:86 msgid "" "These chapters are intended for developers interested in the bottle " "development and release workflow." msgstr "Esses capítulos são destinados a desenvolvedores interessados no desenvolvimento do bottle e entender o fluxo de contribuição." -#: ../../index.rst:100 +#: ../../index.rst:103 msgid "License" msgstr "Licença" -#: ../../index.rst:102 +#: ../../index.rst:105 msgid "Code and documentation are available according to the MIT License:" msgstr "Código e documentação estão disponíveis sobre a licença MIT:" -#: ../../index.rst:107 +#: ../../index.rst:110 msgid "" "The Bottle logo however is *NOT* covered by that license. It is allowed to " "use the logo as a link to the bottle homepage or in direct context with the " "unmodified library. In all other cases please ask first." msgstr "O logotipo do bottle no entanto *NÃO é* abrangido pela licença (MIT). É permitido usar o logotipo como um link para a home page do bottle ou em contexto direto com a biblioteca não modificado. Nos outros casos, por favor, pergunte primeiro." -#: ../../index.rst:112 +#: ../../index.rst:115 msgid "Footnotes" msgstr "Notas de rodapé" -#: ../../index.rst:113 +#: ../../index.rst:116 msgid "" "Usage of the template or server adapter classes requires the corresponding " "template or server modules." diff --git a/docs/_locale/pt_BR/LC_MESSAGES/plugindev.po b/docs/_locale/pt_BR/LC_MESSAGES/plugindev.po index f517080..e8027e4 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/plugindev.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/plugindev.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 20:58+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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -234,7 +234,7 @@ msgid "rule" msgstr "" #: ../../plugindev.rst:111 -msgid "The rule string (e.g. ``/wiki/:page``)." +msgid "The rule string (e.g. ``/wiki/<page>``)." msgstr "" #: ../../plugindev.rst:112 @@ -344,7 +344,7 @@ msgid "" "different wrapper based on current needs, work with closures, or enable or " "disable a plugin at runtime. Let's take the built-in HooksPlugin as an " "example: If no hooks are installed, the plugin removes itself from all " -"affected routes and has virtaully no overhead. As soon as you install the " +"affected routes and has virtually no overhead. As soon as you install the " "first hook, the plugin activates itself and takes effect again." msgstr "" diff --git a/docs/_locale/pt_BR/LC_MESSAGES/plugins/index.po b/docs/_locale/pt_BR/LC_MESSAGES/plugins/index.po index 2bf27b0..cb95c89 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/plugins/index.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/plugins/index.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: @@ -8,9 +8,9 @@ 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:05+0000\n" -"Last-Translator: defnull <marc@gsites.de>\n" +"POT-Creation-Date: 2020-12-31 18:35+0100\n" +"PO-Revision-Date: 2020-12-31 17:35+0000\n" +"Last-Translator: Igor P. Leroy <ip.leroy@gmail.com>\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -36,16 +36,16 @@ msgid "" msgstr "Dê uma olhada nos :ref:`plugins` para perguntas gerais sobre plugins (instalação, utilização). Se você pretende desenvolver um novo plugin, a página de :doc:`/plugindev` pode ajudá-lo." #: ../../plugins/index.rst:12 -msgid "Bottle-Beaker" -msgstr "" +msgid "`Bottle-Beaker <http://pypi.python.org/pypi/bottle-beaker/>`_" +msgstr "`Bottle-Beaker <http://pypi.python.org/pypi/bottle-beaker/>`_" #: ../../plugins/index.rst:12 msgid "Beaker to session and caching library with WSGI Middleware" msgstr "Beaker para sessões e biblioteca de cache com Middleware WSGI" #: ../../plugins/index.rst:15 -msgid "Bottle-Cork" -msgstr "" +msgid "`Bottle-Cork <http://cork.firelet.net/>`_" +msgstr "`Bottle-Cork <http://cork.firelet.net/>`_" #: ../../plugins/index.rst:15 msgid "" @@ -54,112 +54,188 @@ msgid "" msgstr "Cork fornece um simples conjunto de métodos para implementar Autenticação e Autorização em aplicações web baseadas em Bottle." #: ../../plugins/index.rst:18 -msgid "Bottle-Extras" +msgid "`Bottle-Cors-plugin <http://pypi.org/project/bottle-cors-plugin/>`_" msgstr "" #: ../../plugins/index.rst:18 -msgid "Meta package to install the bottle plugin collection." -msgstr "Meta pacotes para instalar a coleção de plugins do Bottle." +msgid "" +"Cors-plugin is the easiest way to implement cors on your bottle web " +"application" +msgstr "" #: ../../plugins/index.rst:21 -msgid "Bottle-Flash" -msgstr "" +msgid "`Bottle-Extras <http://pypi.python.org/pypi/bottle-extras/>`_" +msgstr "`Bottle-Extras <http://pypi.python.org/pypi/bottle-extras/>`_" #: ../../plugins/index.rst:21 -msgid "flash plugin for bottle" -msgstr "plugin flash para bottle" +msgid "Meta package to install the bottle plugin collection." +msgstr "Meta pacotes para instalar a coleção de plugins do Bottle." #: ../../plugins/index.rst:24 -msgid "Bottle-Hotqueue" -msgstr "" +msgid "`Bottle-Flash <http://pypi.python.org/pypi/bottle-flash/>`_" +msgstr "`Bottle-Flash <http://pypi.python.org/pypi/bottle-flash/>`_" #: ../../plugins/index.rst:24 -msgid "FIFO Queue for Bottle built upon redis" -msgstr "Fila FIFO para Bottle escrita sobre Redis." +msgid "flash plugin for bottle" +msgstr "plugin flash para bottle" #: ../../plugins/index.rst:27 -msgid "Macaron" -msgstr "" +msgid "`Bottle-Hotqueue <http://pypi.python.org/pypi/bottle-hotqueue/>`_" +msgstr "`Bottle-Hotqueue <http://pypi.python.org/pypi/bottle-hotqueue/>`_" #: ../../plugins/index.rst:27 -msgid "Macaron is an object-relational mapper (ORM) for SQLite." -msgstr "Macaron é um mapeamento objeto-relacional (ORM) para SQLite." +msgid "FIFO Queue for Bottle built upon redis" +msgstr "Fila FIFO para Bottle escrita sobre Redis." #: ../../plugins/index.rst:30 -msgid "Bottle-Memcache" -msgstr "" +msgid "`Macaron <http://nobrin.github.com/macaron/webapp.html>`_" +msgstr "`Macaron <http://nobrin.github.com/macaron/webapp.html>`_" #: ../../plugins/index.rst:30 -msgid "Memcache integration for Bottle." -msgstr "Integração com Memcache para Bottle." +msgid "Macaron is an object-relational mapper (ORM) for SQLite." +msgstr "Macaron é um mapeamento objeto-relacional (ORM) para SQLite." #: ../../plugins/index.rst:33 -msgid "Bottle-Mongo" -msgstr "" +msgid "`Bottle-Memcache <http://pypi.python.org/pypi/bottle-memcache/>`_" +msgstr "`Bottle-Memcache <http://pypi.python.org/pypi/bottle-memcache/>`_" #: ../../plugins/index.rst:33 -msgid "MongoDB integration for Bottle" -msgstr "Integração com MongoDB para Bottle" +msgid "Memcache integration for Bottle." +msgstr "Integração com Memcache para Bottle." #: ../../plugins/index.rst:36 -msgid "Bottle-Redis" -msgstr "" +msgid "`Bottle-Mongo <http://pypi.python.org/pypi/bottle-mongo/>`_" +msgstr "`Bottle-Mongo <http://pypi.python.org/pypi/bottle-mongo/>`_" #: ../../plugins/index.rst:36 -msgid "Redis integration for Bottle." -msgstr "Integração com Redis para Bottle." +msgid "MongoDB integration for Bottle" +msgstr "Integração com MongoDB para Bottle" #: ../../plugins/index.rst:39 -msgid "Bottle-Renderer" +msgid "`Bottle-OAuthlib <http://pypi.python.org/pypi/bottle-oauthlib/>`_" msgstr "" #: ../../plugins/index.rst:39 -msgid "Renderer plugin for bottle" -msgstr "Renderer plugin para bottle" +msgid "Adapter for oauthlib - create your own OAuth2.0 implementation" +msgstr "" #: ../../plugins/index.rst:42 -msgid "Bottle-Servefiles" -msgstr "" +msgid "`Bottle-Redis <http://pypi.python.org/pypi/bottle-redis/>`_" +msgstr "`Bottle-Redis <http://pypi.python.org/pypi/bottle-redis/>`_" #: ../../plugins/index.rst:42 -msgid "A reusable app that serves static files for bottle apps" -msgstr "App reutilizável que serve arquivos estáticos para aplicações bottle" +msgid "Redis integration for Bottle." +msgstr "Integração com Redis para Bottle." #: ../../plugins/index.rst:45 -msgid "Bottle-Sqlalchemy" -msgstr "" +msgid "`Bottle-Renderer <http://pypi.python.org/pypi/bottle-renderer/>`_" +msgstr "`Bottle-Renderer <http://pypi.python.org/pypi/bottle-renderer/>`_" #: ../../plugins/index.rst:45 -msgid "SQLAlchemy integration for Bottle." -msgstr "Integração com SQLAlchemy para Bottle." +msgid "Renderer plugin for bottle" +msgstr "Renderer plugin para bottle" #: ../../plugins/index.rst:48 -msgid "Bottle-Sqlite" -msgstr "" +msgid "`Bottle-Servefiles <http://pypi.python.org/pypi/bottle-servefiles/>`_" +msgstr "`Bottle-Servefiles <http://pypi.python.org/pypi/bottle-servefiles/>`_" #: ../../plugins/index.rst:48 -msgid "SQLite3 database integration for Bottle." -msgstr "Integração com bancos de dados SQLite3 para Bottle." +msgid "A reusable app that serves static files for bottle apps" +msgstr "App reutilizável que serve arquivos estáticos para aplicações bottle" #: ../../plugins/index.rst:51 -msgid "Bottle-Web2pydal" -msgstr "" +msgid "`Bottle-Sqlalchemy <http://pypi.python.org/pypi/bottle-sqlalchemy/>`_" +msgstr "`Bottle-Sqlalchemy <http://pypi.python.org/pypi/bottle-sqlalchemy/>`_" #: ../../plugins/index.rst:51 -msgid "Web2py Dal integration for Bottle." -msgstr "Integração com Web2py Dal para Bottle." +msgid "SQLAlchemy integration for Bottle." +msgstr "Integração com SQLAlchemy para Bottle." #: ../../plugins/index.rst:54 -msgid "Bottle-Werkzeug" -msgstr "" +msgid "`Bottle-Sqlite <http://pypi.python.org/pypi/bottle-sqlite/>`_" +msgstr "`Bottle-Sqlite <http://pypi.python.org/pypi/bottle-sqlite/>`_" #: ../../plugins/index.rst:54 +msgid "SQLite3 database integration for Bottle." +msgstr "Integração com bancos de dados SQLite3 para Bottle." + +#: ../../plugins/index.rst:57 +msgid "`Bottle-Web2pydal <http://pypi.python.org/pypi/bottle-web2pydal/>`_" +msgstr "`Bottle-Web2pydal <http://pypi.python.org/pypi/bottle-web2pydal/>`_" + +#: ../../plugins/index.rst:57 +msgid "Web2py Dal integration for Bottle." +msgstr "Integração com Web2py Dal para Bottle." + +#: ../../plugins/index.rst:60 +msgid "`Bottle-Werkzeug <http://pypi.python.org/pypi/bottle-werkzeug/>`_" +msgstr "`Bottle-Werkzeug <http://pypi.python.org/pypi/bottle-werkzeug/>`_" + +#: ../../plugins/index.rst:60 msgid "" "Integrates the `werkzeug` library (alternative request and response objects," " advanced debugging middleware and more)." msgstr "Integra a biblioteca `werkzeug` (request alternativo and objetos de response, middleware de debugging avançados e etc)." -#: ../../plugins/index.rst:56 +#: ../../plugins/index.rst:63 +msgid "" +"`bottle-smart-filters <https://github.com/agile4you/bottle-smart-filters/>`_" +msgstr "" + +#: ../../plugins/index.rst:63 +msgid "Bottle Querystring smart guessing." +msgstr "" + +#: ../../plugins/index.rst:66 +msgid "`bottle-jwt <https://github.com/agile4you/bottle-jwt/>`_" +msgstr "" + +#: ../../plugins/index.rst:66 +msgid "JSON Web Token authentication plugin for bottle.py" +msgstr "" + +#: ../../plugins/index.rst:69 +msgid "`Bottle-jwt <https://github.com/agalera/bottlejwt>`_" +msgstr "" + +#: ../../plugins/index.rst:69 +msgid "JWT integration for bottle" +msgstr "" + +#: ../../plugins/index.rst:72 +msgid "`canister <https://github.com/dagnelies/canister>`_" +msgstr "" + +#: ../../plugins/index.rst:72 +msgid "a bottle wrapper to provide logging, sessions and authentication" +msgstr "" + +#: ../../plugins/index.rst:75 +msgid "`bottle-cerberus <https://github.com/agalera/bottle-cerberus>`_" +msgstr "" + +#: ../../plugins/index.rst:75 +msgid "Cerberus integration for bottle" +msgstr "" + +#: ../../plugins/index.rst:78 +msgid "`Bottle-errorsrest <https://github.com/agalera/bottle-errorsrest>`_" +msgstr "" + +#: ../../plugins/index.rst:78 +msgid "All errors generated from bottle are returned in json" +msgstr "" + +#: ../../plugins/index.rst:82 +msgid "`Bottle-tools <https://github.com/theSage21/bottle-tools>`_" +msgstr "" + +#: ../../plugins/index.rst:81 +msgid "" +"Decorators that auto-supply function arguments using POST/query string data." +msgstr "" + +#: ../../plugins/index.rst:84 msgid "" "Plugins listed here are not part of Bottle or the Bottle project, but " "developed and maintained by third parties." diff --git a/docs/_locale/pt_BR/LC_MESSAGES/recipes.po b/docs/_locale/pt_BR/LC_MESSAGES/recipes.po index f6dc330..e92d01a 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/recipes.po +++ b/docs/_locale/pt_BR/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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../recipes.rst:66 +#: ../../recipes.rst:69 msgid "A simple example using `Nose <http://readthedocs.org/docs/nose>`_::" msgstr "" -#: ../../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 "" -#: ../../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 "" -#: ../../recipes.rst:92 +#: ../../recipes.rst:112 msgid "" "Example using `WebTest <http://webtest.pythonpaste.org/>`_ and `Nose " "<http://readthedocs.org/docs/nose>`_::" msgstr "" -#: ../../recipes.rst:112 +#: ../../recipes.rst:132 msgid "Embedding other WSGI Apps" msgstr "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "Notas de rodapé" -#: ../../recipes.rst:163 +#: ../../recipes.rst:183 msgid "Because they are. See <http://www.ietf.org/rfc/rfc3986.txt>" msgstr "" -#: ../../recipes.rst:167 +#: ../../recipes.rst:187 msgid "Keep-alive requests" msgstr "" -#: ../../recipes.rst:171 +#: ../../recipes.rst:191 msgid "For a more detailed explanation, see :doc:`async`." msgstr "" -#: ../../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 "" -#: ../../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 "" -#: ../../recipes.rst:193 +#: ../../recipes.rst:213 msgid "Gzip Compression in Bottle" msgstr "" -#: ../../recipes.rst:196 +#: ../../recipes.rst:216 msgid "For a detailed discussion, see compression_" msgstr "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../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 "" -#: ../../recipes.rst:241 +#: ../../recipes.rst:261 msgid "Using Bottle with Heroku" msgstr "" -#: ../../recipes.rst:243 +#: ../../recipes.rst:263 msgid "" "Heroku_, a popular cloud application platform now provides support for " "running Python applications on their infastructure." msgstr "" -#: ../../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 "" -#: ../../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." diff --git a/docs/_locale/pt_BR/LC_MESSAGES/routing.po b/docs/_locale/pt_BR/LC_MESSAGES/routing.po index b182545..a473047 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/routing.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/routing.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,9 +7,9 @@ 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-01-22 19:20+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -95,15 +95,24 @@ msgstr "" #: ../../routing.rst:29 msgid "" +"Is it possible to escape characters like colon ``:`` with a backslash " +"``\\``. This will prevent to trigger the old syntax in case you need to use " +"``:``. For example: the rule ``/<action>/item:<id>`` triggers the old " +"syntax, (see below) but ``/action/item\\:<id>`` works as intended with the " +"new syntax." +msgstr "" + +#: ../../routing.rst:33 +msgid "" "You can change the exact behaviour in many ways using filters. This is " "described in the next section." msgstr "" -#: ../../routing.rst:32 +#: ../../routing.rst:36 msgid "Wildcard Filters" msgstr "" -#: ../../routing.rst:36 +#: ../../routing.rst:40 msgid "" "Filters are used to define more specific wildcards, and/or transform the " "matched part of the URL before it is passed to the callback. A filtered " @@ -111,31 +120,31 @@ msgid "" "syntax for the optional config part depends on the filter used." msgstr "" -#: ../../routing.rst:38 +#: ../../routing.rst:42 msgid "The following standard filters are implemented:" msgstr "" -#: ../../routing.rst:40 +#: ../../routing.rst:44 msgid "**:int** matches (signed) digits and converts the value to integer." msgstr "" -#: ../../routing.rst:41 +#: ../../routing.rst:45 msgid "**:float** similar to :int but for decimal numbers." msgstr "" -#: ../../routing.rst:42 +#: ../../routing.rst:46 msgid "" "**:path** matches all characters including the slash character in a non-" "greedy way and may be used to match more than one path segment." msgstr "" -#: ../../routing.rst:43 +#: ../../routing.rst:47 msgid "" "**:re[:exp]** allows you to specify a custom regular expression in the " "config field. The matched value is not modified." msgstr "" -#: ../../routing.rst:45 +#: ../../routing.rst:49 msgid "" "You can add your own filters to the router. All you need is a function that " "returns three elements: A regular expression string, a callable to convert " @@ -144,81 +153,81 @@ msgid "" "parameter and may parse it as needed::" msgstr "" -#: ../../routing.rst:71 +#: ../../routing.rst:75 msgid "Legacy Syntax" msgstr "" -#: ../../routing.rst:75 +#: ../../routing.rst:79 msgid "" "The new rule syntax was introduce in **Bottle 0.10** to simplify some common" " use cases, but the old syntax still works and you can find lot code " "examples still using it. The differences are best described by example:" msgstr "" -#: ../../routing.rst:78 +#: ../../routing.rst:82 msgid "Old Syntax" msgstr "" -#: ../../routing.rst:78 +#: ../../routing.rst:82 msgid "New Syntax" msgstr "" -#: ../../routing.rst:80 +#: ../../routing.rst:84 msgid "``:name``" msgstr "" -#: ../../routing.rst:80 +#: ../../routing.rst:84 msgid "``<name>``" msgstr "" -#: ../../routing.rst:81 +#: ../../routing.rst:85 msgid "``:name#regexp#``" msgstr "" -#: ../../routing.rst:81 +#: ../../routing.rst:85 msgid "``<name:re:regexp>``" msgstr "" -#: ../../routing.rst:82 +#: ../../routing.rst:86 msgid "``:#regexp#``" msgstr "" -#: ../../routing.rst:82 +#: ../../routing.rst:86 msgid "``<:re:regexp>``" msgstr "" -#: ../../routing.rst:83 +#: ../../routing.rst:87 msgid "``:##``" msgstr "" -#: ../../routing.rst:83 +#: ../../routing.rst:87 msgid "``<:re>``" msgstr "" -#: ../../routing.rst:86 +#: ../../routing.rst:90 msgid "" "Try to avoid the old syntax in future projects if you can. It is not " "currently deprecated, but will be eventually." msgstr "" -#: ../../routing.rst:91 +#: ../../routing.rst:95 msgid "Explicit routing configuration" msgstr "" -#: ../../routing.rst:93 +#: ../../routing.rst:97 msgid "" "Route decorator can also be directly called as method. This way provides " "flexibility in complex setups, allowing you to directly control, when and " "how routing configuration done." msgstr "" -#: ../../routing.rst:95 +#: ../../routing.rst:99 msgid "" "Here is a basic example of explicit routing configuration for default bottle" " application::" msgstr "" -#: ../../routing.rst:101 +#: ../../routing.rst:105 msgid "" "In fact, any :class:`Bottle` instance routing can be configured same way::" msgstr "" diff --git a/docs/_locale/pt_BR/LC_MESSAGES/stpl.po b/docs/_locale/pt_BR/LC_MESSAGES/stpl.po index 5471eeb..d1c782f 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/stpl.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/stpl.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 20:58+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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -142,47 +142,55 @@ msgstr "" #: ../../stpl.rst:96 msgid "" -"If you find yourself to escape a lot, consider using :ref:`custom tokens " -"<stpl-custom-tokens>`." +"If you find yourself needing to escape a lot, consider using :ref:`custom " +"tokens <stpl-custom-tokens>`." msgstr "" -#: ../../stpl.rst:99 +#: ../../stpl.rst:98 +msgid "" +"Note that ``%`` and ``<% %>`` work in *exactly* the same way. The latter is " +"only a convenient way to type less and avoid clutter for longer code " +"segments. This means that in ``<% %>`` blocks, all indented code must be " +"terminated with an ``end``, as in the following example::" +msgstr "" + +#: ../../stpl.rst:114 msgid "Whitespace Control" msgstr "" -#: ../../stpl.rst:101 +#: ../../stpl.rst:116 msgid "" "Code blocks and code lines always span the whole line. Whitespace in front " "of after a code segment is stripped away. You won't see empty lines or " "dangling whitespace in your template because of embedded code::" msgstr "" -#: ../../stpl.rst:109 +#: ../../stpl.rst:124 msgid "This snippet renders to clean and compact html::" msgstr "" -#: ../../stpl.rst:115 +#: ../../stpl.rst:130 msgid "" "But embedding code still requires you to start a new line, which may not " "what you want to see in your rendered template. To skip the newline in front" " of a code segment, end the text line with a double-backslash::" msgstr "" -#: ../../stpl.rst:123 +#: ../../stpl.rst:138 msgid "This time the rendered template looks like this::" msgstr "" -#: ../../stpl.rst:127 +#: ../../stpl.rst:142 msgid "" "This only works directly in front of code segments. In all other places you " "can control the whitespace yourself and don't need any special syntax." msgstr "" -#: ../../stpl.rst:130 +#: ../../stpl.rst:145 msgid "Template Functions" msgstr "" -#: ../../stpl.rst:132 +#: ../../stpl.rst:147 msgid "" "Each template is preloaded with a bunch of functions that help with the most" " common use cases. These functions are always available. You don't have to " @@ -191,20 +199,20 @@ msgid "" "anything you want within your templates. They are python programs after all." msgstr "" -#: ../../stpl.rst:136 +#: ../../stpl.rst:151 msgid "" "Prior to this release, :func:`include` and :func:`rebase` were syntax " "keywords, not functions." msgstr "" -#: ../../stpl.rst:141 +#: ../../stpl.rst:156 msgid "" "Render a sub-template with the specified variables and insert the resulting " "text into the current template. The function returns a dictionary containing" " the local variables passed to or defined within the sub-template::" msgstr "" -#: ../../stpl.rst:149 +#: ../../stpl.rst:164 msgid "" "Mark the current template to be later included into a different template. " "After the current template is rendered, its resulting text is stored in a " @@ -213,11 +221,11 @@ msgid "" "simulate the inheritance feature found in other template engines::" msgstr "" -#: ../../stpl.rst:154 +#: ../../stpl.rst:169 msgid "This can be combined with the following ``base.tpl``::" msgstr "" -#: ../../stpl.rst:166 +#: ../../stpl.rst:181 msgid "" "Accessing undefined variables in a template raises :exc:`NameError` and " "stops rendering immediately. This is standard python behavior and nothing " @@ -226,32 +234,38 @@ msgid "" "or use the same template in different situations. These functions may help:" msgstr "" -#: ../../stpl.rst:174 +#: ../../stpl.rst:189 msgid "" "Return True if the variable is defined in the current template namespace, " "False otherwise." msgstr "" -#: ../../stpl.rst:179 +#: ../../stpl.rst:194 msgid "Return the variable, or a default value." msgstr "" -#: ../../stpl.rst:183 +#: ../../stpl.rst:198 msgid "" "If the variable is not defined, create it with the given default value. " "Return the variable." msgstr "" -#: ../../stpl.rst:186 +#: ../../stpl.rst:201 msgid "" "Here is an example that uses all three functions to implement optional " "template variables in different ways::" msgstr "" -#: ../../stpl.rst:200 +#: ../../stpl.rst:215 msgid ":class:`SimpleTemplate` API" msgstr "" +#: ../../../bottle.pydocstring of bottle.SimpleTemplate.prepare:1 +msgid "" +"Run preparations (parsing, caching, ...). It should be possible to call this" +" again to refresh a template or to update settings." +msgstr "" + #: ../../../bottle.pydocstring of bottle.SimpleTemplate.render:1 msgid "Render the template using keyword arguments as local variables." msgstr "" diff --git a/docs/_locale/pt_BR/LC_MESSAGES/tutorial.po b/docs/_locale/pt_BR/LC_MESSAGES/tutorial.po index b1e2e1b..75ff730 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/tutorial.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/tutorial.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: @@ -9,9 +9,9 @@ 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-14 18:13+0000\n" -"Last-Translator: alephmelo <alephmelo@icloud.com>\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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -62,7 +62,7 @@ msgid "" "applications. If you do not have permissions to install packages system-wide" " or simply don't want to, create a `virtualenv " "<http://pypi.python.org/pypi/virtualenv>`_ first:" -msgstr "De qualquer maneira, você irá precisar do Python 2.7 ou mais recente (incluindo 3.4+) para executar aplicações bottle. Se você não tem permissões para instalar pacotes globalmente no sistema ou simplesmente não deseja fazer, crie uma `virtualenv <http://pypi.python.org/pypi/virtualenv>`_ primeiro:" +msgstr "" #: ../../tutorial.rst:55 msgid "Or, if virtualenv is not installed on your system:" @@ -382,7 +382,7 @@ msgid "" msgstr "" #: ../../tutorial.rst:273 -msgid "Empty Strings, False, None or other non-true values:" +msgid "Empty Strings, ``False``, ``None`` or other non-true values:" msgstr "" #: ../../tutorial.rst:273 @@ -415,7 +415,7 @@ msgid "" msgstr "" #: ../../tutorial.rst:282 -msgid "Instances of HTTPError or HTTPResponse" +msgid "Instances of :exc:`HTTPError` or :exc:`HTTPResponse`" msgstr "" #: ../../tutorial.rst:282 @@ -545,7 +545,7 @@ msgstr "" #: ../../tutorial.rst:365 msgid "" "Both functions will interrupt your callback code by raising an " -":exc:`HTTPError` exception." +":exc:`HTTPResponse` exception." msgstr "" #: ../../tutorial.rst:368 @@ -614,7 +614,7 @@ msgid "" "read :ref:`ahead <tutorial-cookies>`." msgstr "" -#: ../../tutorial.rst:403 ../../tutorial.rst:532 +#: ../../tutorial.rst:403 ../../tutorial.rst:533 msgid "Cookies" msgstr "" @@ -661,25 +661,32 @@ msgid "" " off, requires Python 2.7 or newer)." msgstr "" -#: ../../tutorial.rst:424 +#: ../../tutorial.rst:423 +msgid "" +"**same_site:** Disables third-party use for a cookie. Allowed attributes: " +"`lax` and `strict`. In strict mode the cookie will never be sent. In lax " +"mode the cookie is only sent with a top-level GET request." +msgstr "" + +#: ../../tutorial.rst:425 msgid "" "If neither `expires` nor `max_age` is set, the cookie expires at the end of " "the browser session or as soon as the browser window is closed. There are " "some other gotchas you should consider when using cookies:" msgstr "" -#: ../../tutorial.rst:426 +#: ../../tutorial.rst:427 msgid "Cookies are limited to 4 KB of text in most browsers." msgstr "" -#: ../../tutorial.rst:427 +#: ../../tutorial.rst:428 msgid "" "Some users configure their browsers to not accept cookies at all. Most " "search engines ignore cookies too. Make sure that your application still " "works without cookies." msgstr "" -#: ../../tutorial.rst:428 +#: ../../tutorial.rst:429 msgid "" "Cookies are stored at client side and are not encrypted in any way. Whatever" " you store in a cookie, the user can read it. Worse than that, an attacker " @@ -689,15 +696,15 @@ msgid "" "cookies, too. Thus, never store confidential information in cookies." msgstr "" -#: ../../tutorial.rst:429 +#: ../../tutorial.rst:430 msgid "Cookies are easily forged by malicious clients. Do not trust cookies." msgstr "" -#: ../../tutorial.rst:434 +#: ../../tutorial.rst:435 msgid "Signed Cookies" msgstr "" -#: ../../tutorial.rst:435 +#: ../../tutorial.rst:436 msgid "" "As mentioned above, cookies are easily forged by malicious clients. Bottle " "can cryptographically sign your cookies to prevent this kind of " @@ -707,7 +714,7 @@ msgid "" "if the cookie is not signed or the signature keys don't match::" msgstr "" -#: ../../tutorial.rst:455 +#: ../../tutorial.rst:456 msgid "" "In addition, Bottle automatically pickles and unpickles any data stored to " "signed cookies. This allows you to store any pickle-able object (not only " @@ -715,7 +722,7 @@ msgid "" "limit." msgstr "" -#: ../../tutorial.rst:457 +#: ../../tutorial.rst:458 msgid "" "Signed cookies are not encrypted (the client can still see the content) and " "not copy-protected (the client can restore an old cookie). The main " @@ -723,11 +730,11 @@ msgid "" "not to store secret information at client side." msgstr "" -#: ../../tutorial.rst:470 +#: ../../tutorial.rst:471 msgid "Request Data" msgstr "" -#: ../../tutorial.rst:472 +#: ../../tutorial.rst:473 msgid "" "Cookies, HTTP header, HTML ``<form>`` fields and other request data is " "available through the global :data:`request` object. This special object " @@ -735,25 +742,25 @@ msgid "" "where multiple client connections are handled at the same time::" msgstr "" -#: ../../tutorial.rst:481 +#: ../../tutorial.rst:482 msgid "" "The :data:`request` object is a subclass of :class:`BaseRequest` and has a " "very rich API to access data. We only cover the most commonly used features " "here, but it should be enough to get started." msgstr "" -#: ../../tutorial.rst:486 +#: ../../tutorial.rst:487 msgid "Introducing :class:`FormsDict`" msgstr "" -#: ../../tutorial.rst:488 +#: ../../tutorial.rst:489 msgid "" "Bottle uses a special type of dictionary to store form data and cookies. " ":class:`FormsDict` behaves like a normal dictionary, but has some additional" " features to make your life easier." msgstr "" -#: ../../tutorial.rst:490 +#: ../../tutorial.rst:491 msgid "" "**Attribute access**: All values in the dictionary are also accessible as " "attributes. These virtual attributes return unicode strings, even if the " @@ -761,7 +768,7 @@ msgid "" "empty, but still present::" msgstr "" -#: ../../tutorial.rst:505 +#: ../../tutorial.rst:506 msgid "" "**Multiple values per key:** :class:`FormsDict` is a subclass of " ":class:`MultiDict` and can store more than one value per key. The standard " @@ -770,7 +777,7 @@ msgid "" "values for a specific key::" msgstr "" -#: ../../tutorial.rst:510 +#: ../../tutorial.rst:511 msgid "" "**WTForms support:** Some libraries (e.g. `WTForms " "<http://wtforms.simplecodes.com/>`_) want all-unicode dictionaries as input." @@ -779,7 +786,7 @@ msgid "" "the other features." msgstr "" -#: ../../tutorial.rst:514 +#: ../../tutorial.rst:515 msgid "" "In **Python 2** all keys and values are byte-strings. If you need unicode, " "you can call :meth:`FormsDict.getunicode` or fetch values via attribute " @@ -787,7 +794,7 @@ msgid "" "empty string if that fails. No need to catch :exc:`UnicodeError`::" msgstr "" -#: ../../tutorial.rst:521 +#: ../../tutorial.rst:522 msgid "" "In **Python 3** all strings are unicode, but HTTP is a byte-based wire " "protocol. The server has to decode the byte strings somehow before they are " @@ -799,13 +806,13 @@ msgid "" " not what you want." msgstr "" -#: ../../tutorial.rst:528 +#: ../../tutorial.rst:529 msgid "" "If you need the whole dictionary with correctly decoded values (e.g. for " "WTForms), you can call :meth:`FormsDict.decode` to get a re-encoded copy." msgstr "" -#: ../../tutorial.rst:534 +#: ../../tutorial.rst:535 msgid "" "Cookies are small pieces of text stored in the clients browser and sent back" " to the server with each request. They are useful to keep some state around " @@ -813,25 +820,25 @@ msgid "" " for security related stuff. They can be easily forged by the client." msgstr "" -#: ../../tutorial.rst:536 +#: ../../tutorial.rst:537 msgid "" "All cookies sent by the client are available through " ":attr:`BaseRequest.cookies` (a :class:`FormsDict`). This example shows a " "simple cookie-based view counter::" msgstr "" -#: ../../tutorial.rst:546 +#: ../../tutorial.rst:547 msgid "" "The :meth:`BaseRequest.get_cookie` method is a different way do access " "cookies. It supports decoding :ref:`signed cookies <tutorial-signed-" "cookies>` as described in a separate section." msgstr "" -#: ../../tutorial.rst:549 +#: ../../tutorial.rst:550 msgid "HTTP Headers" msgstr "" -#: ../../tutorial.rst:551 +#: ../../tutorial.rst:552 msgid "" "All HTTP headers sent by the client (e.g. ``Referer``, ``Agent`` or " "``Accept-Language``) are stored in a :class:`WSGIHeaderDict` and accessible " @@ -839,11 +846,11 @@ msgid "" " is basically a dictionary with case-insensitive keys::" msgstr "" -#: ../../tutorial.rst:563 +#: ../../tutorial.rst:564 msgid "Query Variables" msgstr "" -#: ../../tutorial.rst:565 +#: ../../tutorial.rst:566 msgid "" "The query string (as in ``/forum?id=1&page=5``) is commonly used to transmit" " a small number of key/value pairs to the server. You can use the " @@ -852,17 +859,17 @@ msgid "" "string." msgstr "" -#: ../../tutorial.rst:578 +#: ../../tutorial.rst:579 msgid "HTML `<form>` Handling" msgstr "" -#: ../../tutorial.rst:580 +#: ../../tutorial.rst:581 msgid "" "Let us start from the beginning. In HTML, a typical ``<form>`` looks " "something like this:" msgstr "" -#: ../../tutorial.rst:590 +#: ../../tutorial.rst:591 msgid "" "The ``action`` attribute specifies the URL that will receive the form data. " "``method`` defines the HTTP method to use (``GET`` or ``POST``). With " @@ -872,77 +879,77 @@ msgid "" "in doubt, use ``POST`` forms." msgstr "" -#: ../../tutorial.rst:592 +#: ../../tutorial.rst:593 msgid "" "Form fields transmitted via ``POST`` are stored in :attr:`BaseRequest.forms`" " as a :class:`FormsDict`. The server side code may look like this::" msgstr "" -#: ../../tutorial.rst:615 +#: ../../tutorial.rst:616 msgid "" "There are several other attributes used to access form data. Some of them " "combine values from different sources for easier access. The following table" " should give you a decent overview." msgstr "" -#: ../../tutorial.rst:618 +#: ../../tutorial.rst:619 msgid "Attribute" msgstr "" -#: ../../tutorial.rst:618 +#: ../../tutorial.rst:619 msgid "GET Form fields" msgstr "" -#: ../../tutorial.rst:618 +#: ../../tutorial.rst:619 msgid "POST Form fields" msgstr "" -#: ../../tutorial.rst:618 +#: ../../tutorial.rst:619 msgid "File Uploads" msgstr "" -#: ../../tutorial.rst:620 +#: ../../tutorial.rst:621 msgid ":attr:`BaseRequest.query`" msgstr "" -#: ../../tutorial.rst:620 ../../tutorial.rst:621 ../../tutorial.rst:622 -#: ../../tutorial.rst:623 ../../tutorial.rst:623 ../../tutorial.rst:624 -#: ../../tutorial.rst:625 ../../tutorial.rst:625 +#: ../../tutorial.rst:621 ../../tutorial.rst:622 ../../tutorial.rst:623 +#: ../../tutorial.rst:624 ../../tutorial.rst:624 ../../tutorial.rst:625 +#: ../../tutorial.rst:626 ../../tutorial.rst:626 msgid "yes" msgstr "" -#: ../../tutorial.rst:620 ../../tutorial.rst:620 ../../tutorial.rst:621 -#: ../../tutorial.rst:621 ../../tutorial.rst:622 ../../tutorial.rst:622 -#: ../../tutorial.rst:623 ../../tutorial.rst:624 ../../tutorial.rst:624 -#: ../../tutorial.rst:625 +#: ../../tutorial.rst:621 ../../tutorial.rst:621 ../../tutorial.rst:622 +#: ../../tutorial.rst:622 ../../tutorial.rst:623 ../../tutorial.rst:623 +#: ../../tutorial.rst:624 ../../tutorial.rst:625 ../../tutorial.rst:625 +#: ../../tutorial.rst:626 msgid "no" msgstr "" -#: ../../tutorial.rst:621 +#: ../../tutorial.rst:622 msgid ":attr:`BaseRequest.forms`" msgstr "" -#: ../../tutorial.rst:622 +#: ../../tutorial.rst:623 msgid ":attr:`BaseRequest.files`" msgstr "" -#: ../../tutorial.rst:623 +#: ../../tutorial.rst:624 msgid ":attr:`BaseRequest.params`" msgstr "" -#: ../../tutorial.rst:624 +#: ../../tutorial.rst:625 msgid ":attr:`BaseRequest.GET`" msgstr "" -#: ../../tutorial.rst:625 +#: ../../tutorial.rst:626 msgid ":attr:`BaseRequest.POST`" msgstr "" -#: ../../tutorial.rst:630 +#: ../../tutorial.rst:631 msgid "File uploads" msgstr "" -#: ../../tutorial.rst:632 +#: ../../tutorial.rst:633 msgid "" "To support file uploads, we have to change the ``<form>`` tag a bit. First, " "we tell the browser to encode the form data in a different way by adding an " @@ -951,14 +958,14 @@ msgid "" "Here is an example:" msgstr "" -#: ../../tutorial.rst:642 +#: ../../tutorial.rst:643 msgid "" "Bottle stores file uploads in :attr:`BaseRequest.files` as " ":class:`FileUpload` instances, along with some metadata about the upload. " "Let us assume you just want to save the file to disk::" msgstr "" -#: ../../tutorial.rst:656 +#: ../../tutorial.rst:657 msgid "" ":attr:`FileUpload.filename` contains the name of the file on the clients " "file system, but is cleaned up and normalized to prevent bugs caused by " @@ -967,7 +974,7 @@ msgid "" ":attr:`FileUpload.raw_filename`." msgstr "" -#: ../../tutorial.rst:658 +#: ../../tutorial.rst:659 msgid "" "The :attr:`FileUpload.save` method is highly recommended if you want to " "store the file to disk. It prevents some common errors (e.g. it does not " @@ -976,22 +983,22 @@ msgid "" ":attr:`FileUpload.file`. Just be careful." msgstr "" -#: ../../tutorial.rst:662 +#: ../../tutorial.rst:663 msgid "JSON Content" msgstr "" -#: ../../tutorial.rst:664 +#: ../../tutorial.rst:665 msgid "" "Some JavaScript or REST clients send ``application/json`` content to the " "server. The :attr:`BaseRequest.json` attribute contains the parsed data " "structure, if available." msgstr "" -#: ../../tutorial.rst:668 +#: ../../tutorial.rst:669 msgid "The raw request body" msgstr "" -#: ../../tutorial.rst:670 +#: ../../tutorial.rst:671 msgid "" "You can access the raw body data as a file-like object via " ":attr:`BaseRequest.body`. This is a :class:`BytesIO` buffer or a temporary " @@ -1001,24 +1008,24 @@ msgid "" "unbuffered access to the stream, have a look at ``request['wsgi.input']``." msgstr "" -#: ../../tutorial.rst:675 +#: ../../tutorial.rst:676 msgid "WSGI Environment" msgstr "" -#: ../../tutorial.rst:677 +#: ../../tutorial.rst:678 msgid "" "Each :class:`BaseRequest` instance wraps a WSGI environment dictionary. The " "original is stored in :attr:`BaseRequest.environ`, but the request object " "itself behaves like a dictionary, too. Most of the interesting data is " "exposed through special methods or attributes, but if you want to access " -"`WSGI environ variables <WSGI specification>`_ directly, you can do so::" +"`WSGI environ variables <WSGI_Specification>`_ directly, you can do so::" msgstr "" -#: ../../tutorial.rst:695 +#: ../../tutorial.rst:696 msgid "Templates" msgstr "" -#: ../../tutorial.rst:697 +#: ../../tutorial.rst:698 msgid "" "Bottle comes with a fast and powerful built-in template engine called " ":doc:`stpl`. To render a template you can use the :func:`template` function " @@ -1027,7 +1034,7 @@ msgid "" "arguments. Here’s a simple example of how to render a template::" msgstr "" -#: ../../tutorial.rst:704 +#: ../../tutorial.rst:705 msgid "" "This will load the template file ``hello_template.tpl`` and render it with " "the ``name`` variable set. Bottle will look for templates in the " @@ -1035,17 +1042,17 @@ msgid "" "list." msgstr "" -#: ../../tutorial.rst:706 +#: ../../tutorial.rst:707 msgid "" "The :func:`view` decorator allows you to return a dictionary with the " "template variables instead of calling :func:`template`::" msgstr "" -#: ../../tutorial.rst:715 +#: ../../tutorial.rst:716 msgid "Syntax" msgstr "" -#: ../../tutorial.rst:718 +#: ../../tutorial.rst:719 msgid "" "The template syntax is a very thin layer around the Python language. Its " "main purpose is to ensure correct indentation of blocks, so you can format " @@ -1053,26 +1060,26 @@ msgid "" " syntax description: :doc:`stpl`" msgstr "" -#: ../../tutorial.rst:720 +#: ../../tutorial.rst:721 msgid "Here is an example template::" msgstr "" -#: ../../tutorial.rst:731 +#: ../../tutorial.rst:732 msgid "Caching" msgstr "" -#: ../../tutorial.rst:732 +#: ../../tutorial.rst:733 msgid "" "Templates are cached in memory after compilation. Modifications made to the " "template files will have no affect until you clear the template cache. Call " "``bottle.TEMPLATES.clear()`` to do so. Caching is disabled in debug mode." msgstr "" -#: ../../tutorial.rst:742 +#: ../../tutorial.rst:743 msgid "Plugins" msgstr "" -#: ../../tutorial.rst:746 +#: ../../tutorial.rst:747 msgid "" "Bottle's core features cover most common use-cases, but as a micro-framework" " it has its limits. This is where \"Plugins\" come into play. Plugins add " @@ -1080,7 +1087,7 @@ msgid "" "just automate some repetitive work." msgstr "" -#: ../../tutorial.rst:748 +#: ../../tutorial.rst:749 msgid "" "We have a growing :doc:`/plugins/index` and most plugins are designed to be " "portable and re-usable across applications. The chances are high that your " @@ -1088,7 +1095,7 @@ msgid "" "the :doc:`/plugindev` may help you." msgstr "" -#: ../../tutorial.rst:750 +#: ../../tutorial.rst:751 msgid "" "The effects and APIs of plugins are manifold and depend on the specific " "plugin. The ``SQLitePlugin`` plugin for example detects callbacks that " @@ -1097,7 +1104,7 @@ msgid "" "use a database::" msgstr "" -#: ../../tutorial.rst:770 +#: ../../tutorial.rst:771 msgid "" "Other plugin may populate the thread-safe :data:`local` object, change " "details of the :data:`request` object, filter the data returned by the " @@ -1106,11 +1113,11 @@ msgid "" "the original callback. What happens exactly depends on the plugin." msgstr "" -#: ../../tutorial.rst:774 +#: ../../tutorial.rst:775 msgid "Application-wide Installation" msgstr "" -#: ../../tutorial.rst:776 +#: ../../tutorial.rst:777 msgid "" "Plugins can be installed application-wide or just to some specific routes " "that need additional functionality. Most plugins can safely be installed to " @@ -1118,7 +1125,7 @@ msgid "" " need their functionality." msgstr "" -#: ../../tutorial.rst:778 +#: ../../tutorial.rst:779 msgid "" "Let us take the ``SQLitePlugin`` plugin for example. It only affects route " "callbacks that need a database connection. Other routes are left alone. " @@ -1126,13 +1133,13 @@ msgid "" "additional overhead." msgstr "" -#: ../../tutorial.rst:780 +#: ../../tutorial.rst:781 msgid "" "To install a plugin, just call :func:`install` with the plugin as first " "argument::" msgstr "" -#: ../../tutorial.rst:785 +#: ../../tutorial.rst:786 msgid "" "The plugin is not applied to the route callbacks yet. This is delayed to " "make sure no routes are missed. You can install plugins first and add routes" @@ -1141,17 +1148,17 @@ msgid "" "database plugin first." msgstr "" -#: ../../tutorial.rst:789 +#: ../../tutorial.rst:790 msgid "Uninstall Plugins" msgstr "" -#: ../../tutorial.rst:790 +#: ../../tutorial.rst:791 msgid "" "You can use a name, class or instance to :func:`uninstall` a previously " "installed plugin::" msgstr "" -#: ../../tutorial.rst:800 +#: ../../tutorial.rst:801 msgid "" "Plugins can be installed and removed at any time, even at runtime while " "serving requests. This enables some neat tricks (installing slow debugging " @@ -1160,52 +1167,52 @@ msgid "" " re-applied." msgstr "" -#: ../../tutorial.rst:803 +#: ../../tutorial.rst:804 msgid "" "The module-level :func:`install` and :func:`uninstall` functions affect the " ":ref:`default-app`. To manage plugins for a specific application, use the " "corresponding methods on the :class:`Bottle` application object." msgstr "" -#: ../../tutorial.rst:807 +#: ../../tutorial.rst:808 msgid "Route-specific Installation" msgstr "" -#: ../../tutorial.rst:809 +#: ../../tutorial.rst:810 msgid "" "The ``apply`` parameter of the :func:`route` decorator comes in handy if you" " want to install plugins to only a small number of routes::" msgstr "" -#: ../../tutorial.rst:819 +#: ../../tutorial.rst:820 msgid "Blacklisting Plugins" msgstr "" -#: ../../tutorial.rst:821 +#: ../../tutorial.rst:822 msgid "" "You may want to explicitly disable a plugin for a number of routes. The " ":func:`route` decorator has a ``skip`` parameter for this purpose::" msgstr "" -#: ../../tutorial.rst:843 +#: ../../tutorial.rst:844 msgid "" "The ``skip`` parameter accepts a single value or a list of values. You can " "use a name, class or instance to identify the plugin that is to be skipped. " "Set ``skip=True`` to skip all plugins at once." msgstr "" -#: ../../tutorial.rst:846 +#: ../../tutorial.rst:847 msgid "Plugins and Sub-Applications" msgstr "" -#: ../../tutorial.rst:848 +#: ../../tutorial.rst:849 msgid "" "Most plugins are specific to the application they were installed to. " "Consequently, they should not affect sub-applications mounted with " ":meth:`Bottle.mount`. Here is an example::" msgstr "" -#: ../../tutorial.rst:859 +#: ../../tutorial.rst:860 msgid "" "Whenever you mount an application, Bottle creates a proxy-route on the main-" "application that forwards all requests to the sub-application. Plugins are " @@ -1214,13 +1221,13 @@ msgid "" "affect the routes of the ``/blog`` sub-application." msgstr "" -#: ../../tutorial.rst:861 +#: ../../tutorial.rst:862 msgid "" "This behavior is intended as a sane default, but can be overridden. The " "following example re-activates all plugins for a specific proxy-route::" msgstr "" -#: ../../tutorial.rst:865 +#: ../../tutorial.rst:866 msgid "" "But there is a snag: The plugin sees the whole sub-application as a single " "route, namely the proxy-route mentioned above. In order to affect each " @@ -1228,21 +1235,21 @@ msgid "" "the mounted application explicitly." msgstr "" -#: ../../tutorial.rst:870 +#: ../../tutorial.rst:871 msgid "Development" msgstr "" -#: ../../tutorial.rst:872 +#: ../../tutorial.rst:873 msgid "" "So you have learned the basics and want to write your own application? Here " -"are some tips that might help you beeing more productive." +"are some tips that might help you being more productive." msgstr "" -#: ../../tutorial.rst:878 +#: ../../tutorial.rst:879 msgid "Default Application" msgstr "" -#: ../../tutorial.rst:880 +#: ../../tutorial.rst:881 msgid "" "Bottle maintains a global stack of :class:`Bottle` instances and uses the " "top of the stack as a default for some of the module-level functions and " @@ -1250,7 +1257,7 @@ msgid "" "calling :meth:`Bottle.route` on the default application::" msgstr "" -#: ../../tutorial.rst:888 +#: ../../tutorial.rst:889 msgid "" "This is very convenient for small applications and saves you some typing, " "but also means that, as soon as your module is imported, routes are " @@ -1259,28 +1266,28 @@ msgid "" "applications::" msgstr "" -#: ../../tutorial.rst:898 +#: ../../tutorial.rst:899 msgid "" "Separating the application object improves re-usability a lot, too. Other " "developers can safely import the ``app`` object from your module and use " ":meth:`Bottle.mount` to merge applications together." msgstr "" -#: ../../tutorial.rst:903 +#: ../../tutorial.rst:904 msgid "" "Starting with bottle-0.13 you can use :class:`Bottle` instances as context " "managers::" msgstr "" -#: ../../tutorial.rst:928 +#: ../../tutorial.rst:929 msgid "Debug Mode" msgstr "" -#: ../../tutorial.rst:930 +#: ../../tutorial.rst:931 msgid "During early development, the debug mode can be very helpful." msgstr "" -#: ../../tutorial.rst:938 +#: ../../tutorial.rst:939 msgid "" "In this mode, Bottle is much more verbose and provides helpful debugging " "information whenever an error occurs. It also disables some optimisations " @@ -1288,31 +1295,31 @@ msgid "" " misconfiguration." msgstr "" -#: ../../tutorial.rst:940 +#: ../../tutorial.rst:941 msgid "Here is an incomplete list of things that change in debug mode:" msgstr "" -#: ../../tutorial.rst:942 +#: ../../tutorial.rst:943 msgid "The default error page shows a traceback." msgstr "" -#: ../../tutorial.rst:943 +#: ../../tutorial.rst:944 msgid "Templates are not cached." msgstr "" -#: ../../tutorial.rst:944 +#: ../../tutorial.rst:945 msgid "Plugins are applied immediately." msgstr "" -#: ../../tutorial.rst:946 +#: ../../tutorial.rst:947 msgid "Just make sure not to use the debug mode on a production server." msgstr "" -#: ../../tutorial.rst:949 +#: ../../tutorial.rst:950 msgid "Auto Reloading" msgstr "" -#: ../../tutorial.rst:951 +#: ../../tutorial.rst:952 msgid "" "During development, you have to restart the server a lot to test your recent" " changes. The auto reloader can do this for you. Every time you edit a " @@ -1320,14 +1327,14 @@ msgid "" "version of your code." msgstr "" -#: ../../tutorial.rst:961 +#: ../../tutorial.rst:962 msgid "" "How it works: the main process will not start a server, but spawn a new " "child process using the same command line arguments used to start the main " "process. All module-level code is executed at least twice! Be careful." msgstr "" -#: ../../tutorial.rst:966 +#: ../../tutorial.rst:967 msgid "" "The child process will have ``os.environ['BOTTLE_CHILD']`` set to ``True`` " "and start as a normal non-reloading app server. As soon as any of the loaded" @@ -1336,7 +1343,7 @@ msgid "" "debug mode to deactivate template caching." msgstr "" -#: ../../tutorial.rst:972 +#: ../../tutorial.rst:973 msgid "" "The reloading depends on the ability to stop the child process. If you are " "running on Windows or any other operating system not supporting " @@ -1345,21 +1352,21 @@ msgid "" "finally clauses, etc., are not executed after a ``SIGTERM``." msgstr "" -#: ../../tutorial.rst:980 +#: ../../tutorial.rst:981 msgid "Command Line Interface" msgstr "" -#: ../../tutorial.rst:984 +#: ../../tutorial.rst:985 msgid "Starting with version 0.10 you can use bottle as a command-line tool:" msgstr "" -#: ../../tutorial.rst:1008 +#: ../../tutorial.rst:1009 msgid "" "The `ADDRESS` field takes an IP address or an IP:PORT pair and defaults to " "``localhost:8080``. The other parameters should be self-explanatory." msgstr "" -#: ../../tutorial.rst:1010 +#: ../../tutorial.rst:1011 msgid "" "Both plugins and applications are specified via import expressions. These " "consist of an import path (e.g. ``package.module``) and an expression to be " @@ -1367,52 +1374,52 @@ msgid "" ":func:`load` for details. Here are some examples:" msgstr "" -#: ../../tutorial.rst:1031 +#: ../../tutorial.rst:1032 msgid "Deployment" msgstr "" -#: ../../tutorial.rst:1033 +#: ../../tutorial.rst:1034 msgid "" "Bottle runs on the built-in `wsgiref WSGIServer " "<http://docs.python.org/library/wsgiref.html#module-wsgiref.simple_server>`_" " by default. This non-threading HTTP server is perfectly fine for " -"development and early production, but may become a performance bottleneck " -"when server load increases." +"development, but may become a performance bottleneck when server load " +"increases." msgstr "" -#: ../../tutorial.rst:1035 +#: ../../tutorial.rst:1036 msgid "" "The easiest way to increase performance is to install a multi-threaded " "server library like paste_ or cherrypy_ and tell Bottle to use that instead " "of the single-threaded server::" msgstr "" -#: ../../tutorial.rst:1039 +#: ../../tutorial.rst:1040 msgid "" "This, and many other deployment options are described in a separate article:" " :doc:`deployment`" msgstr "" -#: ../../tutorial.rst:1047 +#: ../../tutorial.rst:1048 msgid "Glossary" msgstr "" -#: ../../tutorial.rst:1050 +#: ../../tutorial.rst:1051 msgid "callback" msgstr "" -#: ../../tutorial.rst:1052 +#: ../../tutorial.rst:1053 msgid "" "Programmer code that is to be called when some external action happens. In " "the context of web frameworks, the mapping between URL paths and application" " code is often achieved by specifying a callback function for each URL." msgstr "" -#: ../../tutorial.rst:1056 +#: ../../tutorial.rst:1057 msgid "decorator" msgstr "" -#: ../../tutorial.rst:1058 +#: ../../tutorial.rst:1059 msgid "" "A function returning another function, usually applied as a function " "transformation using the ``@decorator`` syntax. See `python documentation " @@ -1421,11 +1428,11 @@ msgid "" "about decorators." msgstr "" -#: ../../tutorial.rst:1059 +#: ../../tutorial.rst:1060 msgid "environ" msgstr "" -#: ../../tutorial.rst:1061 +#: ../../tutorial.rst:1062 msgid "" "A structure where information about all documents under the root is saved, " "and used for cross-referencing. The environment is pickled after the " @@ -1433,22 +1440,22 @@ msgid "" "changed documents." msgstr "" -#: ../../tutorial.rst:1065 +#: ../../tutorial.rst:1066 msgid "handler function" msgstr "" -#: ../../tutorial.rst:1067 +#: ../../tutorial.rst:1068 msgid "" "A function to handle some specific event or situation. In a web framework, " "the application is developed by attaching a handler function as callback for" " each specific URL comprising the application." msgstr "" -#: ../../tutorial.rst:1070 +#: ../../tutorial.rst:1071 msgid "source directory" msgstr "" -#: ../../tutorial.rst:1072 +#: ../../tutorial.rst:1073 msgid "" "The directory which, including its subdirectories, contains all source files" " for one Sphinx project." diff --git a/docs/_locale/pt_BR/LC_MESSAGES/tutorial_app.po b/docs/_locale/pt_BR/LC_MESSAGES/tutorial_app.po index 2f88e7d..a2a8701 100644 --- a/docs/_locale/pt_BR/LC_MESSAGES/tutorial_app.po +++ b/docs/_locale/pt_BR/LC_MESSAGES/tutorial_app.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 20:58+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: Portuguese (Brazil) (http://www.transifex.com/bottle/bottle/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -17,17 +17,17 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ../../tutorial_app.rst:20 +#: ../../tutorial_app.rst:19 msgid "Tutorial: Todo-List Application" msgstr "" -#: ../../tutorial_app.rst:24 +#: ../../tutorial_app.rst:23 msgid "" -"This tutorial is a work in progess and written by `noisefloor " +"This tutorial is a work in progress and written by `noisefloor " "<http://github.com/noisefloor>`_." msgstr "" -#: ../../tutorial_app.rst:27 +#: ../../tutorial_app.rst:26 msgid "" "This tutorial should give a brief introduction to the Bottle_ WSGI " "Framework. The main goal is to be able, after reading through this tutorial," @@ -37,19 +37,19 @@ msgid "" "POST parameters." msgstr "" -#: ../../tutorial_app.rst:29 +#: ../../tutorial_app.rst:28 msgid "" "To understand the content here, it is not necessary to have a basic " "knowledge of WSGI, as Bottle tries to keep WSGI away from the user anyway. " "You should have a fair understanding of the Python_ programming language. " "Furthermore, the example used in the tutorial retrieves and stores data in a" -" SQL databse, so a basic idea about SQL helps, but is not a must to " +" SQL database, so a basic idea about SQL helps, but is not a must to " "understand the concepts of Bottle. Right here, SQLite_ is used. The output " "of Bottle sent to the browser is formatted in some examples by the help of " "HTML. Thus, a basic idea about the common HTML tags does help as well." msgstr "" -#: ../../tutorial_app.rst:31 +#: ../../tutorial_app.rst:30 msgid "" "For the sake of introducing Bottle, the Python code \"in between\" is kept " "short, in order to keep the focus. Also all code within the tutorial is " @@ -58,15 +58,15 @@ msgid "" "protect the database with a password, test and escape the input etc." msgstr "" -#: ../../tutorial_app.rst:0 +#: ../../tutorial_app.rst:32 msgid "Table of Contents" msgstr "" -#: ../../tutorial_app.rst:36 +#: ../../tutorial_app.rst:35 msgid "Goals" msgstr "" -#: ../../tutorial_app.rst:38 +#: ../../tutorial_app.rst:37 msgid "" "At the end of this tutorial, we will have a simple, web-based ToDo list. The" " list contains a text (with max 100 characters) and a status (0 for closed, " @@ -74,68 +74,68 @@ msgid "" "can be view and edited and new items can be added." msgstr "" -#: ../../tutorial_app.rst:40 +#: ../../tutorial_app.rst:39 msgid "" "During development, all pages will be available on ``localhost`` only, but " "later on it will be shown how to adapt the application for a \"real\" " "server, including how to use with Apache's mod_wsgi." msgstr "" -#: ../../tutorial_app.rst:42 +#: ../../tutorial_app.rst:41 msgid "" "Bottle will do the routing and format the output, with the help of " "templates. The items of the list will be stored inside a SQLite database. " "Reading and writing the database will be done by Python code." msgstr "" -#: ../../tutorial_app.rst:44 +#: ../../tutorial_app.rst:43 msgid "" "We will end up with an application with the following pages and " "functionality:" msgstr "" -#: ../../tutorial_app.rst:46 +#: ../../tutorial_app.rst:45 msgid "start page ``http://localhost:8080/todo``" msgstr "" -#: ../../tutorial_app.rst:47 +#: ../../tutorial_app.rst:46 msgid "adding new items to the list: ``http://localhost:8080/new``" msgstr "" -#: ../../tutorial_app.rst:48 +#: ../../tutorial_app.rst:47 msgid "page for editing items: ``http://localhost:8080/edit/<no:int>``" msgstr "" -#: ../../tutorial_app.rst:49 +#: ../../tutorial_app.rst:48 msgid "catching errors" msgstr "" -#: ../../tutorial_app.rst:52 +#: ../../tutorial_app.rst:51 msgid "Before We Start..." msgstr "" -#: ../../tutorial_app.rst:56 +#: ../../tutorial_app.rst:55 msgid "Install Bottle" msgstr "" -#: ../../tutorial_app.rst:57 +#: ../../tutorial_app.rst:56 msgid "" "Assuming that you have a fairly new installation of Python (version 2.5 or " "higher), you only need to install Bottle in addition to that. Bottle has no " "other dependencies than Python itself." msgstr "" -#: ../../tutorial_app.rst:59 +#: ../../tutorial_app.rst:58 msgid "" "You can either manually install Bottle or use Python's easy_install: " "``easy_install bottle``" msgstr "" -#: ../../tutorial_app.rst:63 +#: ../../tutorial_app.rst:62 msgid "Further Software Necessities" msgstr "" -#: ../../tutorial_app.rst:64 +#: ../../tutorial_app.rst:63 msgid "" "As we use SQLite3 as a database, make sure it is installed. On Linux " "systems, most distributions have SQLite3 installed by default. SQLite is " @@ -143,18 +143,18 @@ msgid "" "of the python standard library." msgstr "" -#: ../../tutorial_app.rst:67 +#: ../../tutorial_app.rst:66 msgid "Create An SQL Database" msgstr "" -#: ../../tutorial_app.rst:68 +#: ../../tutorial_app.rst:67 msgid "" "First, we need to create the database we use later on. To do so, save the " "following script in your project directory and run it with python. You can " "use the interactive interpreter too::" msgstr "" -#: ../../tutorial_app.rst:79 +#: ../../tutorial_app.rst:78 msgid "" "This generates a database-file `todo.db` with tables called ``todo`` and " "three columns ``id``, ``task``, and ``status``. ``id`` is a unique id for " @@ -164,22 +164,22 @@ msgid "" "closed (value 0)." msgstr "" -#: ../../tutorial_app.rst:82 +#: ../../tutorial_app.rst:81 msgid "Using Bottle for a Web-Based ToDo List" msgstr "" -#: ../../tutorial_app.rst:84 +#: ../../tutorial_app.rst:83 msgid "" "Now it is time to introduce Bottle in order to create a web-based " "application. But first, we need to look into a basic concept of Bottle: " "routes." msgstr "" -#: ../../tutorial_app.rst:88 +#: ../../tutorial_app.rst:87 msgid "Understanding routes" msgstr "" -#: ../../tutorial_app.rst:89 +#: ../../tutorial_app.rst:88 msgid "" "Basically, each page visible in the browser is dynamically generated when " "the page address is called. Thus, there is no static content. That is " @@ -190,24 +190,24 @@ msgid "" "execute the corresponding Python code and return its result." msgstr "" -#: ../../tutorial_app.rst:93 +#: ../../tutorial_app.rst:92 msgid "First Step - Showing All Open Items" msgstr "" -#: ../../tutorial_app.rst:94 +#: ../../tutorial_app.rst:93 msgid "" "So, after understanding the concept of routes, let's create the first one. " "The goal is to see all open items from the ToDo list::" msgstr "" -#: ../../tutorial_app.rst:109 +#: ../../tutorial_app.rst:108 msgid "" "Save the code a ``todo.py``, preferably in the same directory as the file " "``todo.db``. Otherwise, you need to add the path to ``todo.db`` in the " "``sqlite3.connect()`` statement." msgstr "" -#: ../../tutorial_app.rst:111 +#: ../../tutorial_app.rst:110 msgid "" "Let's have a look what we just did: We imported the necessary module " "``sqlite3`` to access to SQLite database and from Bottle we imported " @@ -223,19 +223,19 @@ msgid "" "``todo_list()``. That is how routing within bottle works." msgstr "" -#: ../../tutorial_app.rst:113 +#: ../../tutorial_app.rst:112 msgid "" "Actually you can bind more than one route to a function. So the following " "code::" msgstr "" -#: ../../tutorial_app.rst:120 +#: ../../tutorial_app.rst:119 msgid "" "will work fine, too. What will not work is to bind one route to more than " "one function." msgstr "" -#: ../../tutorial_app.rst:122 +#: ../../tutorial_app.rst:121 msgid "" "What you will see in the browser is what is returned, thus the value given " "by the ``return`` statement. In this example, we need to convert ``result`` " @@ -244,7 +244,7 @@ msgid "" "list of tuples, which is the standard defined by the `Python DB API`_." msgstr "" -#: ../../tutorial_app.rst:124 +#: ../../tutorial_app.rst:123 msgid "" "Now, after understanding the little script above, it is time to execute it " "and watch the result yourself. Remember that on Linux- / Unix-based systems " @@ -254,7 +254,7 @@ msgid "" "this::" msgstr "" -#: ../../tutorial_app.rst:128 +#: ../../tutorial_app.rst:127 msgid "" "If so - congratulations! You are now a successful user of Bottle. In case it" " did not work and you need to make some changes to the script, remember to " @@ -262,23 +262,23 @@ msgid "" "loaded." msgstr "" -#: ../../tutorial_app.rst:130 +#: ../../tutorial_app.rst:129 msgid "" "Actually, the output is not really exciting nor nice to read. It is the raw " "result returned from the SQL query." msgstr "" -#: ../../tutorial_app.rst:132 +#: ../../tutorial_app.rst:131 msgid "" "So, in the next step we format the output in a nicer way. But before we do " "that, we make our life easier." msgstr "" -#: ../../tutorial_app.rst:136 +#: ../../tutorial_app.rst:135 msgid "Debugging and Auto-Reload" msgstr "" -#: ../../tutorial_app.rst:137 +#: ../../tutorial_app.rst:136 msgid "" "Maybe you already noticed that Bottle sends a short error message to the " "browser in case something within the script is wrong, e.g. the connection to" @@ -287,7 +287,7 @@ msgid "" "statement to the script::" msgstr "" -#: ../../tutorial_app.rst:145 +#: ../../tutorial_app.rst:144 msgid "" "By enabling \"debug\", you will get a full stacktrace of the Python " "interpreter, which usually contains useful information for finding bugs. " @@ -295,42 +295,42 @@ msgid "" " will take effect without stopping the server." msgstr "" -#: ../../tutorial_app.rst:149 +#: ../../tutorial_app.rst:148 msgid "" "That ``debug(True)`` is supposed to be used for development only, it should " "*not* be used in production environments." msgstr "" -#: ../../tutorial_app.rst:153 +#: ../../tutorial_app.rst:152 msgid "" "Another quite nice feature is auto-reloading, which is enabled by modifying " "the ``run()`` statement to" msgstr "" -#: ../../tutorial_app.rst:159 +#: ../../tutorial_app.rst:158 msgid "" "This will automatically detect changes to the script and reload the new " "version once it is called again, without the need to stop and start the " "server." msgstr "" -#: ../../tutorial_app.rst:161 +#: ../../tutorial_app.rst:160 msgid "" "Again, the feature is mainly supposed to be used while developing, not on " "production systems." msgstr "" -#: ../../tutorial_app.rst:165 +#: ../../tutorial_app.rst:164 msgid "Bottle Template To Format The Output" msgstr "" -#: ../../tutorial_app.rst:166 +#: ../../tutorial_app.rst:165 msgid "" "Now let's have a look at casting the output of the script into a proper " "format." msgstr "" -#: ../../tutorial_app.rst:168 +#: ../../tutorial_app.rst:167 msgid "" "Actually Bottle expects to receive a string or a list of strings from a " "function and returns them by the help of the built-in server to the browser." @@ -338,7 +338,7 @@ msgid "" " text formatted with HTML markup, too." msgstr "" -#: ../../tutorial_app.rst:170 +#: ../../tutorial_app.rst:169 msgid "" "Bottle brings its own easy-to-use template engine with it. Templates are " "stored as separate files having a ``.tpl`` extension. The template can be " @@ -348,7 +348,7 @@ msgid "" " query, which will be then formatted nicely within the template." msgstr "" -#: ../../tutorial_app.rst:172 +#: ../../tutorial_app.rst:171 msgid "" "Right here, we are going to cast the result of our query showing the open " "ToDo items into a simple table with two columns: the first column will " @@ -356,11 +356,11 @@ msgid "" "as seen above, a list of tuples, each tuple contains one set of results." msgstr "" -#: ../../tutorial_app.rst:174 +#: ../../tutorial_app.rst:173 msgid "To include the template in our example, just add the following lines::" msgstr "" -#: ../../tutorial_app.rst:184 +#: ../../tutorial_app.rst:183 msgid "" "So we do here two things: first, we import ``template`` from Bottle in order" " to be able to use templates. Second, we assign the output of the template " @@ -371,7 +371,7 @@ msgid "" "value to a template." msgstr "" -#: ../../tutorial_app.rst:186 +#: ../../tutorial_app.rst:185 msgid "" "Templates always return a list of strings, thus there is no need to convert " "anything. We can save one line of code by writing ``return " @@ -379,18 +379,18 @@ msgid "" "as above." msgstr "" -#: ../../tutorial_app.rst:188 +#: ../../tutorial_app.rst:187 msgid "" "Now it is time to write the corresponding template, which looks like this::" msgstr "" -#: ../../tutorial_app.rst:202 +#: ../../tutorial_app.rst:201 msgid "" "Save the code as ``make_table.tpl`` in the same directory where ``todo.py`` " "is stored." msgstr "" -#: ../../tutorial_app.rst:204 +#: ../../tutorial_app.rst:203 msgid "" "Let's have a look at the code: every line starting with % is interpreted as " "Python code. Because it is effectively Python, only valid Python statements " @@ -398,7 +398,7 @@ msgid "" "code would. The other lines are plain HTML markup." msgstr "" -#: ../../tutorial_app.rst:206 +#: ../../tutorial_app.rst:205 msgid "" "As you can see, we use Python's ``for`` statement two times, in order to go " "through ``rows``. As seen above, ``rows`` is a variable which holds the " @@ -409,14 +409,14 @@ msgid "" " ``%end``, otherwise the output may not be what you expect." msgstr "" -#: ../../tutorial_app.rst:208 +#: ../../tutorial_app.rst:207 msgid "" "If you need to access a variable within a non-Python code line inside the " "template, you need to put it into double curly braces. This tells the " "template to insert the actual value of the variable right in place." msgstr "" -#: ../../tutorial_app.rst:210 +#: ../../tutorial_app.rst:209 msgid "" "Run the script again and look at the output. Still not really nice, but at " "least more readable than the list of tuples. You can spice-up the very " @@ -424,107 +424,97 @@ msgid "" "looking output." msgstr "" -#: ../../tutorial_app.rst:214 +#: ../../tutorial_app.rst:213 msgid "Using GET and POST Values" msgstr "" -#: ../../tutorial_app.rst:215 +#: ../../tutorial_app.rst:214 msgid "" "As we can review all open items properly, we move to the next step, which is" " adding new items to the ToDo list. The new item should be received from a " "regular HTML-based form, which sends its data by the GET method." msgstr "" -#: ../../tutorial_app.rst:217 +#: ../../tutorial_app.rst:216 msgid "" "To do so, we first add a new route to our script and tell the route that it " "should get GET data::" msgstr "" -#: ../../tutorial_app.rst:240 +#: ../../tutorial_app.rst:239 msgid "" "To access GET (or POST) data, we need to import ``request`` from Bottle. To " "assign the actual data to a variable, we use the statement " -"``request.GET.get('task','').strip()`` statement, where ``task`` is the name" -" of the GET data we want to access. That's all. If your GET data has more " -"than one variable, multiple ``request.GET.get()`` statements can be used and" -" assigned to other variables." +"``request.GET.task.strip()`` statement, where ``task`` is the name of the " +"GET data we want to access. That's all. If your GET data has more than one " +"variable, multiple ``request.GET.get()`` statements can be used and assigned" +" to other variables." msgstr "" -#: ../../tutorial_app.rst:242 +#: ../../tutorial_app.rst:241 msgid "" "The rest of this piece of code is just processing of the gained data: " "writing to the database, retrieve the corresponding id from the database and" " generate the output." msgstr "" -#: ../../tutorial_app.rst:244 +#: ../../tutorial_app.rst:243 msgid "" "But where do we get the GET data from? Well, we can use a static HTML page " "holding the form. Or, what we do right now, is to use a template which is " "output when the route ``/new`` is called without GET data." msgstr "" -#: ../../tutorial_app.rst:246 +#: ../../tutorial_app.rst:245 msgid "The code needs to be extended to::" msgstr "" -#: ../../tutorial_app.rst:269 +#: ../../tutorial_app.rst:268 msgid "``new_task.tpl`` looks like this::" msgstr "" -#: ../../tutorial_app.rst:277 +#: ../../tutorial_app.rst:276 msgid "That's all. As you can see, the template is plain HTML this time." msgstr "" -#: ../../tutorial_app.rst:279 +#: ../../tutorial_app.rst:278 msgid "Now we are able to extend our to do list." msgstr "" -#: ../../tutorial_app.rst:281 +#: ../../tutorial_app.rst:280 msgid "" "By the way, if you prefer to use POST data: this works exactly the same way," " just use ``request.POST.get()`` instead." msgstr "" -#: ../../tutorial_app.rst:285 +#: ../../tutorial_app.rst:284 msgid "Editing Existing Items" msgstr "" -#: ../../tutorial_app.rst:286 +#: ../../tutorial_app.rst:285 msgid "The last point to do is to enable editing of existing items." msgstr "" -#: ../../tutorial_app.rst:288 +#: ../../tutorial_app.rst:287 msgid "" "By using only the routes we know so far it is possible, but may be quite " "tricky. But Bottle knows something called \"dynamic routes\", which makes " "this task quite easy." msgstr "" -#: ../../tutorial_app.rst:290 +#: ../../tutorial_app.rst:289 msgid "The basic statement for a dynamic route looks like this::" msgstr "" -#: ../../tutorial_app.rst:294 +#: ../../tutorial_app.rst:293 msgid "" -"The key point here is the colon. This tells Bottle to accept for " -"``:something`` any string up to the next slash. Furthermore, the value of " -"``something`` will be passed to the function assigned to that route, so the " -"data can be processed within the function." -msgstr "" - -#: ../../tutorial_app.rst:296 -msgid "" -"For our ToDo list, we will create a route ``@route('/edit/<no:int>)``, where" -" ``no`` is the id (integer) of the item to edit." -msgstr "" - -#: ../../tutorial_app.rst:298 -msgid "The code looks like this::" +"This tells Bottle to accept for ``<something>`` any string up to the next " +"slash. Furthermore, the value of ``something`` will be passed to the " +"function assigned to that route, so the data can be processed within the " +"function, like this::" msgstr "" -#: ../../tutorial_app.rst:326 +#: ../../tutorial_app.rst:321 msgid "" "It is basically pretty much the same what we already did above when adding " "new items, like using ``GET`` data etc. The main addition here is using the " @@ -533,34 +523,60 @@ msgid "" " the function to access the right row of data within the database." msgstr "" -#: ../../tutorial_app.rst:328 +#: ../../tutorial_app.rst:324 msgid "" "The template ``edit_task.tpl`` called within the function looks like this::" msgstr "" -#: ../../tutorial_app.rst:343 +#: ../../tutorial_app.rst:339 msgid "" "Again, this template is a mix of Python statements and HTML, as already " "explained above." msgstr "" -#: ../../tutorial_app.rst:345 +#: ../../tutorial_app.rst:341 msgid "" "A last word on dynamic routes: you can even use a regular expression for a " "dynamic route, as demonstrated later." msgstr "" +#: ../../tutorial_app.rst:345 +msgid "Validating Dynamic Routes" +msgstr "" + +#: ../../tutorial_app.rst:346 +msgid "" +"Using dynamic routes is fine, but for many cases it makes sense to validate " +"the dynamic part of the route. For example, we expect an integer number in " +"our route for editing above. But if a float, characters or so are received, " +"the Python interpreter throws an exception, which is not what we want." +msgstr "" + #: ../../tutorial_app.rst:348 +msgid "" +"For those cases, Bottle offers the ``<name:int>`` wildcard filter, which " +"matches (signed) digits and converts the value to integer. In order to apply" +" the wildcard filter, extend the code as follows::" +msgstr "" + +#: ../../tutorial_app.rst:356 +msgid "" +"Save the code and call the page again using incorrect value for " +"``<no:int>``, e.g. a float. You will receive not an exception, but a \"404 " +"Not Found\" error." +msgstr "" + +#: ../../tutorial_app.rst:360 msgid "Dynamic Routes Using Regular Expressions" msgstr "" -#: ../../tutorial_app.rst:349 +#: ../../tutorial_app.rst:361 msgid "" "Bottle can also handle dynamic routes, where the \"dynamic part\" of the " "route can be a regular expression." msgstr "" -#: ../../tutorial_app.rst:351 +#: ../../tutorial_app.rst:363 msgid "" "So, just to demonstrate that, let's assume that all single items in our ToDo" " list should be accessible by their plain number, by a term like e.g. " @@ -569,31 +585,28 @@ msgid "" "the route, the term \"item\" is static." msgstr "" -#: ../../tutorial_app.rst:353 +#: ../../tutorial_app.rst:365 msgid "As said above, the solution is a regular expression::" msgstr "" -#: ../../tutorial_app.rst:367 +#: ../../tutorial_app.rst:380 msgid "" -"This example is somehow artificially constructed - it would be easier to use" -" a plain dynamic route only combined with a validation. Nevertheless, we " -"want to see how regular expression routes work: the line " -"``@route(/item<item_:re:[0-9]+>)`` starts like a normal route, but the part " -"surrounded by # is interpreted as a regular expression, which is the dynamic" -" part of the route. So in this case, we want to match any digit between 0 " -"and 9. The following function \"show_item\" just checks whether the given " -"item is present in the database or not. In case it is present, the " -"corresponding text of the task is returned. As you can see, only the regular" -" expression part of the route is passed forward. Furthermore, it is always " -"forwarded as a string, even if it is a plain integer number, like in this " -"case." +"The line ``@route(/item<item:re:[0-9]+>)`` starts like a normal route, but " +"the third part of the wildcard is interpreted as a regular expression, which" +" is the dynamic part of the route. So in this case, we want to match any " +"digit between 0 and 9. The following function \"show_item\" just checks " +"whether the given item is present in the database or not. In case it is " +"present, the corresponding text of the task is returned. As you can see, " +"only the regular expression part of the route is passed forward. " +"Furthermore, it is always forwarded as a string, even if it is a plain " +"integer number, like in this case." msgstr "" -#: ../../tutorial_app.rst:371 +#: ../../tutorial_app.rst:384 msgid "Returning Static Files" msgstr "" -#: ../../tutorial_app.rst:372 +#: ../../tutorial_app.rst:385 msgid "" "Sometimes it may become necessary to associate a route not to a Python " "function, but just return a static file. So if you have for example a help " @@ -601,7 +614,7 @@ msgid "" "This works as follows::" msgstr "" -#: ../../tutorial_app.rst:380 +#: ../../tutorial_app.rst:393 msgid "" "At first, we need to import the ``static_file`` function from Bottle. As you" " can see, the ``return static_file`` statement replaces the ``return`` " @@ -614,11 +627,11 @@ msgid "" "``static_file`` works with any type of route, including the dynamic ones." msgstr "" -#: ../../tutorial_app.rst:384 +#: ../../tutorial_app.rst:397 msgid "Returning JSON Data" msgstr "" -#: ../../tutorial_app.rst:385 +#: ../../tutorial_app.rst:398 msgid "" "There may be cases where you do not want your application to generate the " "output directly, but return data to be processed further on, e.g. by " @@ -628,37 +641,37 @@ msgid "" "languages, including Python" msgstr "" -#: ../../tutorial_app.rst:387 +#: ../../tutorial_app.rst:400 msgid "" "So, let's assume we want to return the data generated in the regular " "expression route example as a JSON object. The code looks like this::" msgstr "" -#: ../../tutorial_app.rst:402 +#: ../../tutorial_app.rst:415 msgid "" "As you can, that is fairly simple: just return a regular Python dictionary " "and Bottle will convert it automatically into a JSON object prior to " "sending. So if you e.g. call \"http://localhost/json1\" Bottle should in " -"this case return the JSON object ``{\"Task\": [\"Read A-byte-of-python to " +"this case return the JSON object ``{\"task\": [\"Read A-byte-of-python to " "get a good introduction into Python\"]}``." msgstr "" -#: ../../tutorial_app.rst:407 +#: ../../tutorial_app.rst:420 msgid "Catching Errors" msgstr "" -#: ../../tutorial_app.rst:408 +#: ../../tutorial_app.rst:421 msgid "" "The next step may is to catch the error with Bottle itself, to keep away any" " type of error message from the user of your application. To do that, Bottle" " has an \"error-route\", which can be a assigned to a HTML-error." msgstr "" -#: ../../tutorial_app.rst:410 +#: ../../tutorial_app.rst:423 msgid "In our case, we want to catch a 403 error. The code is as follows::" msgstr "" -#: ../../tutorial_app.rst:418 +#: ../../tutorial_app.rst:431 msgid "" "So, at first we need to import ``error`` from Bottle and define a route by " "``error(403)``, which catches all \"403 forbidden\" errors. The function " @@ -667,28 +680,28 @@ msgid "" "function always needs to accept one argument, otherwise it will not work." msgstr "" -#: ../../tutorial_app.rst:420 +#: ../../tutorial_app.rst:433 msgid "" "Again, you can assign more than one error-route to a function, or catch " "various errors with one function each. So this code::" msgstr "" -#: ../../tutorial_app.rst:427 +#: ../../tutorial_app.rst:440 msgid "works fine, the following one as well::" msgstr "" -#: ../../tutorial_app.rst:439 +#: ../../tutorial_app.rst:452 msgid "Summary" msgstr "" -#: ../../tutorial_app.rst:440 +#: ../../tutorial_app.rst:453 msgid "" "After going through all the sections above, you should have a brief " "understanding how the Bottle WSGI framework works. Furthermore you have all " "the knowledge necessary to use Bottle for your applications." msgstr "" -#: ../../tutorial_app.rst:442 +#: ../../tutorial_app.rst:455 msgid "" "The following chapter give a short introduction how to adapt Bottle for " "larger projects. Furthermore, we will show how to operate Bottle with web " @@ -696,11 +709,11 @@ msgid "" "one we used so far." msgstr "" -#: ../../tutorial_app.rst:445 +#: ../../tutorial_app.rst:458 msgid "Server Setup" msgstr "" -#: ../../tutorial_app.rst:447 +#: ../../tutorial_app.rst:460 msgid "" "So far, we used the standard server used by Bottle, which is the `WSGI " "reference Server`_ shipped along with Python. Although this server is " @@ -709,47 +722,47 @@ msgid "" "have a look how to tweak the settings of the standard server first." msgstr "" -#: ../../tutorial_app.rst:451 +#: ../../tutorial_app.rst:464 msgid "Running Bottle on a different port and IP" msgstr "" -#: ../../tutorial_app.rst:452 +#: ../../tutorial_app.rst:465 msgid "" -"As standard, Bottle serves the pages on the IP adress 127.0.0.1, also known " -"as ``localhost``, and on port ``8080``. To modify the setting is pretty " +"As standard, Bottle serves the pages on the IP address 127.0.0.1, also known" +" as ``localhost``, and on port ``8080``. To modify the setting is pretty " "simple, as additional parameters can be passed to Bottle's ``run()`` " "function to change the port and the address." msgstr "" -#: ../../tutorial_app.rst:454 +#: ../../tutorial_app.rst:467 msgid "" "To change the port, just add ``port=portnumber`` to the run command. So, for" " example::" msgstr "" -#: ../../tutorial_app.rst:458 +#: ../../tutorial_app.rst:471 msgid "would make Bottle listen to port 80." msgstr "" -#: ../../tutorial_app.rst:460 +#: ../../tutorial_app.rst:473 msgid "To change the IP address where Bottle is listening::" msgstr "" -#: ../../tutorial_app.rst:464 +#: ../../tutorial_app.rst:477 msgid "If needed, both parameters can be combined, like::" msgstr "" -#: ../../tutorial_app.rst:468 +#: ../../tutorial_app.rst:481 msgid "" "The ``port`` and ``host`` parameter can also be applied when Bottle is " "running with a different server, as shown in the following section." msgstr "" -#: ../../tutorial_app.rst:472 +#: ../../tutorial_app.rst:485 msgid "Running Bottle with a different server" msgstr "" -#: ../../tutorial_app.rst:473 +#: ../../tutorial_app.rst:486 msgid "" "As said above, the standard server is perfectly suitable for development, " "personal use or a small group of people only using your application based on" @@ -757,50 +770,50 @@ msgid "" "it is single-threaded, thus it can only serve one request at a time." msgstr "" -#: ../../tutorial_app.rst:475 +#: ../../tutorial_app.rst:488 msgid "" "But Bottle has already various adapters to multi-threaded servers on board, " -"which perform better on higher load. Bottle supports Cherrypy_, Fapws3_, " -"Flup_ and Paste_." +"which perform better on higher load. Bottle supports Cherrypy_, Flup_ and " +"Paste_." msgstr "" -#: ../../tutorial_app.rst:477 +#: ../../tutorial_app.rst:490 msgid "" "If you want to run for example Bottle with the Paste server, use the " "following code::" msgstr "" -#: ../../tutorial_app.rst:483 +#: ../../tutorial_app.rst:496 msgid "" "This works exactly the same way with ``FlupServer``, ``CherryPyServer`` and " "``FapwsServer``." msgstr "" -#: ../../tutorial_app.rst:487 +#: ../../tutorial_app.rst:500 msgid "Running Bottle on Apache with mod_wsgi" msgstr "" -#: ../../tutorial_app.rst:488 +#: ../../tutorial_app.rst:501 msgid "" "Maybe you already have an Apache_ or you want to run a Bottle-based " "application large scale - then it is time to think about Apache with " "mod_wsgi_." msgstr "" -#: ../../tutorial_app.rst:490 +#: ../../tutorial_app.rst:503 msgid "" "We assume that your Apache server is up and running and mod_wsgi is working " "fine as well. On a lot of Linux distributions, mod_wsgi can be easily " "installed via whatever package management system is in use." msgstr "" -#: ../../tutorial_app.rst:492 +#: ../../tutorial_app.rst:505 msgid "" "Bottle brings an adapter for mod_wsgi with it, so serving your application " "is an easy task." msgstr "" -#: ../../tutorial_app.rst:494 +#: ../../tutorial_app.rst:507 msgid "" "In the following example, we assume that you want to make your application " "\"ToDo list\" accessible through ``http://www.mypage.com/todo`` and your " @@ -808,42 +821,42 @@ msgid "" "``/var/www/todo``." msgstr "" -#: ../../tutorial_app.rst:496 +#: ../../tutorial_app.rst:509 msgid "" "When you run your application via mod_wsgi, it is imperative to remove the " "``run()`` statement from your code, otherwise it won't work here." msgstr "" -#: ../../tutorial_app.rst:498 +#: ../../tutorial_app.rst:511 msgid "" "After that, create a file called ``adapter.wsgi`` with the following " "content::" msgstr "" -#: ../../tutorial_app.rst:509 +#: ../../tutorial_app.rst:522 msgid "" "and save it in the same path, ``/var/www/todo``. Actually the name of the " "file can be anything, as long as the extension is ``.wsgi``. The name is " "only used to reference the file from your virtual host." msgstr "" -#: ../../tutorial_app.rst:511 +#: ../../tutorial_app.rst:524 msgid "" "Finally, we need to add a virtual host to the Apache configuration, which " "looks like this::" msgstr "" -#: ../../tutorial_app.rst:527 +#: ../../tutorial_app.rst:540 msgid "" "After restarting the server, your ToDo list should be accessible at " "``http://www.mypage.com/todo``" msgstr "" -#: ../../tutorial_app.rst:530 +#: ../../tutorial_app.rst:543 msgid "Final Words" msgstr "" -#: ../../tutorial_app.rst:532 +#: ../../tutorial_app.rst:545 msgid "" "Now we are at the end of this introduction and tutorial to Bottle. We " "learned about the basic concepts of Bottle and wrote a first application " @@ -851,7 +864,7 @@ msgid "" "for large tasks and serve Bottle through an Apache web server with mod_wsgi." msgstr "" -#: ../../tutorial_app.rst:534 +#: ../../tutorial_app.rst:547 msgid "" "As said in the introduction, this tutorial is not showing all shades and " "possibilities of Bottle. What we skipped here is e.g. receiving file objects" @@ -861,28 +874,28 @@ msgid "" "documentation`_ ." msgstr "" -#: ../../tutorial_app.rst:537 +#: ../../tutorial_app.rst:550 msgid "Complete Example Listing" msgstr "" -#: ../../tutorial_app.rst:539 +#: ../../tutorial_app.rst:552 msgid "" "As the ToDo list example was developed piece by piece, here is the complete " "listing:" msgstr "" -#: ../../tutorial_app.rst:541 +#: ../../tutorial_app.rst:554 msgid "Main code for the application ``todo.py``::" msgstr "" -#: ../../tutorial_app.rst:655 +#: ../../tutorial_app.rst:675 msgid "Template ``make_table.tpl``::" msgstr "" -#: ../../tutorial_app.rst:669 +#: ../../tutorial_app.rst:689 msgid "Template ``edit_task.tpl``::" msgstr "" -#: ../../tutorial_app.rst:684 +#: ../../tutorial_app.rst:704 msgid "Template ``new_task.tpl``::" msgstr "" |