Dokumentasi

Magic Translate vs. next-intl

next-intl adalah perpustakaan i18n yang paling banyak digunakan untuk Next.js. Ini bekerja dengan App Router dan React Server Components, dan dibangun di sekitar file pesan dengan kunci untuk setiap pesan. Magic Translate juga merender halaman yang diterjemahkan sepenuhnya di server, tetapi Anda menulis teks Anda langsung di komponen Anda, dan terjemahan dibuat untuk Anda.

Sekilas

Magic Translatenext-intl
Bagaimana Anda menulis teksKata-kata Anda sendiri, dibungkus dengan <T>Kunci untuk setiap pesan, seperti t('title')
TerjemahanTerjemahan AI, dibuat secara otomatisAnda atau penerjemah Anda menulisnya
File pesanTidak adaSatu file JSON per bahasa
Bahasa baruTambahkan lokal ke daftar AndaTerjemahkan setiap pesan ke dalam bahasa baru
Render serverKomponen Server React, HTML sepenuhnya diterjemahkanKomponen Server React, HTML sepenuhnya diterjemahkan
Perutean lokalGunakan segmen [locale]Perutean bawaan dan middleware
HargaPaket gratis, lalu paket bulanan berdasarkan penggunaanOpen source dan gratis

Bagaimana kode berbeda

Dengan next-intl, Anda menyimpan file pesan untuk setiap bahasa dan merujuk ke setiap pesan dengan kuncinya:

// messages/en.json
{ "HomePage": { "title": "Welcome to our website" } }
// app/[locale]/page.tsx
import { getTranslations } from 'next-intl/server';
export default async function HomePage() {
const t = await getTranslations('HomePage');
return <h1>{t('title')}</h1>;
}

Dengan Magic Translate, teks tetap berada di halaman:

// app/[locale]/page.tsx
import { createLocalizedT } from '@magic-translate/react-ssr';
import { translate } from '@/lib/translate';
export default async function HomePage({
params
}: {
params: Promise<{ locale: string }>;
}) {
const { locale } = await params;
const { T } = createLocalizedT(translate, locale);
return (
<h1>
<T>Welcome to our website</T>
</h1>
);
}

Panduan Next.js menunjukkan pengaturan lengkap.

Kapan memilih Magic Translate

  • Anda ingin situs Next.js Anda dalam banyak bahasa tanpa memelihara file pesan.
  • Teks Anda sering berubah, dan Anda ingin setiap bahasa tetap up to date.
  • Anda tidak memiliki penerjemah, atau Anda ingin merilis pembaruan tanpa menunggu terjemahan.

Kapan memilih next-intl

  • Semua teks harus diterjemahkan atau ditinjau oleh seseorang.
  • Anda memerlukan kontrol yang tepat atas jamak, tanggal dan angka dengan pesan ICU.
  • Anda menginginkan perpustakaan sumber terbuka gratis tanpa layanan eksternal.

Menggunakan keduanya

Anda dapat menyimpan next-intl untuk perutean dan pemformatan lokal, dan menggunakan Magic Translate untuk teks. Berikan lokal dari next-intl ke createLocalizedT, dan ganti kunci dengan <T> satu halaman pada satu waktu.

Siap untuk mencobanya? Ikuti panduan memulai untuk menerjemahkan komponen pertama Anda dalam lima menit.