mirror of https://gitee.com/stylefeng/roses
【i18n】新增一个翻译工具类
parent
29bb26b4f9
commit
b0d64d951d
|
@ -25,12 +25,12 @@ public interface TranslationApi {
|
|||
/**
|
||||
* 获取某个语种下的所有多语言字典
|
||||
*
|
||||
* @param translationLanguages 语种字典
|
||||
* @param tranLanguageCode 语种字典
|
||||
* @return key-翻译项标识,value-翻译的值TranslationApi
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:01
|
||||
*/
|
||||
Map<String, String> getTranslationDictByLanguage(String translationLanguages);
|
||||
Map<String, String> getTranslationDictByLanguage(String tranLanguageCode);
|
||||
|
||||
/**
|
||||
* 添加一个翻译项到context
|
||||
|
@ -44,11 +44,11 @@ public interface TranslationApi {
|
|||
/**
|
||||
* 删除某条翻译记录
|
||||
*
|
||||
* @param translationLanguages 语种字典
|
||||
* @param tranCode 具体翻译项编码
|
||||
* @param tranLanguageCode 语种字典
|
||||
* @param tranCode 具体翻译项编码
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 21:59
|
||||
*/
|
||||
void deleteTranslationDict(String translationLanguages, String tranCode);
|
||||
void deleteTranslationDict(String tranLanguageCode, String tranCode);
|
||||
|
||||
}
|
||||
|
|
|
@ -24,6 +24,14 @@
|
|||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<!--auth鉴权模块的api-->
|
||||
<!--QuickTranslateUtil需要获取当前用户的多语言类型属性-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>auth-api</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -31,33 +31,33 @@ public class TranslationContainer implements TranslationApi {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getTranslationDictByLanguage(String translationLanguages) {
|
||||
return TRAN_DICT_CONTAINER.get(translationLanguages);
|
||||
public Map<String, String> getTranslationDictByLanguage(String tranLanguageCode) {
|
||||
return TRAN_DICT_CONTAINER.get(tranLanguageCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTranslationDict(TranslationDict translationDict) {
|
||||
String translationLanguages = translationDict.getTranLanguageCode();
|
||||
String tranLanguageCode = translationDict.getTranLanguageCode();
|
||||
|
||||
Map<String, String> languageDict = TRAN_DICT_CONTAINER.get(translationLanguages);
|
||||
Map<String, String> languageDict = TRAN_DICT_CONTAINER.get(tranLanguageCode);
|
||||
if (languageDict == null) {
|
||||
languageDict = new HashMap<>();
|
||||
}
|
||||
languageDict.put(translationDict.getTranCode(), translationDict.getTranValue());
|
||||
|
||||
TRAN_DICT_CONTAINER.put(translationLanguages, languageDict);
|
||||
TRAN_DICT_CONTAINER.put(tranLanguageCode, languageDict);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteTranslationDict(String translationLanguages, String tranCode) {
|
||||
Map<String, String> languageDict = TRAN_DICT_CONTAINER.get(translationLanguages);
|
||||
public void deleteTranslationDict(String tranLanguageCode, String tranCode) {
|
||||
Map<String, String> languageDict = TRAN_DICT_CONTAINER.get(tranLanguageCode);
|
||||
|
||||
if (languageDict == null) {
|
||||
return;
|
||||
}
|
||||
languageDict.remove(tranCode);
|
||||
|
||||
TRAN_DICT_CONTAINER.put(translationLanguages, languageDict);
|
||||
TRAN_DICT_CONTAINER.put(tranLanguageCode, languageDict);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
package cn.stylefeng.roses.kernel.i18n.util;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.i18n.api.context.TranslationContext;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 针对某个翻译项快速得出翻译结果
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/27 22:36
|
||||
*/
|
||||
public class QuickTranslateUtil {
|
||||
|
||||
/**
|
||||
* 根据当前登陆用户选择的语言,翻译出指定项的译文值
|
||||
* <p>
|
||||
* 若查找不到code对应的值,则以第二个参数为准
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/27 22:41
|
||||
*/
|
||||
public static String get(String tranCode, String defaultName) {
|
||||
String tranLanguageCode = LoginContext.me().getLoginUser().getTranLanguageCode();
|
||||
Map<String, String> dict = TranslationContext.me().getTranslationDictByLanguage(tranLanguageCode);
|
||||
if (ObjectUtil.hasEmpty(dict, dict.get(tranCode))) {
|
||||
return defaultName;
|
||||
} else {
|
||||
return dict.get(tranCode);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue