# 翻譯
## game_controller.py
### Line 154
```
logging.info("GOOD dwarfs win")
logging.info("好矮人獲勝")
```
### Line 158
```
logging.info(f"round {self.round} end")
logging.info(f"第 {self.round} 回合結束")
```
### Line 161
```
return_msg = {"msg_type": "INFO", "msg": f"round {self.round} GOOD dwarfs win"}
return_msg = {"msg_type": "INFO", "msg": f"第 {self.round} 回合 好矮人獲勝"}
```
### Line 175
```
self.return_msg[i] = {"msg_type": "INFO", "msg": f"{self.now_play} peek ({r+1}, {c+1})"}
self.return_msg[i] = {"msg_type": "INFO", "msg": f"{self.now_play} 看地圖 ({r+1}, {c+1})"}
```
### Line 184
```
logging.info("BAD dwarfs win")
logging.info("壞矮人獲勝")
```
### Line 186
```
logging.info(f"round {self.round} end")
logging.info(f"第 {self.round} 回合結束")
```
### Line 189
```
return_msg = {"msg_type": "INFO", "msg": f"round {self.round} BAD dwarfs win"}
return_msg = {"msg_type": "INFO", "msg": f"第 {self.round} 回合 壞矮人獲勝"}
```
### Line 263
```
logging.info(f"round {self.round} start")
logging.info(f"第 {self.round} 回合開始")
```
### Line 285
```
self.return_msg[i]["msg"] += f"round {self.round} start"
self.return_msg[i]["msg"] += f"第 {self.round} 回合開始"
```
### Line 287
```
self.return_msg[i]["msg"] += f", round {self.round} start"
self.return_msg[i]["msg"] += f", 第 {self.round} 回合開始"
```
## card.py
### Line 39
```
return {"msg_type": "INFO", "msg": f"{gc.now_play} dig ({r+1}, {c+1})"}
return {"msg_type": "INFO", "msg": f"{gc.now_play} 放置道路 ({r+1}, {c+1})"}
```
### Line 49
```
is_break = "break" if card.is_break else "repair"
is_break = "破壞" if card.is_break else "修理"
```
### Line 52
```
return_msg = {"msg_type": "INFO", "msg": f"{gc.now_play} {is_break} {Influenced.id}'s {action_type}"}
return_msg = {"msg_type": "INFO", "msg": f"{gc.now_play} {is_break} {Influenced.id} 的 {action_type}"}
```
### Line 63
```
return_msg = {"msg_type": "INFO", "msg": f"{gc.now_play} destroy ({r+1}, {c+1})"}
return_msg = {"msg_type": "INFO", "msg": f"{gc.now_play} 使用落石摧毀 ({r+1}, {c+1})"}
```
### Line 74
```
msg += "is gold" if gc.board[r][c].card_no == 71 else "not gold"
msg += "金礦" if gc.board[r][c].card_no == 71 else "不是金礦"
```
### Line 112
```
illegal_msg = "some tool are broken can't dig road"
illegal_msg = "由於工具被破壞 無法放置道路"
```
### Line 115
```
illegal_msg = "the position have road already"
illegal_msg = "此處已有道路"
```
### Line 118
```
illegal_msg = "road can't connect to rock"
illegal_msg = "道路不能連接至石頭"
```
### Line 123
```
illegal_msg = "the position does not connect to start road"
illegal_msg = "此處並沒有連通至起始道路"
```
### Line 126
```
illegal_msg = "the card can't play to player"
illegal_msg = "此卡牌無法對玩家使用"
```
### Line 178
```
illegal_msg = "the card can't play on card board"
illegal_msg = "此卡牌無法放置於桌面上"
```
### Line 183
```
illegal_msg = "the card can't repair selected tool"
illegal_msg = "此卡牌無法修理已選擇的工具"
```
### Line 187
```
illegal_msg = "" if legality else "the player's tool are already broken/repaired"
illegal_msg = "" if legality else "此玩家的工具已被破壞/修理"
```
### Line 202
```
illegal_msg = "rock card can't destroy start/end road"
illegal_msg = "落石無法摧毀起始/終點道路"
```
### Line 205
```
illegal_msg = "rock card can't destroy empty position"
illegal_msg = "落石無法摧毀沒有道路的位置"
```
### Line 208
```
illegal_msg = "the card can't play to player"
illegal_msg = "此卡牌無法對玩家使用"
```
### Line 223
```
illegal_msg = "map card can't peek non end road"
illegal_msg = "地圖卡不可使用於非終點道路"
```
### Line 226
```
illegal_msg = "the card can't play to player"
illegal_msg = "此卡牌無法對玩家使用"
```
### Line 299
```
return_msg = {"msg_type": "INFO", "msg": f"{gc.now_play} throw a card away"}
return_msg = {"msg_type": "INFO", "msg": f"{gc.now_play} 棄牌"}
```
###### tags: `saboteur`