今回は、PHPアプリケーションを英語化するために、Zend_Localeと Zend_Translateを利用してみます。
(ZendFramework 1.11.11を使用)
<?php // 翻訳ファイルのキャッシュを有効にします。 // 今回は、ファイルにします。 $frontendOptions = array( 'lifetime' => 3600, // 秒 'automatic_serialization' => true, ); $backendOptions = array(); $cache = Zend_Cache::factory( 'Core', 'File', $frontendOptions, $backendOptions ); Zend_Translate::setCache($cache); // Localeを設定します。 // これによって、Zend_Dateで日付のフォーマットが変わります。 $locale = new Zend_Locale("en_US"); Zend_Registry::set('Zend_Locale', $locale); // 翻訳ファイル $langfile = "/your/path/en/language.xlf"; $adapter = new Zend_Translate( Zend_Translate::AN_XLIFF, // 翻訳ファイルのフォーマット $langfile, // 翻訳ファイル "en" // 言語 ); $adapter->setLocale($locale); Zend_Registry::set('Zend_Translate', $adapter); ?>
XLIFF形式の翻訳ファイルの例は以下のようになります。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> <xliff version="1.0"> <file original="global" datatype="x-STR#" source-language="ja" target-language="en" product-name="xxxxxxx" product-version="1.0"> <body> <group resname="Button"> <trans-unit id="button1"> <source>保存</source> <target>Save</target> </trans-unit> </group> </body> </file> </xliff>
これで準備が整いました。
<?php $adapter = Zend_Registory::get('Zend_Translate'); echo $adapter->_("保存"); ?>
を実行すると、
Save
と表示されます。
また、
<?php $date = new Zend_Date(); echo $date->toString(Zend_Date::DATE_MEDIUM); ?>
を実行すると、
Oct 27, 2011
のように英語圏での表記になります。
(Zend_Localeがja_JPの場合には、2011/10/27のように表示されます。)
The following two tabs change content below.
taira
Sofrware Engineer.
最新記事 by taira (全て見る)
- 翻訳リソースファイル(.po)をXLIFF形式(.xlf)に変換する - 2014年6月27日
- 一杯のラーメン - 2014年6月26日
- Macで翻訳ファイル*.poをmo形式に変換する - 2014年6月4日
Comments are closed.