Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASP.NET MVC Урок 1-F / ASP.NET MVC Урок C

.pdf
Скачиваний:
40
Добавлен:
09.03.2016
Размер:
1.23 Mб
Скачать

И проверяем:

Супер!

Переключение между языками

Создадим переключалку 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

Соседние файлы в папке ASP.NET MVC Урок 1-F