1 package org.codehaus.plexus.i18n;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 import org.codehaus.plexus.PlexusTestCase;
58
59 import java.util.Locale;
60
61
62
63
64
65
66
67
68
69 public class DefaultI18NTest
70 extends PlexusTestCase
71 {
72 private I18N i18n;
73
74 protected void setUp()
75 throws Exception
76 {
77 super.setUp();
78
79
80 Locale.setDefault( new Locale( "jp" ) );
81
82 i18n = (I18N) lookup( I18N.ROLE );
83 }
84
85 public void testLocalization()
86 {
87 String s0 = i18n.getString( null, null, "key1" );
88
89 assertEquals( "Unable to retrieve localized text for locale: default", s0, "[] value1" );
90
91 String s1 = i18n.getString( null, new Locale( "en", "US" ), "key2" );
92
93 assertEquals( "Unable to retrieve localized text for locale: en-US", s1, "[en_US] value2" );
94
95 String s2 = i18n.getString( "org.codehaus.plexus.i18n.BarBundle", new Locale( "ko", "KR" ), "key3" );
96
97 assertEquals( "Unable to retrieve localized text for locale: ko-KR", s2, "[ko] value3" );
98
99 String s3 = i18n.getString( "org.codehaus.plexus.i18n.BarBundle", new Locale( "ja" ), "key1" );
100
101 assertEquals( "Unable to fall back from non-existant locale: jp", "[] value1", s3 );
102
103 String s4 = i18n.getString( "org.codehaus.plexus.i18n.FooBundle", new Locale( "fr" ), "key3" );
104
105 assertEquals( "Unable to retrieve localized text for locale: fr", s4, "[fr] value3" );
106
107 String s5 = i18n.getString( "org.codehaus.plexus.i18n.FooBundle", new Locale( "fr", "FR" ), "key3" );
108
109 assertEquals( "Unable to retrieve localized text for locale: fr-FR", s5, "[fr] value3" );
110
111 String s6 = i18n.getString( "org.codehaus.plexus.i18n.i18n", null, "key1" );
112
113 assertEquals( "Unable to retrieve localized properties for locale: default", "[] value1", s6 );
114
115 Locale old = Locale.getDefault();
116 Locale.setDefault(Locale.FRENCH);
117 try
118 {
119 String s7 = i18n.getString( "org.codehaus.plexus.i18n.i18n", Locale.ENGLISH, "key1" );
120
121 assertEquals( "Not picking up new default locale: fr", "[fr] value1", s7 );
122
123 String s8 = i18n.getString( "org.codehaus.plexus.i18n.i18n", Locale.ITALIAN, "key1" );
124
125 assertEquals( "Unable to retrieve localized properties for locale: it", "[it] value1", s8 );
126
127 } finally {
128 Locale.setDefault(old);
129 }
130 }
131
132 public void testLocalizedMessagesWithFormatting()
133 {
134
135
136 String s6 = i18n.format( "org.codehaus.plexus.i18n.i18n", null, "thanks.message", "jason" );
137
138 assertEquals( s6, "Thanks jason!" );
139
140 String s7 = i18n.format( "org.codehaus.plexus.i18n.i18n", null, "thanks.message1", "jason", "van zyl" );
141
142 assertEquals( s7, "Thanks jason van zyl!" );
143
144 String s8 = i18n.format( "org.codehaus.plexus.i18n.i18n", null, "thanks.message2", new Object[]{ "jason", "van zyl" } );
145
146 assertEquals( s8, "Thanks jason van zyl!" );
147 }
148
149 public void testLocalizedMessagesWithNonStandardLocale()
150 {
151 String s0 = i18n.getString( "name", new Locale( "xx" ) );
152
153 assertEquals( "plexus", s0 );
154 }
155 }