我正在开发一个具有多语言支持的应用程序(使用/res/values- ** 方式)并成功。然后我想使用 Holo 和下降的旧设备(例如 2.3.*)来使用默认设备(使用/res/values-v11方式)。
所以,我最终得到了一个类似于这个的结构(没有语言的结构是 EN,默认情况下):
- /res/值
- /res/values-v11
- /res/values-de
- /res/values-de-v11
- /res/values-es
- /res/values-es-v11
...在每个我都有以下内容:
- 字符串.xml
- 主题.xml
... 其中strings.xml是定义本地化文本的位置,并且Themes.xml具有:
对于非 v11目录(旧设备)
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme">
<!-- Any customizations for your app running on pre-3.0 devices here -->
</style>
</resources>
对于-v11目录(+3.0 设备)
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo">
<!-- Any customizations for your app running on devices with Theme.Holo here -->
</style>
</resources>
记住将此属性添加到 AndroidManifest.xml 上的应用程序标记中
android:theme ="@style/MyTheme"
这适用于所有语言和所有设备,包括当前和旧版,以及正确的主题选择和一切。在多个物理设备中进行了测试。
所以,问题:
你不认为这是高度可维护的吗?我的意思是,对于每种语言,我们都有 2 个完全相同的 string.xml 文件,但是对于每个新文本,我们必须填写两次,从而增加了拼写错误的风险。如果你有analytics.xml,styles.xml,... 里面也会发生同样的情况
使用strings.xml在 Android 中进行如此出色的语言处理,是否有任何其他解决方法可以更好地使用这种多主题和多语言?
谢谢你。