<t> bileşeni
İçeriğinizi çevirmek için <t> bileşenine sarın. Orijinal içerik, çeviri yüklenene kadar gösterilir.
<t>This content will be translated</t>
Bağlamalı metin de işe yarıyor. İçerik değiştiğinde, örneğin name değiştiğinde tekrar çevrilir:
<t>Hello {{ name() }}</t>
İsimler ve sayılar gibi sık değişen değerler için bunun yerine değişkenler kullanın, böylece metin yalnızca bir kez çevrilir.
Aynı anda talep edilen tüm çeviriler tek bir istekte API'ye gönderilir ve çeviriler önbelleğe alınır. İstediğiniz kadar <t> bileşeni kullanabilirsiniz.
<mt-translate> alternatif bir seçici olarak çalışır ve Translate T ile aynı bileşendir.
Girişler
| Giriş | Tür | Açıklama |
|---|---|---|
formality | 'informal' | 'formal' | Çevirinin formalitesini ayarlar. |
id | string | Metnin bu kullanımını kendi başına düzenlemenizi sağlar. Öğenin id olarak ayarlanmamıştır. |
lang | Language | provideMagicTranslate ile ayarlanan dili geçersiz kılar. |
v | Record<string, unknown> | Çevrilmeyen değerler, içerikte $name olarak atıfta bulunulur. Değiş kenlere bakın. |
<t lang="fr" formality="formal">How are you?</t>
Değişkenler
[v] 'de ad veya sayım gibi değişen değerleri iletin ve içerikte $name olarak referans verin:
<t [v]="{ name: user.name, count: unread() }">Hi $name, you have $count new messages</t>
Magic Translate, değerlerin etrafındaki metni bir kez Hi {0}, you have {1} new messages olarak çevirir ve değerleri uygulamanıza geri koyar. Çeviri önbelleğe alınır ve her isim ve her sayı için çalışır ve değerlerin kendileri asla Magic Translate 'a gönderilmez. Yalnızca değerler değiştiğinde, yeni bir istek yapılmaz.
Değerler ilk göründükleri sıraya göre numaralandırılır. Çeviri onları dilin ihtiyaç duyduğu yere taşıyabilir, örneğin {1} neue Nachrichten für {0}.
Değerlerin etrafındaki metin HTML içerebilir ve değerler önce pipes ile biçimlendirilebilir:
<t [v]="{ count: cart.items.length, total: cart.total | currency }">You have <b>$count items</b> in your cart, totalling <b>$total</b>.</t>
Birkaç kural:
- Yalnızca
[v]tuşları değiştirilir, bu nedenle$5gibi metinler olduğu gibi kalır.countvecountsgibi iki tuş aynı şekilde başlarsa, en uzun anahtar kazanır. - Aynı isim birden fazla kez görünebilir.
- Değerler metin olarak eklenir, HTML olarak asla eklenmez. Bunun yerine etraflarındaki metne işaretleme koyun:
Hi <b>$name</b>. - Değişkenler
hrefveyatitlegibi özniteliklerde değil, yalnızca metinde değiştirilir. - Geliştirme modunda, metinde görünmeyen bir anahtar, yazım hatalarını yakalayan bir uyarı kaydeder.
- Sunucu tarafı oluşturma ile
[v]içeren bir<t>sunucuda boş renderlenir ve uygulama tarayıcıda çalıştırıldığında görünür.
Değişkenler {name} yerine $name kullanır, çünkü Angular, bir ICU mesajının başlangıcı olarak şablondaki tek bir { dosyasını okur ve şablon derlenmez.
Sınırlamalar
- Angular bileşenlerini
<t>bileşeninin içine yerleştiremezsiniz. Düz HTML öğeleri iyidir (aşağıdaki örneğe bakın). Çevrilmiş işaretleme, Angular 'in HTML temizleyicisinden geçer. <t>bileşeninin içindeki içerik, yaklaşık 5.000 karakter olan 10 KB'yi geçemez.
<!-- this is OK, since <a> is a plain HTML element --><t><a href="mailto:info@i42.ch">Please send us an email</a></t><!-- this does NOT work, since <app-button> is an Angular component --><t><app-button>Click me</app-button></t>
Öznitelikleri ve diğer dizeleri çevirmek için t pipe işaretini kullanın.