Expand loop translations and rename max_history

Replace the single "loop" translation with three explicit keys ("loopOff", "loopTrack", "loopQueue") across all language files to support distinct loop modes. Also standardize the settings key from "max-history" to "max_history" and update main.py to read LOG_SETTINGS.get("max_history", 30) for the TimedRotatingFileHandler backupCount. Files changed: langs/*.json, main.py, settings Example.json.
This commit is contained in:
Choco
2026-05-09 12:30:08 +08:00
parent 47ec3d212a
commit b6a61cbfb5
14 changed files with 38 additions and 15 deletions

View File

@@ -28,8 +28,9 @@
"resume": "Weiter", "resume": "Weiter",
"skip": "Überspringen", "skip": "Überspringen",
"leave": "Verlassen", "leave": "Verlassen",
"loop": "Endlosschleife", "loopOff": "Aus",
"volumeUp": "Lauter", "loopTrack": "Track",
"loopQueue": "Warteschlange",
"volumeDown": "Leiser", "volumeDown": "Leiser",
"volumeMute": "Stummschalten", "volumeMute": "Stummschalten",
"volumeUnmute": "Stummschaltung aufheben", "volumeUnmute": "Stummschaltung aufheben",

View File

@@ -28,7 +28,9 @@
"resume": "Resume", "resume": "Resume",
"skip": "Skip", "skip": "Skip",
"leave": "Leave", "leave": "Leave",
"loop": "Loop", "loopOff": "Off",
"loopTrack": "Track",
"loopQueue": "Queue",
"volumeUp": "Volume Up", "volumeUp": "Volume Up",
"volumeDown": "Volume Down", "volumeDown": "Volume Down",
"volumeMute": "Mute", "volumeMute": "Mute",

View File

@@ -28,7 +28,9 @@
"resume": "Reanudar", "resume": "Reanudar",
"skip": "Saltar", "skip": "Saltar",
"leave": "Salir", "leave": "Salir",
"loop": "Bucle", "loopOff": "Apagar",
"loopTrack": "Pista",
"loopQueue": "Cola",
"volumeUp": "Subir Volumen", "volumeUp": "Subir Volumen",
"volumeDown": "Bajar Volumen", "volumeDown": "Bajar Volumen",
"volumeMute": "Silenciar", "volumeMute": "Silenciar",

View File

@@ -28,7 +28,9 @@
"resume": "Reprendre", "resume": "Reprendre",
"skip": "Passer", "skip": "Passer",
"leave": "Quitter", "leave": "Quitter",
"loop": "Boucle", "loopOff": "Désactivé",
"loopTrack": "Piste",
"loopQueue": "File d'attente",
"volumeUp": "Volume +", "volumeUp": "Volume +",
"volumeDown": "Volume -", "volumeDown": "Volume -",
"volumeMute": "Muet", "volumeMute": "Muet",

View File

@@ -28,7 +28,9 @@
"resume": "再開", "resume": "再開",
"skip": "スキップ", "skip": "スキップ",
"leave": "退出", "leave": "退出",
"loop": "ループ", "loopOff": "オフ",
"loopTrack": "トラック",
"loopQueue": "キュー",
"volumeUp": "音量を上げる", "volumeUp": "音量を上げる",
"volumeDown": "音量を下げる", "volumeDown": "音量を下げる",
"volumeMute": "消音", "volumeMute": "消音",

View File

@@ -28,7 +28,9 @@
"resume": "재개", "resume": "재개",
"skip": "스킵", "skip": "스킵",
"leave": "나가기", "leave": "나가기",
"loop": "반복", "loopOff": "끄기",
"loopTrack": "트랙",
"loopQueue": "대기열",
"volumeUp": "볼륨 높이기", "volumeUp": "볼륨 높이기",
"volumeDown": "볼륨 낮추기", "volumeDown": "볼륨 낮추기",
"volumeMute": "음소거", "volumeMute": "음소거",

View File

@@ -28,7 +28,9 @@
"resume": "Wznów", "resume": "Wznów",
"skip": "Pomiń", "skip": "Pomiń",
"leave": "Opuść", "leave": "Opuść",
"loop": "Pętla", "loopOff": "Wyłącz",
"loopTrack": "Ścieżka",
"loopQueue": "Kolejka",
"volumeUp": "Głośność +", "volumeUp": "Głośność +",
"volumeDown": "Głośność -", "volumeDown": "Głośność -",
"volumeMute": "Wycisz", "volumeMute": "Wycisz",

View File

@@ -28,7 +28,9 @@
"resume": "Пуск", "resume": "Пуск",
"skip": "Вперед", "skip": "Вперед",
"leave": "СТОП", "leave": "СТОП",
"loop": "Зациклить", "loopOff": "Выключить",
"loopTrack": "Трек",
"loopQueue": "Очередь",
"volumeUp": "Громкость +", "volumeUp": "Громкость +",
"volumeDown": "Громкость -", "volumeDown": "Громкость -",
"volumeMute": "Выключить звук", "volumeMute": "Выключить звук",

View File

@@ -28,7 +28,9 @@
"resume": "Продовжити", "resume": "Продовжити",
"skip": "Скіпнути трек", "skip": "Скіпнути трек",
"leave": "СТОП", "leave": "СТОП",
"loop": "Зациклити", "loopOff": "Вимкнути",
"loopTrack": "Трек",
"loopQueue": "Черга",
"volumeUp": "Гучність +", "volumeUp": "Гучність +",
"volumeDown": "Гучність -", "volumeDown": "Гучність -",
"volumeMute": "Вимкнути звук", "volumeMute": "Вимкнути звук",

View File

@@ -28,7 +28,9 @@
"resume": "Tiếp Tục", "resume": "Tiếp Tục",
"skip": "Bỏ Qua", "skip": "Bỏ Qua",
"leave": "Rời Khỏi", "leave": "Rời Khỏi",
"loop": "Lặp Lại", "loopOff": "Tắt",
"loopTrack": "Bài hát",
"loopQueue": "Hàng đợi",
"volumeUp": "Tăng Âm Lượng", "volumeUp": "Tăng Âm Lượng",
"volumeDown": "Giảm Âm Lượng", "volumeDown": "Giảm Âm Lượng",
"volumeMute": "Tắt Tiếng", "volumeMute": "Tắt Tiếng",

View File

@@ -28,7 +28,9 @@
"resume": "继续", "resume": "继续",
"skip": "下一首", "skip": "下一首",
"leave": "退出", "leave": "退出",
"loop": "循环", "loopOff": "关闭",
"loopTrack": "音轨",
"loopQueue": "队列",
"volumeUp": "音量+", "volumeUp": "音量+",
"volumeDown": "音量-", "volumeDown": "音量-",
"volumeMute": "静音", "volumeMute": "静音",

View File

@@ -28,7 +28,9 @@
"resume": "繼續", "resume": "繼續",
"skip": "下一首", "skip": "下一首",
"leave": "離開", "leave": "離開",
"loop": "循環", "loopOff": "關閉",
"loopTrack": "音軌",
"loopQueue": "隊列",
"volumeUp": "音量+", "volumeUp": "音量+",
"volumeDown": "音量-", "volumeDown": "音量-",
"volumeMute": "靜音", "volumeMute": "靜音",

View File

@@ -211,7 +211,7 @@ if (LOG_FILE := LOG_SETTINGS.get("file", {})).get("enable", True):
if not os.path.exists(log_path): if not os.path.exists(log_path):
os.makedirs(log_path) os.makedirs(log_path)
file_handler = TimedRotatingFileHandler(filename=f'{log_path}/vocard.log', encoding="utf-8", backupCount=LOG_SETTINGS.get("max-history", 30), when="d") file_handler = TimedRotatingFileHandler(filename=f'{log_path}/vocard.log', encoding="utf-8", backupCount=LOG_SETTINGS.get("max_history", 30), when="d")
file_handler.namer = lambda name: name.replace(".log", "") + ".log" file_handler.namer = lambda name: name.replace(".log", "") + ".log"
file_handler.setFormatter(logging.Formatter('{asctime} [{levelname:<8}] {name}: {message}', '%Y-%m-%d %H:%M:%S', style='{')) file_handler.setFormatter(logging.Formatter('{asctime} [{levelname:<8}] {name}: {message}', '%Y-%m-%d %H:%M:%S', style='{'))
logging.getLogger().addHandler(file_handler) logging.getLogger().addHandler(file_handler)

View File

@@ -35,7 +35,7 @@
"vocard": "INFO", "vocard": "INFO",
"ipc_client": "INFO" "ipc_client": "INFO"
}, },
"max-history": 30 "max_history": 30
}, },
"bot_access_user": [], "bot_access_user": [],
"embed_color":"0xb3b3b3", "embed_color":"0xb3b3b3",