Zend Framework でルート変換を試してみたいのですが、gettext アダプターを使用しており、ほとんどのチュートリアルには PHP 変換アダプターが含まれているため、機能させるのに問題があります。
メインの Bootstrap.php には、ルートを設定するメソッドがあります。
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$translator = Zend_Registry::get('Zend_Translate');
Zend_Controller_Router_Route::setDefaultTranslator($translator);
$routerRoute = new Zend_Controller_Router_Route('@about',
array(
'module' => 'default',
'controller' => 'index',
'action' => 'about'
)
);
$router->addRoute('about', $routerRoute);
これは/about
パスに対して機能します。Zend_Translate を設定したコードを貼り付けますが、基本的*.mo
には現在のセッション言語に応じてファイルをロードします。
$langParam = $this->getSessionLang();
$localeString = $languages[$langParam];
$locale = new Zend_Locale($localeString);
$moFilePath = $langFolder . $langParam . '.mo';
if (!file_exists($moFilePath)) {
throw new Zend_Exception('File does not exist: ' . $moFilePath);
}
$translate = new Zend_Translate(
array(
'adapter' => 'gettext',
'content' => $moFilePath,
'locale' => $locale,
'ignore' => array('.'), // ignore SVN folders
'disableNotices' => ('production' === APPLICATION_ENV) // disable notices in Production
)
);
Zend_Registry::set('Zend_Translate', $translate);
Zend_Registry::set('Zend_Locale' , $locale);
これは、多くの場合、ルーティングに呼び出さprior
れます。
私の質問: gettext をルートの変換アダプターとして使用でき@about
ますか? できる?万歳!どのように?