Pages

2013年9月12日木曜日

ZendFramework2 Validateのエラー文言を日本語化

今回はモジュール別ではなく全体で一先ずは日本語化したかったので、Application の onBootstrap で setDefaultTranslator を指定しました。

/module/Application/Module.php

下記は追記分だけを記載しています。上書きという意味では無いです。。 onBootstrap にデフォルト何が記載されていたのかを忘れたので。。

class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        $sm = $e->getApplication()->getServiceManager();
        \Zend\Validator\AbstractValidator::setDefaultTranslator($sm->get('translator'));
    }
}

/module/Application/config/module.config.php

下記は追記分だけを記載しています。上書きという意味では無いです。。 onBootstrap にデフォルト何が記載されていたのかを忘れたので。。

return array(
    'translator' => array(
        'locale' => 'ja_JP',
        'translation_file_patterns' => array(
            array(
                'type'     => 'gettext',
                'base_dir' => __DIR__ . '/../language',
                'pattern'  => '%s.mo',
            ),
        ),
    ),
);
上記を下記のように追記
return array(
    'translator' => array(
        'locale' => 'ja_JP',
        'translation_file_patterns' => array(
            array(
                'type'     => 'gettext',
                'base_dir' => __DIR__ . '/../language',
                'pattern'  => '%s.mo',
            ),
        ),
        'translation_files' => array(
            array(
                'type'     => 'phpArray',
                'filename' => 'resources/languages/ja/Zend_Validate.php',
                'locale'   => 'ja_JP',
            ),
        ),
    ),
);

もしかして

'resources/languages/ja/Zend_Validate.php' が無い人は恐らくcomposer を利用してセットアップしていないせいかなと思いますので。 無ければ /vendor/zendframework/zendframework/resources を直接参照するかパスが通るようにコピーしたらOKです。


0 件のコメント:

コメントを投稿

Followers