package com.vetti.common.utils;

import cn.hutool.core.util.StrUtil;
import com.vetti.common.config.InternationalProperties;
import com.vetti.common.enums.InternationalLangTypeEnum;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import com.vetti.common.utils.spring.SpringUtils;

import java.util.Properties;

/**
 * 获取i18n资源文件
 * 
 * @author wangxiangshun
 */
public class MessageUtils
{
    /**
     * 根据消息键和参数 获取消息 委托给spring messageSource
     *
     * @param code 消息键
     * @param args 参数
     * @return 获取国际化翻译值
     */
    public static String message(String code, Object... args)
    {
        MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
        return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
    }

    /**
     * 根据消息键值参数 获取消息
     *
     * @param code 消息键
     * @return 获取国际化翻译值
     */
    public static String messageCustomize(String code)
    {
        //获取语言类型
        InternationalProperties iProperties = SpringUtils.getBean(InternationalProperties.class);
        // 获取客户语言环境
        String lang = iProperties.getLang();
        if(StrUtil.isEmpty(lang)){
            lang = InternationalLangTypeEnum.INTERNATIONAL_LANG_TYPE_ENUM_EN.getCode();
        }
        Properties properties = I18nUtil.loadI18nProp(lang);
        return properties.getProperty(code);
    }
}
