【问题标题】:How to add a string to the default values folder only?如何仅将字符串添加到默认值文件夹?
【发布时间】:2014-08-11 23:36:35
【问题描述】:

我有一个包含strings.xml 文件的res/values 文件夹和一个包含strings.xml 文件的res/values-XX 文件夹(对于我支持的每种语言XX)。目前,我所有的strings.xml 文件都包含相同的字符串(相同的字符串名称,不同的字符串值)。有没有一种方法可以将字符串添加到 res/values/strings.xml 文件中,而不必将其添加到我的所有 res/values-XX/strings.xml 文件中,这样无论手机的语言设置如何,应用程序都会使用这个默认字符串?目前编译器中止并抱怨该字符串尚未针对我支持的每种语言进行翻译。

【问题讨论】:

    标签: android android-resources android-lint


    【解决方案1】:

    “编译器”不会“中止”,因为您有一个未翻译的字符串。您可能会遇到 lint 错误,但 ant clean debugant clean release 和它们的 Eclipse 等效项可以正常工作。确保您使用的是当前版本的 SDK 工具(如果您使用 Eclipse,则使用 ADT 插件)。

    要消除 lint 错误,请让未翻译字符串出现的 <resources> 元素如下所示:

    <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
    

    【讨论】:

    • 正确。正是我想要的。大大谢谢你:)
    【解决方案2】:

    res 文件夹包含只能读取的数据。有关更多信息,请参阅Providing ResourcesAccessing Resources 的 Android 开发者文档。

    【讨论】:

    • 这不能回答我的问题。我不是说在运行时添加字符串。为我的问题中的歧义道歉。请参阅 CommonsWare 的答案。
    【解决方案3】:

    Lint 错误和警告会阻止编译器编译,但您始终可以清除它们并进行编译。您还可以指示 Lint 忽略所有丢失的翻译。

    您可以使用 Lint 警告 视图来指示 Lint 忽略某些范围(特定字符串、文件或整个项目)内的某些错误或警告。所有这些说明都会自动放在您项目中的lint.xml 中。

    Android 建议将不可翻译的字符串放在 donottranslate.xml 文件中。 Lint始终忽略它没有翻译。

    您也可以使用任何其他名称创建另一个 XML 文件,并简单地添加一条指令以供 Lint 忽略此文件中的字符串没有翻译。

    请记住,您不仅限于一个strings.xml 文件。这只是标准的初学者练习,但如果您有 很多 字符串,您可以将它们组织成多个 XML 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 2020-02-16
      • 1970-01-01
      • 2014-11-06
      相关资源
      最近更新 更多