1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.freemarker;
35
36 import info.magnolia.cms.i18n.Messages;
37 import info.magnolia.cms.i18n.MessagesChain;
38 import info.magnolia.cms.i18n.MessagesManager;
39 import info.magnolia.i18nsystem.FixedLocaleProvider;
40 import info.magnolia.i18nsystem.LocaleProvider;
41 import info.magnolia.i18nsystem.TranslationService;
42 import info.magnolia.i18nsystem.util.MessageFormatterUtils;
43 import info.magnolia.objectfactory.Components;
44
45 import java.util.List;
46 import java.util.Locale;
47
48
49
50
51
52
53
54
55
56
57 public class MessagesWrapper {
58
59 private final TranslationService translationService;
60 private final String basename;
61 private final LocaleProvider localeProvider;
62
63 @Deprecated
64 private MessagesChain messages;
65
66
67 MessagesWrapper(Locale locale, TranslationService translationService) {
68 this(null, locale, translationService);
69 }
70
71
72
73
74 @Deprecated
75 MessagesWrapper(String basename, Locale locale, TranslationService translationService) {
76 this.translationService = translationService;
77 this.localeProvider = new FixedLocaleProvider(locale);
78 this.basename = basename;
79 }
80
81
82
83
84 @Deprecated
85 MessagesWrapper(String basename, Locale locale) {
86 this(basename, locale, Components.getComponent(TranslationService.class));
87 }
88
89
90
91
92 public String get(String key) {
93 return translationService.translate(localeProvider, basename, new String[]{key});
94 }
95
96 public String get(String key, List args) {
97 Object[] argsArray = new Object[args.size()];
98 return MessageFormatterUtils.format(this.get(key), localeProvider.getLocale(), args.toArray(argsArray));
99 }
100
101
102
103
104 @Deprecated
105 public String get(String key, String basename) {
106 return translationService.translate(localeProvider, basename, new String[]{key});
107 }
108
109
110
111
112 @Deprecated
113 public String get(String key, List args, String basename) {
114 final String translation = translationService.translate(localeProvider, basename, new String[]{key});
115 Object[] argsArray = new Object[args.size()];
116 return MessageFormatterUtils.format(translation, localeProvider.getLocale(), args.toArray(argsArray));
117 }
118
119
120
121
122 @Deprecated
123 public String getWithDefault(String key, String defaultMsg) {
124 return this.getWithDefault(key, defaultMsg, this.getMessages());
125 }
126
127
128
129
130 @Deprecated
131 public String getWithDefault(String key, String defaultMsg, String basename) {
132 return this.getWithDefault(key, defaultMsg, MessagesManager.getMessages(basename, localeProvider.getLocale()));
133 }
134
135
136
137
138 @Deprecated
139 public String getWithDefault(String key, List args, String defaultMsg) {
140 return this.getWithDefault(key, args, defaultMsg, this.getMessages());
141 }
142
143
144
145
146 @Deprecated
147 public String getWithDefault(String key, List args, String defaultMsg, String basename) {
148 return this.getWithDefault(key, args, defaultMsg, MessagesManager.getMessages(basename, localeProvider.getLocale()));
149 }
150
151
152
153
154 @Deprecated
155 protected String get(String key, Messages messages) {
156 return messages.get(key);
157 }
158
159
160
161
162 @Deprecated
163 protected String get(String key, List args, Messages messages) {
164 Object[] argsArray = new Object[args.size()];
165 return messages.get(key, args.toArray(argsArray));
166 }
167
168
169
170
171 @Deprecated
172 protected String getWithDefault(String key, String defaultMsg, Messages messages) {
173 return messages.getWithDefault(key, defaultMsg);
174 }
175
176
177
178
179 @Deprecated
180 protected String getWithDefault(String key, List args, String defaultMsg, Messages messages) {
181 Object[] argsArray = new Object[args.size()];
182 return messages.getWithDefault(key, args.toArray(argsArray), defaultMsg);
183 }
184
185 private MessagesChain getMessages() {
186 if (messages == null) {
187 final Messages msg = MessagesManager.getMessages(basename, localeProvider.getLocale());
188 final Messages defMsg = MessagesManager.getMessages(localeProvider.getLocale());
189 messages = new MessagesChain(msg).chain(defMsg);
190 }
191 return messages;
192 }
193 }