人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

はじめて質問させていただきます。
携帯向けのホームページを作りたいと思っているのですが、
サーバー側で自動的に多言語に振り分ける方法が、
どうにも調べても分からなくなったので教えてください。
できれば、コード付きで教えて戴けると幸いです。

具体的には日本語、英語、中国語、韓国語、スペイン語などです。
確か、携帯だとjavascriptが動作しなかったと思い、
cgiや.htaccessなどで自動的に
jp/index.html
en/index.html
ch/index.html
ko/index.html
sp/index.html
といったページを振り分けたいのですが、
プログラムについて殆ど素人なので分かりません。
よい方法があれば教えて下さい。

●質問者: legoblock
●カテゴリ:インターネット ウェブ制作
✍キーワード:.htaccess CGI HTML INDEX JavaScript
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ayuoffice
●20ポイント

以下の物がよさそうですが、導入してみたら、どうですかね?

http://guideurl.net/GuideURL.html

後、以下の掲示板は、言語自動認識について、いろいろ書いています。

CGIなりJSなりで、プログラム上でも実現可能です。

合わせてご参考まで

http://chaichan.hp.infoseek.co.jp/qa2000/qa2033.htm

◎質問者からの返答

色々と紹介して頂きありがとうございます。

もう少し調べてみたいと思います。


2 ● y-kawaz
●50ポイント

使用言語は Accept-Language ヘッダで知ることができます。


CGIの場合は環境変数 HTTP_ACCEPT_LANGUAGE にクライアントが望む言語が優先に順に ja-JP,ja,defaultQLS;q=0.9,en-US という形で入っているのでこれを見て出力するページを切り替えるようにすればよいです。


.htaccessで解決する場合はまず以下を設定します。

Options +MultiViews

そして、ファイル名を index.html.ja、index.html.en、index.html.ch という名前で作成しておきます。

このようなファイル名にしておくと、index.html でアクセスした際に Apache が Accept-Languageを見て自動的にその言語にあったファイルを返してくれます。

http://httpd.apache.org/docs/2.2/ja/content-negotiation.html#nam...

◎質問者からの返答

なるほど、下記のように.htaccessに登録すればできそうですね。

拓けてきた気がします。試してみます。

AddLanguage jp .jp

AddLanguage en .en

AddLanguage ko .ko

AddLanguage ch .ch

AddLanguage sp .sp

LanguagePriority jp en ko ch sp

Options +MultiViews


3 ● tezcello
●100ポイント ベストアンサー

お使いのサーバが許しているかは不明ですが、

(更に携帯がチャンと http://www.futomi.com/lecture/env_var/http_accept_language.html:... をリクエストとして送っていないとダメなんですけど)

サーバ側の設定で案外簡単に実現できます。


利用するのはサーバ(Apache)のこんな機能です。

http://httpd.apache.org/docs/2.2/ja/content-negotiation.html

こちらの方が分りやすいかも知れません。

http://www.kanzaki.com/docs/sw/http-header.html#con-neg


目的のディレクトリに MultiViews の許可を与え

.htaccess が使えるならそこに

Options +MultiViews を追加しておく

それぞれの言語向けのファイルに、ファイル名に言語名をつけて形にしておく

index.html.ja

index.html.en

index.html.ko

index.html.es

index.html.zh

これだけでOKです。

これらのページからのリンク先を言語別のディレクトリにしてもいいし、全部をこのような形式にしてもいいです。(全部を同じディレクトリに置いておくと、ズラズラっと並んで鬱陶しいかも)


サーバが許していなければ、Perl, PHP などを使って、振り分ける事は可能です。

携帯 振り分け CGI などのキーワードで検索するとたくさん見つかると思います。

例えば、http://japan.internet.com/webtech/20040929/8.html

これらは携帯のキャリアによる振り分けが殆どで、その為

HTTP_USER_AGENT の値を使って振り分けを行っています。

今回の場合は、HTTP_ACCEPT_LANGUAGE を使う訳なので、そこを置換えながら読んでみて下さい。

◎質問者からの返答

とても説明が丁寧で分かりやすいです。

使用サーバはロリポップなのでapacheは動作しています。

.htaccessも今まで使ったことがあるので大丈夫です。

中国語→zh、スペイン語→esということが、ご紹介のリンクで分かりました。

PerlとPHPの振り分け説明について紹介は凄いです。

自分で携帯の機種別による振り分けをやっておりながら、

全く活かされておりませんでした。

なぜ直に思いつかなかったのか、というより随分悩んでしまっていたのか、

きっと上辺ばかりを勉強してきたせいなのでしょう。。

ただ今読んでハッキリ光明を感じることができました。

(教えて戴いてはじめてハッとするなど真に恥ずかしい限りで恐縮です。。)

この度は大変感謝しております。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