Package com.imyeyu.lang
Class MultilingualResolver
java.lang.Object
com.imyeyu.lang.MultilingualResolver
- All Implemented Interfaces:
LanguageMapping
- Direct Known Subclasses:
FileMultilingualResolver,ResourcesMultilingualResolver
多语言系统,支持多文件多语言加载
// lang 文件
say.msg=hello {0}
// 加载
MultilingualResolver lang = MultilingualResolver.getInstance();
lang.load(Language.zh_CN, "lang/timijava/%s.lang");
// 加载所有支持的映射文件
lang.loadAll("lang/timifx/%s.lang");
// 设置当前激活语言
lang.setActivated("zh_CN");
// 引用当前激活语言
MultilingualResolver.text("say.msg");
MultilingualResolver.text("say.msg", "timi-java");
// 动态引用
MultilingualResolver.map("en_US").text("say.msg");
- Version:
- 2021-10-25 15:16
- Author:
- 夜雨
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Language.Enum当前激活语言protected boolean是否启用调试模式protected final Map<Language.Enum, AbstractLanguageMapper> 多语言映射表,存储各语言对应的映射器protected final List<com.imyeyu.java.bean.CallbackArg<Language.Enum>> 激活语言更新回调列表 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(Language.Enum language, AbstractLanguageMapper mapper) 添加语言映射器void向当前激活语言的映射表添加键值对voidaddUpdateActiveListeners(com.imyeyu.java.bean.CallbackArg<Language.Enum> callback) 添加更新激活语言回调当前激活语言boolean当前激活语言是否存在语言映射map(Language.Enum lang) 获取指定映射数据获取指定映射数据从当前激活语言获取文本,支持二次映射,没有找到映射时返回入参键从当前激活语言获取文本从当前激活语言获取插入参数文本voidremoveUpdateActiveListeners(com.imyeyu.java.bean.CallbackArg<Language> callback) 移除更新激活语言回调voidsetActivated(Language.Enum activated) 设置激活语言voidsetActivated(String languageName) 设置激活语言voidsetDebugging(boolean debugging) 设置调试模式
-
Field Details
-
multilingualMap
多语言映射表,存储各语言对应的映射器 -
updateActiveListeners
激活语言更新回调列表 -
activated
当前激活语言 -
isDebugging
protected boolean isDebugging是否启用调试模式
-
-
Constructor Details
-
MultilingualResolver
public MultilingualResolver()默认构造根据系统默认 Locale 初始化激活语言,如果无法识别则默认为中文
-
-
Method Details
-
add
添加语言映射器- Parameters:
language- 语言mapper- 语言映射器
-
addUpdateActiveListeners
添加更新激活语言回调- Parameters:
callback- 回调
-
removeUpdateActiveListeners
移除更新激活语言回调- Parameters:
callback- 回调
-
setActivated
设置激活语言- Parameters:
languageName- 激活语言
-
setActivated
设置激活语言- Parameters:
activated- 激活语言
-
setDebugging
public void setDebugging(boolean debugging) 设置调试模式同时会将所有已加载的语言映射器设置为调试模式
- Parameters:
debugging- true 为启用调试模式
-
map
获取指定映射数据- Parameters:
lang- 语言- Returns:
- 映射表
-
map
获取指定映射数据- Parameters:
lang- 语言- Returns:
- 映射表
-
add
向当前激活语言的映射表添加键值对- Specified by:
addin interfaceLanguageMapping- Parameters:
key- 键value- 值
-
has
当前激活语言是否存在语言映射- Specified by:
hasin interfaceLanguageMapping- Parameters:
key- 键- Returns:
- true 为存在
-
message
从当前激活语言获取文本,支持二次映射,没有找到映射时返回入参键test.msg=Hello world mapping=@test.msg no_mapping=\@test.msg MultilingualResolver.text("mapping"); // Hello world MultilingualResolver.text("no_mapping"); // @test.msg- Specified by:
messagein interfaceLanguageMapping- Parameters:
key- 键- Returns:
- 文本值
-
message
从当前激活语言获取文本- Specified by:
messagein interfaceLanguageMapping- Parameters:
key- 键def- 默认值(没有找到映射值时)- Returns:
- 获取结果
-
message
从当前激活语言获取插入参数文本- Specified by:
messagein interfaceLanguageMapping- Parameters:
key- 键argsMap- 参数- Returns:
- 结果
-
getActivated
当前激活语言
-