From 3b1b57b76f0bc3cc01f4c6267e9babe658483d5b Mon Sep 17 00:00:00 2001
From: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 3 Sep 2022 03:36:52 +0000
Subject: [PATCH] Update languages [skip actions]

---
 src/main/resources/languages/es-ES.json |  28 +-
 src/main/resources/languages/fr-FR.json |  28 +-
 src/main/resources/languages/ja-JP.json | 787 ++++++++++++------------
 src/main/resources/languages/ko-KR.json |  28 +-
 src/main/resources/languages/pl-PL.json |  28 +-
 src/main/resources/languages/ro-RO.json |  28 +-
 src/main/resources/languages/ru-RU.json |  28 +-
 src/main/resources/languages/zh-CN.json |  28 +-
 src/main/resources/languages/zh-TW.json |  28 +-
 9 files changed, 505 insertions(+), 506 deletions(-)

diff --git a/src/main/resources/languages/es-ES.json b/src/main/resources/languages/es-ES.json
index 31a85fac..a7978ea9 100644
--- a/src/main/resources/languages/es-ES.json
+++ b/src/main/resources/languages/es-ES.json
@@ -384,19 +384,19 @@
     }
   },
   "plugin": {
-	  "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
-	  "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
-	  "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
-	  "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
-	  "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
-	  "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
-	  "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
-	  "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
-	  "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
-	  "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
-	  "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
-	  "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
-	  "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
-	  "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
+    "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
+    "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
+    "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
+    "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
+    "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
+    "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
+    "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
+    "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
+    "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
+    "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
+    "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
+    "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
+    "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
+    "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
   }
 }
diff --git a/src/main/resources/languages/fr-FR.json b/src/main/resources/languages/fr-FR.json
index 4a726170..1e812288 100644
--- a/src/main/resources/languages/fr-FR.json
+++ b/src/main/resources/languages/fr-FR.json
@@ -384,19 +384,19 @@
     }
   },
   "plugin": {
-	  "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
-	  "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
-	  "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
-	  "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
-	  "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
-	  "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
-	  "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
-	  "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
-	  "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
-	  "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
-	  "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
-	  "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
-	  "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
-	  "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
+    "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
+    "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
+    "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
+    "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
+    "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
+    "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
+    "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
+    "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
+    "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
+    "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
+    "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
+    "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
+    "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
+    "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
   }
 }
