Android:支持不同的语言而不使用strings.xml

时间:2017-04-04 08:54:05

标签: android xml

我正在开发一款应用。该应用程序必须解析XML以显示一些数据。该XML使用英语。现在我们也必须支持德语。我们无法创建另一个XML文件。我们不得不在运行时翻译该XML。问题是XML将包含英语,并且有超过500个字符串需要翻译。 使用local将所有这些字符串存储在strings.xml中效率不高。由于手动解析后我们必须从string.xml获取值。

我的问题是我们如何在运行时翻译这些数据?我们可以使用属性文件吗?如果是,怎么样?

编辑: 我的XML文件中的示例是

<element name="Journal in cast iron">
     <value name="Lubrication">Lubrication of grease</value>
     <value name="µ">0.1</value>
</element>

现在“铸铁中的轴颈”,“润滑”和“润滑脂润滑”需要翻译成德文。与上面的元素类似,我的XML中有大约300个元素。当XML呈现时,它应该显示如下:

铸铁杂志|润滑脂| μ= 0.1 |

我已经编写了从xml渲染后显示数据的逻辑。

1 个答案:

答案 0 :(得分:-1)

是的,我想如果不创建其他字符串文件就可以使用api来支持不同的语言,你必须创建一个api,它将输入作为你的设备语言&amp;它将返回在KEY&amp;中的字符串xml中定义的那些字符串的数组。作为api响应的值格式,密钥在两侧都是相同的,使用该密钥可以使用不同语言的值。

获取所有值后,您可以将响应存储在应用程序共享首选项中,以便下次使用密钥作为设备语言&amp;响应是值,下次你必须检查使用设备语言作为值的关键,如果它没有存储在设备中,那么需要进行api响应。

但是您必须在启动登录或其他屏幕之前获取所有这些数据,这意味着您必须在启动画面上获取此数据。