med*_*iev 8 php localization internationalization setlocale zend-locale
我试图生成一个本地化的日期字符串strftime,我使用的占位符是%x.语言/语言环境是setlocale(LC_ALL, array('jp','japanese')),但两个语言环境都不可用,因此它生成了一个包含不正确字符的字符串.然后我安装了ja_JP.utf8语言环境并指定它作为数组中的第一个元素,并解决了我的日期格式问题.
我的问题是,我应该总是依赖于安装的语言环境吗?我知道如何在我有root权限的盒子上安装它们,但是如果我没有访问权限呢?
我相信Zend_Locale并且Zend_Translate根本不依赖,setlocale但不知何故在内部进行,这给我的印象是它对于企业级应用程序实际上是不可行的.
我知道我大概可以用Zend_Locale和Zend_Translate我的应用程序,但它也需要支持PHP4,至少再延长一年这就是为什么我不能完全依赖这些.
您可以检查setlocale的返回值,至少检查它是否已安装。否则,您将出现无声失败:
setlocale(LC_ALL, 'en_US') or die('Locale not installed');
Run Code Online (Sandbox Code Playgroud)