Локализация с использованием спутниковой сборки возвращает язык по умолчанию

Я пытаюсь локализовать свое приложение со спутниковыми сборками. Я попытался следить за этим блогом: http://msdn.microsoft.com/en-us/library/21a15yht(v=vs.110).aspx

Я создал два файла, один файл имеет имя "Global.resx" с английской строкой, а второй файл имеет имя "Global.nl-NL.resx" с голландской струной.

После этого я создал файл.resources из голландского файла с помощью resgen. С al.exe я создал.dll под названием LocalizationLab.resources.dll, и я сохранил его в папке: /bin/debug/nl-NL.

в моем приложении я установил CurrentUICulture в nl-NL. и я вызываю строку с помощью Global.test. Смотрите ниже

Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-NL");
 Console.WriteLine(Global.Test);

Это возвращает английскую строку вместо голландской. Когда я отлаживаю и просматриваю Global и наблюдаю за ресурсами, которые использует ресурсоемщик, я вижу три набора ресурсов: "nl", "nl-NL" и "" все три из них имеют в себе английские значения строк.

Может ли кто-нибудь сказать мне, что я делаю неправильно?

Заранее спасибо.

1 ответ

В конце концов я выяснил, в чем проблема,

Проблема заключалась в том, что сгенерированный код для инициализации диспетчера ресурсов выглядел так:

ResourceManager rm = new ResourceManager("LocalizationLab.Global", typeof(Global).Assembly);

После некоторого озадачи я узнал, что это должно быть так:

ResourceManager rm = new ResourceManager("Global", typeof(Global).Assembly);

который сработает!

licensed under cc by-sa 3.0 with attribution.