Silverlight неправильно читает мой файл ресурсов - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть файл .resx, созданный для английского (MyResourcesFile1.resx) и французского (MyResourcesFile1.fr.resx).У обоих есть Access Modifier для Public, и они оба Embedded Resource.

В app.xaml.cs четное Application_Startup содержит:

  var languageInfo = new CultureInfo("fr");
  Thread.CurrentThread.CurrentCulture = languageInfo;
  Thread.CurrentThread.CurrentUICulture = languageInfo;

Во многих местах в коде SilverlightЯ использую сгенерированное свойство, предоставляемое Visual Studio.

 string myString = MyResourcesFile1.MyPropertyValue;

К сожалению, оно берет только локализованную строку из английского файла.Почему?

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Наконец-то я работаю, прочитав много документации Microsoft.

В Visual Studio 2010 (пока) нет меню для добавления поддерживаемого языка для проекта Silverlight.Чтобы ваше приложение работало со всеми файлами ресурсов, его необходимо изменить.Первый шаг - открыть решение проекта с помощью NotePad.Как только это будет сделано, выполните поиск SupportedCultures .Внутри скобки вы можете добавить нужный язык (не нужно добавлять язык по умолчанию).Итак, мой теперь выглядит так:

<SupportedCultures>fr
</SupportedCultures>

Перезагрузите проект и скомпилируйте.Если вы устанавливаете поток, как я делал при запуске приложения, ресурс правильно загружается и отображается.Я думаю, что это не может быть динамически изменено, но это не было необходимо для меня.

0 голосов
/ 13 декабря 2011

В App.xaml.cs установлен один из параметров культуры настроек, в нем можно установить тег объекта.

<object ...>
     ...
     <param name="culture" value="de-de" />
     <param name="uiculture" value="de-de" />
    ...
</object>
...