Magic Translate vs. i18next
i18next, dengan binding React react-i18next, adalah pustaka i18n open-source paling populer untuk JavaScript. Ini dibangun di sekitar kunci terjemahan dan file bahasa. Magic Translate menerjemahkan teks dalam komponen Anda secara langsung, tanpa kunci atau file. Halaman ini menjelaskan perbedaannya sehingga Anda dapat memilih alat yang tepat untuk aplikasi Anda.
Sekilas
| Magic Translate | i18next | |
|---|---|---|
| Bagaimana Anda menulis teks | Kata-kata Anda sendiri, dibungkus dengan <T> | Kunci per teks, seperti t('cart.title') |
| Terjemahan | Terjemahan mesin, dibuat secara otomatis | Anda atau penerjemah Anda menulisnya |
| Berkas bahasa | Tidak ada | Satu file per bahasa dan namespace |
| Bahasa baru | Ubah pengaturan language | Terjemahkan setiap kunci ke dalam bahasa baru |
| Render server | Komponen Server React dan Next.js | Ya, dengan pengaturan tambahan |
| Plural dan pemformatan | Diterjemahkan sebagai bagian dari kalimat | Dibangun, dengan aturan jamak per bahasa |
| Harga | Paket gratis, lalu paket bulanan berdasarkan penggunaan | Open source dan gratis |
Bagaimana kode berbeda
Dengan react-i18next, Anda menyimpan file bahasa untuk setiap bahasa dan merujuk ke teks dengan kunci:
// locales/en/translation.json{ "cart": { "title": "Your shopping cart" } }// Cart.tsximport { useTranslation } from 'react-i18next';const Cart = () => {const { t } = useTranslation();return <h2>{t('cart.title')}</h2>;};
Dengan Magic Translate, teks tetap berada di komponen:
import { T } from '@magic-translate/react';const Cart = () => (<h2><T>Your shopping cart</T></h2>);
Kapan memilih Magic Translate
- Anda ingin aplikasi Anda dalam banyak bahasa tanpa mengelola file bahasa.
- Anda tidak memiliki penerjemah, atau Anda tidak ingin menunggu mereka sebelum Anda merilis versi baru.
- Teks Anda sering berubah, dan Anda ingin setiap bahasa tetap up to date.
- Anda menggunakan React Server Components atau Next.js dan ingin sepenuhnya diterjemahkan HTML untuk mesin pencari.
Kapan memilih i18next
- Setiap teks harus diterjemahkan atau ditinjau oleh seseorang.
- Anda memerlukan kontrol yang tepat atas bentuk jamak, tanggal dan angka dalam setiap bahasa.
- Anda menginginkan perpustakaan sumber terbuka gratis tanpa layanan eksternal.
Berpindah dari i18next ke Magic Translate
Anda dapat mengganti satu komponen pada satu waktu. Ganti t('key') dengan teks bahasa Inggris dari file bahasa Anda, dibungkus dengan <T>, atau gunakan useT hook untuk props dan atribut. Kedua pustaka dapat berjalan berdampingan saat Anda bermigrasi.
Siap untuk mencobanya? Ikuti panduan memulai untuk menerjemahkan komponen pertama Anda dalam lima menit.