Magic Translate vs. vue-i18n
vue-i18n es la biblioteca i18n estándar para Vue, y @nuxtjs/i18n se basa en ella para Nuxt. Como la mayoría de las bibliotecas i18n, utiliza una clave para cada mensaje y un conjunto de mensajes por idioma. Magic Translate traduce el texto de tus plantillas de Vue directamente, sin claves ni archivos de mensajes.
De un vistazo
| Magic Translate | vue-i18n | |
|---|---|---|
| Cómo escribes el texto | Tus propias palabras, envueltas en <T> | Una clave para cada mensaje, como $t('cart.title') |
| Traducciones | Traducción mediante IA, creada automáticamente | Tú o tus traductores los escribís |
| Archivos de mensajes | Ninguna | Un conjunto de mensajes por idioma |
| Nuevos idiomas | Cambiar la configuración de language | Traduce todos los mensajes al nuevo idioma |
| Cambiar de idioma | En tiempo de ejecución, con useLanguageSwitcher | En tiempo de ejecución, cambiando la configuración regional |
| Plurales y formato | Traducido como parte de la frase | Integrado, con reglas en plural y formato de fecha y número |
| Precio | Plan gratuito, luego planes mensuales según el uso | De código abierto y gratis |
En qué se diferencia el código
Con vue-i18n, tú defines los mensajes para cada idioma y haces referencia a ellos mediante la clave:
// i18n.tsimport { createI18n } from 'vue-i18n';export const i18n = createI18n({locale: 'de',messages: {en: { cart: { title: 'Your shopping cart' } },de: { cart: { title: 'Ihr Warenkorb' } }}});
<h2>{{ $t('cart.title') }}</h2>
Con Magic Translate, el texto permanece en la plantilla:
<h2><T>Your shopping cart</T></h2>
Para atributos como los marcadores de posición, usa useTranslate:
<input :placeholder="t('Search products')" />
Cuándo elegir Magic Translate
- Quieres tu aplicación Vue en muchos idiomas sin gestionar los mensajes de cada uno.
- No tienes traductores o quieres publicar las actualizaciones sin esperar a que se traduzcan.
- Tu texto cambia con frecuencia y quieres que todos los idiomas estén actualizados.
Cuándo elegir vue-i18n
- Todo el texto debe estar traducido o revisado por una persona.
- Necesitas que los motores de búsqueda vean el HTML traducido del renderizado del servidor Nuxt. Magic Translate para Vue se traduce en el navegador.
- Quieres una biblioteca gratuita y de código abierto sin servicio externo.
Pasar del vue-i18n al Magic Translate
Puedes cambiar un componente a la vez. Sustituye $t('key') por el texto en inglés de tus mensajes, envuelto en <T>, o utiliza t() de useTranslate como atributos. Ambas bibliotecas pueden funcionar una al lado de la otra durante la migración. La guía Vue muestra la configuración.
¿Estás listo para probarlo? Sigue la guía de inicio para traducir tu primer componente en cinco minutos.