]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/LocaleUtils.java
3 import java
.util
.ArrayList
;
5 import java
.util
.Locale
;
6 import java
.util
.ResourceBundle
;
8 import org
.argeo
.cms
.auth
.CurrentUser
;
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
, ClassLoader classLoader
) {
25 ResourceBundle rb
= ResourceBundle
.getBundle(resource
, locale
, classLoader
);
26 return rb
.getString(en
.name());
29 public static String
lead(String raw
, Locale locale
) {
30 return raw
.substring(0, 1).toUpperCase(locale
) + raw
.substring(1);
33 public static String
lead(Localized localized
) {
34 return lead(localized
, getCurrentLocale());
37 public static String
lead(Localized localized
, Locale locale
) {
38 return lead(localized
.local(locale
).toString(), locale
);
41 static Locale
getCurrentLocale() {
42 return CurrentUser
.locale();
43 // return UiContext.getLocale();
44 // FIXME look into Subject or settings
45 // return Locale.getDefault();
48 /** Returns null if argument is null. */
49 public static List
<Locale
> asLocaleList(Object locales
) {
52 ArrayList
<Locale
> availableLocales
= new ArrayList
<Locale
>();
53 String
[] codes
= locales
.toString().split(",");
54 for (int i
= 0; i
< codes
.length
; i
++) {
55 String code
= codes
[i
];
56 // variant not supported
57 int indexUnd
= code
.indexOf("_");
60 String language
= code
.substring(0, indexUnd
);
61 String country
= code
.substring(indexUnd
+ 1);
62 locale
= new Locale(language
, country
);
64 locale
= new Locale(code
);
66 availableLocales
.add(locale
);
68 return availableLocales
;