2012-06-05 76 views
2

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

回答

12

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

为了摆脱皮棉错误的,有你的<resources>元,其中未翻译的字符串显示是这样的:

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

现货。正是我在找什么。大大的谢谢你:) –

0

res文件夹中包含这是唯一可读的数据。有关更多信息,请参阅Android开发人员文档Providing ResourcesAccessing Resources

+0

这不回答我的问题。我并不是说在运行时添加字符串。对于我的问题含糊不清的道歉。请参阅CommonsWare的答案。 –

0

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

可以使用lint警告观指导林特忽略特定范围内的某些错误或警告(特定字符串,文件或整个项目)。所有这些说明将自动放入您项目中的lint.xml

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

您也可以创建另一个具有任何其他名称的XML文件,并且只需添加Lint的指令即可忽略该文件中的字符串没有翻译。

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