2010-11-24 2 views
9

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

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

Как это можно сделать разумным способом? Заранее спасибо за вашу помощь!

EDIT:
Я все еще ищет способ сделать это. Любая помощь приветствуется.
Есть ли какие-либо рамки или lib, реализующие это уже?

ответ

7

Я никогда не делал этого раньше, но не мог ли вы добавить запись в таблицу маршрутов для каждого языка, который вы хотите поддержать? Все локализованные маршруты могут перенаправляться на маршрут по выбранному вами языку. Проверьте эти вопросы, связанные с:

Multi-lingual websites with ASP.NET MVC

How should I implement localization with ASP.NET MVC routes?

+0

Спасибо, это единственный полезный ответ. :) – Venemo 2010-11-24 23:16:07

4

Короткий ответ: нет.

URL-адреса должны быть универсальными и, следовательно, локально-инвариантными. Вот почему мы не поддерживаем локализацию контроллеров, действий или строк строки запроса при привязке модели.

+9

Ну URL-адреса определенно не являются локально-инвариантными. Для англоязычных пользователей это может показаться так, но в регионах, где говорящий по-английски не так распространен, локализация URL-адресов может быть актуальной. – Venemo 2010-11-24 23:14:57

+0

Просто потому, что вы можете что-то сделать, это не значит, что вы должны что-то делать. Канонизация и инвариантность в URL-адресах являются важными принципами, которые нельзя легко выбросить. – 2010-11-26 04:55:31

0

Примите во внимание, что вы не закончили работу с локализованными именами действий и контроллеров. Вам все равно нужно будет локализовать любые параметры маршрутизации. Это особенно больно для перечислений.

Ie www.seller.com/catalogue/list/winterclothing www.seller.com/catalogue/list/summerclothing где winterclothing и summerclothing будут перечислениями.

Я бы сказал: это возможно, но не выполнимо.

Смежные вопросы