All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.javaclub.toolbox.conf.i18n.I18nResp Maven / Gradle / Ivy

The newest version!
/*
 * @(#)I18nResp.java	2024-02-21 17:41:01
 *
 * Copyright (c) 2024 - 2099. All Rights Reserved.
 *
 */

package com.github.javaclub.toolbox.conf.i18n;

import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.config.YamlMapFactoryBean;
import org.springframework.core.io.ClassPathResource;

import com.github.javaclub.toolbox.ToolBox.Maps;
import com.github.javaclub.toolbox.ToolBox.Strings;


/**
 * I18nResp
 *
 * @author Gerald Chen
 * @version $Id: I18nResp.java 2024-02-21 17:41:01 Exp $
 */
public class I18nResp {
	
	static final Logger log = LoggerFactory.getLogger(I18nResp.class);
	
	static Map> I18N_MAP = Maps.newHashMap();
	
	static void register(String language, Map codeRespMap) {
		I18N_MAP.putIfAbsent(language, codeRespMap);
	}

	public static String load(String language, String code, String defaultValueIfEmpty) {
		try {
			if (null != I18N_MAP.get(language)) {
				return Strings.noneNull((String) I18N_MAP.get(language).get(code), defaultValueIfEmpty);
			}
            YamlMapFactoryBean propBean = new YamlMapFactoryBean();
            propBean.setResources(new ClassPathResource(respI18nFilePath(language)));
            Map propMap = propBean.getObject();
            if (Maps.isNotEmpty(propMap)) {
            	register(language, propMap);
            }
            return Strings.noneNull((String) propMap.get(code), defaultValueIfEmpty);
        } catch (Exception e) {
        	log.error("Error of I18nResp.load: language={}, code={}, error={}", language, code, e.getMessage());
        }
		return defaultValueIfEmpty;
	}
	
	static String respI18nFilePath(String language) {
		return Strings.concat("i18n/result_code.", language, ".txt");
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy