Percebo que o suporte ao Drupal 8 {% trans %}
que, de acordo com a documentação do Symfony ( a extensão i18n ), adiciona suporte ao getig no Twig.
{{ |t }}
, até onde eu sei, é a maneira herdada de adicionar seqüências traduzíveis aos modelos do Drupal. De acordo com a documentação , t()
converte uma string para o idioma atual ou para um determinado idioma.
Ambos suportam site multilíngue.
- Quais são as diferenças entre essas extensões?
- Quando devo usar um sobre o outro?
Respostas:
O
{{ |t }}
filtro e os{% trans %} ... {% endtrans %}
blocos, quando usados no contexto do arquivo de modelo Twig no Drupal, fazem parte do sistema de localização do Drupal. E a tradução de strings processadas com qualquer uma delas é realizada da mesma maneira e via localize.drupal.org. Para cadeias de texto simples, elas podem ser usadas de forma intercambiável, no entanto, o%trans
bloco possui alguns recursos úteis adicionais para cadeias de caracteres complexas.A diferença é que o
t
filtro permite apenas cadeias simples, enquanto o uso de um%trans
bloco permite o uso de espaços reservados dinâmicos na cadeia. Muito parecido com o uso dat()
função php .Aqui estão alguns exemplos:
Tradução simples de strings via
t
filtro:{{ 'Hello Stack Exchange!'|t }}
Tradução de string com espaço reservado:
{% trans %}Hello {{ user.name }}, today's date is {{ date|placeholder }}.{% endtrans %}
Os espaços reservados são escapados por padrão, mas também podem ser deixados sem escape
{{ var|passthrough }}
ou formatados como espaços reservados{{ var|placeholder }}
. Isso é equivalente a usar @string,! String e% string na função t (), respectivamente.Você também pode usar
%trans
blocos para formatar seqüências de caracteres plurais.Para strings simples realmente não há regras sobre quando você deve usar
|t
vs.%trans
. Portanto, eu recomendaria usar o que for mais fácil de ler em seu modelo. Na minha experiência, o uso do|t
filtro funciona bem para cadeias curtas, enquanto o%trans
bloco é mais fácil para cadeias longas de texto.Mais informações sobre o uso podem ser encontradas aqui: https://www.drupal.org/node/2357633 e aqui https://www.drupal.org/developing/api/8/localization
fonte