01: /**
02: * Copyright 2006 Webmedia Group Ltd.
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: **/package org.araneaframework.framework;
16:
17: import java.io.Serializable;
18: import java.util.Locale;
19: import java.util.ResourceBundle;
20: import org.araneaframework.core.ApplicationComponent;
21:
22: /**
23: * A context for providing localization via exposing the current
24: * Locale and ResourceBundles. The ResourceBundle of a different Locale
25: * can be accessed without chaning the current Locale with <code>getResourceBundle(Locale)</code>.
26: * The current Locale can be changed with <code>setLocale(Locale)</code> and all
27: * subsequent request to <code>getResourceBundle()</code> will use the new current Locale.
28: *
29: * @author "Toomas Römer" <toomas@webmedia.ee>
30: * @author Jevgeni Kabanov (ekabanov <i>at</i> araneaframework <i>dot</i> org)
31: */
32: public interface LocalizationContext extends Serializable {
33:
34: /**
35: * Returns the current session locale.
36: */
37: public Locale getLocale();
38:
39: /**
40: * Sets the current session locale.
41: */
42: public void setLocale(Locale locale);
43:
44: /**
45: * Localizes a string returning one that corresponds to the current locale.
46: */
47: public String localize(String key);
48:
49: /**
50: * Returns a resource bundle corresponding to the current locale.
51: */
52: public ResourceBundle getResourceBundle();
53:
54: /**
55: * Returns a resource bundle corresponding to arbitrary locale.
56: */
57: public ResourceBundle getResourceBundle(Locale locale);
58:
59: /**
60: * Localizes the code and uses it to format the message with the passed arguments.
61: * The format of the localized message should be acceptable by <code>java.text.MessageFormat</code>.
62: * If the localized message cannot be resolved uses <code>defaultMessage</code> instead.
63: */
64: public String getMessage(String code, Object[] args,
65: String defaultMessage);
66:
67: /**
68: * Localizes the code and uses it to format the message with the passed arguments.
69: * The format of the localized message should be acceptable by <code>java.text.MessageFormat</code>.
70: */
71: public String getMessage(String code, Object[] args);
72:
73: /** @since 1.1 */
74: public void addLocaleChangeListener(LocaleChangeListener listener);
75:
76: /** @since 1.1 */
77: public boolean removeLocaleChangeListener(
78: LocaleChangeListener listener);
79:
80: /** @since 1.1 */
81: public static interface LocaleChangeListener extends
82: ApplicationComponent {
83: void onLocaleChange(Locale oldLocale, Locale newLocale);
84: }
85: }
|