我目前正在构建一个将由不同国家/地区的人们使用的Web应用程序
目前我输出的所有消息(即错误等)均为英文。
存储语言常量并检索它们的最佳方法是什么?
消息很可能需要注入一些信息,就像用户输入的数据一样,
例如,我们可能会收到错误:
The email address 'test@test.co' was not a valid email address.
答案 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特别有用。