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

3

我目前正在开发一个网络应用程序,将被不同国家的人使用。

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

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

很可能还需要向其中注入一些信息,例如用户输入的数据等。

例如,我们可能会遇到以下错误:

The email address 'test@test.co' was not a valid email address.
4个回答

4
GNU gettext提供了工具和框架来实现文本翻译。这篇不错的文章介绍了如何在PHP中使用gettext,可以让你的网页应用更加国际化。请点击GNU gettext这篇文章了解更多信息。

4
通常注入信息的方法是使用printf()代码,通常使用%s:
The email address '%s' was not a valid email address.

除此之外,您还有一些选择:
  • gettext函数允许您使用特定的工具构建初始字符串文件并跟踪翻译状态。

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

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

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

0
我会将它们存储在数据库中,并按语言进行检索。例如,
SELECT message FROM messages WHERE key = 'error_email' AND lang = 'de';
这只是我脑海中的一个非常通用的想法。
可能最好将语言存储在不同的表中,并使用外键。

该应用程序不是基于数据库的,因此我不想仅为语言常量添加一个数据库。 - Camsoft
在这种情况下,我曾经使用过xml。然而其他建议可能会更好,我现在正在阅读那些链接。以前不知道 :) - Sejanus

0

这看起来很有趣,但对于我的项目来说有点过头了。 - Camsoft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接