多语言应用的最佳方法?

11

什么是开发多语言应用的最佳方式? 我应该先创建一组使用我的语言编写的字符串,然后使用谷歌API进行实时在线翻译吗?有任何代码示例吗? 以及,如何获取用户的语言设置并将此信息传递给API?


可能是 https://dev59.com/2m445IYBdhLWcg3w6eRo 的重复问题。 - Ted Hopp
无重复:该链接仅用于动态语言更改。 - Geltrude
4个回答

22
我不会相信即时翻译您的字符串;即使最好的自动翻译器也可能产生不准确的输出。此外,通过这种方式处理翻译,您还增加了相当数量的复杂性、开销和依赖(例如,需要网络连接)。
“多语言应用程序”(正如您所称呼的)的问题是众所周知的,解决它的过程被称为国际化和本地化。一般来说,在使用框架或编程语言时,可以寻找与此主题相关的现有软件包/库——几乎可以肯定,其他人已经花费了大量时间建立一个良好的机制来促进这一点。
Android也不例外;它已经开发了内置本地化支持。Android开发者文档提供了一份全面的本地化指南,您应该仔细阅读。您仍然需要以某种方式翻译您的文本,但是如何向用户提供区域设置特定的消息的许多“基础工作”已经为您铺平了道路。
最后一点提示——Android文档还提供了一个名为“Hello, L10n”的教程,介绍了创建本地化应用程序的基础知识。希望这可以帮助您!

+1 我读了你的链接。我不知道存在这种惊人的自动化方法!太棒了(对我来说;-) - Geltrude

8

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

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

前一个问题得到了很好支持,正如其他人指出的那样,在文档中有所讨论。后一个则没有得到很好的支持(请参见此处此处此处)。

根据手机上安装的语言环境,支持多种语言可能会遇到字体问题。您可能需要在应用程序中打包自己的字体(例如,请参见此处)。即使这样,如果字体渲染引擎不支持该语言,则仍可能存在问题(对于像阿拉伯语和泰语这样的复杂脚本,已经有很多关于此的投诉)。


这可能很有趣 +1 - Geltrude
谢谢这些链接。我已经为我的应用程序进行了本地化,但用户希望能够仅更改应用程序的语言而不更改手机的语言。 - ekawas

2

2
你可以在 XML 中创建字符串并将它们插入到 iL10Nz 中。
为了避免上下文问题,最好为你逐步创建的每个字符串都有一个截图。这将有助于你翻译成其他语言时更容易理解。
请查看 http://www.myl10n.net

2
网站无法运行。 - Skizo-ozᴉʞS ツ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接