我需要创建一个全局应用程序。这意味着它应该在世界任何地方,任何国家(或大多数国家)都可以正常工作。这是一个PHP网站,可以在某些时间处理金钱和时间。
我希望我能为各国,相关的时区,货币格式,符号和代码,这种东西知道一个很好的资源......
如果有人提供有关这类数据的提示以及如何以适当的方式使用它们,我将非常感激:)
提前致谢!
答案 0 :(得分:3)
答案 1 :(得分:2)
看一下intl(http://www.php.net/manual/en/book.intl.php)。
它是ICU(Unicode的国际组件,http://site.icu-project.org/)的包装,包含了您需要的大部分内容。
答案 2 :(得分:1)
看看Mantis BugTracking software如何处理国际化。他们使用的方法相当不错。
其他信息:
我使用它已经有好几年了,但是通过源代码快速浏览可以看出这部分代码没有发生重大变化。他们使用许多产品使用的公共消息目录和获取消息方法。他们的语言API非常简单 - phpxref output is available并没有那么令人惊讶。消息目录实现为PHP脚本,只需获取include
'd。例如,the catalog for English包含以下条目:
$s_new_bug = 'New Issue';
$s_bugnote_added = 'Note Added';
它包含大约1,600个左右的声明。有趣的魔法发生在lang_load
内。加载语言时,将包含目录文件,因此它定义的所有变量都在本地范围内定义。 Lang_load
遍历本地定义的变量,并根据变量名称构建消息映射,以便它可以按名称查找消息。例如,在加载上一个代码段之后,就好像执行了以下语句:
$g_lang_strings['en']['new_bug'] = 'New Issue';
$g_lang_strings['en']['bugnote_added'] = 'Note Added';
当用户界面需要访问“硬编码”字符串时,它会使用lang_get('new_bug')
这样的调用:
lang_load()
有趣的是,所有的机器都是懒散的。在您需要访问其中一种语言之前,您不需要为它们定义了50种左右的语言付费。总的来说,这可能是我多年来挖掘过的最具代表性的PHP应用程序之一。
答案 3 :(得分:1)