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
- "Solid useIntlayer API kullanımını doğrudan özellik erişimine güncelle"v8.9.004.05.2026
- "Geçmişi başlat"v8.4.1031.03.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üleyinIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Vanilla JS web sitenizi Intlayer kullanarak çevirin | Uluslararasılaştırma (i18n)
İçindekiler
Neden alternatifler yerine Intlayer?
'i18next' veya 'i18n.js' gibi ana çözümlerle karşılaştırıldığında Intlayer, aşağıdaki gibi entegre optimizasyonlarla gelen bir çözümdür:
Intlayer, çerçeveden bağımsız içerik yönetimi, TypeScript desteği ve uluslararasılaştırmayı (i18n) ölçeklendirmek için gereken tüm özellikleri sunarak Vanilla JavaScript ile mükemmel çalışacak şekilde optimize edilmiştir.
Sayfalarınıza çok büyük JSON dosyaları yüklemek yerine yalnızca gerekli içeriği yükleyin. Intlayer bundle ve sayfa boyutlarınızı %50'ye kadar azaltmanıza yardımcı olur.
Uygulamanızın içeriğinin kapsamını belirlemek, büyük ölçekli uygulamalar için bakımı kolaylaştırır. İçerik kod tabanınızın tamamını gözden geçirmenin zihinsel yükü olmadan, tek bir özellik klasörünü çoğaltabilir veya silebilirsiniz. Ayrıca Intlayer, içeriğinizin doğruluğunu sağlamak için tamamen tiplendirilmiş (fully typed)tır.
İçeriğin bir arada konumlandırılması Büyük Dil Modellerinin (LLM'ler) ihtiyaç duyduğu bağlamı azaltır. Intlayer ayrıca eksik çevirileri test etmek için CLI gibi bir araç paketiyle birlikte gelirLSP, MCP ve aracı becerileri, geliştirici deneyimini (DX) yapay zeka için daha da sorunsuz hale getirmek için ajanlar.
Maliyeti AI sağlayıcınıza ait olmak üzere seçtiğiniz LLM'yi kullanarak CI/CD işlem hattınızda çeviri yapmak için otomasyonu kullanın. Intlayer ayrıca içerik çıkarmayı otomatikleştirmek için bir derleyici ve arka planda çeviri yapmaya yardımcı olacak bir web platformu sunar.
Büyük JSON dosyalarını bileşenlere bağlamak performans ve tepkime sorunlarına yol açabilir. Intlayer, içerik yüklemenizi derleme sırasında optimize eder.
Bir i18n çözümünden çok daha fazlası olan Intlayer, kendi kendine barındırılan bir görsel düzenleyici ve tam CMS çok dilli içeriğinizi gerçek zamanlı olarak yönetmenize yardımcı olarak çevirmenler, metin yazarları ve diğer ekip üyeleriyle işbirliğini kusursuz hale getirir. İçerik yerel olarak ve/veya uzaktan depolanabilir.
Vanilla JS Uygulamasında Intlayer Kurulumu İçin Adım Adım Kılavuz
Bağımlılıkları Yükleyin
Gerekli paketleri npm kullanarak yükleyin:
bashKodu kopyalaKodu panoya kopyala
# intlayer ve vanilla-intlayer'ın bağımsız bir paketini oluşturun# Bu dosya HTML dosyanıza aktarılacaktırnpx intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js# Yapılandırma dosyası ile intlayer'ı başlatınnpx intlayer init --no-gitignore# Sözlükleri oluşturunnpx intlayer buildintlayer Yapılandırma yönetimi, çeviri, içerik bildirimi, transpilation ve CLI komutları için uluslararasılaştırma araçları sağlayan temel paket.
vanilla-intlayer Intlayer'ı saf JavaScript / TypeScript uygulamalarıyla entegre eden paket. Uygulamanızın herhangi bir bölümünün bir UI çerçevesine bağımlı olmadan dil değişikliklerine tepki verebilmesi için bir pub/sub singleton (
IntlayerClient) ve geri çağırma tabanlı yardımcılar (useIntlayer,useLocalevb.) sağlar.
intlayer standaloneCLI'nın oluşturduğu paket (bundling), yapılandırmanıza özel kullanılmayan paketleri, dilleri ve temel olmayan mantığı (yönlendirmeler veya önekler gibi) tree-shaking (gereksiz kod temizleme) yoluyla kaldırarak optimize edilmiş bir yapı sunar.Projenizin Yapılandırılması
Uygulamanızın dillerini yapılandırmak için bir yapılandırma dosyası oluşturun:
intlayer.config.tsKodu kopyalaKodu panoya kopyala
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Diğer dilleriniz ], defaultLocale: Locales.ENGLISH, }, }; export default config;Bu yapılandırma dosyası aracılığıyla, yerelleştirilmiş URL'ler, middleware yönlendirmesi, çerez adları, içerik bildirimlerinizin konumu ve uzantısı, konsoldaki Intlayer günlüklerini devre dışı bırakma ve daha fazlasını ayarlayabilirsiniz. Mevcut parametrelerin tam listesi için yapılandırma belgelerine bakın.
Paketi HTML'inize Aktarın
intlayer.jspaketini oluşturduktan sonra, onu HTML dosyanıza aktarabilirsiniz:index.htmlKodu kopyalaKodu panoya kopyala
<!DOCTYPE html><html lang="tr"> <head> <meta charset="UTF-8" /> <!-- Paketi içeri aktarın --> <script src="./intlayer.js" defer></script> <!-- Ana betiğinizi içeri aktarın --> <script src="./src/main.js" defer></script> </head> <body> <h1 id="title"></h1> <p class="read-the-docs"></p> </body></html>Paket,
IntlayerveVanillaIntlayernesneleriniwindowüzerinde küresel nesneler olarak ortaya çıkarır.Giriş Noktanızda Intlayer'ı Başlatın
src/main.jsdosyanızda, herhangi bir içerik oluşturulmadan önceinstallIntlayer()işlevini çağırın, böylece küresel dil singleton'ı hazır olur.src/main.jsKodu kopyalaKodu panoya kopyala
const { installIntlayer } = window.VanillaIntlayer;// Herhangi bir i18n içeriği oluşturulmadan önce çağrılmalıdır.installIntlayer();Markdown oluşturucuyu da kullanmak istiyorsanız,
installIntlayerMarkdown()işlevini çağırın:src/main.jsKodu kopyalaKodu panoya kopyala
const { installIntlayer, installIntlayerMarkdown } = window.VanillaIntlayer;installIntlayer();installIntlayerMarkdown();İçeriğinizi Bildirin
Çevirileri saklamak için içerik bildirimlerinizi oluşturun ve yönetin:
src/app.content.tsKodu kopyalaKodu panoya kopyala
import { insert, t, type Dictionary } from "intlayer"; const appContent = { key: "app", content: { title: "Vite + Vanilla", viteLogoLabel: t({ en: "Vite Logo", fr: "Logo Vite", es: "Logo Vite", }), count: insert( t({ en: "count is {{count}}", fr: "le compte est {{count}}", es: "el recuento es {{count}}", }) ), readTheDocs: t({ en: "Click on the Vite logo to learn more", fr: "Cliquez sur le logo Vite pour en savoir plus", es: "Daha fazla bilgi edinmek için Vite logosuna tıklayın", }), }, } satisfies Dictionary; export default appContent;İçerik bildirimleriniz,
contentDirdizinine (varsayılan olarak./src) dahil edildikleri sürece uygulamanızın herhangi bir yerinde tanımlanabilir. Ve içerik bildirimi dosya uzantısıyla (varsayılan olarak.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}) eşleşir.Daha fazla ayrıntı için içerik bildirimi belgelerine bakın.
JavaScript'inizde Intlayer Kullanın
window.VanillaIntlayernesnesi API yardımcıları sağlar:useIntlayer(key, locale?)verilen anahtar için çevrilmiş içeriği döndürür.src/main.jsKodu kopyalaKodu panoya kopyala
const { installIntlayer, useIntlayer } = window.VanillaIntlayer;installIntlayer();// Mevcut dil için başlangıç içeriğini alın.// Dil her değiştiğinde bildirim almak için .onChange()'i bağlayın.const content = useIntlayer("app").onChange((newContent) => { // Yalnızca etkilenen DOM düğümlerini yeniden oluşturun veya yamalayın document.querySelector("h1").textContent = String(newContent.title); document.querySelector(".read-the-docs").textContent = String( newContent.readTheDocs );});// İlk oluşturmadocument.querySelector("h1").textContent = String(content.title);document.querySelector(".read-the-docs").textContent = String( content.readTheDocs);Yaprak değerlere
String()içine sararak dize olarak erişin; bu, düğümüntoString()yöntemini çağırır ve çevrilmiş metni döndürür.Yerel bir HTML özelliği (örneğin
alt,aria-label) için değere ihtiyacınız olduğunda doğrudan.valuekullanın:javascriptKodu kopyalaKodu panoya kopyala
img.alt = content.viteLogoLabel.value;İçeriğinizin dilini değiştirin
İsteğe bağlıİçeriğinizin dilini değiştirmek için
useLocaletarafından sunulansetLocaleişlevini kullanın.src/locale-switcher.jsKodu kopyalaKodu panoya kopyala
const { getLocaleName } = window.Intlayer;const { useLocale } = window.VanillaIntlayer;export function setupLocaleSwitcher(container) { const { locale, availableLocales, setLocale, subscribe } = useLocale(); const select = document.createElement("select"); select.setAttribute("aria-label", "Dil"); const render = (currentLocale) => { select.innerHTML = availableLocales .map( (loc) => `<option value="${loc}"${loc === currentLocale ? " selected" : ""}> ${getLocaleName(loc)} </option>` ) .join(""); }; render(locale); container.appendChild(select); select.addEventListener("change", () => setLocale(select.value)); // Dil başka bir yerden değiştiğinde açılır menüyü senkronize tutun return subscribe((newLocale) => render(newLocale));}HTML Dil ve Yön Özniteliklerini Değiştirin
İsteğe bağlıErişilebilirlik ve SEO için
<html>etiketininlangvedirözniteliklerini geçerli dile uyacak şekilde güncelleyin.src/main.jsKodu kopyalaKodu panoya kopyala
const { getHTMLTextDir } = window.Intlayer;const { installIntlayer, useLocale } = window.VanillaIntlayer;installIntlayer();useLocale({ onLocaleChange: (locale) => { document.documentElement.lang = locale; document.documentElement.dir = getHTMLTextDir(locale); },});Dil başına sözlükleri geç yükleme
İsteğe bağlıSözlükleri dile göre geç yüklemek istiyorsanız
useDictionaryDynamickullanabilirsiniz. Başlangıçtakiintlayer.jsdosyasında tüm çevirileri paketlemek istemiyorsanız bu yararlıdır.src/app.jsKodu kopyalaKodu panoya kopyala
const { installIntlayer, useDictionaryDynamic } = window.VanillaIntlayer;installIntlayer();const unsubscribe = useDictionaryDynamic( { en: () => import("../.intlayer/dictionaries/en/app.mjs"), fr: () => import("../.intlayer/dictionaries/fr/app.mjs"), es: () => import("../.intlayer/dictionaries/es/app.mjs"), }, "app").onChange((content) => { document.querySelector("h1").textContent = String(content.title);});Not:
useDictionaryDynamic, sözlüklerin ayrı ESM dosyaları olarak mevcut olmasını gerektirir. Bu yaklaşım genellikle sözlükleri sunan bir web sunucunuz varsa kullanılır.
TypeScript'i Yapılandırın
TypeScript yapılandırmanızın otomatik olarak oluşturulan türleri içerdiğinden emin olun.
Kodu panoya kopyala
{ "compilerOptions": { // ... }, "include": ["src", ".intlayer/**/*.ts"],}VS Code Uzantısı
Intlayer ile geliştirme deneyiminizi geliştirmek için resmi Intlayer VS Code Uzantısını yükleyebilirsiniz.
VS Code Marketplace'ten yükleyin
Bu uzantı şunları sağlar:
- Çeviri anahtarları için otomatik tamamlama.
- Eksik çeviriler için gerçek zamanlı hata algılama.
- Çevrilmiş içeriğin satır içi önizlemeleri.
- Çevirileri kolayca oluşturmak ve güncellemek için hızlı eylemler.
Uzantının nasıl kullanılacağına ilişkin daha fazla ayrıntı için Intlayer VS Code Uzantısı belgelerine bakın.
Daha İleri Gidin
Daha ileri gitmek için görsel düzenleyiciyi uygulayabilir veya CMS kullanarak içeriğinizi dışsallaştırabilirsiniz.