在数据库中翻译文本的最佳方法是什么

时间:2009-04-03 21:39:25

标签: database localization

我们这里有一个问题。

我们需要将网站翻译成多种语言。 我们已经使用gettext来翻译静态内容。但我们必须用多种语言翻译一些文本内容。

ui不是问题。

我们找到了两种翻译文字的方法。  1.在我们的文本输入中使用JSON 为什么这个解决方案很糟糕每个文本输入都需要更大,因为我们无法猜测属性的实际大小。

  1. 使用保留对原始模型的引用的翻译表并翻译每个字段。它仍然需要大字段,因为我们无法通过记录来定义字段大小。

  2. 最后,我带来的最佳解决方案是创建一个翻译表。该表将保留其他表的外键。对于每个翻译,我们复制需要翻译的记录。在转换表内,有4个字段,model_name(主要),reference_id(主要),translated_id(主要),locale(主要)。该解决方案使得无法在同一语言中对同一模型进行多次翻译。

  3. 最后但并非最不重要的是,我们可以使用像某人提议的东西......数据库gettext。我们有一个包含字符串和只有字符串(键,文本,语言环境)的表,所以我们可以搜索一个模型,一个与模型中使用的字符串相同的字符串,然后使用我们找到的字符串。

  4. 我的观点是所有这些解决方案都是黑客攻击,4解决方案可能看起来更好。

    由于我没有找到任何好的文件,我真的想让这个问题大放异彩。

1 个答案:

答案 0 :(得分:1)

以下是我们处理多种语言的方式(我们也有专家看过这些解决方案!)。

  • 我们在数据库中有一个表格(textid,key,nl,uk,de,fr)
  • 我们有文本表的外键(例如productnameid)
  • 需要在html页面中翻译的静态文本用哈希包围:## name ##
  • 在html内容从服务器发送到客户端之前,解析htmlstream以在哈希值之间转换内容。
  • 翻译的文本存储在缓存中,这使得该解决方案变得灵活且仍然快速

它适用于我们,我们构建的网站每小时浏览量超过10万。