Eclipseのソースコードでは、次のように使用されるコメントに「$NON-NLS-1$」がいくつか見つかりました。
private String toolTip = ""; //$NON-NLS-1$
どういう意味ですか ?
Eclipseのソースコードでは、次のように使用されるコメントに「$NON-NLS-1$」がいくつか見つかりました。
private String toolTip = ""; //$NON-NLS-1$
どういう意味ですか ?
それらは、Eclipseが文字列リテラルに遭遇したときに発する警告を沈黙させます(そして文句を言うように構成されています)。
UIメッセージは文字列リテラルとして埋め込むのではなく、リソースファイルから取得する必要があります(翻訳、校正などができるようにするため)。したがって、Eclipseは文字列リテラルを検出するように構成できるため、コードに外部化されていないUI文字列を誤って残してしまうことはありません。ただし、外部化してはならない文字列(regexpsなど)があるため、// $ NON-NLS-1 $を使用すると、その事実をコンパイラに伝えることができます。
文字列は翻訳できません。これは、文字列にリソースなしのフラグを立てないようにEclipseエディターに指示します。これは多言語アプリケーションにとって重要です。
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$ タグを追加します。
これは、文字列を変換する必要がないことを示すためにEclipseによって使用されます。これは、おそらくアプリケーションのユーザーには表示されないためです。
これは、外部化されていない文字列について文句を言わないように、またローカリゼーションを必要としないようにコンパイラに指示します。