多言語サイトのトップ表示について教えてください

Events happening in the community are now at Drupal community events on www.drupal.org.
katsuhiro630's picture

みなさん、はじめまして。
まだDrupalをさわりはじめて1ヶ月くらいの初心者です。
よろしくお願いします。

今、日本語と英語のマルチランゲージサイトのテストをしているのですが、
毎日更新(というか追加)するページを(例えばページでコンテンツを作った場合)
トップページに持ってきたいのです。

サイト情報で、表示させたいノードを指定して、
英語ページを表示させた場合に、言語スイッチャーで
日本語にしても、日本語が表示できません。

どういったやり方があるでしょうか。

お教えいただければ助かります。

Comments

今作られているトップページの編集

qchan's picture

今作られているトップページの編集 ->「Translate」タブから
対応する英語ページも既に作られているとして、

サイト情報ー>デフォルトのフロントページ: *
のテキストフォームの前にどう書いてあるか確認してもらえますか。

例えば下の /ja はパスのプリフィックスで言語をスイッチしているよという意味です。
http://sample.com/ja[                           ]

ここの設定に沿って、ご自分のトップページをURLを打ち込んで英語ページが出てくるか確かめてみてください。
http://sample.com/en/トップページ
みたいな感じです。

これで切り替わらなかったら、作られた英語のページが日本語のページの翻訳ページだと認識されていないと可能性がありますね。

あと、 言語ー>設定 の Language negotiation:
admin/settings/language/configure
もどう設定しているか確認してください。

katsuhiro630's picture

qchanさま
ありがとうございます。

現在の設定ですが、英語がデフォルトの言語になっていて、
日本語と英語の2カ国のみセットしてあります。

現在、英語ページは、[/node/13]
それに対応した日本語ページは、[/node/14]
になっています。

サイト情報のトップページには、英語のときは、
http://sample.com/dp [ node/13]
日本語に切り替えた時には、
http://sample.com/dp/jp [node/13]
となっています。
(ちなみに、node/14にもしてみましたが、同じ結果でした)

トップページに設定していない場合には、
直接そのページにアクセスしたら、
日本語と英語のページが切り替わります。
しかし、トップページに設定した場合、
直接そのページにアクセスた場合でも
コンテンツのみ切り替わらず、メニューなどのみが
切り替わります。

Language negotiationは、
Path Plefix only
に設定してあります。

モジュールは、基本的にすべて最新にしてあります。
i18nと関連ではlanguage iconのみをつかっています。

よろしくお願いします。

qchan's picture

状況よくわかりました。
解決法がぱっと思いつかないので、ピントがズレているかもしれないのを予め謝っておきますね。

○ひとつは、トップページに表示するnode13 ,node14に同じPath aliasをつけてみる。

トップページのpath aliasはいまはどうなっていますか?

○ふたつめ、 Language negotiationを
「Path prefix with language fallback.」

にする。
英語の時の Site Information -> Default front page: は
http://sample.com/dp/en [ node/13]

のように /en が付くはずです。 "node/13"の代わりに さきほど付けた"alias name"を入れて、
日本語の方も同じく、"alias name"を入れてみてください。

これで一度試してみてください。

ありがとうございます。できました

katsuhiro630's picture

qchanさま

ありがとうございます。切り替えできるようになりました。

URLエイリアスを同じ名前で登録して、
その名前をトップページに登録することで
表示・切替ができるようになりました。

ところで、ちょっと不思議?な現象ですが、
Language negotiationをpath prefix with language fallbackにすると、
メニューの切替ができなくなりました。
デフォルトは英語なのですが、日本語のメニューのまま
英語に切り替わらず、管理画面では、切替スイッチを押しても
URLすら切り替わっていませんでした。
通常のトップ画面などでは、コンテンツ、URLは切り替わりますが、
メニューは日本語のままでした。
ちょっと不思議な現象でしたので、ご報告しておきます。
 *違うサーバー上で、3つのサイトで試してみましたが、
  どれも同じ結果でした。
  すべて、日本語ディストリビューションを使ってインストールしていて、
  コアのバージョンは、ひとつは、6.14、ふたつは6.15です。

ともあれ、今回は、Language negotiationはPath prefixに設定して、
URLエイリアスの設定で解決できました。

本当にありがとうございます。

qchan's picture

多言語の際のMenuはハマリどころ多いですよね。

メニューの切替ができなくなりました。
デフォルトは英語なのですが、日本語のメニューのまま
英語に切り替わらず、管理画面では、切替スイッチを押しても
URLすら切り替わっていませんでした。
通常のトップ画面などでは、コンテンツ、URLは切り替わりますが、
メニューは日本語のままでした。
ちょっと不思議な現象でしたので、ご報告しておきます。

わたしは、page.tpl.phpにPrimary linksなどを直に書かずに,言語毎にMenuを作ってBlockとして呼び出しています。
これで直ったこともあるのですが、原因はわかっていません。

Blockの多言語化も頭を悩ますところですね。
全ての言語のBlockが管理ページに一度に出てしまうので煩雑になります。
コンテンツの対しても多言語サイトを作るときにもっと簡単な方法がありそうなんですけどねー。
CCKで実現できたらマイグレーションもしやすいのではと思いますが、まだ試せていないです。

hagi's picture

大昔の投稿へのレスポンスで恐縮ですが、メモ替わりに書いておきます。

結果的には、
admin/config/system/variable/edit/site_frontpage
の値にもエイリアスを入れたら解決できました。
どうも、システムのサイト情報
admin/config/system/site-information
で値を変えると、上記の値が、ノード番号で設定されてしまうようです。

本家の方にも報告した方が良いのでしょうが、やり方が分かりません。

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: