【问题标题】:What is the best way to translate text inside a database在数据库中翻译文本的最佳方法是什么
【发布时间】:2010-10-17 11:32:21
【问题描述】:

我们这里有问题。

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

用户界面不是问题。

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

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

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

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

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

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

【问题讨论】:

    标签: database localization


    【解决方案1】:

    以下是我们处理多种语言的方法(我们也请了一些专家研究这种解决方案!)。

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-10
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多