Aide sur application Multilingue [Résolu]

Signaler
Messages postés
34
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
24 septembre 2014
-
cs_Yanith
Messages postés
34
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
24 septembre 2014
-
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.

Bien cordialement.

2 réponses

Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
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.
Messages postés
34
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
24 septembre 2014

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");

et voila sa fonctionne. Merci