Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 04c359e

Browse files
committed
[Translation][Locale] Translate into Portuguese
1 parent 41e742d commit 04c359e

File tree

1 file changed

+157
-0
lines changed

1 file changed

+157
-0
lines changed

‎translation/locale.rst‎

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
.. index::
2+
single: Tradução; Localidade
3+
4+
Como Trabalhar com a Localidade do Usuário
5+
==========================================
6+
7+
A localidade do usuário atual é armazenada na requisição e está acessível
8+
através do objeto ``Request``::
9+
10+
use Symfony\Component\HttpFoundation\Request;
11+
12+
public function indexAction(Request $request)
13+
{
14+
$locale = $request->getLocale();
15+
}
16+
17+
Para definir a localidade do usuário, você pode desejar criar um ouvinte de evento personalizado
18+
de modo que ela será definida antes que quaisquer outras partes do sistema (ou seja, o tradutor)
19+
necessitem dela::
20+
21+
public function onKernelRequest(GetResponseEvent $event)
22+
{
23+
$request = $event->getRequest();
24+
25+
// some logic to determine the $locale
26+
$request->setLocale($locale);
27+
}
28+
29+
Leia :doc:`/session/locale_sticky_session` para mais informações sobre como tornar a
30+
localidade do usuário disponível durante toda a sua sessão.
31+
32+
.. note::
33+
34+
Definir a localidade usando ``$request->setLocale()`` no controlador é
35+
tarde demais para afetar o tradutor. Defina a localidade através de um ouvinte
36+
(como acima), da URL (ver abaixo) ou chamando ``setLocale()`` diretamente no
37+
serviço ``translator``.
38+
39+
Veja a seção :ref:`translation-locale-url` abaixo sobre a definição da
40+
localidade via roteamento.
41+
42+
.. _translation-locale-url:
43+
44+
A Localidade e a URL
45+
--------------------
46+
47+
Uma vez que você pode armazenar a localidade do usuário na sessão, pode ser tentador
48+
usar a mesma URL para exibir um recurso em diferentes idiomas com base na
49+
localidade do usuário. Por exemplo, ``http://www.example.com/contact`` poderia mostrar
50+
conteúdo em Inglês para um usuário e Francês para outro usuário. Infelizmente,
51+
isso viola uma regra fundamental da Web: que um determinada URL retorna o mesmo
52+
recurso, independentemente do usuário. Para dificultar ainda mais o problema, que
53+
versão do conteúdo seria indexada pelas ferramentas de busca?
54+
55+
A melhor política é incluir a localidade na URL. Isso é totalmente suportado
56+
pelo sistema de roteamento usando o parâmetro especial ``_locale``:
57+
58+
.. configuration-block::
59+
60+
.. code-block:: yaml
61+
62+
# app/config/routing.yml
63+
contact:
64+
path: /{_locale}/contact
65+
defaults: { _controller: AppBundle:Contact:index }
66+
requirements:
67+
_locale: en|fr|de
68+
69+
.. code-block:: xml
70+
71+
<!-- app/config/routing.xml -->
72+
<?xml version="1.0" encoding="UTF-8" ?>
73+
<routes xmlns="http://symfony.com/schema/routing"
74+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
75+
xsi:schemaLocation="http://symfony.com/schema/routing
76+
http://symfony.com/schema/routing/routing-1.0.xsd">
77+
78+
<route id="contact" path="/{_locale}/contact">
79+
<default key="_controller">AppBundle:Contact:index</default>
80+
<requirement key="_locale">en|fr|de</requirement>
81+
</route>
82+
</routes>
83+
84+
.. code-block:: php
85+
86+
// app/config/routing.php
87+
use Symfony\Component\Routing\RouteCollection;
88+
use Symfony\Component\Routing\Route;
89+
90+
$collection = new RouteCollection();
91+
$collection->add('contact', new Route(
92+
'/{_locale}/contact',
93+
array(
94+
'_controller' => 'AppBundle:Contact:index',
95+
),
96+
array(
97+
'_locale' => 'en|fr|de',
98+
)
99+
));
100+
101+
return $collection;
102+
103+
Ao usar o parâmetro especial ``_locale`` em uma rota, a localidade correspondida
104+
é *automaticamente definida no Request* e pode ser recuperada através do método
105+
:method:`Symfony\\Component\\HttpFoundation\\Request::getLocale`. Em
106+
outras palavras, se um usuário visita a URI ``/fr/contact``, a localidade ``fr`` vai
107+
ser automaticamente definida como a localidade da requisição atual.
108+
109+
Agora você pode usar o local para criar rotas para outras páginas traduzidas em seu
110+
Symfony.
111+
112+
.. tip::
113+
114+
Leia :doc:`/routing/service_container_parameters` para aprender como evitar
115+
codificar o ``_locale`` em todas as suas rotas.
116+
117+
.. index::
118+
single: Traduções; Localização padrão e fallback
119+
120+
.. _translation-default-locale:
121+
122+
Definindo uma localidade padrão
123+
-------------------------------
124+
125+
E se a localidade do usuário não foi determinada? Você pode garantir que uma localidade
126+
será definida em cada requisição do usuário através da definição de um ``default_locale`` para
127+
o framework:
128+
129+
.. configuration-block::
130+
131+
.. code-block:: yaml
132+
133+
# app/config/config.yml
134+
framework:
135+
default_locale: en
136+
137+
.. code-block:: xml
138+
139+
<!-- app/config/config.xml -->
140+
<?xml version="1.0" encoding="UTF-8" ?>
141+
<container xmlns="http://symfony.com/schema/dic/services"
142+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
143+
xmlns:framework="http://symfony.com/schema/dic/symfony"
144+
xsi:schemaLocation="http://symfony.com/schema/dic/services
145+
http://symfony.com/schema/dic/services/services-1.0.xsd
146+
http://symfony.com/schema/dic/symfony
147+
http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
148+
149+
<framework:config default-locale="en" />
150+
</container>
151+
152+
.. code-block:: php
153+
154+
// app/config/config.php
155+
$container->loadFromExtension('framework', array(
156+
'default_locale' => 'en',
157+
));

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /