Sorunuzu sorun ve bu sayfaya ve seçtiğiniz AI sağlayıcısına referans vererek belgenin bir özetini alın
Sürüm Geçmişi
- "Seçime dayalı (select) içerik eklendi"v9.1.030.07.2026
Bu sayfanın içeriği bir yapay zeka kullanılarak çevrildi.
Orijinal içeriğin İngilizce son sürümünü görüntüleyinBu dokümantasyonu geliştirmek için bir fikriniz varsa, lütfen GitHub'da bir çekme isteği göndererek katkıda bulunmaktan çekinmeyin.
Dokümantasyon için GitHub bağlantısıBelge Markdown'ını panoya kopyala
Seçime Dayalı İçerik (Select) / Intlayer
Select Nasıl Çalışır
Intlayer'da seçime dayalı içerik, rastgele dize değerlerini karşılık gelen içeriklerle eşleştiren select işlevi aracılığıyla elde edilir. Bu, ICU {value, select, …} mesajına eşdeğerdir veya uygulamanızın kodundaki bir switch ifadesine benzer.
Ayırt edici (discriminant) rastgele bir dize olduğunda select kullanın: durum (status), plan, platform veya rol (role) gibi. Diğer ayırt ediciler için Intlayer özel düğümler sunar:
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Ayırt Edici (Discriminant) | Düğüm |
|---|---|
| Miktar (Quantity) | enu() |
| Boolean | cond() |
| Cinsiyet (Gender) | gender() |
| Diğer herhangi bir dize | select() |
Seçime Dayalı İçeriği Ayarlama
Intlayer projenizde seçime dayalı içeriği ayarlamak için, seçim (select) tanımlarınızı içeren bir içerik modülü oluşturun. Aşağıda farklı formatlarda örnekler verilmiştir.
Kodu panoya kopyala
import { select, type Dictionary } from "intlayer";
const myPostContent = {
key: "my_key",
content: {
publishStatus: select({
draft: "This post is a draft",
published: "This post is live",
scheduled: "This post is scheduled",
fallback: "Unknown status", // isteğe bağlı
}),
},
} satisfies Dictionary;
export default myPostContent;
Eğer hiçbirfallbackbildirilmezse, sağlanan değer bildirilen durumların hiçbiriyle eşleşmediğinde, son bildirilen anahtar yedek (fallback) olarak kabul edilir: tıpkıcond()vegender()sözleşmelerinde olduğu gibi.
Tür Güvenliği (Type Safety)
Kabul edilen argüman, bildirilen durumlardan (cases) çıkarılır:
- Hiçbir
fallbackyoksa, yalnızca bildirilen durumlar kabul edilir: bir yazım hatası tür hatasına (type error) neden olur. - Bir
fallbackvarsa, bildirilen durumlar hala otomatik tamamlama sağlarken herhangi bir dize kabul edilir (çünkü fallback eşleşmeyen değerleri kapsar).
Neden düzenli bir nesne kullanılmamalı?
Düzenli (regular) bir nesne bildirmek ve çalışma zamanı (runtime) değerini kullanarak onu dizinlemek cazip gelebilir:
Kodu panoya kopyala
Intlayer derleyicisi (compiler), kullanılmayan içeriği kaldırmak ve kalan anahtarları küçültmek (minify) için kaynak kodunuzu ayrıştırır. Dinamik olarak hesaplanan erişim (obj[expr]) statik olarak çözümlenemez, bu nedenle tüm dal opak olarak işaretlenir: pakette tutulacak ve anahtarları küçültülmeyecektir.
select() kullanarak, durum çözümü (case resolution) bir özellik erişimi yerine bir işlev çağrısı içinde gerçekleşir. Derleyici bunu tek bir statik alan erişimi olarak görür ve tıpkı enu(), cond() veya gender() ile yaptığı gibi düğümü doğru bir şekilde optimize eder:
Kodu panoya kopyala
Seçime Dayalı İçeriği Kullanma
React bileşeninde seçime dayalı içeriği kullanmak için, react-intlayer paketinden useIntlayer kancasını (hook) içe aktarın ve kullanın. Bu kanca, belirtilen anahtar için içeriği getirir ve uygun çıktıyı seçmek üzere bir değer iletmenizi sağlar.
Kodu panoya kopyala
import type { FC } from "react";
import { useIntlayer } from "react-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>
{
/* Çıktı: This post is a draft */
publishStatus("draft")
}
</p>
<p>
{
/* Çıktı: This post is live */
publishStatus("published")
}
</p>
<p>
{
/* Çıktı: Unknown status */
publishStatus("Archived")
}
</p>
</div>
);
};
export default PostStatus;
Next.js İstemci Bileşenlerinde (Client Components) seçime dayalı içeriği kullanmak için içeriği useIntlayer kancası (hook) aracılığıyla getirin. Örnek:
Kodu panoya kopyala
"use client";
import type { FC } from "react";
import { useIntlayer } from "next-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
Vue bileşenlerinde seçime dayalı içeriği kullanmak için içeriği useIntlayer kancası (hook) aracılığıyla getirin. Örnek:
Kodu panoya kopyala
Svelte bileşenlerinde seçime dayalı içeriği kullanmak için içeriği useIntlayer kancası (hook) aracılığıyla getirin. Mağazaya (store) $ kullanılarak erişilir. Örnek:
Kodu panoya kopyala
Preact bileşenlerinde seçime dayalı içeriği kullanmak için içeriği useIntlayer kancası (hook) aracılığıyla getirin. Örnek:
Kodu panoya kopyala
import type { FC } from "preact";
import { useIntlayer } from "preact-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
SolidJS bileşenlerinde seçime dayalı içeriği kullanmak için içeriği useIntlayer kancası (hook) aracılığıyla getirin. Örnek:
Kodu panoya kopyala
import type { Component } from "solid-js";
import { useIntlayer } from "solid-intlayer";
const PostStatus: Component = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
Angular bileşenlerinde seçime dayalı içeriği kullanmak için içeriği useIntlayer kancası (hook) aracılığıyla getirin. Örnek:
Kodu panoya kopyala
vanilla-intlayer ile seçime dayalı içeriği kullanmak için içeriği useIntlayer işlevi (function) aracılığıyla getirin. Örnek:
Kodu panoya kopyala
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
installIntlayer();
const content = useIntlayer("my_key").onChange((newContent) => {
document.getElementById("status")!.textContent =
newContent.publishStatus("draft");
});
// İlk oluşturma (Initial render)
document.getElementById("status")!.textContent = content.publishStatus("draft");
Select ile Diğer Düğümleri Birleştirme
Her durum tam bir içerik düğümü barındırdığından, select t(), insert(), md() vb. ile birleştirilebilir:
Kodu panoya kopyala
Kodu panoya kopyala
ICU select 'ten Geçiş
ICU select argümanını kullanan mesajlar select düğümü olarak içe aktarılır:
Kodu panoya kopyala
Şuna dönüşür:
Kodu panoya kopyala
ICU other durumu, Intlayer'da her şeyi yakalayan durumların (catch-all cases) standart adı olan fallback olarak yeniden adlandırılır. İkinci argüman ICU değişken adını tutar, böylece mesaj dışa aktarıldığında (export) tekrar aynı ICU dizesine dönüştürülür.
Lütfen dikkat edin; durumların cinsiyet değerleri (male/female/other) olduğu ICUselectmesajları bunun yerine birgenderdüğümü olarak içe aktarılır.
Ek Kaynaklar
Yapılandırma ve kullanım hakkında daha ayrıntılı bilgi için aşağıdaki kaynaklara bakın:
Bu kaynaklar, Intlayer'ın kurulumu ve kullanımı hakkında çeşitli ortamlarda ve framework'lerde daha fazla bilgi sağlar.