1. 이전과 같이 인터페이스를 만들고, 다중 언어 인터페이스가 필요한 모든 텍스트에 레이블을 사용하는 데 주의하세요
. 2. 완료한 후 솔루션 탐색기에서 파일을 선택하고 도구->로컬 리소스 생성을 선택합니다
. 3. App_LocalResources라는 디렉터리가 생성된 것을 볼 수 있습니다. 이 디렉터리에는 추가 resx 파일이 있습니다. 예를 들어 aspx 파일이 default.aspx인 경우 default.aspx.resx라는 파일이 생성됩니다.
4. 이 파일을 열고 라벨의 모든 텍스트가 여기에 있는지 살펴보세요
. 원본 aspx 파일을 열고 소스를 보면 소스 코드가 변경된 것을 확인할 수 있습니다.
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default2" title="제목 없는 페이지" Culture="auto" 메타: resourceskey="PageResource1" UICulture="auto" %>
…………
<asp:Localize ID="Localize1" runat="server" Meta:resourcekey="Localize1Resource1"></asp:Localize>
6. 여기에 참고하세요: Meta:resourcekey="PageResource1" 및 Meta:resourcekey="Localize1Resource1" 이는 여기에 있는 텍스트가 리소스에서 읽혀진다는 의미입니다.
7. OK 이제 다른 언어에 대한 리소스 파일을 만듭니다. 매우 간단합니다. Default.aspx.resx를 복사하여 붙여넣은 다음 이름을 Default.aspx.fr-fr.resx로 바꾸세요. fr-fr은 사용하려는 언어의 이름입니다. DVDRip을 보시면 자막파일과 매우 비슷하다는 생각이 드실텐데요.
8. 어떤 사람들은 그 언어의 이름을 어떻게 알 수 있느냐고 말합니다. 매우 간단합니다. IE를 열고 도구->인터넷 옵션->언어->추가하면 상자 중앙에 있습니다.
9. 이제 다른 리소스의 텍스트 편집을 시작하세요. Default.aspx.fr-fr.resx를 열고 원본 콘텐츠를 비교한 후 콘텐츠를 프랑스어로 변경합니다.
10. 이 시점에서 우리는 첫 번째 단계를 완료했습니다. ASP.Net은 사용자의 언어 기본 설정에 따라 표시 언어를 선택합니다. IE에서 설정을 변경하고, 방금 언급한 위치를 fr-fr로 변경하고, 이 페이지를 열고 살펴보시겠습니까? 프랑스어라면 축하드립니다. 안되면 돌아가서 다시 하세요...
11. 자, 다음으로 우리는 자동이 아닌 사용자가 자신의 언어를 선택할 수 있도록 하고 싶습니다. 우리는 쿠키를 사용하여 사용자 선택을 저장합니다. 애플리케이션 수준에서 우리는 이 쿠키를 읽고 적절한 문화권과 UIculture를 설정합니다. 물론 처음 들어올 때 Request.UserLanguages에서 얻을 수 있는 브라우저 설정을 읽어야 합니다.
Private SupportedLanguages As String() = {"en-us", "fr-fr"}
공개 Const LANGUAGE_COOKIE_NAME As String = "UserLanguage"
Sub Application_AcquireRequestState(ByVal sender As Object, ByVal e As EventArgs)
Dim 언어Cookie As HttpCookie = Request.Cookies(LANGUAGE_COOKIE_NAME)
Dim 언어 As String = String.Empty
If (언어Cookie Is Nothing) Then
Dim userLanguages As String() = Request.UserLanguages
Dim index As Integer
For i As Integer = 0 To userLanguages.Length - 1
index = Array.IndexOf(SupportedLanguages, userLanguages(i))
인덱스 >= 0이면
언어 = SupportedLanguages(index)
종료 For
End If
Next
If 언어 = String.Empty Then _
언어 = SupportedLanguages(0)
Response.Cookies.Add(New HttpCookie(LANGUAGE_COOKIE_NAME, 언어))
Else
언어 = 언어Cookie.Value
End If
Dim 문화 As CultureInfo = 새 CultureInfo(언어)
System.Threading.Thread.CurrentThread.CurrentUICulture = 문화
End Sub
12. 그런 다음 사용자가 언어를 선택할 수 있는 페이지가 필요합니다. 예를 들어 두 개의 버튼을 사용합니다. 이 버튼을 클릭한 후 이 쿠키를 적절한 언어로 설정하려고 합니다.
보호된 하위 Button2_Click(ByVal 보낸 사람은 개체로, ByVal e는 System.EventArgs로) Button2.Click
SetLanguage("fr-fr")를
처리합니다. End Sub
보호된 하위 SetLanguage(ByVal 언어를 문자열로)
Response.Cookies(Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = 언어
Dim 문화 As CultureInfo = 새 CultureInfo(언어)
System.Threading.Thread.CurrentThread.CurrentUICulture = 문화
Server.Transfer( 요청.경로)
End Sub
마지막에 있는 Server.Transfer(Request.Path)를 참고하세요. 이는 페이지를 다시 읽어서 페이지에 새로 선택한 언어도 표시하도록 하는 것입니다.
13. 마지막으로 ASP.Net의 자동 선택을 제거해야 합니다. Default.aspx에서 제거:
Culture="자동" UICulture="자동"
14. 열어서 살펴보세요!