Merge branch 'feature/messages' into develop
This commit is contained in:
15
README.MD
15
README.MD
@@ -621,7 +621,22 @@ message = Messages.get("welcome", "unknown_param_key", 123);
|
|||||||
// Приветствуем, {player}!
|
// Приветствуем, {player}!
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### format
|
||||||
|
|
||||||
|
**Messages** можно использовать и просто для форматирования параметизированных шаблонов:
|
||||||
|
|
||||||
|
```java
|
||||||
|
Map<String, Object> = map = new HashMap<>(1);
|
||||||
|
map.put("player", "David");
|
||||||
|
|
||||||
|
String message = Messages.format("Приветствуем, {player}!", map);
|
||||||
|
// Приветствуем, David!
|
||||||
|
```
|
||||||
|
|
||||||
|
```java
|
||||||
|
String message = Messages.foramt("Приветствуем, {player}!", "player", "David");
|
||||||
|
// Приветствуем, David!
|
||||||
|
```
|
||||||
|
|
||||||
## XLog
|
## XLog
|
||||||
|
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ public class Messages {
|
|||||||
String keyLc = key.toLowerCase();
|
String keyLc = key.toLowerCase();
|
||||||
|
|
||||||
if (MESSAGES_MAP.containsKey(keyLc)) {
|
if (MESSAGES_MAP.containsKey(keyLc)) {
|
||||||
return formatMessage(MESSAGES_MAP.get(keyLc), params);
|
return format(MESSAGES_MAP.get(keyLc), params);
|
||||||
} else {
|
} else {
|
||||||
return keyLc;
|
return keyLc;
|
||||||
}
|
}
|
||||||
@@ -101,26 +101,50 @@ public class Messages {
|
|||||||
String keyLc = key.toLowerCase();
|
String keyLc = key.toLowerCase();
|
||||||
|
|
||||||
if (MESSAGES_MAP.containsKey(keyLc)) {
|
if (MESSAGES_MAP.containsKey(keyLc)) {
|
||||||
int len;
|
return format(MESSAGES_MAP.get(keyLc), params);
|
||||||
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);
|
|
||||||
} else {
|
} else {
|
||||||
return keyLc;
|
return keyLc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//endregion
|
//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, "{", "}");
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user