Risposte:
Silenziano un avvertimento che Eclipse emette quando incontra letterali di stringa (ed è stato configurato per lamentarsi).
L'idea è che i messaggi dell'interfaccia utente non devono essere incorporati come valori letterali di stringa, ma piuttosto provenienti da un file di risorse (in modo che possano essere tradotti, verificati, ecc.). Di conseguenza, Eclipse può essere configurato per rilevare valori letterali di stringa, in modo da non avere accidentalmente lasciato stringhe UI non esternalizzate nel codice; tuttavia, ci sono stringhe che non dovrebbero essere esternalizzate (come regexps) e quindi // $ NON-NLS-1 $ ti dà un modo per comunicare questo fatto al compilatore.
NON-NLS
mezzi non - N azionale L anguage S upporto .
Wikipedia propone anche non - N ative L anguage S upport (NLS), ma quest'ultimo non è molto usato.
NLS riguarda l'internazionalizzazione della tua applicazione. Eclipse aiuta a individuare stringhe codificate nel codice. Per indicare che una stringa non fa parte dell'internazionalizzazione, aggiungi il commento in //$NON-NLS-x$
cui x è la posizione della stringa. Nell'esempio seguente entrambe "!"
sono stringhe codificate che non fanno parte dell'internazionalizzazione:
public String foo(String key) {
return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
}
Appunti:
//
è necessario ogni volta$NON-NLS$
per più stringhe all'interno della stessa riga //$NON-NLS-x$
)Il libro EMF: Eclipse Modeling Framework a pagina 250 dice:
Marker non NLS: il compilatore Java di Eclipse ha la capacità di contrassegnare le stringhe non esternalizzate come avvertenza o errore, al fine di facilitare l'abilitazione del supporto linguistico nazionale (NLS). Il codice generato da EMF non utilizza stringhe codificate per i messaggi che l'utente vedrà; tuttavia, i letterali stringa appaiono frequentemente, ad esempio, come chiavi per la ricerca di stringhe esternalizzate in un file di proprietà. Questa proprietà controlla se includere commenti che contrassegnano tali valori letterali come non traducibili, in modo che il compilatore non li contrassegni.
Per ulteriori dettagli, consultare anche le pagine La GUI di Generator e Come internazionalizzare il plug-in Eclipse .
È possibile abilitare / disabilitare questa funzione. Su Eclipse Neon vai a
Project > Properties > Java Compiler > Errors/Warnings
e seleziona il campo
Non-externalized strings (missing/unused $NON-NLS$ tag)
Se sei uno sviluppatore Android. Tutte le stringhe che l'utente può vedere dovrebbero essere nel file di risorse /res/values/strings.xml per leggere il file strings.xml nel codice che usi R.string .. Aggiungendo il tag // $ NON-NLS- $ sei notando che la stringa non sarà vista dagli utenti.
L'avviso in Eclipse Helios può essere attivato alle Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)
.
Se stai pianificando di programmare la tua attività in più lingue, ti consigliamo di attivarla. E quindi aggiungendo il tag & NON-NLS $ alle stringhe interne alla tua attività. Eclipse aggiungerà il tag & NON-NLS $ nella correzione rapida se si fa clic con il tasto destro del mouse sull'avviso o sull'errore.
Viene utilizzato da Eclipse per indicare che una stringa non deve essere tradotta, probabilmente perché non verrà visualizzata dagli utenti dell'applicazione.
Indica al compilatore di non lamentarsi di una stringa non esternalizzata e che non richiede localizzazione.