Kedua {{ |t }}
filter dan {% trans %} ... {% endtrans %}
blok, bila digunakan dalam konteks file template Ranting di Drupal, merupakan bagian dari sistem lokalisasi Drupal. Dan terjemahan untuk string yang diproses dengan salah satunya ditangani dengan cara yang sama, dan via localize.drupal.org. Untuk string teks sederhana, mereka dapat digunakan secara bergantian, namun %trans
blok ini memiliki beberapa fitur berguna tambahan untuk string kompleks.
Perbedaannya adalah bahwa t
filter hanya memungkinkan untuk string sederhana, sementara menggunakan %trans
blok memungkinkan penggunaan placeholder dinamis dalam string. Sama seperti menggunakan t()
fungsi php .
Berikut beberapa contoh:
Terjemahan string sederhana melalui t
filter:
{{ 'Hello Stack Exchange!'|t }}
Terjemahan string dengan placeholder:
{% trans %}Hello {{ user.name }}, today's date is {{ date|placeholder }}.{% endtrans %}
Placeholder diloloskan secara default, tetapi juga dapat dibiarkan begitu saja {{ var|passthrough }}
atau diformat sebagai placeholder {{ var|placeholder }}
. Ini sama dengan menggunakan @string,! String, dan% string dalam fungsi t ().
Anda juga dapat menggunakan %trans
blok untuk memformat string jamak.
{% trans %}
There is 1 comment.
{% plural count %}
There are {{ count }} comments.
{% endtrans %}
Untuk string sederhana ada benar-benar ada aturan tentang kapan Anda harus menggunakan |t
vs %trans
. Jadi saya akan merekomendasikan menggunakan apa pun yang paling mudah dibaca di template Anda. Dalam pengalaman saya menggunakan |t
filter berfungsi dengan baik untuk string pendek, sedangkan %trans
blok lebih mudah untuk string teks yang lebih panjang.
Informasi lebih lanjut tentang penggunaan dapat ditemukan di sini: https://www.drupal.org/node/2357633 dan di sini https://www.drupal.org/developing/api/8/localization