Lingo.dev + .ts (TypeScript)

Lingo.dev CLI traduce archivos de localización TypeScript preservando las definiciones de tipo, estructuras de objetos y sintaxis específica de TypeScript. El CLI mantiene la verificación e inferencia de tipos de TypeScript, soporta toda la sintaxis y características de TypeScript, funciona con exportaciones predeterminadas y nombradas, maneja correctamente las cadenas de plantilla e interpolación, y se integra perfectamente con los procesos de compilación de TypeScript.

Configuración rápida

Configuración para archivos de localización TypeScript:

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

Recordatorio: [locale] es un marcador de posición que debe permanecer literalmente en la configuración, ya que se reemplaza con el idioma real durante la ejecución del CLI.

Traducir archivos TypeScript

npx lingo.dev@latest i18n

Preserva la sintaxis de TypeScript, las anotaciones de tipo y las exportaciones de módulos mientras traduce el contenido de las cadenas.

Soporte para estructuras TypeScript

Requisito de exportación predeterminada

Para que la traducción de TypeScript funcione correctamente, tu archivo debe exportar un objeto como exportación predeterminada:

// Esto funciona - objeto de exportación predeterminada
export default {
  common: {
    save: "Save",
    cancel: "Cancel",
    delete: "Delete",
  },
  auth: {
    login: "Log In",
    register: "Create Account",
  },
} as const;
// Esto también funciona - variable con exportación predeterminada
const messages = {
  welcome: "Welcome to our app",
  error: "Something went wrong",
};
export default messages;

Preservación de la seguridad de tipos

export const locale = {
  buttons: {
    submit: "Submit Form",
    reset: "Reset",
  },
} as const;

type LocaleKeys = typeof locale;

La información de tipo y las aserciones const permanecen intactas.

Configuración avanzada

Múltiples archivos TypeScript

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

Bloquear definiciones de tipo

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