0

リソース ファイルの使用に関して非常に奇妙な問題があります。

多くの aspx サイトを含む ASP.NET Web アプリケーションがあります。aspx ページごとにローカル リソース ファイルを生成し、コピー/名前変更を行ってから翻訳を行いました。たとえば、リソース ファイル SamplePage.aspx.resx (原文、クロアチア語) と SamplePage.aspx.en.resx (英語の翻訳) を含むページ SamplePage.aspx があります。

コード ビハインドで currentculture/currentuiculture を変更すると、すべてがうまく機能します。新しく選択したリージョンの resx ファイルから単語が読み込まれますが、一部の部分は未翻訳のままで、別の resx ファイルから読み込まれます。

asp:dropdownlists、asp:radiobuttons、および asp:buttons のみがうまく翻訳されていないことに気付きました。すべてのラベルと段落は問題ありません。

これらのコントロールには meta:resourcekey タグが正しく設定されています。たとえば、リソース ファイル内の 1 つのボタンのテキストを別のものに変更したかのように、変更はそこにあり、オンラインで見ることができますが、間違ったリソース ファイルから読み込まれています。

問題の原因は何ですか?

リージョンを変更した場所と何か関係がありますか? 現在 OnInit にあります。

protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        string culture = "hr-HR";
        //string culture = "en-US";

        Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture);
        Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(culture); 
    }
4

1 に答える 1

0

次の例 (VB.NET) では、言語は Global.asax に設定されています。

Sub Application_BeginRequest(sender As Object, e As EventArgs)
    Dim c As New CultureInfo("en-US")
    Thread.CurrentThread.CurrentCulture = c
    Thread.CurrentThread.CurrentUICulture = c
End Sub

一般に、Web アプリケーション全体の言語ごとに 1 つの .resx ファイルのみを使用する必要があります。

于 2015-02-03T13:38:30.020 に答える