[java] Java Vaadin 다국어 지원

Vaadin은 Java로 개발된 웹 애플리케이션 프레임워크로, 다국어 지원 기능을 내장하고 있습니다. 이 기능을 이용하면 사용자가 해당 지역의 언어로 애플리케이션을 사용할 수 있습니다. 이번 포스트에서는 Vaadin에서의 다국어 지원에 대해 알아보겠습니다.

1. 언어 번들 생성

다국어 지원을 사용하기 위해서는 각 언어별로 번들 파일을 생성해야 합니다. 이 파일들은 각 언어에 대한 문자열 리소스를 포함하고 있으며, 해당 언어로 번역된 문구를 제공합니다. Java의 ResourceBundle 클래스를 사용하여 번들 파일을 생성할 수 있습니다.

resourcebundle
├── messages_en.properties
├── messages_fr.properties
└── messages_ko.properties

위의 예시에서는 영어(en), 프랑스어(fr), 한국어(ko)로 각각의 번들 파일을 생성하였습니다. 번들 파일은 파일 이름 끝에 각 언어의 ISO 639-1 코드를 붙여 구분합니다.

2. 번들 파일 로드

Vaadin에서는 com.vaadin.i18n.LocaleService 클래스를 이용하여 번들 파일을 로드할 수 있습니다. 이 클래스의 getBundle 메서드를 사용하여 언어별 번들 파일을 로드할 수 있습니다.

LocaleService localeService = new LocaleService();
ResourceBundle bundle = localeService.getBundle("messages", Locale.getDefault());

위의 코드에서는 messages라는 번들파일을 기본 로케일에 맞게 로드하고 있습니다. 이를 통해 사용자의 로케일에 맞추어 번들 파일을 자동으로 선택할 수 있습니다.

3. 번역된 문구 사용

번역된 문구들은 로드한 번들 파일을 통해 사용할 수 있습니다. 각각의 문구에 대한 키를 사용하여 번역된 문자열을 얻을 수 있습니다.

String greeting = bundle.getString("greeting");

위의 코드는 greeting이라는 키에 해당하는 번역된 문자열을 얻어오는 예시입니다.

4. Vaadin 컴포넌트에서의 다국어 지원

Vaadin의 다국어 지원은 컴포넌트에서도 동작합니다. 예를 들어, Label 컴포넌트의 텍스트를 번역된 문구로 설정할 수 있습니다.

Label label = new Label(bundle.getString("greeting"));

위의 예시에서는 Label 컴포넌트의 텍스트를 greeting 번들 파일에서 얻은 번역된 문자열로 설정하고 있습니다.

5. 언어 변경

Vaadin은 사용자가 언어를 변경할 수 있는 기능을 제공합니다. 사용자가 언어를 변경하면 애플리케이션은 해당 언어의 번들 파일을 로드하고, 컴포넌트의 텍스트는 새로운 언어에 맞게 업데이트됩니다.

언어 변경은 com.vaadin.i18n.LocaleService 클래스의 setCurrentLocale 메서드를 사용하여 수행할 수 있습니다.

LocaleService localeService = new LocaleService();
Locale newLocale = new Locale("fr");
localeService.setCurrentLocale(newLocale);

위의 예시에서는 언어를 프랑스어(fr)로 변경하고 있습니다.

결론

Vaadin을 사용하여 Java 웹 애플리케이션을 개발할 때, 다국어 지원은 매우 중요한 기능입니다. Vaadin에서는 간단한 설정과 몇 가지 코드 작성만으로 다국어 지원을 구현할 수 있습니다. 이를 통해 사용자가 여러 언어로 애플리케이션을 사용할 수 있도록 편의성을 높일 수 있습니다.

참고 자료