我有一个关于创建多语言网站的问题,该网站也允许网站管理员添加新语言或编辑语言单词。 我想知道将所有语言存储在数据库中并根据用户语言是否是一个好主意,从数据库获取所有单词并将它们放在一个数组中?
如果没有,还有什么其他解决方案?
最重要的是管理员可以添加新语言。
谢谢
答案 0 :(得分:0)
只要翻译静态内容,就可以使用gettext实用程序了。它解决了所有与翻译相关的问题,让您可以使模板免于不必要的代码。动态内容的翻译可以通过多种方式完成。首先,动态内容的翻译永远不应该保留在静态资源中,而应该与内容保持在一起(就像漂亮的url一样)。任何为每种语言创建新表或字段的解决方案都会创建一对一的关系或重复的结构信息,这两者都会损害性能和简单性。创建存储原始语言的id的新列可以是一种解决方案,但它需要对翻译进行其他(子)查询,并且每个项目都具有基本语言。如果漂亮的URL被用作唯一键并且URL被翻译,那么这可能是正确的解决方案。否则,如果未翻译唯一键,您甚至可以只更改它们以包含语言列,允许您直接查询每个项目的翻译版本,但是需要其他(子)查询来查找其他项目在请求的语言中它不存在的语言。最后两种方法之间的决定取决于数据的性质。