From ed41a67614af29fe50488bf1a186b04391f87ccb Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 3 Sep 2013 11:36:57 +0200 Subject: [PATCH] Silently revert to system i18n language, if the currently selected language is not available. --- app/src/processing/app/I18n.java | 10 ++++++---- app/src/processing/app/Preferences.java | 7 ++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/processing/app/I18n.java b/app/src/processing/app/I18n.java index 6c7c9079d..d87442c0a 100644 --- a/app/src/processing/app/I18n.java +++ b/app/src/processing/app/I18n.java @@ -28,14 +28,16 @@ public class I18n { static String PROMPT_OK; static String PROMPT_BROWSE; - static protected void init (String language) { + 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 try { if (language != null && language.trim().length() > 0) { - Locale.setDefault(new Locale(language)); + Locale locale = new Locale(language); + i18n = ResourceBundle.getBundle("processing.app.i18n.Resources", locale); + Locale.setDefault(locale); + } else { + i18n = ResourceBundle.getBundle("processing.app.i18n.Resources", Locale.getDefault()); } - i18n = ResourceBundle.getBundle("processing.app.i18n.Resources", Locale.getDefault()); - PROMPT_YES = _("Yes"); PROMPT_NO = _("No"); PROMPT_CANCEL = _("Cancel"); diff --git a/app/src/processing/app/Preferences.java b/app/src/processing/app/Preferences.java index f9319cd7c..6505b9cef 100644 --- a/app/src/processing/app/Preferences.java +++ b/app/src/processing/app/Preferences.java @@ -267,7 +267,12 @@ public class Preferences { } // load the I18n module for internationalization - I18n.init(Preferences.get("editor.languages.current")); + try { + I18n.init(Preferences.get("editor.languages.current")); + } catch (MissingResourceException e) { + I18n.init(""); + Preferences.set("editor.languages.current", ""); + } // set some other runtime constants (not saved on preferences file) table.put("runtime.os", PConstants.platformNames[PApplet.platform]);