携帯 - コメント一覧 - 更新記録 - サイトマップ  

MA開発者blog

M&Aバンク
icon HOME icon 会社案内 icon 冤罪を創る人々 icon 経済事件ノート icon 山根治blog icon 開発者blog

JSONファイルとPHPで多言語対応する . はてなブックマーク  Twitter   2010-03-04

 先日EDIUNETを英語に対応させたのですが、その時にやったことをまとめておきます。

 まずサンプルサイトをご覧ください。

JSONファイルとPHPで多言語対応する
http://ma-bank.com/media/json/
PHP+JSON: Script for several languages
http://ma-bank.com/media/json/?...

ソース
http://ma-bank.com/media/json/j...

JSON: 日本語ファイル
http://ma-bank.com/media/json/j...
JSON: 英語ファイル
http://ma-bank.com/media/json/e...
 
 最初は、日本語ファイルも英語ファイルも以下のような感じでPHPで作成していました。
<?php
 define(CODE_01, "現金");
 define(CODE_02, "流動資産");
);
?>
 ところが、途中で
「Javascriptでも言語ファイルを使い回ししたい」
と思った訳です。共通する言葉が結構あるから可能な限り二度手間は避けたいところですし。
 試しに、単純なJSONファイルを読み込んで配列に格納した後、define()に落とし込んでみたところ、あっさり成功。ソースは以下のような感じです。
<?php
 $file = file_get_contents('jp.json');
 $prev = array("\r\n", "\n", "\r", "\t");
 $file = str_replace($prev, "", $file);
 foreach(json_decode($file) as $key=>$val) {
  define($key, $val);
 }
?>
 JSONファイルを扱う上での注意点としては、データから不要物を除去することです。すわなわち「"\r\n", "\n", "\r", "\t"」が入るとエラーが出ます。(他にもありそうだけど、取り合えず)
 もちろん改行とかタブなしでJSONファイルを記述することも可能ですが、長文になった際に可読性が落ちるので後から一気に変換することにしました。
 後は、$_GETや$_POST、$_COOKIE、$_SESSIONなどを使って、file_get_contents()で読み込む言語ファイルを適宜切り替えるだけです。

 次回は、本題の「JSON ファイルをPHPとJavaScriptで共有する」です。(おそらくアップできると思いますが…)

JSONファイルとPHPで多言語対応する (2010-03-04) . はてなブックマーク  Twitter  


関連するカテゴリー

前後のページ

このエントリーへのトラックバック

   [告知] ※トラックバックスパムが多いので、しばらくの間トラックバックの受付を停止いたします。(2006-08-08)


このエントリーへのコメント



Copyright©2004-2012 "M&A bank Co.,LTD". Powered by Nucleus CMS v3.64.