Magic Translate vs. next-intl
next-intl, Next.js için en yaygın kullanılan i18n kütüphanesidir. Uygulama Yönlendiricisi ve React Sunucu Bileşenleri ile çalışır ve her mesaj için bir anahtarla mesaj dosyaları etrafında oluşturulmuştur. Magic Translate ayrıca sunucuda tamamen çevrilmiş sayfaları oluşturur, ancak metninizi doğrudan bileşenlerinize yazarsınız ve çeviriler sizin için oluşturulur.
Bir bakışta
| Magic Translate | next-intl | |
|---|---|---|
| Nasıl metin yazarsınız | Kendi sözleriniz, <T> ile sarılmış | Her mesaj için bir anahtar, örneğin t('title') |
| Tercümeler | Yapay zeka çevirisi, otomatik olarak oluşturuldu | Siz veya çevirmenleriniz bunları yazıyorsunuz |
| Mesaj dosyaları | Yok | Dil başına bir JSON dosyası |
| Yeni diller | Yerel ayarı listenize ekleyin | Her mesajı yeni dile çevirin |
| Sunucu oluşturma | React Sunucu Bileşenleri, tamamen çevrilmiş HTML | React Sunucu Bileşenleri, tamamen çevrilmiş HTML |
| Yerel yönlendirme | [locale] segmenti kullanın | Yerleşik yönlendirme ve ara yazılım |
| FİYAT | Ücretsiz plan, ardından kullanıma göre aylık planlar | Açık kaynak ve ücretsiz |
Kod nasıl farklılık gösterir
next-intl ile her dil için bir mesaj dosyası tutar ve her iletiye anahtarıyla başvurursunuz:
// messages/en.json{ "HomePage": { "title": "Welcome to our website" } }// app/[locale]/page.tsximport { getTranslations } from 'next-intl/server';export default async function HomePage() {const t = await getTranslations('HomePage');return <h1>{t('title')}</h1>;}
Magic Translate ile metin sayfada kalır:
// app/[locale]/page.tsximport { 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>);}
Next.js kılavuzu tam kurulumu gösterir.
Ne zaman seçilir Magic Translate
- Mesaj dosyalarını korumadan Next.js sitenizi birçok dilde istiyorsunuz.
- Metniniz sık sık değişir, ve her dilin güncel kalmasını istersiniz.
- Çevirmenleriniz yok veya çevirileri beklemeden güncellemeleri yayınlamak istiyorsunuz.
Ne zaman seçilir next-intl
- Tüm metinler bir kişi tarafından çevrilmeli veya gözden geçirilmelidir.
- ICU mesajlarıyla çoğullar, tarihler ve sayılar üzerinde tam kontrole ihtiyacınız var.
- Harici hizmet içermeyen ücretsiz, açık kaynaklı bir kütüphane istiyorsunuz.
Her ikisini de kullanarak
Yerel yönlendirme ve biçimlendirme için next-intl 'ı tutabilir ve metin için Magic Translate kullanabilirsiniz. Yerel ayarı next-intl 'dan createLocalizedT 'e aktarın ve anahtarları her seferinde bir sayfa <T> ile değiştirin.
Denemeye hazır mısınız? İlk bileşen inizi beş dakika içinde çevirmek için başlangıç kılavuzunu izleyin.