Skip to content

Commit 6032621

Browse files
committed
fix: 计数器内的模式可以翻译
1 parent f024925 commit 6032621

5 files changed

Lines changed: 37 additions & 30 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ Currently in the lengthy development phase, with updates approximately every 1 t
157157

158158
### 正式版v3.1.10:
159159
修复了快捷键切换难度后局面约束不能变化、研究模式中快捷键切换难度后卡死、鼠标设置阻塞进程、回放时切换难度崩溃等、标错雷时概率计算错误、回放时右上角时间不变化等问题。现在回放时可以显示正确的国旗。可以设置唯一性标识。录像可以回放、手动保存。每个级别的模式、尺寸可以分别保存。双击猜雷可以起作用。可以限制鼠标移动范围为游戏局面区域。
160-
链接:[https://fff666.top/download/Metaminesweeper-v3.1.10.zip](https://fff666.top/download/Metaminesweeper-v3.1.10.zip)
160+
链接:无(不安全,已下架)
161161

162162
### 正式版v3.1.9:
163163

src/gameScoreBoard.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,12 +131,6 @@ def __init__(self, r_path, score_board_path, game_setting_path, pix_size):
131131
self.editing_row = -1 # -1不在编辑状态,-2不能编辑(正在游戏)
132132
self.editing_column = -1
133133

134-
# self.ui.QWidget.closeEvent_.connect(self.close)
135-
136-
# def keyPressEvent(self, event):
137-
# print(666)
138-
# if event.key() == Qt.Key_Return:
139-
# self.__table_ok()
140134

141135
def update_score_board_items_type(self):
142136
self.score_board_items_type = []
@@ -154,6 +148,9 @@ def with_namespace(self, namespace: dict):
154148
# 埋雷结束后调用,固化参数
155149
# self.pix_size = pix_size
156150
# self.board = board
151+
if "mode" in namespace:
152+
self._game_mode_code: int = namespace["mode"]
153+
namespace["mode"] = mm.trans_game_mode(namespace["mode"])
157154
self.namespace.update(namespace)
158155
# race_designator, mode .etc
159156
# self.ms_board = ms.BaseVideo(board, pix_size)
@@ -265,7 +262,16 @@ def time_step(self):
265262

266263

267264
self.show()
268-
265+
266+
# 重写窗口的翻译方法。主要是模式的翻译问题
267+
def retranslateUi(self, Form):
268+
self.ui.retranslateUi(Form)
269+
if hasattr(self, "ms_board"):
270+
self.with_namespace({
271+
"mode": self._game_mode_code,
272+
})
273+
self.show(self.ms_board, index_type = 1)
274+
269275
def __table_change(self, e):
270276
# 编辑开始时,把数值换成公式
271277
if e.column() == 1 and self.editing_row == -1:

src/mineSweeperGUI.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,16 @@ def save_evf_file_integrated():
102102
if len(args) == 2:
103103
self.action_OpenFile(args[1])
104104

105+
self.trans_language()
106+
self.score_board_manager.with_namespace({
107+
"race_identifier": self.race_identifier,
108+
"mode": self.gameMode,
109+
"checksum_ok": "--",
110+
"is_official": "--",
111+
"is_fair": "--"
112+
})
105113
self.score_board_manager.reshow(self.label.ms_board, index_type = 1)
106114
self.score_board_manager.visible()
107-
self.trans_language()
108115

109116
self.mainWindow.closeEvent_.connect(self.closeEvent_)
110117

@@ -176,7 +183,7 @@ def game_state(self, game_state: str):
176183
"checksum_ok": "--",
177184
"is_official": "--",
178185
"is_fair": "--",
179-
"mode": mm.trans_game_mode(self.gameMode),
186+
"mode": self.gameMode,
180187
})
181188
self.score_board_manager.show(self.label.ms_board, index_type = 1)
182189

