Конечный пользователь хочет динамически добавлять языки на свой сайт - PullRequest
5 голосов
/ 03 апреля 2011

Мы должны создать сайт регистрации событий для нашего клиента в ASP.NET с использованием C #.Одним из требований является то, что клиент хочет добавить новые иностранные языки на свой сайт самостоятельно, используя файл en excel.Я знаю, как сделать сайт многоязычным в Visual Studio, но я не знаю, как создать файл ресурсов на основе файла Excel в коде.Я также заметил, что VS генерирует второй файл с именем Resource.en.designer.cs, но я не могу найти никакой документации о том, как сгенерировать этот файл.

Кстати, конечный пользователь не связан с ИТ.Хотя он знает, как обходиться с Excel (очевидно).

Любая помощь приветствуется!

Йоери

РЕДАКТИРОВАТЬ:! Роберт Леви Обеспечил хороший метод!КАК:

ШАГ 1: Чтение файла Excel (использование OleDBAdapter было для меня лучшим способом, так как вы можете использовать заголовки столбцов и т. Д.) Записать язык в текстовый файл в следующем формате: KEY = TRANSLATION noпробелы или что-то еще

ШАГ 2: Найдите ResGen.exe на вашем компьютере (он поставляется с Visual Studio, поэтому посмотрите где-нибудь как c: \ program files \ visual studio \ sdk ... однако я нашел его @ C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ ResGen.exe)

ШАГ 3:

Запустите exe-файл с помощью Process.Start ("resgen.exe)") подсказка: используйте ProcesStartInfo для простых настроек аргументов и настроек

(ШАГ 4:)

Переместите файл в нужное место (я считаю, что App_GlobalResources отлично работает)

ШАГ 5:

Установите текущую культуру пользователя на желаемую культуру!

Ответы [ 3 ]

2 голосов
/ 04 апреля 2011

ResGen.exe скомпилирует файлы ресурсов для вас. Вы можете либо заставить его доставлять текстовые файлы в формате, используемом этим инструментом, либо написать свой собственный код, который извлекается из Excel для создания текстовых файлов. Затем просто запустите этот EXE и разверните вновь созданную библиотеку ресурсов. Я предполагаю, что вы уже знаете, как читать вещи из файлов ресурсов и использовать подходящую, основываясь на предпочтениях пользователя.

http://msdn.microsoft.com/en-us/library/ccec7sz1.aspx

1 голос
/ 04 апреля 2011

Вероятно, это то место, где вы хотели бы использовать ресурсы из базы данных, а не простые файлы resx.Было бы проще просто заполнить таблицы базы данных данными Excel, чем преобразовать их в стандартный файл resx (это может стать проблемой в будущем, если MS решит изменить формат файла).

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

0 голосов
/ 04 апреля 2011

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

В противном случае отправка вам по электронной почте файла Excel и создание файла ресурса вручную может оказаться самым дешевым решением ....

...