0

форматирование обычных сообщений через Messages

This commit is contained in:
2021-02-04 11:53:52 +03:00
parent 8478ba7281
commit b38b619459
2 changed files with 54 additions and 15 deletions

View File

@@ -84,7 +84,7 @@ public class Messages {
String keyLc = key.toLowerCase();
if (MESSAGES_MAP.containsKey(keyLc)) {
return formatMessage(MESSAGES_MAP.get(keyLc), params);
return format(MESSAGES_MAP.get(keyLc), params);
} else {
return keyLc;
}
@@ -101,26 +101,50 @@ public class Messages {
String keyLc = key.toLowerCase();
if (MESSAGES_MAP.containsKey(keyLc)) {
int len;
if ((params.length % 2) == 1) {
len = params.length - 1;
} else {
len = params.length;
}
Map<String, Object> mapParams = new HashMap<>(len / 2);
for (int i = 0; i < len; i = i + 2) {
mapParams.put((String) params[i], params[i + 1]);
}
return formatMessage(MESSAGES_MAP.get(keyLc), mapParams);
return format(MESSAGES_MAP.get(keyLc), params);
} else {
return keyLc;
}
}
//endregion
private String formatMessage(String format, Map<String, Object> params) {
//region Format message
/**
* Получить сообщение по формату.
*
* @param format параметизированное сообщение
* @param params параметры
* @return сообщение
*/
public String format(String format, Map<String, Object> params) {
return StringSubstitutor.replace(format, params, "{", "}");
}
/**
* Получить сообщение по формату.
*
* @param format параметизированное сообщение
* @param params параметры
* @return сообщение
*/
public String format(String format, Object... params) {
return format(format, arrayParamsToMap(params));
}
//endregion
private Map<String, Object> arrayParamsToMap(Object... params) {
int len;
if ((params.length % 2) == 1) {
len = params.length - 1;
} else {
len = params.length;
}
Map<String, Object> map = new HashMap<>(len / 2);
for (int i = 0; i < len; i = i + 2) {
map.put((String) params[i], params[i + 1]);
}
return map;
}
}