多国語だけに対応も多様
多国語化されたサイトは なにか難しげな印象を持つかもしれませんが
Drupalは比較的 実現しやすいCMSではないでしょうか。
いま、多国語対応サイトを開発しています。主に講師が英語圏(アメリカ、イギリス、フィリピン)、生徒が日本人で、スカイプを利用してのオンライン英会話サイトなのです。
弊社としては、本格的な多国語対応サイトが初めてだったわけですが、始める前には見えなかった事が幾つかあったので記録しておきます。
- Drupalの設定内容が解りにくい。
→ これはDrupalに限らず、完全に日本語化されていないモジュールを使う上では宿命ですね。
- テンプレート(テーマ)に埋め込まれてしまった文章は多国語化には向かない。
→ テンプレートを対象とした翻訳という対応方法もありますが、翻訳対応の場合は、一文字でも変更になると翻訳されなくなってしまうため、あまり取り入れたくない方法です。
- 選択肢が多い。
→ Drupalに関わっていると、いつも選択肢の多さに驚かされます。というか忙しいときは邪魔にかんじるほどです。
自分なりの方向性を持って接しないと飲み込まれてなにも解決しないような感覚になります。
というわけで、今回、多国語対応といっても日本語と英語の2ヶ国語です。しかも翻訳やコンテンツの準備は お客さまがおこんっていますので、多国語対応の入口。といったところでしょうか。
今回のサイトは、講師の方のエントリーはすでに進んでいました。
集客対象は完全に生徒です
という前提での設定を行いました。
ポイント、
- 会員制サイト & 多国語対応。
- ユーザ: Admin、講師、生徒、ゲスト。
- 集客対象は生徒(日本人)。
- ゲストにはブラウザ設定値での言語切り替え、対象なし時は日本語表示。
- 会員(講師)にはアカウント設定≫言語の設定≫言語での設定値による表示。
といことで、以下のような設定を行いました。
- 管理セクション≫サイトの環境設定≫言語≫リスト:
Ja(日本語)のウェイトをen(英語)より上げる。デフォルトはen(英語)のまま。
※ デフォルトを変えると、インタフェースの翻訳など、様々なところで異常がでてきます。
- 管理セクション≫サイトの環境設定≫言語≫設定≫言語:
パスプレフィックス(代替言語あり)を選択。
- 管理セクション≫サイトの環境設定≫言語≫MULTI LINGUAL SYSTEM≫言語≫Content selection:
Current language and language neutralを選択。
- 管理セクション≫サイトの環境設定≫言語≫MULTI LINGUAL SYSTEM≫言語≫Current translation links:
オフ。
- 管理セクション≫サイトの環境設定≫言語≫MULTI LINGUAL SYSTEM≫言語≫Switch interface for translating:
オン。
- Multi languageモジュールでコンテンツ、メニュー、ブロックの多国語化対応を可能にし、メニューやタイトルなどの単語および熟語はMulti languageモジュールを活用。
- 長文またはコンテンツそのものの場合は、Content translationでコンテンツそのものを、各々用意する。
※ コンテンツ単位となると言語が違えば文章の長さ、使用する写真なども違ってくる。という考え方です。
ここまで行うにあたり、「1.のデフォルトはen(英語)のまま。」というのから外れ
デフォルトを「ja」にしてしまい。少しはまってしまいました。
デフォルトを「ja」にしたのは上述の通り集客対象は日本人なので、デフォルトの言語がenでは日本人が逃げてしまうと思ったからです。日本人のファースト・ビューは絶対に日本語にしたかったからです。
しかし、それにより、「インタフェースの翻訳」で不具合を生じてしまいました。結局Drupalに限らず?デフォルトの言語はen(英語)であり、それを前提としての多国語対応だったようです。
もう一つ、困った事が起きました。
要求では、会員がログインした瞬間に、当該会員の
アカウント設定による言語でページ表示が行われる
というものでした。
私も、てっきりそうなると思っていたのですが、動きが違いました。
実際にアカウントの選択が活かされるのはブラウザ起動時。つまりログイン時ではなく、ログインしっぱなしでブラウザを閉じた後の、ブラウザ起動+自動ログイン時だったのです。
Drupalの言語切り替え機能は、いくつか選択肢がありますが、上記選択肢が一番のようです。
その中でも、何もわからないときの表示言語が日本語というのが必須でしたので、、、
というのは、ゲストユーザ(人間)なら言語切り替えリンクをクリックしてもらえる可能性がありますが、クローラはそんなことはしませんので、へたをすると、インデックスされたページがすべて英語だったなどどいうことが冗談ではなく起きそうです。
従って、何が何でもデフォルト表示は日本語。という事でした。