【问题标题】:Is reversing I18N translation possible?是否可以反转 I18N 翻译?
【发布时间】:2009-09-28 12:18:12
【问题描述】:

我需要导出信息,导出的文本必须翻译。在数据库中,数据是未翻译的形式。我的应用程序要求说用户还必须能够将导出的 CSV 文件导入数据库,所以我需要将翻译的文本反转为 I18N 格式,这是数据库中的数据格式。我该怎么做,或者有什么理智的方法可以做到这一点?

【问题讨论】:

  • @newbie 字符串,它们是分开的(= 一个接一个),还是连接起来?如果分开,问题就容易多了。

标签: java internationalization translation


【解决方案1】:

我同意你的看法。 在一般情况下,这似乎很不理智!比如:!!!

  • 将所有已翻译的字符串作为模式,一一对应(使用某些优先级)
  • 当模式匹配时,将其替换为该模式的未翻译值
  • 循环直到完成!!!

可以设想很多问题...


这涉及到自然语言处理研究领域。 所以这很好......研究!在日常编程中不太容易使用!

但如果您有兴趣,谷歌搜索应该会找到一些算法。 我相信它们是建立在一个复杂的模型上的(与正则表达式相比!)。


我希望您有其他一些可以指导您的信息... 有了更多的上下文,这可能是一个更容易的问题......

【讨论】:

  • @newbie 字符串,它们是分开的(= 一个接一个),还是连接起来?如果它们分开,问题就容易多了。
  • 我以相反的顺序将翻译文件加载到哈希映射中,所以现在我可以使用翻译后的字符串作为键来获得反向翻译...thnx..
【解决方案2】:

您需要维护已翻译消息的字典表。您可能已经以某种形式拥有了一个。

Master message list
| Message key | English text     |
| 1           | Payment rejected |

Translations
|Translation       | Message key |
|Paiement rejeté   | 1           |
|Talu Gwrthodwyd   | 1           |
|Maksu hylätty     | 1           |

您可以使用联接从数据导入中搜索已翻译的文本,并将其映射回未翻译的文本(或仅存储消息密钥)。

可能值得通过“减少”翻译文本来使其更加健壮 - 去除不需要的空格,替换重音字符等。在存储翻译之前和搜索之前执行此操作。数据库索引应该可以加快搜索速度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 2023-01-25
    • 2011-10-13
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    相关资源
    最近更新 更多