1

データベースからページをロードするカスタム サイトマップ プロバイダーがあります。

ページ(pageid、fk_pageid (親)、タイトル、url、show_in_menu)

ページをグローバル化/ローカライズしたいと考えtitleています。最良の方法は何ですか?

4

1 に答える 1

1

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

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

「ローカライズ用のリソースをプログラムで指定するには、implicitResourceKey の値をノードのローカライズされたリソースを識別するために使用される一意の名前に設定するか、explicitResourceKeys を名前と値のペアの NameValueCollection コレクションに設定します。名前はノード プロパティまたはカスタム属性です。 to localize and value contains localization values for the node property or custom attribute. ローカライズされた値は、適切な .resx ファイルに設定できます. Title、Description、および 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")

説明についても同じことができます。

于 2011-01-04T02:16:39.843 に答える