package ilarkesto.locale; import ilarkesto.base.Str; import ilarkesto.persistence.AEntity; import java.util.Locale; /** * Provides localized strings for a specified locale. */ public abstract class Localizer { public abstract String string(String key, Object... parameters); public abstract Locale getLocale(); public final String string(AEntity scope, String key, Object... parameters) { return string("entity." + scope.getDao().getEntityName() + "." + key, parameters); } public final String string(Class scope, String key, Object... parameters) { if (scope == null) return string(key, parameters); if (AEntity.class.isAssignableFrom(scope)) return string("entity." + Str.lowercaseFirstLetter(scope.getSimpleName()) + "." + key, parameters); return string(key, parameters); } }