|
3 | 3 | import java.util.Locale; |
4 | 4 | import java.util.ResourceBundle; |
5 | 5 |
|
| 6 | +import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; |
| 7 | + |
6 | 8 |
|
7 | 9 | /** |
8 | 10 | * |
|
14 | 16 | */ |
15 | 17 | public class DefaultLanguage |
16 | 18 | implements Language |
17 | | -{ |
18 | | - public static String DEFAULT_NAME = "Messages"; |
19 | | - |
20 | | - private Class clazz; |
21 | | - ResourceBundle rb; |
| 19 | +{ |
| 20 | + private String bundleName; |
| 21 | + private Locale locale; |
| 22 | +// private ResourceBundle rb; |
| 23 | + private DefaultI18N i18n = new DefaultI18N(); |
| 24 | + private String error; |
22 | 25 | //------------------------------------------------------------------------------------- |
23 | 26 | public DefaultLanguage() |
24 | 27 | { |
25 | 28 | } |
26 | 29 | //------------------------------------------------------------------------------------- |
27 | 30 | public DefaultLanguage( Class clazz ) |
28 | 31 | { |
29 | | - this( clazz, Locale.getDefault() ); |
| 32 | + this.bundleName = clazz.getPackage().getName()+"."+DEFAULT_NAME; |
| 33 | + try |
| 34 | + { |
| 35 | + i18n.initialize(); |
| 36 | + } |
| 37 | + catch( InitializationException e ) |
| 38 | + { |
| 39 | + error = e.getMessage(); |
| 40 | + } |
30 | 41 | } |
31 | 42 | //------------------------------------------------------------------------------------- |
32 | 43 | public DefaultLanguage( Class clazz, Locale locale ) |
33 | 44 | { |
34 | | - this.clazz = clazz; |
35 | | - rb = ResourceBundle.getBundle( clazz.getPackage().getName()+"."+DEFAULT_NAME, locale, clazz.getClassLoader() ); |
36 | | - } |
37 | | - //------------------------------------------------------------------------------------- |
38 | | - public Language init() |
39 | | - { |
40 | | - return new DefaultLanguage(); |
41 | | - } |
42 | | - //------------------------------------------------------------------------------------- |
43 | | - public Language init(Class clazz, Locale locale) |
44 | | - { |
45 | | - return new DefaultLanguage( clazz, locale ); |
| 45 | + this( clazz ); |
| 46 | + this.locale = locale; |
| 47 | +// rb = ResourceBundle.getBundle( clazz.getPackage().getName()+"."+DEFAULT_NAME, locale, clazz.getClassLoader() ); |
46 | 48 | } |
47 | 49 | //------------------------------------------------------------------------------------- |
48 | | - public Language init(Class clazz) |
49 | | - { |
50 | | - return new DefaultLanguage( clazz ); |
51 | | - } |
52 | | - //------------------------------------------------------------------------------------- |
53 | | - public String getMessage( String key ) |
54 | | - { |
55 | | - if( rb == null ) |
56 | | - return "resourceBundle not initialized for "+(clazz==null?"null":clazz.getName() ); |
57 | | - |
58 | | - return rb.getString(key); |
59 | | - } |
| 50 | + public String getMessage( String key, String... args ) |
| 51 | + { |
| 52 | + |
| 53 | + if( error != null ) |
| 54 | + return error; |
| 55 | + |
| 56 | + if( args == null || args.length == 0) |
| 57 | + return i18n.getString( bundleName, locale, key ); |
| 58 | + |
| 59 | + return i18n.format( bundleName, locale, key, args ); |
| 60 | + } |
60 | 61 | //------------------------------------------------------------------------------------- |
61 | 62 | //------------------------------------------------------------------------------------- |
62 | 63 | } |
0 commit comments