Jean-François Lévêque

Please provide your new code. I don't understand what you intend to do. Issues could be found later when translating or testing.

Please provide your new code.

I don't understand what you intend to do.

Issues could be found later when translating or testing.

org.sakaiproject.util.ResourceLoader's getLocale()

org.sakaiproject.util.ResourceLoader's getLocale()

"Your password reset link has expired. For security purposes, links expire after {0} hour(s), {1} minute(s)." and using getFormattedMessage could do. Adding a new library implies at least license ...

"Your password reset link has expired. For security purposes, links expire after {0} hour(s), {1} minute(s)." and using getFormattedMessage could do.

Adding a new library implies at least license checking.

Wouldn't a Calendar with set hours and minutes, using getTime() to get a Date and applying a nice SimpleDateFormat work? Concatenating strings is not a good idea, you should at least use getFormat...

Wouldn't a Calendar with set hours and minutes, using getTime() to get a Date and applying a nice SimpleDateFormat work?

Concatenating strings is not a good idea, you should at least use getFormattedMessage for the whole string, filling the variable parts. see https://confluence.sakaiproject.org/display/I18N/Best+Practices+for+Internationalized+Tools+in+Sakai#BestPracticesforInternationalizedToolsinSakai-Structuremessagesappropriatelymessages