Многоязычные веб-сайты с ASP.NET MVC

То, что вы ищете, это корреляция. Вы можете найти описание встроенных функций здесь . Вы также можете выдать свой собственный Id корреляции (новый Guid) и передать его с вашим кодом, чтобы он был на 100% явным и учитывал сценарии, когда пользователь может «отсутствовать» в приложении в течение длительного периода (например, уходит из своего браузера). для кофе и возвращается через 30 минут, возможно, после перезапуска службы приложения по какой-то причине). Вам все еще нужно будет рассчитать время, которое потребовалось каждому этапу путешествия, а также использовать инструмент для пользовательского интерфейса, если вы хотите отслеживать активность / неактивность во взаимодействии с пользователем.

9
задан Mat 9 January 2012 в 08:38
поделиться

2 ответа

URL может принять почти любую другую форму, которую Вы любите. Для большего количества информации проверьте ASP.NET Платформа MVC (Часть 2): Маршрутизация URL. Только для запуска (так как я не уверен, является ли это оптимальное решение), можно добавить два новых маршрута в global.asax:

        routes.MapRoute(
            "ukRoute",
            "{lang}/Products/{action}/{id}/{subcategory}",
            new { lang = "uk", controller = "Products", action = "Index", id = "", subcategory = "" }
        );
        routes.MapRoute(
            "esRoute",
            "{lang}/Productos/{action}/{id}/{subcategory}",
            new { lang = "es", controller = "Products", action = "Index", id = "", subcategory = "" }
        );

Эти маршруты понимают следующие URL (и отобразите их обоих на ActionResult Category(string id, string subcategory) метод ProductsController):

uk/Products/Category/1/A
es/Productos/Category/1/A

Если Вы хотите создать такие URL в своих представлениях, можно использовать что-то как:

<%= Html.RouteLink("English 1.A", "ukRoute", new { lang = "uk", action = "Category", id = "1", subcategory = "A" })%>
<%= Html.RouteLink("Spanish 1.A", "esRoute", new { lang = "es", action = "Category", id = "1", subcategory = "A" })%>
12
ответ дан 4 December 2019 в 13:50
поделиться

Можно сделать это, но иметь в виду, что не все страны являются языками. Например, en-ГБ является обычным представлением для британского английского, или более конкретно, локаль Великобритании для английского содержания, например. Если Вы можете, это быть стоящие следующего RFC1766-полученные конвенции для ЛОКАЛИ языка.

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

3
ответ дан 4 December 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: