1

我正在尝试使用 Intl 包实现语言环境支持。NumberFormatter更改时工作并更改输出样式,LocaleIntlDateFormatter似乎没有检测到语言环境更改。

我正在使用这段代码设置语言环境,在“en_US”和“sv_SV”之间切换。

setlocale(LC_ALL, $locale . ".UTF-8");
return \Locale::setDefault($locale);

IntlDateFormatter然后使用此代码初始化

// _locale is set on each pass, since locale may change during runtime
$this->_locale = \Locale::getDefault(); // en_US or sv_SV
$this->_dateFormatter = new \IntlDateFormatter($this->_locale, null, null);

当我现在尝试格式化日期名称时,例如星期三,我总是得到名称的英文表示 - 即使预期瑞典表示。

$this->_dateFormatter->setPattern("EEEE");
return mb_convert_case($this->_dateFormatter->format($this->getDateTime($argument)), MB_CASE_LOWER);

这应该输出“onsdag”,但两个语言环境都输出“wednesday”。我在这里做错了什么?

4

0 回答 0