From 9768fc845a709309c555f493f79c4d8b033d8f08 Mon Sep 17 00:00:00 2001
From: Kei-Luna <103105351+Kei-Luna@users.noreply.github.com>
Date: Fri, 26 Aug 2022 14:58:10 +0900
Subject: [PATCH] Jp support (#1712)

Original commits:
* Add files via upload

* Update README_jp-JP.md

* Update README_jp-JP.md

* Update README_jp-JP.md

* Update README_jp-JP.md

* Add files via upload

* Update and rename README_jp-JP.md to README_ja-JP.md

* Update README.md

* Update README_HE.md

* Apply suggestions from code review
---
 README.md                               |   2 +-
 README_HE.md                            |   2 +-
 README_es-ES.md                         |   2 +-
 README_fil-PH.md                        |   2 +-
 README_fr-FR.md                         |   2 +-
 README_id-ID.md                         |   2 +-
 README_ja-JP.md                         | 108 +++++++
 README_ko-KR.md                         |   2 +-
 README_pl-PL.md                         |   2 +-
 README_ru-RU.md                         |   2 +-
 README_zh-CN.md                         |   2 +-
 README_zh-TW.md                         |   2 +-
 src/main/resources/languages/jp-JP.json | 387 ++++++++++++++++++++++++
 13 files changed, 506 insertions(+), 11 deletions(-)
 create mode 100644 README_ja-JP.md
 create mode 100644 src/main/resources/languages/jp-JP.json

diff --git a/README.md b/README.md
index 8fd0b210..39000174 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-EN | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md)
+EN | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **Attention:** We always welcome contributors to the project. Before adding your contribution, please carefully read our [Code of Conduct](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
 
diff --git a/README_HE.md b/README_HE.md
index 95767227..2d804cca 100644
--- a/README_HE.md
+++ b/README_HE.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | HE | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | HE | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **转砖讜诪转 诇讘 讘讘拽砖讛:** 讗谞讞谞讜 诪拽讘诇讬诐 注讝专讛 讘驻讬转讜讞 讛转讜讻谞讛. 诇驻谞讬 砖讗转诐 转讜专诪讬诐 诇驻专讜讬拽讟 讘讘拽砖讛 转拽专讗讜 讗转 [转谞讗讬 讛砖讬诪讜砖](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
 
diff --git a/README_es-ES.md b/README_es-ES.md
index 5121f67a..ee735aac 100644
--- a/README_es-ES.md
+++ b/README_es-ES.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | ES | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | ES | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **Atenci贸n:** Siempre damos la bienvenida a contribuidores del proyecto. Antes de a帽adir tu contribuci贸n, por favor lee cuidadosamente nuestro [C贸digo de conducta](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
 
diff --git a/README_fil-PH.md b/README_fil-PH.md
index d15c923c..fdd4f91a 100644
--- a/README_fil-PH.md
+++ b/README_fil-PH.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-EN | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | FIL/PH
+EN | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | FIL/PH | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **Atensyon:** Ang mga kontributor ay laging welcome sa proyektong ito. Bago mag-bigay ng kontribusyon, basahin muna ng mabuti ang [Code of Conduct](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md). 
 
diff --git a/README_fr-FR.md b/README_fr-FR.md
index 32c9944f..6d6e76b6 100644
--- a/README_fr-FR.md
+++ b/README_fr-FR.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | FR | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | FR | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **Attention:** De nouveaux contributeurs sont toujours les bienvenus. Avant d'ajouter votre contribution, veuillez lire le [code de conduite](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
 
diff --git a/README_id-ID.md b/README_id-ID.md
index b6c4bc71..c24e6c40 100644
--- a/README_id-ID.md
+++ b/README_id-ID.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | ID | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | ID | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **Perhatian:** Kami selalu menyambut kontributor untuk proyek ini. Sebelum menambahkan kontribusi Anda, harap baca [Kode Etik](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md) kami.
 
diff --git a/README_ja-JP.md b/README_ja-JP.md
new file mode 100644
index 00000000..3d299b11
--- /dev/null
+++ b/README_ja-JP.md
@@ -0,0 +1,108 @@
+![Grasscutter](https://socialify.git.ci/Grasscutters/Grasscutter/image?description=1&forks=1&issues=1&language=1&logo=https%3A%2F%2Fs2.loli.net%2F2022%2F04%2F25%2FxOiJn7lCdcT5Mw1.png&name=1&owner=1&pulls=1&stargazers=1&theme=Light)
+<div align="center"><img alt="Documentation" src="https://img.shields.io/badge/Wiki-Grasscutter-blue?style=for-the-badge&link=https://github.com/Grasscutters/Grasscutter/wiki&link=https://github.com/Grasscutters/Grasscutter/wiki"> <img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/Grasscutters/Grasscutter?logo=java&style=for-the-badge"> <img alt="GitHub" src="https://img.shields.io/github/license/Grasscutters/Grasscutter?style=for-the-badge"> <img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/Grasscutters/Grasscutter?style=for-the-badge"> <img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/Grasscutters/Grasscutter/Build?logo=github&style=for-the-badge"></div>
+
+<div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
+
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | JP
+
+
+**锛�:** 绉併仧銇°伅銉椼儹銈搞偋銈儓銇搞伄璨㈢尞鑰呫倰銇勩仱銇с倐姝撹繋銇椼伨銇欍€� 璨㈢尞銈掕拷鍔犮仚銈嬪墠銇饯鎴戙€呫伄 [琛屽嫊瑕忕瘎](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)銈掋倛銇忋亰瑾伩銇忋仩銇曘亜.
+
+## 鐝惧湪姗熻兘銇椼仸銇勩倠鐗�
+
+* 銉偘銈ゃ兂
+* 鎴﹂棙
+* 銉曘儸銉炽儔銉偣銉�
+* 銉嗐儸銉濄兗銉�
+* 绁堥(銈儊銉�)
+* 銉炪儷銉併儣銉偆銇竴閮ㄦ鑳姐仐銇︺亜銇俱仚
+* 銈炽兂銈姐兗銉倰浣跨敤銇椼仸銉€兂銈广偪銉笺倰銈广儩銉笺兂銇曘仜銈�
+* 銈ゃ兂銉欍兂銉堛儶姗熻兘 (銈€偆銉嗐儬/銈儯銉┿偗銈裤兗銇彈銇戝彇銈婏饯銈€偆銉嗐儬/銈儯銉┿偗銈裤兗銇偄銉冦儣銈般儸銉笺儔銇仼)
+
+## 銈偆銉冦偗銈汇儍銉堛偄銉冦儣銈偆銉�
+
+**锛�:** 銈点儩銉笺儓銇屽繀瑕併仾鍫村悎銇疓rasscutter銇甗Discord](https://discord.gg/T5vZU6UyeG)銇弬鍔犮仐銇︺亸銇犮仌銇�.
+
+### 鍕曚綔鐠板
+
+* [JAVA銇儛銉笺偢銉с兂17浠ラ檷](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
+
+  **锛�:** 銈点兗銉愩兗銈掑嫊浣溿仌銇涖倠銇犮亼銇倝jre銇伩銇у崄鍒嗐仹銇欙健 闁嬬櫤銈掋仐銇熴亜鍫村悎JDK銇屽繀瑕併伀銇倠銇嬨倐銇椼倢銇俱仜銈擄健
+
+* [MongoDB](https://www.mongodb.com/try/download/community) (銉愩兗銈搞儳銉�4.0浠ラ檷銈掓帹濂�)
+
+* 銉椼儹銈偡銉勩兗銉�: [mitmproxy](https://mitmproxy.org/) (mitmdump, 鎺ㄥエ)锝� [Fiddler Classic](https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe)锝� 銇濄伄浠栵健
+
+### 璧峰嫊鏂规硶
+
+**锛�:** 銈傘仐銈点兗銉愩兗銈掋偄銉冦儣銉囥兗銉堛仐銇熴亜鍫村悎銇痐config.json`銈掑墛闄ゃ仐銇︺亱銈夊啀鐢熸垚銇椼仸銇忋仩銇曘亜锝�
+
+1. `grasscutter.jar`銈掑叆鎵嬨仚銈�
+   - [action](https://github.com/Grasscutters/Grasscutter/actions) 銇嬨倝銉€銈︺兂銉兗銉夈仚銈嬨亱 [鑷垎銇с儞銉儔](https://github.com/Grasscutters/Grasscutter#building)銇椼仸銇忋仩銇曘亜锝�
+2. `grasscutter.jar` 銇屻亗銈嬨儑銈c儸銈儓銉伀 `resources` 銉曘偐銉儉銉笺倰浣滄垚銇椼仢銇撱伀 `BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap` 銈掔Щ鍕曘仐銇︺亸銇犮仌銇� *(`resources` 銉曘偐銉儉銇腑韬伄鍏ユ墜鏂规硶銇仱銇勩仸銇� [wiki](https://github.com/Grasscutters/Grasscutter/wiki) 銈掑弬鐓с仐銇︺亸銇犮仌銇�.)*
+3. 銈炽優銉炽儔銉椼儹銉炽儣銉堛伀`java -jar grasscutter.jar`銈掑叆鍔涖仐Grasscutter銈掕捣鍕曘仐銇︺亸銇犮仌銇勶健 **銇撱伄銇ㄣ亶MongoDB銈傚疅琛屻仚銈嬪繀瑕併亴銇傘倞銇俱仚锝�**
+
+### 銈儵銈ゃ偄銉炽儓銇ㄣ伄鎺ョ稓
+
+陆. [銈点兗銉愩兗銈炽兂銈姐兗銉偝銉炪兂銉塢(https://github.com/Grasscutters/Grasscutter/wiki/Commands#targeting)銈掍娇鐢ㄣ仐銇︺偄銈偊銉炽儓銈掍綔鎴愩仐銇︺亸銇犮仌銇勶健
+
+1. 閫氫俊鍐呭銈掋儶銉€銈ゃ儸銈儓銇欍倠: (銇┿仭銈夈亱涓€銇ゃ倰閬告姙銇椼仸銇忋仩銇曘亜)
+    - mitmdump: `mitmdump -s proxy.py -k`
+
+    CA瑷兼槑鏇搞倰淇¢牸銇欍倠:
+
+      鈥�	**锛�:** CA瑷兼槑鏇搞伅`%USERPROFILE%\.mitmproxy`銇繚瀛樸仌銈屻仸銇勩倠銇嬶饯`http://mitm.it`銇嬨倝銉€銈︺兂銉兗銉夈仹銇嶃伨銇欙健
+
+      鈥�	銉€銉栥儷銈儶銉冦偗銇椼仸[銈ゃ兂銈广儓銉笺儷](https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate#installing-a-trusted-root-certificate)銇欍倠銇�...
+
+      - 銈炽優銉炽儔銉┿偆銉崇祵鐢便仹銈ゃ兂銈广儓銉笺儷銇椼伨銇�
+
+        ```shell
+        certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
+        ```
+
+    - Fiddler Classic: Fiddler Classic銈掕捣鍕曘仐瑷畾銇嬨倝`Decrypt https traffic`銈掋偑銉炽伀銇椼仸銇忋仩銇曘亜锝� (Tools -> Options -> Connections) 銇湁銈嬨儩銉笺儓鐣彿銇ō瀹氥倰`8888`浠ュ銇ō瀹氥仐銇︺亸銇犮仌銇勶饯銇濄伄寰屻亾銇甗銈广偗銉儣銉圿(https://github.com/Grasscutters/Grasscutter/wiki/Resources#fiddler-classic-jscript)銈掋儹銉笺儔銇椼伨銇欙健
+
+    - [銉涖偣銉堛儠銈°偆銉玗(https://github.com/Grasscutters/Grasscutter/wiki/Resources#hosts-file)
+
+2. 銉嶃儍銉堛儻銉笺偗銉椼儹銈偡銈� `127.0.0.1:(鑷垎銇цō瀹氥仐銇熴儩銉笺儓鐣彿)` 銇ō瀹氥仐銇︺亸銇犮仌銇勶健
+
+**`start_config.cmd`銇AVA銇儜銈广倰鎸囧畾銇椼仸銇勩倠蹇呰銇屻亗銈娿伨銇欙健   `start.cmd`銇itmdump銇ㄣ偟銉笺儛銉笺倰銇俱仺銈併仸璧峰嫊銇欍倠銇撱仺銇屽嚭鏉ャ伨銇欙健**
+
+### 銉撱儷銉�
+
+Grasscutter銇疓radle銈掍娇鐢ㄣ仐銇︿緷瀛橀枹淇傘仺銉撱儷銉夈倰鍑︾悊銇椼仸銇勩伨銇欍€�
+
+**瑕佷欢:**
+
+- [Java SE 闁嬬櫤銈儍銉� - 17浠ラ檷](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
+- [Git](https://git-scm.com/downloads)
+
+##### Windows
+
+```shell
+git clone https://github.com/Grasscutters/Grasscutter.git
+cd Grasscutter
+.\gradlew.bat # 銈炽兂銉戙偆銉挵澧冦伄妲嬬瘔
+.\gradlew jar # 銈炽兂銉戙偆銉�
+```
+
+##### Linux
+
+```bash
+git clone https://github.com/Grasscutters/Grasscutter.git
+cd Grasscutter
+chmod +x gradlew
+./gradlew jar # 銈炽兂銉戙偆銉�
+```
+
+銈炽兂銉戙偆銉仌銈屻仧jar銉曘偂銈ゃ儷銇儣銉偧銈儓銉曘偐銉儉銉笺伄銉兗銉堛伀鏈夈倞銇俱仚锝�
+
+### 銈炽優銉炽儔銉偣銉堛伅[wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)銇哥Щ鍕曘仐銇俱仐銇燂健
+
+# 銉堛儵銉栥儷銈枫儱銉笺儐銈c兂銈�
+
+* 銈炽兂銉戙偆銉亴澶辨晽銇椼仧鍫村悎JDK銇屻偆銉炽偣銉堛兗銉仌銈屻仸銇勩倠銇嬬⒑瑾嶃仐銇︺亸銇犮仌銇� (JDK銇�17浠ラ檷銇ㄧ挵澧冨鏁般仹JAVA銇儜銈广亴瑷畾銇曘倢銇︺亜銈嬪繀瑕併亴銇傘倞銇俱仚)
+* 銈儵銈ゃ偄銉炽儓銇屾帴缍氥仹銇嶃仾銇勶饯 銉偘銈ゃ兂銇с亶銇亜锝� 銈ㄣ儵銉笺偝銉笺儔4206锝� 銇濄伄浠�... - 銇汇仺銈撱仼銇牬鍚堛€併儣銉偔銈� 銉囥兗銉€兂銇ō瀹氥亴鍟忛銇с仚銆�
+  Fiddler銈掍娇鐢ㄣ仐銇︺亜銈嬪牬鍚堛伅銉濄兗銉堛亴8888浠ュ銇ō瀹氥仌銈屻仸銇勩倠銇撱仺銈掔⒑瑾嶃仐銇︺亸銇犮仌銇勶健
+* 璧峰嫊銈枫兗銈便兂銈�(闋嗙暘): MongoDB > Grasscutter > 銉椼儹銈偡銉勩兗銉� (mitmdump銇媐iddler锝ゃ仢銇粬) > 銈层兗銉�
diff --git a/README_ko-KR.md b/README_ko-KR.md
index 83873ffa..6611a0a2 100644
--- a/README_ko-KR.md
+++ b/README_ko-KR.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | KR | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | KR | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **欤检潣 :** 鞖半Μ電� 頃儊 頂勲鞝濏姼鞐� 旮办棳頃橂姅 靷瀸霌れ潉 頇橃榿頃╇媹雼�. 旮办棳毳� 頃橁赴 鞝�, [頄夒彊 歆€旃╙(https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)鞚� 欤检潣 旯婈矊 鞚届柎欤检劯鞖�.
 
diff --git a/README_pl-PL.md b/README_pl-PL.md
index bd51d217..e5a431ec 100644
--- a/README_pl-PL.md
+++ b/README_pl-PL.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | PL | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | PL | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **Uwaga:** Zawsze jeste艣my otwarci na wasz wk艂ad w projekt. Przed zaproponowaniem zmian przeczytaj [zasady post臋powania (ENG)](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
 
diff --git a/README_ru-RU.md b/README_ru-RU.md
index 3f0bd4a0..a110d066 100644
--- a/README_ru-RU.md
+++ b/README_ru-RU.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [HE](README_HE.md) | RU | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [HE](README_HE.md) | RU | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **袙薪懈屑邪薪懈械:** 袦褘 胁褋械谐写邪 褉邪写褘 薪芯胁芯屑褍 胁泻谢邪写褍 胁 锌褉芯械泻褌. 袨写薪邪泻芯, 锌械褉械写 褌械屑, 泻邪泻 褋写械谢邪褌褜 褋胁芯泄 胁泻谢邪写, 锌芯卸邪谢褍泄褋褌邪, 锌褉芯褔褌懈褌械 薪邪褕 [泻芯写械泻褋 写械谢芯胁芯谐芯 锌芯胁械写械薪懈褟](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
 
diff --git a/README_zh-CN.md b/README_zh-CN.md
index 7ad4ab87..5d7b7474 100644
--- a/README_zh-CN.md
+++ b/README_zh-CN.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | 绠€涓� | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md)  | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | 绠€涓� | [绻佷腑](README_zh-TW.md) | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md)  | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **璇锋敞鎰�:** 娆㈣繋鎴愪负鏈」鐩殑璐$尞鑰呫€備絾鍦ㄦ彁浜� PR 涔嬪墠, 璇蜂粩缁嗛槄璇� [浠g爜瑙勮寖](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)銆�
 
diff --git a/README_zh-TW.md b/README_zh-TW.md
index d3b1d705..c6bd3f78 100644
--- a/README_zh-TW.md
+++ b/README_zh-TW.md
@@ -3,7 +3,7 @@
 
 <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
 
-[EN](README.md) | [绠€涓璢(README_zh-CN.md) | 绻佷腑 | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md)
+[EN](README.md) | [绠€涓璢(README_zh-CN.md) | 绻佷腑 | [FR](README_fr-FR.md) | [ES](README_es-ES.md) | [HE](README_HE.md) | [RU](README_ru-RU.md) | [PL](README_pl-PL.md) | [ID](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_jp-JP.md)
 
 **璜嬫敞鎰�:** 姝¤繋鎴愮偤鏈皥妗堢殑璨㈢嵒鑰呫€傚湪鎻愪氦 PR 涔嬪墠, 璜嬩粩绱伴柋璁€[绋嬪紡纰艰绡刔(https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)銆�
 
diff --git a/src/main/resources/languages/jp-JP.json b/src/main/resources/languages/jp-JP.json
new file mode 100644
index 00000000..85385642
--- /dev/null
+++ b/src/main/resources/languages/jp-JP.json
@@ -0,0 +1,387 @@
+{
+    "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銉曘偂銈ゃ儷銇儹銉笺儔銇屽畬浜嗭健"
+        }
+      }
+    },
+    "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"
+      }
+    }
+  }
+  
\ No newline at end of file
-- 
GitLab