1

liferay 6.2 を使用してテーマを作成しています。テーマに言語サポートを追加する必要があります。このために、使用して言語ポートレットを追加しようとします

$theme.language()

portal_normal.vm で。これによりポートレットがテーマに追加されましたが、動作しませんでした。また、私は

     $velocityPortletPreferences.setValue("portletSetupShowBorders","false")
     <menu class="nav-horizontal" id="language-navigation">
         <ul>
             <li>$theme.runtime("82", "", $velocityPortletPreferences.toString())</li>
         </ul>
     </menu>
     $velocityPortletPreferences.reset()

また、ゲスト (権限のない) ユーザーに対して言語ポートレットが機能しないことにも気付きました。この問題はここに記録されています。

私の要件は、ゲスト ユーザーがサイトに来るたびに言語を変更できることであり、それに応じてテーマ/サイト ページ/管理者/Web コンテンツをそれぞれの言語に変更する必要があります。

この機能を開発するための回避策を提案できる人はいますか?

4

4 に答える 4

2

URL の一部として目的の言語を追加できます。たとえば、liferay.com の 1 ページを英語で表示します: http://www.liferay.com/en/radio ドイツ語の同じページ (コンテンツはローカライズされていませんが、ナビゲーション要素はローカライズされています): http://www.liferay.com/de/radio . これは、英国英語の en_GB など、より狭い定義がある場合にも機能します。

于 2014-02-04T08:00:14.833 に答える
1

追加することでこれを達成しました

             <ul>
                <li><a href="/en"+$theme_display.getURLCurrent() title="UK">UK</a></li>
                <li><a href="/de"+$theme_display.getURLCurrent() title="Germen">Germen</a></li>
              </ul>

portal_normal.vm ファイル内。フッターをローカライズするために、ドイツ語の翻訳で Web コンテンツを作成し、このようにフッターに追加しました

<footer id="footer" role="contentinfo">
        #set ($VOID = $velocityPortletPreferences.setValue('portletSetupShowBorders', 'false'))
        #set ($portlet_id = '56')
        #set ($instance_id = "lw8tVGo0NyCB")
        #set ($my_portlet_id = "${portlet_id}_INSTANCE_${instance_id}")
        $theme.runtime($my_portlet_id, "", $velocityPortletPreferences.toString())
        $velocityPortletPreferences.reset() </footer>
于 2014-02-06T09:03:27.527 に答える
1

Olaf ソリューションの補足として、このようなテーマに JavaScript スニペットを追加できます。

var deutsch = "<a href='/de" + Liferay.currentURL + "'>De</a>";
var spain = "<a href='/es" + Liferay.currentURL + "'>Es</a>";
languagesDiv.html(deutsch + spain);
于 2014-02-04T12:22:30.147 に答える
0

以下のコードは、liferay 6.2 コミュニティ エディションで機能します。次に、構成ショーのドロップダウンでそれを変更し、設定から必要な言語を追加しました。

<div >
$velocityPortletPreferences.setValue("portletSetupShowBorders", "false")
$velocityPortletPreferences.setValue("languageIds", "pt_BR,en_US")
$velocityPortletPreferences.setValue("displayStyle", "1")
$theme.runtime("82", "", $velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()
</div>
于 2014-09-12T06:49:56.580 に答える