Htmlの質問です。Webアプリを作成し既に運用しています。

ただ今回その英語版を作ることになりました。
基本的にhtmlレベルで日本語・英語を切り替えられればよく、切り替えもボタンやリンクなどで手動で切り替えられればいいレベルを考えています。
ただ今後の改修を考えるとプログラムが2本になってしまうのは避けたいです。
スタイルシートなどを使いhtmlレベルで表示項目だけ英語と日本語を切りかえれないものでしょうか?
当然DB内で保持している表示項目の2重化などある程度のアプリの改修はしますし、表示項目が2重管理になってしまうのは覚悟しています。
方法は色々あると思いますがこの場合の一般的な方法を知りたくて質問しました。よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2007/02/20 15:13:29
  • 終了:2007/02/25 14:11:58

ベストアンサー

id:b-wind No.4

b-wind回答回数3344ベストアンサー獲得回数4402007/02/20 22:22:42

ポイント40pt

JSP であれば Struts の MessageResources 見たいなのが正攻法だと思う。

MessageResources (Apache Struts API Documentation)

使い方。

org.apache.struts.taglib.bean(Apache Struts API Documentation)

id:matttsu

フレームワークを使ってないんですよね…。

ちょっと調べたのではCommons Resourcesとかですか。あまり使うメリットがよくわからないです。ResourceBundleとの違いも。やはりサーバサイドですか。

2007/02/21 11:14:04

その他の回答(3件)

id:Kotobuki_F No.1

Kotobuki_F回答回数406ベストアンサー獲得回数92007/02/20 16:00:07

ポイント10pt

先に言っておきますが,私はプログラマーではないのでもっといい方法があると思います。

最近cgiとかいじってないので文法忘れたので考え方だけ参考にしてください。

フラグとなる変数langを定義し,lang=0;日本語 lang=1;英語 とします。

全ての表示項目を2次元配列にし,

str[0][0]="はい"  str[0][1]="Yes"

str[1][0]="いいえ" str[1][1]="No"

という風に定義します。

プログラム内に書いてしまうケースと別ファイルに定義して読み込むケースがありますが,これは表示項目の量とメンテナンス制を考えて決めましょう。

後は切替ボタンでlangの値が切り替わるようにし,表示部分で

str[message_number][lang] と言った風に指定すればいいでしょう。

id:matttsu

プログラムで記述するのは考えてます。アプリはjspですので可能です。

ただかなりソースが煩雑になるのとhtmlレベルで何とかならないかなと思ったため質問しました。

最終的にはプログラムで言語のフラグを持ってやる覚悟ではいますが…。

2007/02/20 16:15:04
id:j_kimi No.2

j_kimi回答回数32ベストアンサー獲得回数42007/02/20 16:03:51

ポイント20pt

こんな感じはどうでしょうか?

http://td200wr.zapto.org/html/work/test02.html

id:matttsu

DynamicHtmlですね。

うまく書けばキレイに出来るかな…。

2007/02/20 16:16:29
id:heppokoA No.3

heppokoA回答回数65ベストアンサー獲得回数72007/02/20 19:04:56

ポイント20pt

1番の回答者Kotobuki_Fさんのに近いですが,元のHTMLファイルが

<html_tag>これはリンゴです。</html_tag>

だったとして,

このファイルを

<html_tag>{$ReplaceHere}</html_tag>

のような感じでHTMLテンプレートに書き換えておいて,次に(たとえばINI形式の)言語ファイルを言語別に用意します。日本語だと,lang_ja.iniみたいな感じ。

ReplaceHere = "これはリンゴです。"

あとは,プログラムから言語ファイルとテンプレートファイルを読み込んで,{$Apple}のところを元の日本語か英語かに置換する操作をするといけると思います。


※「{$」と「}」でReplaceHereを挟まなくても,何でもいいです。個人的にPHPのSmartyテンプレートエンジンを使っているので,その感じで書かせていただきました。

id:matttsu

やはりサーバサイドが正攻法ですか。

JavaなのでResourceBundleとかを使うことになりそうですね。

2007/02/21 11:05:30
id:b-wind No.4

b-wind回答回数3344ベストアンサー獲得回数4402007/02/20 22:22:42ここでベストアンサー

ポイント40pt

JSP であれば Struts の MessageResources 見たいなのが正攻法だと思う。

MessageResources (Apache Struts API Documentation)

使い方。

org.apache.struts.taglib.bean(Apache Struts API Documentation)

id:matttsu

フレームワークを使ってないんですよね…。

ちょっと調べたのではCommons Resourcesとかですか。あまり使うメリットがよくわからないです。ResourceBundleとの違いも。やはりサーバサイドですか。

2007/02/21 11:14:04
  • id:b-wind
    >ResourceBundleとの違いも。
    MessageResources は ResourceBundle のラッパーですよ。
    Struts はあくまで例なので、そういう類の技術と捉えてもらったほうがいいです。

    別にサーバーサイドにこだわる必要は無いけど、クライアントサイドだと JavaScript で同じことをやる羽目になりますよ?
    どちらでも得意な方でどうぞ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません