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
- "Rota head fonksiyonlarında meta veri sözlüklerinin statik, dinamik ve önbellekli dinamik çözümlemesinin karşılaştırılması"v9.4.025.08.2026
- "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
- "validatePrefix'i tanıt ve 14. adımı ekle: Yerelleştirilmiş rotalarla 404 sayfalarını ele alma."v7.4.011.12.2025
- "13. adımı ekle: Sunucu işlemlerinde locale bilgisini almak (Opsiyonel)"v7.3.905.12.2025
- "13. adımı ekle: Nitro'yu uyarla"v7.2.318.11.2025
- "getPrefix fonksiyonunu ekleyerek useLocalizedNavigate, LocaleSwitcher ve LocalizedLink için önek varsayılanını düzelt."v7.1.017.11.2025
- "Doküman güncellemesi"v6.5.203.10.2025
- "Tanstack Start için eklendi"v5.8.109.09.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 ile Tanstack Start sitenizi çevirin | Uluslararasılaştırma (i18n)
İçindekiler
Bu rehber, Tanstack Start projelerinde yerel dil yönlendirmesi, TypeScript desteği ve modern geliştirme uygulamalarıyla sorunsuz uluslararasılaştırma için Intlayer'ın nasıl entegre edileceğini göstermektedir.
Neden alternatifler yerine Intlayer?
'React-i18next' veya 'use-intl' veya 'paraglide' gibi ana çözümlerle karşılaştırıldığında Intlayer, aşağıdaki gibi entegre optimizasyonlarla gelen bir çözümdür:
Intlayer, TanStack Start için tamamen optimize edilmiştir ve çok dilli yönlendirme, çerez yönetimi, site haritası oluşturma, dinamik içerik yükleme ve uluslararasılaştırma (i18n) çabalarınızı ölçeklendirmek için gereken tüm özellikleri sağlar.
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 agent skills, 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.
Tanstack Start Uygulamasında Intlayer Kurulumu için Adım Adım Rehber
GitHub'da Uygulama Şablonu sayfasına bakın.
Proje Oluşturma
TanStack Start web sitesindeki Yeni proje başlatma rehberini takip ederek yeni bir TanStack Start projesi oluşturun.
Intlayer Paketlerini Yükleyin
Tercih ettiğiniz paket yöneticisini kullanarak gerekli paketleri yükleyin:
Kodu panoya kopyala
--interactivebayrağı isteğe bağlıdır. Bir yapay zeka aracısıysanızintlayer-cli initkullanın.
Bu komut ortamınızı algılayacak ve gerekli paketleri yükleyecektir. Örneğin:
Kodu panoya kopyala
intlayer
Yapılandırma yönetimi, çeviri, içerik bildirimi, dönüştürme ve CLI komutları için uluslararasılaştırma araçları sağlayan temel paket.
react-intlayer Intlayer'ı React uygulamasıyla entegre eden paket. React uluslararasılaştırması için bağlam sağlayıcıları ve kancalar sunar.
vite-intlayer Intlayer'ı Vite paketleyicisi ile entegre etmek için Vite eklentisini içerir; ayrıca kullanıcının tercih ettiği yereli algılayan, çerezleri yöneten ve URL yönlendirmesini ele alan ara yazılımı da kapsar.
Projenizin Yapılandırılması
Uygulamanızın dillerini yapılandırmak için bir yapılandırma dosyası oluşturun:
Kodu panoya kopyala
Bu yapılandırma dosyası aracılığıyla, yerelleştirilmiş URL'ler, ara yazılım yönlendirmesi, çerez isimleri, içerik bildirimlerinizin konumu ve uzantısı, Intlayer günlüklerini konsolda devre dışı bırakma ve daha fazlasını ayarlayabilirsiniz. Mevcut parametrelerin tam listesi için yapılandırma dokümantasyonuna bakınız.
Intlayer'ı Vite Yapılandırmanıza Entegre Edin
Yapılandırmanıza intlayer eklentisini ekleyin:
Kodu panoya kopyala
intlayer() Vite eklentisi, Intlayer'ı Vite ile entegre etmek için kullanılır. İçerik bildirim 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 sağlar.
Kök Düzen (Root Layout) Oluşturma
Kök düzeninizi uluslararasılaştırmayı destekleyecek şekilde yapılandırın; useParams kullanarak mevcut yerel ayarı tespit edin ve html etiketinde lang ve dir özniteliklerini ayarlayın.
Kodu panoya kopyala
Yerel Dil Düzeni Oluşturma
Yerel ayar ön ekini işleyen ve doğrulama gerçekleştiren bir düzen oluşturun.
Kodu panoya kopyala
Burada{-$locale}, mevcut yerel ayar ile değiştirilen dinamik bir rota parametresidir. Bu gösterim, slotu isteğe bağlı hale getirerek'prefix-no-default'vb. gibi yönlendirme modlarıyla çalışmasına olanak tanır.
Aynı rotada birden fazla dinamik segment kullanıyorsanız bu slotun sorunlara yol açabileceğini unutmayın (örneğin,
/{-$locale}/other-path/$anotherDynamicPath/...).'prefix-all'modu için slotu$localeolarak değiştirmeyi tercih edebilirsiniz.'no-prefix'veya'search-params'modu için slotu tamamen kaldırabilirsiniz.
İçeriğinizi Bildirin
Çevirileri depolamak için içerik bildirimlerinizi oluşturun ve yönetin:
Kodu panoya kopyala
İçerik bildirimleriniz, uygulamanızda herhangi bir yerde tanımlanabilir, yeter kicontentDirdizinine dahil edilsin (varsayılan olarak,./app). Ve içerik bildirim dosya uzantısıyla eşleşmelidir (varsayılan olarak,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).
Daha fazla ayrıntı için, içerik bildirim dokümantasyonuna bakınız.
Yerel Dili Algılayan Bileşenler ve Hook'lar Oluşturun
Yerel dil algılayan gezinme için bir LocalizedLink bileşeni oluşturun:
Kodu panoya kopyala
Bu bileşenin iki amacı vardır:
- URL'den gereksiz
{-$locale}önekini kaldırmak. - Kullanıcının doğrudan yerelleştirilmiş rotaya yönlendirilmesini sağlamak için URL'ye locale parametresini enjekte etmek.
Daha sonra programatik gezinme için bir useLocalizedNavigate kancası oluşturabiliriz:
Kodu panoya kopyala
Sayfalarınızda Intlayer'ı Kullanın
Varsayılan olarakuseIntlayerkullanın: bileşenler içinde içerik okumanın önerilen yoludur ve derleyici onu render edilen yerel ayara çözer.getIntlayer/getIntlayerAsyncişlevlerine yalnızca React ağacının dışında başvurun: rotahead'i, loader'lar ve sunucu işlevleri.
Uygulamanız genelinde içerik sözlüklerinize erişin:
Yerelleştirilmiş Ana Sayfa
Kodu panoya kopyala
İçeriğinizi
alt,title,href,aria-labelgibistringniteliğinde kullanmak istiyorsanız, fonksiyonun değerini şu şekilde kullanabilirsiniz:htmlKodu kopyalaKodu panoya kopyala
useIntlayer hook'u hakkında daha fazla bilgi için belgeleri inceleyebilirsiniz.
Yerel Değiştirici Bileşeni Oluşturun
Kullanıcıların dil değiştirebilmesini sağlayan bir bileşen oluşturun:
Kodu panoya kopyala
useLocale hook'u hakkında daha fazla bilgi için belgeleri inceleyebilirsiniz.
HTML Nitelikleri Yönetimi
Adım 5'te görüldüğü gibi, root bileşeninizde useParams kullanarak html etiketinin lang ve dir niteliklerini yönetebilirsiniz. Bu, doğru niteliklerin sunucu ve istemci tarafında ayarlanmasını sağlar.
Kodu panoya kopyala
Middleware Ekleyin
Uygulamanıza sunucu tarafı yönlendirme eklemek için intlayerProxy'yi de kullanabilirsiniz. Bu eklenti, URL'ye dayalı olarak mevcut dili otomatik olarak algılayacak ve uygun yerel tanımlama bilgisini ayarlayacaktır. Hiçbir yerel belirtilmezse, eklenti kullanıcının tarayıcı dili tercihlerine göre en uygun dili belirleyecektir. Hiçbir yerel algılanmazsa, varsayılan dile yeniden yönlendirecektir.
intlayerProxy'yi üretimde kullanmak içinvite-intlayerpaketinidevDependencies'dendependencies'ye değiştirmeniz gerektiğini unutmayın.
Intlayer v9 itibariyle,intlayerProxy()doğrudanintlayer()eklentisine paketlenmiş verouting.enableProxyseçeneği (varsayılan olarak true) aracılığıyla varsayılan olarak etkinleştirilmiştir. Aşağıda gösterilen şekilde ayrı olarak kaydetmek artık isteğe bağlıdır: geriye dönük uyumluluk ve eklenti sırasını kontrol etmesi gereken kurulumlar için saklanmıştır.routing.enableProxy: falseolarak ayarlayarak devre dışı bırakabilirsiniz. v9 sürüm notlarına bakın.
Kodu panoya kopyala
Meta Verilerinizi Uluslararasılaştırın
getIntlayer birleştirilmiş sözlüğe karşı senkron olarak çözer, her bir bildirilen dili tutan sözlüktür. head senkron kalır ve hiçbir şey beklemez, ancak tüm çok dilli sözlük tarayıcıya gönderilen rota parçasına çekilir.
Kodu panoya kopyala
Küçük meta veri sözlükleri, bir avuç yerel dil veya prototip oluştururken en iyisidir.
getIntlayerAsync (v9.4 sürümünden itibaren kullanılabilir), getIntlayer'e benzer şekilde davranır, ancak yapı eklentisi birleştirilmiş sözlük yerine .intlayer/dynamic_dictionaries/ içindeki yerel başına parçayı gösterir. Bir sayfa bu nedenle yalnızca oluşturduğu dili gönderir. Bu parça isteğe bağlı yüklendiği için head async olur:
Kodu panoya kopyala
Birheadbirden çok sözlüğü okuyor ise,Promise.allile çözümleyin: hergetIntlayerAsync'i kendi satırında beklemeniz istekleri paralel olarak çalıştırmak yerine zincirlemenize neden olur.
Ödün: dinamik import, head çalışırken belge işleme açısından kritik yolda çözülür. Soğuk bir rota üzerinde bu, başlığı birkaç milisaniye geciktirir ve LCP'yi hafifçe bozabilir.
Sözlüğü rota loader'ında çözün ve head'de loaderData'dan geri okuyun. Eşleşen rotaların yükleyicileri paralel olarak çalışır ve staleTime: Infinity, TanStack Router'a sonucun hiçbir zaman eski olmadığını söyler, bu nedenle yerel başına parça bir kez çözülür ve daha sonra router önbelleğinden sunulur, head'i senkron bırakır.
Kodu panoya kopyala
headyükleyici kararlı olmadan önce çağrılabilir, bu nedenleloaderDatamuhtemelenundefinedolarak yazılır. İsteğe bağlı zincir oluşturmayı tutun veya bir başlık için fallback döndürün.
Yerel başına parçayı, head kritik yolunda maliyetini ödemeden tutarsınız. Fiyat geliştirici deneyimidir: içeriğin loaderData aracılığıyla yükleyiciden head'e açıkça iletilmesi gerekir.
Hangi çözümü seçmeliyim?
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Statik çözüm | Dinamik çözüm | Önbelleğe alınmış dinamik çözüm | |
|---|---|---|---|
| API | getIntlayer | getIntlayerAsync (v9.4+) | getIntlayerAsync in loader (v9.4+) |
head imzası | senkron | async | senkron, loaderData okur |
| Gönderilen diller | her bildirilen dil | yalnızca istenen dil | yalnızca istenen dil |
| İstemci navigasyonu | çözüme gerek yok | her eşleşmede yeniden gir | yönlendirici önbelleğinden sunulur |
| Geliştirici deneyimi | en basit | bir await | içerik loaderData aracılığıyla iletilir |
Sunucu eylemlerinizde yerel ayarı alın
Sunucu eylemleri veya API uç noktalarınızda geçerli yerel ayara erişmek isteyebilirsiniz.
Bunu intlayer öğesinden getLocale yardımcısını kullanarak yapabilirsiniz.
TanStack Start'ın sunucu işlevlerini kullanan bir örnek:
Kodu panoya kopyala
Bulunamayan sayfaları yönetin
Bir kullanıcı var olmayan bir sayfayı ziyaret ettiğinde, özel bir bulunamayan sayfa görüntüleyebilir ve yerel ön ek, bulunamayan sayfanın nasıl tetiklendiğini etkileyebilir.
Yerelleştirilmiş Ana Sayfa
useIntlayer kancasını daha fazla öğrenmek için, belgelere bakınız.
Bir Dil Değiştirici (Locale Switcher) Bileşeni Oluşturun
Kodu panoya kopyala
useLocale hook'u hakkında daha fazla bilgi edinmek için belgelere bakınız.
HTML Öznitelik Yönetimi
return ( {/* ... _/} ); } {/_ ... */} </html> ); }
export const Route = createFileRoute("/{-$locale}/")({ component: RouteComponent, head: async ({ params }) => { const { locale = defaultLocale } = params; const path = "/"; // The path for this route
Kodu panoya kopyala
Kodu panoya kopyala
Kodu panoya kopyala
Kodu panoya kopyala
Bileşenlerinizin içeriğini çıkarın
İsteğe bağlı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";
/**
* Çıktı dosyalarının yolunu tanımlar
*/
output: ({ fileName, extension }) => `./${fileName}${extension}`,
/**
* 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
bun x intlayer extract import { defineConfig } from "vite"; import { intlayer, intlayerCompiler } from "vite-intlayer";
export default defineConfig({ plugins: [
Kodu panoya kopyala
], });
Kodu panoya kopyala
bash packageManager="npm" npm run build # Veya npm run dev
Kodu panoya kopyala
bash packageManager="pnpm" pnpm run build # Or pnpm run dev
Kodu panoya kopyala
bash packageManager="yarn" yarn build # Or yarn dev
Kodu panoya kopyala
`bash packageManager="bun"
bun run build # Or bun run dev import { localeFlatMap } from "intlayer"; // ... diğer importlar
export const pathList = ["", "/about", "/404"];
I'm ready to help you audit and update the Turkish translation. However, I notice that both the English (en) reference block and the Turkish (tr) block to review appear to be empty in your message.
Please provide:
- BLOCK 5 of 5 (English source): The content in English that should be translated
- Current Turkish translation: The existing Turkish content that needs to be audited/updated
Please share the content blocks now.---
export const Route = createFileRoute("/sitemap.xml")({ server: {
Kodu panoya kopyala
}, }); { // ... mevcut yapılandırmalarınız include: [
Kodu panoya kopyala
], }
Git Yapılandırması
Intlayer tarafından oluşturulan dosyaları yoksaymak önerilir. Bu, bunları Git deponuza işlemekten kaçınmanızı sağlar.
Bunu yapmak için, .gitignore dosyanıza aşağıdaki talimatları ekleyebilirsiniz:
Kodu panoya kopyala
`
VS Code Extension
Intlayer ile geliştirme deneyiminizi iyileştirmek için resmi Intlayer VS Code Extension'ını yükleyebilirsiniz.
Bu extension şunları sağlar:
- Autocompletion çeviri anahtarları için.
- Real-time error detection eksik çeviriler için.
- Inline previews çevirilen içerik için.
- Quick actions kolayca çeviri oluşturmak ve güncellemek için.
Extension'ın nasıl kullanılacağı hakkında daha fazla ayrıntı için, Intlayer VS Code Extension belgelerine başvurun.
Daha İleri Gidin
Daha ileri gitmek için, görsel editörü uygulayabilir veya içeriğinizi CMS kullanarak dışsallaştırabilirsiniz.
