2017-02-21 17 views
5

aspxページのボタンのテキストを翻訳しようとしています。私はasp.net webformsを使用していますが、まだ達成していません。 MVCで私は私が欲しいものを正確に行うことができますが、私には苦痛であるwebformsで。プロパティを使用してテキストをローカライズaspxページのAsp.Net WebFormsのリソース

は、ここに私のリソース

My reources

である私は、ASPXではなく、成功せず、それを使用しようとしています。私はこのコード

protected void Page_Load(object sender, EventArgs e) 
    { 
     Button1.Text = Properties.Resources.BUTTON_SEND; 
    } 

しかし、私は本当に誰かが私を助けてくださいすることができ、直接ページ

<asp:Button ID="Button1" runat="server" Text="HERE_COMES_THE_LOCALIZABLE_TEXT" /> 

でそれをやりたいと背後にあるコードでそれを行うことができますか?

答えて

1

あなたが少しより多くの研究を行っている必要があります...
this

1を見てください)上記のフォルダ内にフォルダ「App_GlobalResources」
2)を作成し、リソースファイルを作成する「resourcestringsの」と名前 "キー1" すると

を持つレコード:

<asp:Button ID="Button1" runat="server" Text="<%$ Resources:ResourceStrings, Key1 %>" /> 
+0

なぜできないのに役立ちます私はMVCのように、プロパティ内のリソースを使用しますか? –

3

これは、私は、Visual Studio 2013でそれを行う方法です。

  1. グローバルリソースの場合は、プロジェクトを右クリックしてAdd > Add ASP.NET Folder > App_GlobalResourcesを選択してください。
  2. ローカルリソースの場合は、リソースを消費するファイルがあるフォルダを右クリックし、Add > Add ASP.NET Folder > App_LocalResourcesを選択します。

    ラベルとエラーメッセージについては、LocalResourcesを使用することをお勧めします。このプラクティスにより、プロジェクトはより組織化され、変更が容易になります。詳細はlinkです。

  3. リソースファイルと下のショーなどの名前、それらを作成します。それはあなたが必要なだけのApp_LocalResourcesフォルダを作成することは可能だが、再び、App_LocalResourcesフォルダ

    Creation

    をリソースファイル(.resx)を配置する場所は、.aspx.Masterまたはと同じフォルダにする必要がありますファイル。デフォルト言語
    Frontend.Masterとラベルとのメッセージの

    Frontend.Master.resx。 pt-br .resx ブラジルのポルトガル語ラベルとメッセージ。

    ユーザーがブラウザの言語をpt-BRに変更した場合、ページにはpt-br.resxが使用されます。

  4. リソース・アイテムを作成します。 名前 =キー、 =表示テキストローカルまたはグローバルリソースファイル使用

    Editing

  5. <head> 
        <title><%= GetGlobalResourceObject("Labels", "HelloWorld") %></title> 
    </head> 
    <body> 
        <button type="button"> 
         <span><%= GetLocalResourceObject("Header_NavButton_Sr") %></span> 
         <asp:Literal runat="server" Text="<%$ resources:Header_NavButton_Sr %>"></asp:Literal> 
        </button> 
        <a href="index.html"><%= GetLocalResourceObject("Header_TextLogo") %></a> 
        <asp:TextBox ID="tb1" runat="server" Text="<%$ resources:Navbar_Home %>"></asp:TextBox> 
    </body> 
    

GlobalResourcesファイルは.designer.csファイルを生成します。リソースファイルの名前は 「Labels.pt-br.resx」の場合、このファイルはResourcesと呼ばれるグローバルnamespaceで、 「ラベル」という名前の静的クラスを生成します。これを担当するのは、リソースファイルのプロパティで定義されている 'カスタムツール' GlobalResourceProxyGeneratorで、Resources.Labels.ResourceKeyというグローバルリソースにアクセスできます。

  1. は、ローカルリソースファイル
  2. プレスF4または右クリックを選択し、選択し、「プロパティ」
  3. オン:LocalResourcesを作るために

がGlobalResourcesなどのような静的なアクセスをファイルは、次の操作を行うことができますCustom Toolタイプ 'PublicResXFileCodeGenerator'

  • オンEmbedded Resource
  • この後、アプリケーションまたはWebサイトを再構築します。これで、VisualStudioがリソースファイルでネストされた.designer.csファイルを生成することがわかります。
  • 使用方法は?

    は、私がこの回答に作成した構造に続いて、我々は、名前空間WebFormsProject2.MasterPages.App_LocalResourcesを生成MasterPagesフォルダにLocalResourceを持っています。 「.designer.cs」(この場合はFrontend.Master.designer.cs)を別のテキストエディタで開くと、名前空間WebFormsProject2.MasterPages.App_LocalResourcesFrontend_Masterという名前のクラスが生成され、作成したリソースキーと同じ名前の静的プロパティがいくつか生成されることがわかりますリソースファイルに保存します。 これで、この名前空間への参照を作成し、Frontend_Master.Header_TextLogoのようなプロパティにアクセスする必要があります。

    例:

    <%@ Import Namespace="WebFormsProject2.MasterPages.App_LocalResources" %> 
    
    <!DOCTYPE html> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
    
        <title><%= Frontend_Master.Header_TextLogo %></title> 
    
    </head> 
    <body>...</body> 
    
    +0

    MVCのように、プロパティ内でリソースを使用できないのはなぜですか? –

    +0

    @LeandroDeMelloFagundes私の答えの**編集**セクションで参照してください –

    2

    "App_GlobalResources" として、以下のフォルダ内のリソースファイルを作成します。

    enter image description here

    を次のようにリソースファイルにあなたのボタンのテキストを追加します。 enter image description here

    あなたは以下のようにボタンのテキスト

    に、ソースコードの変更にボタンのテキストを転送するそれぞれすべての言語用のリソースファイルを作成します。 enter image description here

    希望これは

    +0

    私はMVCのように、プロパティ内のリソースを使用することはできません? –

    +0

    @LeandroDeMelloFagundes .NETから特定のリソースを取得する式を作成することにより、リソースキーをコントロールのプロパティまたは明示的なローカリゼーションのプロパティに一致させることに基づいて、リソースマネージャのプロパティ値をASP.NETが埋め込む暗黙的なローカリゼーションを使用できますフレームワークリソースマネージャ。これを参照してください:https://msdn.microsoft.com/en-us/library/ms228093(v=vs.80).aspx – SJPadikkoth

    関連する問題