2012-09-25 2 views
0

Я пытаюсь локализовать компонент преобразования SSIS, который я написал. Существует несколько форм, которые используются для взаимодействия с пользователем. Я установил для свойства «Localizable» значение true, установил язык на немецкий (Германия) и установил свои подсказки для немецких переводов.Компонент SSIS, не имеющий отношения к CurrentThread.CurrentUICulture

я затем проверить, но положить это в c'tor форме в:

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

Но я получаю только по умолчанию (английский) подсказкам. Когда я делаю это с помощью автономного приложения, он работает отлично.

Далее, я решил, что попробую использовать строковый ресурс, чтобы узнать, лучше ли мне. Я создаю VerifyLoc.resx и некоторые строки, а затем VerifyLoc.de-DE.resx и некоторые немецкие строки с одинаковыми именами. Я снова тестирую:

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

Не повезло, str1 и str2 по умолчанию, а не по-немецки. Затем я пытаюсь заставить эту вещь:

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

По-прежнему не очень хорошо. Я проверял свойства файла de-DE.resx по умолчанию, оба используют «Внутренний» модификатор доступа. Оба они помечены как «Встроенный ресурс», оба выполняются через ResXFileCodeGenerator.

К сожалению, у меня нет немецкой версии Windows, поэтому я не смог свести это с проблемой, пытаясь заставить ее использовать немецкий язык или проблему с самим созданием ресурсов.

Любые идеи?

+0

Правильно ли построена и развернута сборка немецкого спутника? (т. е. вы видите файл .resources.dll с именем вашей сборки внутри папки de-DE?) – Clafou

+0

Оказалось, что я не был. Поскольку компонент подключается к BIDS (иначе VS IDE), он выполняет поиск в совершенно другом месте для библиотеки ресурсов. Process Monitor обнаружил секретное местоположение. Измените свой комментарий на ответ, и я буду отмечать его как правильный ответ. Благодаря! –

+0

Прохладный, хорошо сделанный для выяснения с помощью Process Monitor. Добавлен ответ, спасибо! – Clafou

ответ

1

Похоже, что сборка немецкого спутника не будет построена или развернута в правильном месте. Вы видите файл .resources.dll с именем вашей сборки внутри папки de-DE?

Смежные вопросы