Traduciendo NexoPOS
NexoPOS se puede traducir registrando el código de idioma, extrayendo las cadenas de localización disponibles y, luego, editando los archivos JSON generados. Esta guía explica el proceso completo para la aplicación principal y los módulos instalados.
Antes de empezar
Necesitas acceso a los archivos fuente de NexoPOS y a una terminal desde el directorio raíz de la instalación. También debes conocer el código de idioma que quieres usar, como it para italiano, de para alemán o es para español. Usa un código de idioma ISO válido para que el nombre del archivo generado y la opción de idioma del perfil se mantengan consistentes.
Agregar un idioma que aún no aparece en la lista requiere un cambio de configuración a nivel de la base. Si la traducción debe estar disponible para otros usuarios, realiza el cambio en una bifurcación (fork) del repositorio de NexoPOS y envíalo como una solicitud de extracción (pull request).
Registrar el idioma
Abre config/nexopos.php y agrega el idioma al array de languages. La clave del array es el código del idioma y el valor es el nombre que se muestra dentro de NexoPOS.
'languages' => [
'en' => 'English',
'fr' => 'Francais',
'it' => 'Italian',
],
Para un idioma de derecha a izquierda, también agrega el código de idioma al array rtl-languages. Por ejemplo, el árabe se registra con ar.
'rtl-languages' => [ 'ar' ],
Extraer cadenas de traducción principales
Ejecuta el comando de traducción con el código de idioma que registraste. Este ejemplo extrae cadenas en italiano.
php artisan ns:translate --extract --lang=it
NexoPOS crea o actualiza el archivo de idioma en lang/it.json. Reemplázalo con el código del idioma que estás traduciendo.
El archivo JSON
Abra el archivo JSON generado en su editor de texto preferido. Cada clave es el texto original utilizado por NexoPOS, y cada valor es el texto traducido que se mostrará a los usuarios. Mantenga las claves sin cambios y traduzca solo los valores.
{
"Dashboard": "Cruscotto",
"Products": "Prodotti"
}
Después de editar, asegúrate de que el archivo siga siendo un JSON válido. Una comilla, una coma o una llave de cierre faltante pueden impedir que el archivo de idioma se cargue.
Un módulo
Los módulos tienen sus propios archivos de localización. Primero, identifica el espacio de nombres del módulo a partir del nombre de la carpeta dentro del directorio modules. Por ejemplo, un módulo instalado en modules/NsGastro usa NsGastro como su espacio de nombres.
php artisan ns:translate NsGastro --extract --lang=it
Esto crea o actualiza el archivo de idioma del módulo en modules/NsGastro/Lang/it.json. Abre ese archivo y traduce los valores de la misma manera en que tradujiste el archivo de idioma principal.
Hacer disponibles los archivos de idioma
Si las traducciones se guardan pero el navegador no puede cargarlas, actualiza los enlaces públicos de idiomas. Para los archivos de idioma principales, ejecuta:
php artisan ns:translate --symlink --force
Para un módulo específico, actualice el enlace público del módulo con el espacio de nombres del módulo:
php artisan modules:symlink NsGastro
También puedes actualizar los enlaces públicos de todos los módulos instalados ejecutando el comando sin un espacio de nombres.
php artisan modules:symlink
Selecciona el idioma del perfil
Después de que los archivos de traducción estén listos, inicia sesión en NexoPOS y abre el perfil de usuario desde el encabezado del panel de control. $
Selecciona el idioma traducido, guarda el perfil y, luego, vuelve a cargar el panel.
Si la traducción no se aplica
Si NexoPOS aún muestra el texto original, revisa primero las causas más comunes.
- El idioma no se seleccionó en el perfil del usuario.
- El código de idioma en config/nexopos.php no coincide con el nombre del archivo JSON generado.
- El archivo JSON contiene un error de sintaxis.
- El navegador no puede acceder a los archivos de idioma desde public/lang ni al directorio del módulo public.
- El espacio de nombres del módulo pasado a php artisan ns:translate no es el espacio de nombres del módulo correcto.
Resumen
- Registra el idioma en config/nexopos.php.
- Extrae las cadenas principales con php artisan ns:translate --extract --lang={code}.
- Traduce el archivo JSON generado en lang.
- Extrae cadenas de módulos con php artisan ns:translate {ModuleNamespace} --extract --lang={code}.
- Actualiza los enlaces públicos de idiomas y, luego, selecciona el idioma desde el perfil del usuario.