【问题标题】:What is the best way to add external languages to android application in runtime在运行时向android应用程序添加外部语言的最佳方法是什么
【发布时间】:2013-11-20 11:45:36
【问题描述】:

我们的客户端应用程序可以偶尔从服务器更新“语言文件”。然而,在 android 上支持它似乎是一个相当大的挑战。 我尝试使用 inflate( XmlPullParser, ... ) 但后来发现它不支持非二进制 XML 文件。

给出以下内容:

  1. 我们的应用程序使用@string/resource_id 资源来支持语言。基本支持英文,但要求是动态提供语言资源。也就是说,如果我们需要支持希腊语,或提供对希腊语文本的更改,我们应该能够在运行时提供。
  2. 因此,在运行时,我们的应用程序会连接一个服务并下载一个 XML 文件,其语法类似于当前语言中的 string.xml。

剩下的就是如何以理智的方式更改应用程序中的文本资源(不是一个一个..)

我尝试使用 inflate(带有 XmlPullParser 参数),但它似乎适用于二进制预编译的 XML 文件。要使用它,需要事先对 XML 进行二进制化,这样兼容性会降低,更不用说 aapt.exe 工具的文档记录较少,尤其是在我的情况下。

那么,有什么想法吗?

【问题讨论】:

    标签: android xml localizable.strings


    【解决方案1】:

    不知道它是否可以在 Android 的任何地方完成,但不是使用原生资源引用,也许您可​​以使用 Java Properties 类并使用设备区域设置以编程方式检索所需的字符串?

    【讨论】:

    • 似乎是一个很长的镜头......你到底是如何建议这样做的?
    • 只需使用一个 Properties 实例,您可以在其中从文件加载本地化 InputStream。然后将此实例保留在 Application 上下文中,并在显示一些文本时使用 myProperties.getProperty(key) 访问它。
    猜你喜欢
    • 2016-09-28
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2019-06-14
    • 2017-09-29
    • 1970-01-01
    相关资源
    最近更新 更多