java - Should I override Enum.toString() to localize an enum's label? -
today, have style question: given following code, should overriding enum#tostring()
present application user localized string or switch custom function (say, getlabel()
) or there method achieve same effect?
i'm after staying dry here, hardcoding resource bundle prefix not option.
i have simple enum this:
public enum due_date { start, presented; public string tostring() { return dbresbundle.instance().getstring("due_date_lbl_" + name()); } }
where dbresbundle
resourcebundle implementation can access msg
in jsf so:
<h:selectonemenu value="#{m.due_date}" id="due"> <f:selectitems value="#{duedates}" var="d" itemlabel="#{msg['due_date_lbl_'.concat(d.name())]}" /> </h:selectonemenu>
i'm using the enum in code (not jsf) context, don't utilize tostring()
there.
i've ended method getmsgkey()
on of enums does
return getclass().getsimplename() + "_" + name();
which internationalization of multiple enums (translation of enum values) without enumtranslator
.
Comments
Post a Comment