Извините, за мой английский мой первый пост. У меня странная проблема с RESX, поддерживаемая культура в Silverlight. Его приложение silverlight с 1 веб-проектом (asp.net), в котором запускается приложение silverlight, 1 главный проект (silverlight, sl.Application) и другие, которые используются в качестве модулей (silverlight) в главном проекте (экран разработчика решений: http://i.imgur.com/A4sHWRI.png?1). Sl.Application могут вызывать другие проекты и использовать ихние взгляды как часть основного обзора находится в sl.applicationРесурсы Вопрос о культуре в Silverlight 5
Я пытался добавить различные культуры, так:
добавить в мое приложение Поддерживаемые культуры EN и CS к каждый cs.proj.
<SupportedCultures>pl;en;cs;de;ru;cz;sk</SupportedCultures>
Моя нейтральная культура установлена в PL в информации о сборке в каждом проекте.
[assembly: NeutralResourcesLanguageAttribute("pl-PL")]
Создание Resx файлов для различных культур, здесь Fol PL, EN, CS: http://i.imgur.com/P6woiV2.png
При запуске приложения вы можете выбрать, какие культуры вы хотите, нажав на флажок. Сначала давайте начнем с PL - его нейтральной культуры, поэтому мне не нужно ничего менять. Использование
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
var test_en = Resources.DrivesBook.ResourceManager.GetString("AdresArrival", culture);
Я проверил, что культура устанавливается на PL и ресурса (DriveBook.resx) вернуть правильную строку в PL
Следующая: Попытаемся EN, Start приложения, выберите EN флаг - изменить культуру ан -GB.
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");
Используя тот же код, как описано выше, возвращает мне EN строку так его все еще хорошо
Лучшее начинается, когда я пытался использовать CS. же, как и выше, я выбираю CS флаг - изменение культуры в CS-CZ Использование в SL.Application
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
его возвращает меня CS-CZ культуры, поэтому я думал, что будет хорошо, когда я называю
var test_cs = Resources.DrivesBook.ResourceManager.GetString("AdresArrival", culture);
Он возвращает мне строку из CS-культуры, но все работает отлично, итак где проблема?
Когда я попробовал то же самое в других проектах (от общего или модулей папки), вот магия :)
То же, что и выше Использование в Modules.Auxiliary
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
еще хорошо, мы получили CS -CZ культура, кажется, работает хорошо, но
var test_cs = Resources.DrivesBook.ResourceManager.GetString("AdresArrival", culture);
он возвращает мне строку из PL культуры, а не из CS
Сумма: Смена культуры отлично работает, для EN все приложение получило строку EN из файлов resx, но когда я перехожу на CS, только SL.Application может разрешить * .cs.resx файл, другие проекты выглядят так, как будто они не имеют видели файлы * .cs.resx.Добавляя En и CS, я точно так же работаю для обоих, и EN работает нормально, но CS нет. существует ли там какое-либо свойство в cs.proj, которое ограничивает максимальные поддерживаемые культуры в текущем проекте, или вы знаете, что я сделал неправильно?