在我的应用程序中,我使用serval语言。我是我的module.php我通过以下方法设置用户的语言环境:
$translator = $e->getApplication()->getServiceManager()->get('translator');
$translator ->setLocale(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']))
->setFallbackLocale($this->setDomainLocale());
在这个应用程序上运行服务器domain.tdl(不同的语言)所以我在我的后备中使用一个函数来设置每个域的回退区域设置,无论如何......
我想使用currencyFormat但是我没有按照用户的语言环境使用它。我使用和不使用'\ Locale :: getDefault())'尝试了下面的代码; 像“1509053”这样的数字应该以'€1.509.053.00'或','取决于地区,我只需要'€1509053.00'。
$this->plugin("currencyformat")->setCurrencyCode("EUR")->setLocale(\Locale::getDefault());
输出\ Locale :: getDefault())
string(11) "en_US_POSIX"
module.php $ translator
的输出 class Zend\I18n\Translator\Translator#193 (8) { protected $messages => array(0) { }
protected $files => array(0) { } protected $patterns => array(1) { 'default' => array(1) { [0] => array(3) { 'type' => string(7) "gettext" 'baseDir' => string(119) "..../module/.../config/../language" 'pattern' => string(5) "%s.mo" } } } protected $remote => array(0) { } protected $locale => string(35) "nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4" protected $fallbackLocale => string(5) "nl_NL" protected $cache => NULL protected $pluginManager => NULL }
希望有人能把我放在正确的方向:) Thnx
答案 0 :(得分:0)
使用函数'\ Locale :: getDefault();'我们需要先设置'\ Locale :: setDefault(language_code);' $ translate-> setLocale未设置Locale :: getDefault();。