331

Eclipseのソースコードでは、次のように使用されるコメントに「$NON-NLS-1$」がいくつか見つかりました。

private String toolTip = ""; //$NON-NLS-1$

どういう意味ですか ?

4

6 に答える 6

385

それらは、Eclipseが文字列リテラルに遭遇したときに発する警告を沈黙させます(そして文句を言うように構成されています)。

UIメッセージは文字列リテラルとして埋め込むのではなく、リソースファイルから取得する必要があります(翻訳、校正などができるようにするため)。したがって、Eclipseは文字列リテラルを検出するように構成できるため、コードに外部化されていないUI文字列を誤って残してしまうことはありません。ただし、外部化してはならない文字列(regexpsなど)があるため、// $ NON-NLS-1 $を使用すると、その事実をコンパイラに伝えることができます。

于 2009-03-17T12:40:34.977 に答える
60

文字列は翻訳できません。これは、文字列にリソースなしのフラグを立てないようにEclipseエディターに指示します。これは多言語アプリケーションにとって重要です。

于 2009-03-17T12:37:14.097 に答える
14

Android 開発者の場合。R.stringを使用するコードでstrings.xmlファイルを読み取るために、ユーザーが見る可能性のあるすべての文字列はリソースファイル/res/values/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$ タグを追加します。

于 2011-02-08T17:53:34.893 に答える
9

これは、文字列を変換する必要がないことを示すためにEclipseによって使用されます。これは、おそらくアプリケーションのユーザーには表示されないためです。

于 2009-03-17T12:38:35.217 に答える
5

これは、外部化されていない文字列について文句を言わないように、またローカリゼーションを必要としないようにコンパイラに指示します。

于 2009-03-17T12:38:33.890 に答える