traduitjdm est un programme, en Python, d’aide à la traduction des plugins de Jeedom
Le programme peut être téléchargé depuis la page release_note
Les textes dans les interfaces Jeedom peuvent être affichés en diverses langues selon le contexte. Les textes devant être affichés en différentes langues doivent être marqués sous la forme {{texte à afficher}}
ou __("texte à afficher".__FILE__)
. Les traductions de ces textes sont configurées dans des fichiers placés dans le répertoire core/i18n
du plugin.
Le but de traduitjdm est de chercher les occurrences {{texte à afficher}}
et __("texte à afficher",__FILE__)
dans le code d’un plugin et de créer les fichiers de traductions dans core/i18n
.
usage: traduitjdm [-h] [-V] [-L] [-v | --noverbose] [-d] [-C | --nocolor]
[-b | --nobackup] [-p | --nopurge] [-t | --notab]
[-c ConfigFile | --noconfig] [-j JeedomDir | --noJeedomDir]
[-l langues[,langues ...]] [-x EXCLUDE | --noexclude]
[-f source1[,source2 ...]]
[plugin]
Génération de fichiers de traduction pour les plugins Jeedom
infos:
-h, --help Affiche cette aide et quitte
-V, --version Affiche la version du programme et quitte
-L, --langues-connues
Affiche la liste des langues reconnues et quitte
Traduction:
-v, --verbose Un peu de babillage
--noverbose Pas de babillage
-d, --debug Un peu plus de babillage
-C, --color Active l'affichage en couleur
--nocolor Désactive l'affichage en couleur
-b, --backup Les fichiers existants sont renommés avec l'extension
".bck"
--nobackup Pas de sauvegarde des fichiers existants
-p, --purge Retire les textes qui ne sont pas/plus trouvés dans le
code
--nopurge Pas de purge des traductions existantes
-t, --tab Utilisation de tabulations pour les indentations
(sinon, les indentations sont de 4 espaces)
--notab Les indentations sont de 4 espaces)
-c ConfigFile, --config ConfigFile
Fichier de configuration
('/home/chris/traduitjdm/etc/traduitjdm.cfg' par
défaut)
--noconfig Ignore le fichier de config
-j JeedomDir, --JeeDir JeedomDir
Répertoire d'installation de Jeedom
--noJeedomDir Force l'utilisation de '/var/www/html'
-l langues[,langues ...], --langues langues[,langues ...]
Liste des langues cibles
-x EXCLUDE, --exclude EXCLUDE
Fichiers ou répertoires à exclure des traductions
--noexclude Pas d'exclusion de fichiers et répertoires
-f source1[,source2 ...], --force source1[,source2 ...]
Ordre de priorité des sources de traduction. Les
sources sont "precedent"s et "core"
plugin Le plugin à traduire
-l
ou --langues
de la ligne de commande ou en mettant la liste des langues dans le paramètre langues
du fichier de configuration.-l
ou --langues
est utilisée.-v
ou --verbose
dans la ligne de commandes ou en mettant le paramètre verbose
à True
dans le fichier de configuration. L’activation du mode verbose dans le fichier de configuration peut être désactivée lors d’une exécution avec l’option --noverbose
.debug
(option -d
) force le mode verbose
. Le mode debug
est essentiellement prévu pour le développement du script, les informations affichées lorsque ce mode est activé peuvent changer selon les besoins du développement.--nocolor
de la ligne de commande ou en mettant le paramètre color
à False
dans le fichier de configuration. Si la colorisation est désactivée dans le fichier de configuration, il est possible de la réactiver lors d’une exécution avec l’option -C
ou --color
.-b
ou --backup
dans la ligne de commande ou en mettant le paramètre backup
à True
dans le fichier de configuration. Si la sauvegarde est activée dans le fichier de configuration, il est possible de la désactiver lors d’une exécution avec l’option --nobackup
.<langue>.json.bck.5
sont supprimés<langue>.json.bck.N
sont renommés <langue>.json.bck.<N+1>
(N valant de 1 à 4)<langue>.json.bck
sont renommés <langue>.json.bck.1
<langue>.json
sont renommés <langue>.json.bck
-p
ou --purge
dans la ligne de commandes ou en mettant le paramètre purge
à True
dans le fichier de configuration. Si la purge est activée dans le fichier de configuration, il est possible de la désactiver lors d’une exécution avec l’option --nopurge
.
:-t
ou --tab
dans la ligne de commandes ou en mettant le paramètre tab
à True
dans le fichier de configuration. Si l’utilisation de tabulation est activée dans le fichier de configuration, il est possible de la désactiver lors d’une exécution avec l’option --notab
./var/www/html
et le plugin à traduire doit se trouver dans le répertoire plugins
qui est dans le répertoire de base de l’installation Jeedom.-j
ou --JeeDir
dans la ligne de commande ou en définissant le paramètre JeedomDir
dans le fichier de configuration.-x
ou --exclude
de la ligne de commandes et le paramètre exclude
dans le fichier de configuration permettent d’indiquer une liste de fichiers ou répertoires à exclure de la recherche de textes à traduire. Il est possible de désactiver des exclusions définies dans le fichier de configuration en utilisant l’option --noexclude
.Le fichier de configuration par défaut est le fichier ../etc/tradtuitjdm.cfg
(relatif au répertoire où se trouve traduitjdm.
Si traduitjdm se trouve dans
/home/jeedom/traduitjdm/bin
, le fichier de config par défaut sera/home/jeedom/traduitjdm/etc/traduitjdm.conf
traduitjdm retourne un message d’erreur et termine son exécution s’il ne trouve pas le fichier de configuration. dans ce cas, on peut:
- utiliser l’option
--noconfig
- créer un fichier de configuration vide
- utiliser l’option
-c <configfile>
pour indiquer le nom d’un fichier de configuration autre que le fichier par défaut.
le caractère #
marque le début d’un commentaire qui se termine à la fin de la ligne.
Le fichier est subdivisé en sections (Actuellement seule la section global
est reconnue). Chaque section commence par une ligne contenant le nom de la section entre des crochets [global]
.
Dans chaques section, on a des lignes de définition de paramètre sous la forme parametre = valeur
. Voir le contenu du fichier etc/traduitjdm.cfg.exemple
pour la liste des paramètres reconnus et la syntaxe de valeurs correspondantes.
traduitjdm commence par constuire une liste des textes à traduire en cherchant les textes dans le code du plugin puis en y ajoutant les textes trouvés lors d’exécutions précédentes qui se trouvent dans le fichier de traduction existant. Les textes resultants d’exécution précédentes peuvent être exclus s’ils ne se trouvent plus dans le code du plugin en utilisant l’option --purge
.
traduitjdm va chercher des traductions dans plusieurs sources pour chaque texte à traduire:
Les textes traduits par la fonction __('texte',__FILE__)
dans les scripts php doivent être encadrés par des quotes ou double quotes ('
ou "
). De plus, ils ne doivent pas contenir le caractère d’encadrement.
Pour chaque texte à traduire, une traduction sera reprise de l’une des sources de traduction dans l’ordre de priorité suivant:
__AT__
est considéré comme non traduit.__AT__
.__AT__
L’option -f core
force l’usage de la traduction trouvée dans le core en priorité.
Les fichiers de traduction se trouvent dans le répertoire core/i18n
du plugin. Ces fichiers doivent être édités pour y traduire les textes pour lesquels aucune traduction n’a été trouvée par traduitjdm. Les textes à traduire peuvent être facilement trouvés en cherchant __AT__
. Ces traductions seront conservées lors des prochaines exécution de traduitjdm.
Ne modifiez pas les lignes similaires à
"traduitjdm": {
"timestamp": "2022-12-12 00:30:10",
"version": "1.1.0"
}
Ce sont ces informations qui permettent à traduitjdm de reconnaître un fichiers qui a été généré par traduitjdm version 1.1 ou supérieure.