TOP書籍連動> テキスト定義ファイル
Webアプリケーションの国際化
PHPコードを利用してWebアプリケーションを国際化する

第4回:テキスト定義ファイルを用いたWebアプリケーションの国際化 〜 その2

著者:Carl McDade   2006/6/6
1   2  次のページ
テキスト定義ファイル

   今回は前回に引き続き、テキスト定義ファイルの解説をしていきます。

   この種のシステムのディレクトリ構造は単純であるべきです。しかし、同時に、コーディングとトラブルシューティングを行いやすくするために、標準的で覚えやすいパスマッピングを持つべきです。

   何が選択されたとしても、それぞれの言語に対応したサブ・ディレクトリを読み込むべきです。というのは、Webアプリケーションのローカル化では、特定のファイルやエクステンションが必要になることが頻繁に見受けられるからです。ディレクトリ名とファイル名は似た名前にするか、パスやSQLステートメントを動的に書きやすくするために、ある種の命名規則に従いましょう。
/languages
   /en_En
      en_En.php
   /sv_SV
      sv_Sv.php


定義ファイルの設定

   以下は典型的な定義ファイルの例です。見ての通り、このようなファイルを作ることで、プログラマが担当する部分にエラーが発生する可能性が高まります。このようなコードが国際化を失敗させる原因となります。このコードでは、文字列の中にプレース・ホルダーを使っています。

   この構造は、開発者や翻訳者が親しんでいる構造ではありません。また、プレース・ホルダーは文脈をハードコーディングし、フレーズを再利用できなくします。さらに、再利用できなくなることにより、プレース・ホルダーで使われる文字列を突き止める必要が生じます。

   このような理由により、翻訳を行う際に、プログラマ以外の人がPHPコードと考えれられる部分を取り除いたり、調整しなければならなくなります。先述したように、この種の作業をなくすために、テキストは可能な限り一般的で簡単であるべきです。このような作業は、ソフトウェアをグローバル化する時には避けるべきことです。

// %s はあなたのWebサイト名です
define('_US_NEWPWDREQ','New Password Request at %s');
define('_US_YOURACCOUNT', 'Your account at %s');
define('_US_MAILPWDNG','mail_password: could not update ' . ‘user entry. Contact the Administrator');

   以下のようなフォーマットを使っているPHPソフトウェアもあります。数字のインデクスを使っていることに注意してください。これによりプログラム内の場所に文字列を一致させることがより簡単になります。

$txt[342] = 'Una palabra por l
$txt[343] = 'Coincidir todas las palabras';
$txt[344] = 'Coincidir con cualquier palabra';
$txt[345] = 'Coincidir como frase';
$txt[346] = 'Buscar -Todo- S


テキスト定義ファイルの利点

   テキスト文字列を保存する変数を定義することは、Webアプリケーションを国際化する最も簡単な方法であり、ほとんどの開発者がよく知っている方法です。作成とメンテナンスに特別なツールを必要としません。またこのテクニックは、ハード・ドライブ空間やメモリのような、サーバのリソースに大きな負担を掛けません。

1   2  次のページ

PHPプログラマーズマガジン 書籍紹介
PHPプログラマーズマガジン

PHPプログラマーズマガジンは、PDF形式で読者の方にお届けするPHP言語(PHP: Hypertext Processor)専門誌です。 カナダMTA出版のphp|architect誌を日本語に翻訳し、独自の記事を加えて月刊でお届けしています。

発行:アシアル株式会社  価格:1,029円

 ご購入はこちら
http://www.asial.co.jp/magazine/
Carl McDade
著者プロフィール
Carl McDade
スェーデンに住むフリーランスのWeb開発者、兼プログラマー。Microsoftデータベース管理者の資格を持っており、1997年からWeb開発を行っています。開発期間のほとんどをドキュメント作成、コード作成、PHPコンテンツ管理システムの勉強に費やしています。Webサイト(http://www.hivemindz.com)で彼とコンタクトをとることができます。

INDEX
第4回:テキスト定義ファイルを用いたWebアプリケーションの国際化 〜 その2
テキスト定義ファイル
  gettext関数