Установить локализованные настройки по умолчанию для удаленной конфигурации - PullRequest
0 голосов
/ 14 мая 2019

Я использую Remote Config в своем приложении.Идея состоит в том, чтобы иметь возможность A / B-тестирования некоторых сообщений, показанных пользователю.

Я мог бы захотеть провести некоторые эксперименты только с английскими сообщениями, и я пытаюсь выяснить, что являетсялучший (или самый практичный) способ сделать это.

  1. Одним из способов было бы наличие xml-файла со значениями по умолчанию для каждого языка в каталоге res / xml.Основной недостаток, который я вижу, заключается в том, что это будет трудно поддерживать, поскольку каждое отдельное значение необходимо скопировать во все XML-файлы (некоторые эксперименты могут не зависеть от языка, например цвет макета).
  2. Второй способустановить значения, зависящие от языка, в пустую строку, а затем реализовать некоторую логику для поиска правильной строки в R.strings, если значение, предоставленное удаленной конфигурацией, пусто.Кажется, это слишком много для того, чего я хочу достичь.

Каков рекомендуемый способ проведения экспериментов только для определенного языка с A / B-тестированием и Remote Config?

1 Ответ

0 голосов
/ 19 мая 2019
  1. Это способ по умолчанию в Android для предоставления локализованных строковых ресурсов. Трудно поддерживать, но есть служба, которая может помочь вам https://phraseapp.com/. У них есть много приятных функций, таких как ручной перевод, кроссплатформенное приложение и плагины ide, которые могут заменять / добавлять / добавлять / удалять новые строки в ваших XML-локализованных файлах, также это работает для ios.

  2. Вы можете сохранить имя строковых ресурсов в удаленном конфиге и загрузить его каким-нибудь ребенком размышлений. Вот хороший ответ Как получить идентификатор ресурса с известным именем ресурса? . Вот пример для вашего случая:

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

Локализация - очень статичная логика, скучный и дорогостоящий процесс с точки зрения времени и обслуживания. С моей точки зрения, лучшее решение - разработать собственный максимально абстрактный механизм локализации и использовать его во всех своих проектах. Например, бэкэнд-сервис или библиотека, которая будет предоставлять локализованные данные в вашем собственном формате, и библиотека для клиентов, которые будут десериализовать эти данные. В результате вы получите готовый продукт API для будущих проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...