Hi, maybe we can provide a new Localizer or change the existing default implementation. As far as I know the StringResourceModel uses the same Syntax for replacing which might lead to errors
@others: What do you think? @Rob: the pattern should be modified a bit so that it is not greedy (.*?) - have a look in WicketStuff / submodul html5 - there is a class ReplacingResourceModel - the pattern you find there is a better one. kind regards Tobias > Am 04.03.2015 um 09:09 schrieb Rob Sonke <r...@tigrou.nl>: > > Hi, > > It took a while to dive into this but I wrote a simple solution based on > the pattern/matcher example of Tobias and this seems to work well. It only > wraps the default Localizer class in Wicket by overriding the getString > method: > > getResourceSettings().setLocalizer(new Localizer() > > { > > public String getString(final String key, final Component component, > final IModel<?> model, final Locale locale, final String style, final > IModel<String> defaultValue) throws MissingResourceException > > { > > String value = super.getString(key, component, model, locale, style, > defaultValue); > > StringBuffer output = new StringBuffer(); > > final Pattern PLACEHOLDER_PATTERN = Pattern.compile("\\$\\{(.*)\\}"); > > Matcher matcher = PLACEHOLDER_PATTERN.matcher(value); > > > // Search for other nested keys to replace > > while (matcher.find()) > > { > > String replacedPlaceHolder = getString(matcher.group(1), component, > model, locale, style, (String)null); > > matcher.appendReplacement(output, replacedPlaceHolder); > > } > > matcher.appendTail(output); > > return output.toString(); > > } > > }); > > > Any need for putting this in Wicket? Or maybe somebody has better options > how to do this. I'm all ears but I'm already happy that I could implement > this anyway without patching the Wicket source. > > > Rob > > On Sat, Feb 21, 2015 at 6:14 PM, Tobias Soloschenko < > tobiassolosche...@googlemail.com> wrote: > >> Hi, >> >> if it gained not as much interest in the community, but there are still >> some users asking for such an implementation - maybe we can put it into >> wicketstuff-minis? >> >> kind regards >> >> Tobias >> >> P.S.: I also answered the question in stackoverflow. :-) >> >> Am 21.02.15 um 17:59 schrieb Sven Meier: >> >> Hi, >>> >>> such a feature was asked a few times, e.g.: >>> >>> http://stackoverflow.com/questions/16684200/refer-to- >>> one-property-from-another >>> >>> But apparently it never gained much interest in the community. In my >>> experience you won't find many cases where this is useful anyway. >>> >>> Have fun >>> Sven >>> >>> >>>> On 21.02.2015 16:51, Tobias Soloschenko wrote: >>>> >>>> Rob, >>>> >>>> we will see what others say and if there is a standard way for this in >>>> wicket. I'm currently testing the implementation - it also replaces keys >>>> found in hierarchy, because Wickets Localizer is going to be used for each >>>> key which is going to be replaced. So the example of your first mail is >>>> also covered. >>>> >>>> kind regards >>>> >>>> Tobias >>>> >>>>> Am 21.02.15 um 16:37 schrieb Rob Sonke: >>>>> >>>>> Tobias, >>>>> >>>>> Somehow I'm missing your replies in gmail. But thanks for the >>>>> suggestions. >>>>> Using custom models would be a last resort for me. Because I will have >>>>> to >>>>> replace all occurences. I'm somehow hoping to hook into the localizer. >>>>> >>>>> On Sat, Feb 21, 2015 at 2:01 PM, Rob Sonke <r...@tigrou.nl> wrote: >>>>> >>>>> Hi all, >>>>>> >>>>>> I'm trying to achieve a fairly simple thing within .properties files to >>>>>> avoid a lot of duplicate words through different files. >>>>>> >>>>>> For example there's is a HomePage.properties with: >>>>>> lbl.foo=This is an example text, we love ${lbl.item} >>>>>> >>>>>> And then in MyWebApplication.properties: >>>>>> lbl.item=Wicket >>>>>> >>>>>> But as far as I can see, Wicket tries to resolve the parameters with >>>>>> objects passed to eg StringResourceModel. How can I hook into this and >>>>>> solve this in a nice way? >>>>>> >>>>>> Kind regards, >>>>>> Rob >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org