Fixed locale selection

This commit is contained in:
Federico Fissore 2013-10-02 17:34:09 +02:00
parent 2f38d1aaa5
commit 63914efb06
1 changed files with 21 additions and 14 deletions

View File

@ -13,8 +13,10 @@
package processing.app; package processing.app;
import java.util.*;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class I18n { public class I18n {
// start using current locale but still allow using the dropdown list later // start using current locale but still allow using the dropdown list later
@ -28,16 +30,21 @@ public class I18n {
static String PROMPT_OK; static String PROMPT_OK;
static String PROMPT_BROWSE; static String PROMPT_BROWSE;
static protected void init (String language) throws MissingResourceException { static protected void init(String language) throws MissingResourceException {
// there might be a null pointer exception ... most likely will never happen but the jvm gets mad // there might be a null pointer exception ... most likely will never happen but the jvm gets mad
try { try {
if (language != null && language.trim().length() > 0) { String[] languageParts = language.split("_");
Locale locale = new Locale(language); Locale locale = Locale.getDefault();
i18n = ResourceBundle.getBundle("processing.app.i18n.Resources", locale); // both language and country
Locale.setDefault(locale); if (languageParts.length == 2) {
} else { locale = new Locale(languageParts[0], languageParts[1]);
i18n = ResourceBundle.getBundle("processing.app.i18n.Resources", Locale.getDefault()); // just language
} else if (languageParts.length == 1 && !"".equals(languageParts[0])) {
locale = new Locale(languageParts[0]);
} }
// there might be a null pointer exception ... most likely will never happen but the jvm gets mad
Locale.setDefault(locale);
i18n = ResourceBundle.getBundle("processing.app.i18n.Resources", Locale.getDefault());
PROMPT_YES = _("Yes"); PROMPT_YES = _("Yes");
PROMPT_NO = _("No"); PROMPT_NO = _("No");
PROMPT_CANCEL = _("Cancel"); PROMPT_CANCEL = _("Cancel");
@ -63,7 +70,7 @@ public class I18n {
return res; return res;
} }
public static String format(String fmt, Object ... args) { public static String format(String fmt, Object... args) {
// Single quote is used to escape curly bracket arguments. // Single quote is used to escape curly bracket arguments.
// - Prevents strings fixed at translation time to be fixed again // - Prevents strings fixed at translation time to be fixed again
@ -76,7 +83,7 @@ public class I18n {
/** /**
* Does nothing. * Does nothing.
* * <p/>
* This method is an hack to extract words with gettext tool. * This method is an hack to extract words with gettext tool.
*/ */
protected static void unusedStrings() { protected static void unusedStrings() {