2013-04-06 2 views
4

독립형 SWT/JFace 응용 프로그램을 만들고 있습니다.JFace 대화 상자 번역

boolean result = MessageDialog.openQuestion(getShell(), "Question", "So?"); 

내가 가진 문제는 SWT에서, 예와 아니오 버튼 레이블이 있다는 것입니다 내가 JFace는 MessageDialog로 전환하려고

int style = SWT.APPLICATION_MODAL | SWT.YES | SWT.NO; 
MessageBox messageBox = new MessageBox (getShell(), style); 
messageBox.setText ("Question"); 
messageBox.setMessage ("So?"); 
boolean result = messageBox.open() == SWT.YES; 

:

나는 평범한 구식 SWT의 메시지 박스를 사용하는 데 사용 내 언어로 번역되었지만 JFace에서는 그렇지 않습니다. 어떤 생각?

내 참조 jar는 swt 3.8.0, jface 3.8.0 및 jface 종속성 core.commands 3.6.1과 equinox.common 3.6.100입니다.

답변

10

SWT의 MessageBox 클래스에서 레이블은 OS에 의해 설정됩니다. JFace의 경우 자신 만의 번역 파일을 제공해야합니다. 당신은 당신의 언어 here에 대한 것을 얻을 수 있습니다. 물론 스스로 제공 할 수도 있습니다. 이 link은 번역을 위해 자원 번들을 사용하는 방법을 설명합니다. org/eclipse/jface/messages.properties 아래에서 원래 번역 파일을 찾습니다. 프로젝트의 동일한 패키지 경로에 고유 한 번역 파일 (messages_ [언어 코드] .properties)을 추가해야합니다. 리소스 번들은 OSGi 번들과 공통점이 없다는 점에 유의하십시오.

+1

제공된 바벨 링크에서 나는 다른 항아리를 파고 마침내 내가 찾고있는 것을 발견했다. org.eclipse.jface.nl_fr_3.7.0. 3.8이 아니지만 3.8은 3.7의 버그 수정입니다. 나는 그것을 classpath에 추가했고 그것은 매력처럼 작동한다. 감사. – Steph

0

나는 동일한 문제가있었습니다. 저는 SWT의 Messagebox를 사용하고있었습니다. 운영 체제는 번역을 처리해야하므로 제어판의 지역 설정을 변경하여 테스트 한 결과 도움이되지 않았습니다. 이를 달성하려면 OS 언어를 전환해야합니다. Windows 7 사용자의 경우 Windows 궁극 패키지로 업그레이드해야합니다. 그리고 어떻게 할 수 있습니다. http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-to-change-system-language-of-windows-7-home/d58fb37b-cb02-41c8-986f-22582fd35a12.

나는 그것을 시도하지는 않았지만, 가치가있다.

관련 문제