Merge branch '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}!
|
||||
```
|
||||
|
||||
### 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
|
||||
|
||||
|
||||
@@ -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,6 +101,38 @@ public class Messages {
|
||||
String keyLc = key.toLowerCase();
|
||||
|
||||
if (MESSAGES_MAP.containsKey(keyLc)) {
|
||||
return format(MESSAGES_MAP.get(keyLc), params);
|
||||
} else {
|
||||
return keyLc;
|
||||
}
|
||||
}
|
||||
//endregion
|
||||
|
||||
//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;
|
||||
@@ -108,19 +140,11 @@ public class Messages {
|
||||
len = params.length;
|
||||
}
|
||||
|
||||
Map<String, Object> mapParams = new HashMap<>(len / 2);
|
||||
Map<String, Object> map = new HashMap<>(len / 2);
|
||||
for (int i = 0; i < len; i = i + 2) {
|
||||
mapParams.put((String) params[i], params[i + 1]);
|
||||
map.put((String) params[i], params[i + 1]);
|
||||
}
|
||||
|
||||
return formatMessage(MESSAGES_MAP.get(keyLc), mapParams);
|
||||
} else {
|
||||
return keyLc;
|
||||
}
|
||||
}
|
||||
//endregion
|
||||
|
||||
private String formatMessage(String format, Map<String, Object> params) {
|
||||
return StringSubstitutor.replace(format, params, "{", "}");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user