我正在为iPhone开发一个新的应用程序,该应用程序必须支持两种语言:法语和佛兰德语。
如果我将实现我的数据库并在两种语言上存储相同的数据,那将是数据冗余问题,这不是数据库的目标。正确?
所以,我正在考虑一个即时翻译器,例如,DB上的默认语言和数据都是法语,如果用户选择Flamand语言,将从数据库中检索的所有数据(法语)将被翻译在向用户展示之前在Flamand中。
这是一个好方法,如果是的话,iOS SDK上是否有翻译?它是最佳解决方案吗?
等待你的建议。提前完成。
答案 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的用户的用户体验)它也很可能不是。