X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2FLocalized.java;fp=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2FLocalized.java;h=1c7c8e5303143bfc93f5dc0117c9ef0b6411ae91;hb=810aecacb19916bade7e4bcfcbbb54c301f672df;hp=0000000000000000000000000000000000000000;hpb=ca59ec5bdf16364159d8d826306c90762192e12c;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 new file mode 100644 index 000000000..1c7c8e530 --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/Localized.java @@ -0,0 +1,27 @@ +package org.argeo.cms; + +import java.text.MessageFormat; +import java.util.Locale; + +/** Localized object. */ +public interface Localized { + /** Default assumes that this is an {@link Enum} */ + default Object local(Locale locale) { + return LocaleUtils.local((Enum) this, locale); + } + + default String lead() { + return LocaleUtils.lead(this); + } + + default String format(Object[] args) { + Locale locale = LocaleUtils.getCurrentLocale(); + MessageFormat format = new MessageFormat(local(locale).toString(), locale); + return format.format(args); + } + + default String lead(Locale locale) { + return LocaleUtils.lead(local(locale).toString(), locale); + } + +}