- ベストアンサー
htmlでページをユーザーの言語で表示させる方法
twitterやfacebookなどの多言語サイトなどでは、アクセスしたユーザーの言語に翻訳したページを表示しています。このようなページを学校の課題として作りたいのですが、構築の仕方がよくわかりません。 自分の中では、多言語に翻訳したデータベースをhtmlもしくはjavascriptなどで引用してくるのではないか(ja属性など)と思っていますが、あっているのかどうか、また構築の仕方・方向性がよくわかりません。また、google翻訳やjQueryの多言語翻訳ツール等での自動翻訳は正しい翻訳にならないと思うので考えていません。 どなたか教えていただけるとありがたいです。お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>言語データベース(単語を翻訳した一覧)はどのように構築するものなのでしょうか。 自動翻訳は使わないという事なので、 各言語でのメッセージは、自分で用意するんですよね? (1)メッセージ取得 例えば、MySQLなどのデータベースに message1 メニュー ja mesasge1 menu en のような形で格納しておいて、 日本語ペ-ジなら、message1 jaで検索して、「メニュー」を取得、 英語ペ-ジなら、message1 enで検索して、「menu」を取得。 もちろん、データベースでなくて、ただのファイルでも良いです。 とにかく、message1とjaから「メニュー」が定まるように作れば良いわけです。 (2)出力 CGIから、(1)で取得したものを、所定の位置へ出力します。 「所定の位置へ出力」は、 phpなら、<?php print $message1; ?>的な書き方で。 perlなら、HTML::Templateあたりを使えば実現できます。
その他の回答 (1)
- chu2oyaji
- ベストアンサー率31% (17/54)
CGIを作ってHTTP_ACCEPT_LANGUAGEを見て判断するのが 一番まっとうな方法かと思います。 CGIを使わず、javascriptで判断しようとすると、 navigator.language関連を参照する事になりますが、 環境によって、HTTP_ACCEPT_LANGUAGEとは違う結果になります。 効果はそれなりですが、やってる事の意味はデタラメなので、オススメはしません。 htmlだけでやるなら、素直に英語ペ-ジと日本語ページを作って、 リンクをはって、ユーザに選択されればOKです。 詳しい事は、 「HTTP_ACCEPT_LANGUAGE」や「navigator.language」で ぐぐってみると分かると思います。
お礼
どうもありがとうございます。 HTTP_ACCEPT_LANGUAGEからのユーザー言語の特定・言語データベースの参照を行うCGIを構築し、ページを表示させるという方向性はわかりましたが、言語データベース(単語を翻訳した一覧)はどのように構築するものなのでしょうか。漠然とした質問ですが申し訳ありません。 どうぞ、お願いいたします。
お礼
仕組みや方法など、とてもよくわかりました。 詳しくありがとうございます。課題頑張りたいと思います。