设置远程配置的本地化默认值

时间:2019-05-14 13:02:54

标签: android firebase firebase-remote-config firebase-ab-testing

我正在我的应用程序中实现远程配置。这个想法是为了能够A / B测试显示给用户的某些消息。

我可能只想用英文信息进行一些实验,而我试图找出最好的(或最实用的)方法。

  1. 一种方法是在res / xml-目录中使用xml文件为每种语言设置默认值。我看到的主要缺点是,由于每个值都需要复制到所有xml文件中,因此很难维护(某些实验可能与语言无关,例如版面颜色)。
  2. 第二种方法是将语言相关的值设置为空字符串,然后执行一些逻辑,以在远程配置提供的值为空时在R.strings中查找正确的字符串。对于我要完成的工作,这似乎有太多开销。

对于通过A / B测试和远程配置仅针对特定语言进行实验的推荐方式是什么?

1 个答案:

答案 0 :(得分:0)

  1. 这是android中提供本地化字符串资源的默认方式。很难维护,但是有一项可以帮助您https://phraseapp.com/的服务。它们具有很多不错的功能,例如手动翻译,跨平台应用程序和ide插件,它们可以将新字符串替换/添加/附加/删除到xml本地化文件中,也适用于ios。

  2. 您可以在远程配置中保留字符串资源名称,并通过一些反思来加载它。这是一个很好的答案How to get a resource id with a known resource name?。这是您的情况的示例:

      int resourceId = context.getResources().getIdentifier(nameFromRemoteConfig, "string", context.getPackageName())
    

本地化是一个非常静态的逻辑,在时间和维护方面无聊且昂贵。从我的角度来看,更好的解决方案是为本地化开发自己的最大抽象机制,并将其在所有项目中重用。例如,后端服务或库将按您自己的格式提供本地化数据,而客户端库则将反序列化该数据。这样一来,您将获得可用于未来项目的生产就绪api。