diff --git a/src/main/resources/languages/ja-JP.json b/src/main/resources/languages/ja-JP.json
index fbeea3b9..4b9b91b9 100644
--- a/src/main/resources/languages/ja-JP.json
+++ b/src/main/resources/languages/ja-JP.json
@@ -1,403 +1,402 @@
 {
-    "messages": {
-      "game": {
-        "address_bind": "銈层兗銉� 銈点兗銉愩兗銇� \u001B[1m\u001B[33m%s:%s\u001B[0m 銇ц捣鍕曘仐銇俱仐銇�",
-        "port_bind": "銈层兗銉� 銈点兗銉愩兗銇屻儩銉笺儓 %s 銇ц捣鍕曘仐銇俱仐銇�",
-        "connect": "銉濄兗銉� %s 銇偗銉┿偆銈€兂銉堛亴鎺ョ稓銇曘倢銇俱仐銇�",
-        "disconnect": "銉濄兗銉� %s 銇嬨倝銈儵銈ゃ偄銉炽儓銇屽垏鏂仌銈屻伨銇椼仧",
-        "game_update_error": "銈层兗銉犮伄銈€儍銉椼儑銉笺儓涓伀銈ㄣ儵銉笺亴鐧虹敓銇椼伨銇椼仧銆�",
-        "command_error": "銈炽優銉炽儔銈ㄣ儵銉�"
-      },
-      "dispatch": {
-        "address_bind": "[Dispatch] 銉囥偅銈广儜銉冦儊銈点兗銉愩兗銇� \u001B[1m\u001B[33m%s:%s\u001B[0m 鐣仹闁嬪銇曘倢銇俱仐銇�",
-        "port_bind": "[Dispatch] 銉囥偅銈广儜銉冦儊銈点兗銉愩兗銇屻儩銉笺儓 %s 鐣仹闁嬪銇曘倢銇俱仐銇�",
-        "request": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s %s 銉偗銈ㄣ偣銉�: %s",
-        "keystore": {
-          "general_error": "[Dispatch] keystore銉曘偂銈ゃ儷銇銇胯炯銇夸腑銇偍銉┿兗銇岀櫤鐢熴仐銇俱仐銇�!",
-          "password_error": "[Dispatch] keystore銉曘偂銈ゃ儷銈掕銇胯炯銈併伨銇涖倱锝� 銉囥儠銈┿儷銉堛伄keystore銉戙偣銉兗銉夈倰瑭﹁銇椼仸銇勩伨銇�...",
-          "no_keystore_error": "[Dispatch] SSL瑷兼槑鏇搞亴瑕嬨仱銇嬨倞銇俱仜銈�! HTTP 銈点兗銉愩兗銇儠銈┿兗銉儛銉冦偗銇椼伨銇欍€�",
-          "default_password": "[Dispatch] 銉囥儠銈┿儷銉堛伄keystore銉戙偣銉兗銉夈亴姝e父銇儹銉笺儔銇曘倢銇俱仐銇熴€� config.json 銇с儜銈广儻銉笺儔銈� 123456 銇ō瀹氥仚銈嬨亾銇ㄣ倰妞滆◣銇椼仸銇忋仩銇曘亜銆�"
-        },
-        "authentication": {
-          "default_unable_to_verify": "[Authentication] 瑾嶈ḿ銉︺兗銈躲兗銇饯銉囥儠銈┿儷銉堛伄瑾嶈ḿ銉忋兂銉夈儵銉笺仹銇娇鐢ㄣ仹銇嶃伨銇涖倱"
-        },
-        "no_commands_error": "銈炽優銉炽儔銇儑銈c偣銉戙儍銉佸皞鐢ㄣ儮銉笺儔銇с伅銈点儩銉笺儓銇曘倢銇︺亜銇俱仜銈撱€�",
-        "unhandled_request_error": "[Dispatch] 鏈嚘鐞嗐伄鍙兘鎬с亴銇傘倞銇俱仚 %s 銉偗銈ㄣ偣銉�: %s.",
-        "account": {
-          "login_attempt": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇屻儹銈般偆銉炽仐銈堛亞銇ㄣ仐銇︺亜銇俱仚.",
-          "login_success": "[Dispatch] 銈儵銈ゃ偄銉炽儓銇� %s 銇ㄣ仐銇︺儹銈般偆銉炽仐銇︺亜銇俱仚锝�",
-          "login_max_player_limit": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧: 銈兂銉┿偆銉� 銉椼儸銈ゃ儰銉笺伄鏁般亴涓婇檺銇仈銇椼伨銇椼仧",
-          "login_token_attempt": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儓銉笺偗銉崇祵鐢便仹銉偘銈ゃ兂銇椼倛銇嗐仺銇椼仸銇勩伨銇欙健",
-          "login_token_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儓銉笺偗銉炽伀銈堛倠銉偘銈ゃ兂銇け鏁椼仐銇俱仐銇熴€�",
-          "login_token_success": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儓銉笺偗銉崇祵鐢便仹 %s 銇ㄣ仐銇︺儹銈般偆銉炽仐銇俱仐銇熴€�",
-          "login_password_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儜銈广儻銉笺儔銇倛銈嬨儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧銆�",
-          "login_password_storage_error": "[Dispatch] 銉囥兗銈裤儥銉笺偣銇儜銈广儻銉笺儔銇屻仾銇勩仧銈併€併偗銉┿偆銈€兂銉� %s 銇儜銈广儻銉笺儔銇倛銈嬨儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧銆�",
-          "combo_token_success": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇偝銉炽儨 銉堛兗銈兂銇氦鎻涖伀鎴愬姛銇椼伨銇椼仧銆�",
-          "combo_token_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇偝銉炽儨 銉堛兗銈兂銇氦鎻涖伀澶辨晽銇椼伨銇椼仧銆�",
-          "account_login_create_success": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧: 銈€偒銈︺兂銉� %s 銇屼綔鎴愩仌銈屻伨銇椼仧銆�",
-          "account_login_create_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧: 銈€偒銈︺兂銉堛伄浣滄垚銇け鏁椼仐銇俱仐銇熴€�",
-          "account_login_exist_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧: 銈€偒銈︺兂銉堛亴瑕嬨仱銇嬨倞銇俱仜銈撱€�",
-          "account_cache_error": "銈层兗銉� 銈€偒銈︺兂銉堛伄銈儯銉冦偡銉ャ偍銉┿兗銇с仚銆�",
-          "session_key_error": "銈汇儍銈枫儳銉炽偔銉笺亴闁撻仌銇c仸銇勩伨銇欍€�",
-          "username_error": "銉︺兗銈躲兗鍚嶃亴瑕嬨仱銇嬨倞銇俱仜銈撱€�",
-          "username_create_error": "銉︺兗銈躲兗鍚嶃亴瑕嬨仱銇嬨倞銇俱仜銈撱€備綔鎴愩伀澶辨晽銇椼伨銇椼仧銆�",
-          "password_error": "鐒″姽銇儜銈广儻銉笺儔",
-          "password_length_error": "銉戙偣銉兗銉夈伄闀枫仌銇�8鏂囧瓧浠ヤ笂銇с仾銇戙倢銇般仾銈娿伨銇涖倱",
-          "password_storage_error": "銈€偒銈︺兂銉堛伄銉戙偣銉兗銉夈亴銇傘倞銇俱仜銈撱€� 绠$悊鑰呫伀閫g怠銇椼仸銇忋仩銇曘亜銆�",
-          "server_max_player_limit": "銈兂銉┿偆銉� 銉椼儸銉笺儰銉笺伄鏁般亴涓婇檺銇仈銇椼伨銇椼仧"
-        },
-        "router_error": "[Dispatch] 銉兗銈裤兗銈掓帴缍氥仹銇嶃伨銇涖倱銆�"
-      },
-      "status": {
-        "free_software": "銈般儵銈广偒銉冦偪銉笺伅銉曘儶銉笺偨銉曘儓銈︺偋銈€仹銇欍€� 銇撱倢銇亰閲戙倰鎵曘仯銇熴伄銇倝銆佽⿶娆恒伀銇傘仯銇熷彲鑳芥€с亴銇傘倞銇俱仚銆� 銉涖兗銉犮儦銉笺偢: https://github.com/Grasscutters/Grasscutter",
-        "starting": "Grasscutter銈掕捣鍕曚腑...",
-        "shutdown": "銈枫儯銉冦儓銉€銈︺兂銇椼仸銇勩伨銇�...",
-        "done": "璧峰嫊瀹屼簡!銉樸儷銉椼亴蹇呰銇牬鍚堛伅銆佹銇倛銇嗐伀鍏ュ姏銇椼仸銇忋仩銇曘亜 \"help\"",
-        "error": "銈ㄣ儵銉笺亴鐧虹敓銇椼伨銇椼仧锝�",
-        "welcome": "Grasscutter銇搞倛銇嗐亾銇�!",
-        "run_mode_error": "銈点兗銉愩兗瀹熻銉€兗銉夈亴鐒″姽銇с仚: %s 銆�",
-        "run_mode_help": "銈点兗銉愩兗銇疅琛屻儮銉笺儔銇€�'HYBRID'銆�'DISPATCH_ONLY'銆併伨銇熴伅 'GAME_ONLY' 銇с仾銇戙倢銇般仾銈娿伨銇涖倱銆� Grasscutter銈掕捣鍕曘仹銇嶃伨銇涖倱...",
-        "create_resources": "resources銉曘偂銉儉銈掍綔鎴愪腑...",
-        "resources_error": "(BinOutput)銇�(ExcelBinOutput)銇偝銉斻兗銈抮esources銉曘偐銉儉銉笺伀閰嶇疆銇椼伨銇欍€�",
-        "version": "Grasscutter 銉愩兗銈搞儳銉�: %s-%s",
-        "game_version": "銈层兗銉犮儛銉笺偢銉с兂: %s",
-        "resources": {
-          "loading": "resources銉曘偂銈ゃ儷銈掋儹銉笺儔涓�...",
-          "finish": "resources銉曘偂銈ゃ儷銇儹銉笺儔銇屽畬浜嗭健"
-        }
-      }
+  "messages": {
+    "game": {
+      "address_bind": "銈层兗銉� 銈点兗銉愩兗銇� \u001b[1m\u001b[33m%s:%s\u001b[0m 銇ц捣鍕曘仐銇俱仐銇�",
+      "port_bind": "銈层兗銉� 銈点兗銉愩兗銇屻儩銉笺儓 %s 銇ц捣鍕曘仐銇俱仐銇�",
+      "connect": "銉濄兗銉� %s 銇偗銉┿偆銈€兂銉堛亴鎺ョ稓銇曘倢銇俱仐銇�",
+      "disconnect": "銉濄兗銉� %s 銇嬨倝銈儵銈ゃ偄銉炽儓銇屽垏鏂仌銈屻伨銇椼仧",
+      "game_update_error": "銈层兗銉犮伄銈€儍銉椼儑銉笺儓涓伀銈ㄣ儵銉笺亴鐧虹敓銇椼伨銇椼仧銆�",
+      "command_error": "銈炽優銉炽儔銈ㄣ儵銉�"
     },
-    "commands": {
-      "generic": {
-        "not_specified": "銈炽優銉炽儔銇屾寚瀹氥仌銈屻仸銇勩伨銇涖倱銆�",
-        "unknown_command": "涓嶆槑銇偝銉炪兂銉�: %s",
-        "permission_error": "銇撱伄銈炽優銉炽儔銈掑疅琛屻仚銈嬫ī闄愩亴銇傘倞銇俱仜銈撱€�",
-        "console_execute_error": "銇撱伄銈炽優銉炽儔銇€併偝銉炽偨銉笺儷銇嬨倝銇伩瀹熻銇с亶銇俱仚銆�",
-        "player_execute_error": "銈层兗銉犲唴銇с亾銇偝銉炪兂銉夈倰瀹熻銇椼仸銇忋仩銇曘亜銆�",
-        "command_exist_error": "銈炽優銉炽儔銇岃銇ゃ亱銈娿伨銇涖倱銆�",
-        "no_usage_specified": "鍊ゃ亴鎸囧畾銇曘倢銇︺亜銇俱仜銈�",
-        "no_description_specified": "鍊ゃ亴瑷畾銇曘倢銇︺亜銇俱仜銈�",
-        "set_to": "%s 銇� %s 銇ō瀹氥仌銈屻伨銇椼仧銆�",
-        "set_for_to": "%s 銇� %s 銇� %s 銇ō瀹氥仌銈屻伨銇椼仧銆�",
-        "invalid": {
-          "amount": "鍊ゃ亴鐒″姽銇с仚",
-          "artifactId": "鑱栭伜鐗㊣D銇岀劇鍔广仾鍊ゃ仹銇欍€�",
-          "avatarId": "銈儯銉㊣D銇岀劇鍔广仾鍊ゃ仹銇欙健",
-          "avatarLevel": "銈儯銉┿儸銉欍儷銇岀劇鍔广仾鍊ゃ仹銇欙健",
-          "entityId": "銈ㄣ兂銉嗐偅銉嗐偅ID銇岀劇鍔广仾鍊ゃ仹銇欙健",
-          "itemId": "銈€偆銉嗐儬ID銇岀劇鍔广仾鍊ゃ仹銇欙健",
-          "itemLevel": "銈€偆銉嗐儬銉儥銉亴鐒″姽銇€ゃ仹銇欙健",
-          "itemRefinement": "銈€偆銉嗐儬銇簿閷儵銉炽偗銇岀劇鍔广仾鍊ゃ仹銇欙健",
-          "statValue": "銈广儐銉笺偪銈笽D銇岀劇鍔广仾鍊ゃ仹銇欙健.",
-          "value_between": "鐒″姽銇€�: %s 銇� %s 銇� %s 銇枔銇亗銈嬪繀瑕併亴銇傘倞銇俱仚銆�",
-          "playerId": "銉椼儸銈ゃ儰銉糏D銇岀劇鍔广仾鍊ゃ仹銇欙健",
-          "uid": "UID銇岀劇鍔广仹銇欙健",
-          "id": "鐒″姽銇狪D锝�"
-        }
-      },
-      "execution": {
-        "usage_prefix": "浣跨敤鏂规硶: ",
-        "player_exist_error": "銉椼儸銈ゃ儰銉笺亴瑕嬨仱銇嬨倞銇俱仜銈撱€�",
-        "player_offline_error": "銉椼儸銈ゃ儰銉笺亴銈儠銉┿偆銉炽仹銇欙健",
-        "item_player_exist_error": "銈€偆銉嗐儬ID銇俱仧銇疷ID銇岀劇鍔广仾鍊ゃ仹銇欙健",
-        "player_exist_offline_error": "銉椼儸銈ゃ儰銉笺亴瑕嬨仱銇嬨倝銇亜銇嬨偑銉曘儵銈ゃ兂銇с仚锝�",
-        "argument_error": "鐒″姽銇紩鏁般仹銇欙健",
-        "clear_target": "銈裤兗銈层儍銉堛倰銈儶銈€仐銇俱仐銇燂健",
-        "set_target": "浠ラ檷銇偝銉炪兂銉夈伅銆併儑銉曘偐銉儓銇� @%s 銈掋偪銉笺偛銉冦儓銇仐銇俱仚銆�",
-        "set_target_online": "@%s 銇偑銉炽儵銈ゃ兂銇с仚銆� 銈炽優銉炽儔銇倛銇c仸銇€併偑銉曘儵銈ゃ兂 銈裤兗銈层儍銉堛亴蹇呰銇仾銈嬪牬鍚堛亴銇傘倞銇俱仚銆�",
-        "set_target_offline": "@%s 銇偑銉曘儵銈ゃ兂銇с仚銆� 涓€閮ㄣ伄銈炽優銉炽儔銇с伅銆併偑銉炽儵銈ゃ兂 銈裤兗銈层儍銉堛亴蹇呰銇仾銈嬪牬鍚堛亴銇傘倞銇俱仚銆�",
-        "need_target": "銇撱伄銈炽優銉炽儔銇伅銆併偪銉笺偛銉冦儓 UID 銇屽繀瑕併仹銇欍€� <@UID> 寮曟暟銈掕拷鍔犮仚銈嬨亱銆�/target @UID 銇ф案缍氱殑銇偪銉笺偛銉冦儓銈掕ō瀹氥仐銇俱仚锝�",
-        "need_target_online": "銇撱伄銈炽優銉炽儔銇伅銈兂銉┿偆銉炽伄銈裤兗銈层儍銉� UID 銇屽繀瑕併仹銇欍亴銆佺従鍦ㄣ伄銈裤兗銈层儍銉堛伅銈儠銉┿偆銉炽仹銇欍€� 鍒ャ伄 <@UID> 寮曟暟銈掕拷鍔犮仚銈嬨亱銆�/target @UID 銇ф案缍氱殑銇偪銉笺偛銉冦儓銈掕ō瀹氥仐銇︺亸銇犮仌銇勩€�",
-        "need_target_offline": "銇撱伄銈炽優銉炽儔銇伅銈儠銉┿偆銉炽伄銈裤兗銈层儍銉� UID 銇屽繀瑕併仹銇欍亴銆佺従鍦ㄣ伄銈裤兗銈层儍銉堛伅銈兂銉┿偆銉炽仹銇欍€� 鍒ャ伄 <@UID> 寮曟暟銈掕拷鍔犮仚銈嬨亱銆�/target @UID 銇ф案缍氱殑銇偪銉笺偛銉冦儓銈掕ō瀹氥仐銇︺亸銇犮仌銇勩€�"
-      },
-      "status": {
-        "enabled": "鏈夊姽",
-        "disabled": "鐒″姽",
-        "help": "銉樸儷銉�",
-        "success": "鎴愬姛"
-      },
+    "dispatch": {
+      "address_bind": "[Dispatch] 銉囥偅銈广儜銉冦儊銈点兗銉愩兗銇� \u001b[1m\u001b[33m%s:%s\u001b[0m 鐣仹闁嬪銇曘倢銇俱仐銇�",
+      "port_bind": "[Dispatch] 銉囥偅銈广儜銉冦儊銈点兗銉愩兗銇屻儩銉笺儓 %s 鐣仹闁嬪銇曘倢銇俱仐銇�",
+      "request": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s %s 銉偗銈ㄣ偣銉�: %s",
+      "keystore": {
+        "general_error": "[Dispatch] keystore銉曘偂銈ゃ儷銇銇胯炯銇夸腑銇偍銉┿兗銇岀櫤鐢熴仐銇俱仐銇�!",
+        "password_error": "[Dispatch] keystore銉曘偂銈ゃ儷銈掕銇胯炯銈併伨銇涖倱锝� 銉囥儠銈┿儷銉堛伄keystore銉戙偣銉兗銉夈倰瑭﹁銇椼仸銇勩伨銇�...",
+        "no_keystore_error": "[Dispatch] SSL瑷兼槑鏇搞亴瑕嬨仱銇嬨倞銇俱仜銈�! HTTP 銈点兗銉愩兗銇儠銈┿兗銉儛銉冦偗銇椼伨銇欍€�",
+        "default_password": "[Dispatch] 銉囥儠銈┿儷銉堛伄keystore銉戙偣銉兗銉夈亴姝e父銇儹銉笺儔銇曘倢銇俱仐銇熴€� config.json 銇с儜銈广儻銉笺儔銈� 123456 銇ō瀹氥仚銈嬨亾銇ㄣ倰妞滆◣銇椼仸銇忋仩銇曘亜銆�"
+      },
+      "authentication": {
+        "default_unable_to_verify": "[Authentication] 瑾嶈ḿ銉︺兗銈躲兗銇饯銉囥儠銈┿儷銉堛伄瑾嶈ḿ銉忋兂銉夈儵銉笺仹銇娇鐢ㄣ仹銇嶃伨銇涖倱"
+      },
+      "no_commands_error": "銈炽優銉炽儔銇儑銈c偣銉戙儍銉佸皞鐢ㄣ儮銉笺儔銇с伅銈点儩銉笺儓銇曘倢銇︺亜銇俱仜銈撱€�",
+      "unhandled_request_error": "[Dispatch] 鏈嚘鐞嗐伄鍙兘鎬с亴銇傘倞銇俱仚 %s 銉偗銈ㄣ偣銉�: %s.",
       "account": {
-        "invalid": "鐒″姽銇猆ID",
-        "exists": "銇撱伄銉︺兗銈躲兗鍚嶃伨銇熴伅 UID 銈掓寔銇ゃ偄銈偊銉炽儓銇棦銇瓨鍦ㄣ仐銇俱仚銆�",
-        "create": "UID %s 銇с偄銈偊銉炽儓銇屼綔鎴愩仌銈屻伨銇椼仧锝�",
-        "delete": "銈€偒銈︺兂銉堛倰娑堝幓銇椼伨銇椼仧锝�",
-        "no_account": "銈€偒銈︺兂銉堛亴瑕嬨仱銇嬨倞銇俱仜銈擄健",
-        "description": "銉︺兗銈躲兗銈€偒銈︺兂銉堛倰澶夋洿"
-      },
-      "announce": {
-        "send_success": "銈€儕銈︺兂銈广伄閫佷俊銇垚鍔熴仐銇俱仐銇熴€傘偄銉娿偊銉炽偣銇� /a revoke %s 銇у彇銈婃秷銇欍亾銇ㄣ亴銇с亶銇俱仚銆�",
-        "refresh_success": "銈€儕銈︺兂銈规鎴愩儠銈°偆銉倰姝e父銇洿鏂般仐銇俱仚銆� [鍚堣▓ %s]",
-        "revoke_done": "銈€儕銈︺兂銈� %s 銇彇銈婃秷銇椼倰瑭﹁涓€�",
-        "not_found": "銈€儕銈︺兂銈� %s 銇岃銇ゃ亱銈娿伨銇涖倱銇с仐銇燂健",
-        "description": "銇欍伖銇︺伄銈兂銉┿偆銉� 銉椼儸銈ゃ儰銉笺伀銈€儕銈︺兂銈广倰閫佷俊銇欍倠銇嬨€併偟銉笺儛銉笺伄銈€儕銈︺兂銈广倰绠$悊銇椼伨銇�"
-      },
-      "clear": {
-        "weapons": "%s 銇鍣ㄣ倰娑堝幓銇椼伨銇椼仧銆�",
-        "artifacts": "%s 銇仏閬虹墿銈掓秷鍘汇仐銇俱仐銇燂健",
-        "materials": "%s 銇礌鏉愩倰娑堝幓銇椼伨銇椼仧锝�",
-        "furniture": "%s 銇鍏枫偄銈ゃ儐銉犮倰娑堝幓銇椼伨銇椼仧锝�",
-        "displays": "%s 銇〃绀恒倰娑堝幓銇椼伨銇椼仧锝�",
-        "virtuals": "%s 銇划鎯炽倰娑堝幓銇椼伨銇椼仧锝�",
-        "everything": "%s 銇叏銇︺伄銈€偆銉嗐儬銈掓秷鍘汇仐銇俱仐銇燂健",
-        "description": "瑁呭倷銇椼仸銇勩仾銇勩伨銇熴伅銉儍銈仌銈屻仸銇亜銈€偆銉嗐儬銈掋儛銉冦偗銇腑銇嬨倝娑堝幓銇椼伨銇欙健 銉囥儠銈┿儷銉堛仹銇槦4浠ヤ笅銇с儸銉欍儷1锝ょ簿閷儵銉炽偗1浠ヤ笅銇偄銈ゃ儐銉犮倰鍓婇櫎銇椼伨銇欙健"
-      },
-      "coop": {
-        "success": "%s 銈� %s 銇笘鐣屻伀鍙枤銇椼伨銇椼仧銆�",
-        "description": "浠栦汉銇笘鐣屻伀寮峰埗鐨勩伀鍙傚姞銇曘仜銇俱仚銆� 瑾般倐銈裤兗銈层儍銉堛伀銇曘倢銇︺亜銇亜鍫村悎銇€併優銉儊銉椼儸銈ゃ儮銉笺儔銇Щ琛屻仐銇俱仚锝�"
-      },
-      "enter_dungeon": {
-        "changed": "绉樺 %s 銇鏇淬仌銈屻伨銇椼仧锝�",
-        "not_found_error": "绉樺銇瓨鍦ㄣ仐銇俱仜銈撱€�",
-        "in_dungeon_error": "銇傘仾銇熴伅銇欍仹銇仢銇澧冦伀銇勩伨銇欙健",
-        "description": "绉樺銇叆銈嬶健"
-      },
-      "give": {
-        "usage_relic": "浣跨敤鏂规硶: give <鑱栭伜鐗㊣D> [銉°偆銉炽偣銉嗐兗銈裤偣ID] [<銈点儢銈广儐銉笺偪銈笽D>[,<寮峰寲鍥炴暟>]]... [lv<銉儥銉� 0-20>]",
-        "illegal_relic": "銇撱伄鑱栭伜鐗㊣D銇儢銉┿儍銈儶銈广儓銇櫥閷层仌銈屻仧绡勫洸銇睘銇椼仸銇勩伨銇欍€傚繀瑕併仾绡勫洸銇с伅銇亜鍙兘鎬с亴銇傘倞銇俱仚銆�",
-        "given": "%s 銇� %s 銈� %s 銇寚瀹氥仐銇俱仐銇熴€�",
-        "given_with_level_and_refinement": "%s 銈掋儸銉欍儷 %s 銇ф寚瀹氥仚銈嬨仺銆�%s 銈� %s 鍥� %s 銇簿閷仐銇俱仚銆�",
-        "given_level": "銉儥銉� %s 銇� %s 銇� %s 銇� %s 鍥炰笌銇堛倝銈屻伨銇椼仧銆�",
-        "given_avatar": "銉儥銉� %s 銇嬨倝 %s 銇俱仹銇� %s 銇屼笌銇堛倝銈屻伨銇椼仧銆�",
-        "giveall_success": "銇欍伖銇︺伄銈€偆銉嗐儬銈掍笌銇堛伨銇椼仧銆�",
-        "description": "銇傘仾銇熴伨銇熴伅鎸囧畾銇曘倢銇熴儣銉偆銉ゃ兗銇偄銈ゃ儐銉犮倰涓庛亪銇俱仚銆� 銇俱仧銆併仚銇广仸銇鍣ㄣ€併偄銉愩偪銉笺€併亰銈堛伋/銇俱仧銇潗鏂欍倰涓庛亪銈嬨亾銇ㄣ亴銇с亶銆佹寚瀹氥仐銇熻仏閬虹墿銈掓绡夈仚銈嬨亾銇ㄣ倐銇с亶銇俱仚銆�"
-      },
-      "heal": {
-        "success": "鍏ㄣ偔銉c儵銈掑洖寰┿仐銇俱仐銇燂健",
-        "description": "鐝惧湪銇儜銉笺儐銈c兗銇偔銉c儵銈偪銉笺伄銇裤倰鍥炲京銇椼伨銇欙健"
-      },
-      "help": {
-        "aliases": "銈ㄣ偆銉偄銈�: ",
-        "available_commands": "鍒╃敤鍙兘銇偝銉炪兂銉�: ",
-        "tip_need_permission": "瑷卞彲: ",
-        "tip_need_no_permission": " 鐒°仐",
-        "tip_permission_targeted": " (妯╅檺 %s 銇€佷粬銇儣銉兗銉ゃ兗銇т娇鐢ㄣ仚銈嬨仧銈併伀銈傚繀瑕併仹銇�)",
-        "warn_player_has_no_permission": "娉ㄦ剰: 銇撱伄銈炽優銉炽儔銈掑疅琛屻仚銈嬫ī闄愩亴銇傘倞銇俱仜銈撱€�",
-        "description": "銉樸儷銉� 銉°儍銈汇兗銈搞倰閫佷俊銇欍倠銇嬨€佹寚瀹氥仐銇熴偝銉炪兂銉夈伀闁€仚銈嬫儏鍫便倰琛ㄧず銇椼伨銇欙健"
-      },
-      "kick": {
-        "player_kick_player": "銉椼儸銉笺儰銉� [%s:%s] 銇屻儣銉兗銉ゃ兗 [%s:%s] 銈掋偔銉冦偗銇椼伨銇椼仧锝�",
-        "server_kick_player": "銉椼儸銈ゃ儰銉笺倰銈儍銈� [%s:%s]...",
-        "description": "鎸囧畾銇椼仧銉椼儸銈ゃ儰銉笺倰銈点兗銉愩兗銇嬨倝杩姐亜鍑恒仐銇俱仚 (WIP)"
-      },
-      "killall": {
-        "scene_not_found_in_player_world": "銉椼儸銈ゃ儰銉笺儻銉笺儷銉夈伀銈枫兗銉炽亴銇傘倞銇俱仜銈撱€�",
-        "kill_monsters_in_scene": "銈枫兗銉� %s 銇� %s 鍖广伄銉€兂銈广偪銉笺倰鍊掋仐銇俱仐銇熴€�",
-        "description": "鍏ㄣ仸銇偍銉炽儐銈c儐銈c倰娈恒仐銇俱仐銇燂健"
-      },
-      "killCharacter": {
-        "success": "%s 銇従鍦ㄣ伄銈儯銉┿偗銈裤兗銈掓銇椼伨銇椼仧銆�",
-        "description": "銉椼儸銈ゃ儰銉笺伄鐝惧湪銇偔銉c儵銈偪銉笺倰娈恒仐銇俱仚"
-      },
-      "language": {
-        "current_language": "鐝惧湪銇█瑾炪伅 %s 銇с仚銆�",
-        "language_changed": "瑷€瑾炪亴 %s 銇鏇淬仌銈屻伨銇椼仧銆�",
-        "language_not_found": "鐝惧湪銆併偟銉笺儛銉笺伀銇仢銇█瑾炪亴銇傘倞銇俱仜銈撱€�",
-        "description": "鐝惧湪銇█瑾炪倰琛ㄧず銇俱仧銇鏇淬仚銈嬶健"
-      },
-      "list": {
-        "success": "%a 浜恒伄銉椼儸銉笺儰銉笺亴銈兂銉┿偆銉炽仹銇�:",
-        "description": "銈兂銉┿偆銉炽伄銉椼儸銈ゃ儰銉笺伄銉偣銉�"
-      },
-      "permission": {
-        "add": "妯╅檺銈掕拷鍔狅健",
-        "has_error": "褰笺倝銇仚銇с伀銇撱伄妯╅檺銈掓寔銇c仸銇勩伨銇欙紒",
-        "remove": "妯╅檺銈掑墛闄わ健",
-        "not_have_error": "褰笺倝銇伅銇撱伄妯╅檺銇屻亗銈娿伨銇涖倱!",
-        "account_error": "銈€偒銈︺兂銉堛亴瑕嬨仱銇嬨倞銇俱仜銈撱€�",
-        "description": "銉︺兗銈躲兗銇ī闄愩倰浠樹笌銇俱仧銇墛闄ゃ仐銇俱仚"
-      },
-      "position": {
-        "success": "搴ф: %s銆�%s銆�%s\n銈枫兗銉矷D: %s",
-        "description": "搴ф銈掑彇寰椼仚銈�"
-      },
-      "quest": {
-        "added": "銈偍銈广儓 %s 銇岃拷鍔犮仌銈屻伨銇椼仧銆�",
-        "finished": "銈偍銈广儓 %s 銈掔祩浜嗐仐銇俱仐銇熴€�",
-        "not_found": "銈偍銈广儓銇岃銇ゃ亱銈娿伨銇涖倱锝�",
-        "invalid_id": "銈偍銈广儓ID銇岀劇鍔广仹銇欙健",
-        "description": "銈偍銈广儓銈掕拷鍔犮伨銇熴伅绲備簡銇欍倠锝�"
-      },
-      "reload": {
-        "reload_start": "瑷畾銈掑啀瑾伩杈笺伩銇椼仸銇勩伨銇欍€�",
-        "reload_done": "鍐嶈銇胯炯銇垮畬浜嗭健",
-        "description": "銈点兗銉愩兗瑷畾銈掑啀瑾伩杈笺伩"
-      },
-      "resetConst": {
-        "reset_all": "銇欍伖銇︺伄銈€儛銈裤兗銇槦搴с倰銉偦銉冦儓銇椼伨銇欍€�",
-        "success": "%s 銇槦搴с亴銉偦銉冦儓銇曘倢銇俱仐銇熴€� 澶夋洿銈掔⒑瑾嶃仚銈嬨伀銇€佸啀銉偘銈ゃ兂銇椼仸銇忋仩銇曘亜銆�",
-        "description": "鐝惧湪銈€偗銉嗐偅銉栥仾銈儯銉┿偗銈裤兗銇槦搴с儸銉欍儷銈掋儶銈汇儍銉堛仐銇俱仚銆傚鏇淬倰纰鸿獚銇欍倠銇伅銆併偝銉炪兂銉夈倰浣跨敤銇椼仧寰屻伀鍐嶃儹銈般偆銉炽仚銈嬪繀瑕併亴銇傘倞銇俱仚锝�"
-      },
-      "resetShopLimit": {
-        "success": "銉偦銉冦儓瀹屼簡锝�",
-        "description": "瀵捐薄銉椼儸銈ゃ儰銉笺伄銈枫儳銉冦儣鏇存柊鏅傞枔銈掋儶銈汇儍銉堛仚銈�"
-      },
-      "sendMail": {
-        "give_usage": "浣跨敤娉�: give <player> <itemID|itemName> [鏁癩 [銉儥銉玗 [绮鹃尙]",
-        "user_not_exist": "ID銆�%s銆嶃伄銉︺兗銈躲兗銇瓨鍦ㄣ仐銇俱仜銈撱€�",
-        "start_composition": "銉°儍銈汇兗銈搞伄浣滄垚銈掗枊濮嬨仐銇︺亜銇俱仚銆俓n缍氳銇欍倠銇伅銆�/sendmail <title>銆嶃倰浣跨敤銇椼仸銇忋仩銇曘亜銆俓n銆�/sendmail stop銆嶃伅銇勩仱銇с倐浣跨敤銇с亶銇俱仚銆�",
-        "templates": "銉°兗銉儐銉炽儣銉兗銉堛伅杩戞棩瀹熻浜堝畾...",
-        "invalid_arguments": "寮曟暟銇岀劇鍔广仹銇欍€�",
-        "send_cancel": "銉°儍銈汇兗銈搞伄閫佷俊銇屻偔銉c兂銈汇儷銇曘倢銇俱仐銇熴€�",
-        "send_done": "銉︺兗銈躲兗 %s 銇儭銉冦偦銉笺偢銈掗€佷俊銇椼伨銇椼仧!",
-        "send_all_done": "銇欍伖銇︺伄銉︺兗銈躲兗銇儭銉冦偦銉笺偢銈掗€佷俊銇椼伨銇椼仧!",
-        "not_composition_end": "銉°儍銈汇兗銈镐綔鎴愩伅鏈€绲傛闅庛仹銇亗銈娿伨銇涖倱銆俓n/sendmail %s 銇俱仧銇�/sendmail stop 銈掍娇鐢ㄣ仐銇︺偔銉c兂銈汇儷銇椼仸銇忋仩銇曘亜锝�",
-        "please_use": "/sendmail %s 銈掍娇鐢ㄣ仐銇︺亸銇犮仌銇勶健",
-        "set_title": "銉°儍銈汇兗銈搞伄銈裤偆銉堛儷銇� '%s' 銇ō瀹氥仌銈屻仸銇勩伨銇欍€俓n缍氳銇欍倠銇伅 '/sendmail <content>' 銈掍娇鐢ㄣ仐銇︺亸銇犮仌銇勩€�",
-        "set_contents": "銉°儍銈汇兗銈搞伄鍐呭銇� '%s' 銇ō瀹氥仌銈屻仸銇勩伨銇欍€俓n缍氳銇欍倠銇伅 '/sendmail <閫佷俊鑰�>' 銈掍娇鐢ㄣ仐銇︺亸銇犮仌銇勩€�",
-        "set_message_sender": "銉°儍銈汇兗銈搁€佷俊鑰呫伅銆�%s銆嶃伀瑷畾銇曘倢銇︺亜銇俱仚銆俓n缍氳銇欍倠銇伅銆併€�/sendmail <銈€偆銉嗐儬ID|銈€偆銉嗐儬鍚峾finish> [鏁癩 [銉儥銉玗銆嶃倰浣跨敤銇椼仸銇忋仩銇曘亜銆�",
-        "send": "銉°儍銈汇兗銈搞伀 %s 銇� %s (銉儥銉� %s) 銈掓坊浠樸仐銇俱仐銇熴€俓n銈€偆銉嗐儬銇拷鍔犮倰缍氳銇欍倠銇嬨€�'/sendmail finish' 銈掍娇鐢ㄣ仐銇︺儭銉冦偦銉笺偢銈掗€佷俊銇椼仸銇忋仩銇曘亜銆�",
-        "invalid_arguments_please_use": "寮曟暟銇岀劇鍔广仹銇欍€俓n '/sendmail %s' 銈掍娇鐢ㄣ仐銇︺亸銇犮仌銇勶健",
-        "title": "<銈裤偆銉堛儷>",
-        "message": "<銉°儍銈汇兗銈�>",
-        "sender": "<閫佷俊鑰�>",
-        "arguments": "<銈€偆銉嗐儬ID|銈€偆銉嗐儬鍚峾finish> [鏁癩 [銉儥銉玗",
-        "error": "銈ㄣ儵銉�: 寤鸿ō銈广儐銉笺偢 %s 銇岀劇鍔广仹銇欍€� 銈炽兂銈姐兗銉仹銈广偪銉冦偗 銉堛儸銉笺偣銈掔⒑瑾嶃仐銇俱仚銆�",
-        "description": "鎸囧畾銇椼仧銉︺兗銈躲兗銇儭銉笺儷銈掗€佷俊銇椼伨銇欍€� 銇撱伄銈炽優銉炽儔銇娇鐢ㄦ硶銇€併仢銇悎鎴愮姸鎱嬨伀鍩恒仴銇勩仸澶夊寲銇椼伨銇�"
-      },
-      "sendMessage": {
-        "success": "銉°儍銈汇兗銈搞倰閫佷俊銇椼伨銇椼仧銆�",
-        "description": "銈点兗銉愩兗銇ㄣ仐銇︺儣銉偆銉ゃ兗銇儭銉冦偦銉笺偢銈掗€佷俊銇椼伨銇欍€� 銈裤兗銈层儍銉堛仾銇椼仹浣跨敤銇欍倠銇ㄣ€併偟銉笺儛銉间笂銇仚銇广仸銇儣銉偆銉ゃ兗銇€佷俊銇曘倢銇俱仚銆�"
-      },
-      "setConst": {
-        "range_error": "銈儯銉┿伄鍑告暟銇伅 0 銇嬨倝 6 銇枔銇с仾銇戙倢銇般仾銈娿伨銇涖倱銆�",
-        "level_error": "銈儯銉┿伄鏄熷骇銇儸銉欍儷銇岀劇鍔广仹銇欙健",
-        "fail": "鏄熷骇銇ō瀹氥伀澶辨晽銇椼伨銇椼仧銆�",
-        "failed_success": "%s 銇槦搴с伅 %s 銇ō瀹氥仌銈屻伨銇椼仧銆� 銈枫兗銉炽倰銉儹銉笺儔銇椼仸澶夋洿銈掔⒑瑾嶃仐銇︺亸銇犮仌銇勩€�",
-        "success": "%s 銇槦搴с伅 %s 銇ō瀹氥仌銈屻伨銇椼仧銆�",
-        "description": "鐝惧湪銈€偗銉嗐偅銉栥仾銈儯銉┿偗銈裤兗銇槦搴с儸銉欍儷銈掕ō瀹氥仐銇俱仚"
-      },
-      "setFetterLevel": {
-        "range_error": "銈儯銉┿伄绐佺牬銉儥銉伅0銇嬨倝10銇枔銇с亗銈嬪繀瑕併亴銇傘倞銇俱仚锝�",
-        "success": "绐佺牬銉儥銉亴 %s 銇ō瀹氥仌銈屻伨銇椼仧銆�",
-        "level_error": "绐佺牬銉儥銉亴鐒″姽銇с仚",
-        "description": "鐝惧湪銈€偗銉嗐偅銉栥仾銈儯銉┿偗銈裤兗銇獊鐮淬儸銉欍儷銈掕ō瀹氥仐銇俱仚锝�"
-      },
-      "setProp": {
-        "description": "銈€偒銈︺兂銉堝叏浣撱伄銉椼儹銉戙儐銈c倰瑷畾銇椼伨銇欍€� godmode銇倛銇嗐仾銈傘伄銇亾銇柟娉曘仹鏈夊姽銇仚銈嬨亾銇ㄣ亴銇с亶銆併偄銉炽儹銉冦偗銇曘倢銇熸繁娣点伄搴娿倓銉愩儓銉� 銉戙偣銇€茶鐘舵硜銇仼銈掑鏇淬仚銈嬨亾銇ㄣ倐銇с亶銇俱仚銆俓n\t<prop> 銇€�: godmode | nostamina | unlimitedenergy | abyss | worldlevel | bplevel\n\tmax_spring_volume 銇舰寮忋伄浠栥伄瑷畾鍙兘銇€ゃ伀銇ゃ亜銇︺伅PlayerProperty銈掑弬鐓с仐銇︺亸銇犮仌銇勶健"
-      },
-      "setStats": {
-        "description": "鐝惧湪銈€偗銉嗐偅銉栫姸鎱嬨伄銈广儐銉笺偪銈广倰瑷畾銇椼伨銇欙健\n\t <stat>銇€�: hp | maxhp | def | atk | em | er | crate | cdmg | cdr | heal | heali | shield | defi\n\t(cont.) Elemental DMG Bonus: epyro | ecryo | ehydro | egeo | edendro | eelectro | ephys\n\t(cont.) Elemental RES: respyro | rescryo | reshydro | resgeo | resdendro | reselectro | resphys",
-        "locked_to": "%s 銇� %s 銇儹銉冦偗銇曘倢銇︺亜銇俱仚銆�",
-        "locked_for_to": "%s 銇� %s 銇� %s 銇儹銉冦偗銇曘倢銇︺亜銇俱仚銆�",
-        "unlocked": "%s 銇儹銉冦偗銇岃В闄ゃ仌銈屻伨銇椼仧銆�",
-        "unlocked_for": "%s 銇� %s 銇屻儹銉冦偗瑙i櫎銇曘倢銇俱仐銇熴€�"
-      },
-      "spawn": {
-        "success": "%s 浣撱伄 %s 銈掋偣銉濄兗銉炽仌銇涖伨銇椼仧锝�",
-        "limit_reached": "銈枫兗銉炽伄銈广儩銉笺兂涓婇檺銇仈銇椼伨銇椼仧銆� 浠c倧銈娿伀 %s 浣撱伄銈ㄣ兂銉嗐偅銉嗐偅銈掋偣銉濄兗銉炽仐銇︺亜銇俱仚銆�",
-        "description": "杩戙亸銇偍銉炽儐銈c儐銈c倰銈广儩銉笺兂銇椼伨銇欙健"
-      },
-      "stop": {
-        "success": "銈点兗銉愩兗銈掋偡銉c儍銉堛儉銈︺兂...",
-        "description": "銈点兗銉愩兗銈掑仠姝腑"
-      },
-      "talent": {
-        "lower_16": "澶╄肠銉儥銉亴鐒″姽銇с仚锝� 銉儥銉伅16鏈簚銇с亗銈嬪繀瑕併亴銇傘倞銇俱仚锝�",
-        "set_id": "%s - 銇ぉ璩"%s\" 銈� %s 銇ō瀹氥仐銇俱仐銇�",
-        "id_desc": "澶╄肠 %s - \"%s\" - \"%s\"",
-        "invalid_skill_id": "銈广偔銉� ID 銇岀劇鍔广仹銇欍€�",
-        "invalid_level": "澶╄肠銉儥銉亴鐒″姽銇с仚銆�",
-        "normal_attack_id": "閫氬父鏀绘拑銇甀D %s.",
-        "e_skill_id": "鍏冪礌銈广偔銉伄ID %s.",
-        "q_skill_id": "鍏冪礌鐖嗙櫤銇甀D %s.",
-        "description": "鐝惧湪銈€偗銉嗐偅銉栥仾銈儯銉┿偗銈裤兗銇ぉ璩︺儸銉欍儷銈掕ō瀹氥仚銈�"
-      },
-      "team": {
-        "invalid_usage": "浣裤亜鏂广倰闁撻仌銇堛仸銇勩伨銇欙健",
-        "invalid_index": "銈ゃ兂銉囥儍銈偣銇岀劇鍔广仹銇欍€�",
-        "add_too_much": "銇撱伄銈点兗銉愩兗銇с伅銆併儊銉笺儬銇渶澶� %s 銈儯銉┿偗銈裤兗銇椼亱鍏ャ倢銈嬨亾銇ㄣ伅鍑烘潵銇俱仜銈撱€�",
-        "failed_to_add_avatar": "銈儯銉┿偗銈裤兗ID %s 銇拷鍔犮伀澶辨晽銇椼伨銇椼仧銆�",
-        "failed_to_parse_index": "銈ゃ兂銉囥儍銈偣銇В鏋愩伀澶辨晽銇椼伨銇椼仧: %s",
-        "remove_too_much": "銉併兗銉犮亱銈夊叏銇︺伄銈儯銉┿偗銈裤兗銈掋倰鍓婇櫎銇欍倠銇撱仺銇仹銇嶃伨銇涖倱銆�",
-        "ignore_index": "鐒¤銇曘倢銇熴偆銉炽儑銉冦偗銈�: %s",
-        "index_out_of_range": "鎸囧畾銇椼仧銈ゃ兂銉囥儍銈偣銇瘎鍥插銇с仚銆�",
-        "failed_parse_avatar_id": "銈儯銉┿偗銈裤兗ID 銇В鏋愩伀澶辨晽銇椼伨銇椼仧: %s",
-        "avatar_already_in_team": "銈儯銉┿偗銈裤兗銇仚銇с伀銉併兗銉犮伀鎵€灞炪仐銇︺亜銇俱仚銆�",
-        "avatar_not_found": "銈儯銉┿偗銈裤兗 %s 銇岃銇ゃ亱銈娿伨銇涖倱銆�",
-        "description": "銉併兗銉犮倰鎵嬪嫊銇у鏇淬仚銈�."
-      },
-      "teleportAll": {
-        "success": "銇欍伖銇︺伄銉椼儸銈ゃ儰銉笺倰鑷垎銇牬鎵€銇儐銉儩銉笺儓銇椼伨銇椼仧銆�",
-        "error": "銇撱伄銈炽優銉炽儔銇優銉儊銉椼儸銈ゃ仹銇伩浣跨敤銇с亶銇俱仚銆�",
-        "description": "銇傘仾銇熴伄涓栫晫銇仚銇广仸銇儣銉偆銉ゃ兗銈掋亗銇仧銇綅缃伀銉嗐儸銉濄兗銉堛仐銇俱仚锝�"
-      },
-      "teleport": {
-        "invalid_position": "鎸囧畾銇椼仧浣嶇疆銇岀劇鍔广仹銇欍€�",
-        "exists_error": "鎸囧畾銇曘倢銇熴偡銉笺兂銇屽瓨鍦ㄣ仐銇俱仜銈撱€�",
-        "success": "%s 銈� %s銆�%s銆�%s 銇偡銉笺兂 %s 銇儐銉儩銉笺儓銇椼伨銇椼仧銆�",
-        "description": "銉椼儸銈ゃ儰銉笺伄浣嶇疆銈掑鏇淬仚銈�"
-      },
-      "weather": {
-        "success": "澶╂皸ID銈� %s 銇ō瀹氥仐銆佹皸鍊欍偪銈ゃ儣銇� %s 銇с仚銆�",
-        "status": "鐝惧湪銇ぉ姘� ID 銇� %s 銇с€佹皸鍊欍偪銈ゃ儣銇� %s 銇с仚銆�",
-        "description": "澶╁€� ID 銇ㄦ皸鍊欍偪銈ゃ儣銈掑鏇淬仐銇俱仚銆� 澶╂皸 ID 銇�/Resources/ExcelBinOutput/WeatherExcelConfigData.json 銇亗銈娿伨銇欍€俓n姘楀€欍伄绋:sunny, cloudy, rain, thunderstorm, snow, mist"
-      },
-      "ban": {
-        "success": "鎴愬姛",
-        "failure": "澶辨晽銇椼伨銇椼仧銆傘儣銉兗銉ゃ兗銇岃銇ゃ亱銈娿伨銇涖倱銆�",
-        "invalid_time": "銈裤偆銉犮偣銈裤兂銉椼倰瑙f瀽銇с亶銇俱仜銈撱€�",
-        "description": "銉椼儸銈ゃ儰銉笺倰BAN銇欍倠锝�"
-      },
-      "unlockall": {
-        "success": "%s 銇枊銇勩仸銇勩倠銈广儐銉笺偪銈广倰銇欍伖銇︺儹銉冦偗瑙i櫎銇椼伨銇椼仧銆�",
-        "description": "銉椼儸銉笺儰銉笺伄銇欍伖銇︺伄闁嬨亜銇︺亜銈嬨偣銉嗐兗銈裤偣銇儹銉冦偗銈掕В闄ゃ仐銇俱仚銆�"
-      },
-      "unban": {
-        "success": "鎴愬姛",
-        "failure": "澶辨晽銇椼伨銇椼仧銆傘儣銉兗銉ゃ兗銇岃銇ゃ亱銈娿伨銇涖倱銆�",
-        "description": "銉椼儸銈ゃ儰銉笺伄BAN銈掕В闄ゃ仚銈�"
-      }
+        "login_attempt": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇屻儹銈般偆銉炽仐銈堛亞銇ㄣ仐銇︺亜銇俱仚.",
+        "login_success": "[Dispatch] 銈儵銈ゃ偄銉炽儓銇� %s 銇ㄣ仐銇︺儹銈般偆銉炽仐銇︺亜銇俱仚锝�",
+        "login_max_player_limit": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧: 銈兂銉┿偆銉� 銉椼儸銈ゃ儰銉笺伄鏁般亴涓婇檺銇仈銇椼伨銇椼仧",
+        "login_token_attempt": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儓銉笺偗銉崇祵鐢便仹銉偘銈ゃ兂銇椼倛銇嗐仺銇椼仸銇勩伨銇欙健",
+        "login_token_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儓銉笺偗銉炽伀銈堛倠銉偘銈ゃ兂銇け鏁椼仐銇俱仐銇熴€�",
+        "login_token_success": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儓銉笺偗銉崇祵鐢便仹 %s 銇ㄣ仐銇︺儹銈般偆銉炽仐銇俱仐銇熴€�",
+        "login_password_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儜銈广儻銉笺儔銇倛銈嬨儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧銆�",
+        "login_password_storage_error": "[Dispatch] 銉囥兗銈裤儥銉笺偣銇儜銈广儻銉笺儔銇屻仾銇勩仧銈併€併偗銉┿偆銈€兂銉� %s 銇儜銈广儻銉笺儔銇倛銈嬨儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧銆�",
+        "combo_token_success": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇偝銉炽儨 銉堛兗銈兂銇氦鎻涖伀鎴愬姛銇椼伨銇椼仧銆�",
+        "combo_token_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇偝銉炽儨 銉堛兗銈兂銇氦鎻涖伀澶辨晽銇椼伨銇椼仧銆�",
+        "account_login_create_success": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧: 銈€偒銈︺兂銉� %s 銇屼綔鎴愩仌銈屻伨銇椼仧銆�",
+        "account_login_create_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧: 銈€偒銈︺兂銉堛伄浣滄垚銇け鏁椼仐銇俱仐銇熴€�",
+        "account_login_exist_error": "[Dispatch] 銈儵銈ゃ偄銉炽儓 %s 銇儹銈般偆銉炽伀澶辨晽銇椼伨銇椼仧: 銈€偒銈︺兂銉堛亴瑕嬨仱銇嬨倞銇俱仜銈撱€�",
+        "account_cache_error": "銈层兗銉� 銈€偒銈︺兂銉堛伄銈儯銉冦偡銉ャ偍銉┿兗銇с仚銆�",
+        "session_key_error": "銈汇儍銈枫儳銉炽偔銉笺亴闁撻仌銇c仸銇勩伨銇欍€�",
+        "username_error": "銉︺兗銈躲兗鍚嶃亴瑕嬨仱銇嬨倞銇俱仜銈撱€�",
+        "username_create_error": "銉︺兗銈躲兗鍚嶃亴瑕嬨仱銇嬨倞銇俱仜銈撱€備綔鎴愩伀澶辨晽銇椼伨銇椼仧銆�",
+        "password_error": "鐒″姽銇儜銈广儻銉笺儔",
+        "password_length_error": "銉戙偣銉兗銉夈伄闀枫仌銇�8鏂囧瓧浠ヤ笂銇с仾銇戙倢銇般仾銈娿伨銇涖倱",
+        "password_storage_error": "銈€偒銈︺兂銉堛伄銉戙偣銉兗銉夈亴銇傘倞銇俱仜銈撱€� 绠$悊鑰呫伀閫g怠銇椼仸銇忋仩銇曘亜銆�",
+        "server_max_player_limit": "銈兂銉┿偆銉� 銉椼儸銉笺儰銉笺伄鏁般亴涓婇檺銇仈銇椼伨銇椼仧"
+      },
+      "router_error": "[Dispatch] 銉兗銈裤兗銈掓帴缍氥仹銇嶃伨銇涖倱銆�"
     },
-    "gacha": {
-      "details": {
-        "title": "銉愩儕銉笺伄瑭崇窗",
-        "available_five_stars": "鍏ユ墜鍙兘銇槦5銈€偆銉嗐儬",
-        "available_four_stars": "鍏ユ墜鍙兘銇槦4銈€偆銉嗐儬",
-        "available_three_stars": "鍏ユ墜鍙兘銇槦3銈€偆銉嗐儬"
-      },
-      "records": {
-        "title": "銈儊銉e饱姝�",
-        "date": "鏃ヤ粯",
-        "item": "鏅傞枔"
+    "status": {
+      "free_software": "銈般儵銈广偒銉冦偪銉笺伅銉曘儶銉笺偨銉曘儓銈︺偋銈€仹銇欍€� 銇撱倢銇亰閲戙倰鎵曘仯銇熴伄銇倝銆佽⿶娆恒伀銇傘仯銇熷彲鑳芥€с亴銇傘倞銇俱仚銆� 銉涖兗銉犮儦銉笺偢: https://github.com/Grasscutters/Grasscutter",
+      "starting": "Grasscutter銈掕捣鍕曚腑...",
+      "shutdown": "銈枫儯銉冦儓銉€銈︺兂銇椼仸銇勩伨銇�...",
+      "done": "璧峰嫊瀹屼簡!銉樸儷銉椼亴蹇呰銇牬鍚堛伅銆佹銇倛銇嗐伀鍏ュ姏銇椼仸銇忋仩銇曘亜 \"help\"",
+      "error": "銈ㄣ儵銉笺亴鐧虹敓銇椼伨銇椼仧锝�",
+      "welcome": "Grasscutter銇搞倛銇嗐亾銇�!",
+      "run_mode_error": "銈点兗銉愩兗瀹熻銉€兗銉夈亴鐒″姽銇с仚: %s 銆�",
+      "run_mode_help": "銈点兗銉愩兗銇疅琛屻儮銉笺儔銇€�'HYBRID'銆�'DISPATCH_ONLY'銆併伨銇熴伅 'GAME_ONLY' 銇с仾銇戙倢銇般仾銈娿伨銇涖倱銆� Grasscutter銈掕捣鍕曘仹銇嶃伨銇涖倱...",
+      "create_resources": "resources銉曘偂銉儉銈掍綔鎴愪腑...",
+      "resources_error": "(BinOutput)銇�(ExcelBinOutput)銇偝銉斻兗銈抮esources銉曘偐銉儉銉笺伀閰嶇疆銇椼伨銇欍€�",
+      "version": "Grasscutter 銉愩兗銈搞儳銉�: %s-%s",
+      "game_version": "銈层兗銉犮儛銉笺偢銉с兂: %s",
+      "resources": {
+        "loading": "resources銉曘偂銈ゃ儷銈掋儹銉笺儔涓�...",
+        "finish": "resources銉曘偂銈ゃ儷銇儹銉笺儔銇屽畬浜嗭健"
       }
-    },
-    "documentation": {
-      "handbook": {
-        "title": "GM Handbook",
-        "title_commands": "銈炽優銉炽儔",
-        "title_avatars": "銈儯銉�",
-        "title_items": "銈€偆銉嗐儬",
-        "title_scenes": "銈枫兗銉�",
-        "title_monsters": "銉€兂銈广偪銉�",
-        "header_id": "Id",
-        "header_command": "銈炽優銉炽儔",
-        "header_description": "瑾槑",
-        "header_avatar": "銈儯銉�",
-        "header_item": "銈€偆銉嗐儬",
-        "header_scene": "銈枫兗銉�",
-        "header_monster": "銉€兂銈广偪銉�"
-      },
-      "index": {
-        "title": "銉夈偔銉ャ儭銉炽儓",
-        "handbook": "GM Handbook",
-        "gacha_mapping": "銈儊銉c優銉冦儣 JSON"
+    }
+  },
+  "commands": {
+    "generic": {
+      "not_specified": "銈炽優銉炽儔銇屾寚瀹氥仌銈屻仸銇勩伨銇涖倱銆�",
+      "unknown_command": "涓嶆槑銇偝銉炪兂銉�: %s",
+      "permission_error": "銇撱伄銈炽優銉炽儔銈掑疅琛屻仚銈嬫ī闄愩亴銇傘倞銇俱仜銈撱€�",
+      "console_execute_error": "銇撱伄銈炽優銉炽儔銇€併偝銉炽偨銉笺儷銇嬨倝銇伩瀹熻銇с亶銇俱仚銆�",
+      "player_execute_error": "銈层兗銉犲唴銇с亾銇偝銉炪兂銉夈倰瀹熻銇椼仸銇忋仩銇曘亜銆�",
+      "command_exist_error": "銈炽優銉炽儔銇岃銇ゃ亱銈娿伨銇涖倱銆�",
+      "no_usage_specified": "鍊ゃ亴鎸囧畾銇曘倢銇︺亜銇俱仜銈�",
+      "no_description_specified": "鍊ゃ亴瑷畾銇曘倢銇︺亜銇俱仜銈�",
+      "set_to": "%s 銇� %s 銇ō瀹氥仌銈屻伨銇椼仧銆�",
+      "set_for_to": "%s 銇� %s 銇� %s 銇ō瀹氥仌銈屻伨銇椼仧銆�",
+      "invalid": {
+        "amount": "鍊ゃ亴鐒″姽銇с仚",
+        "artifactId": "鑱栭伜鐗㊣D銇岀劇鍔广仾鍊ゃ仹銇欍€�",
+        "avatarId": "銈儯銉㊣D銇岀劇鍔广仾鍊ゃ仹銇欙健",
+        "avatarLevel": "銈儯銉┿儸銉欍儷銇岀劇鍔广仾鍊ゃ仹銇欙健",
+        "entityId": "銈ㄣ兂銉嗐偅銉嗐偅ID銇岀劇鍔广仾鍊ゃ仹銇欙健",
+        "itemId": "銈€偆銉嗐儬ID銇岀劇鍔广仾鍊ゃ仹銇欙健",
+        "itemLevel": "銈€偆銉嗐儬銉儥銉亴鐒″姽銇€ゃ仹銇欙健",
+        "itemRefinement": "銈€偆銉嗐儬銇簿閷儵銉炽偗銇岀劇鍔广仾鍊ゃ仹銇欙健",
+        "statValue": "銈广儐銉笺偪銈笽D銇岀劇鍔广仾鍊ゃ仹銇欙健.",
+        "value_between": "鐒″姽銇€�: %s 銇� %s 銇� %s 銇枔銇亗銈嬪繀瑕併亴銇傘倞銇俱仚銆�",
+        "playerId": "銉椼儸銈ゃ儰銉糏D銇岀劇鍔广仾鍊ゃ仹銇欙健",
+        "uid": "UID銇岀劇鍔广仹銇欙健",
+        "id": "鐒″姽銇狪D锝�"
       }
     },
+    "execution": {
+      "usage_prefix": "浣跨敤鏂规硶: ",
+      "player_exist_error": "銉椼儸銈ゃ儰銉笺亴瑕嬨仱銇嬨倞銇俱仜銈撱€�",
+      "player_offline_error": "銉椼儸銈ゃ儰銉笺亴銈儠銉┿偆銉炽仹銇欙健",
+      "item_player_exist_error": "銈€偆銉嗐儬ID銇俱仧銇疷ID銇岀劇鍔广仾鍊ゃ仹銇欙健",
+      "player_exist_offline_error": "銉椼儸銈ゃ儰銉笺亴瑕嬨仱銇嬨倝銇亜銇嬨偑銉曘儵銈ゃ兂銇с仚锝�",
+      "argument_error": "鐒″姽銇紩鏁般仹銇欙健",
+      "clear_target": "銈裤兗銈层儍銉堛倰銈儶銈€仐銇俱仐銇燂健",
+      "set_target": "浠ラ檷銇偝銉炪兂銉夈伅銆併儑銉曘偐銉儓銇� @%s 銈掋偪銉笺偛銉冦儓銇仐銇俱仚銆�",
+      "set_target_online": "@%s 銇偑銉炽儵銈ゃ兂銇с仚銆� 銈炽優銉炽儔銇倛銇c仸銇€併偑銉曘儵銈ゃ兂 銈裤兗銈层儍銉堛亴蹇呰銇仾銈嬪牬鍚堛亴銇傘倞銇俱仚銆�",
+      "set_target_offline": "@%s 銇偑銉曘儵銈ゃ兂銇с仚銆� 涓€閮ㄣ伄銈炽優銉炽儔銇с伅銆併偑銉炽儵銈ゃ兂 銈裤兗銈层儍銉堛亴蹇呰銇仾銈嬪牬鍚堛亴銇傘倞銇俱仚銆�",
+      "need_target": "銇撱伄銈炽優銉炽儔銇伅銆併偪銉笺偛銉冦儓 UID 銇屽繀瑕併仹銇欍€� <@UID> 寮曟暟銈掕拷鍔犮仚銈嬨亱銆�/target @UID 銇ф案缍氱殑銇偪銉笺偛銉冦儓銈掕ō瀹氥仐銇俱仚锝�",
+      "need_target_online": "銇撱伄銈炽優銉炽儔銇伅銈兂銉┿偆銉炽伄銈裤兗銈层儍銉� UID 銇屽繀瑕併仹銇欍亴銆佺従鍦ㄣ伄銈裤兗銈层儍銉堛伅銈儠銉┿偆銉炽仹銇欍€� 鍒ャ伄 <@UID> 寮曟暟銈掕拷鍔犮仚銈嬨亱銆�/target @UID 銇ф案缍氱殑銇偪銉笺偛銉冦儓銈掕ō瀹氥仐銇︺亸銇犮仌銇勩€�",
+      "need_target_offline": "銇撱伄銈炽優銉炽儔銇伅銈儠銉┿偆銉炽伄銈裤兗銈层儍銉� UID 銇屽繀瑕併仹銇欍亴銆佺従鍦ㄣ伄銈裤兗銈层儍銉堛伅銈兂銉┿偆銉炽仹銇欍€� 鍒ャ伄 <@UID> 寮曟暟銈掕拷鍔犮仚銈嬨亱銆�/target @UID 銇ф案缍氱殑銇偪銉笺偛銉冦儓銈掕ō瀹氥仐銇︺亸銇犮仌銇勩€�"
+    },
+    "status": {
+      "enabled": "鏈夊姽",
+      "disabled": "鐒″姽",
+      "help": "銉樸儷銉�",
+      "success": "鎴愬姛"
+    },
+    "account": {
+      "invalid": "鐒″姽銇猆ID",
+      "exists": "銇撱伄銉︺兗銈躲兗鍚嶃伨銇熴伅 UID 銈掓寔銇ゃ偄銈偊銉炽儓銇棦銇瓨鍦ㄣ仐銇俱仚銆�",
+      "create": "UID %s 銇с偄銈偊銉炽儓銇屼綔鎴愩仌銈屻伨銇椼仧锝�",
+      "delete": "銈€偒銈︺兂銉堛倰娑堝幓銇椼伨銇椼仧锝�",
+      "no_account": "銈€偒銈︺兂銉堛亴瑕嬨仱銇嬨倞銇俱仜銈擄健",
+      "description": "銉︺兗銈躲兗銈€偒銈︺兂銉堛倰澶夋洿"
+    },
+    "announce": {
+      "send_success": "銈€儕銈︺兂銈广伄閫佷俊銇垚鍔熴仐銇俱仐銇熴€傘偄銉娿偊銉炽偣銇� /a revoke %s 銇у彇銈婃秷銇欍亾銇ㄣ亴銇с亶銇俱仚銆�",
+      "refresh_success": "銈€儕銈︺兂銈规鎴愩儠銈°偆銉倰姝e父銇洿鏂般仐銇俱仚銆� [鍚堣▓ %s]",
+      "revoke_done": "銈€儕銈︺兂銈� %s 銇彇銈婃秷銇椼倰瑭﹁涓€�",
+      "not_found": "銈€儕銈︺兂銈� %s 銇岃銇ゃ亱銈娿伨銇涖倱銇с仐銇燂健",
+      "description": "銇欍伖銇︺伄銈兂銉┿偆銉� 銉椼儸銈ゃ儰銉笺伀銈€儕銈︺兂銈广倰閫佷俊銇欍倠銇嬨€併偟銉笺儛銉笺伄銈€儕銈︺兂銈广倰绠$悊銇椼伨銇�"
+    },
+    "clear": {
+      "weapons": "%s 銇鍣ㄣ倰娑堝幓銇椼伨銇椼仧銆�",
+      "artifacts": "%s 銇仏閬虹墿銈掓秷鍘汇仐銇俱仐銇燂健",
+      "materials": "%s 銇礌鏉愩倰娑堝幓銇椼伨銇椼仧锝�",
+      "furniture": "%s 銇鍏枫偄銈ゃ儐銉犮倰娑堝幓銇椼伨銇椼仧锝�",
+      "displays": "%s 銇〃绀恒倰娑堝幓銇椼伨銇椼仧锝�",
+      "virtuals": "%s 銇划鎯炽倰娑堝幓銇椼伨銇椼仧锝�",
+      "everything": "%s 銇叏銇︺伄銈€偆銉嗐儬銈掓秷鍘汇仐銇俱仐銇燂健",
+      "description": "瑁呭倷銇椼仸銇勩仾銇勩伨銇熴伅銉儍銈仌銈屻仸銇亜銈€偆銉嗐儬銈掋儛銉冦偗銇腑銇嬨倝娑堝幓銇椼伨銇欙健 銉囥儠銈┿儷銉堛仹銇槦4浠ヤ笅銇с儸銉欍儷1锝ょ簿閷儵銉炽偗1浠ヤ笅銇偄銈ゃ儐銉犮倰鍓婇櫎銇椼伨銇欙健"
+    },
+    "coop": {
+      "success": "%s 銈� %s 銇笘鐣屻伀鍙枤銇椼伨銇椼仧銆�",
+      "description": "浠栦汉銇笘鐣屻伀寮峰埗鐨勩伀鍙傚姞銇曘仜銇俱仚銆� 瑾般倐銈裤兗銈层儍銉堛伀銇曘倢銇︺亜銇亜鍫村悎銇€併優銉儊銉椼儸銈ゃ儮銉笺儔銇Щ琛屻仐銇俱仚锝�"
+    },
+    "enter_dungeon": {
+      "changed": "绉樺 %s 銇鏇淬仌銈屻伨銇椼仧锝�",
+      "not_found_error": "绉樺銇瓨鍦ㄣ仐銇俱仜銈撱€�",
+      "in_dungeon_error": "銇傘仾銇熴伅銇欍仹銇仢銇澧冦伀銇勩伨銇欙健",
+      "description": "绉樺銇叆銈嬶健"
+    },
+    "give": {
+      "usage_relic": "浣跨敤鏂规硶: give <鑱栭伜鐗㊣D> [銉°偆銉炽偣銉嗐兗銈裤偣ID] [<銈点儢銈广儐銉笺偪銈笽D>[,<寮峰寲鍥炴暟>]]... [lv<銉儥銉� 0-20>]",
+      "illegal_relic": "銇撱伄鑱栭伜鐗㊣D銇儢銉┿儍銈儶銈广儓銇櫥閷层仌銈屻仧绡勫洸銇睘銇椼仸銇勩伨銇欍€傚繀瑕併仾绡勫洸銇с伅銇亜鍙兘鎬с亴銇傘倞銇俱仚銆�",
+      "given": "%s 銇� %s 銈� %s 銇寚瀹氥仐銇俱仐銇熴€�",
+      "given_with_level_and_refinement": "%s 銈掋儸銉欍儷 %s 銇ф寚瀹氥仚銈嬨仺銆�%s 銈� %s 鍥� %s 銇簿閷仐銇俱仚銆�",
+      "given_level": "銉儥銉� %s 銇� %s 銇� %s 銇� %s 鍥炰笌銇堛倝銈屻伨銇椼仧銆�",
+      "given_avatar": "銉儥銉� %s 銇嬨倝 %s 銇俱仹銇� %s 銇屼笌銇堛倝銈屻伨銇椼仧銆�",
+      "giveall_success": "銇欍伖銇︺伄銈€偆銉嗐儬銈掍笌銇堛伨銇椼仧銆�",
+      "description": "銇傘仾銇熴伨銇熴伅鎸囧畾銇曘倢銇熴儣銉偆銉ゃ兗銇偄銈ゃ儐銉犮倰涓庛亪銇俱仚銆� 銇俱仧銆併仚銇广仸銇鍣ㄣ€併偄銉愩偪銉笺€併亰銈堛伋/銇俱仧銇潗鏂欍倰涓庛亪銈嬨亾銇ㄣ亴銇с亶銆佹寚瀹氥仐銇熻仏閬虹墿銈掓绡夈仚銈嬨亾銇ㄣ倐銇с亶銇俱仚銆�"
+    },
+    "heal": {
+      "success": "鍏ㄣ偔銉c儵銈掑洖寰┿仐銇俱仐銇燂健",
+      "description": "鐝惧湪銇儜銉笺儐銈c兗銇偔銉c儵銈偪銉笺伄銇裤倰鍥炲京銇椼伨銇欙健"
+    },
+    "help": {
+      "aliases": "銈ㄣ偆銉偄銈�: ",
+      "available_commands": "鍒╃敤鍙兘銇偝銉炪兂銉�: ",
+      "tip_need_permission": "瑷卞彲: ",
+      "tip_need_no_permission": " 鐒°仐",
+      "tip_permission_targeted": " (妯╅檺 %s 銇€佷粬銇儣銉兗銉ゃ兗銇т娇鐢ㄣ仚銈嬨仧銈併伀銈傚繀瑕併仹銇�)",
+      "warn_player_has_no_permission": "娉ㄦ剰: 銇撱伄銈炽優銉炽儔銈掑疅琛屻仚銈嬫ī闄愩亴銇傘倞銇俱仜銈撱€�",
+      "description": "銉樸儷銉� 銉°儍銈汇兗銈搞倰閫佷俊銇欍倠銇嬨€佹寚瀹氥仐銇熴偝銉炪兂銉夈伀闁€仚銈嬫儏鍫便倰琛ㄧず銇椼伨銇欙健"
+    },
+    "kick": {
+      "player_kick_player": "銉椼儸銉笺儰銉� [%s:%s] 銇屻儣銉兗銉ゃ兗 [%s:%s] 銈掋偔銉冦偗銇椼伨銇椼仧锝�",
+      "server_kick_player": "銉椼儸銈ゃ儰銉笺倰銈儍銈� [%s:%s]...",
+      "description": "鎸囧畾銇椼仧銉椼儸銈ゃ儰銉笺倰銈点兗銉愩兗銇嬨倝杩姐亜鍑恒仐銇俱仚 (WIP)"
+    },
+    "killall": {
+      "scene_not_found_in_player_world": "銉椼儸銈ゃ儰銉笺儻銉笺儷銉夈伀銈枫兗銉炽亴銇傘倞銇俱仜銈撱€�",
+      "kill_monsters_in_scene": "銈枫兗銉� %s 銇� %s 鍖广伄銉€兂銈广偪銉笺倰鍊掋仐銇俱仐銇熴€�",
+      "description": "鍏ㄣ仸銇偍銉炽儐銈c儐銈c倰娈恒仐銇俱仐銇燂健"
+    },
+    "killCharacter": {
+      "success": "%s 銇従鍦ㄣ伄銈儯銉┿偗銈裤兗銈掓銇椼伨銇椼仧銆�",
+      "description": "銉椼儸銈ゃ儰銉笺伄鐝惧湪銇偔銉c儵銈偪銉笺倰娈恒仐銇俱仚"
+    },
+    "language": {
+      "current_language": "鐝惧湪銇█瑾炪伅 %s 銇с仚銆�",
+      "language_changed": "瑷€瑾炪亴 %s 銇鏇淬仌銈屻伨銇椼仧銆�",
+      "language_not_found": "鐝惧湪銆併偟銉笺儛銉笺伀銇仢銇█瑾炪亴銇傘倞銇俱仜銈撱€�",
+      "description": "鐝惧湪銇█瑾炪倰琛ㄧず銇俱仧銇鏇淬仚銈嬶健"
+    },
+    "list": {
+      "success": "%a 浜恒伄銉椼儸銉笺儰銉笺亴銈兂銉┿偆銉炽仹銇�:",
+      "description": "銈兂銉┿偆銉炽伄銉椼儸銈ゃ儰銉笺伄銉偣銉�"
+    },
+    "permission": {
+      "add": "妯╅檺銈掕拷鍔狅健",
+      "has_error": "褰笺倝銇仚銇с伀銇撱伄妯╅檺銈掓寔銇c仸銇勩伨銇欙紒",
+      "remove": "妯╅檺銈掑墛闄わ健",
+      "not_have_error": "褰笺倝銇伅銇撱伄妯╅檺銇屻亗銈娿伨銇涖倱!",
+      "account_error": "銈€偒銈︺兂銉堛亴瑕嬨仱銇嬨倞銇俱仜銈撱€�",
+      "description": "銉︺兗銈躲兗銇ī闄愩倰浠樹笌銇俱仧銇墛闄ゃ仐銇俱仚"
+    },
+    "position": {
+      "success": "搴ф: %s銆�%s銆�%s\n銈枫兗銉矷D: %s",
+      "description": "搴ф銈掑彇寰椼仚銈�"
+    },
+    "quest": {
+      "added": "銈偍銈广儓 %s 銇岃拷鍔犮仌銈屻伨銇椼仧銆�",
+      "finished": "銈偍銈广儓 %s 銈掔祩浜嗐仐銇俱仐銇熴€�",
+      "not_found": "銈偍銈广儓銇岃銇ゃ亱銈娿伨銇涖倱锝�",
+      "invalid_id": "銈偍銈广儓ID銇岀劇鍔广仹銇欙健",
+      "description": "銈偍銈广儓銈掕拷鍔犮伨銇熴伅绲備簡銇欍倠锝�"
+    },
+    "reload": {
+      "reload_start": "瑷畾銈掑啀瑾伩杈笺伩銇椼仸銇勩伨銇欍€�",
+      "reload_done": "鍐嶈銇胯炯銇垮畬浜嗭健",
+      "description": "銈点兗銉愩兗瑷畾銈掑啀瑾伩杈笺伩"
+    },
+    "resetConst": {
+      "reset_all": "銇欍伖銇︺伄銈€儛銈裤兗銇槦搴с倰銉偦銉冦儓銇椼伨銇欍€�",
+      "success": "%s 銇槦搴с亴銉偦銉冦儓銇曘倢銇俱仐銇熴€� 澶夋洿銈掔⒑瑾嶃仚銈嬨伀銇€佸啀銉偘銈ゃ兂銇椼仸銇忋仩銇曘亜銆�",
+      "description": "鐝惧湪銈€偗銉嗐偅銉栥仾銈儯銉┿偗銈裤兗銇槦搴с儸銉欍儷銈掋儶銈汇儍銉堛仐銇俱仚銆傚鏇淬倰纰鸿獚銇欍倠銇伅銆併偝銉炪兂銉夈倰浣跨敤銇椼仧寰屻伀鍐嶃儹銈般偆銉炽仚銈嬪繀瑕併亴銇傘倞銇俱仚锝�"
+    },
+    "resetShopLimit": {
+      "success": "銉偦銉冦儓瀹屼簡锝�",
+      "description": "瀵捐薄銉椼儸銈ゃ儰銉笺伄銈枫儳銉冦儣鏇存柊鏅傞枔銈掋儶銈汇儍銉堛仚銈�"
+    },
+    "sendMail": {
+      "give_usage": "浣跨敤娉�: give <player> <itemID|itemName> [鏁癩 [銉儥銉玗 [绮鹃尙]",
+      "user_not_exist": "ID銆�%s銆嶃伄銉︺兗銈躲兗銇瓨鍦ㄣ仐銇俱仜銈撱€�",
+      "start_composition": "銉°儍銈汇兗銈搞伄浣滄垚銈掗枊濮嬨仐銇︺亜銇俱仚銆俓n缍氳銇欍倠銇伅銆�/sendmail <title>銆嶃倰浣跨敤銇椼仸銇忋仩銇曘亜銆俓n銆�/sendmail stop銆嶃伅銇勩仱銇с倐浣跨敤銇с亶銇俱仚銆�",
+      "templates": "銉°兗銉儐銉炽儣銉兗銉堛伅杩戞棩瀹熻浜堝畾...",
+      "invalid_arguments": "寮曟暟銇岀劇鍔广仹銇欍€�",
+      "send_cancel": "銉°儍銈汇兗銈搞伄閫佷俊銇屻偔銉c兂銈汇儷銇曘倢銇俱仐銇熴€�",
+      "send_done": "銉︺兗銈躲兗 %s 銇儭銉冦偦銉笺偢銈掗€佷俊銇椼伨銇椼仧!",
+      "send_all_done": "銇欍伖銇︺伄銉︺兗銈躲兗銇儭銉冦偦銉笺偢銈掗€佷俊銇椼伨銇椼仧!",
+      "not_composition_end": "銉°儍銈汇兗銈镐綔鎴愩伅鏈€绲傛闅庛仹銇亗銈娿伨銇涖倱銆俓n/sendmail %s 銇俱仧銇�/sendmail stop 銈掍娇鐢ㄣ仐銇︺偔銉c兂銈汇儷銇椼仸銇忋仩銇曘亜锝�",
+      "please_use": "/sendmail %s 銈掍娇鐢ㄣ仐銇︺亸銇犮仌銇勶健",
+      "set_title": "銉°儍銈汇兗銈搞伄銈裤偆銉堛儷銇� '%s' 銇ō瀹氥仌銈屻仸銇勩伨銇欍€俓n缍氳銇欍倠銇伅 '/sendmail <content>' 銈掍娇鐢ㄣ仐銇︺亸銇犮仌銇勩€�",
+      "set_contents": "銉°儍銈汇兗銈搞伄鍐呭銇� '%s' 銇ō瀹氥仌銈屻仸銇勩伨銇欍€俓n缍氳銇欍倠銇伅 '/sendmail <閫佷俊鑰�>' 銈掍娇鐢ㄣ仐銇︺亸銇犮仌銇勩€�",
+      "set_message_sender": "銉°儍銈汇兗銈搁€佷俊鑰呫伅銆�%s銆嶃伀瑷畾銇曘倢銇︺亜銇俱仚銆俓n缍氳銇欍倠銇伅銆併€�/sendmail <銈€偆銉嗐儬ID|銈€偆銉嗐儬鍚峾finish> [鏁癩 [銉儥銉玗銆嶃倰浣跨敤銇椼仸銇忋仩銇曘亜銆�",
+      "send": "銉°儍銈汇兗銈搞伀 %s 銇� %s (銉儥銉� %s) 銈掓坊浠樸仐銇俱仐銇熴€俓n銈€偆銉嗐儬銇拷鍔犮倰缍氳銇欍倠銇嬨€�'/sendmail finish' 銈掍娇鐢ㄣ仐銇︺儭銉冦偦銉笺偢銈掗€佷俊銇椼仸銇忋仩銇曘亜銆�",
+      "invalid_arguments_please_use": "寮曟暟銇岀劇鍔广仹銇欍€俓n '/sendmail %s' 銈掍娇鐢ㄣ仐銇︺亸銇犮仌銇勶健",
+      "title": "<銈裤偆銉堛儷>",
+      "message": "<銉°儍銈汇兗銈�>",
+      "sender": "<閫佷俊鑰�>",
+      "arguments": "<銈€偆銉嗐儬ID|銈€偆銉嗐儬鍚峾finish> [鏁癩 [銉儥銉玗",
+      "error": "銈ㄣ儵銉�: 寤鸿ō銈广儐銉笺偢 %s 銇岀劇鍔广仹銇欍€� 銈炽兂銈姐兗銉仹銈广偪銉冦偗 銉堛儸銉笺偣銈掔⒑瑾嶃仐銇俱仚銆�",
+      "description": "鎸囧畾銇椼仧銉︺兗銈躲兗銇儭銉笺儷銈掗€佷俊銇椼伨銇欍€� 銇撱伄銈炽優銉炽儔銇娇鐢ㄦ硶銇€併仢銇悎鎴愮姸鎱嬨伀鍩恒仴銇勩仸澶夊寲銇椼伨銇�"
+    },
+    "sendMessage": {
+      "success": "銉°儍銈汇兗銈搞倰閫佷俊銇椼伨銇椼仧銆�",
+      "description": "銈点兗銉愩兗銇ㄣ仐銇︺儣銉偆銉ゃ兗銇儭銉冦偦銉笺偢銈掗€佷俊銇椼伨銇欍€� 銈裤兗銈层儍銉堛仾銇椼仹浣跨敤銇欍倠銇ㄣ€併偟銉笺儛銉间笂銇仚銇广仸銇儣銉偆銉ゃ兗銇€佷俊銇曘倢銇俱仚銆�"
+    },
+    "setConst": {
+      "range_error": "銈儯銉┿伄鍑告暟銇伅 0 銇嬨倝 6 銇枔銇с仾銇戙倢銇般仾銈娿伨銇涖倱銆�",
+      "level_error": "銈儯銉┿伄鏄熷骇銇儸銉欍儷銇岀劇鍔广仹銇欙健",
+      "fail": "鏄熷骇銇ō瀹氥伀澶辨晽銇椼伨銇椼仧銆�",
+      "failed_success": "%s 銇槦搴с伅 %s 銇ō瀹氥仌銈屻伨銇椼仧銆� 銈枫兗銉炽倰銉儹銉笺儔銇椼仸澶夋洿銈掔⒑瑾嶃仐銇︺亸銇犮仌銇勩€�",
+      "success": "%s 銇槦搴с伅 %s 銇ō瀹氥仌銈屻伨銇椼仧銆�",
+      "description": "鐝惧湪銈€偗銉嗐偅銉栥仾銈儯銉┿偗銈裤兗銇槦搴с儸銉欍儷銈掕ō瀹氥仐銇俱仚"
+    },
+    "setFetterLevel": {
+      "range_error": "銈儯銉┿伄绐佺牬銉儥銉伅0銇嬨倝10銇枔銇с亗銈嬪繀瑕併亴銇傘倞銇俱仚锝�",
+      "success": "绐佺牬銉儥銉亴 %s 銇ō瀹氥仌銈屻伨銇椼仧銆�",
+      "level_error": "绐佺牬銉儥銉亴鐒″姽銇с仚",
+      "description": "鐝惧湪銈€偗銉嗐偅銉栥仾銈儯銉┿偗銈裤兗銇獊鐮淬儸銉欍儷銈掕ō瀹氥仐銇俱仚锝�"
+    },
+    "setProp": {
+      "description": "銈€偒銈︺兂銉堝叏浣撱伄銉椼儹銉戙儐銈c倰瑷畾銇椼伨銇欍€� godmode銇倛銇嗐仾銈傘伄銇亾銇柟娉曘仹鏈夊姽銇仚銈嬨亾銇ㄣ亴銇с亶銆併偄銉炽儹銉冦偗銇曘倢銇熸繁娣点伄搴娿倓銉愩儓銉� 銉戙偣銇€茶鐘舵硜銇仼銈掑鏇淬仚銈嬨亾銇ㄣ倐銇с亶銇俱仚銆俓n\t<prop> 銇€�: godmode | nostamina | unlimitedenergy | abyss | worldlevel | bplevel\n\tmax_spring_volume 銇舰寮忋伄浠栥伄瑷畾鍙兘銇€ゃ伀銇ゃ亜銇︺伅PlayerProperty銈掑弬鐓с仐銇︺亸銇犮仌銇勶健"
+    },
+    "setStats": {
+      "description": "鐝惧湪銈€偗銉嗐偅銉栫姸鎱嬨伄銈广儐銉笺偪銈广倰瑷畾銇椼伨銇欙健\n\t <stat>銇€�: hp | maxhp | def | atk | em | er | crate | cdmg | cdr | heal | heali | shield | defi\n\t(cont.) Elemental DMG Bonus: epyro | ecryo | ehydro | egeo | edendro | eelectro | ephys\n\t(cont.) Elemental RES: respyro | rescryo | reshydro | resgeo | resdendro | reselectro | resphys",
+      "locked_to": "%s 銇� %s 銇儹銉冦偗銇曘倢銇︺亜銇俱仚銆�",
+      "locked_for_to": "%s 銇� %s 銇� %s 銇儹銉冦偗銇曘倢銇︺亜銇俱仚銆�",
+      "unlocked": "%s 銇儹銉冦偗銇岃В闄ゃ仌銈屻伨銇椼仧銆�",
+      "unlocked_for": "%s 銇� %s 銇屻儹銉冦偗瑙i櫎銇曘倢銇俱仐銇熴€�"
+    },
+    "spawn": {
+      "success": "%s 浣撱伄 %s 銈掋偣銉濄兗銉炽仌銇涖伨銇椼仧锝�",
+      "limit_reached": "銈枫兗銉炽伄銈广儩銉笺兂涓婇檺銇仈銇椼伨銇椼仧銆� 浠c倧銈娿伀 %s 浣撱伄銈ㄣ兂銉嗐偅銉嗐偅銈掋偣銉濄兗銉炽仐銇︺亜銇俱仚銆�",
+      "description": "杩戙亸銇偍銉炽儐銈c儐銈c倰銈广儩銉笺兂銇椼伨銇欙健"
+    },
+    "stop": {
+      "success": "銈点兗銉愩兗銈掋偡銉c儍銉堛儉銈︺兂...",
+      "description": "銈点兗銉愩兗銈掑仠姝腑"
+    },
+    "talent": {
+      "lower_16": "澶╄肠銉儥銉亴鐒″姽銇с仚锝� 銉儥銉伅16鏈簚銇с亗銈嬪繀瑕併亴銇傘倞銇俱仚锝�",
+      "set_id": "%s - 銇ぉ璩"%s\" 銈� %s 銇ō瀹氥仐銇俱仐銇�",
+      "id_desc": "澶╄肠 %s - \"%s\" - \"%s\"",
+      "invalid_skill_id": "銈广偔銉� ID 銇岀劇鍔广仹銇欍€�",
+      "invalid_level": "澶╄肠銉儥銉亴鐒″姽銇с仚銆�",
+      "normal_attack_id": "閫氬父鏀绘拑銇甀D %s.",
+      "e_skill_id": "鍏冪礌銈广偔銉伄ID %s.",
+      "q_skill_id": "鍏冪礌鐖嗙櫤銇甀D %s.",
+      "description": "鐝惧湪銈€偗銉嗐偅銉栥仾銈儯銉┿偗銈裤兗銇ぉ璩︺儸銉欍儷銈掕ō瀹氥仚銈�"
+    },
+    "team": {
+      "invalid_usage": "浣裤亜鏂广倰闁撻仌銇堛仸銇勩伨銇欙健",
+      "invalid_index": "銈ゃ兂銉囥儍銈偣銇岀劇鍔广仹銇欍€�",
+      "add_too_much": "銇撱伄銈点兗銉愩兗銇с伅銆併儊銉笺儬銇渶澶� %s 銈儯銉┿偗銈裤兗銇椼亱鍏ャ倢銈嬨亾銇ㄣ伅鍑烘潵銇俱仜銈撱€�",
+      "failed_to_add_avatar": "銈儯銉┿偗銈裤兗ID %s 銇拷鍔犮伀澶辨晽銇椼伨銇椼仧銆�",
+      "failed_to_parse_index": "銈ゃ兂銉囥儍銈偣銇В鏋愩伀澶辨晽銇椼伨銇椼仧: %s",
+      "remove_too_much": "銉併兗銉犮亱銈夊叏銇︺伄銈儯銉┿偗銈裤兗銈掋倰鍓婇櫎銇欍倠銇撱仺銇仹銇嶃伨銇涖倱銆�",
+      "ignore_index": "鐒¤銇曘倢銇熴偆銉炽儑銉冦偗銈�: %s",
+      "index_out_of_range": "鎸囧畾銇椼仧銈ゃ兂銉囥儍銈偣銇瘎鍥插銇с仚銆�",
+      "failed_parse_avatar_id": "銈儯銉┿偗銈裤兗ID 銇В鏋愩伀澶辨晽銇椼伨銇椼仧: %s",
+      "avatar_already_in_team": "銈儯銉┿偗銈裤兗銇仚銇с伀銉併兗銉犮伀鎵€灞炪仐銇︺亜銇俱仚銆�",
+      "avatar_not_found": "銈儯銉┿偗銈裤兗 %s 銇岃銇ゃ亱銈娿伨銇涖倱銆�",
+      "description": "銉併兗銉犮倰鎵嬪嫊銇у鏇淬仚銈�."
+    },
+    "teleportAll": {
+      "success": "銇欍伖銇︺伄銉椼儸銈ゃ儰銉笺倰鑷垎銇牬鎵€銇儐銉儩銉笺儓銇椼伨銇椼仧銆�",
+      "error": "銇撱伄銈炽優銉炽儔銇優銉儊銉椼儸銈ゃ仹銇伩浣跨敤銇с亶銇俱仚銆�",
+      "description": "銇傘仾銇熴伄涓栫晫銇仚銇广仸銇儣銉偆銉ゃ兗銈掋亗銇仧銇綅缃伀銉嗐儸銉濄兗銉堛仐銇俱仚锝�"
+    },
+    "teleport": {
+      "invalid_position": "鎸囧畾銇椼仧浣嶇疆銇岀劇鍔广仹銇欍€�",
+      "exists_error": "鎸囧畾銇曘倢銇熴偡銉笺兂銇屽瓨鍦ㄣ仐銇俱仜銈撱€�",
+      "success": "%s 銈� %s銆�%s銆�%s 銇偡銉笺兂 %s 銇儐銉儩銉笺儓銇椼伨銇椼仧銆�",
+      "description": "銉椼儸銈ゃ儰銉笺伄浣嶇疆銈掑鏇淬仚銈�"
+    },
+    "weather": {
+      "success": "澶╂皸ID銈� %s 銇ō瀹氥仐銆佹皸鍊欍偪銈ゃ儣銇� %s 銇с仚銆�",
+      "status": "鐝惧湪銇ぉ姘� ID 銇� %s 銇с€佹皸鍊欍偪銈ゃ儣銇� %s 銇с仚銆�",
+      "description": "澶╁€� ID 銇ㄦ皸鍊欍偪銈ゃ儣銈掑鏇淬仐銇俱仚銆� 澶╂皸 ID 銇�/Resources/ExcelBinOutput/WeatherExcelConfigData.json 銇亗銈娿伨銇欍€俓n姘楀€欍伄绋:sunny, cloudy, rain, thunderstorm, snow, mist"
+    },
+    "ban": {
+      "success": "鎴愬姛",
+      "failure": "澶辨晽銇椼伨銇椼仧銆傘儣銉兗銉ゃ兗銇岃銇ゃ亱銈娿伨銇涖倱銆�",
+      "invalid_time": "銈裤偆銉犮偣銈裤兂銉椼倰瑙f瀽銇с亶銇俱仜銈撱€�",
+      "description": "銉椼儸銈ゃ儰銉笺倰BAN銇欍倠锝�"
+    },
+    "unlockall": {
+      "success": "%s 銇枊銇勩仸銇勩倠銈广儐銉笺偪銈广倰銇欍伖銇︺儹銉冦偗瑙i櫎銇椼伨銇椼仧銆�",
+      "description": "銉椼儸銉笺儰銉笺伄銇欍伖銇︺伄闁嬨亜銇︺亜銈嬨偣銉嗐兗銈裤偣銇儹銉冦偗銈掕В闄ゃ仐銇俱仚銆�"
+    },
+    "unban": {
+      "success": "鎴愬姛",
+      "failure": "澶辨晽銇椼伨銇椼仧銆傘儣銉兗銉ゃ兗銇岃銇ゃ亱銈娿伨銇涖倱銆�",
+      "description": "銉椼儸銈ゃ儰銉笺伄BAN銈掕В闄ゃ仚銈�"
+    }
+  },
+  "gacha": {
+    "details": {
+      "title": "銉愩儕銉笺伄瑭崇窗",
+      "available_five_stars": "鍏ユ墜鍙兘銇槦5銈€偆銉嗐儬",
+      "available_four_stars": "鍏ユ墜鍙兘銇槦4銈€偆銉嗐儬",
+      "available_three_stars": "鍏ユ墜鍙兘銇槦3銈€偆銉嗐儬"
+    },
+    "records": {
+      "title": "銈儊銉e饱姝�",
+      "date": "鏃ヤ粯",
+      "item": "鏅傞枔"
+    }
+  },
+  "documentation": {
+    "handbook": {
+      "title": "馃嚭馃嚫GM Handbook",
+      "title_commands": "銈炽優銉炽儔",
+      "title_avatars": "銈儯銉�",
+      "title_items": "銈€偆銉嗐儬",
+      "title_scenes": "銈枫兗銉�",
+      "title_monsters": "銉€兂銈广偪銉�",
+      "header_id": "馃嚭馃嚫Id",
+      "header_command": "銈炽優銉炽儔",
+      "header_description": "瑾槑",
+      "header_avatar": "銈儯銉�",
+      "header_item": "銈€偆銉嗐儬",
+      "header_scene": "銈枫兗銉�",
+      "header_monster": "銉€兂銈广偪銉�"
+    },
+    "index": {
+      "title": "銉夈偔銉ャ儭銉炽儓",
+      "handbook": "馃嚭馃嚫GM Handbook",
+      "gacha_mapping": "銈儊銉c優銉冦儣 JSON"
+    }
+  },
   "plugin": {
-	  "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
-	  "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
-	  "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
-	  "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
-	  "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
-	  "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
-	  "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
-	  "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
-	  "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
-	  "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
-	  "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
-	  "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
-	  "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
-	  "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
-  }
+    "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
+    "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
+    "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
+    "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
+    "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
+    "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
+    "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
+    "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
+    "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
+    "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
+    "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
+    "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
+    "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
+    "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
   }
-  
\ No newline at end of file
+}
diff --git a/src/main/resources/languages/ko-KR.json b/src/main/resources/languages/ko-KR.json
index 144b9611..06f244c3 100644
--- a/src/main/resources/languages/ko-KR.json
+++ b/src/main/resources/languages/ko-KR.json
@@ -384,19 +384,19 @@
     }
   },
   "plugin": {
-	  "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
-	  "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
-	  "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
-	  "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
-	  "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
-	  "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
-	  "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
-	  "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
-	  "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
-	  "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
-	  "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
-	  "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
-	  "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
-	  "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
+    "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
+    "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
+    "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
+    "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
+    "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
+    "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
+    "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
+    "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
+    "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
+    "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
+    "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
+    "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
+    "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
+    "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
   }
 }
