package io.dataease.i18n;
|
|
import io.dataease.utils.CacheUtils;
|
import lombok.Getter;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.StringUtils;
|
|
import static io.dataease.constant.CacheConstant.UserCacheConstant.USER_COMMUNITY_LANGUAGE;
|
|
@Getter
|
public enum Lang {
|
|
zh_CN("zh-CN"), zh_TW("zh-TW"), en_US("en-US");
|
|
private final String desc;
|
|
Lang(String desc) {
|
this.desc = desc;
|
}
|
|
public static Lang getLang(String lang) {
|
Lang result = getLangWithoutDefault(lang);
|
if (result == null) {
|
result = zh_CN;
|
}
|
return result;
|
}
|
|
public static Lang getLangWithoutDefault(String lang) {
|
if (StringUtils.isBlank(lang)) {
|
return null;
|
}
|
for (Lang lang1 : values()) {
|
if (StringUtils.equalsIgnoreCase(lang1.getDesc(), lang)) {
|
return lang1;
|
}
|
}
|
if (StringUtils.startsWithIgnoreCase(lang, "zh-CN")) {
|
return zh_CN;
|
}
|
if (StringUtils.startsWithIgnoreCase(lang, "zh-HK") || StringUtils.startsWithIgnoreCase(lang, "zh-TW")) {
|
return zh_TW;
|
}
|
if (StringUtils.startsWithIgnoreCase(lang, "en")) {
|
return en_US;
|
}
|
return null;
|
}
|
|
public static boolean isChinese() {
|
String lang = null;
|
Object langObj = CacheUtils.get(USER_COMMUNITY_LANGUAGE, "de");
|
if (ObjectUtils.isNotEmpty(langObj) && StringUtils.isNotBlank(langObj.toString())) {
|
lang = langObj.toString();
|
}
|
|
if (StringUtils.isBlank(lang)) {
|
return true;
|
}
|
if (StringUtils.startsWithIgnoreCase(lang, "zh")) {
|
return true;
|
}
|
return false;
|
}
|
|
}
|