001 package org.trails.i18n;
002
003 import java.util.Locale;
004
005 import org.apache.hivemind.Messages;
006 import org.apache.hivemind.service.ThreadLocale;
007
008 public class HiveMindMessageSource extends AbstractMessageSource
009 {
010
011 private ThreadLocale threadLocale;
012 private Messages messageSource;
013
014 public String getMessage(String key)
015 {
016 return messageSource.getMessage(key);
017 }
018
019 public String getMessage(String key, Object[] args)
020 {
021 return messageSource.format(key, args);
022 }
023
024 public String getMessage(String key, Locale locale)
025 {
026 Locale currentLocale = threadLocale.getLocale();
027 /** I know!!, awful hack! **/
028 threadLocale.setLocale(locale);
029 String message = getMessage(key);
030 threadLocale.setLocale(currentLocale);
031 return message;
032 }
033
034 public String getMessage(String key, Object[] args, Locale locale)
035 {
036 Locale currentLocale = threadLocale.getLocale();
037 /** I know!!, awful hack! **/
038 threadLocale.setLocale(locale);
039 String message = getMessage(key, args);
040 threadLocale.setLocale(currentLocale);
041 return message;
042 }
043
044 public void setThreadLocale(ThreadLocale threadLocale)
045 {
046 this.threadLocale = threadLocale;
047 }
048
049 public void setMessageSource(Messages messageSource)
050 {
051 this.messageSource = messageSource;
052 }
053
054 }