Compilateur
Plugin SWC de gt-next, écrit en Rust.
Compilateur
gt-next inclut un plugin SWC écrit en Rust qui réalise une analyse à la compilation pour détecter les erreurs de traduction courantes et optimiser les performances.
Fonctionnalités
Détection de contenu dynamique
Détecte le contenu dynamique non enveloppé dans les composants de traduction :
// ❌ Invalide - contenu dynamique non encapsulé
<T>Hello {userName}</T>
// ✅ Valide - contenu dynamique encapsulé dans un composant variable  
<T>Hello <Var>{userName}</Var></T>Validation des appels de fonction
Détecte les arguments non littéraux transmis aux fonctions de traduction :
const t = useGT();
// ❌ Invalide - littéraux de template et concaténation
t(`Hello ${name}`)
t("Hello " + name)
// ✅ Valide - littéraux de chaîne avec substitution de variable
t("Hello, {name}!", { name })Génération de hachages à la compilation
Précalcule des hachages de traduction pour de meilleures performances à l’exécution :
// Entrée
<T>Bonjour le monde</T>
// Sortie (quand activé)
<T _hash="a1b2c3d4">Bonjour le monde</T>Configuration
Configurez le plug-in SWC dans votre next.config.js :
import { withGTConfig } from 'gt-next/config';
export default withGTConfig(nextConfig, {
  locales: ['en', 'es'],
  swcPluginOptions: {
    logLevel: 'silent',     // Contrôle la sortie des avertissements
    compileTimeHash: false, // Active la génération de hachage
  },
});Options
- 
logLevel: Contrôle le niveau de sortie des avertissements- 'silent'- Aucun avertissement (valeur par défaut en production)
- 'error'- Afficher comme erreurs de compilation
- 'warn'- Afficher comme avertissements (valeur par défaut en développement)
- 'info'- Afficher des messages d’information
- 'debug'- Afficher toutes les informations de débogage
 
- 
compileTimeHash: Active la génération de hachage au moment de la compilation- false- Désactivé (par défaut)
- true- Générer des hachages à la compilation pour de meilleures performances
 
Limites
Le plugin SWC traite les fichiers individuellement et ne peut pas détecter les violations dans les composants réexportés :
// Fichier A : export { T as Translate } from 'gt-next'
// Fichier B : import { Translate } from './A'
<Translate>Bonjour {name}</Translate> // Ne sera pas détectéQue pensez-vous de ce guide ?

