{$content.title}
\n\n{@const Title = $content.title}
\n\n\n\n\n\n> Eğer uygulamanız zaten mevcutsa, binlerce bileşeni bir saniye içinde dönüştürmek için [Intlayer Compiler](/tr/doc/compiler)'ı [extract komutu](/tr/doc/concept/cli/extract) ile birlikte kullanabilirsiniz.\n```\n\n### (İsteğe bağlı) Adım 6: İçeriğinizin dilini değiştirin\n\n```svelte fileName=\"src/App.svelte\"\n\n\n{$content.markdownContent}
\n```\n\n> Markdown front-matter verilerinize `content.markdownContent.metadata.xxx` özelliğini kullanarak da erişebilirsiniz.\n\n### (İsteğe bağlı) Adım 8: intlayer editör / CMS kurulumu\n\nintlayer editörünü kurmak için [intlayer editör dokümantasyonunu](/tr/doc/concept/editor) takip etmelisiniz.\n\nintlayer CMS'i kurmak için [intlayer CMS dokümantasyonunu](/tr/doc/concept/cms) takip etmelisiniz.\n\n### (İsteğe bağlı) Adım 7: Uygulamanıza yerelleştirilmiş Yönlendirme ekleyin\n\nSvelte uygulamanızda yerelleştirilmiş yönlendirmeyi yönetmek için, `svelte-spa-router` paketini ve Intlayer'ın `localeFlatMap` fonksiyonunu kullanarak her locale için rotalar oluşturabilirsiniz.\n\nÖncelikle, `svelte-spa-router` paketini yükleyin:\n\n```bash packageManager=\"npm\"\nnpm install svelte-spa-router\nnpx intlayer init\n```\n\n```bash packageManager=\"pnpm\"\npnpm add svelte-spa-router\npnpm intlayer init\n```\n\n```bash packageManager=\"yarn\"\nyarn add svelte-spa-router\nyarn intlayer init\n```\n\n```bash packageManager=\"bun\"\nbun add svelte-spa-router\n```\n\nSonra, rotalarınızı tanımlamak için bir `Router.svelte` dosyası oluşturun:\n\n```svelte fileName=\"src/Router.svelte\"\n\n\nSorunuzu 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
- "init komutu ekle"v7.5.930.12.2025
- "Doküman güncellendi"v5.5.1119.11.2025
- "Geçmiş başlatıldı"v5.5.1029.06.2025
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 kullanarak Vite ve Svelte web sitenizi çevirin | Uluslararasılaştırma (i18n)
İçindekiler
Intlayer Nedir?
Intlayer, modern web uygulamalarında çok dilli desteği basitleştirmek için tasarlanmış yenilikçi, açık kaynaklı bir uluslararasılaştırma (i18n) kütüphanesidir.
Intlayer ile şunları yapabilirsiniz:
- Bileşen seviyesinde deklaratif sözlükler kullanarak çevirileri kolayca yönetmek.
- Meta verileri, rotaları ve içeriği dinamik olarak yerelleştirmek.
- Otomatik oluşturulan tiplerle TypeScript desteğini sağlamak, böylece otomatik tamamlama ve hata tespitini geliştirmek.
- Dinamik dil algılama ve değiştirme gibi gelişmiş özelliklerden faydalanmak.
Vite ve Svelte Uygulamasında Intlayer Kurulum Adım Adım Rehberi
GitHub'da Uygulama Şablonuna bakın.
Adım 1: Bağımlılıkları Yükleyin
Gerekli paketleri npm kullanarak yükleyin:
Kodu panoya kopyala
npm install intlayer svelte-intlayernpm install vite-intlayer --save-devnpx intlayer initintlayer
Konfigürasyon yönetimi, çeviri, içerik bildirimi, transpile etme ve CLI komutları için uluslararasılaştırma araçları sağlayan temel paket.
svelte-intlayer Intlayer'ı Svelte uygulamasıyla entegre eden paket. Svelte uluslararasılaştırması için context sağlayıcıları ve hook'lar sunar.
vite-intlayer
Intlayer'ı Vite bundler ile entegre etmek için Vite eklentisini içerir; ayrıca kullanıcının tercih ettiği dili tespit etmek, çerezleri yönetmek ve URL yönlendirmelerini işlemek için middleware sağlar.
Adım 2: Projenizin Konfigürasyonu
Uygulamanızın dillerini yapılandırmak için bir konfigürasyon dosyası oluşturun:
Kodu 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 konfigürasyon dosyası aracılığıyla, yerelleştirilmiş URL'ler, middleware yönlendirmesi, çerez isimleri, içerik beyanlarınızın konumu ve uzantısı, Intlayer loglarının konsolda devre dışı bırakılması ve daha fazlasını ayarlayabilirsiniz. Mevcut parametrelerin tam listesi için konfigürasyon dokümantasyonuna bakınız.
Adım 3: Intlayer'ı Vite Konfigürasyonunuza Entegre Edin
Konfigürasyonunuza intlayer eklentisini ekleyin.
Kodu panoya kopyala
import { defineConfig } from "vite";import { svelte } from "@sveltejs/vite-plugin-svelte";import { intlayer } from "vite-intlayer";// https://vitejs.dev/config/export default defineConfig({ plugins: [svelte(), intlayer()],});intlayer() Vite eklentisi, Intlayer'ı Vite ile entegre etmek için kullanılır. İçerik beyan dosyalarının oluşturulmasını sağlar ve geliştirme modunda bunları izler. Vite uygulaması içinde Intlayer ortam değişkenlerini tanımlar. Ayrıca, performansı optimize etmek için takma adlar (alias) sağlar.
Adım 4: İçeriğinizi Beyan Edin
Çevirileri depolamak için içerik beyanlarınızı oluşturun ve yönetin:
Kodu panoya kopyala
import { t, type Dictionary } from "intlayer";
const appContent = {
key: "app",
content: {
title: t({
en: "Hello World",
fr: "Bonjour le monde",
es: "Hola mundo",
}),
},
} satisfies Dictionary;
export default appContent;İçerik bildirimleriniz, uygulamanızdacontentDirdizinine (varsayılan olarak./src) dahil edildiği sürece herhangi bir yerde tanımlanabilir. Ve içerik bildirim dosya uzantısıyla eşleşmelidir (varsayılan olarak.content.{json,ts,tsx,js,jsx,mjs,cjs}).
Daha fazla detay için, içerik bildirim dokümantasyonuna bakabilirsiniz.
Adım 5: Kodunuzda Intlayer'ı Kullanın
Kodu panoya kopyala
<script> import { useIntlayer } from "svelte-intlayer"; const content = useIntlayer("app");</script><div><!-- İçeriği basit içerik olarak render et --><h1>{$content.title}</h1><!-- İçeriği editör kullanarak düzenlenebilir şekilde render etmek için --><h1>{@const Title = $content.title}<Title /></h1><!-- İçeriği string olarak render etmek için --><div aria-label={$content.title.value}></div><div aria-label={$content.title.toString()}></div><div aria-label={String($content.title)}></div>> Eğer uygulamanız zaten mevcutsa, binlerce bileşeni bir saniye içinde dönüştürmek için [Intlayer Compiler](/tr/doc/compiler)'ı [extract komutu](/tr/doc/concept/cli/extract) ile birlikte kullanabilirsiniz.(İsteğe bağlı) Adım 6: İçeriğinizin dilini değiştirin
Kodu panoya kopyala
<script lang="ts">import { getLocaleName } from 'intlayer';import { useLocale } from "svelte-intlayer";// Dil bilgisi ve setLocale fonksiyonunu alconst { locale, availableLocales, setLocale } = useLocale();// Dil değişikliğini yönetconst changeLocale = (event: Event) => { const target = event.target as HTMLSelectElement; const newLocale = target.value; setLocale(newLocale);};</script><div> <select value={$locale} on:change={changeLocale}> {#each availableLocales ?? [] as loc} <option value={loc}> {getLocaleName(loc)} </option> {/each} </select></div>(İsteğe bağlı) Adım 7: Markdown Render Etme
Intlayer, Markdown içeriğini doğrudan Svelte uygulamanızda render etmeyi destekler. Varsayılan olarak, Markdown düz metin olarak işlenir. Markdown'u zengin HTML'ye dönüştürmek için @humanspeak/svelte-markdown veya başka bir markdown ayrıştırıcı entegre edebilirsiniz.
intlayer paketi kullanarak markdown içeriğinin nasıl tanımlanacağını görmek için markdown dokümanına bakınız.
Kodu panoya kopyala
<script> import { setIntlayerMarkdown } from "svelte-intlayer"; setIntlayerMarkdown((markdown) => // markdown içeriğini bir string olarak render et return markdown; );</script><h1>{$content.markdownContent}</h1>Markdown front-matter verilerinize content.markdownContent.metadata.xxx özelliğini kullanarak da erişebilirsiniz.
(İsteğe bağlı) Adım 8: intlayer editör / CMS kurulumu
intlayer editörünü kurmak için intlayer editör dokümantasyonunu takip etmelisiniz.
intlayer CMS'i kurmak için intlayer CMS dokümantasyonunu takip etmelisiniz.
(İsteğe bağlı) Adım 7: Uygulamanıza yerelleştirilmiş Yönlendirme ekleyin
Svelte uygulamanızda yerelleştirilmiş yönlendirmeyi yönetmek için, svelte-spa-router paketini ve Intlayer'ın localeFlatMap fonksiyonunu kullanarak her locale için rotalar oluşturabilirsiniz.
Öncelikle, svelte-spa-router paketini yükleyin:
Kodu panoya kopyala
npm install svelte-spa-routernpx intlayer initSonra, rotalarınızı tanımlamak için bir Router.svelte dosyası oluşturun:
Kodu panoya kopyala
<script lang="ts">import { localeFlatMap } from "intlayer";import Router from "svelte-spa-router";import { wrap } from "svelte-spa-router/wrap";import App from "./App.svelte";const routes = Object.fromEntries( localeFlatMap(({locale, urlPrefix}) => [ [ urlPrefix || '/', wrap({ component: App as any, props: { locale, }, }), ], ]));</script><Router {routes} />main.ts dosyanızı, App yerine Router bileşenini mount edecek şekilde güncelleyin:
Kodu panoya kopyala
import { mount } from "svelte";import Router from "./Router.svelte";const app = mount(Router, { target: document.getElementById("app")!,});export default app;Son olarak, App.svelte dosyanızı locale prop'unu alacak ve useIntlayer ile kullanacak şekilde güncelleyin:
Kodu panoya kopyala
<script lang="ts">import type { Locale } from 'intlayer';import { useIntlayer } from "svelte-intlayer";import Counter from './lib/Counter.svelte';import LocaleSwitcher from './lib/LocaleSwitcher.svelte';export let locale: Locale;$: content = useIntlayer('app', locale);</script><main> <div class="locale-switcher-container"> <LocaleSwitcher currentLocale={locale} /> </div> <!-- ... uygulamanızın geri kalanı ... --></main>Sunucu Tarafı Yönlendirmeyi Yapılandırma (Opsiyonel)
Paralel olarak, uygulamanıza sunucu tarafı yönlendirme eklemek için intlayerProxy'yi de kullanabilirsiniz. Bu eklenti, URL'ye göre mevcut locale'i otomatik olarak algılar ve uygun locale çerezini ayarlar. Eğer herhangi bir locale belirtilmemişse, eklenti kullanıcının tarayıcı dil tercihlerini baz alarak en uygun locale'i belirler. Hiçbir locale algılanamazsa, varsayılan locale'e yönlendirme yapar.
ÜretimdeintlayerProxykullanmak için,vite-intlayerpaketinidevDependencies'dendependencies'e geçirmeniz gerektiğini unutmayın.
Kodu panoya kopyala
import { defineConfig } from "vite";
import { svelte } from "@sveltejs/vite-plugin-svelte";
import { intlayer, intlayerProxy } from "vite-intlayer";
plugins: [intlayerProxy(), // should be placed first
svelte(), intlayer()],
});(İsteğe Bağlı) Adım 8: Dil değiştiğinde URL'yi değiştirme
Kullanıcıların dilleri değiştirmesine ve URL'yi buna göre güncellemesine izin vermek için bir LocaleSwitcher bileşeni oluşturabilirsiniz. Bu bileşen, intlayer'dan getLocalizedUrl ve svelte-spa-router'dan push fonksiyonlarını kullanacaktır.
Kodu panoya kopyala
<script lang="ts">import { getLocaleName, getLocalizedUrl } from "intlayer";import { useLocale } from "svelte-intlayer";import { push } from "svelte-spa-router";export let currentLocale: string | undefined = undefined;// Dil bilgilerini alconst { locale, availableLocales } = useLocale();// Dil değişikliğini yönetconst changeLocale = (event: Event) => { const target = event.target as HTMLSelectElement; const newLocale = target.value; const currentUrl = window.location.pathname; const url = getLocalizedUrl( currentUrl, newLocale); push(url);};</script><div class="locale-switcher"> <select value={currentLocale ?? $locale} onchange={changeLocale}> {#each availableLocales ?? [] as loc} <option value={loc}> {getLocaleName(loc)} </option> {/each} </select></div>Git Yapılandırması
Intlayer tarafından oluşturulan dosyaların göz ardı edilmesi önerilir. Bu, bu dosyaların Git deposuna eklenmesini önlemenizi sağlar.
Bunu yapmak için .gitignore dosyanıza aşağıdaki talimatları ekleyebilirsiniz:
Kodu panoya kopyala
# Intlayer tarafından oluşturulan dosyaları göz ardı et.intlayerVS Code Eklentisi
Intlayer ile geliştirme deneyiminizi iyileştirmek için resmi Intlayer VS Code Eklentisini yükleyebilirsiniz.
VS Code Marketplace'ten Yükleyin
Bu eklenti şunları sağlar:
- Çeviri anahtarları için Otomatik tamamlama.
- Eksik çeviriler için Gerçek zamanlı hata tespiti.
- Çevrilmiş içeriğin Satır içi önizlemeleri.
- Çevirileri kolayca oluşturup güncellemek için Hızlı işlemler.
Eklentinin nasıl kullanılacağı hakkında daha fazla bilgi için Intlayer VS Code Eklentisi dokümantasyonuna bakabilirsiniz.
(İsteğe bağlı) Adım 9 : Bileşenlerinizin içeriğini çıkarın
Mevcut bir kod tabanınız varsa, binlerce dosyayı dönüştürmek zaman alıcı olabilir.
Bu süreci kolaylaştırmak için Intlayer, bileşenlerinizi dönüştürmek ve içeriği çıkarmak için bir derleyici / çıkarıcı sunar.
Kurulum için intlayer.config.ts dosyanıza bir compiler bölümü ekleyebilirsiniz:
Kodu panoya kopyala
import { type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
// ... Yapılandırmanızın geri kalanı
compiler: {
/**
* Derleyicinin etkinleştirilip etkinleştirilmeyeceğini belirtir.
*/
enabled: true,
/**
* Çıktı dosyalarının yolunu tanımlar
*/
output: ({ fileName, extension }) => `./${fileName}${extension}`,
/**
* Bileşenlerin dönüştürüldükten sonra kaydedilip kaydedilmeyeceğini belirtir. Bu sayede derleyici, uygulamayı dönüştürmek için yalnızca bir kez çalıştırılabilir ve ardından kaldırılabilir.
*/
saveComponents: false,
/**
* Sözlük anahtarı öneki
*/
dictionaryKeyPrefix: "",
},
};
export default config;Bileşenlerinizi dönüştürmek ve içeriği çıkarmak için çıkarıcıyı çalıştırın
Kodu panoya kopyala
npx intlayer extract(İsteğe bağlı) Sitemap ve robots.txt (derleme zamanı üretimi)
Intlayer, generateSitemap ve getMultilingualUrls ile tarayıcılar için çok dilli sitemap.xml ve robots.txt üretip bunları public/ klasörüne otomatik yazmanıza yardımcı olur. Genelde Vite’tan önce küçük bir Node betiği çalıştırılır (ör. npm predev / prebuild kancaları).
Sitemap
Intlayer sitemap oluşturucusu yerel ayarlarınıza uyar ve tarayıcılar için metadata ekler.
Üretilen sitemapxhtml:link(hreflang) ad alanını destekler. Düz URL listesi yerine, her sayfanın tüm dil sürümleri çift yönlü bağlanır (ör./about,/fr/aboutveya/about?lang=fr- yönlendirme moduna bağlı).
Robots.txt
getMultilingualUrls kullanarak Disallow kurallarının hassas yolların tüm yerelleştirilmiş varyantlarını kapsamasını sağlayın.
1. Proje köküne generate-seo.mjs ekleyin
Kodu panoya kopyala
import fs from "fs";import path from "path";import { fileURLToPath } from "url";import { generateSitemap, getMultilingualUrls } from "intlayer";const __dirname = path.dirname(fileURLToPath(import.meta.url));const SITE_URL = (process.env.SITE_URL || "http://localhost:5173").replace( /\/$/, "");const pathList = [ { path: "/", changefreq: "daily", priority: 1.0 }, { path: "/about", changefreq: "monthly", priority: 0.7 },];const sitemapXml = generateSitemap(pathList, { siteUrl: SITE_URL });fs.writeFileSync(path.join(__dirname, "public", "sitemap.xml"), sitemapXml);const getAllMultilingualUrls = (urls) => urls.flatMap((url) => Object.values(getMultilingualUrls(url)));const disallowedPaths = getAllMultilingualUrls(["/admin", "/private"]);const robotsTxt = [ "User-agent: *", "Allow: /", ...disallowedPaths.map((path) => `Disallow: ${path}`), "", `Sitemap: ${SITE_URL}/sitemap.xml`,].join("\n");fs.writeFileSync(path.join(__dirname, "public", "robots.txt"), robotsTxt);console.log("SEO files generated successfully.");Betik intlayer içe aktarabilmeli; paket kurulu olmalı. Üretimde ortam değişkeni SITE_URL ayarlayın (ör. CI).
Node ESM içingenerate-seo.mjstercih edin.generate-seo.jskullanıyorsanızpackage.jsoniçinde"type": "module"veya ESM’yi başka şekilde etkinleştirin.
2. Betiği Vite’tan önce çalıştırın
Kodu panoya kopyala
{ "scripts": { "dev": "vite", "prebuild": "node generate-seo.mjs", "build": "vite build", "preview": "vite preview" }}pnpm veya yarn kullanıyorsanız komutları uyarlayın. CI’dan da çağrılabilir.
Daha İleri Gitmek
Daha ileri gitmek için, görsel editörü uygulayabilir veya içeriğinizi CMS kullanarak dışa aktarabilirsiniz.