出力する文字列を日本語、中国語、英語に切り替えが可能にすることで
多言語化を行いたいのですが、具体的にはどうすればよいでしょうか。
また、下記のうち、どちらが有用でしょうか?
1. 配列に格納する
$apple[0]= "りんご";
$apple[1]= "apple";
$apple[2]= "林檎";
2. require を使って言語を切り替える
if ($lang == 0) require("jp.php");
if ($lang == 1) require("eg.php");
if ($lang == 2) require("ch.php");
--jp.php--
<?php
$apple= "りんご";
$orange= "みかん";
$tomato= "とまと";
?>
---------
ThinkITの「PHPコードを利用してWebアプリケーションを国際化する」という連載が参考になると思います。
3回目からgettext関数を使った多言語対応について説明されています。
1、2でどちらが良いか、と言われたら2の方が管理がしやすそうですね。
参考になれば幸いです。
ありがとうございます。gettext という関数があるのですね、驚きました。
ただ、開発環境が未決定であるのと、レンタルサーバなので、上記関数は使えるものなのでしょうか?
私がやるとしても2の方法でやります。
2を少し改良して、$langの値をそのままファイル名というのもありですね。
if (file_exists("{$lang}.php")) { include ("{$lang}.php"); } else { // エラー }
phpMyAdminなどもその方法で言語を切り替えていますよ。
ありがとうございます、PHPMyAdminは2の方法なのですね。
gettextをお勧めします
もしgettext拡張モジュールが使用できない場合でもPEARのFile::Gettextで相当のことができます.
手前味噌ですが
http://blog.poyo.jp/archives.php/categ-1/year-2006/month-4/id-11...
が参考になるかもしれません.
ファイルの読み込みは件のサイトのload_po()を
メッセージの取り扱いは同サイトの_()を参考にしてください.
#gettext拡張モジュールがPHPに組み込まれていた場合,関数_()は定義済みになるのでmsg()などに変更する方がいいかもしれません
ありがとうございます。引き続きおねがいします。