diff options
| author | 2025-08-19 16:46:19 +0100 | |
|---|---|---|
| committer | 2025-09-13 09:14:23 +0100 | |
| commit | 40ab19aee2ae2a26dee37184f79596017e48edf7 (patch) | |
| tree | 18af87109c167a92a9579908403be0bf56b39f84 /enigma-swing | |
| parent | Fix guava again (#562) (diff) | |
| download | enigma-40ab19aee2ae2a26dee37184f79596017e48edf7.tar.gz enigma-40ab19aee2ae2a26dee37184f79596017e48edf7.tar.xz enigma-40ab19aee2ae2a26dee37184f79596017e48edf7.zip | |
Add I18n service
Diffstat (limited to 'enigma-swing')
4 files changed, 10 insertions, 10 deletions
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java index c85c4044..5881900c 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -44,7 +44,6 @@ import javax.swing.tree.DefaultMutableTreeNode; | |||
| 44 | import org.jetbrains.annotations.Nullable; | 44 | import org.jetbrains.annotations.Nullable; |
| 45 | 45 | ||
| 46 | import cuchaz.enigma.Enigma; | 46 | import cuchaz.enigma.Enigma; |
| 47 | import cuchaz.enigma.EnigmaProfile; | ||
| 48 | import cuchaz.enigma.analysis.EntryReference; | 47 | import cuchaz.enigma.analysis.EntryReference; |
| 49 | import cuchaz.enigma.gui.config.Themes; | 48 | import cuchaz.enigma.gui.config.Themes; |
| 50 | import cuchaz.enigma.gui.config.UiConfig; | 49 | import cuchaz.enigma.gui.config.UiConfig; |
| @@ -124,9 +123,9 @@ public class Gui { | |||
| 124 | public final JFileChooser exportJarFileChooser = new JFileChooser(); | 123 | public final JFileChooser exportJarFileChooser = new JFileChooser(); |
| 125 | public SearchDialog searchDialog; | 124 | public SearchDialog searchDialog; |
| 126 | 125 | ||
| 127 | public Gui(EnigmaProfile profile, Set<EditableType> editableTypes) { | 126 | public Gui(Enigma enigma, Set<EditableType> editableTypes) { |
| 128 | this.editableTypes = editableTypes; | 127 | this.editableTypes = editableTypes; |
| 129 | this.controller = new GuiController(this, profile); | 128 | this.controller = new GuiController(this, enigma); |
| 130 | this.structurePanel = new StructurePanel(this); | 129 | this.structurePanel = new StructurePanel(this); |
| 131 | this.deobfPanel = new DeobfPanel(this); | 130 | this.deobfPanel = new DeobfPanel(this); |
| 132 | this.infoPanel = new IdentifierPanel(this); | 131 | this.infoPanel = new IdentifierPanel(this); |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java index e8e4dbde..e1e8521a 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java | |||
| @@ -33,7 +33,6 @@ import javax.swing.SwingUtilities; | |||
| 33 | import org.jetbrains.annotations.ApiStatus; | 33 | import org.jetbrains.annotations.ApiStatus; |
| 34 | 34 | ||
| 35 | import cuchaz.enigma.Enigma; | 35 | import cuchaz.enigma.Enigma; |
| 36 | import cuchaz.enigma.EnigmaProfile; | ||
| 37 | import cuchaz.enigma.EnigmaProject; | 36 | import cuchaz.enigma.EnigmaProject; |
| 38 | import cuchaz.enigma.analysis.ClassImplementationsTreeNode; | 37 | import cuchaz.enigma.analysis.ClassImplementationsTreeNode; |
| 39 | import cuchaz.enigma.analysis.ClassInheritanceTreeNode; | 38 | import cuchaz.enigma.analysis.ClassInheritanceTreeNode; |
| @@ -111,9 +110,9 @@ public class GuiController implements ClientPacketHandler { | |||
| 111 | 110 | ||
| 112 | private History<EntryReference<Entry<?>, Entry<?>>> referenceHistory; | 111 | private History<EntryReference<Entry<?>, Entry<?>>> referenceHistory; |
| 113 | 112 | ||
| 114 | public GuiController(Gui gui, EnigmaProfile profile) { | 113 | public GuiController(Gui gui, Enigma enigma) { |
| 115 | this.gui = gui; | 114 | this.gui = gui; |
| 116 | this.enigma = Enigma.builder().setProfile(profile).build(); | 115 | this.enigma = enigma; |
| 117 | } | 116 | } |
| 118 | 117 | ||
| 119 | public boolean isDirty() { | 118 | public boolean isDirty() { |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java index 6dd89572..66402ad8 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/Main.java | |||
| @@ -27,6 +27,7 @@ import joptsimple.OptionSet; | |||
| 27 | import joptsimple.OptionSpec; | 27 | import joptsimple.OptionSpec; |
| 28 | import joptsimple.ValueConverter; | 28 | import joptsimple.ValueConverter; |
| 29 | 29 | ||
| 30 | import cuchaz.enigma.Enigma; | ||
| 30 | import cuchaz.enigma.EnigmaProfile; | 31 | import cuchaz.enigma.EnigmaProfile; |
| 31 | import cuchaz.enigma.gui.config.Themes; | 32 | import cuchaz.enigma.gui.config.Themes; |
| 32 | import cuchaz.enigma.gui.config.UiConfig; | 33 | import cuchaz.enigma.gui.config.UiConfig; |
| @@ -101,8 +102,9 @@ public class Main { | |||
| 101 | } | 102 | } |
| 102 | 103 | ||
| 103 | EnigmaProfile parsedProfile = EnigmaProfile.read(options.valueOf(profile)); | 104 | EnigmaProfile parsedProfile = EnigmaProfile.read(options.valueOf(profile)); |
| 105 | Enigma enigma = Enigma.builder().setProfile(parsedProfile).build(); | ||
| 104 | 106 | ||
| 105 | I18n.setLanguage(UiConfig.getLanguage()); | 107 | I18n.setLanguage(UiConfig.getLanguage(), enigma.getServices()); |
| 106 | 108 | ||
| 107 | // Provide fallback anti-aliasing for desktop environments the JRE doesn't recognize | 109 | // Provide fallback anti-aliasing for desktop environments the JRE doesn't recognize |
| 108 | if (Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints") == null) { | 110 | if (Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints") == null) { |
| @@ -117,7 +119,7 @@ public class Main { | |||
| 117 | 119 | ||
| 118 | Themes.setupTheme(); | 120 | Themes.setupTheme(); |
| 119 | 121 | ||
| 120 | Gui gui = new Gui(parsedProfile, editables); | 122 | Gui gui = new Gui(enigma, editables); |
| 121 | GuiController controller = gui.getController(); | 123 | GuiController controller = gui.getController(); |
| 122 | 124 | ||
| 123 | if (options.has("single-class-tree")) { | 125 | if (options.has("single-class-tree")) { |
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java index 78050bb3..1789def1 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java | |||
| @@ -524,7 +524,7 @@ public class MenuBar { | |||
| 524 | } | 524 | } |
| 525 | } | 525 | } |
| 526 | 526 | ||
| 527 | private static void prepareLanguagesMenu(JMenu languagesMenu) { | 527 | private void prepareLanguagesMenu(JMenu languagesMenu) { |
| 528 | ButtonGroup languageGroup = new ButtonGroup(); | 528 | ButtonGroup languageGroup = new ButtonGroup(); |
| 529 | 529 | ||
| 530 | for (String lang : I18n.getAvailableLanguages()) { | 530 | for (String lang : I18n.getAvailableLanguages()) { |
| @@ -537,7 +537,7 @@ public class MenuBar { | |||
| 537 | 537 | ||
| 538 | languageButton.addActionListener(event -> { | 538 | languageButton.addActionListener(event -> { |
| 539 | UiConfig.setLanguage(lang); | 539 | UiConfig.setLanguage(lang); |
| 540 | I18n.setLanguage(lang); | 540 | I18n.setLanguage(lang, gui.getController().enigma.getServices()); |
| 541 | LanguageUtil.dispatchLanguageChange(); | 541 | LanguageUtil.dispatchLanguageChange(); |
| 542 | UiConfig.save(); | 542 | UiConfig.save(); |
| 543 | }); | 543 | }); |