おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2003年10月18日(Sat) Nachbarhilfe [同日]

となり町の子ども用品バザーに行く。要らないモノのある人は事前にそれを事務局に持って行って値段を付けておく。僕らは欲しいものを買って、モノが売れた場合には持って行った人がお金が、売れなかった場合は品物が帰ってくる仕組みみたい。子ども用品なんてどんどんサイズが変わるし、いい仕組みだと思う。

1つのHTMLファイルに多国語を書いておいてユーザーの求める言語だけを表示する

勇魚さんのコロンビア事故最終報告書の翻訳に触発されて思いつきました。 CSSのコンテント・ネゴシエーションを利用してみます。

下記の3つのCSSファイルを用意します。

m17n.css
div.ja, div.en { display: none; }
local.css.ja
div.ja { display: block; }
local.css.en
div.en { display: block; }

これらのCSSを利用する下記のようなHTMLファイルを、

<html>
<head>
	<link rel="stylesheet" href="m17n.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>

コンテント・ネゴシエーションを可能にしたサーバーに置いて CSSを理解するブラウザから閲覧すると、 ブラウザの設定によって、 local.cssのためにlocal.css.jaかlocal.css.enが送信されて、 見たい方のdivだけが見えるというわけ。

…いや、それだけなんですけどね。 本当はtDiaryの表示の多言語化をしたかったのだけれど、奥が深そう。 HTTP_ACCEPT_LANGUAGEに応じてconf.langを設定して、 UTF-8で出力できるようにして、 conf.langに応じてテキストを出力するかどうか判断するプラグインを書けば、 1つのtDiaryで、複数の言語のなかから読者に最適な言語を表示できるのだ。 翻訳はもちろん日記の筆者がするのだけれど、書く人が一緒なら、 各国語で同時に編集できるメリットは多い。 HTTP_ACCEPT_LANGUAGEと使用可能な言語から、最適な言語を選ぶアルゴリズムを、 知る必要がある。 こちらはまた今度。(いつ?)


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>