質問

私は、データベースからロードするページのカスタムsitemapproviderを持っています。

  

ページの(pageidに、fk_pageid(親)、タイトル、URL、show_in_menu)

私は、ページのtitleをローカライズ/国際化したいと思います。最善の方法は何ですか?

役に立ちましたか?

解決

あなたのSiteMapNodeオブジェクトを作成するとき、あなたは暗黙的/明示的なリソースキーを指定することができますコンストラクタを使用します。私は明示的なリソースキーと一緒に行くお勧めします。

http://msdn.microsoft.com/en-us/library/ ms150104.aspxする

"プログラム名は、ノードプロパティである名前/値のペアのNameValueCollectionのコレクションにノードまたは集合explicitResourceKeysためのローカライズされたリソースを識別するために使用される一意の名前にimplicitResourceKeyの値を設定するのいずれか、ローカライズするためのリソースを指定しますまたはカスタム属性は、ローカライズ、値がノードのプロパティまたはカスタム属性のローカライゼーション値が含まれています。ローカライズされた値は、適切なの.resxファイルに設定することができます。タイトル、説明、およびAのいずれかのカスタムプロパティをローカライズする方法の詳細については、 SiteMapNodeオブジェクト、どのように参照してください。。ローカライズサイトマップデータexplicitResourceKeys収集の構文要件については、NameValueCollectionのを参照してください "

通常、静的なサイトマップをローカライズするには、次のようなリソース表現使用します。"$Resources:<ClassName>,<KeyName>,<DefaultValue>"

その代わり、それらはすべて同じ鍵を使用して追加、式の中で現れる順にexplicitResourceKey NameValueCollectionのに<ClassName><KeyName>、および<DefaultValue>値を追加します。

あなたの表現が"$Resources:SiteMapResourceFileOrClass,RootNode.Title,My Root Node"されているだろうもしそうなら、代わりに次の操作を行います:

explicitResourceKeys.Add("Title", "SiteMapResourceFileOrClass")
explicitResourceKeys.Add("Title", "RootNode.Title")
explicitResourceKeys.Add("Title", "My Root Node")

あなたは説明のために同じことを行うことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top