Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Définir une base de langue à l'aide d'Xml [ Archives / .NET ] (cfz)

samedi 21 janvier 2006 à 15:33:53 | Définir une base de langue à l'aide d'Xml

cfz

Bonjour,
Etant un ancien développeur VB6 je souhaite me remettre au gout du jour avec .Net et C# depuis quelques jours... mais ce n'est pas toujours très facile.

Mon cas d'école du jour est le suivant :
Je souhaite écrire un programme qui sera peut-être un jour traduit dans d'autres langues.

Mon idée étant de créer un fichier Xml qui donne

<xml version="1.0" encoding="utf-8">
   <
Constante>
      <ConstName>AppliName</ConstName>
      <
Francais>Application de test</Francais>
      <
Anglais>Test application</Anglais>

      <ConstName>AuteurName</ConstName>
      <
Francais>Christophe alias Cfz</Francais>
      <
Anglais>Christophe alias Cfz</Anglais>

   </
Constante>
</
xml>

Dans mon code je créé une nouvelle classe regroupant un ensemble de constantes me permettant de faire le lien entre le code source et le document Xml. Voir ci-dessous :

namespace AppliTest.Constantes{
   public class ConstLangues {
         //Définition des constantes --> lien avec le tag <ConstName> du document Xml
         public const string AppliName = "AppliName";
         public const string AuteurName = "AuteurName";

         
         //sLangue est égal à Fr ou Eng pour francais ou anglais
         public
static string GetTexte(string sConstante, string sLangue) {
               
//Chargement du document Xml lors de la première utilisation
               //On récupère le texte correspondant à la constante dans le document XML des langues
         }

         private ConstLangues() { } //Constructeur privé vide, tout est Static dans cette classe...
   
}
}

Mon idée étant de récupérer dans le document Xml le texte dans la langue qui m'interresse. Le problème c'est que je ne sais pas comment écrire la fonction GetTexte (je n'ai encore jamais travaillé avec du Xml jusqu'à aujourd'hui). J'ai bien trouvé des tutoriaux sur le net, mais à chaque fois ils se contentent de parcourir l'ensemble des noeuds jusqu'à ce qu'ils trouvent celui qui les interresse. Il y a peut-être une solution avec XPath, mais je n'ai pas bien compris.
Je voudrais donc savoir s'il y a un moyen simple et rapide (mon programme ne doit pas être gourmand en ressources système) de récupérér le texte qui m'interresse. Dois-je utiliser un DataSet ? Et si c'est le cas, comment ? Puis-je exécuter des requêtes Sql sur mon document Xml ?
Bref, j'ai plein de question sans réponse, donc si vous pouvez me renseigner ou me donner des liens où je pourrais trouver des réponses adéquates... merci d'avance.

J'ai également une seconde question : "Est-ce que la solution que j'expose ici pour gérer le multi-langage de mon application est bonne ?".


samedi 21 janvier 2006 à 17:33:28 | Re : Définir une base de langue à l'aide d'Xml

MorpionMx

Membre Club Administrateur CodeS-SourceS
Bonjour,
En .Net, tu as plus simple, avec le principe de Globalization
En quelques mots, tu as un fichier de ressource par langue, dans lequel tu stockes tes chaines localisées selon les différentes cultures. Et ensuite, a toi de permettre a l'utilisateur de choisir la Culture qu'il souhaite, ou alors l'application peut etre localisée selon la culture du windows sur lequel l'application est utilisée.

Essaie de trouver des tutoriaux sur le net, sur les sujets de Globalization / Localization.
Bonne continuation.


Mx
MVP C#
 

samedi 21 janvier 2006 à 18:51:55 | Re : Définir une base de langue à l'aide d'Xml

cfz

Réponse acceptée !
Merci pour la réponse, cela m'a en effet permit de trouver comment faire.
Pour ceux que ça interresse, j'ai modifié mon document Xml ainsi :

<xml version="1.0" encoding="utf-8">
   <
Constante Name="NomAppli">
      <
Francais>Gestionnaire de planning saisonnier</Francais>
      <
Anglais>Manager of seasonal planning</Anglais>
   </
Constante>
</xml>

Et mon code est le suivant :

public static string GetTexte(string sConstante) {
   XmlNode ConstNode;
   XmlNode TextNode;
   
   if
(XmlDoc == null)
      LoadXmlDoc();
//Chargement du document Xml lors de la première utilisation

   //On récupère le texte correspondant à la constante dans le document XML des langues
   ConstNode = XmlDoc.SelectSingleNode("//xml/Constante[@Name='" + sConstante + "']");
   TextNode=ConstNode.SelectSingleNode(
"Francais");
   return TextNode.InnerXml;
}

private static void LoadXmlDoc() {
   XmlDoc =
new XmlDocument();
   XmlDoc.Load(
ConstGeneriques.AppliFolder + "Constantes/ConstLangues.xml");
}




Cette discussion est classé dans : public, string, xml, document, langue


Répondre à ce message

Sujets en rapport avec ce message

Pb avec mon programme - help... [ par adrien78 ] Voici les sources de mon programme il bug :// project created on 09/11/2002 at 10:51// By Adrien HADJ SALAH// http://www.informatick.com// Pour me rem [ASP][C#] Validation de fichier XML [ par vonbier ] Salut,j'ai crée un Web service qui reçoit en paramètre un fichier XML. La première chose que je voudrais qu'il fasse, c'est de checker si ce fichier e XML [ par maevacmoi ] Hello !J'ai une fonction qui fait la transformation XSL en recevant un XML. La fonction ci-dessous fonctionne très bien si elle reçoit en paramètre : CreateText() [ par JCpp ] Je voudrais enregistrer une page d'un site en format XML.J'ai trouvé une source qui mémorise le contenu de la page en «string»http://www.csharpfr.com/ serialisation [ par zaka48 ] je voudrai serialiser un objet "etudiant" sous cette forme xxxxxx<DateDe tester la connexion d'un pda [ par defcoco ] voila mon probleme, je veux tester la connexion gprs de mon pda.apparemment il faut utiliser les fonction RAS mais je n'ai pas trouvé d'exemple en c# Struct??Comment faire? [ par Fildomen ] Salutj'ai tapé ce bout de code:public struct CBoot{public string Message_provenant_du_serveur = "00000";public string fmConnexion_Demande_de_connexion [c#] Sérialisation en XML [ par oberown ] Pour sérialiser en XML, il fut mettre les attributs des classes en public.Est-il possible de sérialiser en l-aissant les attributs en private ?Est-ce convertir un string en color [ par godefrw ] Bonjour, j'aurais besoin de convertir un string (lu dans un fichier xml), en color (system.drawing.color). cela me permettrait de pouvoir définir la c obtenir les attributs d'un noeud d'un document xml [ par godefrw ] Bonjour, je cherche à obtenir la valeur d'un attribut d'un noeud d'un fichier Xml. j'ai charger mon fichier dans un XmlDocument. Avec un XmlReader c'e


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.