Documentation

Magic Translate vs. next-intl

next-intl est la bibliothèque i18n la plus utilisée pour Next.js. Il fonctionne avec les composants App Router et React Server et repose sur des fichiers de messages avec une clé pour chaque message. Magic Translate affiche également les pages entièrement traduites sur le serveur, mais tu écris ton texte directement dans tes composants, et les traductions sont créées pour toi.

En un coup d'œil

Magic Translatenext-intl
Comment tu écris le texteTes propres mots, encadrés par <T>Une touche pour chaque message, par exemple t('title')
TraductionsTraduction par IA, créée automatiquementC'est toi ou tes traducteurs qui les rédigent
Fichiers de messagesAucunUn fichier JSON par langue
Nouvelles languesAjoute le lieu à ta listeTraduire chaque message dans la nouvelle langue
Rendu sur serveurReact Server Components, HTML entièrement traduitReact Server Components, HTML entièrement traduit
Routage localUtilise un segment [locale]Routage et intergiciel intégrés
PrixForfait gratuit, puis forfaits mensuels en fonction de l'utilisationOpen source et gratuit

En quoi le code diffère-t-il

Avec next-intl, tu contiens un fichier de messages pour chaque langue et tu fais référence à chaque message par sa touche :

// 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>;
}

Avec Magic Translate, le texte reste sur la page :

// 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>
);
}

Le guide Next.js montre la configuration complète.

Quand choisir Magic Translate

  • Tu veux que ton site Next.js soit disponible dans de nombreuses langues sans gérer de fichiers de messages.
  • Ton texte change souvent et tu veux que chaque langue soit à jour.
  • Tu n'as pas de traducteurs ou tu souhaites publier des mises à jour sans attendre les traductions.

Quand choisir next-intl

  • Tout le texte doit être traduit ou révisé par une personne.
  • Tu dois contrôler exactement les pluriels, les dates et les chiffres avec les messages ICU.
  • Tu veux une bibliothèque open source gratuite, sans service externe.

Utiliser les deux

Tu peux conserver next-intl pour le routage et la mise en forme des paramètres régionaux, et utiliser Magic Translate pour le texte. Transmet les paramètres régionaux de next-intl à createLocalizedT, et remplace les touches par <T>, page par page.

Prête à l'essayer ? Suis le guide de démarrage pour traduire ton premier composant en cinq minutes.