0

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

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

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

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

等待您的建议。提前谢谢。

4

3 回答 3

3

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

于 2012-04-13T18:31:11.750 回答
3

你为什么不尝试一些像谷歌翻译这样带有公开可用 API 的服务呢?

提示: 我不认为谷歌的服务仍然对公众开放(显然是因为广泛的滥用,但我认为 Altavista 有类似的替代方案)


更新 :

未(个人)测试:

还有一个访问Altavista 的 BabelFish翻译服务的示例脚本:

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

于 2012-04-13T18:17:09.297 回答
2

这取决于您要优化的内容。将信息存储两次并不像最初看起来那样糟糕。例如,在许多情况下,为了提高计算效率,在数据库中存储冗余信息是值得的,这很可能就是其中之一。

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

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

  • 准确性。没有一个自动翻译器能像一个相当称职的人工翻译器那样擅长提供高质量的翻译。当然,如果您不雇用人工翻译,并且无论如何都只是依赖机器翻译,那么这不是什么大问题。

  • 速度。自动翻译在处理大型文档的时间方面并非完全微不足道。花费在翻译上的 CPU 周期是没有花费在其他事情上的周期,并且因为这些周期必须在请求和响应之间花费,所以无论如何它都会使您的延迟变得更糟。如果您有大量的 CPU 周期并且您输出的文本块相对较小,那么这不是问题。

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

所以......虽然您的案例可能是您只想以一种语言保存它的情况(特别是如果您有很多文本要处理,它会以小块的形式出现,而您不会非常关心您的弗拉芒语用户的用户体验)它也很可能不是。

于 2012-04-13T18:31:38.130 回答