May I suggest to extend i18n's functionality. Currently you need <@ww.i18n name="anyVarReferencingTheBundlesNames">
That seems to me not very obvious. I'd rather like to name the ResourceBundle like <@ww.i18n name="com.eds.asset.i18n.I18n_adminapp"> I modified the tag sources as outlined below. It should extend and not modify the orginal behaviour. regards Juergen // BodyTag implementation ---------------------------------------- public int doStartTag() throws JspException { // Get bundle // >> ResourceBundle bundle = null; try { String name = this.findString(nameAttr); bundle = (ResourceBundle) findValue("texts('" + name + "')"); if (bundle == null) { bundle = LocalizedTextUtil.findResourceBundle(name, (Locale) getStack().getContext().get(ActionContext.LOCALE)); } } catch (Exception e) { // ignore it } if (bundle == null) { try { String name = nameAttr; bundle = (ResourceBundle) findValue("texts('" + name + "')"); if (bundle == null) { bundle = LocalizedTextUtil.findResourceBundle(name, (Locale) getStack().getContext().get(ActionContext.LOCALE)); } } catch (Exception e) { LogFactory.getLog(getClass()).error("Could not find the bundle " + nameAttr, e); throw new JspException("Could not find the bundle " + nameAttr); } } if (bundle != null) { final Locale locale = (Locale) getStack().getContext().get(ActionContext.LOCALE); getStack().push(new TextProviderSupport(bundle, new LocaleProvider() { public Locale getLocale() { return locale; } })); } // << return EVAL_BODY_INCLUDE; } }
I18nTag.java
Description: Binary data