Zend_Validateの日本語化

以前からZend_Validateを使っていたのですが、本格的な翻訳は行わず、手元で強引に日本語メッセージを作成していました。
しかし、開発規模が大きくなってくると対応が難しくなってきます。

ZendFrameworkにはZend_Translateという多言語に対応したアプリケーションを作るためのパッケージが用意されています。

このZend_Translateを使うとZend_Validateのメッセージを多言語に対応させることが可能です。
※ZendFrameworkのバージョンは1.9.6を使っています。
 
 
 
■Zend_Translateの使い方

Zend_Translateでは設定ファイルを、配列、CSV、ini、Gettextなど各種入力ファイルをサポートしていますが、ZendFrameworkのドキュメントに記載されている例を使って、簡単な配列で説明いたします。

$english = array(
	'message1' => 'message1',
	'message2' => 'message2',
	'message3' => 'message3');

$japanese = array(
	'message1' => 'メッセージ1',
	'message2' => 'メッセージ2',
	'message3' => 'メッセージ3');

$translate = new Zend_Translate('array', $english, 'en');
$translate->addTranslation($japanese, 'jp');

print $translate->_("message1");

// 結果:メッセージ1

このようにとても簡単に翻訳ができます。
 
 
 
■Zend_Validateの翻訳

Zend_Validateの翻訳は量が多いため、配列ではなく、ini形式で翻訳ファイルを用意しました。以下は、翻訳ファイルの記載例です。

; Alnum
Invalid type given, value should be float, string, or integer = "不正な値です。小数、文字列、又はは数字を入力して下さい。"
'%value%' has not only alphabetic and digit characters = "'%value%'にアルファベットと数字以外の文字が含まれています。"
'%value%' is an empty string = "'%value%'が入力されていません。"

どのメッセージを日本語化すべきかは、Zend_Validateのドキュメントに記載されています。

http://framework.zend.com/manual/ja/zend.validate.messages.html
 
 
次に作成した翻訳ファイルをZend_Validateにあてます。

$translate = new Zend_Translate('ini', '/filepath/validate.jp.ini', 'jp');
Zend_Validate_Abstract::setDefaultTranslator($translate);

これでValidateを行うとメッセージは用意した翻訳ファイルにしたがって日本語化されます。

The following two tabs change content below.

ロゴスウェア

ロゴスウェア株式会社は、インターネットや情報技術を使って学習に革新的進化をもたらす製品を開発することを目標に、2001年7月に設立されたテクノロジー系ベンチャー企業です。

Comments are closed.