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" メタ: resourcekey="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.次に、ユーザーが自動的にではなく独自の言語を選択できるようにしたいと思います。ユーザーの選択を保存するために Cookie を使用します。アプリケーション レベルでは、この Cookie を読み取り、適切なカルチャと uiculture を設定します。もちろん、最初にアクセスしたときも、Request.UserLanguages から取得できるブラウザ設定を読み取る必要があります。
Private SupportedLanguages As String() = {"en-us", "fr-fr"}
Public Const LANGUAGE_COOKIE_NAME As String = "UserLanguage"
Sub Application_AcquireRequestState(ByVal sender As Object, ByVal e As EventArgs)
Dim languageCookie As HttpCookie = Request.Cookies(LANGUAGE_COOKIE_NAME)
Dim language As String = String.Empty
If ( languageCookie が何もない) then
Dim userLanguages As String() = Request.UserLanguages
Dim インデックス As Integer
For i As Integer = 0 To userLanguages.Length - 1
Index = Array.IndexOf(SupportedLanguages, userLanguages(i))
インデックス >= 0 の場合、
言語 = SupportedLanguages(index)
Exit For
End If
Next
If language = String.Empty then _
language = SupportedLanguages(0)
Response.Cookies.Add(New HttpCookie(LANGUAGE_COOKIE_NAME, language))
Else
language = languageCookie.Value
End If
Dim culture As CultureInfo = New CultureInfo(言語)
System.Threading.Thread.CurrentThread.CurrentUICulture = culture
End Sub
12. 次に、ユーザーが言語を選択できるページが必要になります。たとえば、これを行うには 2 つのボタンを使用します。このボタンをクリックした後、この Cookie を適切な言語に設定します。
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Button2.Click を処理します
SetLanguage("fr-fr")
End Sub
Protected Sub SetLanguage(ByVal language As String)
Response.Cookies(Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = 言語
Dim カルチャ As CultureInfo = New CultureInfo(言語)
System.Threading.Thread.CurrentThread.CurrentUICulture = culture
Server.Transfer( Request.Path)
End Sub
最後の Server.Transfer(Request.Path) に注目してください。これは、ページを再読み込みして、新しく選択した言語もページに表示するようにするためです。
13. 最後に、ASP.Net の自動選択を削除する必要があります。 Default.aspx から削除します。
Culture="自動" UICulture="自動"
14. 開いて見てください!