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
- "Dokümantasyonun başlatılması"v9.4.024.08.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
intlayer Elysia Eklenti Dokümantasyonu
Elysia için intlayer eklentisi kullanıcının locale'ini tespit eder ve route context'ine bir intlayer nesnesi enjekte eder. Ayrıca, istek bağlamı içerisinde global çeviri fonksiyonlarının kullanılmasını sağlar.
Kullanım
Kodu panoya kopyala
Plugin, context'ini global birderiveüzerinden kaydeder ve Elysia bunuPartial<{ intlayer: IntlayerContext }>olarak tipler..use(intlayer())sonrasında kaydedilen route'larda değer çalışma zamanında her zaman mevcuttur; bu yüzdenstrictmodda TypeScript'i memnun etmek için non-null assertion (intlayer!.t) veya optional chaining kullanın.
Aynı helper'lar bağımsız export'lar olarak da mevcuttur; böylece route context'ini destructure etmeden çağırabilirsiniz:
Kodu panoya kopyala
Açıklama
Eklenti aşağıdaki görevleri yerine getirir:
- Locale Algılama: İstemcinin açıkça belirlediği locale'i storage'dan (çerez, başlık) okur, ardından
Accept-Languagebaşlığından müzakere edilen locale'e geri döner. - Bağlama Enjeksiyon: Elysia route context'ine bir
intlayerözelliği ekler (aşağıdaki Route Context tablosuna bakın). - Bağlam Yönetimi: Asenkron bir bağlamı yönetmek için
AsyncLocalStoragekullanır; böylece global Intlayer fonksiyonları (t,getIntlayer,getDictionary) bağlam nesnesini taşımaya gerek kalmadan isteğe özel locale'e erişebilir. - Sözlük Hazırlığı: Plugin oluşturulduğunda
prepareIntlayerçağrılır, böylece sözlükler uygulama açılırken derlenir.
Route Context
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Özellik | Tip | Açıklama |
|---|---|---|
locale | Locale | Bu istek için kullanılacak locale; locale_storage, locale_detected'a göre önceliklidir. |
locale_storage | Locale (opsiyonel) | İstemcinin bir çerez veya başlık aracılığıyla açıkça talep ettiği locale. |
locale_detected | Locale | İstek başlıklarından müzakere edilen locale. |
defaultLocale | Locale | intlayer.config.ts içinde fallback olarak yapılandırılan locale. |
t | TranslateFunction | Bir çeviri fonksiyonu. |
getIntlayer | typeof getIntlayer | Sözlükleri anahtarına göre almak için bir fonksiyon. |
getDictionary | typeof getDictionary | Sözlük nesnelerini işlemek için bir fonksiyon. |
Node tabanlı Intlayer eklentilerinin aksine,elysia-intlayercls-hookedyerineAsyncLocalStorage'a dayanır; çünkücls-hooked, Bun'un uygulamadığıasync_hooks.createHook'a bağımlıdır.
İstek bağlamı, yanıt map'lendiği anda serbest bırakılır; böylece bağımsız helper'lar hiçbir zaman sonlanmış bir isteğe karşı çözümlenmez. Eklentinin işlediği bir isteğin dışında çağrıldıklarında, yapılandırılmış varsayılan locale'e geri dönerler.
Locale Çözümleme Sırası
Varsayılan olarak plugin, locale'i şu sırayla çözer:
INTLAYER_LOCALEçerezi.x-intlayer-localeheader'ı.Accept-Languageheader müzakeresi.- Yapılandırılan
defaultLocale.
Kodu panoya kopyala
Yapılandırma
Eklenti intlayer.config.ts dosyanızı okur. Locale algılama için kullanılan çerezi ve başlığı özelleştirebilirsiniz:
Kodu panoya kopyala
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
defaultLocale: Locales.ENGLISH,
},
routing: {
storage: [
{ type: "header", name: "my-locale-header" },
{ type: "cookie", name: "my-locale-cookie" },
],
},
};
export default config;
Yapılandırma hakkında daha fazla bilgi için yapılandırma dokümantasyonunu ziyaret edin.
