BACK ]
インターネットやパソコンに関する蘊蓄集(?)

多言語対応のデータベースを作る
 多言語対応のデータベースは「MySQLで多言語混在データベースを利用する」の方法が簡単ですが、プロバイダが提供するホームページサービスなどではMySQLやPHPを使えるサーバーは限られているでしょう。ここではフリーのCGIスクリプトを利用して多言語掲示板を作る方法を解説します。とは言っても「私の場合、このようにやったら運良くうまくできた」というものですので、以下の手順でやっても出来ない(うまく動作しない)ことがあるかもしれませんので、あらかじめご了承ください。なお、多言語データベースのサンプルはここにあります。実際に稼働中のものです。
 上記のデータベース見ればおわかりのように、「CGIROOM」で配布されているスクリプトです。まずはこれを入手して設置し、動作を確認してください。通常どおり設置しても動かないようであれば、多言語化以前の問題があります。
 動作が確認できたところで、スクリプトをまずはUTF-8形式で保存してしまいます。エディタで開いて、何もいじくらずに保存するだけで構いません。この時、ファイル名を変えるとか、保存場所を変えるなどして保存するとよいでしょう。きちんと動作するスクリプトを残しておくことは大事です。また、実際に多言語データベースを運用しても、日本語しか使えない環境の人もいるでしょうから、その人たちのために日本語のみのデータベースを残しておく(設置しておく)というのも親切なことです。ですので、ファイル名を変えるとか保存場所を変えるなどすることをお勧めいたします。なおUTF-8形式で保存する時には「Unicodeサイン(BOM)を付ける」のチェックを外しておきます。もちろん、UTF-8が使えるEmEditorなどのようなエディタを使わないと以上の作業は出来ません。
 さて、UTF-8で保存できたスクリプトファイルを実際に修正していきます。手順は以下の通りです。「database.cgi」を開いてください。
 1) 「require 'jcode.pl';」を「#require 'jcode.pl';」とします。行頭に「#」を付けるだけです。
 2) 「ヘッダ表示部分」で文字コードを「charset=utf-8」とします。
 3) 170行目くらいから始まる「初期設定」で「$n eq "" || $v eq "";&jcode'convert(*v,'sjis');if($n=~ /^IDn/){$ID{$n}=$v」という行見つけます。「初期設定」の部分の6行目にあります。これを「$n eq "" || $v eq "";」「&jcode'convert(*v,'sjis');」「if($n=~ /^IDn/){$ID{$n}=$v」という風に強制的に改行を入れて3行にし、「&jcode'convert(*v,'sjis');」を「#&jcode'convert(*v,'sjis');」とします。
 4) スクリプトの改造は以上です。このデータベースには検索用の最初のページなどHTMLファイルも必要になりますので、これらもヘッダの文字コードをUTF-8にし、UTF-8形式で保存します。スタイルシートで多言語に対応したフォントを指定しておくと、文字化けの解消に多少の効果があります。
 基本的には以上で終わりですので、ブラウザから閲覧してみてください。これらはあくまで「私の場合、こうやったら運良く出来た」というものであることをご理解ください。