gpt4 book ai didi

android - 是否可以在 Android Studio 中创建可翻译的任意 XML 资源?

转载 作者:行者123 更新时间:2023-11-29 23:09:17 26 4
gpt4 key购买 nike

我想创建一个应用程序来询问用户问题,对答案进行评分并可能对他们使用react并提出后续问题。为此,我想到了类似以下 XML 的 res/xml/questions.xml :

<?xml version="1.0" encoding="utf-8"?>
<questions>
<question id="000" category="2">
<text>Yes or no?</text>
<answers>
<choice id="0" score="+5">Yes</choice>
<choice id="1" score="-5">No</choice>
</answers>
</question>
<question id="010" category="1">
<parent id="000" choice="0"/>
<text>Whats my question?</text>
<answers>
<choice id="0" score="-5">Shut up.</choice>
<choice id="1" score="0">I don't care.</choice>
<choice id="2" score="+5">I like your attitude!</choice>
</answers>
</question>
</questions>

我想支持多种语言。如何翻译 <text> 的内容和 <choice>无需在不同的 XML 中重新定义相同的逻辑? (或者我应该完全放弃 XML 方法吗?)

最佳答案

这里有一些选项:

选项 #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_000question_000_choice_0 等的字符串资源。当您解析 XML 时,然后在 Resources 对象上使用 getIdentifier() 来查找与 question_000_choice_0 之类的内容对应的字符串资源 ID。

选项 #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_000question_000_choice_0 等的字符串资源。但是,您无需在 XML 中包含这些名称,而只需从问题和选择 ID 中生成它们。

关于android - 是否可以在 Android Studio 中创建可翻译的任意 XML 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56175772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com