From 0d217f476968f078a613d275670913ecada6c0cb Mon Sep 17 00:00:00 2001 From: cubewhy Date: Wed, 17 Jan 2024 18:03:13 +0800 Subject: [PATCH] Open folder buttons in GuiSettings & KO translate --- .idea/resourceBundles.xml | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../java/org/cubewhy/celestial/Celestial.java | 1 + .../cubewhy/celestial/gui/GuiLauncher.java | 23 +- .../gui/elements/GuiAddonManager.java | 16 +- .../celestial/gui/pages/GuiSettings.java | 39 ++-- .../org/cubewhy/celestial/utils/GuiUtils.java | 20 ++ .../resources/languages/launcher.properties | 5 +- .../languages/launcher_en.properties | 9 +- ...r_jp.properties => launcher_ja.properties} | 9 + .../languages/launcher_ko.properties | 204 ++++++++++++++++++ .../languages/launcher_zh.properties | 5 +- src/main/resources/rebel.xml | 24 --- 13 files changed, 289 insertions(+), 72 deletions(-) rename src/main/resources/languages/{launcher_jp.properties => launcher_ja.properties} (97%) create mode 100644 src/main/resources/languages/launcher_ko.properties delete mode 100644 src/main/resources/rebel.xml diff --git a/.idea/resourceBundles.xml b/.idea/resourceBundles.xml index d91b55db..417bc836 100644 --- a/.idea/resourceBundles.xml +++ b/.idea/resourceBundles.xml @@ -3,12 +3,12 @@ - - + + launcher diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index da94af0b..d7650cfe 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Sat Dec 09 14:24:38 CST 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/org/cubewhy/celestial/Celestial.java b/src/main/java/org/cubewhy/celestial/Celestial.java index 5fe98bf1..86e3ed79 100644 --- a/src/main/java/org/cubewhy/celestial/Celestial.java +++ b/src/main/java/org/cubewhy/celestial/Celestial.java @@ -239,6 +239,7 @@ private static void initConfig() { config.initValue("jre", "") // leave empty if you want to use the default one .initValue("language", "zh") // en, zh + .initValue("font", (JsonElement) null) .initValue("installation-dir", new File(configDir, "game").getPath()) .initValue("game-dir", getMinecraftFolder().getPath()) // the minecraft folder .initValue("game", (JsonElement) null) diff --git a/src/main/java/org/cubewhy/celestial/gui/GuiLauncher.java b/src/main/java/org/cubewhy/celestial/gui/GuiLauncher.java index a34b7cb0..0e4bc24e 100644 --- a/src/main/java/org/cubewhy/celestial/gui/GuiLauncher.java +++ b/src/main/java/org/cubewhy/celestial/gui/GuiLauncher.java @@ -17,11 +17,13 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; +import javax.swing.plaf.FontUIResource; import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.io.IOException; import java.net.URI; +import java.util.Enumeration; import java.util.Map; import static org.cubewhy.celestial.Celestial.*; @@ -41,6 +43,11 @@ public GuiLauncher() throws IOException { // init icon this.resetIcon(); + // init font + if (!config.getValue("font").isJsonNull()) { + this.initFont(new Font(config.getValue("font").getAsString(), Font.PLAIN, 13)); + } + this.initGui(); // show alert Map alert = LauncherData.getAlert(metadata); @@ -84,7 +91,6 @@ private void initGui() throws IOException { menu.add(btnNext); menu.add(btnDonate); menu.add(btnHelp); -// menu.add(btnLanguage); menu.setSize(100, 20); this.add(menu, BorderLayout.NORTH); @@ -106,7 +112,7 @@ private void initGui() throws IOException { this.add(mainPanel); // add MainPanel // try to find the exist game process - new Thread(() ->{ + new Thread(() -> { try { this.findExistGame(); } catch (IOException e) { @@ -115,6 +121,19 @@ private void initGui() throws IOException { }).start(); } + public void initFont(Font font) { + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + ge.registerFont(font); + FontUIResource fontRes = new FontUIResource(font); + for (Enumeration keys = UIManager.getDefaults().keys(); keys.hasMoreElements(); ) { + Object key = keys.nextElement(); + Object value = UIManager.get(key); + if (value instanceof FontUIResource) { + UIManager.put(key, fontRes); + } + } + } + public void findExistGame() throws IOException { try { VirtualMachine java = SystemUtils.findJava(LauncherData.getMainClass(null)); diff --git a/src/main/java/org/cubewhy/celestial/gui/elements/GuiAddonManager.java b/src/main/java/org/cubewhy/celestial/gui/elements/GuiAddonManager.java index e3121cd9..78c0689c 100644 --- a/src/main/java/org/cubewhy/celestial/gui/elements/GuiAddonManager.java +++ b/src/main/java/org/cubewhy/celestial/gui/elements/GuiAddonManager.java @@ -30,6 +30,7 @@ import java.io.IOException; import static org.cubewhy.celestial.Celestial.f; +import static org.cubewhy.celestial.utils.GuiUtils.createButtonOpenFolder; @Slf4j public class GuiAddonManager extends JPanel { @@ -413,21 +414,6 @@ private void loadLunarCNMods(DefaultListModel modList) { } } - private @NotNull JButton createButtonOpenFolder(String text, File folder) { - JButton btn = new JButton(text); - btn.addActionListener(e -> { - try { - if (folder.mkdirs()) { - log.info("Creating " + folder + " because the folder not exist"); - } - Desktop.getDesktop().open(folder); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - }); - return btn; - } - private static void loadWeaveMods(DefaultListModel weave) { for (WeaveMod weaveMod : WeaveMod.findAll()) { weave.addElement(weaveMod); diff --git a/src/main/java/org/cubewhy/celestial/gui/pages/GuiSettings.java b/src/main/java/org/cubewhy/celestial/gui/pages/GuiSettings.java index cb16e8d6..24219436 100644 --- a/src/main/java/org/cubewhy/celestial/gui/pages/GuiSettings.java +++ b/src/main/java/org/cubewhy/celestial/gui/pages/GuiSettings.java @@ -44,8 +44,13 @@ public GuiSettings() { private void initGui() { // config - // jre panel.add(new JLabel(f.getString("gui.settings.warn.restart"))); + JPanel panelFolders = new JPanel(); + panelFolders.add(GuiUtils.createButtonOpenFolder(f.getString("gui.settings.folder.main"), config.file.getParentFile())); + panelFolders.add(GuiUtils.createButtonOpenFolder(f.getString("gui.settings.folder.theme"), themesDir)); + panelFolders.add(GuiUtils.createButtonOpenFolder(f.getString("gui.settings.folder.log"), launcherLogFile.getParentFile())); + panel.add(panelFolders); + // jre JPanel panelVM = new JPanel(); panelVM.setLayout(new VerticalFlowLayout(VerticalFlowLayout.LEFT)); panelVM.setBorder(new TitledBorder(null, f.getString("gui.settings.jvm"), TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, Color.orange)); @@ -104,9 +109,7 @@ private void initGui() { JTextField wrapperInput = getAutoSaveTextField(config.getConfig(), "wrapper"); p3.add(wrapperInput); JButton btnSetVMArgs = new JButton(f.getString("gui.settings.jvm.args")); - btnSetVMArgs.addActionListener((e) -> { - new ArgsConfigDialog("vm-args", config.getConfig()).setVisible(true); - }); + btnSetVMArgs.addActionListener((e) -> new ArgsConfigDialog("vm-args", config.getConfig()).setVisible(true)); panelVM.add(btnSetVMArgs); panelVM.add(p3); @@ -167,7 +170,7 @@ private void initGui() { // language JPanel p6 = new JPanel(); p6.add(new JLabel(f.getString("gui.settings.launcher.language"))); - p6.add(getAutoSaveComboBox(config.getConfig(), "language", List.of(new String[]{"zh", "en", "jp"}))); + p6.add(getAutoSaveComboBox(config.getConfig(), "language", List.of(new String[]{"zh", "en", "ja", "ko"}))); panelLauncher.add(p6); // max threads JPanel p7 = new JPanel(); @@ -229,16 +232,9 @@ private void initGui() { btnGroup.add(btnWeave); JRadioButton btnLunarCN = new JRadioButton("LunarCN", isLoaderSelected("cn")); btnGroup.add(btnLunarCN); - btnLoaderUnset.addActionListener((e) -> { - // make weave & cn = false - toggleLoader(null); - }); - btnWeave.addActionListener((e) -> { - toggleLoader("weave"); - }); - btnLunarCN.addActionListener((e) -> { - toggleLoader("cn"); - }); + btnLoaderUnset.addActionListener((e) -> toggleLoader(null)); + btnWeave.addActionListener((e) -> toggleLoader("weave")); + btnLunarCN.addActionListener((e) -> toggleLoader("cn")); p10.add(btnLoaderUnset); p10.add(btnWeave); p10.add(btnLunarCN); @@ -375,20 +371,18 @@ private void addUnclaimed(JPanel basePanel, @NotNull JsonObject json) { if (s.getValue().isJsonPrimitive()) { JPanel p = getSimplePanel(json, s.getKey()); basePanel.add(p); - } - if (s.getValue().isJsonObject()) { + } else if (s.getValue().isJsonObject()) { JPanel subPanel = new JPanel(); subPanel.setBorder(new TitledBorder(null, s.getKey(), TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, Color.orange)); subPanel.setLayout(new VerticalFlowLayout(VerticalFlowLayout.LEFT)); basePanel.add(subPanel); addUnclaimed(subPanel, s.getValue().getAsJsonObject()); - } - if (s.getValue().isJsonArray()) { + } else if (s.getValue().isJsonArray()) { JButton btnShowList = new JButton(s.getKey()); - btnShowList.addActionListener((e) -> { - new ArgsConfigDialog(s.getKey(), json).setVisible(true); - }); + btnShowList.addActionListener((e) -> new ArgsConfigDialog(s.getKey(), json).setVisible(true)); basePanel.add(btnShowList); + } else if (s.getValue().isJsonNull()) { + basePanel.add(new JLabel(s.getKey() + ": null")); } } } @@ -423,7 +417,6 @@ private void addUnclaimed(JPanel basePanel, @NotNull JsonObject json) { panel.add(new JLabel(key)); JSpinner spinner = getAutoSaveSpinner(json, key, Double.MIN_VALUE, Double.MAX_VALUE); panel.add(spinner); - } return panel; } diff --git a/src/main/java/org/cubewhy/celestial/utils/GuiUtils.java b/src/main/java/org/cubewhy/celestial/utils/GuiUtils.java index f814a3e4..2e78cd3e 100644 --- a/src/main/java/org/cubewhy/celestial/utils/GuiUtils.java +++ b/src/main/java/org/cubewhy/celestial/utils/GuiUtils.java @@ -6,14 +6,19 @@ package org.cubewhy.celestial.utils; +import lombok.extern.slf4j.Slf4j; import org.cubewhy.celestial.Celestial; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; +import java.awt.*; import java.io.File; +import java.io.IOException; +@Slf4j public final class GuiUtils { private GuiUtils() { } @@ -39,4 +44,19 @@ public static File saveFile(FileNameExtensionFilter filter) { fileDialog.setFileSelectionMode(JFileChooser.FILES_ONLY); return (fileDialog.showSaveDialog(Celestial.launcherFrame) == JFileChooser.CANCEL_OPTION) ? null : fileDialog.getSelectedFile(); } + + public static @NotNull JButton createButtonOpenFolder(String text, File folder) { + JButton btn = new JButton(text); + btn.addActionListener(e -> { + try { + if (folder.mkdirs()) { + log.info("Creating " + folder + " because the folder not exist"); + } + Desktop.getDesktop().open(folder); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + }); + return btn; + } } diff --git a/src/main/resources/languages/launcher.properties b/src/main/resources/languages/launcher.properties index 8d851f24..c802cba0 100644 --- a/src/main/resources/languages/launcher.properties +++ b/src/main/resources/languages/launcher.properties @@ -192,4 +192,7 @@ gui.addon.mods.cn.remove.success=Successfully removed %s gui.addon.mods.fabric.remove=Remove Mod gui.addon.mods.fabric.remove.confirm.message=Confirm to remove Fabric mod %s gui.addon.mods.fabric.remove.success=Fabric mod %s successfully removed -gui.addon.mods.fabric.remove.confirm.title=Confirm removal \ No newline at end of file +gui.addon.mods.fabric.remove.confirm.title=Confirm removal +gui.settings.folder.main=Config Folder +gui.settings.folder.theme=Themes Folder +gui.settings.folder.log=Logs Folder \ No newline at end of file diff --git a/src/main/resources/languages/launcher_en.properties b/src/main/resources/languages/launcher_en.properties index 37b379e2..c802cba0 100644 --- a/src/main/resources/languages/launcher_en.properties +++ b/src/main/resources/languages/launcher_en.properties @@ -173,7 +173,7 @@ gui.plugins.exist=Exist gui.settings.addon=Addon gui.settings.addon.loader.unset=Unset gui.settings.addon.loader.weave.installation=Weave installation: -gui.settings.addon.loader.cn.installation=LuanrCN installation: +gui.settings.addon.loader.cn.installation=LunarCN installation: gui.settings.game=Game gui.settings.game.args=Game args gui.settings.game.resize=Resize @@ -185,11 +185,14 @@ gui.settings.launcher.theme.exist=Theme %s already exists gui.settings.launcher.theme.success=Theme added successfully! gui.addons.mods.fabric=Fabric Mod gui.addon.mods.fabric.add.success=Add the Fabric Mod successfully! -gui.addon.mods.fabric.add.failure.exists=The Fabirc Mod always exists +gui.addon.mods.fabric.add.failure.exists=The Fabric Mod always exists gui.addon.mods.fabric.add.failure.io=IO Error! gui.addon.mods.cn.remove.confirm.message=Confirm removal of LunarCN module %s gui.addon.mods.cn.remove.success=Successfully removed %s gui.addon.mods.fabric.remove=Remove Mod gui.addon.mods.fabric.remove.confirm.message=Confirm to remove Fabric mod %s gui.addon.mods.fabric.remove.success=Fabric mod %s successfully removed -gui.addon.mods.fabric.remove.confirm.title=Confirm removal \ No newline at end of file +gui.addon.mods.fabric.remove.confirm.title=Confirm removal +gui.settings.folder.main=Config Folder +gui.settings.folder.theme=Themes Folder +gui.settings.folder.log=Logs Folder \ No newline at end of file diff --git a/src/main/resources/languages/launcher_jp.properties b/src/main/resources/languages/launcher_ja.properties similarity index 97% rename from src/main/resources/languages/launcher_jp.properties rename to src/main/resources/languages/launcher_ja.properties index 9b0af09d..39c49dd5 100644 --- a/src/main/resources/languages/launcher_jp.properties +++ b/src/main/resources/languages/launcher_ja.properties @@ -4,6 +4,12 @@ # Do NOT remove this note if you want to copy this file. # +# +# Celestial Launcher +# License under GPLv3 +# Do NOT remove this note if you want to copy this file. +# + api.unreachable=現在のAPIにアクセスできません、APIを変更すると問題が解決するかもしれません gui.about=Celestialは第3のLunarClientランチャーです。我々はうるさいElectronフレームワークを捨て、代わりにJavaで書き直しました。複数のプラットフォームをサポートし、Javaが1つだけ必要です!\ \n\ @@ -201,3 +207,6 @@ gui.addon.mods.fabric.remove=Mod を削除 gui.addon.mods.fabric.remove.confirm.message=Fabric Mod %s を削除するか確認しますか gui.addon.mods.fabric.remove.success=Fabric Mod %s が正常に削除されました gui.addon.mods.fabric.remove.confirm.title=削除の確認 +gui.settings.folder.main=設定フォルダー +gui.settings.folder.theme=テーマフォルダー +gui.settings.folder.log=ログフォルダー diff --git a/src/main/resources/languages/launcher_ko.properties b/src/main/resources/languages/launcher_ko.properties new file mode 100644 index 00000000..05020a6b --- /dev/null +++ b/src/main/resources/languages/launcher_ko.properties @@ -0,0 +1,204 @@ +# +# Celestial Launcher +# License under GPLv3 +# Do NOT remove this note if you want to copy this file. +# + +api.unreachable=현재 API에 액세스할 수 없습니다. API를 변경하면 문제가 해결될 수 있습니다. +gui.about=Celestial은 3rd LunarClient 런처입니다. 귀찮은 Electron 프레임워크를 버리고 Java로 작성하여 여러 플랫폼을 지원하며 하나의 Java만 필요합니다!\ +\n\ +공식 웹사이트: https://www.lunarclient.top\ +\n\ +만약 우리가 잘하고 있다고 생각한다면 기부해 주세요. +gui.donate=기부 +gui.launcher.title=Celestial 런처 +gui.version-select.title=게임 버전 +theme.custom.notfound.message=.json 파일을 ~/.cubewhy/lunarcn/themes 폴더에 작성해야 합니다. FlatLaf 테마 설정에 대한 자세한 내용은 위키를 참조하세요.\ +\n\n\ +또는 Intellij 테마의 jar 패키지에서 이것을 언팩 할 수 있습니다 (자세한 단계는 위키를 참조하세요). +theme.custom.notfound.title=사용자 정의 테마 파일 없음 +compatibility.warn.message=현재 사용 중인 Java로 LunarClient를 제대로 시작할 수 없을 수 있습니다.\ +\n\ +오늘 Java 17을 받으세요: https://j17.lunarcn.lol +compatibility.warn.title=호환성 경고 +data-sharing.confirm.title=데이터 공유 +data-sharing.confirm.message=데이터 공유는 Celestial을 개선하고 문제를 더 빨리 해결하는 데 도움이 됩니다.\ +\n\ +이 데이터를 보내는 것은 선택 사항이며 지금 비활성화 할 수 있습니다 (나중에 후회하고 이 기능을 비활성화하려면 설정에서 설정할 수 있습니다).\ +\n\ +Celestial은 다음 정보를 보냅니다.\ +\n\ +- 시작 스크립트 (토큰 제외)\n\ +- 버그 보고서\n\ +\n\ +필수 정보 (비활성화 후에도 전송됨)\ +\n\ +- 시스템 정보 (의존 라이브러리를 찾기 위해 사용됨)\ +\n\ +이 기능을 활성화 할 것을 강력히 권장합니다 (컴퓨터 초보자인 경우), 그러나 동의하지 않으면 서버로 어떤 정보도 전송되지 않습니다. +gui.news.title=뉴스 +gui.about.title=소개 +trace.unzip-natives=게임이 시작되었습니까? 네이티브 압축을 풀 수 없습니다. +gui.version.title=버전 및 시작 +gui.version.offline=오프라인 +gui.version.crash.tip=이 문제는 일반적으로 Celestial과 관련이 없습니다. Celestial과 관련된 문제라고 생각하면 이슈를 열어주세요. +gui.launcher.game.exist.message=실행 중인 게임 프로세스가 발견되었습니다!\ +\n\ +프로세스 ID: %s +gui.launcher.game.exist.title=게임 감지됨 +gui.version.launched.title=게임 시작됨 +gui.version.launched.message=게임이 시작되었습니다.\ +\n\ +이 메시지가 잘못되었다고 생각하면 Celestial을 다시 시작하거나 컴퓨터를 다시 시작하십시오. +warn.official-launcher.message=공식 Lunar 런처 감지됨\ +\n\ +이는 두 런처가 동일한 포트 (28189)를 사용하기 때문에 Celestial이 제대로 작동하지 않을 수 있습니다.\ +\n\ +원래 Lunar 런처를 닫고 Celestial 로딩을 계속하려면 버튼을 클릭하는 것이 좋습니다. +warn.official-launcher.title=공식 LunarLauncher 감지됨 +gui.launcher.auth.title=Minecraft 계정으로 로그인 +gui.launcher.auth.message=리디렉트된 링크를 여기에 붙여 넣고 확인을 클릭하면 계정이 LunarClient에 제출됩니다.\ +\n\ +로그인 링크가 클립 보드에 복사되었습니다. InPrivate 모드 브라우저를 사용하여 로그인하는 것이 좋습니다.\ +\n\n\ +보안 경고: 게임 중에 로그인하지 않았다면이 창을 닫아 주세요. +gui.version-select.label.version=버전: +gui.version-select.label.module=모듈: +gui.version-select.label.branch=브랜치: +gui.version.online=시작 +gui.check-update.error.message=업데이트를 확인하는 동안 오류가 발생했습니다.\ +\n\ +Celestial은 게임이 이전에 설치되지 않은 경우에도 계속해서 시작을 시도합니다. 시작이 실패하면 게임이 설치되지 않았습니다.\ +\n\ +계속해서 시작하려면 확인을 클릭하십시오. +gui.check-update.error.title=업데이트 확인 실패 +status.launch.begin=시작 중 +status.launch.natives=네이티브 압축 해제 중 +status.launch.call-process=모든 것이 정상입니다! 시작 명령 실행 중 +status.launch.terminated=게임 종료 +status.launch.crashed=게임 충돌 +status.launch.started=게임 시작됨, PID는 %s +gui.help=위키 +gui.launch.server.failure.message=서버가 잘못된 응답을 제공했습니다. 해당 Json 파일이 구성되어 있는지 확인하는 것이 좋습니다. +gui.launch.server.failure.title=시작 실패 +gui.addons.title=애드온 관리자 +gui.addons.mods.cn=LunarCN 모드 +gui.addons.agents=Java 에이전트 +gui.addons.mods.weave=Weave 모드 +gui.addon.agents.arg=조정 매개변수 +gui.addon.agents.remove=삭제 +gui.addon.mods.weave.remove=삭제 +gui.addon.mods.cn.remove=삭제 +gui.addon.mods.add=모드 추가 +gui.addon.agents.add=에이전트 추가 +gui.addon.agents.arg.message=아래에 새 JavaAgent 매개변수를 입력하십시오 (삭제하려면 비워 둡니다). +gui.addon.agents.arg.set.success=%s의 매개변수가 %s로 설정되었습니다. +gui.addon.agents.arg.remove.success=%s의 매개변수가 제거되었습니다. +gui.addon.agents.remove.success=%s가 성공적으로 제거되었습니다. +gui.addon.agents.remove.confirm.message=%s의 제거를 확인하십시오. +gui.addon.agents.remove.confirm.title=에이전트 제거 확인 +gui.addon.rename.dialog.message=새로운 이름을 입력하십시오 (끝에 .jar를 추가하지 마십시오). +gui.addon.rename=이름 변경 +gui.addon.rename.success=이름이 성공적으로 변경되었습니다. +gui.addon.agents.add.arg=에이전트 매개변수 (설정되어 있지 않으면 비워 둡니다) +gui.addon.agents.add.failure.exists=에이전트 추가 실패\ +\n\ +이유: 파일이 이미 있습니다. +gui.addon.agents.add.success=에이전트가 성공적으로 추가되었습니다! +gui.addon.agents.add.failure.io=에이전트 추가 실패\ +\n\ +이유: IO 오류\ +\n\ +필요한 경우 이 페이지의 스크린샷을 찍어 개발자에게 보낼 수 있습니다.\ +\n\ +로그:\ +\n%s +gui.settings.title=설정 +gui.addon.mods.weave.remove.confirm.message=%s를 제거하시겠습니까 확인하십시오. +gui.addon.mods.weave.remove.confirm.title=Weave 모드 제거 확인 +gui.addon.mods.weave.remove.success=%s가 성공적으로 제거되었습니다. +gui.addon.mods.weave.add.failure.io=Weave 모드 추가 중 IO 오류가 발생했습니다\ +\n%s +gui.addon.mods.weave.add.failure.exists=모드가 이미 존재합니다 +gui.addon.mods.weave.add.success=모드가 성공적으로 추가되었습니다! +gui.addon.folder=폴더 +gui.addon.mods.incorrect=모드 유형이 올바르지 않습니다!\ +\n\ +OK를 클릭하면 여전히 추가되지만 게임이 제대로 로드되지 않을 수 있습니다.\n\ +------------\n\ +디버그 정보:\n\ + 모드: %s +url.github.api=api.github.com +url.github=github.com +gui.addon.update=모드 로더 업데이트 확인 중 +gui.previous=이전 +gui.next=다음 +gui.settings.jvm=JVM 설정 +gui.settings.jvm.jre=Java 실행 파일: +gui.settings.jvm.ram=RAM: +gui.settings.jvm.jre.unset=기본값 +gui.settings.jvm.jre.success=Java 실행 파일이 %s로 설정되었습니다. +gui.settings.jvm.jre.unset.success=[Java 실행 파일] 기본값으로 성공적으로 복원되었습니다! +gui.settings.jvm.jre.unset.confirm=기본 JRE를 사용하시겠습니까? +gui.settings.unclaimed=기타 +gui.message.clientCrash1=클라이언트가 충돌했습니다:\n\ +충돌 ID: %s\n\ +크래시 보고서를 %s에서 확인하세요\n\ +최신 시작의 로그를 확인하세요: %s\n\ +\n\ +*%s* +gui.message.clientCrash2=클라이언트가 충돌했습니다:\n\n\ +최신 시작의 로그를 확인하세요: %s\n\ +*%s* +gui.settings.jvm.wrapper=래퍼: +gui.settings.jvm.args=VM 매개변수 +gui.settings.args.title=매개변수 설정 +gui.settings.args.add=추가 +gui.settings.args.remove=제거 +gui.settings.args.add.message=매개변수 입력: +gui.settings.args.remove.confirm=%s을(를) 제거하시겠습니까? +gui.settings.launcher=런처 +gui.settings.launcher.data-sharing=데이터 공유 +gui.settings.launcher.theme=테마: +gui.settings.warn.restart=팁: 일부 설정은 런처를 다시 시작하여 적용해야 합니다. +gui.settings.launcher.language=언어/语言: +gui.settings.launcher.max-threads=다운로더 최대 스레드: +gui.settings.launcher.api=API: +gui.addon.mods.cn.warn=경고: LunarCN 로더는 더 이상 지원되지 않으며 Weave로 마이그레이션하는 것이 좋습니다. +gui.settings.launcher.theme.add=추가 +gui.news.official=아마도 공식 API를 사용 중입니다. 나는 공식 뉴스 JSON을 적용하기 귀찮아해서 여기에는 아무것도 없습니다. +gui.settings.launcher.installation=설치: +gui.settings.launcher.game=Minecraft 폴더: +gui.settings.installation.success=게임 설치 경로가 성공적으로 %s로 설정되었습니다. +gui.settings.game-dir.success=Minecraft 폴더가 성공적으로 %s로 설정되었습니다. +gui.plugins.title=플러그인 +gui.plugins.refresh=새로 고침 +gui.plugins.download=%s 다운로드 +gui.plugins.unsupported=플러그인 마켓을 지원하지 않는 API를 사용 중이므로 여기에는 아무것도 없습니다. +gui.plugins.exist=존재함 +gui.settings.addon=애드온 +gui.settings.addon.loader.unset=설정 안 됨 +gui.settings.addon.loader.weave.installation=Weave 설치: +gui.settings.addon.loader.cn.installation=LunarCN 설치: +gui.settings.game=게임 +gui.settings.game.args=게임 매개변수 +gui.settings.game.resize=크기 조절 +gui.settings.game.resize.width=너비: +gui.settings.game.resize.height=높이: +gui.settings.addon.loader.weave.check-update=Weave의 업데이트 확인 +gui.settings.addon.loader.cn.check-update=LunarCN의 업데이트 확인 +gui.settings.launcher.theme.exist=테마 %s이(가) 이미 존재합니다 +gui.settings.launcher.theme.success=테마가 성공적으로 추가되었습니다! +gui.addons.mods.fabric=Fabric 모드 +gui.addon.mods.fabric.add.success=Fabric 모드가 성공적으로 추가되었습니다! +gui.addon.mods.fabric.add.failure.exists=이미 Fabric 모드가 존재합니다 +gui.addon.mods.fabric.add.failure.io=IO 오류! +gui.addon.mods.cn.remove.confirm.message=LunarCN 모듈 %s의 제거를 확인하시겠습니까? +gui.addon.mods.cn.remove.success=%s이(가) 성공적으로 제거되었습니다 +gui.addon.mods.fabric.remove=모드 제거 +gui.addon.mods.fabric.remove.confirm.message=Fabric 모드 %s를 제거하시겠습니까? +gui.addon.mods.fabric.remove.success=Fabric 모드 %s이(가) 성공적으로 제거되었습니다 +gui.addon.mods.fabric.remove.confirm.title=제거 확인 +gui.settings.folder.main=구성 폴더 +gui.settings.folder.theme=테마 폴더 +gui.settings.folder.log=로그 폴더 \ No newline at end of file diff --git a/src/main/resources/languages/launcher_zh.properties b/src/main/resources/languages/launcher_zh.properties index 90e1cb26..1e605c0c 100644 --- a/src/main/resources/languages/launcher_zh.properties +++ b/src/main/resources/languages/launcher_zh.properties @@ -191,4 +191,7 @@ gui.addon.mods.fabric.remove=移除Mod gui.addon.mods.fabric.remove.confirm.message=确认移除Fabric模组 %s gui.addon.mods.fabric.remove.success=成功移除Fabric模组 %s gui.addon.mods.fabric.remove.confirm.title=移除确认 -gui.plugins.exist=已存在 \ No newline at end of file +gui.plugins.exist=已存在 +gui.settings.folder.main=设置文件夹 +gui.settings.folder.theme=主题文件夹 +gui.settings.folder.log=日志文件夹 \ No newline at end of file diff --git a/src/main/resources/rebel.xml b/src/main/resources/rebel.xml deleted file mode 100644 index f7bb8ac6..00000000 --- a/src/main/resources/rebel.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - celestial.main - - - - - - - - -