Skip to content

Commit 1a2602d

Browse files
committed
change how language preference is set and stored
1 parent 827bb33 commit 1a2602d

2 files changed

Lines changed: 42 additions & 29 deletions

File tree

app/src/processing/app/Language.java

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
public class Language {
3737
static private final String FILE = "processing.app.languages.PDE";
3838
static private final String LISTING = "processing/app/languages/languages.txt";
39+
static protected final String PREF = "language";
3940

4041
/** Single instance of this Language class */
4142
static private Language instance = null;
@@ -50,9 +51,15 @@ public class Language {
5051

5152

5253
private Language() {
53-
// Get system language
54-
this.language = Locale.getDefault().getLanguage();
55-
54+
String systemLanguage = Locale.getDefault().getLanguage();
55+
String language = Preferences.get(PREF);
56+
boolean writePrefs = false;
57+
58+
if (language == null) {
59+
language = systemLanguage;
60+
writePrefs = true;
61+
}
62+
5663
// Set available languages
5764
languages = new HashMap<String, String>();
5865
for (String code : listSupported()) {
@@ -62,22 +69,27 @@ private Language() {
6269
// Set default language
6370
if (!languages.containsKey(language)) {
6471
language = "en";
72+
writePrefs = true;
6573
}
6674

67-
// Get saved language
68-
try {
69-
File file = Base.getContentFile("lib/language.txt");
70-
if (file.exists()) {
71-
String language = PApplet.loadStrings(file)[0];
72-
language = language.trim().toLowerCase();
73-
if (!language.equals("")) {
74-
this.language = language;
75-
} else {
76-
Base.saveFile(this.language, file);
77-
}
78-
}
79-
} catch (Exception e) {
80-
e.printStackTrace();
75+
// // Get saved language
76+
// try {
77+
// File file = Base.getSettingsFile("language.txt");
78+
// if (file.exists()) {
79+
// String language = PApplet.loadStrings(file)[0];
80+
// language = language.trim().toLowerCase();
81+
// if (!language.equals("")) {
82+
// this.language = language;
83+
// } else {
84+
// Base.saveFile(this.language, file);
85+
// }
86+
// }
87+
// } catch (Exception e) {
88+
// e.printStackTrace();
89+
// }
90+
91+
if (writePrefs) {
92+
Preferences.save();
8193
}
8294

8395
// Get bundle with translations (processing.app.language.PDE)
@@ -86,7 +98,7 @@ private Language() {
8698

8799

88100
String[] listSupported() {
89-
// // List of languages in alphabetical order. New additions go here.
101+
// // Old list of languages in alphabetical order.
90102
// final String[] SUPPORTED = {
91103
// "de", // de, German, Deutsch
92104
// "en", // en, English, English
@@ -140,15 +152,15 @@ static public String getLanguage() {
140152
}
141153

142154

143-
/** Set new language */
144-
static public void setLanguage(String language) {
145-
try {
146-
File file = Base.getContentFile("lib/language.txt");
147-
Base.saveFile(language, file);
148-
} catch (Exception e) {
149-
e.printStackTrace();
150-
}
151-
}
155+
// /** Set new language */
156+
// static public void setLanguage(String language) {
157+
// try {
158+
// File file = Base.getContentFile("lib/language.txt");
159+
// Base.saveFile(language, file);
160+
// } catch (Exception e) {
161+
// e.printStackTrace();
162+
// }
163+
// }
152164

153165

154166
/**

app/src/processing/app/Preferences.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -810,13 +810,14 @@ protected void applyFrame() {
810810
Map<String, String> languages = Language.getLanguages();
811811
String language = "";
812812
for (Map.Entry<String, String> lang : languages.entrySet()) {
813-
if (lang.getValue().equals( String.valueOf(languageSelectionBox.getSelectedItem()))) {
813+
if (lang.getValue().equals(String.valueOf(languageSelectionBox.getSelectedItem()))) {
814814
language = lang.getKey().trim().toLowerCase();
815815
break;
816816
}
817817
}
818818
if (!language.equals(Language.getLanguage()) && !language.equals("")) {
819-
Language.setLanguage(language);
819+
//Language.setLanguage(language);
820+
set(Language.PREF, language);
820821
}
821822

822823
int oldDisplayIndex = getInteger("run.display"); //$NON-NLS-1$

0 commit comments

Comments
 (0)