Traduction de NexoPOS
NexoPOS peut être traduit en enregistrant le code de langue, en extrayant les chaînes de localisation disponibles, puis en modifiant les fichiers JSON générés. Ce guide explique l’ensemble du processus pour l’application principale et les modules installés.
Avant de commencer
Vous devez avoir accès aux fichiers source de NexoPOS ainsi qu’à un terminal depuis le répertoire racine de l’installation. Vous devez également connaître le code de langue que vous souhaitez utiliser, par exemple it pour l’italien, de pour l’allemand ou es pour l’espagnol. Utilisez un code de langue ISO valide afin que le nom du fichier généré et l’option de langue du profil restent cohérents.
L’ajout d’une langue qui n’est pas déjà répertoriée nécessite une modification de configuration principale. Si la traduction doit être disponible pour d’autres utilisateurs, effectuez la modification dans une version fork du dépôt NexoPOS et soumettez-la sous forme de demande d’extraction (pull request).
Enregistrer la langue
Ouvrez le fichier config/nexopos.php et ajoutez la langue au tableau languages. La clé du tableau correspond au code de langue et la valeur correspond au nom affiché dans NexoPOS.
'languages' => [
'en' => 'English',
'fr' => 'Francais',
'it' => 'Italian',
],
Pour une langue s’écrivant de droite à gauche, ajoutez également le code de la langue à la liste rtl-languages. Par exemple, l’arabe est enregistré avec ar.
'rtl-languages' => [ 'ar' ],
Extraire les chaînes de traduction principales
Exécutez la commande de traduction avec le code de langue que vous avez enregistré. Cet exemple extrait des chaînes en italien.
php artisan ns:translate --extract --lang=it
NexoPOS crée ou met à jour le fichier de langue dans lang/it.json. Remplacez-le par le code de la langue que vous traduisez.
Le fichier JSON
Ouvrez le fichier JSON généré dans votre éditeur de texte préféré. Chaque clé correspond au texte original utilisé par NexoPOS, et chaque valeur correspond au texte traduit qui sera affiché aux utilisateurs. Conservez les clés inchangées et traduisez uniquement les valeurs.
{
"Dashboard": "Cruscotto",
"Products": "Prodotti"
}
Après modification, assurez-vous que le fichier reste un JSON valide. Une guillemet manquant, une virgule manquante ou une accolade fermante manquante peut empêcher le chargement du fichier de langue.
Un module
Les modules disposent de leurs propres fichiers de localisation. Tout d’abord, identifiez l’espace de noms du module à partir du nom du dossier situé dans le répertoire modules. Par exemple, un module installé dans modules/NsGastro utilise NsGastro comme espace de noms.
php artisan ns:translate NsGastro --extract --lang=it
Cela crée ou met à jour le fichier de langue du module dans modules/NsGastro/Lang/it.json. Ouvrez ce fichier et traduisez les valeurs de la même manière que vous avez traduit le fichier de langue principal.
Rendre les fichiers de langue disponibles
Si les traductions sont enregistrées mais que le navigateur ne parvient pas à les charger, actualisez les liens de langue publics. Pour les fichiers de langue principaux, exécutez :
php artisan ns:translate --symlink --force
Pour un module spécifique, actualisez le lien public du module avec l’espace de noms du module :
php artisan modules:symlink NsGastro
Vous pouvez également actualiser les liens publics pour tous les modules installés en exécutant la commande sans espace de noms.
php artisan modules:symlink
Sélectionnez la langue dans le profil
Une fois les fichiers de traduction prêts, connectez-vous à NexoPOS et ouvrez le profil utilisateur depuis l’en-tête du tableau de bord. $
Sélectionnez la langue traduite, enregistrez le profil, puis rechargez le tableau de bord.
Si la traduction ne s’applique pas
Si NexoPOS affiche encore le texte original, vérifiez d’abord les causes les plus courantes.
- La langue n’a pas été sélectionnée dans le profil utilisateur.
- Le code de langue dans config/nexopos.php ne correspond pas au nom du fichier JSON généré.
- Le fichier JSON contient une erreur de syntaxe.
- Le navigateur ne peut pas accéder aux fichiers de langue depuis public/lang ou au répertoire public du module.
- L’espace de noms du module transmis à php artisan ns:translate n’est pas l’espace de noms du module correct.
Résumé
- Enregistrez la langue dans config/nexopos.php.
- Extraire les chaînes principales avec php artisan ns:translate --extract --lang={code}.
- Traduisez le fichier JSON généré sous lang.
- Extraire les chaînes de module avec php artisan ns:translate {ModuleNamespace} --extract --lang={code}.
- Actualisez les liens de langue publics, puis sélectionnez la langue dans le profil utilisateur.