在Eclipse源代码中,我在注释中发现了一些“$NON-NLS-1$”:
private String toolTip = ""; //$NON-NLS-1$
这是什么意思?
在Eclipse源代码中,我在注释中发现了一些“$NON-NLS-1$”:
private String toolTip = ""; //$NON-NLS-1$
这是什么意思?
当前回答
字符串是不可翻译的。它告诉Eclipse编辑器不要将字符串标记为未使用资源。这对于多语言应用程序很重要。
其他回答
它们屏蔽了Eclipse在遇到字符串字面值时发出的警告(并且已配置为抱怨)。
其思想是UI消息不应该作为字符串文字嵌入,而是来自资源文件(这样它们就可以被翻译、校对等)。因此,Eclipse可以配置为检测字符串字面量,这样您就不会意外地在代码中留下未外部化的UI字符串;但是,有些字符串不应该外部化(比如regexp),因此,//$NON-NLS-1$提供了一种与编译器沟通事实的方法。
Eclipse使用它来表示字符串不需要翻译,可能是因为应用程序的用户不会看到它。
它告诉编译器不要抱怨一个非外部化的字符串,并且它不需要本地化。
字符串是不可翻译的。它告诉Eclipse编辑器不要将字符串标记为未使用资源。这对于多语言应用程序很重要。
如果你是Android开发者。用户可能看到的所有字符串都应该在资源文件/res/values/strings.xml中读取使用R.string的代码中的strings.xml文件。通过添加标签//$NON-NLS-$,你注意到字符串将不会被用户看到。
Eclipse Helios中的警告可以在Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)中打开。
如果你打算将你的活动编程为多语言,建议打开这个选项。然后将&NON-NLS$标记添加到活动内部的字符串中。如果您右键单击警告或错误,Eclipse将在快速修复中添加&NON-NLS$标记。