【问题标题】:Best practices for creating various language-packs on a site? PHP在网站上创建各种语言包的最佳实践? PHP
【发布时间】:2010-09-16 08:17:44
【问题描述】:

我之前为网站创建了语言包,但我不确定我正在做的是否是最好的方法。

基本上,我所拥有的只是一个包含定义字符串常量的变量的文件。通常是一组数组,其中一个数组通常指的是网站的特定元素。

然后站点代码只包含基于标志的适当文件,然后回显出适当的数组元素。

有哪些方法可以减少维护问题并降低性能?

【问题讨论】:

    标签: php language-agnostic language-packs


    【解决方案1】:

    我建议使用Zend_Translate。它在某种程度上是人们留下的其他建议的组合,只是更易于维护和设计更好。

    您可以根据自己的喜好切换适配器(支持 gettext、csv 和许多其他适配器),您不需要定义或全局变量来污染您的全局范围,并且有据可查。

    【讨论】:

    • 我会支持这一点,因为在某些情况下 Gettext 不是线程安全的,因此在某些设置中 Gettext 将成为您的眼中钉,而且它取决于安装的扩展程序。 Zend_Translate 实现了从 Gettext 到基于 XML 的翻译的多种常用方法,并集成在其他组件中
    【解决方案2】:

    使用 PHP 的最佳选择是 GetText,但并非所有服务器都内置了它,因此如果您正在管理服务器,它可能会成为阻碍。

    【讨论】:

      【解决方案3】:

      执行此操作的几种最常见方法是:

      1) 使用define('SOME_STRING', 'Some string'); - 只需使用不同的文件填充每种语言的这些定义。这非常简单,您不必到处使用“全局”。

      2) 在函数中包装字符串:translate('My String') - 这更灵活,因为您可以解析代码以创建要翻译的字符串列表,并添加变量等功能,例如translate('I can count to [number]', 10);(当然,你通常选择一个较短的函数名,比如“_”)

      【讨论】:

        猜你喜欢
        • 2011-01-30
        • 1970-01-01
        • 2014-07-21
        • 1970-01-01
        • 1970-01-01
        • 2011-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多