【发布时间】:2021-12-09 06:22:50
【问题描述】:
我正在使用 Cakephp 4 在我的网站上使用 i18n。
我的路线使用 2 个字符的语言(fr、en、it 等)
// Route For example
$builder
->connect(
'/{lang}/{controller}/{action}/*',
[]
)
->setPatterns([
'lang' => 'fr|en|it'
])
->setPersist(['lang']);
由于没有定义国家,当我这样做时:
echo __(
'Bonjour {0}, votre solde au {1,date} est de {2,number,currency}',
['Olivier', \Cake\I18n\FrozenTime::now(), 1354.37]
);
货币是¤,而不是€。
所以我在AppController 中设置了国家/地区 FR 的语言:
if($this->request->getParam('lang'))
I18n::setLocale($this->request->getParam('lang') . '_FR');
我们的目标是让€ 不管是什么语言。
因此,它会生成fr_FR、en_FR、it_FR。
这样做是正确的还是丑陋的?
如果有人能启发我...
【问题讨论】:
标签: php internationalization cakephp-4.x