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 %trans
blok karmaşık dizeler için bazı ek kullanışlı özelliklere sahiptir.
Fark, t
filtrenin yalnızca basit dizelere izin verirken, bir %trans
blok kullanıldığında dizede dinamik yer tutucuların kullanımına izin verir. Php t()
işlevini kullanmak gibi .
İşte birkaç örnek:
t
Filtre 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 %trans
dizeyi 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 |t
vs. kullanmanız gerektiği konusunda hiçbir kural yoktur %trans
. Bu nedenle, şablonunuzda okunması en kolay olanı kullanmanızı öneririm. Deneyimde, |t
filtreyi kullanma kısa dizeler için iyi çalışır, %trans
blok 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