annotate artifacts/src/main/java/org/dive4elements/river/artifacts/resources/Resources.java @ 8202:e4606eae8ea5

sed src/**/*.java 's/logger/log/g'
author Sascha L. Teichmann <teichmann@intevation.de>
date Fri, 05 Sep 2014 12:58:17 +0200
parents af13ceeba52a
children 1cd7225df846
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3771
diff changeset
9 package org.dive4elements.river.artifacts.resources;
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
413
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
11 import java.text.MessageFormat;
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import java.util.Locale;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import java.util.MissingResourceException;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import java.util.ResourceBundle;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import org.apache.log4j.Logger;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3771
diff changeset
18 import org.dive4elements.artifacts.CallMeta;
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 /**
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 * This class provides methods for i18n.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 *
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 */
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 public class Resources {
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
27 /** The log that is used in this class.*/
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
28 private static Logger log = Logger.getLogger(Resources.class);
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 /** The singleton instance.*/
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 private static Resources INSTANCE;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 /** The locales supported by this server.*/
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 protected Locale[] locales;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 /**
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 * No instance of this class is necessary.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 */
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 private Resources() {
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 /**
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 * Returns the locales supported by this server.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 *
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 * @return the supported locales.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 */
2290
6f4a1f513e89 Calculation error report: i18n the km of the error report.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2166
diff changeset
48 public synchronized Locale [] getLocales() {
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 if (locales == null) {
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 readLocales();
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 return locales;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 /**
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 * Read the locales configured for this server.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 */
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 protected void readLocales() {
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 // TODO IMPLEMENT ME
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 locales = new Locale[2];
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 locales[0] = Locale.GERMANY;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 locales[1] = Locale.ENGLISH;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68
2290
6f4a1f513e89 Calculation error report: i18n the km of the error report.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2166
diff changeset
69 private static synchronized void ensureInstance() {
418
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
70 if (INSTANCE == null) {
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
71 INSTANCE = new Resources();
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
72 }
2290
6f4a1f513e89 Calculation error report: i18n the km of the error report.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2166
diff changeset
73 }
6f4a1f513e89 Calculation error report: i18n the km of the error report.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2166
diff changeset
74
6f4a1f513e89 Calculation error report: i18n the km of the error report.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2166
diff changeset
75
6f4a1f513e89 Calculation error report: i18n the km of the error report.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2166
diff changeset
76 public static Locale getLocale(CallMeta meta) {
6f4a1f513e89 Calculation error report: i18n the km of the error report.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2166
diff changeset
77 ensureInstance();
418
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
78
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
79 Locale[] locales = INSTANCE.getLocales();
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
80 return meta.getPreferredLocale(locales);
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
81 }
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
82
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 413
diff changeset
83
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 /**
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 * This method returns the translated value for <i>key</i> or <i>def</i> if
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 * <i>key</i> is not existing in the resource bundle.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 *
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 * @param meta The CallMeta object of the request that contains the
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 * preferred locale.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 * @param key The key that should be translated.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 * @param def A default value that is returned, if <i>key</i> was not found.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 *
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 * @return the translated message.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 */
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 public static String getMsg(CallMeta meta, String key, String def) {
2290
6f4a1f513e89 Calculation error report: i18n the km of the error report.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2166
diff changeset
96 ensureInstance();
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 Locale[] locales = INSTANCE.getLocales();
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 Locale locale = meta.getPreferredLocale(locales);
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 return getMsg(locale, key, def);
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103
2166
2898b1ff6013 I18N for WINFO calculation result messages.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 418
diff changeset
104 public static String getMsg(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
105 CallMeta meta,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
106 String key,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
107 Object[] args
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
108 ) {
2166
2898b1ff6013 I18N for WINFO calculation result messages.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 418
diff changeset
109 return getMsg(meta, key, key, args);
2898b1ff6013 I18N for WINFO calculation result messages.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 418
diff changeset
110 }
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 /**
413
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
113 * Returns a translated message based on a template specified by <i>key</i>
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
114 * that has necessary values to be filled in.
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
115 *
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
116 * @param meta The CallMeta object.
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
117 * @param key The key of the template in the resource bundle.
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
118 * @param def the default value if no template was found with <i>key</i>.
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
119 * @param args The arguments that are necessary for the template.
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
120 *
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
121 * @return a translated string.
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
122 */
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
123 public static String getMsg(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
124 CallMeta meta,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
125 String key,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
126 String def,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
127 Object[] args)
413
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
128 {
2166
2898b1ff6013 I18N for WINFO calculation result messages.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 418
diff changeset
129 String template = getMsg(meta, key, (String)null);
413
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
130
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
131 if (template == null) {
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
132 return def;
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
133 }
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
134
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
135 return format(meta, template, args);
413
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
136 }
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
137
3170
79e7bba0f593 FixA: I18N for chart km service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2290
diff changeset
138 public static String format(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
139 CallMeta meta,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
140 String key,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
141 String def,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
142 Object ... args
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
143 ) {
3170
79e7bba0f593 FixA: I18N for chart km service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2290
diff changeset
144 String template = getMsg(meta, key, (String)null);
79e7bba0f593 FixA: I18N for chart km service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2290
diff changeset
145
79e7bba0f593 FixA: I18N for chart km service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2290
diff changeset
146 if (template == null) {
3398
7f9fe694f8d1 FixA: Added time range column to Delta W(t) CSV export.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3170
diff changeset
147 template = def;
3170
79e7bba0f593 FixA: I18N for chart km service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2290
diff changeset
148 }
79e7bba0f593 FixA: I18N for chart km service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2290
diff changeset
149
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
150 return format(meta, template, args);
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
151 }
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
152
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
153 /**
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
154 * Formats the given template using the arguments with respect of the
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
155 * appropriate locale given by the CallMeta instance.
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
156 */
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
157 public static String format(CallMeta meta, String templ, Object ... args) {
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
158 Locale locale = getLocale(meta);
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
159 MessageFormat mf = new MessageFormat(templ, locale);
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
160
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3398
diff changeset
161 return mf.format(args, new StringBuffer(), null).toString();
3170
79e7bba0f593 FixA: I18N for chart km service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2290
diff changeset
162 }
413
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
163
8a4c219fd0ee Added a method to Resources that returns translated compound messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 125
diff changeset
164 /**
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 * This method returns the translated value for <i>key</i> or <i>def</i> if
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166 * <i>key</i> is not existing in the resource bundle.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 *
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168 * @param locale The locale.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169 * @param key The key that should be translated.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 * @param def A default value that is returned, if <i>key</i> was not found.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171 *
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172 * @return the translated message.
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
173 */
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 public static String getMsg(Locale locale, String key, String def) {
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 ResourceBundle bundle = ResourceBundle.getBundle("messages", locale);
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 try {
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178 return bundle.getString(key);
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 catch (MissingResourceException mre) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
181 log.warn("No message found for key: " + key);
125
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183 return def;
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
184 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
186 }
25593857b8f8 Implemented a singleton instance that provides i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
187 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org