マルチリンガル対応プロダクト
Ploneには「LinguaPlone」というサイトをマルチリンガル対応にするためのプロダクトがあります。汎用性が高い反面、使用するのが難しい面があります。当社では数年前から別アプローチを行うようにしています。
マルチリンガルサイトを作るときに、複数言語で同じコンテンツを提供する場合があります。日本語から英語で表示させようとした時、Topページから改めて遷移して同じコンテンツにたどり着かせると言うケースと、対応する同じページへリンクさせるという2つのケースが存在します。
前者の場合は、特殊な機構を作らずに、常にTop階層から各言語のコンテンツを作る事になります。
後者の場合は、先に出来ている言語から翻訳を行うというケースが多くなります。また、ほぼ同じコンテンツを複数言語で提供することが目的になることが多いです。
この、対応する同じページへのリンクなどを自動的に行ったり、翻訳するときの編集時の補助ツールなどは、最初に紹介した「LinguaPlone」が機能を提供してくれます。
しかし、言語毎に階層化を行ったり、どこにどの言語のどの様なコンテンツを置くかということを、最初に設計し、そのように運用しないと、どこにどのコンテンツがあるかが分からなくなり、且つURL的にも分かりにくいものになることが多くなります。
当社で実装した、「大阪大学」のケースでは、Top階層に、言語用に「ja」と「en」というフォルダを作り、そこから対照的(ミラー)に同コンテンツを配置するようにしています。
個々のコンテンツ同士を、リレーション(関連)を付ける仕組みと対照的に同じコンテンツタイプで新規にオブジェクトを作る仕組みを実装し、構築時に決めた運用が出来るように工夫しています。
これは、LinuguaPloneで度々発生してしまう、システム言語の翻訳機能が不整合を起こすことも解決しています。
多言語サイトを作る際に、様々な問題が発生することがあります。サイト毎にポリシーを決め、それらの運用がうまくいくように計画時からしっかりと検討をすることが重要で、それを実装していくと言うことが次に重要になると考えています。