代码之家  ›  专栏  ›  技术社区  ›  Dan Blanchard

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

  •  2
  • Dan Blanchard  · 技术社区  · 6 年前

    我们这里有个问题。

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

    用户界面不是问题。

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

    1. 使用一个转换表来保持对原始模型的引用并转换每个字段。它仍然需要大字段,因为我们不能按记录定义字段大小。

    2. 最后,我提出的最佳解决方案是创建一个翻译表。该表将保留其他表的外键。对于每个翻译,我们复制需要翻译的记录。在翻译表中,有4个字段:模型名称(主)、引用ID(主)、翻译ID(主)、区域设置(主)。这个解决方案使同一模型在同一语言中不可能有多个翻译。

    3. 最后但并非最不重要的是,我们可以使用像某人提议的…数据库gettext。我们有一个表,其中只包含字符串(键、文本、区域设置),因此我们可以搜索一个模型,一个与模型中使用的字符串相同的字符串,然后使用我们找到的。

    我认为所有这些解决方案都是hack,4个解决方案可能是看起来更好的解决方案。

    因为我没有找到任何好的文档,所以我真的想让这个问题变得更突出。

    1 回复  |  直到 11 年前
        1
  •  1
  •   Imran    16 年前

    下面是我们如何处理多种语言(我们也让一些专家研究了这个解决方案!).

    • 我们在数据库中有一个表(textid,key,nl,uk,de,fr)
    • 我们有指向文本表的foreignkey(例如,productnameid)
    • 需要在HTML页面中翻译的静态文本被哈希包围:名称##
    • 在将HTML内容从服务器发送到客户机之前,对htmlstream进行分析,以便在哈希之间转换内容。
    • 翻译后的文本存储在缓存中,这使得该解决方案灵活、快速

    它为我们工作,我们建立的网站每小时有超过10万的网页浏览量。

    推荐文章