Traduisez les messages next-intl, puis vérifiez chaque ligne
Les messages next-intl sont du JSON imbriqué avec la syntaxe ICU : {count, plural, =0 {…} one {# item} other {# items}}. Le japonais a une seule forme plurielle, le russe trois, et une branche copiée telle quelle se lit mal. KAERIS traduit la branche messages/en.json branche par branche et conserve les espaces de noms.
KAERIS a traduit cette page et vérifié chaque ligne en la retraduisant. Un locuteur natif ne l'a pas encore revue. Original anglais
Les branches ICU suivent la langue cible
Le japonais n'a pas de forme singulière, donc one est intégré dans other. {name} et # restent.
{
"HomePage": {
"title": "Welcome, {name}!",
"cartItems": "{count, plural, =0 {Your cart is empty} one {# item} other {# items}}"
}
}
{
"HomePage": {
"title": "ようこそ、{name}さん!",
"cartItems": "{count, plural, =0 {カートは空です} other {#点の商品}}"
}
}
Ce que KAERIS en fait
Espaces de noms conservés
HomePage,Cartet chaque objet imbriqué restent tels que dans votre source, prêts pour le segment[locale]de l'App Router.Variables vérifiées sans IA
Après traduction, une simple vérification par comptage compare chaque variable et balise avec l'original. Une ligne qui en a perdu une est marquée et affichée en haut.
Chaque ligne retraduite
Un modèle différent, GPT-4o mini, traduit chaque ligne dans votre langue, et DeepSeek V3.2 sur des hôtes américains (DeepInfra, DigitalOcean, Google) juge si le sens a changé. Vous lisez ce que dit maintenant chaque ligne.
Questions
Est-ce que select fonctionne aussi ?
Oui. plural, select et selectordinal conservent leur syntaxe ; seuls les mots à l'intérieur des branches sont traduits.
Un fichier par locale ?
Oui : messages/de.json, messages/ja.json et ainsi de suite, la disposition attendue par next-intl.
Est-ce gratuit ?
Oui, sans compte : 10 000 caractères par fichier et jusqu'à 8 langues par exécution. Une clé API gratuite augmente la limite de fichiers à 50 000 caractères. La licence à vie est de 79 $ une fois, sur votre propre clé OpenRouter ; les plans mensuels commencent à 19 $. Tarifs
Comment l'intégrer au dépôt ?
kaeris init --preset next-intl écrit les paramètres pour messages/, et kaeris translate s'exécute sans aucun drapeau. Docs