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

Android:不使用strings.xml支持不同的语言,android,xml,Android,Xml,我正在开发一个应用程序。应用程序必须解析XML才能显示一些数据。XML是英文的。现在我们还必须支持德语。我们无法创建另一个XML文件。我们必须在运行时转换XML。问题是XML将包含英语,需要翻译的字符串超过500个。 使用local将所有这些字符串存储在strings.xml中效率不高。因为在手动解析之后,我们必须从string.xml获取值 我的问题是我们如何在运行时转换这些数据?我们可以改用属性文件吗?如果是,如何进行 编辑: 我的XML文件中的示例是 <element name="J

我正在开发一个应用程序。应用程序必须解析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渲染后显示数据的逻辑。

是的,我想不需要创建其他字符串文件就可以使用api支持不同的语言,您必须创建一个api,该api将输入作为您的设备语言&它将返回字符串xml中以键和值格式定义的字符串数组作为api响应,键在两侧都是相同的,使用该键您可以使用不同语言的值

获取所有值后,您可以将响应存储在应用程序共享首选项中,以便下次使用key作为设备语言&response is value,下次您必须检查使用设备语言作为key for value,如果它未存储在设备中,则需要进行api响应


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

若要从服务器获取该XML文件,请使用Accept Language标头让服务器知道该文件应返回的语言版本。相信没有人经常改变他们的语言strings.xml为什么没有效率?如果你知道你要在应用程序中使用这些字符串,为什么不预先打包它们呢您不能在运行时更改strings.xml,我不太理解这部分问题。我们不是从服务器获取xml。它是本地文件。我们不允许用不同的语言创建xml。我已经更新了这个问题。你唯一的问题是你混合了人类和机器可读的数据。如果你坚持Android提供给你的本地化方法,你不会有任何问题。我想你也不明白本地化在Android中应该如何工作?为什么可以使用属性文件进行本地化,而不能使用xml文件?整个问题没有任何意义。这些都是我的客户强加的限制,所以我几乎被它卡住了:。我知道安卓系统的本地化工作原理。我正在采取类似的方法。但不知何故,我对这种方法并不满意。我正在使用一个属性文件来存储英语和德语的所有数据。