diff --git a/src/main/resources/languages/pl-PL.json b/src/main/resources/languages/pl-PL.json
index c069a637..3b8a1d1d 100644
--- a/src/main/resources/languages/pl-PL.json
+++ b/src/main/resources/languages/pl-PL.json
@@ -384,19 +384,19 @@
     }
   },
   "plugin": {
-	  "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
-	  "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
-	  "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
-	  "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
-	  "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
-	  "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
-	  "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
-	  "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
-	  "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
-	  "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
-	  "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
-	  "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
-	  "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
-	  "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
+    "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
+    "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
+    "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
+    "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
+    "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
+    "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
+    "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
+    "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
+    "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
+    "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
+    "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
+    "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
+    "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
+    "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
   }
 }
diff --git a/src/main/resources/languages/ro-RO.json b/src/main/resources/languages/ro-RO.json
index b982e004..2ccd78c6 100644
--- a/src/main/resources/languages/ro-RO.json
+++ b/src/main/resources/languages/ro-RO.json
@@ -384,19 +384,19 @@
     }
   },
   "plugin": {
-	  "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
-	  "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
-	  "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
-	  "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
-	  "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
-	  "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
-	  "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
-	  "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
-	  "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
-	  "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
-	  "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
-	  "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
-	  "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
-	  "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
+    "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
+    "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
+    "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
+    "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
+    "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
+    "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
+    "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
+    "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
+    "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
+    "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
+    "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
+    "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
+    "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
+    "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
   }
 }
