LinguaPloneの利用 [Plone4.0]

LinguaPlone を利用することで Plone を多言語化することができる。

インストール

サーバへのインストール

インストールは、インスタンス内の buildout.cfg を設定する。

  eggs =
      Plone
       :
+     Products.LinguaPlone==4.0.3

次に設定を反映する。

# bin/buildout
# bin/plonectl stop; bin/plonectl start

設定

以下では Plone のルートに各言語のトップページ用のフォルダ(日本語:ja、英語:en)を作成することを想定。

Ploneへのインストール

次に Plone に管理者でログインし、「サイト設定→プロダクトを追加・削除」より LinguaPlone をインストールする。

ローカルロールユーザが対応付け言語選択時にPloneのルートまでたどれない点を修正

portal_skins/LinguaPlone/translationbrowser_popup をスキンフォルダにコピーして編集する。

- results python: test(search_text!='', query_results, [item for item in here.listFolderContents() if checkPermission('View',item)]);
+ results python: test(search_text!='', query_results, [item.getObject() for item in here.getFolderContents({'Language': 'all'}) if checkPermission('View',item)]);

設定

Plone に管理者でログインし「サイト設定→言語」から次のように設定する。

  • デフォルト言語
    デフォルトでは日本語のコンテンツとして作成されるようにする。
    Japanese
  • 利用可能言語
    利用可能な言語は、日本語と英語とする。
    Japanese、English

さらにバーチャルホストを用いる場合は ZMI の portal_languages の Negotiation Scheme で次のものにもチェックを入れておく。

Use language codes in URL path for manual override.

 

ロゴのリンク先を変更

portal_view_customizations で plone.logo を編集する。

- tal:attributes="href view/navigation_root_url"
+ tal:attributes="href string:${view/navigation_root_url}/${context/@@plone_portal_state/language}"

ホームタブの設定

言語に応じてホームのページを変更するため、portal_actions で Home を以下のように設定する。

- URL (Expression) : string:${globals_view/navigationRootUrl}
+ URL (Expression) : string:${globals_view/navigationRootUrl}/${here/Language}

検索結果を言語ごとのトップページ配下で呼び出す

検索結果の言語が英語になってしまうためこのように対応する。portal_view_customizations で plone.searchbox を編集する。

  tal:define="navigation_root_url view/navigation_root_url;
- search_input_id view/search_input_id;">
+ search_input_id view/search_input_id;
+ portal_state context/@@plone_portal_state;
+ lang portal_state/language;">

:

- tal:attributes="action string:${navigation_root_url}/search; + tal:attributes="action string:${navigation_root_url}/${lang}/search;