11

拥有多语言应用程序的最佳方式是什么?我应该创建一组用我的语言编写的字符串,然后使用即时在线翻译的谷歌 api 吗?任何代码示例?还有,如何获取用户的语言以及如何将这些信息传递给 api?

4

4 回答 4

22

我不相信你的字符串的即时翻译;即使是最好的自动翻译器也会产生不准确的输出。此外,通过这种方式处理翻译,您会增加相当多的复杂性、开销和依赖性(例如,拥有网络连接)。

拥有“多语言应用程序”(如您所说)的问题是众所周知的,解决它的过程称为国际化和本地化。一般来说,当您使用框架或编程语言时,您可以查找与该主题相关的现有包/库——几乎可以肯定的是,其他人已经花费了大量时间来构建一个好的机制来促进这一点。

安卓也不例外;它是在内置本地化支持的情况下开发的。Android 开发者文档有一个全面的本地化指南,你应该看看。您仍然需要以某种方式翻译您的文本,但是如何为用户提供特定于语言环境的消息的许多“基础工作”已经为您准备好了。

最后一点——Android 文档还提供了一个名为“ Hello, L10n ”的教程,它将引导您了解创建本地化应用程序的基础知识。希望这可以帮助!

于 2011-02-21T17:18:51.920 回答
8

这里可能有两个非常不同的目标:

  • 一个可以在不同 Android 平台上运行的应用程序,每个平台都设置为具有不同语言的区域设置
  • 在单一平台上运行的应用程序,允许用户在应用程序中选择不同的语言,而无需更改平台区域设置

前一个问题得到了很好的支持,正如其他人所指出的,在文档中进行了讨论。后者没有得到很好的支持(见这里这里这里)。

根据手机上安装的语言环境,在应用程序中支持多种语言也可能会遇到字体问题。您可能必须将您自己的字体与应用程序打包在一起(例如,请参见此处)。即使这样,如果字体渲染引擎不支持该语言,也可能会出现问题(对于阿拉伯语和泰语等复杂的脚本,对此有很多抱怨)。

于 2011-02-21T17:53:59.143 回答
2

Android 在设计时就考虑到了这个问题。

查看官方参考:

http://developer.android.com/guide/topics/resources/localization.html

于 2011-02-21T17:18:08.333 回答
2

您可以在 XML 中创建字符串并将它们插入到iL10Nz中。

为了避免上下文问题,最好为您逐步创建的每个字符串提供屏幕截图。这将通过您将翻译成的语言得到回报

检查http://www.myl10n.net

于 2011-02-22T08:38:59.107 回答