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