Again, correct me if I'm wrong :-) But what if there would not be just one message but instead one message (selected at runtime) out of a possible number of messages. The view would then have to either [1] select the localized message at runtime or [2] include every possible message at compiletime and display one of them based on some property returned at runtime.
And [2] - if I realize correctly - is just like [1], it would still require some ResourceBundle-like functionality (which ofcourse could be implemented using Velocity macros). Anyway, it's not really a problem, just something I was thinking about since your "build-time" approach looks interesting enough to consider. -----Oorspronkelijk bericht----- Van: Aapo Laakkonen [mailto:[EMAIL PROTECTED] Verzonden: Tuesday, September 23, 2003 12:54 PM Aan: [EMAIL PROTECTED] Onderwerp: RE: [Mav-user] I18n/l10n > At the moment, I use a combination of (1) and (2). > A disadvantage of (4) - if I see it correctly - > is that I create messages at runtime (f.e. validation > error messages) and it would be more complicated in > the view if I had to create them at compiletime. Yes, but as I see those validation messages come from resource bundles? So that makes me wondering how would it make it more complicated. Here is example what I'm thinking (in velocity): <html> <head><title>@title@</title></head> <body> <h1>@welcome.message@</h1> <p> #if (${errors.message}) #err("@error.message@", ["$!{user.name}"]) #else #msg("@user.details@"), ["$!{user.name}", "$!{user.age}"]); #end </p> </body> </html> And here is the resource bundle: @[EMAIL PROTECTED] @[EMAIL PROTECTED] @[EMAIL PROTECTED] {1} was not found in db. @[EMAIL PROTECTED] {1}, it seems that your are getting older, {2} years behind and counting. #err and #msg are velocity macros that do parameter replaces. As you see, the static messages are translated build-time and parameter replacing happens in runtime. Another possibility would be to write #evel macro and then everything looks like this: <html> <head><title>@title@</title></head> <body> <h1>@welcome.message@</h1> <p> #if (${errors.message}) #eval("@error.message@") #else #eval("@user.details@"); #end </p> </body> </html> And resource bundle looks like this: @[EMAIL PROTECTED] @[EMAIL PROTECTED] @[EMAIL PROTECTED] $!{user.name} was not found in db. @[EMAIL PROTECTED] $!{user.name}, it seems that your are getting older, $!{user.age} years behind and counting. What do you think? ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf [INVALID FOOTER] ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf [INVALID FOOTER]
