Saya perhatikan bahwa dukungan Drupal 8 {% trans %}
yang, menurut dokumentasi Symfony ( The i18n Extension ), menambahkan dukungan gettext ke Twig.
{{ |t }}
, sejauh yang saya tahu, adalah cara lama untuk menambahkan string yang dapat diterjemahkan ke dalam template Drupal. Menurut dokumentasi , t()
menerjemahkan string ke bahasa saat ini atau bahasa yang diberikan.
Keduanya mendukung situs web multi-bahasa.
- Apa perbedaan antara ekstensi itu?
- Kapan saya harus menggunakan yang satu di atas yang lain?
Jawaban:
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 menggunakant()
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.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
sumber