【问题标题】:Are there any library for i18n on plain php (without any framework)? [duplicate]在普通 php 上是否有任何 i18n 库(没有任何框架)? [复制]
【发布时间】:2012-07-16 13:33:56
【问题描述】:

可能重复:
How do you build a multi-language web site?

我继承了一些简单的 php 代码,我必须在其中进行一些更改。 因为改动很小,最大的需求是支持多语言,所以我选择保留现有代码而不是重写它,但我需要一个 i18n 库用于纯 php。

是否有任何与普通 php 一起使用的默认库?我真的不知道,使用/下载的链接会很有帮助。

更新 1:

如果你能告诉我一些类似控制台的工具,它可以帮助我构建一个包含所有应该翻译的字符串的文件,而不是手动完成(在 CakePHP 中是 __() 函数之间的每个实例) .

【问题讨论】:

  • @hakre:不,答案与我要求的完全不同,这里我们在谈论 php,而我们在谈论 java。
  • 我想说阅读有帮助:stackoverflow.com/a/41379/367456
  • @hakre:谢谢,我没有注意到,这个答案很好,但是我不知道问题 is 是否真的与此重复,因为我认为只是那里有一个php答案。
  • 重复的建议是我的 2 美分,我的 2 美分中的另一个是:gettext 效果很好,而且速度很快。它非常独立,如果您了解它,它也适用于其他可用的计算机语言,并且存在工具链以及备用库。所以它不会变得容易得多。为了您的更新:Poedit 为您解析 _()。并且存在更多工具,这只是一/二。
  • @hakre:这绝不是另一个问题的重复。虽然答案可能相似(gettext),但 question 本身是完全不同的(它是关于 PHP,而不是 Java),这才是最重要的。

标签: php internationalization


【解决方案1】:

intl(从 php 5.3 开始)和gettext(从永远开始)

来自 php intl 扩展文档页面:

国际化扩展(进一步称为 Intl)是一个 ICU 库的包装器,使 PHP 程序员能够执行 UCA-conformant 排序规则和日期/时间/数字/货币格式 在他们的脚本中。

来自 gettext 文档页面:

这个软件包为程序员、翻译人员甚至用户提供了一个很好的 集成的工具和文档集。具体来说,GNU gettext 实用程序是一组提供框架的工具 哪些其他免费软件包可能会产生多语言消息。

【讨论】:

  • 我为什么要选择一个或另一个?此外,是否有任何有用的控制台命令(如 cake)可以使用我应该翻译的字符串的所有实例构建一个语言环境文件?
  • 你应该选择两者而不是一个或另一个。如果您在计算机上安装 gettext,还有一些有用的控制台命令。是的是的。但是,阅读会有所帮助。 :)
  • 它们用于不同的事物。 Intl - 用于以本地化方式输出日期/货币/音译/格式化数字。 gettext 用于翻译。
  • @kgb:谢谢,这很重要!我应该同时使用。
【解决方案2】:

gettext 是使用非常普遍的 gettext 系统的默认 PHP i18n 扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 2013-03-08
    • 2011-04-19
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多