即时语言翻译

时间:2012-04-13 17:43:50

标签: xcode ios5

我正在为iPhone开发一个新的应用程序,该应用程序必须支持两种语言:法语和佛兰德语。

如果我将实现我的数据库并在两种语言上存储相同的数据,那将是数据冗余问题,这不是数据库的目标。正确?

所以,我正在考虑一个即时翻译器,例如,DB上的默认语言和数据都是法语,如果用户选择Flamand语言,将从数据库中检索的所有数据(法语)将被翻译在向用户展示之前在Flamand中。

这是一个好方法,如果是的话,iOS SDK上是否有翻译?它是最佳解决方案吗?

等待你的建议。提前完成。

3 个答案:

答案 0 :(得分:3)

为什么不尝试使用公开API的Google Translator等服务?

提示: 我不认为Google的服务仍然对公众开放(显然是因为广泛滥用,但我认为Altavista有类似的选择) < / p>


更新:

未经(个人)测试:

用于访问 Altavista的BabelFish 翻译服务的示例脚本:

http://code.activestate.com/recipes/64937-babelizer-api-for-simple-access-to-babelfishaltavi/

答案 1 :(得分:3)

要添加Dr.Kameleon的答案,我建议您将两种语言存储在数据库中。 2种语言中的相同内容是不同的内容。但我也建议您进行适当的手动翻译,而不是对任何专业级应用程序使用自动翻译。

答案 2 :(得分:2)

这取决于你正在优化的内容。将信息存储两次并不像最初出现时那么糟糕。例如,在许多情况下,为了计算效率而在数据库中存储冗余信息是值得的,这可能就是其中之一。

  • 以两种语言存储数据的主要成本是......好吧,你用两种语言存储数据。这意味着您将占用大约两倍的空间来存储文本块。如果你有足够的文本存储空间实际上是一个问题,那么这显然是一个问题。如果你不这样做,那真的不是。

另一方面,存储两者都有一些好处。

  • 精度。没有自动翻译能够提供高质量的翻译作为一个合理称职的人工翻译。当然,如果你不是雇用一名人工翻译,而且只是依赖于机器翻译,那么这不是一个问题。

  • 速度。在大型文档的处理时间中,自动翻译并不是完全无关紧要的。花在翻译上的CPU周期是不花在其他事情上的周期,因为这些周期必须在请求和响应之间花费,所以无论如何都会使你的延迟更糟。如果你有足够的CPU周期并且你输出的文本块相对较小,那就不是问题了。

  • 安全性和可靠性。如果您打算使用外部服务为您运行这些翻译,突然您的服务依赖于该服务运行,并且每当您外出任何事情时,您都会打开一两个潜在的安全漏洞(有多糟糕)这些漏洞取决于你是如何做的,但它们会在那里。)或者,如果你打算在内部运行翻译,你必须保持翻译服务的运行,这可能不涉及安全问题,但将涉及额外的维护。

所以......虽然你的案例可能只需要用一种语言来保存(特别是如果你有很多文字可以处理,它会以小块的形式出现,而你不关心所有那么多关于你讲Flamand的用户的用户体验)它也很可能不是。