@@ -892,7 +899,7 @@ def predefined_Board(self, k):
892899
self.label.ms_board = ms.BaseVideo([[0] * column for _ in range(row)], self.pixSize)
893900
self.gameMode = self.predefinedBoardPara[k]['game_mode']
894901
self.score_board_manager.with_namespace({
895-
"mode": mm.trans_game_mode(self.gameMode),
902+
"mode": self.gameMode,
896903
})
897904
self.score_board_manager.show(self.label.ms_board, index_type=1)
898905
self.board_constraint = self.predefinedBoardPara[k]['board_constraint']
@@ -1022,7 +1029,7 @@ def action_NEvent(self):
10221029
self.mainWindow.setWindowOpacity(ui.transparency / 100)
10231030
self.score_board_manager.with_namespace({
10241031
"race_identifier": ui.race_identifier,
1025-
"mode": mm.trans_game_mode(ui.gameMode),
1032+
"mode": self.gameMode,
10261033
})
10271034
self.score_board_manager.show(self.label.ms_board, index_type=1)
10281035

@@ -1269,7 +1276,7 @@ def play_video(self, video):
12691276
self.score_board_manager.with_namespace({
12701277
"is_official": video.is_official,
12711278
"is_fair": video.is_fair,
1272-
"mode": mm.trans_game_mode(video.mode),
1279+
"mode": video.mode,
12731280
})
12741281
video.analyse_for_features(["high_risk_guess", "jump_judge", "needless_guess",
12751282
"mouse_trace", "vision_transfer", "survive_poss"])

src/minesweeper_master.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# import time
66
from safe_eval import safe_eval
77
import configparser
8+
from PyQt5 import QtCore
89

910
import ms_toollib as ms
1011
import math
@@ -278,8 +279,9 @@ def trans_expression(expression: str):
278279

279280

280281
def trans_game_mode(mode: int) -> str:
282+
_translate = QtCore.QCoreApplication.translate
281283
if mode == 0:
282-
return '标准'
284+
return _translate("Form", "标准")
283285
elif mode == 1:
284286
return 'upk'
285287
elif mode == 2:
@@ -289,17 +291,17 @@ def trans_game_mode(mode: int) -> str:
289291
elif mode == 4:
290292
return 'win7'
291293
elif mode == 5:
292-
return '竞速无猜'
294+
return _translate("Form", '竞速无猜')
293295
elif mode == 6:
294-
return '强无猜'
296+
return _translate("Form", '强无猜')
295297
elif mode == 7:
296-
return '弱无猜'
298+
return _translate("Form", '弱无猜')
297299
elif mode == 8:
298-
return '准无猜'
300+
return _translate("Form", '准无猜')
299301
elif mode == 9:
300-
return '强可猜'
302+
return _translate("Form", '强可猜')
301303
elif mode == 10:
302-
return '弱可猜'
304+
return _translate("Form", '弱可猜')
303305

304306
# class abstract_game_board(object):
305307
# __slots__ = ('game_board', 'mouse_state', 'game_board_state')

src/superGUI.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,6 @@ def __init__(self, MainWindow, args):
7979
self.score_board_manager.ui.QWidget.move(_scoreBoardTop, _scoreBoardLeft)
8080

8181

82-
self.score_board_manager.with_namespace({
83-
"race_identifier": self.race_identifier,
84-
"mode": mm.trans_game_mode(self.gameMode),
85-
"checksum_ok": "--",
86-
"is_official": "--",
87-
"is_fair": "--"
88-
})
89-
9082
self.importLEDPic(self.pixSize) # 导入图片
9183
# self.label.setPath(r_path)
9284

@@ -285,11 +277,11 @@ def trans_language(self, language = ""):
285277
self.trans.load(str(self.r_path.with_name(language + '.qm')))
286278
app.installTranslator(self.trans)
287279
self.retranslateUi(self.mainWindow)
288-
self.score_board_manager.ui.retranslateUi(self.score_board_manager.ui.QWidget)
280+
self.score_board_manager.retranslateUi(self.score_board_manager.ui.QWidget)
289281
else:
290282
app.removeTranslator(self.trans)
291283
self.retranslateUi(self.mainWindow)
292-
self.score_board_manager.ui.retranslateUi(self.score_board_manager.ui.QWidget)
284+
self.score_board_manager.retranslateUi(self.score_board_manager.ui.QWidget)
293285
mm.updata_ini(self.game_setting_path, [("DEFAULT", "language", language)])
294286
self.language = language
295287

0 commit comments

Comments
 (0)