2015年9月17日木曜日

Silexでバリデーションメッセージの日本語化

Silex(1.3)でバリデーションメッセージの日本語化です。TranslationServiceProviderを登録し、beforeフィルターで、翻訳ファイルを指定します。日本語の翻訳ファイル(validators.ja.xlf)は用意されているので、設定を加えるだけでOK。表示するメッセージを変えたい場合は、validators.ja.xlfファイルを編集すれば、良いと思います。

composer.json(symfonyのvalidator、translation、config、yamlが必要)
{
  "require": {
    "silex/silex": "~1.3",
    "twig/twig": "1.*",
    "symfony/twig-bridge": "~2.7",
    "symfony/validator": "~2.7",
    "symfony/translation": "~2.5",
    "symfony/config": "~2.7",
    "symfony/yaml": "~2.7",
    "doctrine/dbal": ">=2.5.0"
  }
}
PHP
$app->register(new Silex\Provider\TranslationServiceProvider(), array(
  'locale' => 'ja',
  'translator.domains' => array(),
));

$app->before(function () use ($app) {
  $app['translator']->addLoader('xlf', new Symfony\Component\Translation\Loader\XliffFileLoader());
  $app['translator']->addResource('xlf', __DIR__.'/vendor/symfony/validator/Symfony/Component/Validator/Resources/translations/validators/validators.ja.xlf', 'ja', 'validators');
});

実際に設定してみたサイトがこちら

参考サイト
Translating Validation Messages(Silex Documentation)

0 件のコメント:

コメントを投稿