Co oznacza $NON-NLS-1$?
W kodzie źródłowym Eclipse znalazłem w komentarzach '$NON-NLS-1$' tak użyte:
private String toolTip = ""; //$NON-NLS-1$
Co to znaczy ? 6 answers
Wyciszają Ostrzeżenie, które Eclipse emituje, gdy napotka literały łańcuchów (i zostało skonfigurowane do narzekania).
Chodzi o to, że wiadomości UI nie powinny być osadzane jako literały łańcuchowe, ale raczej pochodzą z pliku zasobów (aby mogły być tłumaczone, sprawdzane itp.). W związku z tym, Eclipse może być skonfigurowany tak, aby wykrywać literały znaków, tak, że nie przypadkowo pozostawić niezauważone ciągi UI w kodzie; jednak istnieją ciągi, które nie powinny być externalized (np. regexps) i tak, / / $ NON-NLS-1 $ daje sposób na przekazanie tego faktu kompilatorowi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-17 12:40:34
Łańcuch nie można przetłumaczyć. Mówi on edytorowi Eclipse, aby nie oznaczał łańcucha jako bez źródeł. Jest to ważne w przypadku aplikacji wielojęzycznych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-17 12:37:14
NON-NLS
środki Non-Nat L anguage S
Wikipedia proponuje także Non-Native L anguage S upport (NLS), ale ten ostatni nie jest zbyt używany.
NLS {[13] } polega na umiędzynarodowieniu Twojej aplikacji. Eclipse pomaga zlokalizować zakodowane ciągi w kodzie. Aby wskazać, że ciąg znaków nie jest częścią internacjonalizacji, dodaj komentarz //$NON-NLS-x$
gdzie x jest pozycją łańcucha. W poniższym przykładzie oba "!"
są kodowanymi ciągami nie będącymi częścią internacjonalizacji:
public String foo(String key) {
return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
}
Uwagi:
- prowadzenie
//
jest konieczne za każdym razem - brak globalnego
$NON-NLS$
dla wielu łańcuchów w tej samej linii
(np. jeśli Twoja linia ma sześć ciągów, musisz napisać sześć razy//$NON-NLS-x$
)
Non-NLS Znaczniki - kompilator Javy Eclipse ma możliwość oznaczania Nie-zewnętrznych ciągów jako ostrzeżenia lub błędu, w celu ułatwienia obsługi języków narodowych (NLS). Kod generowany przez EMF nie używa zakodowanych ciągów do wiadomości, które użytkownik zobaczy; jednak literały łańcuchów często pojawiają się, na przykład, jako klucze do wyszukiwania zewnętrznych ciągów w pliku właściwości. Właściwość ta kontroluje, czy dodawać komentarze oznaczające te literały jako nieprzetłumaczalne, tak aby kompilator ich nie oznaczy.
Po Więcej szczegółów zobacz także strony GUI generatora i jak umiędzynarodowić wtyczkę Eclipse.
Możesz włączyć/wyłączyć tę funkcję. Na Eclipse Neon przejdź doProject > Properties > Java Compiler > Errors/Warnings
i wybierz poleNon-externalized strings (missing/unused $NON-NLS$ tag)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-26 15:47:33
Jeśli jesteś programistą Androida. Wszystkie łańcuchy, które użytkownik może zobaczyć, powinny znajdować się w pliku zasobów /res/values/strings.xml do odczytu ciągów.plik xml w kodzie, którego używasz R. string.. Dodając tag / / $NON-NLS - $ zauważysz, że łańcuch znaków nie będzie widoczny dla użytkowników.
Ostrzeżenie w Eclipse Helios może być włączone w Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)
.
Jeśli planujesz programowanie aktywności w wielu językach, zaleca się włączenie tej opcji. A następnie dodanie & NON-nls$ tag do ciągów, które są wewnętrzne dla Twojej aktywności. Eclipse doda & NON-nls$ tag w quick-fix jeśli klikniesz prawym przyciskiem myszy na ostrzeżenie lub błąd.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-25 19:46:32
Jest używany przez Eclipse do wskazania, że ciąg znaków nie musi być przetłumaczony, prawdopodobnie dlatego, że nie będzie widoczny przez użytkowników aplikacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-17 12:38:35
Mówi kompilatorowi, aby nie narzekał na niezarządzalny ciąg znaków i że nie wymaga lokalizacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-16 21:10:35