ASP.net Поддержание CurrentUICulture для закладок и связанных URL - PullRequest
0 голосов
/ 16 июня 2011

Итак, у меня есть веб-сайт на двух разных языках, и я настроил его для извлечения текста из файла ресурсов на основе CurrentUICulture.

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

Пример:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru-RU");

И это прекрасно переключает язык. Но я бы хотел, чтобы текущий язык как-то отражался в текущем URL для целей закладки или для отправки ссылок на страницу на определенном языке. Как на этих примерах:

  • www.mysite.com / контакт / index.aspx? LANG = RU
  • www.ru.mysite.com / index.aspx
  • www.mysite.com / ru / contact.aspx (хотя этот каталог на самом деле не существует)

Мне также интересно, как лучше разделить данные Google Analytics между двумя разными языками.

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

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

В дополнение к URL-адресу можно использовать другие параметры управление состоянием в качестве запасных вариантов для выбора языка.Однако обычно полезно иметь возможность сбрасывать состояние с помощью URL.

Для кнопки «Переключить язык» в ASP.NET вы можете использовать:

  • <asp:Hyperlink>, с параметром языка в NavigateUrl
  • <asp:LinkButton>, с Response.Redirect в обработчике событий

См. также:

Лучший способобрабатывать URL на многоязычном сайте в ASP.net

0 голосов
/ 16 июня 2011

Я бы порекомендовал HttpModule для считывания этого параметра.Вы думали о том, чтобы просто сохранить это в постоянном файле cookie для пользователя?

См. Эту ссылку -

Безопасно ли использовать HttpModule для локализации?

...