Tradução do NexoPOS
O NexoPOS pode ser traduzido registrando o código do idioma, extraindo as strings de localização disponíveis e, em seguida, editando os arquivos JSON gerados. Este guia explica todo o processo para a aplicação principal e os módulos instalados.
Antes de começar
Você precisa de acesso aos arquivos-fonte do NexoPOS e de um terminal a partir do diretório raiz da instalação. Você também deve conhecer o código do idioma que deseja usar, como it para italiano, de para alemão ou es para espanhol. Use um código de idioma ISO válido para que o nome do arquivo gerado e a opção de idioma do perfil permaneçam consistentes.
Adicionar um idioma que ainda não está listado requer uma alteração de configuração central. Se a tradução deve ficar disponível para outros usuários, faça a alteração em um fork do repositório NexoPOS e envie como uma pull request.
Registre o Idioma
Abra o arquivo config/nexopos.php e adicione o idioma ao array de languages. A chave do array é o código do idioma e o valor é o nome exibido dentro do NexoPOS.
'languages' => [
'en' => 'English',
'fr' => 'Francais',
'it' => 'Italian',
],
Para um idioma da direita para a esquerda, também adicione o código do idioma ao array rtl-languages. Por exemplo, o árabe é registrado com ar.
'rtl-languages' => [ 'ar' ],
Extrair strings de tradução principais
Execute o comando de tradução com o código de idioma que você registrou. Este exemplo extrai strings em italiano.
php artisan ns:translate --extract --lang=it
O NexoPOS cria ou atualiza o arquivo de idioma em lang/it.json. Substitua-o pelo código do idioma para o qual você está traduzindo.
O arquivo JSON
Abra o arquivo JSON gerado no editor de texto de sua preferência. Cada chave é o texto original usado pelo NexoPOS, e cada valor é o texto traduzido que será exibido aos usuários. Mantenha as chaves inalteradas e traduza apenas os valores.
{
"Dashboard": "Cruscotto",
"Products": "Prodotti"
}
Após editar, certifique-se de que o arquivo permaneça um JSON válido. Uma aspas ausente, uma vírgula ausente ou uma chave de fechamento ausente pode impedir o carregamento do arquivo de idioma.
Um Módulo
Os módulos têm seus próprios arquivos de localização. Primeiro, identifique o namespace do módulo pelo nome da pasta dentro do diretório modules. Por exemplo, um módulo instalado em modules/NsGastro usa NsGastro como seu namespace.
php artisan ns:translate NsGastro --extract --lang=it
Isso cria ou atualiza o arquivo de idioma do módulo em modules/NsGastro/Lang/it.json. Abra esse arquivo e traduza os valores do mesmo modo que você traduziu o arquivo de idioma principal.
Tornar os arquivos de idioma disponíveis
Se as traduções forem salvas, mas o navegador não conseguir carregá-las, atualize os links públicos de idiomas. Para os arquivos principais de idioma, execute:
php artisan ns:translate --symlink --force
Para um módulo específico, atualize o link público do módulo com o namespace do módulo:
php artisan modules:symlink NsGastro
Você também pode atualizar os links públicos de todos os módulos instalados executando o comando sem um namespace.
php artisan modules:symlink
Selecione o idioma no perfil
Depois que os arquivos de tradução estiverem prontos, faça login no NexoPOS e abra o perfil do usuário no cabeçalho do painel. $
Selecione o idioma traduzido, salve o perfil e, em seguida, recarregue o painel.
Se a tradução não se aplicar
Se o NexoPOS ainda exibir o texto original, verifique primeiro as causas mais comuns.
- O idioma não foi selecionado no perfil do usuário.
- O código de idioma em config/nexopos.php não corresponde ao nome do arquivo JSON gerado.
- O arquivo JSON contém um erro de sintaxe.
- O navegador não consegue acessar os arquivos de idioma em public/lang nem o diretório do módulo public.
- O namespace do módulo passado para o php artisan ns:translate não é o namespace correto do módulo.
Resumo
- Registre o idioma em config/nexopos.php.
- Extraia strings principais com php artisan ns:translate --extract --lang={code}.
- Traduza o arquivo JSON gerado em lang.
- Extraia strings de módulos com php artisan ns:translate {ModuleNamespace} --extract --lang={code}.
- Atualize os links de idioma públicos e, em seguida, selecione o idioma no perfil do usuário.