@@ -73,95 +73,68 @@ public class Preferences {
7373
7474 static final String PREFS_FILE = "preferences.txt" ;
7575
76- String [] languages = {
77- _ ("System Default" ),
78- "العربية" + " (" + _ ("Arabic" ) + ")" ,
79- "Aragonés" + " (" + _ ("Aragonese" ) + ")" ,
80- "български" + " (" + _ ("Bulgarian" ) + ")" ,
81- "Català" + " (" + _ ("Catalan" ) + ")" ,
82- "Hrvatski" + " (" + _ ("Croatian" ) + ")" ,
83- "český" + " (" + _ ("Czech" ) + ")" ,
84- "简体中文" + " (" + _ ("Chinese Simplified" ) + ")" ,
85- "繁體中文" + " (" + _ ("Chinese Traditional" ) + ")" ,
86- "Dansk" + " (" + _ ("Danish" ) + ")" ,
87- "Nederlands" + " (" + _ ("Dutch" ) + ")" ,
88- "English" + " (" + _ ("English" ) + ")" ,
89- "Eesti" + " (" + _ ("Estonian" ) + ")" ,
90- "Pilipino" + " (" + _ ("Filipino" ) + ")" ,
91- "Français" + " (" + _ ("French" ) + ")" ,
92- "Canadienne-français" + " (" + _ ("Canadian French" ) + ")" ,
93- "Galego" + " (" + _ ("Galician" ) + ")" ,
94- "საქართველოს" + " (" + _ ("Georgian" ) + ")" ,
95- "עברית" + " (" + _ ("Hebrew" ) + ")" ,
96- "Deutsch" + " (" + _ ("German" ) + ")" ,
97- "ελληνικά" + " (" + _ ("Greek" ) + ")" ,
98- "Magyar" + " (" + _ ("Hindi" ) + ")" ,
99- "Magyar" + " (" + _ ("Hungarian" ) + ")" ,
100- "Bahasa Indonesia" + " (" + _ ("Indonesian" ) + ")" ,
101- "Italiano" + " (" + _ ("Italian" ) + ")" ,
102- "日本語" + " (" + _ ("Japanese" ) + ")" ,
103- "한국어" + " (" + _ ("Korean" ) + ")" ,
104- "Latviešu" + " (" + _ ("Latvian" ) + ")" ,
105- "Lietuvių Kalba" + " (" + _ ("Lithuaninan" ) + ")" ,
106- "मराठी" + " (" + _ ("Marathi" ) + ")" ,
107- "Norsk" + " (" + _ ("Norwegian" ) + ")" ,
108- "Norsk bokmål" + " (" + _ ("Norwegian Bokmål" ) + ")" ,
109- "فارسی" + " (" + _ ("Persian" ) + ")" ,
110- "Język Polski" + " (" + _ ("Polish" ) + ")" ,
111- "Português" + " (" + _ ("Portuguese" ) + " - Brazil)" ,
112- "Português" + " (" + _ ("Portuguese" ) + " - Portugal)" ,
113- "Română" + " (" + _ ("Romanian" ) + ")" ,
114- "Русский" + " (" + _ ("Russian" ) + ")" ,
115- "Español" + " (" + _ ("Spanish" ) + ")" ,
116- "தமிழ்" + " (" + _ ("Tamil" ) + ")" ,
117- "Türk" + " (" + _ ("Turkish" ) + ")" ,
118- "Український" + " (" + _ ("Ukrainian" ) + ")"
119- };
120- String [] languagesISO = {
121- "" ,
122- "ar" ,
123- "an" ,
124- "bg" ,
125- "ca" ,
126- "hr_hr" ,
127- "cs_cz" ,
128- "zh_cn" ,
129- "zh_tw" ,
130- "da" ,
131- "nl" ,
132- "en" ,
133- "et" ,
134- "tl" ,
135- "fr" ,
136- "fr_ca" ,
137- "gl" ,
138- "ka_ge" ,
139- "he" ,
140- "de" ,
141- "el" ,
142- "hi" ,
143- "hu" ,
144- "id" ,
145- "it" ,
146- "ja" ,
147- "ko" ,
148- "lv" ,
149- "lt" ,
150- "mr" ,
151- "no_nb" ,
152- "nb_no" ,
153- "fa" ,
154- "pl" ,
155- "pt_br" ,
156- "pt_pt" ,
157- "ro" ,
158- "ru" ,
159- "es" ,
160- "ta" ,
161- "tr" ,
162- "uk"
163- };
164-
76+ class Language {
77+ Language (String _name , String _originalName , String _isoCode ) {
78+ name = _name ;
79+ originalName = _originalName ;
80+ isoCode = _isoCode ;
81+ }
82+
83+ public String toString () {
84+ if (originalName .length () == 0 )
85+ return name ;
86+ return originalName + " (" + name + ")" ;
87+ };
88+
89+ String name ;
90+ String originalName ;
91+ String isoCode ;
92+ }
93+
94+ Language languages [] = {
95+ new Language (_ ("System Default" ), "" , "" ),
96+ new Language (_ ("Arabic" ), "العربية" , "ar" ),
97+ new Language (_ ("Aragonese" ), "Aragonés" , "an" ),
98+ new Language (_ ("Bulgarian" ), "български" , "bg" ),
99+ new Language (_ ("Catalan" ), "Català" , "ca" ),
100+ new Language (_ ("Croatian" ), "Hrvatski" , "hr_hr" ),
101+ new Language (_ ("Czech" ), "český" , "cs_cz" ),
102+ new Language (_ ("Chinese Simplified" ), "简体中文" , "zh_cn" ),
103+ new Language (_ ("Chinese Traditional" ), "繁體中文" , "zh_tw" ),
104+ new Language (_ ("Danish" ), "Dansk" , "da" ),
105+ new Language (_ ("Dutch" ), "Nederlands" , "nl" ),
106+ new Language (_ ("English" ), "English" , "en" ),
107+ new Language (_ ("Estonian" ), "Eesti" , "et" ),
108+ new Language (_ ("Filipino" ), "Pilipino" , "tl" ),
109+ new Language (_ ("French" ), "Français" , "fr" ),
110+ new Language (_ ("Canadian French" ), "Canadienne-français" , "fr_ca" ),
111+ new Language (_ ("Galician" ), "Galego" , "gl" ),
112+ new Language (_ ("Georgian" ), "საქართველოს" , "ka_ge" ),
113+ new Language (_ ("German" ), "Deutsch" , "de" ),
114+ new Language (_ ("Greek" ), "ελληνικά" , "el" ),
115+ new Language (_ ("Hebrew" ), "עברית" , "he" ),
116+ new Language (_ ("Hindi" ), "हिंदी" , "hi" ),
117+ new Language (_ ("Hungarian" ), "Magyar" , "hu" ),
118+ new Language (_ ("Indonesian" ), "Bahasa Indonesia" , "id" ),
119+ new Language (_ ("Italian" ), "Italiano" , "it" ),
120+ new Language (_ ("Japanese" ), "日本語" , "ja" ),
121+ new Language (_ ("Korean" ), "한국어" , "ko" ),
122+ new Language (_ ("Latvian" ), "Latviešu" , "lv" ),
123+ new Language (_ ("Lithuaninan" ), "Lietuvių Kalba" , "lt" ),
124+ new Language (_ ("Marathi" ), "मराठी" , "mr" ),
125+ new Language (_ ("Norwegian" ), "Norsk" , "no_nb" ),
126+ new Language (_ ("Norwegian Bokmål" ), "Norsk bokmål" , "nb_no" ),
127+ new Language (_ ("Persian" ), "فارسی" , "fa" ),
128+ new Language (_ ("Polish" ), "Język Polski" , "pl" ),
129+ new Language (_ ("Portuguese (Brazil)" ), "Português (Brazil)" , "pt_br" ),
130+ new Language (_ ("Portuguese (Portugal)" ), "Português (Portugal)" , "pt_pt" ),
131+ new Language (_ ("Romanian" ), "Română" , "ro" ),
132+ new Language (_ ("Russian" ), "Русский" , "ru" ),
133+ new Language (_ ("Spanish" ), "Español" , "es" ),
134+ new Language (_ ("Tamil" ), "தமிழ்" , "ta" ),
135+ new Language (_ ("Turkish" ), "Türk" , "tr" ),
136+ new Language (_ ("Ukrainian" ), "Український" , "uk" ), };
137+
165138 /**
166139 * Standardized width for buttons. Mac OS X 10.3 wants 70 as its default,
167140 * Windows XP needs 66, and my Ubuntu machine needs 80+, so 80 seems proper.
@@ -386,7 +359,11 @@ public void actionPerformed(ActionEvent e) {
386359 label = new JLabel (_ ("Editor language: " ));
387360 box .add (label );
388361 comboLanguage = new JComboBox (languages );
389- comboLanguage .setSelectedIndex ((Arrays .asList (languagesISO )).indexOf (Preferences .get ("editor.languages.current" )));
362+ String currentLanguage = Preferences .get ("editor.languages.current" );
363+ for (Language language : languages ) {
364+ if (language .isoCode .equals (currentLanguage ))
365+ comboLanguage .setSelectedItem (language );
366+ }
390367 box .add (comboLanguage );
391368 label = new JLabel (_ (" (requires restart of Arduino)" ));
392369 box .add (label );
@@ -676,9 +653,8 @@ protected void applyFrame() {
676653 setBoolean ("editor.update_extension" , updateExtensionBox .isSelected ());
677654
678655 // adds the selected language to the preferences file
679- Object newItem = comboLanguage .getSelectedItem ();
680- int pos = (Arrays .asList (languages )).indexOf (newItem .toString ()); // position in the languages array
681- set ("editor.languages.current" ,(Arrays .asList (languagesISO )).get (pos ));
656+ Language newLanguage = (Language ) comboLanguage .getSelectedItem ();
657+ set ("editor.languages.current" , newLanguage .isoCode );
682658
683659 editor .applyPreferences ();
684660 }
0 commit comments