0

resx を使用するチュートリアルを探していましたが、resx がローカリゼーション (およびブラウザーの言語) に依存するものしか見つかりませんでした。

特定の変数に特定の値がある場合に特定の resx を使用するようにアプリに指示するにはどうすればよいですか。たとえば、xyz=1 の場合、default.aspx.de.resx を使用したいと思います。

事前にサンクス

編集: InitializeCulture のオーバーライドに問題があると聞きました。解決策は次のとおりです。

Public Class FormBase
Inherits Page

Protected Overrides Sub InitializeCulture()
    Dim selectedLanguage As String

    Select Case Master.LanguageID
        Case 1
            selectedLanguage = "fr-BE"
        Case 4
            selectedLanguage = "nl-BE"
        Case 5
            selectedLanguage = "en-GB"
        Case 6
            selectedLanguage = "de-DE"
        Case Else
            selectedLanguage = "fr-BE"
    End Select

    UICulture = selectedLanguage
    Culture = selectedLanguage
    Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage)
    Threading.Thread.CurrentThread.CurrentUICulture = New CultureInfo(selectedLanguage)

    MyBase.InitializeCulture()
End Sub

クラス終了

次に aspx.vb で:

部分クラスのデフォルトは FormBase を継承します

このクラスで Master.LanguageID にアクセスするにはどうすればよいですか?

4

1 に答える 1

1

ページの後ろのコードでInitializeCultureをオーバーライドしてみてください。

protected override void InitializeCulture()
{
    if (Request.QueryString["xyz"] == "1")
    {
        String selectedLanguage = "de-DE"
        UICulture = selectedLanguage ;
        Culture = selectedLanguage ;

        Thread.CurrentThread.CurrentCulture = 
            CultureInfo.CreateSpecificCulture(selectedLanguage);
        Thread.CurrentThread.CurrentUICulture = new 
            CultureInfo(selectedLanguage);
    }
    base.InitializeCulture();
}

よろしく。

于 2012-04-23T10:57:20.773 に答える