Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1146 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Help] Internationalisation avec Visual Studio .NET

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Help] Internationalisation avec Visual Studio .NET

n°1042235
BLASTOR
Posté le 10-04-2005 à 19:15:57  profilanswer
 

Bonjour à tous,
j'aurais besoin d'un conseil. J'essaie d'internationaliser une appli (fr/en) sous .net. En cherchant un bon moment, j'ai trouvé une classe ResourceManager.
J'ai créé 2 fichiers resX : content.resX et content.fr.resX
 
J'ai repompé le code MSDN.
 
Au bout de 2 petites heures de recherche, j'ai finalement compris qu'il fallait ajouter content.resX dans les ressources managées du projet .... (bouton droit propriété).
A présent, cela marche pour l'anglais (content.resX). Pour le français, cela ne marche toujours pas. Quelque soit la culture choisie, il me prendre content.resX.
Je me suis dit qu'il fallait rajouter content.fr.resX dans les ressources managées du projet, mais visiblement, on peut en mettre qu'une (si je sépare avec des ; ou des , plus rien ne marche). Le problèpme est que le fichier content.fr.resX ne semble pas être compilé :(
 
Si quelqu'un peut m'aider, ce serait super cool, paske visual studio commence vraiment a me gaver ...

mood
Publicité
Posté le 10-04-2005 à 19:15:57  profilanswer
 

n°1042378
FlorentG
Posté le 10-04-2005 à 21:35:16  profilanswer
 

Bienvenue dans le merdier de l'internationalisation :D
 
Alors c'est tout simple. On va prendre comme nom de projet le nom "HFR.Prout". L'espace de nom du projet est le même (HFR.Prout).
Tu prends le dossier où y'a ton projet, et tu y fout une arborescence qui ressemble à ça :

Racine Projet
  Resources (dossier)
    HFR.Prout.resX
    fr (dossier)
      HFR.Prout.fr.resX


Donc un dossier nommé "Resources", avec ta ressource générale, et un dossier 'fr', avec le fichier fr dedans. Ensuite, pour le ResourceManager, tu l'instancie sous cette forme (VB.NET):

Dim Resources As New ResourceManager("HFR.Prout.HFR.Prout", MyBase.GetType.Module.Assembly)


Note que y'a 2 foix le "HFR.Prout", c'est comme ça que le compilo génère le nom de la ressource. Ensuite tu peut accéder à tes ressources, genre :

Me.LabelTitre.Text = Resources.GetString("LabelTitre" )


Aussi, pour définir la langue utilisée par ton application, faut lui balancer la bonne culture :

Dim ViveLaFrance As New Globalization.CultureInfo("fr-FR" )
Me.LabelTitre.Text = Resources.GetString("LabelTitre", ViveLaFrance)


Et si t'as pas envie d'instancier la culture, tu peux définir la culture par défaut du processus en cours, et la méthode GetString va chercher la ressource correspondante à la culture du proc je crois bien :)
 
Si t'as d'autres questions, hésite pas


Message édité par FlorentG le 10-04-2005 à 21:35:28
n°1043308
BLASTOR
Posté le 11-04-2005 à 18:13:28  profilanswer
 

OK
 
Je te remercie pour ton aide.
En fait, ca ne résoud pas tout à fait mon problème. Je programme en C++. Le code marche bien. Le problème, c'est qu'il me dit que la resource n'est pas dans l'assembly ...
 
Je ne sais pas comment lui dire de bien compiler les ressources avec le projet. Par contre, j'ai trouvé comment créer plusieurs fichier resX dans une form pour qu'il les compile. Donc je vais simplement créer une form vide dico.h
et je vais lui associé plusieurs resX dedans et ca marchera.
 
Si tu sais comment faire en C++ pour qu'il reconnaisse des resX qui ne sont pas dans une form, ca m interesse ;)
 
En tout cas, merci pour ton temps!

n°1043385
FlorentG
Posté le 11-04-2005 à 19:58:15  profilanswer
 

Chez moi il fait ça tout seul, je crois. Ou alors dans les propriétés du resX, faut spécifier "Ressource incorporée"

n°1387905
_darkalt3_
Proctopathe
Posté le 15-06-2006 à 09:23:05  profilanswer
 

je remonte ce topic en y rajoutant une question:
 
est-il possible d'externaliser les ressources, genre en xml, pour pouvoir gérer l'internationalisation sans recompilation ?

n°1389297
_Mose_
Lonesome coder
Posté le 16-06-2006 à 17:30:18  profilanswer
 

Le fichier de ressource c'est déjà de l'XML, mais je suis à peu près sûr qu'il n'existe pas de mécanisme en natif dans .Net pour pouvoir joindre ce fichier sans le compiler et préciser son langage au runtime.
 
Bref... faut se palucher le boulot à la mano.

n°1389325
_darkalt3_
Proctopathe
Posté le 16-06-2006 à 18:00:33  profilanswer
 

ben ouais, c'est de l'xml, c'est pour ça que j'y croyais à mort.  
 
Cela dit, les ressources ont l'air quoi qu'il arrive compilées, d'une manière ou d'une autre.

n°1392342
moi23372
Posté le 21-06-2006 à 17:16:56  profilanswer
 

à vous de gérer éventuellement vous même dans un fichier xml externe l'internationalisation...  
C'est pas si compliqué de mettre en place soit même un petit système d'internationalisation...

n°1392360
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-06-2006 à 17:38:21  profilanswer
 

_darkalt3_ a écrit :

ben ouais, c'est de l'xml, c'est pour ça que j'y croyais à mort.  
 
Cela dit, les ressources ont l'air quoi qu'il arrive compilées, d'une manière ou d'une autre.


oui, et heureusement ! car ça permet à .NET de précalculer la taille des controles, des forms, et tout. imagine si tes ressources étaient chargées dynamiquement : .NET n'ayant aucune idée de la taille des chaines de caractères, ça serait à toi de maintenir la taille, la position de chaque controle pour éviter que le texte ne "déborde" du controle ! tu imagines un peu le merdier que ça serait ?
 

moi23372 a écrit :


C'est pas si compliqué de mettre en place soit même un petit système d'internationalisation...


ah c'est sur que faire un GetString() dans un fichier XML, INI ou autre, c'est pas dur. adapter la taille des controles soi même en revanche.... :sarcastic:
l'internationalisation ne se borne pas qu'à la traduction de strings, y'a tout un travail de redimensionnement qui est fait derrière...


Message édité par Harkonnen le 21-06-2006 à 17:40:09

---------------
J'ai un string dans l'array (Paris Hilton)
n°1392485
_darkalt3_
Proctopathe
Posté le 21-06-2006 à 20:46:33  profilanswer
 

Certes, c'est une raison valable :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Help] Internationalisation avec Visual Studio .NET

 

Sujets relatifs
Pb dialog box et boutons...(Visual C++)Mon tableau s'agrandit avec le texte... Help
[C#.NET]logiciel GNU et acces a une base de données fichier ?CertifDotNet - testez-vous sur la technologie Microsoft .NET !
[VB.NET] Créer un fichier XMLVB.NET : Appel d'un tableau d'un autre formulaire
template iterator héritage, OK pour visual, Erreurs avec Gcc[JBuilder][WebLogic][EJB] HELP Problème pour tester mon entity bean
Probleme intégration video dans Dreamweaver /!\ HELP /!\application VB.NET
Plus de sujets relatifs à : [Help] Internationalisation avec Visual Studio .NET


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR