Как использовать запрос перезаписи URL / URL для локализации в ASP.NET - Использование модуля HTTP или кода Global.asax - PullRequest
1 голос
/ 31 марта 2010

Я хотел посмотреть, есть ли способ использовать URL-адрес запроса / перезапись URL-адреса для установки языка отображения страницы, изучив часть URL-адреса в ASP.NET. У нас есть сайт, который уже работает с локализацией ресурсов ASP.NET, и пользователь может изменить язык, на котором они видят страницы / ресурсы на сайте, однако текущий механизм не очень удобен для поисковых систем, поскольку языковые вариации для каждого языка отображаются как одна страница. Было бы намного лучше, если бы у нас были такие страницы, как www.site.com/en-mx/realfolder/realpage.aspx, позволяющие ссылаться на версии страницы, относящиеся к конкретной культуре.

Я знаю, что многие люди, вероятно, уже делали локализацию с помощью структур URL, и я хотел бы знать, может ли кто-нибудь из вас рассказать, как это сделать, в файле Global.asax или в модуле HTTP (указывая на ссылки на публикации в блоге тоже были бы хорошими). ​​ У нас есть ограничение на то, что сайт основан на ASP.NET 2.0 (поэтому мы пока не можем использовать функции 3.5+).

Вот пример сценария:

Настоящая страница выходит по адресу: www.site.com/realfolder/realpage.aspx

На странице есть механизм для пользователя изменить язык отображается через выпадающий список.

Есть поисковая оптимизация и пользовательские ссылки делятся преимуществами с делать это, так как люди могут связать непосредственно на страницу с содержанием это применимо к определенному язык (это может также включать макеты справа налево для языков как японцы).

Я хотел бы использовать модуль HTTP для посмотреть, если первая часть URL после www.site.com, site.com, subdomain.site.com и т. д. содержит действительный код культуры (например, en-us, es-mx) затем используйте это значение, чтобы установить культура локализации страница / ресурсы на основе этого URL.

Так что, если пользователь обращается к URL www.site.com/en-MX/realfolder/realpage.aspx

Тогда страница будет отображаться в Мексике. вариант испанского.

Если пользователь заходит на www.site.com/realfolder/realpage.aspx непосредственно страница будет просто использовать их языковые настройки браузера.

1 Ответ

0 голосов
/ 01 апреля 2010

Я делаю это в global.asax, поскольку этот ответ объясняет , затем я установил разные URL-адреса на главной странице, чтобы изменить язык в зависимости от текущего:

есть:

    If Request.Path.Contains("/en/") Then
        DestinationPathEs = Request.Path.Replace("/en/", "/es/")
        DestinationPathPt = Request.Path.Replace("/en/", "/pt/")

        litLangBar.Text = "<span id='langbares'><a href='" & DestinationPathEs & "'>Español</a></span>"
        litLangBar.Text += "<span id='langbarpt'><a href='" & DestinationPathPt & "'>Portugues</a></span>"
        litLangBar.Text += "<span id='langbaren' class='active'>English</span>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...