CMSのポテンシャルを引き出す─MODxで作る商用サイト

第12回 MODxのLexicon機能

この記事を読むのに必要な時間:およそ 4.5 分

はじめに

前回の記事では,SimpleSearchスニペットの導入方法とLexicon(語彙)の機能について簡単に解説しました。今回は,前回不足していたLexiconのもう少し細かい部分に触れるとともに,開発者の視点から見たLexiconについても解説したいと思います。

おさらい

前回使用したスニペットが参照するチャンクの内容は次のようになっていました。

my_search_resultsチャンクの内容

<p>[[+resultInfo]]</p> 
[[+results]] 
検索結果[[+paging]]

この時,ページの都合上あえて「検索結果」という日本語を記入していたのですが,実際には次のような書式にするほうが望ましいと言えます。

my_search_resultsチャンクの内容

<p>[[+resultInfo]]</p> 
[[+results]] 
[[%sisea.result_pages? &namespace=`sisea` &topic=`default`]] [[+paging]]

このようにすると,

[[%sisea.result_pages? &namespace=`sisea` &topic=`default`]]

という部分はデフォルトで

Result pages: 

に置き換えられます。ここで,%から始まる文字列は翻訳文字列に対応するキーとなります。

これだけではわかりにくいので,実際の設定と比較してみましょう。

まず,⁠sisea.result_pages」という文字列は, /var/www/html/core/components/simplesearch/lexicon/en/default.inc.phpの中で次のように定義されています。左辺のシングルクォートされたものがキー,右辺が値です。

$_lang['sisea.result_pages'] = 'Result pages:'; 

次に続く&namespaceや&topicはLexicon用のパラメータで,管理画面の「システム」⁠⁠語彙トピックの管理」で表示される「ネームスペース」「トピック」に対応しています。ネームスペースとは文字通り名前空間で,⁠どの名前空間の言語設定を使用するか」を意味し,その下のトピックでカテゴリごとの翻訳環境が用意されています。SimpleSearchスニペットのようにLexiconに対応したパッケージが存在する場合,それぞれのパッケージは基本的に異なるネームスペースとなるため,

  • ネームスペース=パッケージ
  • トピック=パッケージの中の細かいカテゴリ

と覚えておくのが簡単かもしれません。

以上のように,キー,ネームスペースとトピックに着目すると,

[[%sisea.result_pages? &namespace=`sisea` &topic=`default`]]

という記述は

  • siseaネームスペースの
  • defaultトピックの中から
  • 設定言語に応じた
  • キー名 sisea.result_pagesに対応する翻訳を表示する

という意味になります。

言語キー書式の練習

「システム」⁠語彙トピックの管理」より,いろいろなネームスペースやトピックを見ていくと,もともとパッケージに含まれている「core」ネームスペースの「user」トピックにはさまざまな日本語訳が登録されています(MODx Japanのみなさま,ありがとうございます!)⁠

図1 ⁠システム」⁠⁠語彙トピックの管理」より日本語訳を表示

図1 「システム」→「語彙トピックの管理」より日本語訳を表示

では,試しに任意のリソースから「管理者」という値を取り出してみましょう。前述のように,書式は次のようになります。このタグを使えば,⁠管理者」というハードコーディングされた値ではなく,⁠administratorを言語設定に基づいて翻訳した値」を表示することができます。

[[%administrator? &namespace=`core` &topic=`user`]]

ユーザやデザイナーであれば普段それほどLexiconを意識する必要はないかもしれませんが,もしスニペットを開発,公開する予定があるのであれば,日本語をハードコードするのではなく,積極的にLexicon機能を活用してみてください。

著者プロフィール

中満英生(なかみつひでお)

大学時代に出会ったSolarisがきっかけでUNIXの世界へ。その後ホスティングプロバイダ,データセンターで実務経験を積む傍ら,雑誌記事の執筆や技術セミナーの講師を務める。サーバ設定の他,セキュリティに関する著作や技術者エッセイも執筆経験あり。

コメント

コメントの記入