From 39dc9bf963668c45e68741b100bf9d70a01ca37f Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Mon, 8 Apr 2024 08:00:29 +0300 Subject: [PATCH] implement basic i18n --- src/main/java/com/mykola2312/mptv/I18n.java | 26 +++++++++++++++++++ .../com/mykola2312/mptv/ui/MainFrame.java | 7 ++++- src/main/resources/i18n_en_US.properties | 1 + 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/mykola2312/mptv/I18n.java create mode 100644 src/main/resources/i18n_en_US.properties diff --git a/src/main/java/com/mykola2312/mptv/I18n.java b/src/main/java/com/mykola2312/mptv/I18n.java new file mode 100644 index 0000000..39c9ddb --- /dev/null +++ b/src/main/java/com/mykola2312/mptv/I18n.java @@ -0,0 +1,26 @@ +package com.mykola2312.mptv; + +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class I18n { + private static ResourceBundle bundle; + + public static String get(String key) { + if (bundle == null) { + String locale = Locale.getDefault().toString(); + bundle = ResourceBundle.getBundle("i18n_" + locale); + if (bundle == null) { + bundle = ResourceBundle.getBundle("i18n_enUS"); + } + } + + try { + return bundle.getString(key); + } catch (MissingResourceException e) { + System.err.println(e.toString()); + return key; + } + } +} diff --git a/src/main/java/com/mykola2312/mptv/ui/MainFrame.java b/src/main/java/com/mykola2312/mptv/ui/MainFrame.java index 6704f78..1d4c91e 100644 --- a/src/main/java/com/mykola2312/mptv/ui/MainFrame.java +++ b/src/main/java/com/mykola2312/mptv/ui/MainFrame.java @@ -1,13 +1,18 @@ package com.mykola2312.mptv.ui; +import com.mykola2312.mptv.I18n; + import javax.swing.*; public class MainFrame { private JFrame frame; public void create() { - this.frame = new JFrame("MPTV"); + this.frame = new JFrame(I18n.get("MainFrame_Title")); + frame.setUndecorated(true); + frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE); + frame.setExtendedState(JFrame.MAXIMIZED_BOTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } diff --git a/src/main/resources/i18n_en_US.properties b/src/main/resources/i18n_en_US.properties new file mode 100644 index 0000000..e2e31d1 --- /dev/null +++ b/src/main/resources/i18n_en_US.properties @@ -0,0 +1 @@ +MainFrame_Title=MPTV \ No newline at end of file