Локализация в ASP.NET MVC - PullRequest
       22

Локализация в ASP.NET MVC

4 голосов
/ 29 апреля 2009

Visual Studio 2008

Я хочу внести некоторую локализацию в мой сайт ASP.NET MVC.

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

<title><%= Strings.MyView_Title %></title>

Затем я добавил файл "Strings.da.resx". Этот файл создается рядом с первым и по умолчанию имеет значение «Модификатор доступа: без компиляции», а первый (без языкового модификатора) по умолчанию - «Интеграл».

Я вижу в каталоге bin, что каталог был создан ("da") с resource.dll, однако я не вижу ни одного переведенного текста на моем сайте.

Я проверил в браузере, что единственным предпочтительным языком является датский (da-DK), но я вижу только английские тексты.

Вопросы: 1) Нужно ли что-то включать в web.config? 2) Создаю ли я нужные файлы с правильными типами (т. Е. № 2 должен быть "Нет компиляции")?

Ответы [ 2 ]

6 голосов
/ 29 апреля 2009

По вашему мнению, у вас есть директива страницы? Если да, есть ли у вас UICulture = "Auto" и Culture = "Auto"?

Например ...

<%@ Page Language="C#" Inherits="..." 
    culture="auto" uiculture="auto" %>

Это обеспечит использование заголовка Accept-Language, передаваемого браузером в запросе, для установки культур потоков. Именно UICulture влияет на то, какой файл ресурсов выбрать.

Более подробно об ASP.NET i18n эта книга очень хороша ...

http://www.amazon.co.uk/NET-Internationalization-Developers-Guide-Building/dp/0321341384/ref=sr_1_1?ie=UTF8&s=books&qid=1241010151&sr=8-1

Он не охватывает MVC, но охватывает ASP.NET, и поэтому многие вещи по-прежнему актуальны.

2 голосов
/ 29 апреля 2009

Сначала вы должны создать фильтр действий, который будет переключать культуру потока запросов. ИЛИ ЖЕ Установите для элемента globalization значение UICulture = "Auto" и Culture = "Auto"

Проверьте эту заставку , она на русском языке, но примеры кода понятны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...