Несколько «вкусов» с поддержкой нескольких языков - PullRequest
0 голосов
/ 25 сентября 2018
  1. У меня есть приложение с двумя вариантами - назовем их main & F1
  2. Приложение поддерживает два языка: английский (по умолчанию) и японский.
  3. Я такжеиметь 4 файла strings.xml (для каждой комбинации аромата / языка):

    • src/main/res/values/strings.xml
    • src/main/res/values-jp/strings.xml
    • src/f1/res/values/strings.xml
    • src/f1/res/values-jp/strings.xml
  4. Внутри каждого файла strings.xml есть строка с именем "x", имеющая различное значение в каждом файле, за исключением файл src/f1/res/values-jp/strings.xml, где отсутствует строка с именем "x".

Вариант использования:
Язык телефона японский, выбран вариант F1.Значение "x" берется из src / main / res / values-jp / strings.xml.

Вопрос: можно ли расставить приоритеты
src/f1/res/values/strings.xml над src/main/res/values-jp/strings.xml?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Попробуйте это:

productFlavors {

    myFrenchFlavor {
     buildConfigField "String", "LOCALE", "\"fr\""
    }
    myEnglishFlavor {
      buildConfigField "String", "LOCALE", "\"en\""
    }
}
0 голосов
/ 25 сентября 2018

Насколько я знаю, нет способа изменить правила слияния для ресурса (есть способ для манифеста, но я не видел ни одного для ресурса).Как указано здесь , правила слияния следующие:

build variant > build type > product flavor > main source set > library dependencies

Но исходя из этого, я ожидал, что слияние ресурсов установит приоритет src/f1/res/values/strings.xml над src/main/res/values-jp/strings.xmlпотому что вы создаете f1 вкус. Поэтому, возможно, это ошибка, но я сам не проверял это.

...