Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Perbarui penggunaan API useIntlayer Solid ke akses properti langsung"v8.9.04/5/2026
- "Tambahkan perintah init"v7.5.930/12/2025
- "Mengubah fungsi `withIntlayer()` menjadi fungsi berbasis promise"v5.6.06/7/2025
- "Inisialisasi riwayat"v5.5.1029/6/2025
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisIf 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
Terjemahkan situs web Next.js dan Page Router Anda menggunakan Intlayer | Internasionalisasi (i18n)
Daftar Isi
Mengapa Intlayer dibandingkan alternatif?
Dibandingkan dengan solusi utama seperti next-intl atau i18next, Intlayer adalah solusi yang hadir dengan pengoptimalan terintegrasi seperti:
Intlayer dioptimalkan untuk bekerja dengan Komponen Server untuk rendering yang efisien dan sepenuhnya kompatibel dengan Turbopack. Itu tidak memblokir rendering statis dan menawarkan middleware serta semua fitur yang diperlukan untuk penskalaan internasionalisasi (i18n).
Intlayer kompatibel dengan Next.js 12, 13, 14, 15, dan 16. Jika Anda menggunakan Next.js Pages Router, Anda dapat merujuk ke [panduan] ini(/id/doc/environment/nextjs/next-with-page-router). Perutean lokal berguna untuk SEO, ukuran bundle, dan kinerja. Jika Anda tidak membutuhkannya, Anda dapat merujuk ke [panduan] ini(/id/doc/environment/nextjs/no-locale-path). Untuk Next.js 12, 13, 14, dan 15 dengan App Router, lihat [panduan] ini(/id/doc/environment/nextjs/14).
Daripada memuat file JSON berukuran besar ke halaman Anda, muat saja konten yang diperlukan. Intlayer membantu mengurangi ukuran bundle dan halaman Anda hingga 50%.
Mencakup konten aplikasi Anda memfasilitasi pemeliharaan untuk aplikasi berskala besar. Anda dapat menduplikasi atau menghapus satu folder fitur tanpa beban mental untuk meninjau seluruh basis kode konten Anda. Selain itu, Intlayer diketik sepenuhnya untuk memastikan keakuratan konten Anda.
Menempatkan konten bersama mengurangi konteks yang diperlukan dengan Model Bahasa Besar (LLM). Intlayer juga dilengkapi dengan serangkaian alat, seperti CLI untuk menguji terjemahan yang hilang,LSP, MCP, dan agent skill, untuk menjadikan pengalaman pengembang (DX) lebih lancar bagi agen AI.
Gunakan otomatisasi untuk menerjemahkan dalam saluran CI/CD Anda menggunakan LLM pilihan Anda dengan biaya penyedia AI Anda. Intlayer juga menawarkan compiler untuk mengotomatiskan ekstraksi konten, serta platform web untuk membantu menerjemahkan di latar belakang.
Menghubungkan file JSON berukuran besar ke komponen dapat menyebabkan masalah kinerja dan reaktivitas. Intlayer mengoptimalkan pemuatan konten Anda pada waktu pembuatan.
Lebih dari sekedar solusi i18n, Intlayer menyediakan editor visual yang dihosting sendiri dan CMS lengkap untuk membantu Anda mengelola konten multibahasa secara real-time, membuat kolaborasi dengan penerjemah, copywriter, dan anggota tim lainnya menjadi lancar. Konten dapat disimpan secara lokal dan/atau jarak jauh.
Panduan Langkah demi Langkah untuk Mengatur Intlayer dalam Aplikasi Next.js Menggunakan Page Router
Instalasi Dependensi
Instal paket yang diperlukan menggunakan manajer paket pilihan Anda:
bashSalin kodeSalin kode ke clipboard
npm install intlayer next-intlayernpx intlayer initintlayer
Paket inti yang menyediakan alat internasionalisasi untuk manajemen konfigurasi, terjemahan, deklarasi konten, transpile, dan perintah CLI.
next-intlayer
Paket yang mengintegrasikan Intlayer dengan Next.js. Paket ini menyediakan context provider dan hook untuk internasionalisasi Next.js. Selain itu, paket ini juga menyertakan plugin Next.js untuk mengintegrasikan Intlayer dengan Webpack atau Turbopack, serta middleware untuk mendeteksi locale yang dipilih pengguna, mengelola cookie, dan menangani pengalihan URL.
Konfigurasikan Proyek Anda
Buat file konfigurasi untuk mendefinisikan bahasa yang didukung oleh aplikasi Anda:
intlayer.config.tsSalin kodeSalin kode ke clipboard
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Tambahkan locale lain Anda di sini ], defaultLocale: Locales.ENGLISH, }, }; export default config;Melalui file konfigurasi ini, Anda dapat mengatur URL yang dilokalkan, pengalihan middleware, nama cookie, lokasi dan ekstensi deklarasi konten Anda, menonaktifkan log Intlayer di konsol, dan lainnya. Untuk daftar lengkap parameter yang tersedia, lihat dokumentasi konfigurasi.
Integrasikan Intlayer dengan Konfigurasi Next.js
Ubah konfigurasi Next.js Anda untuk menggabungkan Intlayer:
next.config.mjsSalin kodeSalin kode ke clipboard
import { withIntlayer } from "next-intlayer/server";/** @type {import('next').NextConfig} */const nextConfig = { // Konfigurasi Next.js Anda yang sudah ada};export default withIntlayer(nextConfig);Plugin Next.js
withIntlayer()digunakan untuk mengintegrasikan Intlayer dengan Next.js. Plugin ini memastikan pembuatan file deklarasi konten dan memantau file tersebut dalam mode pengembangan. Plugin ini juga mendefinisikan variabel lingkungan Intlayer dalam lingkungan Webpack atau Turbopack. Selain itu, plugin ini menyediakan alias untuk mengoptimalkan performa dan memastikan kompatibilitas dengan komponen server.Fungsi
withIntlayer()adalah fungsi promise. Jika Anda ingin menggunakannya bersama plugin lain, Anda dapat menggunakanawait. Contoh:tsxSalin kodeSalin kode ke clipboard
const nextConfig = await withIntlayer(nextConfig);const nextConfigWithOtherPlugins = withOtherPlugins(nextConfig);export default nextConfigWithOtherPlugins;Konfigurasikan Middleware untuk Deteksi Locale
Siapkan middleware untuk secara otomatis mendeteksi dan menangani locale yang dipilih pengguna:
src/middleware.tsSalin kodeSalin kode ke clipboard
export { intlayerProxy as middleware } from "next-intlayer/middleware"; export const config = { matcher: "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)", };Sesuaikan parameter
matcheruntuk mencocokkan rute aplikasi Anda. Untuk informasi lebih lanjut, lihat dokumentasi Next.js tentang konfigurasi matcher.Definisikan Rute Locale Dinamis
Implementasikan routing dinamis untuk menyajikan konten yang dilokalkan berdasarkan locale pengguna.
Buat Halaman Khusus Locale:
Ganti nama file halaman utama Anda untuk menyertakan segmen dinamis
[locale].bashSalin kodeSalin kode ke clipboard
mv src/pages/index.tsx src/pages/[locale]/index.tsxPerbarui
_app.tsxuntuk Menangani Lokalisasi:Modifikasi
_app.tsxAnda untuk menyertakan penyedia Intlayer.src/pages/_app.tsxSalin kodeSalin kode ke clipboard
import type { FC } from "react";import type { AppProps } from "next/app";import { IntlayerClientProvider } from "next-intlayer";const App = FC<AppProps>({ Component, pageProps }) => { const { locale } = pageProps; return ( <IntlayerClientProvider locale={locale}> <Component {...pageProps} /> </IntlayerClientProvider> );}export default MyApp;Atur
getStaticPathsdangetStaticProps:plaintextSalin kodeSalin kode ke clipboard
Di `[locale]/index.tsx` Anda, definisikan paths dan props untuk menangani berbagai locale.
getStaticPathsdangetStaticPropsmemastikan bahwa aplikasi Anda membangun terlebih dahulu halaman-halaman yang diperlukan untuk semua locale di Next.js Page Router. Pendekatan ini mengurangi komputasi saat runtime dan menghasilkan pengalaman pengguna yang lebih baik. Untuk detail lebih lanjut, lihat dokumentasi Next.js tentanggetStaticPathsdangetStaticProps.Deklarasikan Konten Anda
Buat dan kelola deklarasi konten Anda untuk menyimpan terjemahan.
src/pages/[locale]/home.content.tsSalin kodeSalin kode ke clipboard
import { t, type Dictionary } from "intlayer"; const homeContent = { key: "home", content: { title: t({ en: "Welcome to My Website", fr: "Bienvenue sur mon site Web", es: "Bienvenido a mi sitio web", }), description: t({ en: "Mulailah dengan mengedit halaman ini.", fr: "Commencez par éditer cette page.", es: "Comience por editar esta página.", }), }, } satisfies Dictionary; export default homeContent;Untuk informasi lebih lanjut tentang deklarasi konten, lihat panduan deklarasi konten.
Gunakan Konten dalam Kode Anda
Akses kamus konten Anda di seluruh aplikasi untuk menampilkan konten yang diterjemahkan.
src/pages/[locale]/index.tsxSalin kodeSalin kode ke clipboard
import type { FC } from "react"; import { useIntlayer } from "next-intlayer"; import { ComponentExample } from "@components/ComponentExample"; const HomePage: FC = () => { const content = useIntlayer("home"); return ( <div> <h1>{content.title}</h1> <p>{content.description}</p> <ComponentExample /> {/* Komponen tambahan */} </div> ); }; // ... Sisa kode, termasuk getStaticPaths dan getStaticProps export default HomePage;src/components/ComponentExample.tsxSalin kodeSalin kode ke clipboard
import type { FC } from "react"; import { useIntlayer } from "next-intlayer"; export const ComponentExample: FC = () => { const content = useIntlayer("component-example"); // Pastikan Anda memiliki deklarasi konten yang sesuai return ( <div> <h2>{content.title}</h2> <p>{content.content}</p> </div> ); };Saat menggunakan terjemahan dalam atribut
string(misalnya,alt,title,href,aria-label), panggilnilai fungsi sebagai berikut:
htmlSalin kodeSalin kode ke clipboard
<img src="{content.image.src.value}" alt="{content.image.value}" /><img src="{content.image.src.toString()}" alt="{content.image.toString()}" /><img src="{String(content.image.src)}" alt="{String(content.image)}" />Untuk mempelajari lebih lanjut tentang hook
useIntlayer, lihat dokumentasi.Internasionalisasi metadata Anda
OpsionalJika Anda ingin menginternasionalisasi metadata Anda, seperti judul halaman Anda, Anda dapat menggunakan fungsi
getStaticPropsyang disediakan oleh Next.js Page Router. Di dalamnya, Anda dapat mengambil konten dari fungsigetIntlayeruntuk menerjemahkan metadata Anda.src/pages/[locale]/metadata.content.tsSalin kodeSalin kode ke clipboard
import { type Dictionary, t } from "intlayer"; import { type Metadata } from "next"; const metadataContent = { key: "page-metadata", content: { title: t({ en: "Create Next App", fr: "Créer une application Next.js", es: "Crear una aplicación Next.js", }), description: t({ en: "Generated by create next app", fr: "Généré par create next app", es: "Generado por create next app", }), }, } satisfies Dictionary<Metadata>; export default metadataContent;src/pages/[locale]/index.tsxSalin kodeSalin kode ke clipboard
import { GetStaticPaths, GetStaticProps } from "next"; import { getIntlayer, getMultilingualUrls } from "intlayer"; import { useIntlayer } from "next-intlayer"; import Head from "next/head"; import type { FC } from "react"; interface HomePageProps { locale: string; metadata: { title: string; description: string; }; multilingualUrls: Record<string, string>; } const HomePage: FC<HomePageProps> = ({ metadata, multilingualUrls, locale, }) => { const content = useIntlayer("page"); return ( <div> <Head> <title>{metadata.title}</title> <meta name="description" content={metadata.description} /> {/* Menghasilkan tag hreflang untuk SEO */} {Object.entries(multilingualUrls).map(([lang, url]) => ( <link key={lang} rel="alternate" hrefLang={lang} href={url} /> ))} <link rel="canonical" href={multilingualUrls[locale]} /> </Head> {/* Konten halaman */} <main>{/* Konten halaman Anda di sini */}</main> </div> ); }; export const getStaticProps: GetStaticProps<HomePageProps> = async ({ params, }) => { const locale = params?.locale as string; const metadata = getIntlayer("page-metadata", locale); /** * Menghasilkan objek yang berisi semua url untuk setiap locale. * * Contoh: * ```ts * getMultilingualUrls('/about'); * * // Mengembalikan * // { * // en: '/about', * // fr: '/fr/about', * // es: '/es/about', * // } * ``` */ const multilingualUrls = getMultilingualUrls("/"); return { props: { locale, metadata, multilingualUrls, }, }; }; export default HomePage; // ... Sisa kode termasuk getStaticPathsPerlu dicatat bahwa fungsi
getIntlayeryang diimpor darinext-intlayermengembalikan konten Anda yang dibungkus dalamIntlayerNode, memungkinkan integrasi dengan visual editor. Sebaliknya, fungsigetIntlayeryang diimpor dariintlayermengembalikan konten Anda secara langsung tanpa properti tambahan.Sebagai alternatif, Anda dapat menggunakan fungsi
getTranslationuntuk mendeklarasikan metadata Anda. Namun, menggunakan file deklarasi konten direkomendasikan untuk mengotomatisasi terjemahan metadata Anda dan mengeksternalisasi konten pada suatu titik.src/pages/[locale]/index.tsxSalin kodeSalin kode ke clipboard
import { GetStaticPaths, GetStaticProps } from "next"; import { type IConfigLocales, getTranslation, getMultilingualUrls, } from "intlayer"; import { useIntlayer } from "next-intlayer"; import Head from "next/head"; import type { FC } from "react"; interface HomePageProps { locale: string; metadata: { title: string; description: string; }; multilingualUrls: Record<string, string>; } const HomePage: FC<HomePageProps> = ({ metadata, multilingualUrls, locale }) => { const content = useIntlayer("page"); return ( <div> <Head> <title>{metadata.title}</title> <meta name="description" content={metadata.description} /> {/* Menghasilkan tag hreflang untuk SEO */} {Object.entries(multilingualUrls).map(([lang, url]) => ( <link key={lang} rel="alternate" hrefLang={lang} href={url} /> ))} <link rel="canonical" href={multilingualUrls[locale]} /> </Head> {/* Konten halaman */} <main> {/* Konten halaman Anda di sini */} </main> </div> ); }; export const getStaticProps: GetStaticProps<HomePageProps> = async ({ params }) => { const locale = params?.locale as string; const t = <T>(content: IConfigLocales<T>) => getTranslation(content, locale); const metadata = { title: t<string>({ en: "My title", fr: "Mon titre", es: "Mi título", }), description: t({ en: "My description", fr: "Ma description", es: "Mi descripción", }), }; const multilingualUrls = getMultilingualUrls("/"); return { props: { locale, metadata, multilingualUrls, }, }; }; export default HomePage; // ... Sisa kode termasuk getStaticPathsPelajari lebih lanjut tentang optimasi metadata di dokumentasi resmi Next.js.
Ubah bahasa konten Anda
OpsionalUntuk mengubah bahasa konten Anda di Next.js, cara yang direkomendasikan adalah menggunakan komponen
Linkuntuk mengarahkan pengguna ke halaman lokal yang sesuai. KomponenLinkmemungkinkan prefetching halaman, yang membantu menghindari pemuatan ulang halaman secara penuh.src/components/LanguageSwitcher.tsxSalin kodeSalin kode ke clipboard
import { Locales, getHTMLTextDir, getLocaleName, getLocalizedUrl, } from "intlayer"; import { useLocalePageRouter } from "next-intlayer"; import { type FC } from "react"; import Link from "next/link"; const LocaleSwitcher: FC = () => { const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter(); return ( <div> <button popoverTarget="localePopover">{getLocaleName(locale)}</button> <div id="localePopover" popover="auto"> {availableLocales.map((localeItem) => ( <Link href={getLocalizedUrl(pathWithoutLocale, localeItem)} hrefLang={localeItem} key={localeItem} aria-current={locale === localeItem ? "page" : undefined} onClick={() => setLocale(localeItem)} > <span> {/* Locale - misal FR */} {localeItem} </span> <span> {/* Bahasa dalam Locale-nya sendiri - misal Français */} {getLocaleName(localeItem, locale)} </span> <span dir={getHTMLTextDir(localeItem)} lang={localeItem}> {/* Bahasa dalam Locale saat ini - misalnya Francés dengan locale saat ini disetel ke Locales.SPANISH */} {getLocaleName(localeItem)} </span> <span dir="ltr" lang={Locales.ENGLISH}> {/* Bahasa dalam Bahasa Inggris - misalnya French */} {getLocaleName(localeItem, Locales.ENGLISH)} </span> </Link> ))} </div> </div> ); };Cara alternatif adalah menggunakan fungsi
setLocaleyang disediakan oleh hookuseLocale. Fungsi ini tidak akan memungkinkan prefetching halaman dan akan memuat ulang halaman.Dalam kasus ini, tanpa pengalihan menggunakan
router.push, hanya kode sisi server Anda yang akan mengubah locale dari konten.src/components/LocaleSwitcher.tsxSalin kodeSalin kode ke clipboard
"use client";import { useRouter } from "next/navigation";import { useLocale } from "next-intlayer";import { getLocalizedUrl } from "intlayer";// ... Sisa kodeconst router = useRouter();const { setLocale } = useLocale({ onLocaleChange: (locale) => { router.push(getLocalizedUrl(pathWithoutLocale, locale)); },});return ( <button onClick={() => setLocale(Locales.FRENCH)}> Ubah ke Bahasa Perancis </button>);API
useLocalePageRoutersama denganuseLocale. Untuk mempelajari lebih lanjut tentang hookuseLocale, lihat dokumentasi.Referensi dokumentasi:
Membuat Komponen Link yang Dilokalkan
OpsionalUntuk memastikan navigasi aplikasi Anda menghormati locale saat ini, Anda dapat membuat komponen
Linkkustom. Komponen ini secara otomatis menambahkan prefix bahasa saat ini pada URL internal, sehingga. Misalnya, ketika pengguna berbahasa Perancis mengklik tautan ke halaman "About", mereka akan diarahkan ke/fr/aboutbukan/about.Perilaku ini berguna untuk beberapa alasan:
- SEO dan Pengalaman Pengguna: URL yang dilokalkan membantu mesin pencari mengindeks halaman spesifik bahasa dengan benar dan menyediakan konten kepada pengguna dalam bahasa pilihan mereka.
- Konsistensi: Dengan menggunakan tautan yang dilokalkan di seluruh aplikasi Anda, Anda menjamin bahwa navigasi tetap dalam locale saat ini, mencegah perubahan bahasa yang tidak terduga.
- Pemeliharaan: Memusatkan logika lokalisasi dalam satu komponen menyederhanakan pengelolaan URL, membuat codebase Anda lebih mudah dipelihara dan dikembangkan seiring pertumbuhan aplikasi Anda.
Berikut adalah implementasi komponen
Linkyang dilokalkan dalam TypeScript:src/components/Link.tsxSalin kodeSalin kode ke clipboard
"use client"; import { getLocalizedUrl } from "intlayer"; import NextLink, { type LinkProps as NextLinkProps } from "next/link"; import { useLocale } from "next-intlayer"; import { forwardRef, PropsWithChildren, type ForwardedRef } from "react"; /** * Fungsi utilitas untuk memeriksa apakah URL yang diberikan adalah eksternal. * Jika URL dimulai dengan http:// atau https://, maka dianggap eksternal. */ export const checkIsExternalLink = (href?: string): boolean => /^https?:\/\//.test(href ?? ""); /** * Komponen Link kustom yang menyesuaikan atribut href berdasarkan locale saat ini. * Untuk tautan internal, menggunakan `getLocalizedUrl` untuk menambahkan prefix locale pada URL (misalnya, /fr/about). * Ini memastikan navigasi tetap dalam konteks locale yang sama. */ export const Link = forwardRef< HTMLAnchorElement, PropsWithChildren<NextLinkProps> >(({ href, children, ...props }, ref: ForwardedRef<HTMLAnchorElement>) => { const { locale } = useLocale(); const isExternalLink = checkIsExternalLink(href.toString()); // Jika tautan bersifat internal dan href yang valid disediakan, dapatkan URL yang dilokalkan. const hrefI18n: NextLinkProps["href"] = href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href; return ( <NextLink href={hrefI18n} ref={ref} {...props}> {children} </NextLink> ); }); Link.displayName = "Link";Cara Kerjanya
Mendeteksi Tautan Eksternal:
Fungsi pembantucheckIsExternalLinkmenentukan apakah sebuah URL bersifat eksternal. Tautan eksternal dibiarkan tidak berubah karena tidak memerlukan lokalisasi.Mengambil Locale Saat Ini:
HookuseLocalemenyediakan locale saat ini (misalnya,fruntuk bahasa Perancis).Melokalkan URL:
Untuk tautan internal (yaitu, bukan eksternal),getLocalizedUrldigunakan untuk secara otomatis menambahkan prefix locale saat ini ke URL. Ini berarti jika pengguna Anda menggunakan bahasa Perancis, melewatkan/aboutsebagaihrefakan mengubahnya menjadi/fr/about.Mengembalikan Link:
Komponen mengembalikan elemen<a>dengan URL yang sudah dilokalkan, memastikan navigasi konsisten dengan locale.
Dengan mengintegrasikan komponen
Linkini di seluruh aplikasi Anda, Anda mempertahankan pengalaman pengguna yang koheren dan sadar bahasa sekaligus mendapatkan manfaat dari peningkatan SEO dan kegunaan.Optimalkan ukuran bundle Anda
OpsionalSaat menggunakan
next-intlayer, kamus disertakan dalam bundle untuk setiap halaman secara default. Untuk mengoptimalkan ukuran bundle, Intlayer menyediakan plugin SWC opsional yang secara cerdas menggantikan panggilanuseIntlayermenggunakan makro. Ini memastikan kamus hanya disertakan dalam bundle untuk halaman yang benar-benar menggunakannya.Untuk mengaktifkan optimasi ini, instal paket
@intlayer/swc. Setelah terinstal,next-intlayerakan secara otomatis mendeteksi dan menggunakan plugin tersebut:bashSalin kodeSalin kode ke clipboard
npm install @intlayer/swc --save-devCatatan: Optimasi ini hanya tersedia untuk Next.js 13 ke atas.
Catatan: Paket ini tidak diinstal secara default karena plugin SWC masih bersifat eksperimental di Next.js. Hal ini mungkin akan berubah di masa depan.
Konfigurasi TypeScript
Intlayer menggunakan module augmentation untuk mendapatkan manfaat dari TypeScript dan membuat codebase Anda lebih kuat.


Pastikan konfigurasi TypeScript Anda menyertakan tipe yang dihasilkan secara otomatis.
Salin kode ke clipboard
{ // ... Konfigurasi TypeScript Anda yang sudah ada "include": [ // ... Konfigurasi TypeScript Anda yang sudah ada ".intlayer/**/*.ts", // Sertakan tipe yang dihasilkan otomatis ],}Konfigurasi Git
Untuk menjaga kebersihan repositori Anda dan menghindari commit file yang dihasilkan, disarankan untuk mengabaikan file yang dibuat oleh Intlayer.
Tambahkan baris berikut ke file .gitignore Anda:
Salin kode ke clipboard
# Abaikan file yang dihasilkan oleh Intlayer.intlayerEkstensi VS Code
Untuk meningkatkan pengalaman pengembangan Anda dengan Intlayer, Anda dapat menginstal Ekstensi VS Code Intlayer resmi.
Pasang dari VS Code Marketplace
Ekstensi ini menyediakan:
- Autocompletion untuk kunci terjemahan.
- Deteksi kesalahan waktu nyata untuk terjemahan yang hilang.
- Pratinjau inline dari konten terjemahan.
- Aksi cepat untuk dengan mudah membuat dan memperbarui terjemahan.
Untuk informasi lebih lanjut tentang cara menggunakan ekstensi ini, lihat dokumentasi Ekstensi VS Code Intlayer.
Sumber Daya Tambahan
- Dokumentasi Intlayer: Repositori GitHub
- Panduan Kamus: Kamus
- Dokumentasi Konfigurasi: Panduan Konfigurasi
Dengan mengikuti panduan ini, Anda dapat mengintegrasikan Intlayer secara efektif ke dalam aplikasi Next.js Anda menggunakan Page Router, memungkinkan dukungan internasionalisasi yang kuat dan skalabel untuk proyek web Anda.
Melangkah Lebih Jauh
Untuk melangkah lebih jauh, Anda dapat mengimplementasikan editor visual atau mengeksternalisasi konten Anda menggunakan CMS.