2009-07-03 6 views
1

私はいくつかのSharePoint Webパーツに取り組んでおり、可能な限りロケールに依存しないようにしようとしています。私は、リソースファイル内のすべてのほとんどのテキストを持っている、と私は私のWebパーツの属性で探しています:国際化とC#メソッド属性?

[WebBrowsable(true), 
Category("My Category"), 
WebDisplayName("Display Name here"), 
WebDescription("Tells you all about it"), 
Personalizable(PersonalizationScope.Shared)] 
public string SomeProperty { get; set; } 

ユーザーにとってより便利なもので、これらのハードコードされた文字列を交換するとよいでしょう(SharePointのこの場合の管理者)は英語を使用しません。

私のオプションは何ですか?

答えて

2

あなたはMicrosoft.SharePoint.WebPartPages.ResourcesAttributeクラスを探しています。

This blog postには、その使用方法と簡単な例があります。

[WebBrowsable(true), 
    Resources("SearchWebPartWebDisplayName", 
    "SearchWebPartCategory", 
    "SearchWebPartWebDescription"), 
    FriendlyName("Display Name here"), 
    Description("Tells you all about it"), 
    Category("My Category"), 
    Personalizable(PersonalizationScope.Shared)] 
    public string SomeProperty { get; set; } 

    public override string LoadResource(string id) 
    { 
     string result = Properties.Resources.ResourceManager.GetString(id); 
     return result; 
    } 

注プロパティ名と属性ブロック内の順序の変更:

//RESOURCES LOCALIZATION 
//Property that is localized. Use the ResourceAttibute. 
//[ResourcesAttribute (PropertyNameID=1, CategoryID=2, DescriptionID=3)] 
[Resources("PropNameResID", "PropCategoryResID", "PropDescriptionResID")] 
+0

感謝 - あなたの答えの私の実装は以下の通りです。 – user132710

1

ここspoon16の答えの私の実装です。

また、Microsoft.SharePoint.WebPartPages.WebPartから派生するWebPartを変更して、WebPartの幅と高さをどのように処理するかを変更する必要がありました。

1

通常のASP.NET属性からサブクラスを作成し、ローカライズするだけで済みます。このアプローチは従来のものであり、新しいWebパーツには使用しないでください。必要がない場合は、SP Webパーツから派生しないでください。

http://forums.asp.net/t/937207.aspx

+0

注目。ありがとうWouter! – user132710