diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/AppDialog.java b/trunk/src/com/jpexs/decompiler/flash/gui/AppDialog.java index b878fdb9c..aa2095f4b 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/AppDialog.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/AppDialog.java @@ -36,4 +36,8 @@ public abstract class AppDialog extends JDialog { public String translate(String key) { return resourceBundle.getString(key); } + + public void updateLanguage(){ + resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(getClass())); + } } diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/AppFrame.java b/trunk/src/com/jpexs/decompiler/flash/gui/AppFrame.java index c3897bd43..0b3b13a51 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/AppFrame.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/AppFrame.java @@ -33,4 +33,8 @@ public abstract class AppFrame extends JFrame { public String translate(String key) { return resourceBundle.getString(key); } + + public void updateLanguage(){ + resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(getClass())); + } } diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/AppStrings.java b/trunk/src/com/jpexs/decompiler/flash/gui/AppStrings.java index d5b6d38a6..eba0d9fff 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/AppStrings.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/AppStrings.java @@ -43,4 +43,8 @@ public class AppStrings { ResourceBundle b = ResourceBundle.getBundle(bundle); return b.getString(key); } + + public static void updateLanguage(){ + resourceBundle = ResourceBundle.getBundle(getResourcePath(MainFrame.class)); + } } diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/Main.java b/trunk/src/com/jpexs/decompiler/flash/gui/Main.java index cd2c4a039..c7fc7cf0d 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/Main.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/Main.java @@ -286,6 +286,27 @@ public class Main { return true; } } + + public static void reloadApp(){ + if(loadingDialog!=null){ + loadingDialog.setVisible(false); + loadingDialog = null; + } + if(proxyFrame!=null){ + proxyFrame.setVisible(false); + proxyFrame = null; + } + if(Main.file == null){ + mainFrame.setVisible(false); + Helper.emptyObject(mainFrame); + Cache.clearAll(); + System.gc(); + mainFrame = null; + showModeFrame(); + }else{ + openFile(Main.file); + } + } public static boolean openFile(String swfFile) { if (mainFrame != null) { diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java b/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java index 3e7fdd925..5c26430ea 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java @@ -2210,15 +2210,7 @@ public class MainFrame extends AppRibbonFrame implements ActionListener, TreeSel } break; case "SETLANGUAGE": - String newLanguage = new SelectLanguageDialog().display(); - if (newLanguage != null) { - if (newLanguage.equals("en")) { - newLanguage = ""; - } - Configuration.setConfig("locale", newLanguage); - View.showMessageDialog(null, "Changing language needs application restart.\r\nApplication will exit now, please run it again."); - Main.exit(); - } + new SelectLanguageDialog().display(); break; case "DISABLEDECOMPILATION": Configuration.setConfig("decompile", !miDecompile.isSelected()); diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/SelectLanguageDialog.java b/trunk/src/com/jpexs/decompiler/flash/gui/SelectLanguageDialog.java index fd4187d86..480a3e527 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/SelectLanguageDialog.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/SelectLanguageDialog.java @@ -72,7 +72,7 @@ public class SelectLanguageDialog extends AppDialog implements ActionListener { } cnt.setBorder(new EmptyBorder(10, 10, 10, 10)); cnt.setLayout(new BoxLayout(cnt, BoxLayout.Y_AXIS)); - JLabel langLabel = new JLabel("Language:"); + JLabel langLabel = new JLabel(translate("language.label")); langLabel.setAlignmentX(0.5f); cnt.add(langLabel); languageCombobox.setAlignmentX(0.5f); @@ -92,7 +92,7 @@ public class SelectLanguageDialog extends AppDialog implements ActionListener { setModalityType(ModalityType.APPLICATION_MODAL); View.setWindowIcon(this); View.centerScreen(this); - setTitle("Select language"); + setTitle(translate("dialog.title")); pack(); } @@ -103,7 +103,16 @@ public class SelectLanguageDialog extends AppDialog implements ActionListener { if (languageCombobox.getSelectedIndex() == -1) { } else { languageCode = ((Language) languageCombobox.getSelectedItem()).code; + String newLanguage = languageCode; + if (newLanguage.equals("en")) { + newLanguage = ""; + } + Configuration.setConfig("locale", newLanguage); + Locale.setDefault(Locale.forLanguageTag(newLanguage)); + updateLanguage(); setVisible(false); + AppStrings.updateLanguage(); + Main.reloadApp(); } break; case "CANCEL": diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog.properties b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog.properties index 552bd1043..f029b5d52 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog.properties +++ b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog.properties @@ -15,5 +15,8 @@ button.ok = OK button.cancel = Cancel +#after version 1.7.0: # This language name translated (e. g. \u010ce\u0161tina for Czech,...) -language = English \ No newline at end of file +language = English +language.label = Language: +dialog.title = Select language \ No newline at end of file diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_cs.properties b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_cs.properties index a9c521f32..a238f5518 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_cs.properties +++ b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_cs.properties @@ -15,5 +15,8 @@ button.ok = OK button.cancel = Storno +#after version 1.7.0: # This language name translated (e. g. \u010ce\u0161tina for Czech,...) -language = \u010ce\u0161tina \ No newline at end of file +language = \u010ce\u0161tina +language.label = Jazyk: +dialog.title = Vyberte jazyk \ No newline at end of file diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_de.properties b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_de.properties index 273026e60..da822fc3b 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_de.properties +++ b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_de.properties @@ -15,5 +15,8 @@ button.ok = OK button.cancel = Abbrechen +#after version 1.7.0: # This language name translated (e. g. \u010ce\u0161tina for Czech,...) -language = Deutsch \ No newline at end of file +language = Deutsch +language.label = Language: +dialog.title = Select language \ No newline at end of file diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_hu.properties b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_hu.properties index 6e512a4a1..c3e144e92 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_hu.properties +++ b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_hu.properties @@ -15,5 +15,8 @@ button.ok = OK button.cancel = M\u00e9gse +#after version 1.7.0: # This language name translated (e. g. \u010ce\u0161tina for Czech,...) -language = Magyar \ No newline at end of file +language = Magyar +language.label = Nyelv: +dialog.title = Select language diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_ru.properties b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_ru.properties index deff045af..23942db3b 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_ru.properties +++ b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_ru.properties @@ -15,5 +15,8 @@ button.ok = OK button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430 +#after version 1.7.0: # This language name translated (e. g. \u010ce\u0161tina for Czech,...) -language = \u0420\u0443\u0441\u0441\u043a\u0438\u0439 \ No newline at end of file +language = \u0420\u0443\u0441\u0441\u043a\u0438\u0439 +language.label = \u042f\u0437\u044b\u043a: +dialog.title = Select language \ No newline at end of file diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_sv.properties b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_sv.properties index 750364103..c52a4e765 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_sv.properties +++ b/trunk/src/com/jpexs/decompiler/flash/gui/locales/SelectLanguageDialog_sv.properties @@ -15,5 +15,8 @@ button.ok = Godk\u00e4nn button.cancel = Avbryt +#after version 1.7.0: # This language name translated (e. g. \u010ce\u0161tina for Czech,...) -language = Svensk \ No newline at end of file +language = Svensk +language.label = Language: +dialog.title = Select language \ No newline at end of file