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
    /
    Alt+←
    Apa itu internasionalisasi (i18n)?
    SEO dan i18n
    Panduan
    • i18n dengan next-i18next
    • i18n dengan next-intl
    Gunakan Intlayer di solusi Anda
    • Automatisasi next-i18next
    • Automatisasi react-i18next
    • Automatisasi next-intl
    • Automatisasi react-intl
    • Automatisasi vue-i18n
    Perbandingan
    • next-i18next vs next-intl vs Intlayer
    • react-i18next vs react-intl vs Intlayer
    Dokumentasi
    1. Blog
    2. I18n technologies
    3. Frameworks
    4. Svelte
    Dibuat:2025-01-16Terakhir 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

    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

    Menjelajahi Solusi i18n untuk Menerjemahkan Situs Web Svelte Anda

    Seiring web terus menghubungkan orang-orang di seluruh dunia, menyediakan konten dalam berbagai bahasa menjadi semakin penting. Bagi pengembang yang bekerja dengan Svelte, menerapkan i18n sangat penting untuk mengelola terjemahan secara efisien, menjaga kode tetap bersih, dan mempertahankan praktik SEO yang baik. Dalam artikel ini, kami membahas berbagai solusi dan alur kerja i18n untuk Svelte yang membantu Anda memilih yang paling sesuai dengan kebutuhan proyek Anda.


    ilustrasi i18n

    Apa itu Internasionalisasi (i18n)?

    Internasionalisasi, yang biasa disingkat i18n, adalah proses merancang dan membangun aplikasi Anda agar dapat dengan mudah beradaptasi dengan berbagai bahasa, wilayah, dan konvensi budaya. Dalam Svelte, ini biasanya berarti menyiapkan string terjemahan, melokalisasi tanggal, waktu, dan angka, serta memastikan antarmuka pengguna dapat beralih secara dinamis di antara berbagai locale tanpa perlu penulisan ulang kode yang besar.

    Untuk mempelajari lebih lanjut tentang dasar-dasar i18n, baca artikel kami: Apa itu Internasionalisasi (i18n)? Definisi dan Tantangan.


    Tantangan Terjemahan untuk Aplikasi Svelte

    Menerjemahkan aplikasi Svelte dapat menghadirkan beberapa kendala:

    • Komponen Satu Berkas: Pendekatan komponen satu berkas Svelte (di mana HTML, CSS, dan JavaScript ada bersama) membuat teks mudah tersebar, sehingga memerlukan strategi untuk memusatkan terjemahan.
    • Konten Dinamis: Data yang diambil dari API atau input pengguna menambah kompleksitas saat memastikan konten diterjemahkan secara langsung.
    • Pertimbangan SEO: Jika Anda menggunakan SvelteKit untuk server-side rendering (SSR), mengonfigurasi URL yang dilokalisasi, meta tag, dan sitemap untuk SEO yang efektif memerlukan perhatian ekstra.
    • State & Routing: Mempertahankan bahasa yang benar di berbagai rute dan halaman dinamis sering kali melibatkan pengaturan state global, route guards, atau custom hooks di SvelteKit.
    • Maintainability: Seiring bertambahnya codebase dan file terjemahan Anda, menjaga semuanya tetap terorganisir dengan baik dan tersinkronisasi menjadi usaha yang berkelanjutan.

    Solusi i18n Terdepan untuk Svelte

    Svelte tidak menyediakan solusi i18n bawaan secara native (seperti Angular), tetapi komunitas telah menciptakan berbagai pustaka dan pola yang kuat. Berikut beberapa pendekatan populer.

    1. Intlayer

    Situs Web: https://intlayer.org/

    Ikhtisar
    Intlayer adalah pustaka internasionalisasi (i18n) sumber terbuka yang inovatif, dirancang untuk menyederhanakan dukungan multibahasa dalam aplikasi web Svelte (dan lainnya) modern. Ini menawarkan pendekatan deklaratif yang memungkinkan Anda menentukan kamus terjemahan langsung di dalam komponen Anda.

    Fitur Utama

    • Deklarasi Terjemahan: Memungkinkan semua terjemahan dideklarasikan dalam satu file, yang disimpan di tingkat komponen, sehingga mudah untuk dipertahankan dan diskalakan.
    • TypeScript & Autocomplete: Menyediakan definisi tipe yang dibuat secara otomatis untuk kunci terjemahan, memastikan pelengkapan otomatis (autocomplete) yang kuat dan deteksi kesalahan.
    • Komponen Server & SSR: Dibuat dengan mempertimbangkan server-side rendering (SSR) dan komponen server, memastikan konten yang dilokalkan disajikan secara efisien baik di klien maupun server.
    • Metadata & URL yang Dilokalkan untuk SEO: Kelola rute berbasis lokal yang dinamis, sitemap, dan entri robots.txt dengan mudah untuk meningkatkan kemudahan temuan dan SEO.
    • Integrasi yang Mulus: Kompatibel dengan SvelteKit dan alat lainnya, membuat penyiapan menjadi sederhana.
    • Pemuatan Asinkron: Muat kamus terjemahan secara dinamis, mengurangi ukuran bundle awal dan meningkatkan kinerja.

    Pertimbangan

    • Komunitas & Ekosistem: Meskipun terus berkembang, ekosistemnya masih baru, sehingga plugin dan alat yang didorong oleh komunitas mungkin lebih terbatas dibandingkan dengan solusi yang lebih mapan.

    2. svelte-i18n

    Repositori: https://github.com/kaisermann/svelte-i18n

    Ikhtisar
    svelte-i18n adalah salah satu pustaka yang paling banyak digunakan untuk menambahkan internasionalisasi ke aplikasi Svelte. Ini memungkinkan Anda memuat dan beralih antar locale secara dinamis saat runtime dan menyertakan bantuan untuk plural, interpolasi, dan lainnya.

    Fitur Utama

    • Terjemahan Runtime: Memuat file terjemahan sesuai permintaan, memungkinkan Anda mengganti bahasa tanpa perlu membangun ulang aplikasi.
    • Pluralisasi & Interpolasi: Menyediakan sintaks yang sederhana untuk menangani bentuk jamak dan menyisipkan variabel dalam terjemahan.
    • Lazy Loading: Hanya mengambil file terjemahan yang Anda butuhkan, mengoptimalkan performa untuk aplikasi besar atau banyak bahasa.
    • Dukungan SvelteKit: Contoh yang terdokumentasi dengan baik menunjukkan cara mengintegrasikan dengan SSR di SvelteKit untuk SEO yang lebih baik.

    Pertimbangan

    • Organisasi Proyek: Anda perlu menyusun file terjemahan secara logis seiring pertumbuhan proyek.
    • Pengaturan SSR: Mengonfigurasi SSR untuk SEO mungkin memerlukan langkah tambahan untuk memastikan deteksi locale yang benar di sisi server.
    • Performa: Meskipun fleksibel saat runtime, memuat banyak terjemahan sekaligus dapat mempengaruhi waktu muat awal; pertimbangkan strategi lazy loading atau caching.

    3. svelte-intl-precompile

    Repository: https://github.com/cibernox/svelte-intl-precompile

    Ikhtisar
    svelte-intl-precompile menggunakan pendekatan prekompilasi untuk mengurangi beban saat runtime dan meningkatkan performa. Perpustakaan ini mengintegrasikan konsep pemformatan pesan (mirip dengan FormatJS) sambil menghasilkan pesan yang sudah dikompilasi sebelumnya pada saat build.

    Fitur Utama

    • Pesan yang Dikompilasi Sebelumnya: Dengan mengompilasi string terjemahan selama langkah build, performa runtime meningkat, dan ukuran bundle bisa lebih kecil.
    • Integrasi dengan SvelteKit: Kompatibel dengan SSR, memungkinkan Anda menyajikan halaman yang sepenuhnya dilokalkan untuk SEO dan pengalaman pengguna yang lebih baik.
    • Ekstraksi Pesan: Secara otomatis mengekstrak string dari kode Anda, mengurangi beban pembaruan manual.
    • Format Lanjutan: Mendukung pluralisasi, terjemahan spesifik gender, dan interpolasi variabel.

    Pertimbangan

    • Kompleksitas Build: Menyiapkan prekompilasi mungkin menambah kompleksitas pada pipeline build Anda.
    • Konten Dinamis: Jika Anda membutuhkan terjemahan langsung untuk konten yang dibuat pengguna, pendekatan ini mungkin memerlukan langkah tambahan untuk pembaruan saat runtime.
    • Kurva Pembelajaran: Kombinasi ekstraksi pesan dan prekompilasi bisa sedikit lebih kompleks bagi pemula.

    4. i18next dengan Svelte / SvelteKit

    Website: https://www.i18next.com/

    Ikhtisar
    Meskipun i18next lebih umum dikaitkan dengan React atau Vue, juga memungkinkan untuk mengintegrasikannya dengan Svelte atau SvelteKit. Memanfaatkan ekosistem luas i18next bisa sangat membantu jika Anda membutuhkan i18n yang konsisten di berbagai framework JavaScript dalam organisasi Anda.

    Fitur Utama

    • Ekosistem Matang: Manfaatkan berbagai plugin, modul deteksi bahasa, dan dukungan komunitas yang luas.
    • Runtime atau Build-Time: Pilih antara pemuatan dinamis atau pengemasan terjemahan Anda untuk startup yang sedikit lebih cepat.
    • Ramai SSR: SvelteKit SSR dapat menyajikan konten yang dilokalkan dengan menggunakan i18next di sisi server, yang sangat baik untuk SEO.
    • Fitur Kaya: Mendukung interpolasi, bentuk jamak, terjemahan bersarang, dan skenario i18n yang lebih kompleks.

    Pertimbangan

    • Pengaturan Manual: i18next tidak memiliki integrasi khusus untuk Svelte secara langsung, jadi Anda perlu mengonfigurasinya sendiri.
    • Beban Berlebih: i18next sangat kuat, tetapi untuk proyek Svelte yang lebih kecil, beberapa fiturnya mungkin berlebihan.
    • Routing & State: Penanganan routing bahasa kemungkinan akan melibatkan hooks atau middleware khusus SvelteKit.

    Pemikiran Akhir

    Saat memilih strategi i18n untuk aplikasi Svelte Anda:

    1. Menilai Skala Proyek: Untuk proyek yang lebih kecil atau prototipe cepat, perpustakaan yang lebih sederhana seperti svelte-i18n atau pendekatan i18n minimal mungkin sudah cukup. Aplikasi yang lebih besar dan kompleks mungkin akan mendapatkan manfaat dari solusi yang bertipe, sudah dikompilasi sebelumnya, atau berbasis ekosistem yang lebih kuat.
    2. Pertimbangan SSO & SSR: Jika SEO sangat penting atau Anda membutuhkan rendering sisi server dengan SvelteKit, pilihlah perpustakaan yang mendukung SSR secara efektif dan dapat menangani rute yang dilokalkan, metadata, dan sitemap.
    3. Runtime vs. Build-Time: Tentukan apakah Anda memerlukan pergantian bahasa dinamis saat runtime atau lebih memilih terjemahan yang sudah dikompilasi sebelumnya untuk kinerja yang lebih baik. Setiap pendekatan memiliki kompromi yang berbeda.
    4. Integrasi TypeScript: Jika Anda sangat bergantung pada TypeScript, solusi seperti Intlayer atau perpustakaan dengan kunci bertipe dapat secara signifikan mengurangi kesalahan saat runtime dan meningkatkan pengalaman pengembang.
    5. Pemeliharaan & Skalabilitas: Rencanakan bagaimana Anda akan mengatur, memperbarui, dan memversioning file terjemahan Anda. Ekstraksi otomatis, konvensi penamaan, dan struktur folder yang konsisten akan menghemat waktu dalam jangka panjang.

    Pada akhirnya, setiap perpustakaan menawarkan keunggulan unik. Pilihan Anda bergantung pada kinerja, pengalaman pengembang, kebutuhan SEO, dan pemeliharaan jangka panjang. Dengan memilih solusi yang sesuai dengan tujuan proyek Anda, Anda dapat menciptakan aplikasi Svelte yang benar-benar global dan memuaskan pengguna di seluruh dunia.

    Apa itu internasionalisasi (i18n)?
    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.