2011-08-11 3 views
1

Quelles sont mes options si je souhaite localiser des applications WPF. Je voudrais avoir l'option pour remplir les fichiers .resx pour les langues, et cela fonctionne. Mais j'ai besoin de la langue pendant l'exécution à partir des fichiers. Donc, ma question est: est-il possible d'obtenir .resx externe dans les applications WPF. Et changer de langue pendant l'exécution? Ou est-ce que je regarde cette question sous un mauvais angle?Fichiers .resx externes pendant l'exécution

+0

Je cherche la même fonctionnalité, vous ne trouvez jamais une solution pour cela? – faldeland

Répondre

0

Pourquoi ne pas simplement compiler vos fichiers resx avec vos ressources par défaut?

Définissez Thread.CurrentThread.CurrentUICulture à la culture désirée, puis appelez ResourceManager.GetString() pour définir vos propriétés localisées. Si vous souhaitez obtenir une autre culture, utilisez le overload. Quelque chose comme:

public static string GetStringForCurrentUICulture(string name) 
    { 
     var value = _resourceManager.GetString(name, CultureInfo.CurrentUICulture); 
     return value; 
    } 

Pour ajouter une ressource dynamique, utilisez la ResourceManager appropriée constructor, qui vous permet de spécifier la ressource et l'assemblage, il est contenu.

+0

Oui, je fais cette chose en ce moment, mais je veux savoir si c'est possible, pour obtenir ces fichiers sans construire dans l'application. C'est comme si j'avais 3 langues dans l'application et je veux ajouter une nouvelle langue à une application, j'ai besoin de construire cette application à nouveau, et l'utiliser. Mais je veux savoir est-il possible d'ajouter simplement resx (ou autre type) de fichier dans le répertoire de l'application, et joindre cette langue aux langues existantes. –

+0

Ah ... maintenant je comprends, merci :) mettra à jour la réponse. – si618

1

Vous pouvez l'application Localize WPF en utilisant la LocBaml Tool Cela aide à créer les resx et faire la cartographie de XAML

+0

Oui j'ai lu sur cet outil, mais je voudrais savoir, si je suis capable de créer des fichiers resx, il suffit de les ajouter au répertoire et de les utiliser sans construire à l'application (sans compiler) –

+0

@IgorisAzanovas Je cherche la même fonctionnalité, avez-vous déjà trouvé une solution à cela? – faldeland

+0

@faldeland En fin de compte, j'ai fait un wrapper de localisation qui utilisait la base de données et s'il ne pouvait pas y trouver il essayait d'accéder à partir des ressources. Je ne pouvais pas trouver une meilleure solution à ce moment-là. –

Questions connexes