Traduzione di NexoPOS
NexoPOS può essere tradotto registrando il codice della lingua, estraendo le stringhe di localizzazione disponibili e quindi modificando i file JSON generati. Questa guida spiega l’intero processo per l’applicazione principale e i moduli installati.
Prima di iniziare
Per accedere ai file sorgente di NexoPOS e a un terminale dalla directory principale dell’installazione. Dovresti anche conoscere il codice lingua che vuoi utilizzare, ad esempio it per l’italiano, de per il tedesco o es per lo spagnolo. Usa un codice lingua ISO valido in modo che il nome del file generato e l’opzione della lingua del profilo restino coerenti.
L’aggiunta di una lingua non già presente richiede una modifica della configurazione di base. Se la traduzione deve essere disponibile anche per altri utenti, apporta la modifica in un fork del repository NexoPOS e inviala come pull request.
Registrati nella lingua
Apri config/nexopos.php e aggiungi la lingua all’array delle lingue. La chiave dell’array è il codice della lingua e il valore è il nome visualizzato in NexoPOS.
'languages' => [
'en' => 'English',
'fr' => 'Francais',
'it' => 'Italian',
],
Per una lingua da destra a sinistra, aggiungi anche il codice della lingua all’array rtl-languages. Ad esempio, l’arabo è registrato con ar.
'rtl-languages' => [ 'ar' ],
Estrai le stringhe di traduzione principali
Esegui il comando di traduzione con il codice lingua che hai registrato. Questo esempio estrae le stringhe in italiano.
php artisan ns:translate --extract --lang=it
NexoPOS crea o aggiorna il file di lingua in lang/it.json. Sostituiscilo con il codice della lingua che stai traducendo.
Il file JSON
Apri il file JSON generato nel tuo editor di testo preferito. Ogni chiave è il testo originale utilizzato da NexoPOS e ogni valore è il testo tradotto che verrà visualizzato agli utenti. Mantieni le chiavi invariate e traduci solo i valori.
{
"Dashboard": "Cruscotto",
"Products": "Prodotti"
}
Dopo la modifica, assicurati che il file rimanga un JSON valido. Una virgoletta mancante, una virgola mancante o una parentesi graffa di chiusura mancante possono impedire il caricamento del file della lingua.
Un modulo
I moduli hanno i propri file di localizzazione. Innanzitutto, identifica lo spazio dei nomi del modulo dal nome della cartella all’interno della directory modules. Ad esempio, un modulo installato in modules/NsGastro utilizza NsGastro come spazio dei nomi.
php artisan ns:translate NsGastro --extract --lang=it
Questo crea o aggiorna il file della lingua del modulo in modules/NsGastro/Lang/it.json. Apri quel file e traduci i valori nello stesso modo in cui hai tradotto il file della lingua principale.
Rendi disponibili i file di lingua
Se le traduzioni vengono salvate ma il browser non riesce a caricarle, aggiorna i collegamenti pubblici delle lingue. Per i file della lingua principale, esegui:
php artisan ns:translate --symlink --force
Per un modulo specifico, aggiorna il collegamento pubblico del modulo con lo spazio dei nomi del modulo:
php artisan modules:symlink NsGastro
Puoi anche aggiornare i collegamenti pubblici per tutti i moduli installati eseguendo il comando senza uno spazio dei nomi.
php artisan modules:symlink
Seleziona la lingua dal profilo
Dopo che i file di traduzione sono pronti, accedi a NexoPOS e apri il profilo utente dall’intestazione della dashboard. $
Seleziona la lingua tradotta, salva il profilo, quindi ricarica la dashboard.
Se la traduzione non si applica
Se NexoPOS visualizza ancora il testo originale, controlla prima le cause più comuni.
- La lingua non è stata selezionata nel profilo utente.
- Il codice lingua in config/nexopos.php non corrisponde al nome del file JSON generato.
- Il file JSON contiene un errore di sintassi.
- Il browser non può accedere ai file di lingua da public/lang o dalla directory del modulo public.
- Lo spazio dei nomi del modulo passato a php artisan ns:translate non è lo spazio dei nomi del modulo corretto.
Riepilogo
- Registra la lingua in config/nexopos.php.
- Estrai le stringhe principali con php artisan ns:translate --extract --lang={code}.
- Traduci il file JSON generato in lang.
- Estrai le stringhe del modulo con php artisan ns:translate {ModuleNamespace} --extract --lang={code}.
- Aggiorna i collegamenti pubblici alle lingue, quindi seleziona la lingua dal profilo utente.