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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ресурсы приложения 
:(
    Опции темы
makaka
Дата 19.7.2011, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

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



Всем привет

Встала необходимость забить в приложение много строк для пользовательского интерфейса. Делаю приложение Silverlight - там есть возможность вставлять файлы .resx
В файлах есть возможность вставлять пары ключ-значение
Для извлечения значения нужно в коде прописывать ключ... При этом сам ключ нельзя использовать в качестве значения...

к сожалению это не всегда подходит. У меня есть необходимость вбить названия валют и их кодировки:
"rur" - "российский рубль"
"eur" - "евро"
и т.д.
Всего около 100шт.
Сохранять эти значения и ключи в .resx, потом писать в коде сто строк на каждую валюту в отдельности - маразм...
Очевидно, что необходимо хранить эти строки так, чтобы можно было пройтись по ним foreach, вытаскивая две строки - ключ(rur) и значение(российский рубль)


Как цивилизованно сохранять пары типа ("rur" - "российский рубль"), чтобы можно было использовать в пользовательском интерфейсе и ключ, и значение?
PM MAIL   Вверх
AlexNagits
Дата 19.7.2011, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.7.2011

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



Dictionary<string, string> не подойдет?
Сохранение: сериализация
Можно "пройтись по ним foreach"


Это сообщение отредактировал(а) AlexNagits - 19.7.2011, 23:22
PM MAIL   Вверх
makaka
Дата 20.7.2011, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

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



Цитата(AlexNagits @  19.7.2011,  22:36 Найти цитируемый пост)
Dictionary<string, string> не подойдет?
Сохранение: сериализация
Можно "пройтись по ним foreach"


Проблема в том, что это будет забито непосредственно в код.
Правильнее иметь отдельный файл (типа предоставляемого по умолчанию .resx, который построен на XML разметке и открывается многими редакторами), в котором будут эти значения.
Так их проще редактировать, они отделены от логики. На перевод в конце концов можно отдать спокойно.

Еще нужно иметь инфраструктуру, которая будет эти данные считывать. Для .resx VS2010 сама генерирует весь код. Вручную делать не хочется.

Но к сожалению если в .resx забить пару ("rur" - "российский рубль"), то будет сгенерирован метод аля  ApplicationStrings.get_rur(), который будет возвращать "российский рубль".
А мне нужно использовать в интерфейсе не только "российский рубль", но и "rur"...

PM MAIL   Вверх
gambit
Дата 20.7.2011, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



Сериализуй в xml.
Да да, дикшенери на прямую не сериализуется в xml, но пути есть всегда, буквально на днях видел дикшенери который сериализовался
PM MAIL ICQ Skype   Вверх
jonie
Дата 20.7.2011, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Цитата(makaka @  20.7.2011,  12:33 Найти цитируемый пост)

Но к сожалению если в .resx забить пару ("rur" - "российский рубль"), то будет сгенерирован метод аля  ApplicationStrings.get_rur(), который будет возвращать "российский рубль".

ну потому что это две разные строки одна длинное название, второе - короткое.

Локализация методами сателиных сборок достаточно удобна.... чем она вам не нравится? Если вы взглянете внутрь ApplicationStrings.get_rur() то там просто вызывается ResourceManager с передачей ему строки-ключа.... Ну и "пройтись" тоже можно как по коллекции - посмотрите его методы


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
eugene123
Дата 2.8.2011, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.8.2011

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



Цитата(makaka @  20.7.2011,  11:33 Найти цитируемый пост)
Вручную делать не хочется

как правило, то что сделано вручную более подходит для конкретной задачи

создай простой xml файл со своими данными и читай его при старте в словарь
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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