Düğüm tipleri birleştirilebilir mi? (ör. tek bir cümlede birden çok çoğul)
Evet, Intlayer'daki düğüm tipleri birbiriyle birleştirilebilir (compose edilebilir). Örneğin, bir plural() fonksiyonunu başka bir plural() içine yerleştirebilir veya plural() ile insert() fonksiyonunu birlikte kullanabilirsiniz.
Tek bir cümlede birbirinden bağımsız iki çoğul değişkeni ifade etmeniz gerektiğinde (örneğin: "2 klasörde 1 dosya" ve "1 klasörde 3 dosya"), iki temel yaklaşım bulunur:
- Ayrı
plural()anahtarlarıylainsert()kullanmak (Önerilen): Temiz, bakımı kolay ve diller arasındaki doğru kelime sırasını korur. plural()içineplural()yerleştirmek (Doğrudan birleştirme): Geçerli bir sözdizimidir ancak karmaşık çoğul kurallarına sahip dillerde dalların kombinasyonel olarak çoğalmasına yol açabilir.
insert() ile plural() Birleştirmek
En esnek ve deyimsel yaklaşım, çoğullaştırılan her terim için ayrı plural anahtarları tanımlamak ve bunları bir insert() şablonuyla bir araya getirmektir.
1. İçeriği Tanımlayın
src/fileSummary.content.ts
Kodu kopyala
Kodu panoya kopyala
import { insert, plural, t, type Dictionary } from "intlayer";
const fileSummaryContent = {
key: "file_summary",
content: {
// Ekleme şablonu, her dil için öğelerin dizilimini belirler
summary: t({
tr: insert("{{folders}} içinde {{files}}"),
en: insert("{{files}} in {{folders}}"),
fr: insert("{{files}} dans {{folders}}"),
ja: insert("{{folders}}の中に{{files}}"),
}),
files: t({
tr: plural({
other: "{{count}} dosya",
}),
en: plural({
one: "{{count}} file",
other: "{{count}} files",
}),
fr: plural({
one: "{{count}} fichier",
other: "{{count}} fichiers",
}),
ja: plural({
other: "{{count}} 個のファイル",
}),
}),
folders: t({
tr: plural({
other: "{{count}} klasör",
}),
en: plural({
one: "{{count}} folder",
other: "{{count}} folders",
}),
fr: plural({
one: "{{count}} dossier",
other: "{{count}} dossiers",
}),
ja: plural({
other: "{{count}} 個のフォルダー",
}),
}),
},
} satisfies Dictionary;
export default fileSummaryContent;
2. Bileşeninizde Kullanın
src/components/FileSummary.tsx
Kodu kopyala
Kodu panoya kopyala
src/components/FileSummary.vue
Kodu kopyala
Kodu panoya kopyala
src/components/FileSummary.svelte
Kodu kopyala
Kodu panoya kopyala
Bu yaklaşım neden önerilir?
- Cümle Yapısı ve Kelime Sırası: Farklı diller sıfatları, sayıları ve nesneleri farklı sıralarda kullanır (örneğin Türkçe veya Japonca'da dosya ve klasör sırası İngilizce'ye göre değişebilir). Bir
insert()şablonu, çoğul kurallarını bozmadan çevirmenlere kelime sırası üzerinde tam denetim sağlar. - Kombinasyonel Patlamayı Önler: Eğer A dilinde 2 çoğul formu (İngilizce:
one,other) ve B dilinde 4 form (Rusça:one,few,many,other) varsa, iç içe çoğul tanımlamak Rusça için $4 \times 4 = 16$ dal gerektirir. Ayrı anahtarlarla ise yalnızca $4 + 4 = 8$ dal tanımlarsınız. - Yeniden Kullanılabilirlik:
filesveyafoldersçoğul tanımlarını arayüzünüzün diğer bölümlerinde tekrar kullanabilirsiniz.