Gestion des langues, fichier resource (resx) et modification dynamique
Bonjour tout le monde,
Objectif :
J'ai une solution WPF en C# .NET 4.5 avec deux projets :
- Application
- Configuration
Dans mon projet Application j'utilise des fichiers resource pour la gestion de langue :
- ResTypeFigure.resx
- ResTypeFigure.fr.resx
- ResTypeFigure.en.resx
- ResTypeFigure.de.resx
J'aimerais avec mon projet Configuration modifier ces fichiers de langue, et ainsi permettre de modifier la traduction d'Application.
Problème :
Lors de la compilation de ma solution j'ai 3 fichiers qui sont crées automatiquement dans mon projet Application et Configuration:
- fr/Application.resources.dll
- en/Application.resources.dll
- de/Application.resources.dll
Dans mon projet Configuration j'arrive bien à relire mes fichiers de langue, MAIS le problème est pour les modifier.
J'arrive à modifier les fichiers .resx grâce à ResXResourceWriter, mais cela ne me sert à rien, car pour générer les fichiers resources.dll (utilisés pour l'affichage des langues) il faut recompiler (d'après ce que j'ai pu lire).
Est il possible de modifier depuis une application des fichiers resource, si oui comment ?
Merci pour votre aide.
Le grand test, problème de chemin
Je reviens vers vous, car j'ai fait le test avec des fichiers de ressource (avec l'Action de génération "Contenu").
Voici mon code (qui fonctionne) qui permet de lire ce fichier de ressource :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Dictionary<string, string> TabTraduction = new Dictionary<string, string>();
PathTraduction = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName + @"\Projet3\Resources\ResTypeFigure.resx";
if (File.Exists(PathTraduction))
{
ResXResourceReader resourceReader = new ResXResourceReader(PathTraduction);
if (resourceReader != null)
{
foreach (DictionaryEntry d in resourceReader)
{
if (d.Value == null)
TabTraduction.Add(d.Key.ToString(), "");
else
TabTraduction.Add(d.Key.ToString(), d.Value.ToString());
}
resourceReader.Close();
}
} |
J'ai un problème assez simple mais je ne trouve pas la solution 8O
Ma solution est organisation ainsi :
MaSolution :
->Projet1
->Projet2
->Projet3
Les fichiers de ressources (en tant que CONTENU) sont dans mon projet3, et mon projet1 et projet2 vont lire et écrire dans ces fichiers.
En Debug qd j'exécute mon projet1 je suis dans le dossier bin/debug donc pour accéder à mes ressources je passe par :
Code:
1 2
|
PathTraduction = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName + @"\Projet3\Resources\ResTypeFigure.resx"; |
Mais une fois mon application installé sur le pc de l'utilisateur je n'ai plus ce bin/debug et donc m'ont chemin n'est plus bon.
Avez vous une solution ?