Package com.easydesk.localization
Class DefaultEasyDeskLocalizationService
java.lang.Object
com.easydesk.localization.DefaultEasyDeskLocalizationService
- All Implemented Interfaces:
EasyDeskLocalizationService,AutoCloseable
public class DefaultEasyDeskLocalizationService
extends Object
implements EasyDeskLocalizationService, AutoCloseable
EasyDeskLocalizationService 의 기본 구현 - ResourceBundle 기반.
Fulcrum 의 SimpleLocalizationServiceImpl/DefaultLocalizationService/LocaleTokenizer
(Apache License 2.0) 의 동작을 그대로 옮겨 왔다:
- 요청한 bundle 에 key 가 없으면 설정된 나머지 bundle 들에서 차례로 찾는다.
- 요청 locale 의 bundle 이 없으면 기본 국가/언어를 붙여 보고, 그래도 없으면 기본 locale 의 bundle 을 쓴다.
format은MessageFormat으로 인자를 채운다.
LocalizationConfig.fallbackToDefaultLocale(boolean) 로 끌 수 있다).
달라진 점: Avalon/Turbine/servlet 의존성이 없고, bundle cache 는 요청 locale 기준의 thread-safe map 이며, locale 문자열은
ko-KR 뿐 아니라 ko_KR 형식도 받는다.
Spring 에서는 LocalizationConfiguration 이 bean 으로 만들고, Spring 밖에서는 Localization.getService()
로 같은 instance 를 쓴다. Java 9+ 의 ResourceBundle 은 .properties 를 UTF-8 로 읽는다.
- Author:
- YounghoCho
-
Field Summary
Fields inherited from interface com.easydesk.localization.EasyDeskLocalizationService
ACCEPT_LANGUAGE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()cache 를 비운다 (Spring bean 의 destroy method).format(LocalizableMessage message, Locale locale) LocalizableMessage(key + parameters) 를 기본 bundle 로 format 한다.format(String bundleName, Locale locale, LocalizableKey key, Object... args) format(Locale locale, LocalizableKey key, Object... args) 기본 bundleString[]Fulcrum LocaleTokenizer 와 같은 규칙: ',' 로 나누고 ';q=' 값이 큰 순서 (같으면 먼저 나온 것).getString(LocalizableKey key) 기본 bundle / 기본 localegetString(String bundleName, Locale locale, LocalizableKey key) bundleName 에서 key 를 찾고, 없으면 나머지 bundle 들에서 차례로 찾는다.getString(Locale locale, LocalizableKey key) 기본 bundle
-
Constructor Details
-
DefaultEasyDeskLocalizationService
public DefaultEasyDeskLocalizationService()기본 설정(LocalizationConfigImpl)으로 만든다. -
DefaultEasyDeskLocalizationService
-
-
Method Details
-
close
public void close()cache 를 비운다 (Spring bean 의 destroy method).Localization에 등록되어 있으면 등록도 해제한다.- Specified by:
closein interfaceAutoCloseable
-
getDefaultLanguage
- Specified by:
getDefaultLanguagein interfaceEasyDeskLocalizationService
-
getDefaultCountry
- Specified by:
getDefaultCountryin interfaceEasyDeskLocalizationService
-
getDefaultLocale
- Specified by:
getDefaultLocalein interfaceEasyDeskLocalizationService
-
getDefaultBundleName
- Specified by:
getDefaultBundleNamein interfaceEasyDeskLocalizationService- Returns:
- 첫 번째 bundle 이름 (없으면 빈 문자열)
-
getBundleNames
- Specified by:
getBundleNamesin interfaceEasyDeskLocalizationService
-
getBundle
- Specified by:
getBundlein interfaceEasyDeskLocalizationService
-
getBundle
- Specified by:
getBundlein interfaceEasyDeskLocalizationService
-
getBundle
- Specified by:
getBundlein interfaceEasyDeskLocalizationService- Parameters:
bundleName- null 이면 기본 bundlelocale- null 이면 기본 locale
-
getBundle
- Specified by:
getBundlein interfaceEasyDeskLocalizationService
-
getLocale
Fulcrum LocaleTokenizer 와 같은 규칙: ',' 로 나누고 ';q=' 값이 큰 순서 (같으면 먼저 나온 것).- Specified by:
getLocalein interfaceEasyDeskLocalizationService- Returns:
- 가장 우선순위가 높은 locale. 비었거나 해석할 수 없으면 기본 locale
-
getString
public String getString(String bundleName, Locale locale, String key) throws MissingResourceException Description copied from interface:EasyDeskLocalizationServicebundleName 에서 key 를 찾고, 없으면 나머지 bundle 들에서 차례로 찾는다.- Specified by:
getStringin interfaceEasyDeskLocalizationService- Throws:
MissingResourceException- 어느 bundle 에도 key 가 없을 때
-
getString
Description copied from interface:EasyDeskLocalizationService기본 bundle / 기본 locale- Specified by:
getStringin interfaceEasyDeskLocalizationService
-
getString
Description copied from interface:EasyDeskLocalizationService기본 bundle- Specified by:
getStringin interfaceEasyDeskLocalizationService
-
getString
public String getString(String bundleName, Locale locale, LocalizableKey key) throws MissingResourceException - Specified by:
getStringin interfaceEasyDeskLocalizationService- Throws:
MissingResourceException
-
getString
- Specified by:
getStringin interfaceEasyDeskLocalizationService
-
getString
- Specified by:
getStringin interfaceEasyDeskLocalizationService
-
format
- Specified by:
formatin interfaceEasyDeskLocalizationService
-
format
- Specified by:
formatin interfaceEasyDeskLocalizationService
-
format
Description copied from interface:EasyDeskLocalizationService기본 bundle- Specified by:
formatin interfaceEasyDeskLocalizationService
-
format
Description copied from interface:EasyDeskLocalizationServiceLocalizableMessage(key + parameters) 를 기본 bundle 로 format 한다.- Specified by:
formatin interfaceEasyDeskLocalizationService
-