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

时间:2010-03-10 17:07:15

标签: php localization

我目前正在构建一个将由不同国家/地区的人们使用的Web应用程序

目前我输出的所有消息(即错误等)均为英文。

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

消息很可能需要注入一些信息,就像用户输入的数据一样,

例如,我们可能会收到错误:

The email address 'test@test.co' was not a valid email address.

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

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

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

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

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

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

  • 日期和数字格式
  • 复数/单数形式
  • 按字母顺序排列

答案 2 :(得分:0)

我将它们存储在数据库中并按语言检索。例如,

SELECT message FROM messages WHERE key ='error_email'AND lang ='de';

只是一个非常通用的想法

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

答案 3 :(得分:0)

你有没有看过XLIFF?我认为this article特别有用。

相关问题