代码之家  ›  专栏  ›  技术社区  ›  Camsoft

如何在PHP中存储和检索特定于语言的文本?

  •  3
  • Camsoft  · 技术社区  · 16 年前

    我目前正在构建一个将被不同国家的人使用的Web应用程序

    目前,我输出的所有消息(如错误等)都是英文的。

    存储和检索语言常量的最佳方法是什么?

    很可能这些消息也需要注入一些信息,比如用户输入的数据等,

    例如,我们可能有错误:

    The email address 'test@test.co' was not a valid email address.
    
    4 回复  |  直到 16 年前
        1
  •  4
  •   Tom Castle    16 年前

    GNU gettext 提供执行此操作的工具和框架。 This is a decent article 关于在PHP中使用gettext。

        2
  •  4
  •   Álvaro González    16 年前

    注入信息的通常方法是使用printf()代码,通常为%s:

    The email address '%s' was not a valid email address.
    

    除此之外,您还有许多选择:

    • 这个 gettext 函数允许您使用特定的工具来构建初始字符串文件并跟踪翻译状态。

    • 如果您只有几个字符串要翻译,那么好的旧PHP常量非常方便。

    另外,不要忘了本地化不仅仅包括翻译文本。您还必须考虑以下内容:

    • 日期和数字格式
    • 复数/单数形式
    • 按字母顺序
        3
  •  0
  •   Sejanus    16 年前

    我将它们存储在数据库中,然后用语言检索。例如,

    从消息中选择message,其中key='error'u email'和lang='de';

    只是一个非常普通的想法

    将语言存储在不同的表中并使用外键可能是有意义的。

        4
  •  0
  •   Peter Bailey    16 年前

    你查过了吗 XLIFF ?我想 this article 尤其有用。

    推荐文章