如何在android应用程序中动态修改本地化值

如何在android应用程序中动态修改本地化值,android,localization,internationalization,Android,Localization,Internationalization,我们希望实现以下本地化要求- 存储在strings.xml(和其他语言变体)中的参数值需要定期(几乎每天)刷新。这是因为需要根据语言显示一些动态文本。可以添加、修改或删除strings.xml中的条目。从后端api调用定期获取值(基于定义的刷新策略)。 如果我的理解是正确的,那么我们就不能在apk文件中动态修改strings.xml 我们正在示范两种可能的方法- 利用那里的设备DB和负载值(我个人不太喜欢这种方法,因为我无法预测对性能的影响。有什么评论吗?) 创建一个包装器实现来解析xml,并将

我们希望实现以下本地化要求-

  • 存储在strings.xml(和其他语言变体)中的参数值需要定期(几乎每天)刷新。这是因为需要根据语言显示一些动态文本。可以添加、修改或删除strings.xml中的条目。从后端api调用定期获取值(基于定义的刷新策略)。 如果我的理解是正确的,那么我们就不能在apk文件中动态修改strings.xml
  • 我们正在示范两种可能的方法-

  • 利用那里的设备DB和负载值(我个人不太喜欢这种方法,因为我无法预测对性能的影响。有什么评论吗?)

  • 创建一个包装器实现来解析xml,并将这些值存储在特定的xml中

  • 根据选择的语言,解析相应的xml并使用它填充映射。然后从该映射中获取值(代替android资源文件)

    如果有人遇到过类似的问题, 请提供您的意见和可能的方法。 如果安卓api中有我遗漏的默认内容,并且可以在这种情况下使用


    期待人们对以上内容的意见。

    问题是,你需要依靠Android的能力,根据区域设置、屏幕大小、方向等发现正确的本地化。这些条件超出了你的能力范围,你不想尝试重现搜索逻辑


    也许可以在每个string.xml文件中放置一个标记字符串。此标记将有一个关键字,可能是运行时用翻译字符串填充的表名。

    问题在于,您需要依靠Android的能力,根据区域设置、屏幕大小、方向发现正确的本地化,等等。这些条件超出了您的影响能力,您不想尝试重现搜索逻辑


    也许可以在每个string.xml文件中放置一个标记字符串。这个标记将有一个关键字,可能是在运行时用您翻译的字符串填充的表名。

    Hmm感谢您的响应。关于这一点,有一个简单的问题(作为jsut,从android开发开始,我仍在学习,如果我太幼稚,请原谅),如果我们必须从数据库中获取东西(这是从xml读取),对性能有什么影响Hi Gaurav。我要说的是,这个建议不会是高性能的。运行时在android中查找字符串和其他内容的速度会相当快,但在SQLite中搜索密钥对值的效率不会很高。这只是解决问题的一种方法,不一定是最好或CPU效率最高的方法。关于这一点,有一个简单的问题(作为jsut,从android开发开始,我仍在学习,如果我太幼稚,请原谅),如果我们必须从数据库中获取东西(这是从xml读取),对性能有什么影响Hi Gaurav。我要说的是,这个建议不会是高性能的。运行时在android中查找字符串和其他内容的速度会相当快,但在SQLite中搜索密钥对值的效率不会很高。这只是解决问题的一种方法,不一定是最好或CPU效率最高的方法。