]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/Localized.java
Move qualified name to JCR bundle
[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 /** Default assumes that this is an {@link Enum} */
9 default Object local(Locale locale) {
10 return LocaleUtils.local((Enum<?>) this, locale);
11 }
12
13 default String lead() {
14 return LocaleUtils.lead(this);
15 }
16
17 default String format(Object[] args) {
18 Locale locale = LocaleUtils.getCurrentLocale();
19 MessageFormat format = new MessageFormat(local(locale).toString(), locale);
20 return format.format(args);
21 }
22
23 default String lead(Locale locale) {
24 return LocaleUtils.lead(local(locale).toString(), locale);
25 }
26
27 static class Untranslated implements Localized {
28 private String msg;
29
30 public Untranslated(String msg) {
31 super();
32 this.msg = msg;
33 }
34
35 @Override
36 public Object local(Locale locale) {
37 return msg;
38 }
39
40 }
41 }