2012-11-25 53 views
1

我很努力在Zend 2中爲錯誤消息設置默認語言(在嘗試提交無效表單時顯示)。我已經從快速入門教程下載了代碼並添加了以下內容線..module \專輯\ CONFIG \ module.config.php:在Zend2中爲錯誤消息設置翻譯

//[...] 
'translator' => array(
    'locale' => 'de_DE', 
    'translation_patterns' => array(
     array(
      'type' => 'gettext', 
      'base_dir' => __DIR__ . '/../language', 
      'pattern' => '%s.mo', 
     ), 
    ), 
), 

$translator = $this->getServiceLocator()->get('translator'); 
    $translator->setLocale('de_DE'); 
在我的控制器

。這兩個似乎都沒有工作。在... \ vendor \ zendframework \ zendframework \ resources \ languages中有一些翻譯。我沒有安裝Intl PHP擴展程序,但我非常希望在沒有此擴展的情況下翻譯工作。

感謝您的幫助,

安德烈亞斯

+0

您能否給出您用於翻譯錯誤信息的函數調用? – Beniston

+0

我希望我不必調用任何函數。例如。我想設置一個表單元素,並期望一個翻譯的錯誤信息。 – ACNB

回答

1

經過一番研究,看來在國際PHP擴展的真正需要。使用Intl擴展,您可以將默認翻譯器設置爲抽象驗證器。來自docs

$translator = new Zend\I18n\Translator\Translator(); 
$translator->addTranslationFile(
    'phpArray', 
    'resources/languages/en.php', 
    'default', 
    'en_US' 
); 
Zend\Validator\AbstractValidator::setDefaultTranslator($translator);