Lingo.dev + .ts (TypeScript)

Lingo.dev CLI traduit les fichiers de localisation TypeScript tout en préservant les définitions de types, les structures d'objets et la syntaxe spécifique à TypeScript. Le CLI maintient la vérification et l'inférence de types TypeScript, prend en charge toute la syntaxe et les fonctionnalités TypeScript, fonctionne avec les exportations par défaut et nommées, gère correctement les chaînes de modèles et l'interpolation, et s'intègre parfaitement aux processus de compilation TypeScript.

Configuration rapide

Configuration pour les fichiers de localisation TypeScript :

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "typescript": {
      "include": ["src/locales/[locale].ts"]
    }
  }
}

Rappel : [locale] est un placeholder qui doit rester littéralement dans la configuration, car il est remplacé par la locale réelle lors de l'exécution du CLI.

Traduire des fichiers TypeScript

npx lingo.dev@latest i18n

Préserve la syntaxe TypeScript, les annotations de type et les exportations de modules tout en traduisant le contenu des chaînes.

Support des structures TypeScript

Exigence d'exportation par défaut

Pour que la traduction TypeScript fonctionne correctement, votre fichier doit exporter un objet en tant qu'exportation par défaut :

// Ceci fonctionne - objet d'exportation par défaut
export default {
  common: {
    save: "Enregistrer",
    cancel: "Annuler",
    delete: "Supprimer",
  },
  auth: {
    login: "Se connecter",
    register: "Créer un compte",
  },
} as const;
// Ceci fonctionne également - variable avec exportation par défaut
const messages = {
  welcome: "Bienvenue dans notre application",
  error: "Une erreur s'est produite",
};
export default messages;

Préservation de la sécurité des types

export const locale = {
  buttons: {
    submit: "Soumettre le formulaire",
    reset: "Réinitialiser",
  },
} as const;

type LocaleKeys = typeof locale;

Les informations de type et les assertions const restent intactes.

Configuration avancée

Fichiers TypeScript multiples

"typescript": {
  "include": [
    "src/locales/[locale].ts",
    "src/translations/[locale]/*.ts"
  ]
}

Verrouiller les définitions de type

"typescript": {
  "include": ["src/locales/[locale].ts"],
  "lockedKeys": ["__type", "metadata"]
}