gpt4 book ai didi

php - Zend_Framework - 在区域设置 'zh' 中找不到区域

转载 作者:可可西里 更新时间:2023-11-01 13:24:20 25 4
gpt4 key购买 nike

我浏览了 Internet,但似乎无法找到解决我遇到的问题的方法。我正在尝试使用 Zend_Currency 来获取中国的货币,如下所示:

$currency = new Zend_Currency('CN');

但是,我不断收到以下错误:

Fatal error: Uncaught exception 'Zend_Currency_Exception' with message 'No region found within the locale 'zh'' in /Library/WebServer/Documents/vendor/zendframework/zendframework1/library/Zend/Currency.php on line 561

这是在 Zend Framework 1.12.3 的全新安装上,据我所知,我在这里没有做任何不正确的事情。从错误中我可以看出 Zend 已将国家/地区代码与语言环境相匹配。

这是一个问题,因为我的应用程序依赖于从国家代码获取货币信息。我对 GB、US 等没有问题。

我查看了 Zend/Locale/Data 并且可以确认 zh.xmlzh_CN.xml 语言环境文件是在那里,但我承认我不是 100% 在每一个中寻找我想要的东西!

有人对问题是什么以及我如何解决它有任何想法吗?

谢谢

编辑:

这是反射(reflect)评论讨论的编辑。

似乎 Zend_Locale 在给定国家代码 CN 时返回 zh,而不是预期的字符串 zh_CN。这意味着我找不到任何可以传递给 Zend_Currency 以避免错误的一致的东西。

最佳答案

我认为这是 Zend 对 CN 区域管理不当的错误。
事实上,如果我没记错的话,locale 的名称是 zh_Hans_CN 并且当它管理 CN 区域时 Zend 查看它是否是变量 的一部分$_localeData(在 Zend/Locale.php 文件中),因为情况并非如此,它分解了 zh_Hans_CN 并只保留他也不知道的 zh

如果要保持与$currency = new Zend_Currency('CN');相同的原理
你可以试试:

Zend_Locale::getLocaleToTerritory('CN');

默认会获取正确的语言环境。 (比如 'US''en_US')
给出:

$currency = new Zend_Currency(Zend_Locale::getLocaleToTerritory('CN'));

关于php - Zend_Framework - 在区域设置 'zh' 中找不到区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23757550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com