BerandaSandboxShowcaseAplikasiDokumentasiBlog
    • EnglishInggris
      EN
    • русскийRusia
      RU
    • 日本語Jepang
      JA
    • françaisPrancis
      FR
    • 한국어Korea
      KO
    • 中文Tionghoa
      ZH
    • españolSpanyol
      ES
    • DeutschJerman
      DE
    • العربيةArab
      AR
    • italianoItalia
      IT
    • British EnglishInggris (Britania)
      EN-GB
    • portuguêsPortugis
      PT
    • हिन्दीHindi
      HI
    • TürkçeTurki
      TR
    • polskiPolski
      PL
    • IndonesiaIndonesia
      ID
    • Tiếng ViệtVietnam
      VI
    • українськаUkraina
      UK
    /
    Filter dokumen berdasarkan framework
    Alt+←
    Mengapa Intlayer?
    Mulai
    Konsep
    • Bagaimana Intlayer bekerja
    • Konfigurasi
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Editor visual
    • CMS
    • Integrasi CI/CD
    • TerjemahanPluralPenumeraanKondisiJenis kelaminPenambahanBerkasNestingMarkdownHTMLPengambilan fungsi
    • File untuk setiap lokal
    • Kompilator
    • Pengisian otomatis
    • Pengujian
    • Optimasi paket
    Lingkungan
    • Next.js 14 dan App Router
      Next.js 15
      Next.js tanpa locale URL
      Next.js dan Page Router
      Compiler
    • Tanstack Start Solid
    • Astro dan React
      Astro dan Svelte
      Astro dan Vue
      Astro dan Solid
      Astro dan Preact
      Astro dan Lit
      Astro dan Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt dan Vue
    • Vite dan Solid
    • SvelteKit
    • Vite dan Preact
    • Vite dan Vanilla JS
    • Vite dan Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native dan Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx dan React
    Plugins
    • JSON
    • gettext (.po)
    Ekstensi VS Code
    Agen
    • Server MCP
    • Keahlian agen
    Rilis
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Ajukan pertanyaan
    1. Documentation
    2. Konsep
    3. File untuk setiap lokal
    Dibuat:2025-04-18Terakhir diperbarui:2025-06-29
    Referensikan dokumen ini ke asisten AI favorit Anda
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda

    Riwayat Versi

    1. "Inisialisasi riwayat"
      v5.5.1029/6/2025

    Konten halaman ini diterjemahkan menggunakan AI.

    Lihat versi terakhir dari konten aslinya dalam bahasa Inggris
    Sunting dokumen ini

    Jika Anda memiliki ide untuk meningkatkan dokumentasi ini, silakan berkontribusi dengan mengajukan pull request di GitHub.

    Tautan GitHub ke dokumentasi
    Salin

    Salin Markdown dokumentasi ke clipboard

    Deklarasi Konten Per-Locale di Intlayer

    Intlayer mendukung dua cara untuk mendeklarasikan konten multibahasa:

    • Satu file dengan semua terjemahan
    • Satu file per locale (format per-locale)

    Fleksibilitas ini memungkinkan:

    • Migrasi mudah dari alat i18n lainnya
    • Dukungan untuk alur kerja terjemahan otomatis
    • Organisasi terjemahan yang jelas ke dalam file terpisah berdasarkan locale

    Satu File dengan Banyak Terjemahan

    Format ini ideal untuk:

    • Iterasi cepat dalam kode.
    • Integrasi mulus dengan CMS.

    Ini adalah pendekatan yang direkomendasikan untuk sebagian besar kasus penggunaan. Format ini memusatkan terjemahan, sehingga memudahkan iterasi dan integrasi dengan CMS.

    hello-world.content.ts
    Salin kode

    Salin kode ke clipboard

    import { t, type Dictionary } from "intlayer";
    
    const helloWorldContent = {
      key: "hello-world",
      content: {
        multilingualContent: t({
          en: "Title of my component",
          es: "Título de mi componente",
        }),
      },
    } satisfies Dictionary;
    
    export default helloWorldContent;
    Direkomendasikan: Format ini paling baik digunakan saat memakai editor visual Intlayer atau mengelola terjemahan langsung di dalam kode.

    Konfigurasi Global untuk File Per-Locale

    Anda dapat mengonfigurasi konfigurasi global untuk file per-locale dengan menambahkan hal berikut ke file intlayer.config.ts Anda:

    ts
    Salin kode

    Salin kode ke clipboard

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;

    Dengan menggunakan konfigurasi ini, semua file per-locale akan dibuat dengan locale default yang diatur ke bahasa Inggris. Ini juga mencakup pembuatan file .content menggunakan perintah extract, dan compiler. (Lihat Compiler atau Extract untuk informasi lebih lanjut.)

    Format Per-Locale

    Format ini berguna ketika:

    • Anda ingin melakukan versioning atau menimpa terjemahan secara independen.
    • Anda mengintegrasikan alur kerja terjemahan mesin atau manusia.

    Anda juga dapat memisahkan terjemahan ke dalam file locale individual dengan menentukan field locale:

    hello-world.es.content.ts
    Salin kode

    Salin kode ke clipboard

    import { t, Locales, type Dictionary } from "intlayer";
    
    const helloWorldContent = {
      key: "hello-world",
      locale: Locales.SPANISH, // Penting
      content: { multilingualContent: "Título de mi componente" },
    } satisfies Dictionary;
    
    export default helloWorldContent;
    Penting: Pastikan field locale didefinisikan. Ini memberitahu Intlayer bahasa apa yang diwakili oleh file tersebut.
    Catatan: Dalam kedua kasus, file deklarasi konten harus mengikuti pola penamaan *.content.{ts,tsx,js,jsx,mjs,cjs,json} agar dikenali oleh Intlayer. Sufiks .[locale] bersifat opsional dan hanya digunakan sebagai konvensi penamaan.

    Menggabungkan Format

    Anda dapat menggabungkan kedua pendekatan deklarasi untuk kunci konten yang sama. Sebagai contoh:

    • Deklarasikan konten dasar Anda secara statis dalam file seperti index.content.ts.
    • Tambahkan atau timpa terjemahan spesifik dalam file terpisah seperti index.fr.content.ts atau index.content.json.

    Pengaturan ini sangat berguna ketika:

    • Anda ingin mendefinisikan struktur konten awal dalam kode.
    • Anda berencana untuk memperkaya atau melengkapi terjemahan nanti menggunakan CMS atau alat otomatis.
    bash
    Salin kode

    Salin kode ke clipboard

    .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts

    Contoh

    Berikut adalah file deklarasi konten multibahasa:

    Components/MyComponent/index.content.ts
    Salin kode

    Salin kode ke clipboard

    import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "Judul komponen saya",    projectName: "Proyek saya",  },} satisfies Dictionary;export default helloWorldContent;
    Components/MyComponent/index.content.json
    Salin kode

    Salin kode ke clipboard

    {  "$schema": "https://intlayer.org/schema.json",  "key": "hello-world",  "content": {    "multilingualContent": {      "nodeType": "translation",      "translation": {        "fr": "Titre de mon composant",        "es": "Título de mi componente"      }    }  }}

    Intlayer menggabungkan file multibahasa dan per-locale secara otomatis.

    Components/MyComponent/index.ts
    Salin kode

    Salin kode ke clipboard

    import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // Default locale adalah ENGLISH, jadi ini akan mengembalikan konten dalam bahasa ENGLISHconsole.log(JSON.stringify(intlayer, null, 2));// Hasil:// {//  "multilingualContent": "Judul komponen saya",//  "projectName": "Proyek saya"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// Hasil:// {//  "multilingualContent": "Título de mi componente",//  "projectName": "Proyek saya"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// Hasil:// {//  "multilingualContent": "Titre de mon composant",//  "projectName": "Proyek saya"// }

    Pembuatan Terjemahan Otomatis

    Gunakan intlayer CLI untuk mengisi otomatis terjemahan yang hilang berdasarkan layanan yang Anda pilih.

    Pengambilan fungsi
    Kompilator
    Alt+→

    Di halaman ini

      Diskusi bersifat anonim dan ditinjau secara berkala untuk mengatasi masalah umum. Jangan ragu untuk berbagi ide fitur, masukan tentang dokumentasi, atau apa pun yang terkait dengan Intlayer, kami menggunakan masukan ini untuk membentuk peta jalan dan meningkatkan produk.

      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;
      .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts
      import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "Judul komponen saya",    projectName: "Proyek saya",  },} satisfies Dictionary;export default helloWorldContent;
      {  "$schema": "https://intlayer.org/schema.json",  "key": "hello-world",  "content": {    "multilingualContent": {      "nodeType": "translation",      "translation": {        "fr": "Titre de mon composant",        "es": "Título de mi componente"      }    }  }}
      import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // Default locale adalah ENGLISH, jadi ini akan mengembalikan konten dalam bahasa ENGLISHconsole.log(JSON.stringify(intlayer, null, 2));// Hasil:// {//  "multilingualContent": "Judul komponen saya",//  "projectName": "Proyek saya"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// Hasil:// {//  "multilingualContent": "Título de mi componente",//  "projectName": "Proyek saya"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// Hasil:// {//  "multilingualContent": "Titre de mon composant",//  "projectName": "Proyek saya"// }