From 638b8b37c5ce6482dd144c83eec200f7767cb706 Mon Sep 17 00:00:00 2001 From: TaikoZhong <108016253+GanYiZhong@users.noreply.github.com> Date: Mon, 14 Sep 2026 06:31:22 +0800 Subject: [PATCH] zh is Simplified Chinese: convert the zh strings, translate the last Japanese-only labels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - every zh string in skin_config.json and the Lua scripts converted Traditional -> Simplified (OpenCC TSPhrases + TSCharacters; 裏 kept for 裏魔王); the sort window uses the cabinet's own Simplified rows (根据难度选择 / ★的个数 / 排序) - dan_exam_text_more/less/gauge/gauge_less gain en / zh / ko - dan_info 魂ゲージ + %以上 and the N曲 song limit follow the interface language (cabinet wordlist: clear_theme_soul_gauge, sort_window_songs) Co-Authored-By: Claude Fable 5.1 --- Graphics/skin_config.json | 52 +++++++++++++--------- Scripts/background/bg_objects/dan_info.lua | 11 ++++- Scripts/entry/box.lua | 16 +++---- Scripts/entry/costume_menu.lua | 2 +- Scripts/global/allnet_indicator.lua | 2 +- Scripts/song_select/song_select.lua | 10 ++--- 6 files changed, 56 insertions(+), 37 deletions(-) diff --git a/Graphics/skin_config.json b/Graphics/skin_config.json index 9e02247..ef1b7ab 100644 --- a/Graphics/skin_config.json +++ b/Graphics/skin_config.json @@ -165,7 +165,7 @@ "text": { "ja": "太鼓をたたいてスタート!", "en": "Hit the taiko to start!", - "zh": "敲打太鼓開始!" + "zh": "敲打太鼓开始!" } }, "crown_message_miss": { @@ -185,7 +185,7 @@ "text": { "ja": "おしかったドン", "en": "Almost.", - "zh": "可惜!\n就差一點了鼓咚…" + "zh": "可惜!\n就差一点了鼓咚…" } }, "crown_message_success": { @@ -195,7 +195,7 @@ "text": { "ja": "ノリノリだドン", "en": "Cleared!\nCongrats, Don!", - "zh": "過關\n恭喜鼓咚!" + "zh": "过关\n恭喜鼓咚!" } }, "crown_message_perfect": { @@ -205,7 +205,7 @@ "text": { "ja": "よくできたドン!", "en": "Awesome!", - "zh": "魂槽全滿!\n太厲害了鼓咚!" + "zh": "魂槽全满!\n太厉害了鼓咚!" } }, "song_select_indicator": { @@ -249,7 +249,7 @@ "text": { "en": "Select your outfit!", "ja": "きせかえをえらぼう!", - "zh": "選擇服飾吧!" + "zh": "选择服饰吧!" } }, "result_chara": { @@ -298,7 +298,7 @@ "text": { "ja": "かんたん", "en": "Easy", - "zh": "簡單" + "zh": "简单" } }, "course_name_1": { @@ -318,7 +318,7 @@ "text": { "ja": "むずかしい", "en": "Hard", - "zh": "困難" + "zh": "困难" } }, "course_name_3": { @@ -348,7 +348,7 @@ "text": { "ja": "えらぶ", "en": "Select", - "zh": "選擇" + "zh": "选择" } }, "guide_decide_label": { @@ -358,7 +358,7 @@ "text": { "ja": "決定", "en": "Decide", - "zh": "決定" + "zh": "决定" } }, "nameplate_entry_left": { @@ -376,7 +376,7 @@ "text": { "ja": "かんたん", "en": "Easy", - "zh": "簡單" + "zh": "简单" } }, "chip_course_name_1": { @@ -396,7 +396,7 @@ "text": { "ja": "むずかしい", "en": "Hard", - "zh": "困難" + "zh": "困难" } }, "chip_course_name_3": { @@ -491,7 +491,7 @@ "text": { "en": "No sound", "ja": "無音", - "zh": "無聲" + "zh": "无声" } }, "modifier_title": { @@ -501,7 +501,7 @@ "text": { "ja": "演奏オプション", "en": "Play Options", - "zh": "演奏選項" + "zh": "演奏选项" } }, "song_select_chara_1p": { @@ -662,7 +662,7 @@ "text": { "en": "1-Player", "ja": "1人プレイ", - "zh": "1人遊玩" + "zh": "1人游玩" } }, "entry_credit_2p": { @@ -672,7 +672,7 @@ "text": { "en": "2-Player", "ja": "2人プレイ", - "zh": "2人遊玩" + "zh": "2人游玩" } }, "entry_credit_start": { @@ -682,7 +682,7 @@ "text": { "en": "Hit the drum to start!", "ja": "太鼓をたたいてスタート!", - "zh": "敲打太鼓開始遊戲!" + "zh": "敲打太鼓开始游戏!" } }, "entry_cancel": { @@ -926,22 +926,34 @@ }, "dan_exam_text_more": { "text": { - "ja": "%s 以上" + "ja": "%s 以上", + "en": "%s or more", + "zh": "%s 以上", + "ko": "%s 이상" } }, "dan_exam_text_less": { "text": { - "ja": "%s 未満" + "ja": "%s 未満", + "en": "under %s", + "zh": "%s 未满", + "ko": "%s 미만" } }, "dan_exam_text_gauge": { "text": { - "ja": "%s %以上" + "ja": "%s %以上", + "en": "%s%% or more", + "zh": "%s%以上", + "ko": "%s% 이상" } }, "dan_exam_text_gauge_less": { "text": { - "ja": "%s %未満" + "ja": "%s %未満", + "en": "under %s%%", + "zh": "%s%未满", + "ko": "%s% 미만" } }, "note_arc_pivot": { diff --git a/Scripts/background/bg_objects/dan_info.lua b/Scripts/background/bg_objects/dan_info.lua index 5722270..7c1a8e5 100644 --- a/Scripts/background/bg_objects/dan_info.lua +++ b/Scripts/background/bg_objects/dan_info.lua @@ -251,10 +251,17 @@ function M:draw() local x = GAUGE_X0 + CELL_PITCH * n - CELL_PITCH / 2 - 1 if self.label_for ~= ex.red then - self.label = text.create_raw_text(tostring(ex.red) .. "%以上", + -- cabinet wordlist: clear_theme_soul_gauge = 魂ゲージ / Soul Gauge / 魂槽 / 클리어 게이지 + local lang = (tex.language and tex.language()) or "ja" + local W = { + ja = { "魂ゲージ", "%以上" }, en = { "Soul Gauge", "% or more" }, + zh = { "魂槽", "%以上" }, ko = { "클리어 게이지", "% 이상" }, + } + local w = W[lang] or W.ja + self.label = text.create_raw_text(tostring(ex.red) .. w[2], VALUE_SIZE, CAP_FILL, VALUE_OUTLINE, false, 4.0 / tex.get_screen_scale()) - self.name_label = text.create_raw_text("魂ゲージ", + self.name_label = text.create_raw_text(w[1], NAME_SIZE, CAP_FILL, CAP_OUTLINE, false, 3.0 / tex.get_screen_scale()) self.label_for = ex.red diff --git a/Scripts/entry/box.lua b/Scripts/entry/box.lua index 3250a01..f9b3672 100644 --- a/Scripts/entry/box.lua +++ b/Scripts/entry/box.lua @@ -64,7 +64,7 @@ local MODES = { comment = { ja = { "すきな曲や、むずかしさを", "えらんであそべるよ!" }, en = { "Select a song and", "difficulty to play!" }, - zh = { "可選擇喜愛的", "歌曲、難度遊玩哦!" }, + zh = { "可选择喜爱的", "歌曲、难度游玩哦!" }, }, }, practice = { @@ -73,7 +73,7 @@ local MODES = { comment = { ja = { "曲の一部をくりかえし練習して", "腕をみがこう!" }, en = { "Practice a section of a song", "over and over to improve!" }, - zh = { "反覆練習歌曲的片段", "磨練技巧吧!" }, + zh = { "反复练习歌曲的片段", "磨练技巧吧!" }, }, }, costume = { @@ -82,7 +82,7 @@ local MODES = { comment = { ja = { "どんちゃんのきせかえを", "えらんであそべるよ!" }, en = { "Choose an outfit", "for your Don-chan!" }, - zh = { "可為咚醬選擇", "服飾遊玩哦!" }, + zh = { "可为咚酱选择", "服饰游玩哦!" }, }, }, ai = { @@ -91,7 +91,7 @@ local MODES = { comment = { ja = { "「AIどん」と勝つか負けるか", "ギリギリのバトルをたのしもう!" }, en = { "See if you can beat AI-DON", "in this neck-and-neck competition!" }, - zh = { "與「AI咚」來一場", "不到最後難分勝負的對戰吧!" }, + zh = { "与「AI咚」来一场", "不到最后难分胜负的对战吧!" }, }, }, -- ROUND 83 (r83-dandojo-as-mode) — 段位道場 is a MODE on the cabinet @@ -103,11 +103,11 @@ local MODES = { -- mode_select_comment_dani (three lines; every other board here has two). dan = { frame = 6, outline = {76, 60, 151, 255}, - titles = { ja = "段位道場", en = "Dan-i Dojo", zh = "段位道場" }, + titles = { ja = "段位道場", en = "Dan-i Dojo", zh = "段位道场" }, comment = { ja = { "3曲連続して演奏しながら、", "お題の合格を目指そう!", "合格すると腕前が認定されるよ!" }, en = { "Play three songs in a row", "and aim to clear the task!", "Your skills will be rewarded!" }, - zh = { "連續演奏3首指定曲", "並達成題目的合格條件吧!", "只要合格實力就會備受肯定哦!" }, + zh = { "连续演奏3首指定曲", "并达成题目的合格条件吧!", "只要合格实力就会备受肯定哦!" }, }, }, -- ROUND 83: ゲーム設定 has no cabinet counterpart and was wearing 段位道場's board @@ -115,11 +115,11 @@ local MODES = { -- bake_entry.py's EXTRA list; its title colour-add at label `aprilfool` is (0,132,212). settings = { frame = 9, outline = {0, 132, 212, 255}, - titles = { ja = "ゲーム設定", en = "Settings", zh = "游戏設定" }, + titles = { ja = "ゲーム設定", en = "Settings", zh = "游戏设定" }, comment = { ja = { "ゲームのせっていを", "かえられるよ!" }, en = { "Change the game's", "settings here!" }, - zh = { "可以變更", "遊戲設定哦!" }, + zh = { "可以变更", "游戏设定哦!" }, }, }, } diff --git a/Scripts/entry/costume_menu.lua b/Scripts/entry/costume_menu.lua index 222c6d4..2e75ada 100644 --- a/Scripts/entry/costume_menu.lua +++ b/Scripts/entry/costume_menu.lua @@ -89,7 +89,7 @@ local ITEM_KEYS = { local GUIDE_TEXT = { ja = { "えらぶ", "決定" }, en = { "Move", "Confirm" }, - zh = { "選擇", "決定" }, + zh = { "选择", "决定" }, } local function detect_lang(s) diff --git a/Scripts/global/allnet_indicator.lua b/Scripts/global/allnet_indicator.lua index 03be4b1..ba75efb 100644 --- a/Scripts/global/allnet_indicator.lua +++ b/Scripts/global/allnet_indicator.lua @@ -61,7 +61,7 @@ function AllNetIcon:draw_song_max() local limit = tex.song_limit() if not limit or limit <= 0 then return end if self._song_max_n ~= limit then - self._song_max = text.create_raw_text(tostring(limit) .. "曲", + self._song_max = text.create_raw_text(tostring(limit) .. (({ ja = "曲", en = " Songs", zh = "首", ko = "곡" })[(tex.language and tex.language()) or "ja"] or "曲"), SONG_MAX_FONT, { 255, 255, 255, 255 }, { 0, 0, 0, 255 }, false, SONG_MAX_BORDER / tex.get_screen_scale(), 2.0) self._song_max_n = limit end diff --git a/Scripts/song_select/song_select.lua b/Scripts/song_select/song_select.lua index 7d16400..594a3fb 100644 --- a/Scripts/song_select/song_select.lua +++ b/Scripts/song_select/song_select.lua @@ -329,7 +329,7 @@ function SongSelect:draw_song_max() if self._song_max_n ~= limit then local sc = tex.get_skin_config("song_num") or {} self._song_max_y = sc.y or 252 - self._song_max = text.create_raw_text(tostring(limit) .. "曲", + self._song_max = text.create_raw_text(tostring(limit) .. (({ ja = "曲", en = " Songs", zh = "首", ko = "곡" })[(tex.language and tex.language()) or "ja"] or "曲"), -- `common_song_select_number_of_songs` id 3 `text_total_songs`: size 24, border 3.5 sc.font_size or 24, { 255, 255, 255, 255 }, { 0, 0, 0, 255 }, false, ol(3.5), 2.0) self._song_max_n = limit @@ -2502,19 +2502,19 @@ local SW_WORDS = { header = { ja = { "むずかしさ", "★の数", "表示順" }, en = { "Difficulty", 'Number of "★"', "Sort by" }, - zh = { "難度", "★數", "顯示順序" }, + zh = { "难度", "★的个数", "排序" }, }, course = { ja = { "かんたん", "ふつう", "むずかしい", "おに", "おに" }, en = { "Easy", "Normal", "Hard", "Extreme", "Extreme" }, - zh = { "簡單", "普通", "困難", "魔王", "魔王" }, + zh = { "简单", "普通", "困难", "魔王", "魔王" }, }, order = { ja = { "いつもどおり", "未クリア優先", "未フルコンボ優先", "未ドンダフルコンボ優先" }, en = { "Default", "Not cleared", "Not Full Combo", "Not Donderful Combo" }, - zh = { "通常", "未通關優先", "未全連段優先", "未全良連段優先" }, + zh = { "通常", "未通关优先", "未全连段优先", "未全良连段优先" }, }, - title = { ja = "むずかしさからえらぶ", en = "Select by difficulty", zh = "以難易度選擇" }, + title = { ja = "むずかしさからえらぶ", en = "Select by difficulty", zh = "根据难度选择" }, songs = { ja = "曲", en = "Songs", zh = "首" }, } -- 2.54.0