1

我正在开发一个具有多语言支持的应用程序(使用/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.xmlstyles.xml,... 里面也会发生同样的情况

使用strings.xml在 Android 中进行如此出色的语言处理,是否有任何其他解决方法可以更好地使用这种多主题和多语言?

谢谢你。

4

1 回答 1

1

我不确定你为什么需要类似的东西

values-de-v11

我会使用这样的东西:

values
values-de
values-fr
values-es
values-cat
...

并将翻译放入每个 strings.xml 文件中。另一方面,您还可以添加文件夹:

values
values-v11

在里面你可以添加你的主题。

文件夹值应该同时具有默认语言(通常是英语)的 strings.xml 和没有 holo 的设备的后备主题文件。

您可以检查文档中的所有可能性:

http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

于 2013-01-15T09:42:46.753 回答