Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Локализация ресурсов 
V
    Опции темы
Idsa
Дата 8.8.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



В проекте есть ресурсы Resources.ru-RU.resx. При билде Visual Studio генерирует для локализованного ресурса сателлитную сборку. Есть такой код:
Код

 ResourceManager resourceManager = new ResourceManager("TestProject3.Recources", Assembly.GetExecutingAssembly());
      string messageBoxCaption = resourceManager.GetString("MessageBoxCaption");

Культура - ru-RU.
Вылетает Exception: не найден ресурс.
Подскажите, что делаю неправильно?


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Partizan
Дата 8.8.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Код

ResourceManager resourceManager = new ResourceManager("TestProject3.Resources", Assembly.GetExecutingAssembly());
      string messageBoxCaption = resourceManager.GetString("MessageBoxCaption");


Resources пишется через "s"

Это сообщение отредактировал(а) Partizan - 8.8.2008, 13:42


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Idsa
Дата 8.8.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Partizan, это я опечатался, когда код ручками набирал.
В проекте Resources написано правильно и в имени файла-ресурса, и при обращении к ним:
user posted image



--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Partizan
Дата 8.8.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



ммм...а если попробовать без указания Namespace?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Idsa
Дата 8.8.2008, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(Partizan @  8.8.2008,  18:19 Найти цитируемый пост)
а если попробовать без указания Namespace? 

Неа, не работает.
Да и во всех примерах указывается namespace.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Partizan
Дата 8.8.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Idsa, в msdn не указывается =) ну это так) пальцем в небо было с маааааленькой надеждой, что заработает)


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Idsa
Дата 8.8.2008, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(Partizan @  8.8.2008,  18:27 Найти цитируемый пост)
Idsa, в msdn не указывается

Ага, тоже видел эту статью. Ох уж этот MSDN... smile Так точно не работает: проверял на нелокализованной сборке.

Это сообщение отредактировал(а) Idsa - 8.8.2008, 14:43


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Partizan
Дата 8.8.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



кстати говоря...в msdn написано, что имя у ресурсных файлов должно заканчиваться на *.resources...а на скрине там resx

Цитата

Given a type such as MyCompany.MyProduct.MyType, the ResourceManager will look for a .resources file (in the main assembly and satellite assemblies) named "MyCompany.MyProduct.MyType.[culture name.]resources" in the assembly that defines MyType.


Добавлено через 3 минуты и 16 секунд
а...прошу прощения...*.resources генерится утилитой resgen

Добавлено через 6 минут и 22 секунды
возможно это поможет:

http://www.devnewsgroups.net/group/microso...topic55934.aspx
http://bytes.com/forum/thread225534.html


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Idsa
Дата 8.8.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(Partizan @  8.8.2008,  18:47 Найти цитируемый пост)
возможно это поможет:

http://www.devnewsgroups.net/group/microso...topic55934.aspx
http://bytes.com/forum/thread225534.html 

В этих топиках люди забывали добавить namespace при ручном создании сателлитной сборки. А у меня-то сателлитные сборки создаются автоматически Visual Studio.
Попробую, наверное, сделать сателлитные сборки ручками.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Idsa
Дата 8.8.2008, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Ошибка была в том, что в одном из ресурсных файлов я опечатался, и поэтому запрашивал данные по несуществующему ключу. Текст Exception'а:
Цитата

Не удалось найти ресурсы, соответствующие указанной культуре или нейтральной культуре. Проверьте правильность внедрения или связывания "TestProject3.MessageBoxResources.resources" со сборкой "TestProject3" во время компиляции, или убедитесь, что все необходимые сопутствующие сборки полностью подписаны и могут быть загружены.

наводит на любые мысли, кроме правильной. Да еще и локализация эта (цензура).
Ошибку обнаружил случайно, когда запустил программу с другой культурой (и, соответственно, с другой локализационной сборкой, в которой опечатки не было), - и все заработало.

В очередной раз убеждаюсь, что в противостоянии "Visual Stiduo тупит" vs. "накосячил программист" второй вариант гораздо более вероятный smile


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Partizan
Дата 8.8.2008, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Idsa, а первый вариант от второго отличить очень просто)))

первый происходит в design-time
второй в run-time =)


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Idsa
Дата 8.8.2008, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(Partizan @  9.8.2008,  00:37 Найти цитируемый пост)
Idsa, а первый вариант от второго отличить очень просто)))

первый происходит в design-time
второй в run-time =) 

Не соглашусь smile
Например, генерация сателлитных сборок из локализованных ресурсов производится студией во время билда при помощи утилит ResGen и AL. А уж, корректно ли студия завершила эту операцию, можно проверить только в RunTime.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Partizan
Дата 8.8.2008, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Idsa, эээ ну обычно неудачное исполнение внешних утилит отражается в output window )

да, есть какая-то вероятность того, что чота гдета глюкнуло, но она достаточно мала  smile 

ладно...оффтопик пошёл =)


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.