Android应用程序本地化 - 在运行时下载翻译

时间:2016-05-17 14:03:45

标签: android facebook xamarin localization

我正在开发一款需要支持大量语言的应用。我希望能够在用户从设置菜单中选择新语言时下载该语言,而不是将所有语言捆绑在应用程序资源中。

Facebook移动应用程序做得非常好。如果您已登录,请转到设置>语言>切换语言>选择一种不同的语言。

我认为Facebook正在下载这些语言资源,因为如果我将手机置于飞行模式,它就不起作用(再次尝试提示,或默认使用英语)。

由于app资源无法在运行时编辑,我猜Facebook正在使用数据库下载该语言,然后从那里加载翻译?!

p.s我实际上是想在Xamarin中尝试这样做...试图理解Facebook Android方法,以便我自己实现它。

2 个答案:

答案 0 :(得分:2)

我不是特别了解Facebook,但我知道有些人正在使用这种技术 - 我已经看过其他公司类似设置的演示文稿。有几个明显的好处:

  • 通过不捆绑30种语言的字符串来减少整体应用程序的大小。
  • 能够在不强制用户下载应用更新的情况下改进本地化字符串。
  • 有关您的用户使用的语言的更好数据。

当我看到呈现时(再次,这不是Facebook专门),它的工作方式与您建议的一样 - 用户选择首选语言,应用程序从服务器获取字符串包,然后开始使用它。设置语言后,应用程序甚至可以定期刷新本地化的字符串包以获取更新。

但是,要注意一些缺点,特别是如果本地化字符串随时间变化。它可以使支持变得棘手 - 如果字符串已经改变,则可以根据用户使用应用程序的确切时间来调用按钮(例如)。它也会真正对你的i18n策略和QA施加压力,以确保用可能经常变化的字符串确保UI看起来不错。

答案 1 :(得分:0)

如果您下载本地化文件,则无法使用Android中的默认本地化支持。

如果您继续执行此策略(下载本地化文件),您将需要创建自己的类来管理它,或者搜索为您执行此操作的库。