2010-02-16 3 views
4

ASP.NET에서 사이트를 만들려고합니다. 나는 그렇게 같은 도메인 설정에 프랑스어와 영어로해야합니다여러 하위 도메인에 걸친 다국어 사이트 모범 사례

en.mysite.com fr.mysite.com

내가 코드를 복제 또는 두 가지 모두에 파일을 업로드하고 싶지 않아 가능한 경우 도메인.

모든 파일을 www.mydomain.com에두고 리소스 파일을 사용하여 번역을 정렬하는 것이 가장 이상적입니다.

ASP.NET에서이 기능을 설정하는 가장 좋은 방법은 무엇입니까?

답변

3

내 솔루션은 사용자의 브라우저를 사용하여, 사용자가 www.mysite.com 칠 때 리디렉션을 설정하는 것을 잊지 마세요 global.asax

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) 
    Dim lang As String = "es" ''//default 
    If Request.Url.ToString.ToLower.StartsWith("http://es.") 
     lang = "es" 
    ElseIf Request.Url.ToString.ToLower.StartsWith("http://en.") Then 
     lang = "en" 
    End If 
    Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang) 
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang) 

    Site.Idioma = lang ''//static variable that I use in other parts of the site 
End Sub 

BeginRequest의 LANG을 설정했다 언어 측면 지점으로 선호

Imports System.Globalization 
Partial Class redirect_Default 
    Inherits System.Web.UI.Page 

    Protected Sub Page_Load(ByVal s As Object, ByVal e As System.EventArgs) _ 
                   Handles Me.Load 

     Select Case Mid(Request.UserLanguages(0).ToString(), 1, 2).ToLower 
      Case "en" 
       Response.Redirect("http://en.mysite.com") 
      Case Else 
       Response.Redirect("http://es.mysite.com") 
     End Select 

    End Sub 
End Class 

, 나는 그것이에서 더 때문에 http://www.mysite.com/en을 사용하는 것이 좋습니다 SEO 관점 (귀하의 사이트에서 중요 할 경우)

+0

+1 - 아주 좋은 대답입니다. global.asax는 필수 문화 정보를 넣을 수있는 확실한 장소입니다. –

0

정확하게 알고 있듯이 모든 파일을 루트 디렉토리에두고 다른 언어로 서브 도메인을 사용하고 싶습니다.

en.mysite.com 및 fr.mysite.com은 별칭이어야하며 사용하려는 언어를 asp.net 응용 프로그램에 알려야한다고 생각합니다. 코드로 문화권 설정을 변경할 수 있습니다. 그것은 잘 설명 된 here입니다.

그러나 내 관점에서는 기본 도메인에 언어 설정을 제공하고 언어 간 전환 기능을 제공하는 것이 더 좋습니다. 그리고 언어를 바꾸는 사용자 조언 - 그는 다만 1 개의 연결을 누를 것이다. 언어 설정 또는이 경우 사용자의 프로필, 쿠키, 세션, 등록 된 사용자의 경우 데이터베이스 등 모든 곳에 저장할 수 있습니다. www.mysite하는 fr.mysite.com지도 을 www.mysite.com/page?lang=en하는 en.mysie.com지도 :이 구현 될 것입니다 경우

0

, 나는이 작업을 수행 할 것 .com/page? lang = fr

그런 다음 마스터 페이지에서 전역 화를 사용하여 param에 따라 언어를 설정하면 언어 코드가 같은 올바른 app_localresource 파일을 찾으면 asp.net 페이지가 자동으로 해당 언어로 제공됩니다. .

희망이 도움이

관련 문제