【发布时间】:2015-02-12 14:38:37
【问题描述】:
我有一个用 PHP 编写的应用程序,后面有 MySQL。最初该应用程序使用的是非常无效的自定义语言类,因此我将所有内容都更改为使用 gettext。 问题是数据库中有很多字符串,存储在从不更改的表中读取。好消息是每次安装都只使用一种语言。
为了提供不同语言的字符串,之前使用了不同的数据库。有 database_en、database_fr 等,并且每个新安装都使用适当的本地化数据库。我想改变这一点——一个适用于所有语言的数据库。
我正在考虑将所有特定语言从数据库移到配置文件中,在那里可以再次使用 gettext。
您认为这是个好主意,还是会继续为不同的安装使用不同的数据库?你能推荐一些更好的吗?
【问题讨论】:
-
这取决于您的项目更改/发展的程度和频率。在开发新功能时拥有多个数据库会增加额外的工作量并可能带来额外的错误。因此,通常只有一个用于多种语言的数据库会更干净,但这在很大程度上取决于项目的特性。不要以为这个问题只有一个明确而正确的答案,请参阅programmers.stackexchange.com/questions/143578/…。
-
这是什么文字?像文章一样的长文本或最多只有几个词的简短 sn-ps?我个人的处理方式不同。
-
@DanMan 绝对有效的问题。最长的文本大约 100 个单词,大部分字符串只有 1-2 个单词。我正在考虑将它们存储在数据库中是否合理,因为即使我将所有内容(从文件)加载到内存中,它也可能比连接更快。
-
@DanMan 我不认为这是对链接问题的欺骗,因为链接问题假定翻译将存储在 SQL 数据库中,而这个问题正在明确考虑替代方案。 (可能这应该被关闭,因为“过于宽泛”或“主要基于意见”;我在围栏上,倾向于不理会它。)
标签: php mysql database localization internationalization