import java.util.Locale;
/** Localized object. */
+@FunctionalInterface
public interface Localized {
+ String name();
+
+ default ClassLoader getL10nClassLoader() {
+ return getClass().getClassLoader();
+ }
/** 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);
}
default String lead(Locale locale) {
- return LocaleUtils.lead(local(locale).toString(), locale);
+ return LocaleUtils.toLead(local(locale).toString(), locale);
}
static class Untranslated implements Localized {
}
@Override
- public Object local(Locale locale) {
+ public String local(Locale locale) {
return msg;
}
+ @Override
+ public String name() {
+ return null;
+ }
+
}
}