Lingo.dev + componentes de archivo único de Vue.js
Lingo.dev CLI es compatible con componentes de archivo único de Vue I18n, lo que te permite mantener las traducciones dentro de tus archivos .vue.
Nota: Si tu aplicación Vue.js utiliza archivos de configuración regional JSON, usa el formato .json para frontend.
Configuración rápida
Crea un archivo de configuración i18n.json en la raíz de tu proyecto:
{
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"vue-json": {
"include": ["src/components/*.vue", "src/views/*.vue"]
}
}
}
Esta configuración establece el inglés como idioma de origen, tiene como objetivo el español, francés y alemán, y procesa archivos .vue en los directorios src/components y src/views.
Buscar idiomas compatibles
Lista los idiomas de origen y destino disponibles:
npx lingo.dev@latest show locale sources
npx lingo.dev@latest show locale targets
Traducir todo
Ejecuta el siguiente comando para traducir todos los componentes Vue:
npx lingo.dev@latest run
El CLI escanea tus componentes en busca de bloques <i18n>, traduce el contenido nuevo o modificado y actualiza las traducciones en el lugar.
Cómo funciona con componentes Vue
Lingo.dev funciona directamente con la estructura i18n estándar de Vue:
<template>
<div>
<h1>{{ $t("welcome") }}</h1>
<p>{{ $t("description") }}</p>
</div>
</template>
<i18n>
{
"en": {
"welcome": "Welcome",
"description": "This is a Vue component"
}
}
</i18n>
Después de la traducción, tu componente contendrá todos los idiomas de destino:
<i18n>
{
"en": {
"welcome": "Welcome",
"description": "This is a Vue component"
},
"es": {
"welcome": "Bienvenido",
"description": "Este es un componente Vue"
},
"fr": {
"welcome": "Bienvenue",
"description": "Ceci est un composant Vue"
}
}
</i18n>
Configuración avanzada
Excluir archivos
Excluye componentes específicos de la traducción:
"vue-json": {
"include": ["src/components/*.vue", "src/views/*.vue"],
"exclude": ["src/components/NoTranslate.vue"]
}
Traducción híbrida
Combina traducciones basadas en componentes y basadas en archivos:
"buckets": {
"vue-json": {
"include": ["src/components/*.vue", "src/views/*.vue"]
},
"json": {
"include": ["src/locales/[locale].json"]
}
}
Esta configuración mantiene las traducciones específicas de componentes dentro de los componentes y almacena las traducciones globales en archivos JSON separados.
Por qué usar este enfoque
- Mantiene las traducciones con los componentes que las utilizan
- No es necesario extraer cadenas a archivos separados
- La IA comprende el contexto del componente para mejores traducciones
- Solo traduce lo que ha cambiado
- Funciona con los patrones recomendados de Vue I18n
Lingo.dev proporciona traducciones impulsadas por IA mientras mantiene la arquitectura basada en componentes de Vue.