![]() |
Cherche Aide pour un petit Script - Version imprimable +- Forum KNX francophone / English KNX forum (https://www.knx-fr.com) +-- Forum : Français (https://www.knx-fr.com/forumdisplay.php?fid=3) +--- Forum : Logiciels libres (linknx, knxweb, pKNyX,...) (https://www.knx-fr.com/forumdisplay.php?fid=10) +--- Sujet : Cherche Aide pour un petit Script (/showthread.php?tid=8582) |
Cherche Aide pour un petit Script - filou59 - 12/09/2024 Hello Comme j'ai commencé a l'expliqué ici je suis en train de traduire des produits du projet OpenKNX fait par des allemand. On a donc 2 type de chose a traduire, un fichier XML, puis des fichiers texte qui contiennent l'aide interactive dans ETS. Dans le fichier XML on par exemple ceci : <Enumeration Text="Präsenzmelder" Value="2" Id="M-00FA_A-A012-32-0000_PT-ModuleSelector_EN-2" /> <ParameterSeparator Id="M-00FA_A-A012-32-0000_PS-212" Text="In der gesamten Applikation wird vom Präsenzmelder gesprochen. Ob sich die Applikation als Präsenz- oder als Bewegungsmelder verhält, wird von der verwendeten Hardware (Präsenz-Sensor) bestimmt." />[/code] Pour le moment j'ai fais du Recherche et Remplace dans Notepad++ pour valider le concept et pour voir si ca fonctionne ensuite dans ETS, comme je ne regénère pas une nouvelle version d'application il faut ruser un peu, mais bon ca marche et le problème est pas là. Je souhaiterais automatiser la traduction, faire une petite application ou un script qui fasse le boulot : L'idée serait de rechercher toute les occurence d'une chaine de caractère avec les guillemets et de la remplacer par une autre Le script devrait parcourir un fichier CSV qui contiendrait le dico de conversion : Exemple : Code : original,change to Pourquoi je précise avec les guillemets, car un même mot peu etre utilisé dans plusieurs context, seul ou dans une phrase ou dans un groupe de mot : Exemple ici : "In der gesamten Applikation wird vom Präsenzmelder gesprochen. Ob sich die Applikation als Präsenz- oder als Bewegungsmelder verhält, wird von der verwendeten Hardware (Präsenz-Sensor) bestimmt." si on remplace d'abord Präsenzmelder et que l'on recherche ensuite l'occurence de la phrase complete elle ne sera plus trouvé et on ne pourra pas la traduire par ca : "Dans toute l'application, on parle de détecteur de présence. C'est le matériel utilisé (capteur de présence) qui détermine si l'application se comporte comme un détecteur de présence ou comme un détecteur de mouvement" J'ai trouvé un script python qui fonctionne mais sans les guillemets, je pense pas que ce soit bien compliqué pour qq maitrisant la prog, donc si qq a une solution, ce serait sympa Code : import lxml.html # check https://pypi.org/project/lxml/ RE: Cherche Aide pour un petit Script - cyr - 20/12/2024 Bonjour à tous, Pas 100% sûr que ça résolve tout sans avoir de fichier à tester, mais un problème est que le lecteur de csv choisi est "trop" malin : vu que les guillemets sont utilisés en python pour définir les chaînes de caractère, il interprète la chaîne de caractère "Ja" écrite dans le fichier comme la chaîne de caractères Ja (sans les guillemets). Pour éviter cette conversion automatique, il faut changer les options de l'objet 'reader': Code : csv_reader = reader(convertions,quotechar=None) Je ne sais en revanche pas comment ça se comportera dans la suite du script. A disposition au besoin, RE: Cherche Aide pour un petit Script - babychou - 21/12/2024 copilot ou gemini ou chatgpt peut te faire ça facilement non ? RE: Cherche Aide pour un petit Script - RomanF - 12/03/2025 c'est vrai Babychou. Je suis allé sur chatgpt et voile ce qu'il a pondu. Va savoir si xa peut l'aider Voici un script Python amélioré qui prend en charge la traduction en respectant les guillemets et l'ordre des remplacements pour éviter les conflits de traduction. Il parcourt un fichier XML et remplace les valeurs selon un dictionnaire de traduction fourni dans un fichier CSV. Fonctionnalités du script :
Script Python : Code : import xml.etree.ElementTree as ET Explication :
Exemple d'utilisation : Si Code : convertions.csv Code : original,change to Code : input.xml Code : <Enumeration Text="Präsenzmelder" Value="2" /> Code : translated.xml Code : <Enumeration Text="Détecteur de présence" Value="2" /> ? Améliorations possibles :
RE: Cherche Aide pour un petit Script - XeNo - 12/03/2025 Citation :Si tu veux des améliorations ou des ajustements, dis-moi ! ? Heu.. Dis le à ChatGPT plutôt non ![]() |