]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/Localized.java
Merge remote-tracking branch 'origin/master' into v2.x
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / Localized.java
1 package org.argeo.cms;
2
3 import java.text.MessageFormat;
4 import java.util.Locale;
5
6 /** Localized object. */
7 public interface Localized {
8
9 /** Default assumes that this is an {@link Enum} */
10 default Object local(Locale locale) {
11 return LocaleUtils.local((Enum<?>) this, locale);
12 }
13
14 default String lead() {
15 return LocaleUtils.lead(this);
16 }
17
18 default String format(Object[] args) {
19 Locale locale = LocaleUtils.getCurrentLocale();
20 MessageFormat format = new MessageFormat(local(locale).toString(), locale);
21 return format.format(args);
22 }
23
24 default String lead(Locale locale) {
25 return LocaleUtils.lead(local(locale).toString(), locale);
26 }
27
28 static class Untranslated implements Localized {
29 private String msg;
30
31 public Untranslated(String msg) {
32 super();
33 this.msg = msg;
34 }
35
36 @Override
37 public Object local(Locale locale) {
38 return msg;
39 }
40
41 }
42 }