懒羊羊
2023-11-14 8286c62256f23bc2367a6729c0f46f84215e380b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package cn.stylefeng.guns.base.i18n.init;
 
import cn.stylefeng.guns.base.i18n.context.TranslationContext;
import cn.stylefeng.guns.base.i18n.dict.TranslationDict;
import cn.stylefeng.guns.base.i18n.entity.Translation;
import cn.stylefeng.guns.base.i18n.enums.DefaultDicts;
import cn.stylefeng.guns.base.i18n.enums.TranslationEnum;
import cn.stylefeng.guns.base.i18n.service.TranslationService;
import cn.stylefeng.roses.core.util.SpringContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * <p>
 * 参数配置 服务类
 * </p>
 *
 * @author stylefeng
 * @since 2019-06-20
 */
@Component
@Slf4j
public class TranslationInit implements CommandLineRunner {
 
    @Override
    public void run(String... args) {
        try {
            //从数据库加载字典
            initFromTable();
        } catch (Exception e) {
            log.warn("从数据库初始化字典失败,读取默认字典!");
            //加载默认的一些字典
            initDefaultDicts();
        }
    }
 
    /**
     * 从数据库加载字典
     *
     * @author fengshuonan
     * @Date 2020/3/18 12:59
     */
    private void initFromTable() {
        ArrayList<TranslationDict> translationDicts = new ArrayList<>();
 
        //从数据库读取字典
        TranslationService translationService = SpringContextHolder.getBean(TranslationService.class);
        List<Translation> list = translationService.list();
 
        if (list != null) {
            for (Translation translation : list) {
                TranslationDict translationDict = new TranslationDict();
                translationDict.setTranCode(translation.getTranCode());
                translationDict.setTranName(translation.getTranName());
                translationDict.setTranslationLanguages(TranslationEnum.valueOf(translation.getLanguages()));
                translationDict.setTranValue(translation.getTranValue());
                translationDicts.add(translationDict);
            }
            TranslationContext.init(translationDicts);
            log.info("初始化所有的翻译字典" + list.size() + "条!");
        }
    }
 
    /**
     * 初始化默认系统字典
     *
     * @author fengshuonan
     * @Date 2020/3/18 12:58
     */
    private void initDefaultDicts() {
        ArrayList<TranslationDict> translationDicts = new ArrayList<>();
 
        DefaultDicts[] values = DefaultDicts.values();
        for (DefaultDicts value : values) {
            TranslationDict translationDict = new TranslationDict();
            translationDict.setTranCode(value.getTranCode());
            translationDict.setTranslationLanguages(value.getTranslationLanguages());
            translationDict.setTranValue(value.getTranValue());
            translationDicts.add(translationDict);
        }
 
        TranslationContext.init(translationDicts);
        log.info("初始化所有的翻译字典" + translationDicts.size() + "条!");
    }
}