]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/i18n/LocaleUtils.java
1 package org
.argeo
.cms
.i18n
;
3 import java
.util
.ArrayList
;
5 import java
.util
.Locale
;
6 import java
.util
.ResourceBundle
;
8 import org
.argeo
.eclipse
.ui
.specific
.UiContext
;
10 /** Utilities simplifying the development of localization enums. */
11 public class LocaleUtils
{
12 public static Object
local(Enum
<?
> en
) {
13 return local(en
, getCurrentLocale(), "/OSGI-INF/l10n/bundle");
16 public static Object
local(Enum
<?
> en
, Locale locale
) {
17 return local(en
, locale
, "/OSGI-INF/l10n/bundle");
20 public static Object
local(Enum
<?
> en
, Locale locale
, String resource
) {
21 return local(en
, locale
, resource
, en
.getClass().getClassLoader());
24 public static Object
local(Enum
<?
> en
, Locale locale
, String resource
,
25 ClassLoader classLoader
) {
26 ResourceBundle rb
= ResourceBundle
.getBundle(resource
, locale
,
28 return rb
.getString(en
.name());
31 public static String
lead(String raw
, Locale locale
) {
32 return raw
.substring(0, 1).toUpperCase(locale
) + raw
.substring(1);
35 public static String
lead(Localized localized
) {
36 return lead(localized
, getCurrentLocale());
39 public static String
lead(Localized localized
, Locale locale
) {
40 return lead(localized
.local(locale
).toString(), locale
);
43 static Locale
getCurrentLocale() {
44 return UiContext
.getLocale();
47 /** Returns null if argument is null. */
48 public static List
<Locale
> asLocaleList(Object locales
) {
51 ArrayList
<Locale
> availableLocales
= new ArrayList
<Locale
>();
52 String
[] codes
= locales
.toString().split(",");
53 for (int i
= 0; i
< codes
.length
; i
++) {
54 String code
= codes
[i
];
55 // variant not supported
56 int indexUnd
= code
.indexOf("_");
59 String language
= code
.substring(0, indexUnd
);
60 String country
= code
.substring(indexUnd
+ 1);
61 locale
= new Locale(language
, country
);
63 locale
= new Locale(code
);
65 availableLocales
.add(locale
);
67 return availableLocales
;