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 public static final long serialVersionUID = 0L;
13
14 @Override
15 public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) {
16 String result = getTranslation(code, locale, args);
17
18 return !result.equals("!".concat(code)) ? result : defaultMessage;
19 }
20
21
22 @Override
23 public String getMessage(String code, Object[] args, Locale locale) {
24 return getTranslation(code, locale, args);
25 }
26
27
28 @Override
29 public String getMessage(MessageSourceResolvable resolvable, Locale locale) {
30 String[] codes = resolvable.getCodes();
31 if (codes != null) {
32 for (int i = 0; i < codes.length; i++) {
33 String code = codes[i];
34
35 String result = getTranslation(code, locale, resolvable.getArguments());
36
37 if (! result.equals("!".concat(code))) {
38 return result;
39 }
40 }
41 }
42
43 return getTranslation(resolvable.getDefaultMessage(), locale, resolvable.getArguments());
44 }
45
46 }