현지화 API 지원
com.ibm.websphere.i18n.localizabletext 패키지에는 텍스트 현지화를 위한 클래스 및 인터페이스가 들어 있습니다.
- java.util.Locale
- java.util.TimeZone
- java.util.ResourceBundle
- java.text.MessageFormat
표준 Java API에 대한 자세한 정보는 세계화: 학습용 자원의 내용을 참조하십시오.
현지화 가능한 텍스트 패키지는 Java 지원을 랩핑하며 분산 환경에서의 효율적이며 단순한 사용을 위해 확장합니다. 애플리케이션 프로그래머가 사용하는 1차 클래스는 LocalizableTextFormatter입니다. 이 클래스의 인스턴스는 일반적으로 서버 프로그램에서 작성되지만, 클라이언트 프로그램 또한 이를 작성할 수 있습니다. 포맷터 인스턴스는 특정 자원 번들 이름 및 키를 위해 작성됩니다. LocalizableTextFormatter 인스턴스를 수신하는 클라이언트 프로그램은 형식 메소드를 호출합니다. 이 메소드는 클라이언트 애플리케이션의 로케일을 사용하여 적절한 자원 번들을 검색하고 키를 기반으로 로케일별 메시지를 작성합니다.
예를 들어, 분산 애플리케이션이 프랑스어 및 영어 로케일을 지원한다고 가정하십시오. 서버는 영어 로케일을 사용 중이고, 클라이언트는 프랑스어 로케일을 사용 중입니다. 서버가 영어 및 프랑스어 각각의 두 개의 자원 번들을 작성합니다. 클라이언트가 메시지를 트리거하도록 요청할 때, 서버가 자원 번들의 이름과 메시지에 대한 키를 포함하는 LocalizableTextFormatter 인스턴스를 작성하고 이 인스턴스를 다시 클라이언트에 전달합니다.
클라이언트가 LocalizableTextFormatter 인스턴스를 수신할 때, 이는 오브젝트의 형식 메소드를 호출합니다. 자원 번들의 로케일 및 이름을 사용하여, 형식 메소드가 프랑스어 로케일을 지원하는 자원 번들의 이름을 판별하고 프랑스어 자원 번들에서 키에 해당하는 메시지를 검색합니다. 메시지 형식화는 클라이언트에 투명합니다.
- 클라이언트 애플리케이션은 시간대 및 로케일 값을 명시적으로 전달하거나 기본값을 통해 LocalizableTextFormatter 인스턴스에서 이들 값을 설정합니다.
- 포맷터 Bean에 대한 참조를 검색하도록 LocalizableTextFormatterEJBFinder를 호출합니다.
- 클라이언트의 시간대 및 로케일을 포함하여, LocalizableTextFormatter 인스턴스로부터의 정보가 포맷터 Bean에 전송됩니다.
- 포맷터 Bean은 자원 번들의 이름, 메시지 키, 시간대 및 로케일을 사용하여 언어별 메시지를 작성합니다.
- 포맷터 Bean은 형식화된 메시지를 클라이언트에 리턴합니다.
- 형식화된 메시지는 형식 메소드에 의해 LocalizableTextFormatter 인스턴스에 삽입되고 리턴됩니다.
형식 메소드에 대한 호출은 포맷터 Bean에 접속하기 위한 최소한 하나 이상의 원격 호출을 필요로 합니다. 또는 LocalizableTextFormatter 인스턴스가 후속 사용을 위해 원격 호출을 제거하여 형식화된 메시지를 선택적으로 캐시화할 수 있습니다. 또한 해당 메시지 카탈로그에 액세스할 수 없는 경우에도, 애플리케이션이 읽기 가능한 문자열을 리턴할 수 있도록 폴백 문자열을 설정할 수도 있습니다.
자원 번들은 로컬로 저장할 수 있습니다. 로컬화 가능 텍스트 패키지는 번들이 로컬(LocalizableConfiguration.LOCAL)로 저장되는지 또는 원격(LocalizableConfiguration.REMOTE)으로 저장되는지 여부를 표시하는 정적 변수를 제공합니다. 그러나 이 변수의 설정은 동일한 JVM(Java Virtual Machine) 내에서 실행하는 모든 애플리케이션에 적용됩니다.