アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在日本語で公開されているHPを英語でも公開するにあたり、
HTMLとCSSのみで2言語対応したいと思っています。

対応するというのは、
・同じHTMLファイル上で英語と日本語を併記
・ユーザーのブラウザが日本語なら日本語表示(英語は表示しない)
・日本語以外なら英語表示
とします。

なお、FireFoxでは以下のやり方でできましたが、
IEはlang属性が未対応とのことで、うまくいきません。

htmlファイル
<html>
<head>
<link rel="stylesheet" href="global.css" type="text/css">
<link rel="stylesheet" href="local.css" type="text/css">
</head>
<body>
<div class="ja" lang="ja">
<p>日本語のテキスト</p>
</div>
<div class="en" lang="en">
<p>English text</p>
</div>
</body>
</html>

global.css
*[lang='en'] { display: block; }
*[lang='ja'] { display: none; }

local.css.ja
*[lang='ja'] { display: block; }
*[lang='en'] { display: none; }

また、divタグでの判定であれば
htmlを以下のようにして
<div class="ja" ・・・
cssファイルの
*[lang='ja'] を div.ja などに
置き換えることで、
IEも含めうまくいくのはわかっているのですが
すでに日本語で作成済みのため、これからclass名を
日本語と英語で別にしていくのはさけたいと思っています。

シンプルに対応できないものでしょうか。
JAVAスクリプトは使用しないようにしたいと考えています。

また、まったく違う簡単な方法があれば教えていただけないでしょうか

よろしくお願いします。

(注:上記コードはコンテント・ネゴシエーション可能なサーバー上でのみ稼働とのこと。)

A 回答 (1件)

> また、まったく違う簡単な方法があれば教えていただけないでしょうか


英訳、和訳サイトなどで書かれているような、併記を目的としてるわけではないんですよね?

スタイルシートを使わない状態でどう見えるか、という"HTML的"な考え方でいけば、
cssファイルをコンテントネゴシエーションで切り替えるのではなく、
htmlファイルを2つ用意して、言語に合わせて切り替えるほうがいいのでは?と思うのですが。
セオリーとしてはhtmlファイルの切り替えだと思います。

言語の切り替えも、
クッキーを使えばhtmlでもcssでも同じですが(Apache2.0.47以上prefer-language)
一時的な切り替えなら.jaや.enにリンクを張るだけで、簡単に実現できます。

HTMLファイルをもう作っちゃったのであれば、今更ですが。。。


余談ですが、たぶんFxはlang属性に対応していません。
「属性セレクタ」には対応していますが。

参考URL:http://httpd.apache.org/docs/2.0/content-negotia …

この回答への補足

さっそくの回答ありがとうございます。

>併記を目的としてるわけではないんですよね

はい、併記ではありません。

まず、言語別にhtmlを分けずに、1つのhtmlにしたい理由として、
たとえば、ユーザー情報の登録などを行う画面において、
「入力項目を増やす」などという改修は、
日本語か英語かにかかわらない改修のため、
1回だけの改修で済ませたいためです。
htmlファイルそのものを言語別にしてしまうと、
2つのファイルを改修するということになり避けたいところなのです。

やはり、標準的な考え方としてはおっしゃられるように
htmlの切り替えなんでしょうか。。。
うーん。つらいところです。。。

補足日時:2008/08/06 23:09
    • good
    • 0
この回答へのお礼

ありがとうございました。
教えていただいた方法で試してみます

お礼日時:2008/08/07 13:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!