O que é o serviço de tradução do Symfony?
O serviço de tradução do Symfony é um recurso que permite aos desenvolvedores criar aplicativos que são acessíveis a todos os idiomas. Ele é baseado na biblioteca gettext, que tem sido o padrão de fato para a internacionalização de aplicativos Unix por mais de 40 anos.
Por que usar o serviço de tradução do Symfony?
Usar o serviço de tradução do Symfony permite aos desenvolvedores criar aplicativos que podem ser facilmente traduzidos para outros idiomas. Pode ser uma enorme vantagem competitiva para o seu aplicativo à medida que você torna mais fácil para pessoas de diferentes partes do mundo usá-lo. Se o seu aplicativo tem o potencial de atingir um público global, então é importante considerar a internacionalização e localização.
Como usar o serviço de tradução do Symfony?
Para começar a usar o serviço de tradução do Symfony, é necessário primeiro instalar a biblioteca gettext se ela ainda não estiver instalada em seu sistema. Para fazer isso, basta usar o seguinte comando:
sudo apt-get install gettext
Uma vez que a biblioteca gettext é instalada, você precisará habilitar o serviço de tradução em seu aplicativo Symfony. Isso é feito adicionando o seguinte código ao seu arquivo config/services.yml :
services:
translator:
class: SymfonyComponentTranslationTranslator
arguments: ['%locale%']
calls:
- [setFallbackLocales, ['en']]
- [addLoader, ['yaml', new YamlFileLoader()]]
- [addResource, ['yaml', '%kernel.project_dir%/translations/pt_BR.yml', 'pt_BR']]
Note que este é um exemplo de como configurar o serviço, e você pode ajustar os parâmetros de acordo com suas necessidades.
Agora, você precisa criar os arquivos de tradução. Eles devem ser armazenados no diretório translations em seu aplicativo. O nome do arquivo inclui o código do idioma. Por exemplo, para o português do Brasil, o nome do arquivo deve ser pt_BR.yml. Este é um exemplo simples de como escrever uma tradução:
# translations/pt_BR.yml
hello: Olá, mundo!
Agora, você pode usar a função trans para traduzir seu texto para o idioma preferido do usuário:
{% trans %}hello{% endtrans %}
Se o usuário preferir português do Brasil, ele será exibido como “Olá, mundo!”. Caso contrário, será exibido como “hello”.
Também é possível usar a função trans_choice para traduzir textos com variação de plural. É uma sintaxe semelhante:
# translations/pt_BR.yml
apples: "{0} Nenhuma maçã|{1} 1 maçã|]1,Inf] %count% maçãs"
E depois você pode usá-lo em seu modelo:
{% trans_choice apples count=0 %}
{% trans_choice apples count=1 %}
{% trans_choice apples count=10 %}
Aqui, se count for 0, será exibido “Nenhuma maçã”. Se for 1, será exibido “1 maçã”. Se for qualquer outra coisa, será exibido o número de maçãs.
O serviço de tradução do Symfony é uma ferramenta poderosa para tornar sua aplicação acessível a usuários de todo o mundo. Não hesite em usá-lo e permitir que seus usuários tenham uma experiência localizada do seu aplicativo.