質問

私のSharePointサイトの検索ボックスに表示されているテキストをカスタマイズしようとしています。デフォルトは[このサイトの検索... "です。

私はそれを行う方法を説明する記事をいくつか見つけました(代議管理をより低いシーケンス番号で上書きさせることによって)。

マイXMLは次のようになります:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <Control
        Id="SmallSearchInputBox"
        Sequence="10"
        ControlClass="Microsoft.SharePoint.Portal.WebControls.SearchBoxEx" ControlAssembly="Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
        <Property Name="GoImageUrl">/_layouts/images/gosearch15.png</Property>
        <Property Name="GoImageUrlRTL">/_layouts/images/gosearchrtl15.png</Property>
        <Property Name="GoImageActiveUrl">/_layouts/images/gosearchhover15.png</Property>
        <Property Name="GoImageActiveUrlRTL">/_layouts/images/gosearchrtlhover15.png</Property>
        <Property Name="DropDownMode">ShowDD</Property>
        <Property Name="SearchResultPageURL">/_layouts/osssearchresults.aspx</Property>
        <Property Name="ScopeDisplayGroupName"></Property>
        <Property Name="FrameType">None</Property>
        <Property Name="QueryPromptString">DO A SEARCH!</Property>
    </Control>
</Elements>
.

これはうまくいき、検索ボックスに「検索を行う!」と表示されます。予想通り。ただし、この文字列がローカライズされてほしいです。をやるとき

<Property Name="QueryPromptString">$Resources:MyResourceFile,CustomText;</Property>
.

検索ボックスに$ Resources:MyResourceFile、CustomEtextが表示されます。それを評価する代わりに暴ぎます。

ローカライズされた文字列をどのように置くのですか?

ありがとう!

役に立ちましたか?

解決

<Property Name="QueryPromptString">$Resources:MyResourceFile,ResourceKey</Property> Wokrs Fine Me。 私はあなたがあなたのリソースファイルをチェックするべきだと思います。このファイルには、このプロパティで使用しようとするリソースキーを含める必要があります。

正しいリソースファイルとキーを使用すると、検索コントロールにテキストがサイト言語によって異なります。このテキストを下の図で表示するときに動的に変更したい場合は、もう少し複雑な手順を実行する必要があります。

画像の入力ここにある

ステップ:

  1. カスタムクラスを作成し、SearchBoxex から継承します。
  2. 新しいQueryPrompTStringプロパティを作成する
  3. セーフコントロールを定義する
  4. デリゲートコントロールを作成する

    ステップのコード:

    public class SearchBox : SearchBoxEx
    {
        [Browsable(false)]
        public new string QueryPromptString
        {
            get
            {
                return base.QueryPromptString;
            }
            set
            {
                string fullKey = string.Format("$Resources:{0}", value);
                base.QueryPromptString = SPUtility.GetLocalizedString(fullKey, null, (uint)Thread.CurrentThread.CurrentUICulture.LCID);
            }
        }
    }
    
    <Control Id="SmallSearchInputBox"
               Sequence="10"
               ControlClass="LocalizedSearch.SearchBox"
               ControlAssembly="LocalizedSearch, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71df3f77c17b7c69">
            <Property Name="GoImageUrl">/_layouts/images/gosearch15.png</Property>
            <Property Name="GoImageUrlRTL">/_layouts/images/gosearchrtl15.png</Property>
            <Property Name="GoImageActiveUrl">/_layouts/images/gosearchhover15.png</Property>
            <Property Name="GoImageActiveUrlRTL">/_layouts/images/gosearchrtlhover15.png</Property>
            <Property Name="DropDownMode">ShowDD</Property>
            <Property Name="SearchResultPageURL">/_layouts/osssearchresults.aspx</Property>
            <Property Name="ScopeDisplayGroupName"></Property>
            <Property Name="FrameType">None</Property>
            <Property Name="QueryPromptString">filename,key</Property>
      </Control>
    
    .

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