多语言应用:最好的方式?

时间:2011-02-21 17:14:04

标签: android localization android-resources

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

4 个答案:

答案 0 :(得分:22)

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

拥有“multilangauge app”(就像你所说的那样)的问题是众所周知的,解决它的过程称为internationalization and localization。通常,当您使用框架或编程语言时,您可以查找与此主题相关的现有包/库 - 这几乎是其他人花费大量时间构建良好机制来促进这一点。

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

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

答案 1 :(得分:7)

这里有两个截然不同的目标:

  • 可以在不同Android平台上运行的应用,每个平台都设置为使用不同语言的区域设置
  • 在单一平台上运行的应用,允许用户在不改变平台区域设置的情况下在应用中选择其他语言

前一个问题得到了很好的支持,正如其他人所指出的那样,在文档中进行了讨论。后者得不到很好的支持(请参阅herehere以及here)。

根据手机上安装的区域设置,在应用内支持多种语言也可能会遇到字体问题。您可能需要使用应用程序打包自己的字体(例如,请参阅here)。即使这样,如果字体渲染引擎不支持该语言也可能会出现问题(对阿拉伯语和泰语等复杂脚本有很多抱怨)。

答案 2 :(得分:2)

Android的设计考虑了这个问题。

查看官方参考:

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

答案 3 :(得分:2)

您可以使用XML创建字符串并将其插入iL10Nz

为了避免上下文问题,最好为逐步创建的每个字符串设置一个屏幕截图。这将取消您将翻译成的语言

检查http://www.myl10n.net