Traduction de commandes getLanguage()

Bonjour :slight_smile:

Je voulais répondre à certains sujets concernant la traduction mais la plupart sont clos, du coup je me permets d’en rouvrir un.

Je suis actuellement en train de concevoir un plugin sonarr qui permet l’interaction de Sonarr / Radarr avec Jeedom.

J’aimerais bien proposer comme vous tous plusieurs langues pour mon plugin.
En regardant les différents sujet dernièrement postés, je me rends compte qu’il n’y a plus de traductions automatique.

Je pense avoir bien compris comment effectuer la traduction pour les pages de configs du plugin et des équipements.

Mon plugin propose des commandes dynamiques qui dépendent de l’équipement et j’aimerais proposer une traduction pour le nom des différentes commandes.

Pour faire cela de manière dynamique, j’ai vu sur la documentation PHP la classe: API Documentation
qui propose une méthode getLanguage() permettant, j’imagine, de récupérer la langue configurée dans les configs de Jeedom.

J’avoue ne pas trop savoir comment utiliser cette classe et je me demandais si certain parmi vous avaient déjà utilisé cette classe dans vos plugin ?

Merci pour la lecture et bon dev’ !

Bonjour,
il y a dans cette classe une fonction qui s’appelle __ (double underscore, ça ne s’invente pas, je ne savais même pas que c’est légal comme nom de fonction)

function __($_content, $_name, $_backslash = false) {
	return translate::sentence($_content, $_name, $_backslash);
}

et tu peux l’utiliser ainsi:: echo __('Texte à traduire!' __FILE__);
Et tu dois générer pour chaque langue un fichier json dans ton rep /i18n/en_US.json - par exemple pour l’anglais.
Sinon dans la partie template HTML & JS tu peux utiliser la notation {{entre double crochets}}

J’ai commencé la création d’un script python qui génère les fichiers de traduction. Pour la moment, il se contente de créer la structure et de proposer quelques traductions qu’il récupère du core de jeedom. Les textes pour lesquels aucune traduction n’a été trouvée dans la core sont traduit… en français :crazy_face:. A toi d’éditer le ficher pour y mettre une traduction. Ces traductions faites à la main seront conservées si tu relances le script suite à une évolution du code de ton plugin.

J’aimerai faire évoluer mon script pour qu’il puisse récupérer automatiquement des propositions de traduction sur des sites internet mais j’ai d’autres priorités pour le moment.

Tu trouveras la doc sur https://ktn001.github.io/traduitjdm/. Cette doc contient un lien vers la release notes qui contient les liens pour le téléchargement.

Merci :slight_smile:
Effectivement j’avais vu cette fonction dans plusieurs posts.
Je me demande (curieux) si il est techniquement possible de se passer de ces en_US.json de Jeedom et d’accéder directement à la langue configurée dans Jeedom pour utiliser ses propres méthodes de traductions.

Je vais essayer de voir si j’arrive à récupérer la langue dans les configs. Si je n’y arrive pas je vais tenter ce que tu m’as envoyé :slight_smile: