Yanıtlar:
Eclipse'ın dizgi değişmezleriyle karşılaştığında (ve şikayet edecek şekilde yapılandırılmış) bir uyarıyı sustururlar.
Fikir, UI mesajlarının dize değişmezleri olarak gömülmemesi, daha ziyade bir kaynak dosyasından (çevrilmesi, prova edilmesi, vb.) Kaynaklanması gerektiğidir. Sonuç olarak, Eclipse, dizgi değişmezlerini algılayacak şekilde yapılandırılabilir, böylece yanlışlıkla kodda dışa aktarılmamış UI dizeleri bırakmazsınız; ancak, haricilaştırılmaması gereken dizeler (regexps gibi) vardır ve bu nedenle, // $ NON-NLS-1 $ size bu gerçeği derleyiciye iletmenin bir yolunu sunar.
NON-NLS
aracı olmayan - N illi L anguage S upport .
Vikipedi ayrıca önermektedir Olmayan - N ative L anguage S upport (NLS) ama bu sonuncusu çok kullanılmaz.
NLS başvurunuzu uluslararasılaştırmakla ilgilidir. Tutulma kodunuzdaki sabit kodlu dizeleri bulmak için yardımcı olur. Bir dizenin uluslararasılaştırmanın bir parçası olmadığını belirtmek için, yorumu ekleyin; //$NON-NLS-x$
burada x, dizenin konumudur. Aşağıdaki örnekte her ikisi "!"
de uluslararasılaştırmanın parçası olmayan sabit kodlu dizelerdir:
public String foo(String key) {
return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
}
Notlar:
//
her seferinde gereklidir$NON-NLS$
aynı satırdaki birden çok dize için global değil //$NON-NLS-x$
)EMF: Eclipse Modeling Framework'un 250. sayfasındaki kitabı şöyle diyor:
NLS Olmayan İşaretleyiciler - Eclipse'nin Java derleyicisi, Ulusal Dil Desteği'nin (NLS) etkinleştirilmesini kolaylaştırmak için harici olmayan dizeleri uyarı veya hata olarak işaretleme yeteneğine sahiptir. EMF tarafından oluşturulan kod, kullanıcının göreceği iletiler için sabit kodlu dizeler kullanmaz; ancak dize değişmezleri, örneğin, bir özellik dosyasında harici dizelerin aranması için anahtarlar olarak sık sık görünür. Bu özellik, bu değişmezleri çevrilemez olarak işaretleyen yorumların eklenip eklenmeyeceğini denetler, böylece derleyici bunları işaretlemez.
Daha fazla ayrıntı için ayrıca Jeneratör GUI ve Eclipse Eklentinizi Uluslararasılaştırma sayfalarına bakın .
Bu özelliği etkinleştirebilir / devre dışı bırakabilirsiniz. Eclipse Neon'da
Project > Properties > Java Compiler > Errors/Warnings
alana gidin ve seçin
Non-externalized strings (missing/unused $NON-NLS$ tag)
Android geliştiricisiyseniz. Kullanıcının görebileceği tüm dizeler, R.string kullandığınız koddaki strings.xml dosyasını okumak için /res/values/strings.xml kaynak dosyasında olmalıdır. // $ NON-NLS- $ etiketini ekleyerek dizenin kullanıcılar tarafından görülmeyeceğine dikkat edin.
Eclipse Helios'taki uyarı adresinden açılabilir Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)
.
Etkinliğinizi çok dilli olacak şekilde programlamayı planlıyorsanız, bunu açmanız önerilir. Ardından, etkinliğinizin içindeki dizelere & NON-NLS $ etiketini ekleyin. Uyarı veya hataya sağ tıklarsanız Eclipse hızlı düzeltmeye & NON-NLS $ etiketi ekleyecektir.
Eclipse tarafından, muhtemelen uygulamanın kullanıcıları tarafından görülmeyeceği için bir dizenin çevrilmesi gerekmediğini belirtmek için kullanılır.
Derleyiciye, harici olmayan bir dizeden şikayet etmemesini ve yerelleştirme gerektirmediğini söyler.