update timi-lang
This commit is contained in:
@ -40,13 +40,13 @@ public class TimiServerAPI implements OS.FileSystem, ApplicationContextAware {
|
||||
TimiServerAPI.applicationContext = applicationContext;
|
||||
}
|
||||
|
||||
public static Language getUserLanguage() {
|
||||
Language userLanguage = TimiSpring.getLanguage();
|
||||
public static Language.Enum getUserLanguage() {
|
||||
Language.Enum userLanguage = TimiSpring.getLanguage();
|
||||
Environment env = applicationContext.getBean(Environment.class);
|
||||
if (env.containsProperty(DEV_LANG_CONFIG)) {
|
||||
String property = env.getProperty(DEV_LANG_CONFIG);
|
||||
if (TimiJava.isNotEmpty(property)) {
|
||||
userLanguage = Ref.toType(Language.class, property);
|
||||
userLanguage = Ref.toType(Language.Enum.class, property);
|
||||
}
|
||||
}
|
||||
return userLanguage;
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
package com.imyeyu.api.modules.common.entity;
|
||||
|
||||
import com.imyeyu.java.bean.timi.TimiCode;
|
||||
import com.imyeyu.java.bean.timi.TimiException;
|
||||
import com.imyeyu.java.ref.Ref;
|
||||
import com.imyeyu.api.TimiServerAPI;
|
||||
import com.imyeyu.spring.entity.Entity;
|
||||
import com.imyeyu.java.bean.Language;
|
||||
import com.imyeyu.spring.entity.Creatable;
|
||||
import com.imyeyu.spring.entity.Deletable;
|
||||
import com.imyeyu.spring.entity.IDEntity;
|
||||
import com.imyeyu.spring.entity.Updatable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
@ -16,52 +16,13 @@ import java.lang.reflect.Field;
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class Multilingual extends Entity {
|
||||
public class Multilingual extends Language implements Serializable, IDEntity<Long>, Creatable, Updatable, Deletable {
|
||||
|
||||
protected String key;
|
||||
protected Long id;
|
||||
|
||||
protected String zhCN;
|
||||
protected Long createdAt;
|
||||
|
||||
protected String zhTW;
|
||||
protected Long updatedAt;
|
||||
|
||||
protected String enUS;
|
||||
|
||||
protected String ruRU;
|
||||
|
||||
protected String koKR;
|
||||
|
||||
protected String jaJP;
|
||||
|
||||
protected String deDE;
|
||||
|
||||
/** @return 根据用户环境获取语言值 */
|
||||
public String getValue() {
|
||||
try {
|
||||
Field field = Ref.getField(getClass(), TimiServerAPI.getUserLanguage().toString().replace("_", ""));
|
||||
if (field == null) {
|
||||
throw new TimiException(TimiCode.RESULT_NULL).msgKey("TODO not support language");
|
||||
}
|
||||
return Ref.getFieldValue(this, field, String.class);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定语言值
|
||||
*
|
||||
* @param language 指定语言
|
||||
* @return 值
|
||||
*/
|
||||
public String getValue(com.imyeyu.java.bean.Language language) {
|
||||
try {
|
||||
Field field = Ref.getField(getClass(), language.toString().replace("_", ""));
|
||||
if (field == null) {
|
||||
throw new TimiException(TimiCode.RESULT_NULL).msgKey("TODO not support language");
|
||||
}
|
||||
return Ref.getFieldValue(this, field, String.class);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
protected Long deletedAt;
|
||||
}
|
||||
|
||||
@ -16,9 +16,9 @@ public interface MultilingualService extends UpdatableService<Multilingual> {
|
||||
|
||||
Long createIfNotExist(String key, String zhCN);
|
||||
|
||||
String get(Language language, Long id);
|
||||
String get(Language.Enum language, Long id);
|
||||
|
||||
String getByKey(Language language, String key);
|
||||
String getByKey(Language.Enum language, String key);
|
||||
|
||||
List<Multilingual> listByNotTranslate();
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ public class MultilingualServiceImplement extends AbstractEntityService<Multilin
|
||||
}
|
||||
|
||||
@Override
|
||||
public String get(Language language, Long id) {
|
||||
public String get(Language.Enum language, Long id) {
|
||||
Multilingual result = redisLanguage.get(id);
|
||||
if (result == null) {
|
||||
result = mapper.select(id);
|
||||
@ -72,7 +72,7 @@ public class MultilingualServiceImplement extends AbstractEntityService<Multilin
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getByKey(Language language, String key) {
|
||||
public String getByKey(Language.Enum language, String key) {
|
||||
Long languageId = redisLanguageMap.get(key);
|
||||
if (languageId == null) {
|
||||
Multilingual result = mapper.selectByKey(key);
|
||||
|
||||
@ -50,16 +50,16 @@ public class MultilingualTranslateTask {
|
||||
@AllArgsConstructor
|
||||
public enum BaiduLanguage {
|
||||
|
||||
ZH(Language.zh_CN),
|
||||
EN(Language.en_US),
|
||||
JP(Language.ja_JP),
|
||||
KOR(Language.ko_KR),
|
||||
RU(Language.ru_RU),
|
||||
DE(Language.de_DE),
|
||||
CHT(Language.zh_TW);
|
||||
ZH(Language.Enum.zh_CN),
|
||||
EN(Language.Enum.en_US),
|
||||
JP(Language.Enum.ja_JP),
|
||||
KOR(Language.Enum.ko_KR),
|
||||
RU(Language.Enum.ru_RU),
|
||||
DE(Language.Enum.de_DE),
|
||||
CHT(Language.Enum.zh_TW);
|
||||
|
||||
/** 标准映射 */
|
||||
final Language language;
|
||||
final Language.Enum language;
|
||||
|
||||
/**
|
||||
* 获取排除语言列表
|
||||
@ -104,7 +104,7 @@ public class MultilingualTranslateTask {
|
||||
Map<String, String> result = doTranslate(sb.toString(), languageList.get(j));
|
||||
for (Map.Entry<String, String> item : result.entrySet()) {
|
||||
Multilingual multilingual = cnMap.get(item.getKey());
|
||||
Language lang = languageList.get(j).language;
|
||||
Language.Enum lang = languageList.get(j).language;
|
||||
String value = multilingual.getValue(lang);
|
||||
if (TimiJava.isEmpty(value)) {
|
||||
Ref.setFieldValue(multilingual, lang.toString().replace("_", ""), item.getValue());
|
||||
|
||||
@ -12,7 +12,7 @@ import org.jcodec.api.NotSupportedException;
|
||||
*/
|
||||
public class RedisLanguage extends AbstractLanguageMapper {
|
||||
|
||||
public RedisLanguage(Language language) {
|
||||
public RedisLanguage(Language.Enum language) {
|
||||
super(language);
|
||||
}
|
||||
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
package com.imyeyu.api.util;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import com.imyeyu.api.modules.common.service.MultilingualService;
|
||||
import com.imyeyu.java.bean.Language;
|
||||
import com.imyeyu.lang.multi.Multilingual;
|
||||
import com.imyeyu.api.modules.common.service.MultilingualService;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
@ -19,7 +19,7 @@ public class RedisMultilingual extends Multilingual {
|
||||
|
||||
@PostConstruct
|
||||
private void postConstruct() {
|
||||
Language[] languages = Language.values();
|
||||
Language.Enum[] languages = Language.Enum.values();
|
||||
for (int i = 0; i < languages.length; i++) {
|
||||
add(languages[i], new RedisLanguage(languages[i]));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user