OVH Cloud OVH Cloud

Application multilingue en XML

2 réponses
Avatar
Hervé HERRY
Bonjour,

Je réalise une application C# multilingue sous Pocket PC à l'aide d'un
fichier XML contenant les traductions de tous les menus dans diffrentes
langues. J'aimerais pouvoir extraire les traductions de manière ponctuelle,
mais il n'est malheureusement plus possible de faire des requêtes à base de
"xpath" avec le Compact Framework. Quelle autre solution me reste-t-il à
part développer moi-même des fonctions de recherche ?

Merci d'avance pour votre aide.
--
Hervé HERRY

2 réponses

Avatar
Ambassadeur Kosh
"xpath" avec le Compact Framework. Quelle autre solution me reste-t-il à
part développer moi-même des fonctions de recherche ?


- pleurer !
- parcourir l'arbre recursivement à la demande en predicant les noeuds
(façon sax)
- en utilisant une autre API xml (pas top)
- en passant à coup de reflector System.Xml.Xpath, et avec l'addin
disassembly, repomper l'ensemble pour "completer" le CF.

voila quelques pistes, mais des idées plus simples de substitut connus, et
reputés fiables, j'en ai pas la.
vous n'etes pas le premier à deplorer l'absence de SelectNodes sous CF.
esperons que ça changera...

Avatar
Fabrice MALAINGRE
Bonjour Hervé,

Je réalise une application C# multilingue
sous Pocket PC à l'aide d'un fichier XML contenant
les traductions de tous les menus dans diffrentes langues.
J'aimerais pouvoir extraire les traductions de manière ponctuelle,
mais il n'est malheureusement plus possible de faire des requêtes à base
de
"xpath" avec le Compact Framework. Quelle autre solution me reste-t-il à
part développer moi-même des fonctions de recherche ?


Vous pouvez essayer l'OpenNETCF qui dispose d'une classe "XPath",
avec la très convoitée méthode "SelectNodes".
Site de l'OpenNETCF : http://www.opennetcf.org/

Sinon, petite question : si vos fichiers de traductions
sont d'ores et déjà en XML, pourquoi ne pas les
convertir en ressources (au sens .net du terme) ?

Il suffit de se conformer au schéma des fichiers XML ".resx"
puis de les convertir en fichiers binaires ".ressources", et
enfin de les transformer en "satellite assemblies"
(Sachant que dans l'immense majorité des cas, Visual
effectue toutes ces opérations pour vous).

Depuis le code, l'accès aux ressources s'effectue
via une instance de la classe "ResourceManager".

C'est un mécanisme extrêmement puissant,
(gestion des textes/images/positions/tailles
et prise en charge des traductions en cascade)
et disponible en natif dans le Compact Framework.

Cordialement

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr