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

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

●質問者: matttsu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DB HTML Web いもの えれな
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● Kotobuki_F
●10ポイント

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

最近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] と言った風に指定すればいいでしょう。

◎質問者からの返答

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

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

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


2 ● j_kimi
●20ポイント

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

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

◎質問者からの返答

DynamicHtmlですね。

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


3 ● heppokoA
●20ポイント

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

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

だったとして,

このファイルを

<html_tag>{$ReplaceHere}</html_tag>

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

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

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


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

◎質問者からの返答

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

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


4 ● b-wind
●40ポイント ベストアンサー

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

MessageResources (Apache Struts API Documentation)

使い方。

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



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