лучший способ для мультиязычного asp.net mvc 3 - PullRequest
9 голосов
/ 16 ноября 2011

Я пытаюсь создать проект asp.net mvc3 для академического проекта, и одно из требований - возможность переключения между разными языками. В настоящее время у меня есть следующее:

У меня есть внешний проект, который работает как хранилище для языков, и для каждого представления у меня есть интерфейс для каждого представления, который определяет все «заполнители», которые определяют весь изменяемый текст. В начале любого действия я получаю язык, который находится в URI (что-то вроде / {lng} / {command} / {action}), и передаю его представлению, используя ViewBag, один раз внутри представления, в котором я использую хранилище для получить текущую реализацию интерфейса для этого представления на выбранном языке.

Я не могу найти хорошую тему по этому вопросу. Мне просто любопытно, если есть лучший способ сделать это и более эффективный. И как это обычно делается на профессиональном уровне. Я не очень разбираюсь в asp.net, только начал изучать его около месяца назад.

Также, если это важно, я использую бритвенный движок для представлений, и мы не можем использовать JavaScript на этой стадии проекта.

Ответы [ 2 ]

10 голосов
/ 16 ноября 2011

Вы можете просмотреть , следуя инструкциям .

2 голосов
/ 16 ноября 2011

Я работаю с проектом под названием Griffin.MvcContrib, который имеет некоторые функции локализации.

Прежде всего, я использую строку запроса и cookie для переключения языка.(Просто создайте ссылку с флагом в вашем макете <a href="@Url.Action("Index")?lang=en-us">English</a>)

и пометьте свой контроллер моим атрибутом:

[LocalizedAttribute]
public class YourController : Controller
{

}

Следующим шагом будет получить локализацию видов, моделей ипроверочные сообщения.Локализация моделей и валидации описаны здесь .Что касается представлений, вам нужно только использовать @T() для получения переведенных текстов:

@Model.Title

<div>@T("This text will get translated")</div>

(вам нужно изменить pageBaseType в Views \ Web.config на Griffin.MvcContrib.GriffinWebViewPage)

IЯ почти закончил с областью администрирования, которую любой нетехнический пользователь может использовать для управления всеми переводами.Проверьте проект Griffin.MvcContrib.Admin здесь: https://github.com/jgauffin/griffin.mvccontrib/tree/localization/source/Griffin.MvcContrib.Admin

...