Internacionalización (i18n)¶
MageObsidian traduce frases en la capa Vue/ESM con el mismo diccionario que el resto de la tienda —el js-translation.json nativo de Magento por locale. Escribes $t('…') en los componentes exactamente como el $t / $.mage.__ de Magento, y aplica el flujo estándar CSV → language pack.
Traducir en Componentes¶
El plugin de i18n (obsidianI18n) viene cableado en cada isla Vue automáticamente —no registras nada. En templates, usa $t:
En <script setup>, usa el composable useTranslate():
%1, %2, … son placeholders posicionales, sustituidos en orden. Un placeholder fuera de rango se deja intacto, así que una frase mal formada nunca lanza error.
Cómo Funciona¶
- PHP publica la config de runtime en la página como
window.__MAGE_OBSIDIAN_I18N__ = { locale, dictionaryUrl }(lo emite una vez el bloqueI18nRuntime). - El navegador descarga el diccionario desde
dictionaryUrl—eljs-translation.jsonnativo de Magento para el locale activo— una sola vez, compartido entre todas las apps montadas, guardado de forma reactiva para que$tse re-renderice en cuanto resuelve. - Una frase se busca en el diccionario, con fallback a la propia frase si falta; luego se interpolan los placeholders.
Como el diccionario es el propio js-translation.json de Magento, las traducciones vienen del mismo CSV / language packs que el resto de la tienda —no hay un sistema de traducción paralelo.
Recolectar Frases¶
Las llamadas $t('…') escritas en archivos .vue no son visibles para los escáneres de frases de Magento (basados en PHP), así que MageObsidian incluye un recolector:
Escanea las frases $t('…') en las fuentes .vue de cada módulo y tema compatible y las fusiona en el diccionario estándar de Magento de ese componente, i18n/<locale>.csv. Las frases nuevas se defaultean a sí mismas, así que fluyen a js-translation.json mediante el deploy nativo de contenido estático una vez traducidas.
| Opción | Descripción |
|---|---|
--locale |
Locale del CSV a escribir (por defecto en_US). |
De punta a punta¶
Notas Clave¶
$tfunciona en cualquier componente de isla de fábrica —el plugin ya lo instala el runtime de islas.- El diccionario es el
js-translation.jsonnativo de Magento; sin backend de i18n aparte. - Si el global de config no está presente (p. ej. una página sin islas), la capa degrada a passthrough —las frases se renderizan tal cual.
- Corre siempre
mage-obsidian:i18n:collecttras añadir nuevas frases$t('…')para que lleguen al CSV y, tras el deploy, al diccionario.
Próximos Pasos¶
- Islas Vue — el runtime que cablea el plugin de i18n.
- Componentes Vue — autoría de componentes.