Hem {{ |t }}filtre ve {% trans %} ... {% endtrans %}bloklar, Drupal dal şablon dosyasının bağlamında kullanıldığında, Drupal lokalizasyon sisteminin bir parçasıdır. Her ikisiyle de işlenen dizelerin çevirisi de aynı şekilde ve localize.drupal.org üzerinden yapılır. Basit metin dizeleri için birbirlerinin yerine kullanılabilir, ancak %transblok karmaşık dizeler için bazı ek kullanışlı özelliklere sahiptir.
Fark, tfiltrenin yalnızca basit dizelere izin verirken, bir %transblok kullanıldığında dizede dinamik yer tutucuların kullanımına izin verir. Php t()işlevini kullanmak gibi .
İşte birkaç örnek:
tFiltre ile basit dize çevirisi :
{{ 'Hello Stack Exchange!'|t }}
Yer tutucu ile dize çevirisi:
{% trans %}Hello {{ user.name }}, today's date is {{ date|placeholder }}.{% endtrans %}
Yer {{ var|passthrough }}tutucular varsayılan olarak kaçar, ancak soluk bırakılmaz veya yer tutucu olarak biçimlendirilebilir {{ var|placeholder }}. Bu, t () işlevinde sırasıyla @string,! String ve% string kullanmaya eşdeğerdir.
Birden çok %transdizeyi biçimlendirmek için blokları da kullanabilirsiniz .
{% trans %}
There is 1 comment.
{% plural count %}
There are {{ count }} comments.
{% endtrans %}
Basit dizeler için ne zaman |tvs. kullanmanız gerektiği konusunda hiçbir kural yoktur %trans. Bu nedenle, şablonunuzda okunması en kolay olanı kullanmanızı öneririm. Deneyimde, |tfiltreyi kullanma kısa dizeler için iyi çalışır, %transblok daha uzun metin dizeleri için daha kolaydır.
Kullanımla ilgili daha fazla bilgiyi şu adreste bulabilirsiniz: https://www.drupal.org/node/2357633 ve burada https://www.drupal.org/developing/api/8/localization