여러 언어 지원 웹 사이트를 구축 중입니다. 이 경우 마스터 페이지에 링크 버튼이 있습니다.마스터 페이지의 ASP.NET 언어 설정
상속받을 새 기본 클래스를 만들었습니다. CurrentUICulture 및 CurrentCulture를 Global.asax 파일에 설정했습니다. masterpage의 리소스 파일을 만들었습니다. webconfig 파일에 전역 화 행을 설정했습니다. masterpage.master.en-gb.resx
및 masterpage.master.nl-nl.resx
: 설정 한 모두 문화와 uiculture은 "자동"
내 마스터 페이지 내가이 개 리소스 파일이 "masterpage.master" 이라고합니다. (또한 en-GB 및 nl-NL로 시도했습니다.)
처음에는 영어로 마스터 페이지를 만들었습니다. 쿠키를 사용하여 선택한 언어를 저장합니다. 기본적으로 쿠키는 "en-GB"로 설정되지만 테스트를 위해 "nl-NL"로 설정됩니다.
쿠키가 만들어지고 테스트를 통해 문화가 nl-NL
으로 설정되는 것을 보았습니다.
아직 .... 링크 버튼 텍스트가 변경되지 않습니다. nl-NL 텍스트가 아닌 en-GB 텍스트를 보여줍니다.
내가 무엇을 놓쳤는가? 웹 사이트에서 올바른 resx 파일을 선택하는 방법은 무엇입니까? 파일 이름의 언어 및 국가 설정에 따라 자동으로 수행됩니까? 아니면이를 지적해야합니까?
링크 버튼의 마크 업 :
<asp:LinkButton ID="lbCHangeLanguage" runat="server" CssClass="lbCHangeLanguage" OnClientClick="javascript:return confirm('If you continue any unsaved changes will disappear!\n\nPress OK to continue.')" meta:resourcekey="lbCHangeLanguageResource1" Text="CHANGE LANGUAGE"></asp:LinkButton>
의 Global.asax에서 : Web.config의에서
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires at the beginning of each request
Dim myLangCookie As HttpCookie
myLangCookie = Request.Cookies.Get("FASTLANG")
If myLangCookie Is Nothing Then
myLangCookie = New HttpCookie("FASTLANG")
myLangCookie.Values.Add("language", Languages.Dutch)
myLangCookie.Secure = False
If Request.Url.OriginalString.Contains("localhost") = False Then myLangCookie.Secure = True
If Request.Url.OriginalString.ToLower.Contains("fasttest") = True Then myLangCookie.Secure = False
myLangCookie.Expires = Now.AddYears(50)
Response.Cookies.Add(myLangCookie)
End If
Dim myLang As String = myLangCookie.Values("language")
Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(myLang)
Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo(myLang)
최종 하위
:
<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto" requestEncoding="utf-8" responseEncoding="utf-8" />
원래 게시물에 마크 업을 추가했습니다. – Eric