$NON-NLS-1$의 의미는 무엇입니까?
Eclipse 소스 코드에서는 다음과 같은 코멘트에서 "$NON-NLS-1$"을 발견했습니다.
private String toolTip = ""; //$NON-NLS-1$
그게 무슨 의미죠?
Eclipse가 문자열 리터럴을 발견했을 때(그리고 불만을 제기하도록 구성됨) 발생하는 경고를 무시합니다.
UI 메시지는 문자열 리터럴로 삽입되지 않고 리소스 파일에서 소싱해야 합니다(번역, 증명 등을 할 수 있도록).따라서 Eclipse는 문자열 리터럴을 검출하도록 구성할 수 있으므로 코드 내에 실수로 외부화되지 않은 UI 문자열을 남기지 않도록 설정할 수 있습니다.단, 외부화해서는 안 되는 문자열(regexps 등)이 있기 때문에 //$NON-NLS-1$을 사용하면 컴파일러에 해당 사실을 전달할 수 있습니다.
문자열은 변환할 수 없습니다.이 명령어는 Eclipse 편집기에 문자열에 리소스 없음 플래그를 지정하지 않도록 지시합니다.이는 다국어 응용프로그램에서 중요합니다.
NON-NLS
는 비국어 언어 지원을 의미합니다.
Wikipedia에서는 NLS(Non-Native Language Support)도 제안하고 있습니다만, 이 마지막 것은 그다지 사용되지 않습니다.
NLS는 애플리케이션을 국제화하는 것입니다.이클립스는 코드에서 하드 코딩된 문자열을 찾는 데 도움이 됩니다.문자열이 국제화의 일부가 아님을 나타내려면 주석을 추가합니다.//$NON-NLS-x$
여기서 x는 문자열의 위치입니다.다음 예에서는 둘 다"!"
는 국제화의 일부가 아닌 하드 코드 문자열입니다.
public String foo(String key) {
return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
}
주의:
- 주역
//
매번 필요하다 - 글로벌하지 않다
$NON-NLS$
같은 행 내의 여러 문자열에 대해
(예를 들어, 행에 6개의 문자열이 있는 경우 6번 써야 합니다).//$NON-NLS-x$
)
EMF: Eclipse Modeling Framework (250페이지)에는 다음과 같이 기술되어 있습니다.
NLS 이외의 마커:Eclipse의 Java 컴파일러는 National Language Support(NLS; 국가 언어 지원)를 활성화하기 위해 경고 또는 오류로 외부 문자열에 플래그를 지정할 수 있습니다.EMF에 의해 생성된 코드에서는 사용자에게 표시되는 메시지에 하드코드된 문자열은 사용되지 않습니다.단, 속성 파일 내의 외부 스트링을 참조하기 위한 키로서 문자열 리터럴이 자주 표시됩니다.이 속성은 이러한 리터럴을 번역 불가로 마크하는 코멘트를 포함시킬지 여부를 제어하여 컴파일러가 플래그를 설정하지 않도록 합니다.
자세한 내용은 생성기 GUI 및 Eclipse 플러그인을 국제화하는 방법 페이지를 참조하십시오.
이 기능을 이노블 또는 디세블로 할 수 있습니다.에서는 Eclipse Neon으로 합니다.
Project > Properties > Java Compiler > Errors/Warnings
를 선택합니다.
Non-externalized strings (missing/unused $NON-NLS$ tag)
당신이 안드로이드 개발자라면.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$ 태그를 액티비티 내부 문자열에 추가합니다.이클립스는 경고 또는 오류를 오른쪽 클릭하면 &NON-NLS$ 태그를 퀵픽스에 추가합니다.
Eclipse는 문자열을 번역할 필요가 없음을 나타내기 위해 사용합니다.어플리케이션 사용자에게 문자열이 표시되지 않기 때문일 수 있습니다.
이 명령어는 컴파일러가 외부화되지 않은 문자열에 대해 불평하지 않도록 하며 현지화가 필요하지 않다고 합니다.
언급URL : https://stackoverflow.com/questions/654037/what-does-non-nls-1-mean
'itsource' 카테고리의 다른 글
등록된 모든 Vuex 모듈을 가져오는 방법 (0) | 2022.08.31 |
---|---|
NuxtJs 응용 프로그램에서 Vue.set()을 사용하는 방법 (0) | 2022.08.31 |
vue2-Google-Maps, beforeEnter() 루트 가드를 사용한gmapapi 접근 (0) | 2022.08.30 |
vuetify에서 allowed Date를 비동기 또는 Ajax에 사용할 수 없습니까? (0) | 2022.08.30 |
Nuxt.js에서 현재 경로 이름을 얻는 방법 (0) | 2022.08.30 |