문제

Eclipse RCP 응용 프로그램에서 기여한 견해가 있습니다. 이보기에는 국소화 된 이름 view.name이 있으며 플러그인 .properties 파일에 "내보기 부분"으로 변환됩니다.

국제화가 어떻게 작동하는지 이해하기 위해 Eclipse의 소스 코드를 조사하고 있습니다. 지금까지, 나는 속성 파일의 값이 뷰 이름으로 읽고 할당되는 시점에서 어떤 시점에서 찾을 수 없었습니다.

리소스 읽기 부분에서 시작하면 클래스 매니페스트 소속이 속성 파일을 읽지 만 사용되는 위치를 찾을 수 없습니다.

이름 할당에서 시작하면 TableReader 클래스가보기 부분의 이름을 얻지 만 이미 현지화되어 있음을 알 수 있습니다. 또한 Eclipse 가이 Plugin.xml을 어느 시점에서 일부 직렬화 된 객체로 변환하는 것을 보았습니다. 어쩌면 공연의 이유로 이루어 졌을까요?

그래서 내 질문은,이 "%view.name"문자열이 "내보기 부분"으로 변환 된 시점입니다.

도움이 되었습니까?

해결책

Eclipse에서 현지화를 지원하는 두 가지 메커니즘이 있습니다 : NLS 및 org.eclipse.core.runtime.registry.IConfigurationElement. 당신이 관심있는 부분은 IConfigurationElement.

IConfigurationElement.getAttribute(String key) 라고 불립니다 ResourceTranslator.getResourceString() 메소드는 OSGI Manifest의 번들 로컬 화 헤더를 사용하여 올바른 속성 파일을 찾습니다 (일반적으로 이것은 다음과 같습니다. plugin${locale}.properties) 및 속성 파일의 항목.

실제로 플러그인 .xml 파일에있는 것을 getAttributeAsIs(String key) 대신 방법.

다른 팁

이는 Eclipse의 특정 버전에 따라 다를 수 있지만 ResourcetRanslator.getResourcestring (Bundle, String, ResourceBundle)에서 번역이 발생하는 것처럼 보입니다.

보기 부품 기여의 경우 플러그인 매니페스트가 ExtensionRegistry.addContribution ()의 일부로로드 된 경우에 발생합니다.

번역 된 버전이 캐시 된 것이 맞습니다. 내가 언급 한 메소드에서 중단 점을 설정하면 작업 공간이 처음 초기화 될 때만 발사됩니다. 다시 발사하려면 작업 공간의 구성 영역을 지워야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top