私は今朝からこの問題を解決しようとしてきました、そして私はここで明白な何かが欠けていることを知っています、しかし私はそれを見つけることができないようです。
サーバーに公開されているXMLファイルを使用しています。このファイルには、「続きを読む」など、すべての標準的な単語の翻訳が含まれています。これは、適切なパブリケーションにローカライズされたコンポーネントを含むページです。
Razorテンプレートでは、プレーンなニュースの概要アイテムの下にある次のコードを使用して、アイテム全体にリンクしています。
<a tridion:href="@news.ID" class="more" ><%=DefaultLabels.TranslatedTerm(((HomePage)Page).Location, "read_more")%></a>
つまり、サーバータグは問題なく機能しますが、次のように解決されます。
<tridion:ComponentLink runat="server" PageURI="tcm:15-407-64" ComponentURI="tcm:15-1475" TemplateURI="tcm:0-0-0" AddAnchor="false" LinkText="<%= DefaultLabels.TranslatedTerm(((HomePage)Page).Location, "read_more") %>" LinkAttributes=" class="more"" TextOnFail="true"/>
お気づきかもしれませんが、ページにはプレーンテキストとして書き込まれます(liveDocsによると、LinkTextパラメーターは最初にStringとして宣言されているため、驚くことではありません)。
私が奪うなら
tridion:href
最初の例では、次のように記述します
href
それは正常に動作し、コードは翻訳された文字列に解決され、リンクされます...コンポーネントのTCM IDにすぎず、完全なニュース項目が記載された正しいページではありません。
Razorで関数を作成し、linkTextを置き換え、テンプレート自体にComponentLinkを設定しようとしましたが、役に立ちませんでした。このテンプレートのコードを少し調整するだけで機能するはずですが、表示されないため、コードを処理するためのカスタムTBBを検討し始めました。
誰かがこれを解決する方法を知っていますか?
編集:
クリスの答えは、実はこの特定の状況で私が探していたものでしたが、プリヤンクの機能もそのように見なされるべきものであることを指摘する必要があると思います。両方の助けに感謝します、それは私の人生を少し楽にしてくれました!