No código-fonte do Eclipse, encontrei alguns '$ NON-NLS-1 $' nos comentários usados assim:
private String toolTip = ""; //$NON-NLS-1$
O que isso significa ?
fonte
No código-fonte do Eclipse, encontrei alguns '$ NON-NLS-1 $' nos comentários usados assim:
private String toolTip = ""; //$NON-NLS-1$
O que isso significa ?
Eles silenciam um aviso que o Eclipse emite quando encontra literais de sequência (e foi configurado para reclamar).
A idéia é que as mensagens da interface do usuário não devem ser incorporadas como literais de seqüência de caracteres, mas sim originadas de um arquivo de recurso (para que possam ser traduzidas, revisadas, etc). Conseqüentemente, o Eclipse pode ser configurado para detectar literais de cadeia de caracteres, para que você não tenha deixado acidentalmente cadeias de UI não-externalizadas no código; no entanto, existem seqüências que não devem ser externalizadas (como regexps) e, portanto, // $ NON-NLS-1 $ fornece uma maneira de comunicar esse fato ao compilador.
A sequência não é traduzível. Diz ao editor Eclipse para não sinalizar a sequência como sem recursos. Isso é importante para aplicativos multilíngues.
fonte
NON-NLS
meios não - N acional L anguage S POIO .Wikipedia também propõe Non - N ative L anguage S upport (NLS), mas este último não é muito utilizado.
O NLS trata da internacionalização de seu aplicativo. O Eclipse ajuda a localizar cadeias codificadas no seu código. Para indicar que uma string não faz parte da internacionalização, acrescente o comentário em
//$NON-NLS-x$
que x é a posição da string. No exemplo a seguir, ambas"!"
são seqüências codificadas que não fazem parte da internacionalização:Notas:
//
é necessária cada vez$NON-NLS$
para várias strings na mesma linha(por exemplo, se sua linha tiver seis strings, você precisará escrever seis vezes
//$NON-NLS-x$
)O livro EMF: Eclipse Modeling Framework na página 250 diz:
Para obter mais detalhes, consulte também as páginas A GUI do gerador e Como internacionalizar seu plug-in do Eclipse .
Você pode ativar / desativar esse recurso. No Eclipse Neon, vá para
Project > Properties > Java Compiler > Errors/Warnings
e selecione o campo
Non-externalized strings (missing/unused $NON-NLS$ tag)
fonte
Se você é um desenvolvedor Android. Todas as strings que o usuário pode ver devem estar no arquivo de recursos /res/values/strings.xml para ler o arquivo strings.xml no código que você usa R.string. Ao adicionar a tag // $ NON-NLS- $ você está observando que a sequência não será vista pelos usuários.
O aviso no Eclipse Helios pode estar ativado em
Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)
.Se você está planejando programar sua atividade para ser multilíngue, é recomendável ativar isso. E, em seguida, adicionando a tag & NON-NLS $ a cadeias internas à sua atividade. O Eclipse adicionará a tag & NON-NLS $ na correção rápida se você clicar com o botão direito do mouse no aviso ou erro.
fonte
É usado pelo Eclipse para indicar que uma sequência não precisa ser traduzida, provavelmente porque não será vista pelos usuários do aplicativo.
fonte
Ele diz ao compilador para não reclamar de uma string não externalizada e que não requer localização.
fonte