Обязательно ли переводить содержимое для каждой локали?

Есть файл strigs.xml и 2 локали RU (strigs.xml - ru) и ENG (strigs.xml -en) и 2 массива: Название формулы и математическая формула

Содержимое strings.xml:

<string-array name="formulaName">
<item>Formula 1A</item>
<item>Formula 2B</item>
<item>Formula 3C</item>
</string-array>

<string-array name="formula">
<item>1A + 2B</item>
<item>2B + 3C</item>
<item>3C + 4D</item>
</string-array>

Содержимое strings.xml (RU):

<string-array name="formulaName">
<item>Формула 1A</item>
<item>Формула 2B</item>
<item>Формула 3C</item>
</string-array>

Содержимое strings.xml (EU):

<string-array name="formulaName">
<item>Formula 1A</item>
<item>Formula 2B</item>
<item>Formula 3C</item>
</string-array>

Обязательно ли переводить string-array name="formula" для каждой локали (или его можно оставить только в основном strings.xml) если данные в массиве будут одинаковы для всех локалей? (

С обычными строками разобрался, можно использовать translatable="false", а про локализацию массивов не могу понять...


Ответы (1 шт):

Автор решения: Tiarait

Начнем с того, что помимо string (ru) и string (en) у вас есть просто string. Так вот если стоит русская локаль, а в string (ru) отсутствует formula, то formula будет браться из string

введите сюда описание изображения

Конкретно по вопросу - вы можете не переводить formula, а просто нигде его не записывать кроме первоначальных/дефолтных string


Так же если вам нужно перевести только 1 элемент массива, или возникли проблемы с переводом массива, то тогда массив стоит записать так

<string-array name="array_example1">
    <item>@string/resOne</item>
    <item>@string/resTwo</item>
    <item>@string/resThree</item>
</string-array>

И добавить по локалям строки

<string name="resOne">One</string>
<string name="resTwo">Two</string>
<string name="resThree">Three</string>
→ Ссылка