diff --git a/src/main/resources/languages/ru-RU.json b/src/main/resources/languages/ru-RU.json
index 35b3caa6..ea6c396a 100644
--- a/src/main/resources/languages/ru-RU.json
+++ b/src/main/resources/languages/ru-RU.json
@@ -384,19 +384,19 @@
     }
   },
   "plugin": {
-	  "directory_failed": "袨褕懈斜泻邪 褋芯蟹写邪薪懈褟 写懈褉械泻褌芯褉懈懈 锌谢邪谐懈薪芯胁: ",
-	  "unable_to_load": "袧械胁芯蟹屑芯卸薪芯 蟹邪谐褉褍写懈褌褜 锌谢邪谐懈薪.",
-	  "invalid_config": "袩谢邪谐懈薪 %s 懈屑械械褌 薪械写芯锌褍褋褌懈屑褘泄 褎邪泄谢 泻芯薪褎懈谐褍褉邪褑懈懈.",
-	  "invalid_main_class": "袩谢邪谐懈薪 %s 懈屑械械褌 薪械胁械褉薪褘泄 谐谢邪胁薪褘泄 泻谢邪褋褋.",
-	  "missing_config": "袩谢邪谐懈薪 %s 薪械 懈屑械械褌 泻芯褉褉械泻褌薪芯谐芯 褎邪泄谢邪 泻芯薪褎懈谐褍褉邪褑懈懈.",
-	  "failed_to_load_plugin": "袨褕懈斜泻邪 蟹邪谐褉褍蟹泻懈 锌谢邪谐懈薪邪: %s",
-	  "failed_to_load": "袧械 褍写邪谢芯褋褜 蟹邪谐褉褍蟹懈褌褜 袩谢邪谐懈薪.",
-	  "failed_to_load_dependencies": "袧械 褍写邪谢芯褋褜 蟹邪谐褉褍蟹懈褌褜蟹邪胁懈褋懈屑芯褋褌懈 袩谢邪谐懈薪邪.",
-	  "loading_plugin": "袟邪谐褉褍蟹泻邪 袩谢邪谐懈薪邪: %s",
-	  "failed_add_id": "袨褕懈斜泻邪 锌褉懈褋胁芯械薪懈褟 懈写械薪褌懈褎懈泻邪褌芯褉邪 袩谢邪谐懈薪褍: %s",
-	  "enabling_plugin": "袙泻谢褞褔邪械屑 袩谢邪谐懈薪: %s",
-	  "enabling_failed": "袨褕懈斜泻邪 胁泻谢褞褔械薪懈褟 袩谢邪谐懈薪邪: %s",
-	  "disabling_plugin": "袨褌泻谢褞褔邪械屑 袩谢邪谐懈薪: %s",
-	  "disabling_failed": "袨褕懈斜泻邪 芯褌泻谢褞褔械薪懈褟 袩谢邪谐懈薪邪: %s"
+    "directory_failed": "袨褕懈斜泻邪 褋芯蟹写邪薪懈褟 写懈褉械泻褌芯褉懈懈 锌谢邪谐懈薪芯胁: ",
+    "unable_to_load": "袧械胁芯蟹屑芯卸薪芯 蟹邪谐褉褍写懈褌褜 锌谢邪谐懈薪.",
+    "invalid_config": "袩谢邪谐懈薪 %s 懈屑械械褌 薪械写芯锌褍褋褌懈屑褘泄 褎邪泄谢 泻芯薪褎懈谐褍褉邪褑懈懈.",
+    "invalid_main_class": "袩谢邪谐懈薪 %s 懈屑械械褌 薪械胁械褉薪褘泄 谐谢邪胁薪褘泄 泻谢邪褋褋.",
+    "missing_config": "袩谢邪谐懈薪 %s 薪械 懈屑械械褌 泻芯褉褉械泻褌薪芯谐芯 褎邪泄谢邪 泻芯薪褎懈谐褍褉邪褑懈懈.",
+    "failed_to_load_plugin": "袨褕懈斜泻邪 蟹邪谐褉褍蟹泻懈 锌谢邪谐懈薪邪: %s",
+    "failed_to_load": "袧械 褍写邪谢芯褋褜 蟹邪谐褉褍蟹懈褌褜 袩谢邪谐懈薪.",
+    "failed_to_load_dependencies": "袧械 褍写邪谢芯褋褜 蟹邪谐褉褍蟹懈褌褜蟹邪胁懈褋懈屑芯褋褌懈 袩谢邪谐懈薪邪.",
+    "loading_plugin": "袟邪谐褉褍蟹泻邪 袩谢邪谐懈薪邪: %s",
+    "failed_add_id": "袨褕懈斜泻邪 锌褉懈褋胁芯械薪懈褟 懈写械薪褌懈褎懈泻邪褌芯褉邪 袩谢邪谐懈薪褍: %s",
+    "enabling_plugin": "袙泻谢褞褔邪械屑 袩谢邪谐懈薪: %s",
+    "enabling_failed": "袨褕懈斜泻邪 胁泻谢褞褔械薪懈褟 袩谢邪谐懈薪邪: %s",
+    "disabling_plugin": "袨褌泻谢褞褔邪械屑 袩谢邪谐懈薪: %s",
+    "disabling_failed": "袨褕懈斜泻邪 芯褌泻谢褞褔械薪懈褟 袩谢邪谐懈薪邪: %s"
   }
 }
