Skip to content

Commit 8dd9a3e

Browse files
committed
If a language resource is missing, fallback to system default
1 parent a64d1cb commit 8dd9a3e

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

arduino-core/src/cc/arduino/i18n/Languages.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@ public class Languages {
3535

3636
public static final Language[] languages;
3737

38+
public static boolean have(String isoCode) {
39+
for (Language language : languages) {
40+
if (language.getIsoCode().equals(isoCode)) {
41+
return true;
42+
}
43+
}
44+
return false;
45+
}
46+
3847
static {
3948
languages = new Language[]{
4049
new Language(tr("System Default"), "", ""),

arduino-core/src/processing/app/PreferencesData.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package processing.app;
22

33
import org.apache.commons.compress.utils.IOUtils;
4+
5+
import cc.arduino.i18n.Languages;
46
import processing.app.helpers.PreferencesHelper;
57
import processing.app.helpers.PreferencesMap;
68
import processing.app.legacy.PApplet;
@@ -78,8 +80,13 @@ static public void init(File file) throws Exception {
7880
}
7981

8082
// load the I18n module for internationalization
83+
String lang = get("editor.languages.current");
84+
if (lang == null || !Languages.have(lang)) {
85+
lang = "";
86+
set("editor.languages.current", "");
87+
}
8188
try {
82-
I18n.init(get("editor.languages.current"));
89+
I18n.init(lang);
8390
} catch (MissingResourceException e) {
8491
I18n.init("en");
8592
set("editor.languages.current", "en");

0 commit comments

Comments
 (0)