Язык имен контроллеров в ASP.NET MVC - PullRequest
1 голос
/ 07 апреля 2009

Должны ли имена контроллеров быть на моем родном языке или на английском? Какова текущая лучшая практика? И если на английском, как мне убедиться, что URL-адреса остаются на моем родном языке?

Я знаю, что мое веб-приложение не будет многоязычным, и я бы не стал писать много шаблонов.

Ответы [ 6 ]

2 голосов
/ 04 августа 2009

С точки зрения SEO, я считаю хорошим стандартом использовать тот же язык на контроллерах / представлениях / действиях, на которых основан ваш сайт MVC.

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

Внутри контроллеров / представлений / действий я всегда использую английский как язык кодирования и комментирования.

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

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

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

Обратите внимание, однако, что большинство символов Юникода не могут появляться в URI (без Punycode ). Только ограниченное подмножество символов ASCII может появляться в URI. Подробнее см. в спецификации .

1 голос
/ 07 апреля 2009

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

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

1 голос
/ 07 апреля 2009

Вы можете писать имена контроллеров и методов контроллера на любом языке (в UTF-8), это не проблема. Для веб-сайта, который поддерживает только 1 язык, это должно быть хорошо.

0 голосов
/ 09 апреля 2009

Мое мнение, возможно, заключается в том, чтобы попытаться явно загрузить определения маршрутов для каждого языка в вашем global.asax.

const string DEFAULT_LANGUAGE = "en";

rout.MapRoute ("Product_EN", "en / Product / {action}", new {controller = "Product", action = "Index"});

rout.MapRoute ("Product_FR", "fr / Produit / {action}", new {controller = "Product", action = "Index"});

rout.MapRoute ("Product_ES", "es / Produto / {action}", new {controller = "Product", action = "Index"});

route.MapRoute ("По умолчанию", "{language} / {controller} / {action} / {id}", new {language = DEFAULT_LANGUAGE, controller = "Home", action = "Index", id = " «});

Примечание: это пример, вы должны получить переведенные имена из глобальных ресурсов.

Но тогда мы вынуждены ссылаться на правильное имя маршрута в ваших представлениях, чтобы использовать RouteActions. В любом случае, это немного обходное решение, но оно позволяет вам переводить URL на ваш сайт, например:

www.mysite.com / Produit / afficher www.mysite.com/product/show ...

Надеюсь, это поможет, Приветствия

Fred.

0 голосов
/ 07 апреля 2009

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

Помните, что соглашения об именах ориентированы на английский, а не на местные языки. Так что это проблема.

...