1 package de.kaiserpfalzedv.commons.spring.i18n;
2
3 import java.util.Locale;
4
5 import org.springframework.context.MessageSource;
6 import org.springframework.context.MessageSourceResolvable;
7 import org.springframework.stereotype.Component;
8 import de.kaiserpfalzedv.commons.core.i18n.ResourceBundleTranslator;
9
10 @Component
11 public class KaiserpfalzMessageSource extends ResourceBundleTranslator implements MessageSource {
12
13 @Override
14 public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) {
15 String result = getTranslation(code, locale, args);
16
17 return !result.equals("!".concat(code)) ? result : defaultMessage;
18 }
19
20
21 @Override
22 public String getMessage(String code, Object[] args, Locale locale) {
23 return getTranslation(code, locale, args);
24 }
25
26
27 @Override
28 public String getMessage(MessageSourceResolvable resolvable, Locale locale) {
29 String[] codes = resolvable.getCodes();
30 if (codes != null) {
31 for (int i = 0; i < codes.length; i++) {
32 String code = codes[i];
33
34 String result = getTranslation(code, locale, resolvable.getArguments());
35
36 if (! result.equals("!".concat(code))) {
37 return result;
38 }
39 }
40 }
41
42 return getTranslation(resolvable.getDefaultMessage(), locale, resolvable.getArguments());
43 }
44
45 }