Несколько языков в приложении ASP.NET MVC?

голоса
65

Каков наилучший способ для поддержки нескольких языков для интерфейса в приложении ASP.NET MVC? Я видел, что люди используют файлы ресурсов для других приложений. Является ли это по-прежнему лучший способ?

Задан 06/08/2008 в 22:43
источник пользователем
На других языках...                            


6 ответов

голоса
40

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

Это имеет смысл, когда вы думаете об этом, потому что местные ресурсы являются локальными на страницу ASPX и в контроллере, вы даже не выбрали свою точку зрения.

Ответил 07/08/2008 в 04:04
источник пользователем

голоса
21

Я нашел этот ресурс , чтобы быть очень полезным

Его обертка вокруг HttpContext.Current.GetGlobalResourceString и HttpContext.Current.GetLocalResourceString , что позволяет назвать такие ресурсы , как это ...

// default global resource
Html.Resource("GlobalResource, ResourceName")

// global resource with optional arguments for formatting
Html.Resource("GlobalResource, ResourceName", "foo", "bar")

// default local resource
Html.Resource("ResourceName")

// local resource with optional arguments for formatting
Html.Resource("ResourceName", "foo", "bar")

Единственная проблема, которую я обнаружил, что контроллеры не имеют доступ к локальным струнам Resouce.

Ответил 16/09/2008 в 01:00
источник пользователем

голоса
3

Да ресурсы по-прежнему лучший способ для поддержки нескольких языков в среде .NET. Поскольку они легко ссылаться и даже проще добавлять новые языки.

Site.resx
Site.en.resx
Site.en-US.resx
Site.fr.resx
etc...

Таким образом, вы правы по-прежнему использовать файлы ресурсов.

Ответил 06/08/2008 в 22:48
источник пользователем

голоса
2

Проект Orchard использует метод быстрого доступа под названием «T», чтобы сделать все строки перевода в странице. Таким образом, вы увидите метки с @T ( «Строка в Перевести»).

Я намерен смотреть на то, как это реализуется за кулисами и потенциально использовать его в будущих проектах. Короткое имя держит уборщик кода , так как он будет использоваться много .

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

См http://orchardproject.net для получения дополнительной информации.

Ответил 13/04/2011 в 19:44
источник пользователем

голоса
1

Некоторые из других решений, упомянутых в качестве ответа не работаем для выпущенной версии MVC (они работали с предыдущими версиями альфа / бета).

Вот хорошая статья , описывающая способ реализации локализации , которые будут строго типизированной и не разорвать модульное тестирование контроллеров и представлений: руководство по локализации для MVC v1

Ответил 09/10/2009 в 15:24
источник пользователем

голоса
0

Это еще один вариант, и вы будете иметь доступ к CurrentUICulture в контроллере:

Проверьте MVC3-многоязычные

Ответил 13/07/2012 в 23:09
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more