package com.ruoyi.common.utils.lang;

import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Component;

@Component
public class LangUnit
{
    @Autowired
    private RedisCache redisCache;

//    private RedisCache redisCache = new RedisCache();
//    private RedisCache redisCache = new RedisCache();

//    @Autowired
//    public void setRedisCache(RedisCache aRedisCache) {
//        redisCache = aRedisCache;
//    }


    //1 读取多语言  tagValue 只用来做辅助
    public String getValueTag(String key, String tagValue) {
        return getValueDef(key);     //根据设置显示多语言
    }

    //3.1 根据页面 读取多语言
    public String getValueDef(String key) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        String langStr = redisCache.getCacheObject(Constants.USER_LANGUAGE_KEY + loginUser.getUserId());
        if (StringUtils.isEmpty(langStr)) {
            langStr = "zh";
        }
        // 有bug, 例如：swagger-ui界面切换语言后接口返回信息的语言类型正确，但其他工具如ApiPost,手机端显示语言不正确
        // return  MessageUtils.message(key);
        return  MessageUtils.message(key, langStr);
    }

}
