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
- "LocaleSwitcher, SEO, metadata güncellendi"v7.3.1107.12.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ü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
Intlayer kullanarak Nuxt ve Vue web sitenizi çevirin | Uluslararasılaştırma (i18n)
İçindekiler
Neden alternatifler yerine Intlayer?
'@nuxtjs/i18n' veya 'i18next' gibi ana çözümlerle karşılaştırıldığında Intlayer, aşağıdaki gibi entegre optimizasyonlarla gelen bir çözümdür:
Intlayer, çok dilli yönlendirme, yerel algılama için ara yazılım, site haritası ve uluslararasılaştırmayı ölçeklendirmek için gereken tüm özellikleri (i18n) sunarak Nuxt 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.
Nuxt Uygulamasında Intlayer Kurulumu Adım Adım Rehber
GitHub'da Uygulama Şablonunu inceleyin.
Bağımlılıkları Yükleyin
Gerekli paketleri npm kullanarak yükleyin:
bashKodu kopyalaKodu panoya kopyala
npm install intlayer vue-intlayernpm install --save-dev nuxt-intlayernpx intlayer initintlayer
Konfigürasyon yönetimi, çeviri, içerik beyanı, transpile etme ve CLI komutları için uluslararasılaştırma araçları sağlayan temel paket.
vue-intlayer Intlayer'ı Vue uygulamasıyla entegre eden paket. Vue bileşenleri için composables sağlar.
nuxt-intlayer Nuxt uygulamalarıyla Intlayer'ı entegre eden Nuxt modülü. Otomatik kurulum, yerel algılama için middleware, çerez yönetimi ve URL yönlendirmesi sağlar.
Projenizin yapılandırması
Uygulamanızın dillerini yapılandırmak için bir konfigürasyon 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'leri, middleware yönlendirmesini, çerez isimlerini, içerik bildirimlerinizin konumunu ve uzantısını ayarlayabilir, Intlayer loglarını konsolda devre dışı bırakabilir ve daha fazlasını yapabilirsiniz. Mevcut parametrelerin tam listesi için yapılandırma dokümantasyonuna bakınız.
Intlayer'ı Nuxt Yapılandırmanıza Entegre Edin
Intlayer modülünü Nuxt yapılandırmanıza ekleyin:
nuxt.config.tsKodu kopyalaKodu panoya kopyala
import { defineNuxtConfig } from "nuxt/config";export default defineNuxtConfig({ // ... Mevcut Nuxt yapılandırmanız modules: ["nuxt-intlayer"],});nuxt-intlayermodülü, Intlayer'ın Nuxt ile entegrasyonunu otomatik olarak yönetir. İçerik bildirimlerinin oluşturulmasını ayarlar, geliştirme modunda dosyaları izler, yerel tespit için middleware sağlar ve yerelleştirilmiş yönlendirmeyi yönetir.İçeriğinizi Bildirin
Çevirileri depolamak için içerik bildirimlerinizi oluşturun ve yönetin:
İçerik bildirimleriniz, uygulamanızın herhangi bir yerinde tanımlanabilir, yeter ki
contentDirdizini içinde yer alsın (varsayılan olarak./src). Ve içerik bildirim dosya uzantısıyla eşleşsin (varsayılan olarak.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Daha fazla detay için içerik bildirim dokümantasyonuna bakınız.
Intlayer'ı Kodunuzda Kullanın
Nuxt uygulamanızın her yerinde içerik sözlüklerinize
useIntlayercomposable'ı ile erişin:components/HelloWorld.vueKodu kopyalaKodu panoya kopyala
<script setup lang="ts">import { ref } from "vue";import { useIntlayer } from "vue-intlayer";defineProps({ msg: String,});const { count, edit, checkOut, nuxtIntlayer, learnMore, nuxtDocs, readTheDocs,} = useIntlayer("helloworld");const countRef = ref(0);</script><template> <h1>{{ msg }}</h1> <div class="card"> <button type="button" @click="countRef++"> <count /> {{ countRef }} </button> <p v-html="edit"></p> </div> <p> <checkOut /> <a href="https://nuxt.com/docs/getting-started/introduction" target="_blank" >Nuxt</a >, <nuxtIntlayer /> </p> <p> <learnMore /> <a href="https://nuxt.com" target="_blank"><nuxtDocs /></a>. </p> <p class="read-the-docs"><readTheDocs /></p> <p class="read-the-docs">{{ readTheDocs }}</p></template>Intlayer'da İçeriğe Erişim
Intlayer, içeriğinize erişmek için farklı API'ler sunar:
Bileşen tabanlı sözdizimi (önerilen):
<myContent />veya<Component :is="myContent" />sözdizimini kullanarak içeriği bir Intlayer Node olarak render edin. Bu, Visual Editor ve CMS ile sorunsuz bir şekilde entegre olur.Metin tabanlı sözdizimi:
İçeriği Visual Editor desteği olmadan düz metin olarak render etmek için{{ myContent }}kullanın.Ham HTML sözdizimi:
İçeriği Visual Editor desteği olmadan ham HTML olarak render etmek için<div v-html="myContent" />kullanın.Yapı bozma (Destructuration) sözdizimi:
useIntlayercomposable, içerikle birlikte bir Proxy döner. Bu proxy, reaktiviteyi koruyarak içeriğe erişmek için yapı bozma yöntemiyle ayrıştırılabilir.const content = useIntlayer("myContent");kullanın ve{{ content.myContent }}/<content.myContent />şeklinde render edin.- Ya da içeriği yapı bozma ile almak için
const { myContent } = useIntlayer("myContent");kullanın ve{{ myContent}}/<myContent/>şeklinde render edin.
İçeriğinizin dilini değiştirin
İsteğe bağlıİçeriğinizin dilini değiştirmek için
useLocalecomposable tarafından sağlanansetLocalefonksiyonunu kullanabilirsiniz. Bu fonksiyon, uygulamanın yerel ayarını belirlemenize ve içeriği buna göre güncellemenize olanak tanır.NuxtLinkkullanarak diller arasında geçiş yapmak için bir bileşen oluşturun. Dil değiştirme için butonlar yerine link kullanmak, SEO ve sayfa keşfedilebilirliği açısından en iyi uygulamadır, çünkü bu sayede arama motorları sayfalarınızın tüm yerelleştirilmiş versiyonlarını tarayabilir ve indeksleyebilir.components/LocaleSwitcher.vueKodu kopyalaKodu panoya kopyala
<script setup lang="ts">import { getLocaleName, getLocalizedUrl } from "intlayer";import { useLocale } from "vue-intlayer";// Nuxt useRoute'u otomatik olarak import ederconst route = useRoute();const { locale, availableLocales, setLocale } = useLocale();</script><template> <nav class="locale-switcher"> <NuxtLink v-for="localeEl in availableLocales" :key="localeEl" :to="getLocalizedUrl(route.fullPath, localeEl)" class="locale-link" :class="{ 'active-locale': localeEl === locale }" @click="setLocale(localeEl)" > {{ getLocaleName(localeEl) }} </NuxtLink> </nav></template>NuxtLink'i uygunhreföznitelikleriyle (getLocalizedUrlaracılığıyla) kullanmak, arama motorlarının sayfalarınızın tüm dil varyantlarını keşfetmesini sağlar. Bu, arama motoru tarayıcılarının takip etmeyebileceği yalnızca JavaScript ile yapılan dil değiştirmeye tercih edilir.Sonra,
app.vuedosyanızı layout kullanacak şekilde ayarlayın:app.vueKodu kopyalaKodu panoya kopyala
<template> <NuxtLayout> <NuxtPage /> </NuxtLayout></template>Uygulamanıza yerelleştirilmiş Yönlendirme ekleyin
İsteğe bağlıNuxt,
nuxt-intlayermodülünü kullandığınızda yerelleştirilmiş yönlendirmeyi otomatik olarak yönetir. Bu, sayfalar dizin yapınıza dayanarak her dil için otomatik olarak rotalar oluşturur.Örnek:
plaintextKodu kopyalaKodu panoya kopyala
pages/├── index.vue → /, /fr, /es├── about.vue → /about, /fr/about, /es/about└── contact/ └── index.vue → /contact, /fr/contact, /es/contactYerelleştirilmiş sayfalar oluşturmak için,
pages/dizininde Vue dosyalarınızı oluşturmanız yeterlidir. İşte iki örnek sayfa:Ana Sayfa (
pages/index.vue):pages/index.vueKodu kopyalaKodu panoya kopyala
<script setup lang="ts">import { useIntlayer } from "vue-intlayer";const content = useIntlayer("home-page");useHead({ title: content.metaTitle.raw, meta: [ { name: "description", content: content.metaDescription.raw, }, ],});</script><template> <h1><content.title /></h1></template>Hakkında Sayfası (
pages/about.vue):pages/about.vueKodu kopyalaKodu panoya kopyala
<script setup lang="ts">import { useIntlayer } from "vue-intlayer";const content = useIntlayer("about-page");useHead({ title: content.metaTitle.raw, // Primitif string erişimi için .raw kullanın meta: [ { name: "description", content: content.metaDescription.raw, // Primitif string erişimi için .raw kullanın }, ],});</script><template> <h1><content.title /></h1></template>Not:
useHeadNuxt'ta otomatik olarak içe aktarılır. İçerik değerlerine ihtiyaçlarınıza bağlı olarak.value(reaktif) veya.raw(primitif string) ile erişebilirsiniz.nuxt-intlayermodülü otomatik olarak:- Kullanıcının tercih ettiği yerel dili algılar
- URL üzerinden yerel dil değişimini yönetir
- Uygun
<html lang="">özniteliğini ayarlar - Yerel dil çerezlerini yönetir
- Kullanıcıları uygun yerelleştirilmiş URL'ye yönlendirir
Yerelleştirilmiş Bir Link Bileşeni Oluşturma
İsteğe bağlıUygulamanızın navigasyonunun mevcut locale'a uygun olmasını sağlamak için özel bir
Linksbileşeni oluşturabilirsiniz. Bu bileşen, dahili URL'lerin önüne otomatik olarak mevcut dili ekler; bu, SEO ve sayfa keşfedilebilirliği için çok önemlidir.components/Links.vueKodu kopyalaKodu panoya kopyala
<script setup lang="ts">import { getLocalizedUrl } from "intlayer";import { useLocale } from "vue-intlayer";interface Props { href: string; locale?: string;}const props = defineProps<Props>();const { locale: currentLocale } = useLocale();// Son yolu hesaplaconst finalPath = computed(() => { // 1. Linkin harici olup olmadığını kontrol et const isExternal = /^https?:\/\//.test(props.href || ""); // 2. Eğer harici ise, olduğu gibi döndür (NuxtLink <a> etiketi oluşturmayı yönetir) if (isExternal) return props.href; // 3. Eğer dahili ise, URL'yi yerelleştir const targetLocale = props.locale || currentLocale.value; return getLocalizedUrl(props.href, targetLocale);});</script><template> <NuxtLink :to="finalPath" v-bind="$attrs"> <slot /> </NuxtLink></template>Sonra bu bileşeni uygulamanızın her yerinde kullanabilirsiniz:
layouts/default.vueKodu kopyalaKodu panoya kopyala
<script setup lang="ts">import Links from "~/components/Links.vue";import LocaleSwitcher from "~/components/LocaleSwitcher.vue";</script><template> <div> <header> <LocaleSwitcher /> </header> <main> <slot /> </main> <Links href="/">Anasayfa</Links> <Links href="/about">Hakkında</Links> </div></template>NuxtLink'i yerelleştirilmiş yollarla kullanarak şunları sağlarsınız:- Arama motorları sayfalarınızın tüm dil versiyonlarını tarayabilir ve dizine ekleyebilir
- Kullanıcılar yerelleştirilmiş URL'leri doğrudan paylaşabilir
- Tarayıcı geçmişi, dil önekli URL'lerle doğru şekilde çalışır
Meta Verileri ve SEO'yu Yönetme
İsteğe bağlıNuxt,
useHeadcomposable (otomatik olarak içe aktarılır) aracılığıyla mükemmel SEO yetenekleri sunar. Intlayer'ı, yerelleştirilmiş meta verileri yönetmek için.rawveya.valueerişicisini kullanarak temel string değerini almak için kullanabilirsiniz:pages/about.vueKodu kopyalaKodu panoya kopyala
<script setup lang="ts">import { useIntlayer } from "vue-intlayer";// useHead Nuxt'ta otomatik olarak içe aktarılırconst content = useIntlayer("about-page");useHead({ title: content.metaTitle.raw, // Temel string erişimi için .raw kullanın meta: [ { name: "description", content: content.metaDescription.raw, // İlkel string erişimi için .raw kullanın }, ],});</script><template> <h1><content.title /></h1></template>Alternatif olarak, Vue reaktivitesi olmadan içeriği almak için
import { getIntlayer } from "intlayer"fonksiyonunu kullanabilirsiniz.İçerik değerlerine erişim:
- İlkel string değeri almak için
.rawkullanın (reaktif değil) - Reaktif değeri almak için
.valuekullanın - Görsel Editör desteği için
<content.key />bileşen sözdizimini kullanın
İlgili içerik bildirimi oluşturun:
pages/about-page.content.tsKodu kopyalaKodu panoya kopyala
import { t, type Dictionary } from "intlayer"; const aboutPageContent = { key: "about-page", content: { metaTitle: t({ en: "Hakkımızda - Şirketim", fr: "À Propos - Ma Société", es: "Acerca de Nosotros - Mi Empresa", }), metaDescription: t({ en: "Şirketimiz ve misyonumuz hakkında daha fazla bilgi edinin", fr: "En savoir plus sur notre société et notre mission", es: "Conozca más sobre nuestra empresa y nuestra misión", }), title: t({ en: "Hakkımızda", fr: "À Propos", es: "Acerca de Nosotros", }), }, } satisfies Dictionary; export default aboutPageContent;- İlkel string değeri almak için
(İsteğe Bağlı) Adım 6b: Navigasyonlu Bir Layout Oluşturun
Nuxt layout'ları, sayfalarınız için ortak bir yapı tanımlamanıza olanak tanır. Dil değiştirici ve navigasyonu içeren varsayılan bir layout oluşturun:
Kodu panoya kopyala
<script setup lang="ts">import Links from "~/components/Links.vue";import LocaleSwitcher from "~/components/LocaleSwitcher.vue";</script><template> <div> <header> <LocaleSwitcher /> </header> <main> <slot /> </main> <Links href="/">Ana Sayfa</Links> <Links href="/about">Hakkında</Links> </div></template>Links bileşeni (aşağıda gösterilmiştir), dahili navigasyon bağlantılarının otomatik olarak yerelleştirilmesini sağlar.
Git Yapılandırması
Intlayer tarafından oluşturulan dosyaların göz ardı edilmesi önerilir. Bu, bu dosyaların Git deposuna commit edilmesini önler.
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 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 tespiti.
- Çevrilmiş içeriğin Satır içi önizlemeleri.
- Çevirileri kolayca oluşturup güncellemek için Hızlı işlemler.
Uzantının nasıl kullanılacağı hakkında daha fazla bilgi için Intlayer VS Code Uzantısı dokümantasyonuna bakabilirsiniz.
Daha İleri Gitmek
Daha ileri gitmek için, görsel editörü uygulayabilir veya içeriğinizi CMS kullanarak dışa aktarabilirsiniz.