cs_Yanith
Messages postés34Date d'inscriptionmercredi 26 octobre 2005StatutMembreDernière intervention24 septembre 2014
-
20 oct. 2012 à 13:01
cs_Yanith
Messages postés34Date d'inscriptionmercredi 26 octobre 2005StatutMembreDernière intervention24 septembre 2014
-
22 oct. 2012 à 13:42
Bonjour,
étant complètement perdu après de multiple test et de recherche, je me tourne vers vous pour demander de l'aide sur la procédure à suivre pour faire une application multilingue. j'ai suivie tout un tas de tutoriel qui ne me satisfont pas. J'ai un cahier des charges très précis qui me contraint à avoir une arborescence spécifique ... je m'explique :
les fichiers de langue disponible pour mon application doivent être dans un dossier nommer "Lang" et les fichiers
doivent se nommer "Lang.fr.dll", "Lang.en.dll", "Lang.de.dll", "Lang.es.dll".
Tous les tests que j'ai pu faire jusqu'a maintenant fond que je me retrouve avec un dossier par langue avec dans chacun un fichier dll se nommant "Application.Ressouce.Dll" .... Se qui ne me convient pas.
Avez vous une piste, solution ou conseil pour résoudre mon problème ?
Pour info : je travaile sous VS2012 sur Windows 7 pour concevoir une application WinForm.
ed73
Messages postés276Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention15 avril 20132 22 oct. 2012 à 09:30
Bonjour,
La solution la plus simple est d'aller voir ton CP et de lui expliquer que ce n'est pas possible à cause du comportement de .Net pour les applications multilingues. S'il n'est pas sensible à cet argument tu peux essayer d'utiliser un ResourceManager que tu instancies toi-même à partir de l'assembly où se trouvent tes ressources.
Un piste serait peut-être d'utiliser :
public ResourceManager (
string baseName,
Assembly assembly
)
et Assembly.Load pour charger la dll de ressources.
cs_Yanith
Messages postés34Date d'inscriptionmercredi 26 octobre 2005StatutMembreDernière intervention24 septembre 2014 22 oct. 2012 à 13:42
Il n'est pas sensible à quoi que se soit
J'ai trouvé la solution se matin qui est la même chose que toi, explication :
- Création d'un projet vide avec VS2012.
- Ajout de ressources (Resx) avec les données qui m'interresse.
- Convertion des fichier resx en fichier .resources avec : resgen NomDeFichier.resx
- Compilation des fichiers .resources en DLL avec : al /t:lib /embed:NomDeFichier.resources /culture:fr /out:NomDeFichier.dll
Dans le projet de mon application :
var assembly = Assembly.LoadFrom("NomDeFichier.dll");
var rm = new ResourceManager("resources", assembly);
label1.Text = rm.GetString("Name");