2012-09-25 1 views
0

J'essaye de localiser un composant de transformation SSIS que j'ai écrit. Plusieurs formulaires sont utilisés pour interagir avec l'utilisateur. J'ai défini la propriété Localizable des formulaires sur true, définissez la langue sur German (Allemagne) et définissez mes invites sur les traductions en allemand.Composant SSIS ne tenant pas compte de CurrentThread.CurrentUICulture

je teste alors, mais mettre cela sous la forme de la c'tor:

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); 
Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE"); 

Mais je ne reçois que par défaut (anglais) invites. Lorsque je fais cela avec une application autonome, cela fonctionne parfaitement. Ensuite, j'ai pensé que j'essaierais une ressource de chaîne pour voir si j'arrive mieux. Je crée un VerifyLoc.resx et quelques chaînes, puis un VerifyLoc.de-DE.resx et quelques chaînes allemandes avec les mêmes noms. Je teste à nouveau:

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); 
Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE"); 
string str1 = VerifyLoc.Str1; 
string str2 = VerifyLoc.Str2; 

Pas de chance, str1 et str2 sont par défaut, pas l'allemand. Ensuite, j'essaie de forcer la chose avec ceci:

ComponentResourceManager resources = new ComponentResourceManager(typeof(VerifyLoc)); 
CultureInfo culture = new CultureInfo("de-DE"); 
string str1 = resources.GetString("Str1", culture); 
string str2 = resources.GetString("Str2", culture); 

Toujours pas bon. J'ai vérifié les propriétés du fichier de-DE.resx par rapport à celui par défaut, les deux utilisent le modificateur d'accès 'Internal'. Les deux sont marqués comme 'Embedded Resource', tous deux s'exécutant dans ResXFileCodeGenerator.

Malheureusement, je n'ai pas de version allemande de Windows, donc j'ai été incapable de faire une erreur en essayant de l'obliger à utiliser l'allemand ou un problème avec la génération des ressources elles-mêmes.

Des idées?

+0

L'assemblage de satellites allemand est-il construit et déployé correctement? (voyez-vous un fichier .resources.dll avec le nom de votre assembly dans un dossier de-DE?) – Clafou

+0

Il s'est avéré que je n'étais pas. Parce que le composant se connecte à BIDS (alias VS IDE), il cherchait dans un emplacement totalement différent pour la DLL de ressources. Process Monitor a découvert l'emplacement secret. Changez votre commentaire en réponse et je le marquerai comme la bonne réponse. Merci! –

+0

Cool, bien fait pour le découvrir en utilisant Process Monitor. Réponse ajoutée, merci! – Clafou

Répondre

1

Il semble que l'assemblage satellite allemand ne soit pas construit ou déployé à l'emplacement correct. Voyez-vous un fichier .resources.dll avec le nom de votre assembly dans un dossier de-DE?

Questions connexes