拥有多语言应用程序的最佳方式是什么?我应该创建一组用我的语言编写的字符串,然后使用即时在线翻译的谷歌 api 吗?任何代码示例?还有,如何获取用户的语言以及如何将这些信息传递给 api?
4 回答
我不相信你的字符串的即时翻译;即使是最好的自动翻译器也会产生不准确的输出。此外,通过这种方式处理翻译,您会增加相当多的复杂性、开销和依赖性(例如,拥有网络连接)。
拥有“多语言应用程序”(如您所说)的问题是众所周知的,解决它的过程称为国际化和本地化。一般来说,当您使用框架或编程语言时,您可以查找与该主题相关的现有包/库——几乎可以肯定的是,其他人已经花费了大量时间来构建一个好的机制来促进这一点。
安卓也不例外;它是在内置本地化支持的情况下开发的。Android 开发者文档有一个全面的本地化指南,你应该看看。您仍然需要以某种方式翻译您的文本,但是如何为用户提供特定于语言环境的消息的许多“基础工作”已经为您准备好了。
最后一点——Android 文档还提供了一个名为“ Hello, L10n ”的教程,它将引导您了解创建本地化应用程序的基础知识。希望这可以帮助!
这里可能有两个非常不同的目标:
- 一个可以在不同 Android 平台上运行的应用程序,每个平台都设置为具有不同语言的区域设置
- 在单一平台上运行的应用程序,允许用户在应用程序中选择不同的语言,而无需更改平台区域设置
前一个问题得到了很好的支持,正如其他人所指出的,在文档中进行了讨论。后者没有得到很好的支持(见这里和这里和这里)。
根据手机上安装的语言环境,在应用程序中支持多种语言也可能会遇到字体问题。您可能必须将您自己的字体与应用程序打包在一起(例如,请参见此处)。即使这样,如果字体渲染引擎不支持该语言,也可能会出现问题(对于阿拉伯语和泰语等复杂的脚本,对此有很多抱怨)。
Android 在设计时就考虑到了这个问题。
查看官方参考:
http://developer.android.com/guide/topics/resources/localization.html
您可以在 XML 中创建字符串并将它们插入到iL10Nz中。
为了避免上下文问题,最好为您逐步创建的每个字符串提供屏幕截图。这将通过您将翻译成的语言得到回报