
ASP.NET MVC Урок 1-F / ASP.NET MVC Урок C
.pdf
И проверяем:
Супер!
Переключение между языками
Создадим переключалку ru/en в клиентской части. Добавляем класс LangHelper.cs

(/Helper/LangHelper.cs):
SXEOLF VWDWLF FODVV /DQJ+HOSHU
^
SXEOLF VWDWLF0YF+WPO6WULQJ/DQJ6ZLWFKHU WKLV8UO+HOSHU XUOVWULQJ1DPH 5RXWH'DWD URXWH 'DWDVWULQJODQJ
^
YDUOL7DJ%XLOGHU QHZ7DJ%XLOGHUOL
YDUD7DJ%XLOGHU QHZ7DJ%XLOGHUD
YDUURXWH9DOXH'LFWLRQDU\ QHZ5RXWH9DOXH'LFWLRQDU\ URXWH'DWD 9DOXHV
LIURXWH9DOXH'LFWLRQDU\ &RQWDLQV.H\ODQJ
^
LIURXWH'DWD 9DOXHV>ODQJ@DV VWULQJ ODQJ
^
OL7DJ%XLOGHU$GG&VV&ODVVDFWLYH
`
HOVH
^
URXWH9DOXH'LFWLRQDU\>ODQJ@ ODQJ
`
`
D7DJ%XLOGHU 0HUJH$WWULEXWHKUHIXUO 5RXWH8UO URXWH9DOXH'LFWLRQDU\
D7DJ%XLOGHU 6HW,QQHU7H[W 1DPH
OL7DJ%XLOGHU ,QQHU+WPO D7DJ%XLOGHU 7R6WULQJ
UHWXUQ QHZ0YF+WPO6WULQJ OL7DJ%XLOGHU 7R6WULQJ
`
`
Добавляем Partial в _Layout.cshtml (/Areas/Default/Views/Shared/_Layout.cshtml):
<
GLY FODVV FRQWDLQHU !
XO FODVV QDY QDY SLOOV SXOO ULJKW!
#+WPO 3DUWLDO /DQJ0HQX
XO!
+ LangMenu.cshtml:
#8UO /DQJ6ZLWFKHU HQ 9LHZ&RQWH[W 5RXWH'DWD HQ
#8UO /DQJ6ZLWFKHU UX 9LHZ&RQWH[W 5RXWH'DWD UX
Запускаем. Вуаля! Красота.

Неверный формат, перевод на русский Иногда, когда мы вводим в ожидаемое числовое поле текстовое значение, то можем получить следующее сообщение:
7KHYDOXH RQH KXQGUHG GROODUV LVQRW YDOLGIRU3ULFH
Но как это сообщение вывести на русском. Следующие действия помогут это сделать:
Добавить папку App_GlobalResources
Добавить ресурс Messages.resx
Добавить строку “PropertyValueInvalid: Значение {0} недопустимо для поля {1}”
В App_Start добавить строку в Application_Start() (/Global.asax.cs)
DefaultModelBinder.ResourceClassKey = «Messages»;
Для указания имени поля можно использовать атрибут Display[Name=”Цена”] Получаем результат:
Итог
Работа в многоязычном сайте заключается в следущем:
Отделить переводные строки в ресурсы
Определить языковые поля в таблицах БД и связать их через таблицу Language Использовать ajaxзапросы с учетом языковой поддержки
Напоследок скажу, что не стоит начинать делать многоязычный сайт, если заказчик явно это не
говорит, но, если в обозримом будущем будет использоваться такая возможность, то начинать строить сайт необходимо с использованием многоязычности, хотя бы на уровне БД.
Все исходники находятся по адресу https://bitbucket.org/chernikov/lessons