Je commence à utiliser le super outils de traduction via GitHub et Deepl créé par @Mips.
J’ai un repository avec les traductions de tous mes plugins que je suis en train de traduire progressivement.
J’ai juste un petit soucis avec le nom de l’un de mes plugin, « Défauts », qui est traduit. Se ne serait pas un problème s’il était possible de définir des noms de plugins traduit dans le fichier « info,json » du plugin, mais ce n’est pas le cas. Les documentations traduites indiquent donc un nom de plugin qui ne correspond pas à ce qui est vu dans Jeedom ni dans le market.
Je n’en suis pas encore là mais je risque d’avoir un problème similaire avec des « logicalId » de commandes dans un plugin dont je n’ai pas encore traduit la doc.
A mon avis, une solution qui me permettrait d’indiquer que le mot « Défauts » ne doit pas être traduit ne serait pas satisfaisante car ce mot ne serait jamais traduit dans aucune de mes documentations.
Je préférerai pouvoir définir des variables dans le « Front Matter » puis les utiliser sous la forme {{page.ma_variable}} dans la doc.
Il faudrait juste définir une syntaxe (préfix nt_ par exemple) de nom pour les variables dont la définition ne doit pas être traduite dans le « Front Matter ».
Il serait alors possible d’voir un FrontMatter du genre
---
layout : default
title : Plugin pour la détection de défauts
nt_plugin : Défauts
lang : fr_FR
---
@mips, penses-tu que quelques chose de ce genre peut-être ajouter à ton outils?
De manière générale je suis plutôt contre coder en dur une logique arbitraire par convention, je ne le fais qu’en dernier recours
ce que tu m’expliques ici est curieux car c’est sensé être géré, je vais ajouter ca dans la documentation, ca manque cruellement; le principe est le suivant pour le frontmatter:
la valeur sera traduite (api deepl sera appelée) à condition qu’il y ait au moins un caractère alphabétique si:
soit la clé est l’une des suivantes {"title", "description", "summary", "excerpt", "subtitle", "headline", "lang"} (c’est une whitelist, à noter que lang n’est jamais envoyer à deepl, l’outil remplace par la langue cible tout seul)
soit la valeur est composée de plusieurs mots séparés par un espace (donc à priori c’est une phrase: Valeur à traduire
soit la valeur est entre guillemets ou apostrophe: "valeur" ou 'valeur' => ca permet de forcer une traduction même sur un mot
j’utilise des variables dans mes frontmatter et je n’ai pas de soucis, elles ne sont pas traduites.
donc si tu as ce frontmatter:
---
layout : default
title : Plugin pour la détection de défauts
plugin : Défauts
lang : fr_FR
---
sera traduit en:
---
layout : default
title : <traduction de « Plugin pour la détection de défauts »>
plugin : Défauts
lang : es_ES
---
j’avais déjà un unittest qui validait avec la clé pluginId et je viens d’ajouter plugin : Défauts pour démontrer que ca marche avec n’importe quoi: