Ana SayfaPlaygroundShowcaseUygulamaDokümanBlog
    • Englishİngilizce
      EN
    • русскийRusça
      RU
    • 日本語Japonca
      JA
    • françaisFransızca
      FR
    • 한국어Korece
      KO
    • 中文Çince
      ZH
    • españolİspanyolca
      ES
    • DeutschAlmanca
      DE
    • العربيةArapça
      AR
    • italianoİtalyanca
      IT
    • British Englishİngiliz İngilizcesi
      EN-GB
    • portuguêsPortekizce
      PT
    • हिन्दीHintçe
      HI
    • TürkçeTürkçe
      TR
    • polskiLehçe
      PL
    • IndonesiaEndonezce
      ID
    • Tiếng ViệtVietnamca
      VI
    • українськаUkraynaca
      UK
    /
    Çerçeveye göre belgeleri filtrele
    Alt+←
    Neden Intlayer?
    Başla
    Kavram
    • Intlayer Nasıl Çalışır
    • Yapılandırma
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Görsel Editör
    • CMS
    • CI/CD Entegrasyonu
    • ÇeviriÇoğulNumaralandırmaKoşulCinsiyetEklemeDosyaİç İçe GeçmeMarkdownHTMLFonksiyon Getirme
    • Yerel Dosya
    • Derleyici
    • Otomatik Doldurma
    • Test
    • Paket Optimizasyonu
    Ortam
    • Next.js 14 ve Uygulama Yönlendirici
      Next.js 15
      Next.js locale’siz URL
      Next.js ve Sayfa Yönlendirici
      Derleyici
    • Tanstack Start Solid
    • Astro ve React
      Astro ve Svelte
      Astro ve Vue
      Astro ve Solid
      Astro ve Preact
      Astro ve Lit
      Astro ve Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt ve Vue
    • Vite ve Solid
    • SvelteKit
    • Vite ve Preact
    • Vite ve Vanilla JS
    • Vite ve Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native ve Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx ve React
    Plugins
    • JSON
    • gettext (.po)
    VS Code Uzantısı
    Aracı
    • MCP Sunucusu
    • Aracı becerileri
    Sürümler
    • v8
    • v7
    • v6
    Karşılaştırma
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Bir soru sor
    1. Documentation
    2. Ortam
    3. Nuxt and vue
    \n\n\n```\n\n#### Intlayer'da İçeriğe Erişim\n\nIntlayer, içeriğinize erişmek için farklı API'ler sunar:\n\n- **Bileşen tabanlı sözdizimi** (önerilen):\n `` veya `` sözdizimini kullanarak içeriği bir Intlayer Node olarak render edin. Bu, [Visual Editor](/tr/doc/concept/editor) ve [CMS](/tr/doc/concept/cms) ile sorunsuz bir şekilde entegre olur.\n\n- **Metin tabanlı sözdizimi**: \n İçeriği Visual Editor desteği olmadan düz metin olarak render etmek için `{{ myContent }}` kullanın.\n\n- **Ham HTML sözdizimi**: \n İçeriği Visual Editor desteği olmadan ham HTML olarak render etmek için `
    ` kullanın.\n\n- **Yapı bozma (Destructuration) sözdizimi**: \n `useIntlayer` composable, 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.\n - `const content = useIntlayer(\"myContent\");` kullanın ve `{{ content.myContent }}` / `` şeklinde render edin.\n - Ya da içeriği yapı bozma ile almak için `const { myContent } = useIntlayer(\"myContent\");` kullanın ve `{{ myContent}}` / `` şeklinde render edin.\n\n### (İsteğe Bağlı) Adım 6: İçeriğinizin dilini değiştirin\n\nİçeriğinizin dilini değiştirmek için `useLocale` composable tarafından sağlanan `setLocale` fonksiyonunu kullanabilirsiniz. Bu fonksiyon, uygulamanın yerel ayarını belirlemenize ve içeriği buna göre güncellemenize olanak tanır.\n\n`NuxtLink` kullanarak 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.\n\n```vue fileName=\"components/LocaleSwitcher.vue\"\n\n\n\n```\n\n> `NuxtLink`'i uygun `href` öznitelikleriyle ( `getLocalizedUrl` aracı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.\n\nSonra, `app.vue` dosyanızı layout kullanacak şekilde ayarlayın:\n\n```vue fileName=\"app.vue\"\n\n```\n\n### (İsteğe Bağlı) Adım 6b: Navigasyonlu Bir Layout Oluşturun\n\nNuxt 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:\n\n```vue fileName=\"layouts/default.vue\"\n\n\n\n```\n\n`Links` bileşeni (aşağıda gösterilmiştir), dahili navigasyon bağlantılarının otomatik olarak yerelleştirilmesini sağlar.\n\n### (İsteğe Bağlı) Adım 7: Uygulamanıza yerelleştirilmiş Yönlendirme ekleyin\n\nNuxt, `nuxt-intlayer` modü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.\n\nÖrnek:\n\n```plaintext\npages/\n├── index.vue → /, /fr, /es\n├── about.vue → /about, /fr/about, /es/about\n└── contact/\n └── index.vue → /contact, /fr/contact, /es/contact\n```\n\nYerelleştirilmiş sayfalar oluşturmak için, `pages/` dizininde Vue dosyalarınızı oluşturmanız yeterlidir. İşte iki örnek sayfa:\n\n**Ana Sayfa (`pages/index.vue`):**\n\n```vue fileName=\"pages/index.vue\"\n\n\n\n```\n\n**Hakkında Sayfası (`pages/about.vue`):**\n\n```vue fileName=\"pages/about.vue\"\n\n\n\n```\n\n> Not: `useHead` Nuxt'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.\n\n`nuxt-intlayer` modülü otomatik olarak:\n\n- Kullanıcının tercih ettiği yerel dili algılar\n- URL üzerinden yerel dil değişimini yönetir\n- Uygun `` özniteliğini ayarlar\n- Yerel dil çerezlerini yönetir\n- Kullanıcıları uygun yerelleştirilmiş URL'ye yönlendirir\n\n### (İsteğe Bağlı) Adım 8: Yerelleştirilmiş Bir Link Bileşeni Oluşturma\n\nUygulamanızın navigasyonunun mevcut locale'a uygun olmasını sağlamak için özel bir `Links` bileş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.\n\n```vue fileName=\"components/Links.vue\"\n\n\n\n```\n\nSonra bu bileşeni uygulamanızın her yerinde kullanabilirsiniz:\n\n```vue fileName=\"layouts/default.vue\"\n\n\n\n```\n\n> `NuxtLink`'i yerelleştirilmiş yollarla kullanarak şunları sağlarsınız:\n>\n> - Arama motorları sayfalarınızın tüm dil versiyonlarını tarayabilir ve dizine ekleyebilir\n> - Kullanıcılar yerelleştirilmiş URL'leri doğrudan paylaşabilir\n> - Tarayıcı geçmişi, dil önekli URL'lerle doğru şekilde çalışır\n\n### (İsteğe Bağlı) Adım 9: Meta Verileri ve SEO'yu Yönetme\n\nNuxt, `useHead` composable (otomatik olarak içe aktarılır) aracılığıyla mükemmel SEO yetenekleri sunar. Intlayer'ı, yerelleştirilmiş meta verileri yönetmek için `.raw` veya `.value` erişicisini kullanarak temel string değerini almak için kullanabilirsiniz:\n\n```vue fileName=\"pages/about.vue\"\n\n\n\n```\n\n> Alternatif olarak, Vue reaktivitesi olmadan içeriği almak için `import { getIntlayer } from \"intlayer\"` fonksiyonunu kullanabilirsiniz.\n\n> **İçerik değerlerine erişim:**\n>\n> - İlkel string değeri almak için `.raw` kullanın (reaktif değil)\n> - Reaktif değeri almak için `.value` kullanın\n> - Görsel Editör desteği için `` bileşen sözdizimini kullanın\n\nİlgili içerik bildirimi oluşturun:\n\n```ts fileName=\"pages/about-page.content.ts\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\nimport { t, type Dictionary } from \"intlayer\";\n\nconst aboutPageContent = {\n key: \"about-page\",\n content: {\n metaTitle: t({\n en: \"Hakkımızda - Şirketim\",\n fr: \"À Propos - Ma Société\",\n es: \"Acerca de Nosotros - Mi Empresa\",\n }),\n metaDescription: t({\n en: \"Şirketimiz ve misyonumuz hakkında daha fazla bilgi edinin\",\n fr: \"En savoir plus sur notre société et notre mission\",\n es: \"Conozca más sobre nuestra empresa y nuestra misión\",\n }),\n title: t({\n en: \"Hakkımızda\",\n fr: \"À Propos\",\n es: \"Acerca de Nosotros\",\n }),\n },\n} satisfies Dictionary;\n\nexport default aboutPageContent;\n```\n\n```json fileName=\"pages/about-page.content.json\" contentDeclarationFormat=\"json\"\n{\n \"$schema\": \"https://intlayer.org/schema.json\",\n \"key\": \"about-page\",\n \"content\": {\n \"metaTitle\": {\n \"nodeType\": \"translation\",\n \"translation\": {\n \"en\": \"About Us - My Company\",\n \"fr\": \"À Propos - Ma Société\",\n \"es\": \"Acerca de Nosotros - Mi Empresa\"\n }\n },\n \"metaDescription\": {\n \"nodeType\": \"translation\",\n \"translation\": {\n \"en\": \"Learn more about our company and our mission\",\n \"fr\": \"En savoir plus sur notre société et notre mission\",\n \"es\": \"Conozca más sobre nuestra empresa y nuestra misión\",\n \"tr\": \"Şirketimiz ve misyonumuz hakkında daha fazla bilgi edinin\"\n }\n },\n \"title\": {\n \"nodeType\": \"translation\",\n \"translation\": {\n \"en\": \"About Us\",\n \"fr\": \"À Propos\",\n \"es\": \"Acerca de Nosotros\",\n \"tr\": \"Hakkımızda\"\n }\n }\n }\n}\n```\n\n### Git Yapılandırması\n\nIntlayer tarafından oluşturulan dosyaların göz ardı edilmesi önerilir. Bu, bu dosyaların Git deposuna commit edilmesini önler.\n\nBunu yapmak için `.gitignore` dosyanıza aşağıdaki talimatları ekleyebilirsiniz:\n\n```plaintext fileName=\".gitignore\"\n# Intlayer tarafından oluşturulan dosyaları göz ardı et\n.intlayer\n```\n\n### VS Code Eklentisi\n\nIntlayer ile geliştirme deneyiminizi iyileştirmek için resmi **Intlayer VS Code Uzantısı**nı yükleyebilirsiniz.\n\n[VS Code Marketplace'ten Yükleyin](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)\n\nBu uzantı şunları sağlar:\n\n- Çeviri anahtarları için **Otomatik tamamlama**.\n- Eksik çeviriler için **Gerçek zamanlı hata tespiti**.\n- Çevrilmiş içeriğin **Satır içi önizlemeleri**.\n- Çevirileri kolayca oluşturup güncellemek için **Hızlı işlemler**.\n\nUzantının nasıl kullanılacağı hakkında daha fazla bilgi için [Intlayer VS Code Uzantısı dokümantasyonuna](https://intlayer.org/doc/vs-code-extension) bakabilirsiniz.\n\n---\n\n### Daha İleri Gitmek\n\nDaha ileri gitmek için, [görsel editörü](/tr/doc/concept/editor) uygulayabilir veya içeriğinizi [CMS](/tr/doc/concept/cms) kullanarak dışa aktarabilirsiniz.\n","about":"Nuxt ve Vue web sitenizi çok dilli hale nasıl getireceğinizi keşfedin. Uluslararasılaştırma (i18n) ve çeviri için dokümantasyonu takip edin.","url":"https://intlayer.org/tr/doc/environment/nuxt-and-vue","datePublished":"18-06-2025","dateModified":"06-05-2026","keywords":"Uluslararasılaştırma, Dokümantasyon, Intlayer, Nuxt, Vue, JavaScript","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"Geliştiriciler, İçerik Yöneticileri"}}
    Oluşturma:2025-06-18Son güncelleme:2026-05-06
    GitHub'da uygulama şablonunu görüntüle

    Bu sayfada kullanılabilir bir uygulama şablonu var.

    Vitrin uygulamasını görüntüle

    Bu sayfa şablonun canlı demosuna bağlanır.

    Video eğitimini izleyin

    Bu sayfada bir video eğitimi mevcuttur.

    Bu dokümanı favori AI asistanınıza referans verin
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    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

    1. "Solid useIntlayer API kullanımını doğrudan özellik erişimine güncelle"
      v8.9.004.05.2026
    2. "LocaleSwitcher, SEO, metadata güncellendi"
      v7.3.1107.12.2025
    3. "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üleyin
    Bu dokümanı düzenle

    Bu 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ı
    Kopyala

    Belge Markdown'ını panoya kopyala

    Intlayer kullanarak Nuxt ve Vue 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önetin.
    • Meta verileri, rotaları ve içeriği dinamik olarak yerelleştirin.
    • Otomatik oluşturulan tiplerle TypeScript desteğini sağlayarak otomatik tamamlama ve hata tespitini geliştirin.
    • Dinamik dil algılama ve değiştirme gibi gelişmiş özelliklerden faydalanın.

    Nuxt Uygulamasında Intlayer Kurulumu Adım Adım Rehber

    www.youtube.com
    ide.intlayer.org
    intlayer-nuxt-4-template.vercel.app

    GitHub'da Uygulama Şablonunu inceleyin.

    Adım 1: Bağımlılıkları Yükleyin

    Gerekli paketleri npm kullanarak yükleyin:

    bash
    Kodu kopyala

    Kodu panoya kopyala

    npm install intlayer vue-intlayernpm install --save-dev nuxt-intlayernpx intlayer init
    • intlayer

      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.

    Adım 2: Projenizin yapılandırması

    Uygulamanızın dillerini yapılandırmak için bir konfigürasyon dosyası oluşturun:

    intlayer.config.ts
    Kodu kopyala

    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 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.

    Adım 3: Intlayer'ı Nuxt Yapılandırmanıza Entegre Edin

    Intlayer modülünü Nuxt yapılandırmanıza ekleyin:

    nuxt.config.ts
    Kodu kopyala

    Kodu panoya kopyala

    import { defineNuxtConfig } from "nuxt/config";export default defineNuxtConfig({  // ... Mevcut Nuxt yapılandırmanız  modules: ["nuxt-intlayer"],});
    nuxt-intlayer modü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.

    Adım 4: İç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 contentDir dizini 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}).
    Daha fazla detay için içerik bildirim dokümantasyonuna bakınız.

    Adım 5: Intlayer'ı Kodunuzda Kullanın

    Nuxt uygulamanızın her yerinde içerik sözlüklerinize useIntlayer composable'ı ile erişin:

    components/HelloWorld.vue
    Kodu kopyala

    Kodu 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:
      useIntlayer composable, 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.

    (İsteğe Bağlı) Adım 6: İçeriğinizin dilini değiştirin

    İçeriğinizin dilini değiştirmek için useLocale composable tarafından sağlanan setLocale fonksiyonunu kullanabilirsiniz. Bu fonksiyon, uygulamanın yerel ayarını belirlemenize ve içeriği buna göre güncellemenize olanak tanır.

    NuxtLink kullanarak 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.vue
    Kodu kopyala

    Kodu 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 uygun href öznitelikleriyle ( getLocalizedUrl aracı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.vue dosyanızı layout kullanacak şekilde ayarlayın:

    app.vue
    Kodu kopyala

    Kodu panoya kopyala

    <template>  <NuxtLayout>    <NuxtPage />  </NuxtLayout></template>

    (İ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:

    layouts/default.vue
    Kodu kopyala

    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.

    (İsteğe Bağlı) Adım 7: Uygulamanıza yerelleştirilmiş Yönlendirme ekleyin

    Nuxt, nuxt-intlayer modü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:

    plaintext
    Kodu kopyala

    Kodu panoya kopyala

    pages/├── index.vue          → /, /fr, /es├── about.vue          → /about, /fr/about, /es/about└── contact/    └── index.vue      → /contact, /fr/contact, /es/contact

    Yerelleş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.vue
    Kodu kopyala

    Kodu 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.vue
    Kodu kopyala

    Kodu 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: useHead Nuxt'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-intlayer modü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

    (İsteğe Bağlı) Adım 8: Yerelleştirilmiş Bir Link Bileşeni Oluşturma

    Uygulamanızın navigasyonunun mevcut locale'a uygun olmasını sağlamak için özel bir Links bileş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.vue
    Kodu kopyala

    Kodu 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.vue
    Kodu kopyala

    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="/">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

    (İsteğe Bağlı) Adım 9: Meta Verileri ve SEO'yu Yönetme

    Nuxt, useHead composable (otomatik olarak içe aktarılır) aracılığıyla mükemmel SEO yetenekleri sunar. Intlayer'ı, yerelleştirilmiş meta verileri yönetmek için .raw veya .value erişicisini kullanarak temel string değerini almak için kullanabilirsiniz:

    pages/about.vue
    Kodu kopyala

    Kodu 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 .raw kullanın (reaktif değil)
    • Reaktif değeri almak için .value kullanı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.ts
    Kodu kopyala

    Kodu 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;

    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:

    .gitignore
    Kodu kopyala

    Kodu panoya kopyala

    # Intlayer tarafından oluşturulan dosyaları göz ardı et.intlayer

    VS 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.

    Vite ve Vue
    Vite ve Solid
    Alt+→

    Bu sayfada

      Tartışmalar anonimdir ve yaygın sorunları ele almak için düzenli olarak incelenir. Özellik fikirleri, belgeleme hakkında geri bildirimler veya Intlayer ile ilgili herhangi bir şeyi paylaşmaktan çekinmeyin, bu girdileri yol haritamızı şekillendirmek ve ürünü geliştirmek için kullanıyoruz.

      npm install intlayer vue-intlayernpm install --save-dev nuxt-intlayernpx intlayer init
      import { defineNuxtConfig } from "nuxt/config";export default defineNuxtConfig({  // ... Mevcut Nuxt yapılandırmanız  modules: ["nuxt-intlayer"],});
      <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>
      <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>
      <template>  <NuxtLayout>    <NuxtPage />  </NuxtLayout></template>
      <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>
      pages/├── index.vue          → /, /fr, /es├── about.vue          → /about, /fr/about, /es/about└── contact/    └── index.vue      → /contact, /fr/contact, /es/contact
      <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>
      <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>
      <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>
      <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>
      <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>
      # Intlayer tarafından oluşturulan dosyaları göz ardı et.intlayer