我有 Zend Framework 3 应用程序和使用 po 文件的工作翻译器。
我在我的 \config\global.php 文件中这样配置它:
'translator' => [
'locale' => 'en_US',
'translation_file_patterns' => [
[
'type' => 'gettext',
'base_dir' => getcwd() . '/data/language/',
'pattern' => '/%s/general.mo',
],
],
],
当我更改“语言环境”的值时,它可以正常工作并找到正确的 .po 文件。我需要能够根据保存在数据库中的用户配置文件的值来设置区域设置。
我已经检查了这里的文档http://zendframework.github.io/zend-i18n/translation/和这里的教程https://docs.zendframework.com/tutorials/i18n/但他们只是提到了 setLocale()没有解释或示例的方法。Zend framework 2有类似的线程:How to set locale globaly? 但它适用于 ZF2,它不提供可行的解决方案,只是提供一些建议。
总结一下我的问题 - 我应该如何以及在哪里使用 setLocale() 方法,以便它在整个应用程序中有效,并且$this->translate($message)
在所有视图文件中都将使用新的语言环境而不是配置文件中使用的默认语言环境?