Вот несколько вариантов:
Опция # 1: иметь res/xml/questions.xml
и другие варианты этого XML для разных языков (например, res/xml-es/questions.xml
, res/xml-de/questions.xml
, res/xml-zh/questions.xml
)
Вариант № 2: Если у вас есть английские строки, вместо них есть значения, которые отображаются на строковые ресурсы.Таким образом, res/xml/questions.xml
может выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<questions>
<question id="000" category="2">
<text>question_000</text>
<answers>
<choice id="0" score="+5">question_000_choice_0</choice>
<choice id="1" score="-5">question_000_choice_1</choice>
</answers>
</question>
<question id="010" category="1">
<parent id="000" choice="0"/>
<text>question_010</text>
<answers>
<choice id="0" score="-5">question_010_choice_0</choice>
<choice id="1" score="0">question_010_choice_1</choice>
<choice id="2" score="+5">question_010_choice_2</choice>
</answers>
</question>
</questions>
Тогда у вас будут строковые ресурсы для question_000
, question_000_choice_0
и так далее.Когда вы анализируете XML, вы затем используете getIdentifier()
на объекте Resources
, чтобы найти идентификатор строкового ресурса, соответствующий чему-то вроде question_000_choice_0
.
Вариант № 3: XML просто описывает основы:
<?xml version="1.0" encoding="utf-8"?>
<questions>
<question id="000" category="2">
<answers>
<choice id="0" score="+5" />
<choice id="1" score="-5" />
</answers>
</question>
<question id="010" category="1">
<parent id="000" choice="0"/>
<answers>
<choice id="0" score="-5" />
<choice id="1" score="0" />
<choice id="2" score="+5" />
</answers>
</question>
</questions>
У вас все еще будут строковые ресурсы для question_000
, question_000_choice_0
и т. Д.Однако вместо того, чтобы иметь эти имена в XML, вы просто сгенерируете их из идентификаторов вопроса и выбора.