X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2FLocalized.java;h=0a3bd18a862fd73a048a0993242b5d0c00c2d805;hb=11c9710b1d2456c8304a5841d775af008a794431;hp=1c7c8e5303143bfc93f5dc0117c9ef0b6411ae91;hpb=810aecacb19916bade7e4bcfcbbb54c301f672df;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/Localized.java b/org.argeo.cms/src/org/argeo/cms/Localized.java index 1c7c8e530..0a3bd18a8 100644 --- a/org.argeo.cms/src/org/argeo/cms/Localized.java +++ b/org.argeo.cms/src/org/argeo/cms/Localized.java @@ -4,16 +4,23 @@ import java.text.MessageFormat; import java.util.Locale; /** Localized object. */ +@FunctionalInterface public interface Localized { + String name(); + /** Default assumes that this is an {@link Enum} */ - default Object local(Locale locale) { - return LocaleUtils.local((Enum) this, locale); + default String local(Locale locale) { + return LocaleUtils.local(this, locale); } default String lead() { return LocaleUtils.lead(this); } + default String local() { + return LocaleUtils.local(this); + } + default String format(Object[] args) { Locale locale = LocaleUtils.getCurrentLocale(); MessageFormat format = new MessageFormat(local(locale).toString(), locale); @@ -21,7 +28,26 @@ public interface Localized { } default String lead(Locale locale) { - return LocaleUtils.lead(local(locale).toString(), locale); + return LocaleUtils.toLead(local(locale).toString(), locale); } + + static class Untranslated implements Localized { + private String msg; + + public Untranslated(String msg) { + super(); + this.msg = msg; + } + @Override + public String local(Locale locale) { + return msg; + } + + @Override + public String name() { + return null; + } + + } }