com.neko233.skilltree.commons.i18n.I18nApi Maven / Gradle / Ivy
package com.neko233.skilltree.commons.i18n;
import com.neko233.skilltree.commons.core.utils.ListUtils233;
import java.util.List;
import java.util.Map;
/**
* @author SolarisNeko on 2023-07-23
*/
public interface I18nApi {
/**
* @return 国家 -> 代码定义 key : ${其他语言}
*/
Map> getI18nMap();
String exportData();
void importData(String data) throws Exception;
default void setI18nData(String country,
String i18nKey,
String i18nValue) {
final I18nData build = I18nData.builder()
.country(country)
.i18nKey(i18nKey)
.i18nValue(i18nValue)
.build();
setI18nData(ListUtils233.of(build));
}
void setI18nData(List i18nDataList);
/**
* 删除数据
*
* @param country 国家
* @param i18nKey key
*/
void deleteI18nData(String country,
String i18nKey);
/**
* @param country 国家
* @return 翻译 kvMap
*/
default Map getTranslateMap(String country) {
final Map> i18nMap = getI18nMap();
return i18nMap.get(country);
}
/**
* 获取翻译后的文本
*
* @param country 国家
* @param key key
* @return 翻译后的文本
*/
default String getTranslateText(String country,
String key) {
final Map> i18nMap = getI18nMap();
Map stringStringMap = i18nMap.get(country);
if (stringStringMap == null) {
return null;
}
return stringStringMap.get(key);
}
}