diff --git a/src/main/resources/languages/zh-CN.json b/src/main/resources/languages/zh-CN.json
index d53acba6..1362d06f 100644
--- a/src/main/resources/languages/zh-CN.json
+++ b/src/main/resources/languages/zh-CN.json
@@ -384,19 +384,19 @@
     }
   },
   "plugin": {
-	  "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
-	  "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
-	  "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
-	  "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
-	  "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
-	  "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
-	  "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
-	  "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
-	  "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
-	  "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
-	  "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
-	  "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
-	  "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
-	  "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
+    "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
+    "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
+    "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
+    "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
+    "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
+    "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
+    "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
+    "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
+    "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
+    "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
+    "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
+    "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
+    "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
+    "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
   }
 }
diff --git a/src/main/resources/languages/zh-TW.json b/src/main/resources/languages/zh-TW.json
index 88ba532b..365de4da 100644
--- a/src/main/resources/languages/zh-TW.json
+++ b/src/main/resources/languages/zh-TW.json
@@ -384,19 +384,19 @@
     }
   },
   "plugin": {
-	  "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
-	  "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
-	  "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
-	  "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
-	  "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
-	  "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
-	  "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
-	  "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
-	  "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
-	  "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
-	  "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
-	  "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
-	  "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
-	  "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
+    "directory_failed": "馃嚭馃嚫Failed to create plugins directory: ",
+    "unable_to_load": "馃嚭馃嚫Unable to load plugin.",
+    "invalid_config": "馃嚭馃嚫Plugin %s has an invalid config file.",
+    "invalid_main_class": "馃嚭馃嚫Plugin %s has an invalid main class.",
+    "missing_config": "馃嚭馃嚫Plugin %s lacks a valid config file.",
+    "failed_to_load_plugin": "馃嚭馃嚫Failed to load plugin: %s",
+    "failed_to_load": "馃嚭馃嚫Failed to load a plugin.",
+    "failed_to_load_dependencies": "馃嚭馃嚫Failed to load plugins with dependencies.",
+    "loading_plugin": "馃嚭馃嚫Loading plugin: %s",
+    "failed_add_id": "馃嚭馃嚫Failed to add plugin identifier: %s",
+    "enabling_plugin": "馃嚭馃嚫Enabling plugin: %s",
+    "enabling_failed": "馃嚭馃嚫Failed to enable plugin: %s",
+    "disabling_plugin": "馃嚭馃嚫Disabling plugin: %s",
+    "disabling_failed": "馃嚭馃嚫Failed to disable plugin: %s"
   }
 }
-- 
GitLab