From 1e932ce1448e91c69fa3d1231ee1c5a2bc0566bb Mon Sep 17 00:00:00 2001
From: Sinon <34333654+Catta1997@users.noreply.github.com>
Date: Sun, 20 Nov 2022 13:15:43 +0100
Subject: [PATCH] added IT redeirect on all ReadME and typo fix (#1954)

* Added it-IT translaton

* added Italian readme

* readme redirect

add "it-IT" redirect on all readme

* added "it-IT" redirect on README.md

* Add files via upload

* added it to jp readme

* fix

* fix whitspasces

(vscode)
---
 README.md                               |   2 +-
 README_HE.md                            |   2 +-
 README_NL.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                         |   2 +-
 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/it-IT.json | 786 ++++++++++++------------
 14 files changed, 406 insertions(+), 406 deletions(-)

diff --git a/README.md b/README.md
index 5acbf224..a17abef6 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.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](README_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.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 44a792c2..e3a830c8 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](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_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.md)
 
 **转砖讜诪转 诇讘 讘讘拽砖讛:** 讗谞讞谞讜 诪拽讘诇讬诐 注讝专讛 讘驻讬转讜讞 讛转讜讻谞讛. 诇驻谞讬 砖讗转诐 转讜专诪讬诐 诇驻专讜讬拽讟 讘讘拽砖讛 转拽专讗讜 讗转 [转谞讗讬 讛砖讬诪讜砖](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
 
diff --git a/README_NL.md b/README_NL.md
index 69d8a1d7..92cf0bcd 100644
--- a/README_NL.md
+++ b/README_NL.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.md)
 
 **Aantekening:** We verwelkomen altijd bijdragers aan het project. Lees onze [Gedragscode](https://github.com/Grasscutters/Grasscutter/blob/development/README_NL.md#bijdragen-aan-het-project) zorgvuldig door voordat u uw bijdrage toevoegt.
 
diff --git a/README_es-ES.md b/README_es-ES.md
index 73f18b71..98d4a9e7 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](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_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.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 735a097b..83113280 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.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](README_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.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 c03b7ed3..74c20bc3 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](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_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.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 703d3361..80ee2819 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](README_id-ID.md) | [KR](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.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
index fe709d5d..95b1d9a3 100644
--- a/README_ja-JP.md
+++ b/README_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.md)
 
 
 **锛�:** 绉併仧銇°伅銉椼儹銈搞偋銈儓銇搞伄璨㈢尞鑰呫倰銇勩仱銇с倐姝撹繋銇椼伨銇欍€傝并鐚倰杩藉姞銇欍倠鍓嶃伀銆佹垜銆呫伄 [琛屽嫊瑕忕瘎](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)銈掋倛銇忋亰瑾伩銇忋仩銇曘亜銆�
diff --git a/README_ko-KR.md b/README_ko-KR.md
index 09efe023..b5c2265f 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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.md)
 
 **欤检潣 :** 鞖半Μ電� 頃儊 頂勲鞝濏姼鞐� 旮办棳頃橂姅 靷瀸霌れ潉 頇橃榿頃╇媹雼�. 旮办棳毳� 頃橁赴 鞝�, [頄夒彊 歆€旃╙(https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)鞚� 欤检潣 旯婈矊 鞚届柎欤检劯鞖�.
 
diff --git a/README_pl-PL.md b/README_pl-PL.md
index f6c873d7..55b2c072 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](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_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.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 eff32ebf..3ffa79c1 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) | [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_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.md)
 
 **袙薪懈屑邪薪懈械:** 袦褘 胁褋械谐写邪 褉邪写褘 薪芯胁芯屑褍 胁泻谢邪写褍 胁 锌褉芯械泻褌. 袨写薪邪泻芯, 锌械褉械写 褌械屑, 泻邪泻 褋写械谢邪褌褜 褋胁芯泄 胁泻谢邪写, 锌芯卸邪谢褍泄褋褌邪, 锌褉芯褔褌懈褌械 薪邪褕 [泻芯写械泻褋 写械谢芯胁芯谐芯 锌芯胁械写械薪懈褟](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
 
diff --git a/README_zh-CN.md b/README_zh-CN.md
index 4f2701e1..fa91a042 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-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_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.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 ddf38574..e0d73bee 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) | [绻佷腑](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_ja-JP.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](README_ko-KR.md) | [FIL/PH](README_fil-PH.md) | [NL](README_NL.md) | [JP](README_ja-JP.md) | [IT](README_it-IT.md)
 
 **璜嬫敞鎰�:** 姝¤繋鎴愮偤鏈皥妗堢殑璨㈢嵒鑰呫€傚湪鎻愪氦 PR 涔嬪墠, 璜嬩粩绱伴柋璁€[绋嬪紡纰艰绡刔(https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md)銆�
 
diff --git a/src/main/resources/languages/it-IT.json b/src/main/resources/languages/it-IT.json
index 535f045b..3075bd9a 100644
--- a/src/main/resources/languages/it-IT.json
+++ b/src/main/resources/languages/it-IT.json
@@ -1,402 +1,402 @@
 {
-    "messages": {
-      "game": {
-        "address_bind": "Server di gioco avviato su \u001B[1m\u001B[33m%s:%s\u001B[0m",
-        "port_bind": "Server di gioco avviato sulla porta %s",
-        "connect": "Client connesso da %s",
-        "disconnect": "Client disconnesso da %s",
-        "game_update_error": "Si 猫 verificato un errore durante l'aggiornamento del gioco.",
-        "command_error": "Errore comando:"
-      },
-      "dispatch": {
-        "address_bind": "[Dispatch] Dispatch server avviato su \u001B[1m\u001B[33m%s:%s\u001B[0m",
-        "port_bind": "[Dispatch] Dispatch server avviato sulla porta %s",
-        "request": "[Dispatch] Client %s %s richiesta: %s",
-        "keystore": {
-          "general_error": "[Dispatch] Errore nel caricamento di keystore!",
-          "password_error": "[Dispatch] Impossibile caricare il keystore. Provando passwrd di default keystore...",
-          "no_keystore_error": "[Dispatch] Nessun cert SSL trovato! Ritorno ad un server HTTP.",
-          "default_password": "[Dispatch] La password di default del keystore 猫 stata caricata con successo. Considera di impostare la password a 123456 in config.json."
-        },
-        "authentication": {
-          "default_unable_to_verify": "[Authentication] [Autenticazione] Qualcosa ha chiamato metodo VerifyUser che non 猫 disponibile nel gestore di autenticazione predefinito.",
-        "no_commands_error": "I comandi non sono supportati in modalit脿 solo dispatch.",
-        "unhandled_request_error": "[Dispatch] Potenziali %s richieste non gestite: %s.",
-        "account": {
-          "login_attempt": "[Dispatch] Il client %s sta provando a fare il login.",
-          "login_success": "[Dispatch] Client %s loggato come %s.",
-          "login_max_player_limit": "[Dispatch] Client %s non 猫 riuscito ad accedere: Il numero di giocatori online ha raggiunto il limite",
-          "login_token_attempt": "[Dispatch] Il client %s sta tentando di accedere tramite token.",
-          "login_token_error": "[Dispatch] Client %s non 猫 riuscito ad accedere tramite token.",
-          "login_token_success": "[Dispatch] Client %s ha effettuato l'accesso tramite token come %s.",
-          "login_password_error": "[Dispatch] Client %s non 猫 riuscito ad accedere tramite password.",
-          "login_password_storage_error": "[Dispatch] Client %s non 猫 riuscito ad accedere tramite password perch茅 non c'猫 password nel database.",
-          "combo_token_success": "[Dispatch] Il client %s 猫 riuscito a scambiare il token combinato.",
-          "combo_token_error": "Il client [Dispatch] %s non 猫 riuscito a scambiare il token combinato.",
-          "account_login_create_success": "[Dispatch] Client %s non 猫 riuscito ad accedere: Account %s creato.",
-          "account_login_create_error": "[Dispatch] Client %s non 猫 riuscito ad accedere: Creazione account non riuscita.",
-          "account_login_exist_error": "[Dispatch] Client %s non 猫 riuscito ad accedere: Account non trovato.",
-          "account_cache_error": "Errore di informazioni sulla cache dell'account di gioco.",
-          "session_key_error": "Chiave di sessione errata.",
-          "username_error": "Nome utente non trovato.",
-          "username_create_error": "Nome utente non trovato, creazione non riuscita.",
-          "password_error": "Password non valida",
-          "password_length_error": "La lunghezza della password deve essere maggiore o uguale a 8",
-          "password_storage_error": "Non hai una password per il tuo account. Contatta un amministratore.",
-          "server_max_player_limit": "Il numero di giocatori online ha raggiunto il limite"
-        },
-        "router_error": "[Invio] Impossibile collegare il router."
-      },
-      "status": {
-        "free_software": "Grasscutter 猫 un software GRATUITO. Se hai pagato per questo, potresti essere stato truffato. Homepage: https://github.com/Grasscutters/Grasscutter",
-        "starting": "Avvio dei Grasscutter...",
-        "shutdown": "Chiusura in corso...",
-        "done": "Fatto! Per aiuto, digita \"help\"",
-        "error": "Si 猫 verificato un errore.",
-        "welcome": "Benvenuto in Grasscutter!",
-        "run_mode_error": "Modalit脿 di esecuzione del server non valida: %s.",
-        "run_mode_help": "La modalit脿 di esecuzione del server deve essere 'HYBRID', 'DISPATCH_ONLY' o 'GAME_ONLY'. Impossibile avviare Grasscutter...",
-        "create_resources": "Creazione cartella risorse...",
-        "resources_error": "Inserisci una copia di 'BinOutput' e 'ExcelBinOutput' nella cartella delle risorse.",
-        "version": "Versione Grassscutter: %s-%s",
-        "game_version": "Versione del gioco: %s",
-        "resources": {
-          "loading": "Caricamento risorse...",
-          "finish": "Terminato il caricamento delle risorse."
-        }
-      }
+  "messages": {
+    "game": {
+      "address_bind": "Server di gioco avviato su \u001B[1m\u001B[33m%s:%s\u001B[0m",
+      "port_bind": "Server di gioco avviato sulla porta %s",
+      "connect": "Client connesso da %s",
+      "disconnect": "Client disconnesso da %s",
+      "game_update_error": "Si 猫 verificato un errore durante l'aggiornamento del gioco.",
+      "command_error": "Errore comando:"
     },
-    "commands": {
-      "generic": {
-        "not_specified": "Nessun comando specificato.",
-        "unknown_command": "Comando sconosciuto: %s",
-        "permission_error": "Non hai il permesso per eseguire questo comando.",
-        "console_execute_error": "Questo comando pu貌 essere eseguito solo dalla console.",
-        "player_execute_error": "Esegui questo comando nel gioco.",
-        "command_exist_error": "Nessun comando trovato.",
-        "no_usage_specified": "Nessun utilizzo specificato",
-        "no_description_specified": "Nessuna descrizione specificata",
-        "set_to": "%s impostato su %s.",
-        "set_for_to": "%s per %s impostato su %s.",
-        "invalid": {
-        "amount": "Importo non valido.",
-        "artifactId": "ID artefatto non valido.",
-        "avatarId": "ID avatar non valido.",
-        "avatarLevel": "Livello avatar non valido.",
-        "entityId": "ID entit脿 non valido.",
-        "itemId": "ID articolo non valido.",
-        "itemLevel": "ItemLevel non valido.",
-        "itemRefinement": "Raffinamento articolo non valido.",
-        "statValue": "Valore statistica non valido.",
-        "value_between": "Valore non valido: %s deve essere compreso tra %s e %s.",
-        "playerId": "ID giocatore non valido.",
-        "uid": "UID non valido.",
-        "id": "ID non valido."
-        }
-      },
-      "execution": {
-        "usage_prefix": "Utilizzo: ",
-        "player_exist_error": "Giocatore non trovato.",
-        "player_offline_error": "Il giocatore non 猫 online.",
-        "item_player_exist_error": "Elemento o UID non valido.",
-        "player_exist_offline_error": "Il giocatore non 猫 stato trovato o non 猫 online.",
-        "argument_error": "Argomenti non validi.",
-        "clear_target": "Obiettivo cancellato.",
-        "set_target": "I comandi successivi avranno come bersaglio @%s per impostazione predefinita.",
-        "set_target_online": "@%s 猫 online. Alcuni comandi potrebbero richiedere un bersaglio offline.",
-        "set_target_offline": "@%s 猫 offline. Alcuni comandi potrebbero richiedere un bersaglio online.",
-        "need_target": "Questo comando richiede un UID bersaglio. Aggiungi un argomento <@UID> o imposta un bersaglio persistente con /target @UID.",
-        "need_target_online": "Questo comando richiede un UID bersaglio online, ma il bersaglio corrente 猫 offline. Aggiungi un argomento <@UID> diverso o imposta un target persistente con /target @UID.",
-        "need_target_offline": "Questo comando richiede un UID bersaglio offline, ma il bersaglio corrente 猫 online. Aggiungi un argomento <@UID> diverso o imposta un target persistente con /target @UID."
-      },
-      "status": {
-        "enabled": "Abilitato",
-        "disabled": "Disabilitato",
-        "help": "Aiuto",
-        "success": "Successo"
-      },
+    "dispatch": {
+      "address_bind": "[Dispatch] Dispatch server avviato su \u001B[1m\u001B[33m%s:%s\u001B[0m",
+      "port_bind": "[Dispatch] Dispatch server avviato sulla porta %s",
+      "request": "[Dispatch] Client %s %s richiesta: %s",
+      "keystore": {
+        "general_error": "[Dispatch] Errore nel caricamento di keystore!",
+        "password_error": "[Dispatch] Impossibile caricare il keystore. Provando passwrd di default keystore...",
+        "no_keystore_error": "[Dispatch] Nessun cert SSL trovato! Ritorno ad un server HTTP.",
+        "default_password": "[Dispatch] La password di default del keystore 猫 stata caricata con successo. Considera di impostare la password a 123456 in config.json."
+      },
+      "authentication": {
+        "default_unable_to_verify": "[Authentication] [Autenticazione] Qualcosa ha chiamato metodo VerifyUser che non 猫 disponibile nel gestore di autenticazione predefinito."
+      },
+      "no_commands_error": "I comandi non sono supportati in modalit脿 solo dispatch.",
+      "unhandled_request_error": "[Dispatch] Potenziali %s richieste non gestite: %s.",
       "account": {
-        "invalid": "UID non valido.",
-        "exists": "Esiste gi脿 un account con questo nome utente e/o UID.",
-        "create": "Account creato con UID %s.",
-        "delete": "Account cancellato.",
-        "no_account": "Account non trovato.",
-        "description": "Modifica account utente"
-      },
-      "announce": {
-        "send_success": "Invia un annuncio con successo, puoi revocarlo /a revoca %s.",
-        "refresh_success": "Aggiorna il file di configurazione dell'annuncio con successo. [Totale %s]",
-        "revoke_done": "Prova a revocare l'annuncio %s.",
-        "not_found": "Impossibile trovare l'annuncio %s.",
-        "description": "Invia annuncio a tutti i giocatori online o gestisci l'annuncio del server"
-      },
-      "clear": {
-        "weapons": "Armi cancellate per %s.",
-        "artifacts": "Ripuliti artefatti per %s.",
-        "materials": "Materiali cancellati per %s.",
-        "furniture": "Mobili cancellati per %s.",
-        "displays": "Display cancellati per %s.",
-        "virtuals": "Virtuali cancellate per %s.",
-        "everything": "Cancellato tutto per %s.",
-        "description": "Elimina gli oggetti sbloccati non equipaggiati dal tuo inventario. Il valore predefinito 猫 4* livello 1 raffinamento 1 o inferiore, ma pu貌 essere impostato su un livello superiore." },
-      "coop": {
-        "success": "Convocato %s nel mondo di %s.",
-        "description": "Forza qualcuno a unirsi al mondo degli altri. Se nessuno viene preso di mira, ti manda comunque in modalit脿 cooperativa."
-      },
-      "enter_dungeon": {
-        "changed": "Cambiato nel dungeon %s.",
-        "not_found_error": "Il dungeon non esiste.",
-        "in_dungeon_error": "Sei gi脿 in quel dungeon.",
-        "description": "Entra in un dungeon"
-      },
-      "give": {
-        "usage_relic": "Utilizzo: fornire <artifactID> [mainPropID] [<appendPropID>[,<times>]]... [lv<livello 0-20>]",
-        "illegal_relic": "Questo ID artefatto appartiene a un intervallo nella blacklist, potrebbe non essere quello che volevi.",
-        "given": "Dato %s di %s a %s.",
-        "given_with_level_and_refinement": "Dato %s con livello %s, perfezionamento %s %s volte a %s.",
-        "given_level": "Dato %s con livello %s %s volte a %s.",
-        "given_avatar": "Dato %s con livello da %s a %s.",
-        "giveall_success": "Ha dato tutti gli oggetti con successo.",
-        "description": "D脿 un oggetto a te o al giocatore specificato. Pu貌 anche dare tutte le armi, avatar e/o materiali, e pu貌 costruire artefatti personalizzati."
-     },
-      "heal": {
-        "success": "Tutti i personaggi sono stati curati.",
-        "description": "Guarisci tutti i personaggi della tua squadra attuale."
-      },
-      "help": {
-        "alias": "Alias: ",
-        "available_commands": "Comandi disponibili: ",
-        "tip_need_permission": "Autorizzazione: ",
-        "tip_need_no_permission": "Nessun Elemento",
-        "tip_permission_targeted": " (L'autorizzazione %s 猫 richiesta anche per l'uso su altri giocatori)",
-        "warn_player_has_no_permission": "Avviso: non hai il permesso per eseguire questo comando.",
-        "description": "Invia il messaggio di aiuto o mostra le informazioni su un comando specificato"
-      },
-      "kick": {
-        "player_kick_player": "Il giocatore [%s:%s] ha espulso un giocatore [%s:%s]", 
-        "server_kick_player": "Ha preso a calci il giocatore [%s:%s]...", 
-        "description": "Espelle il giocatore specificato dal server (WIP)"
-      },
-      "killall": {
-        "scene_not_found_in_player_world": "Scena non trovata nel mondo del giocatore.",
-        "kill_monsters_in_scene": "Uccidere %s mostri nella scena %s.",
-        "description": "Uccidi tutte le entit脿"
-      },
-      "killCharacter": {
-        "success": "Hai ucciso il personaggio attuale di %s.",
-        "description": "Uccide il personaggio attuale del giocatore"
-      },
-      "language": {
-        "current_language": "La lingua attuale 猫 %s.",
-        "language_changed": "Lingua modificata in %s.",
-        "language_not_found": "Attualmente, il server non ha quella lingua.",
-        "description": "Mostra o cambia la lingua corrente"
-      },
-      "list": {
-        "success": "Ci sono %s player(s) online:",
-        "description": "Lista player online"
-      },
-      "permission": {
-        "add": "Autorizzazione aggiunta.",
-        "has_error": "Hanno gi脿 questa autorizzazione!",
-        "remove": "Autorizzazione rimossa.",
-        "not_have_error": "Non hanno questa autorizzazione!",
-        "account_error": "Impossibile trovare l'account.",
-        "description": "Concede o rimuove un'autorizzazione per un utente"
-      },
-      "position": {
-        "success": "Coordinate: %s, %s, %s\nRotazione:%s, %s, %s\nID scena: %a",
-        "description": "Ottiene informazioni sulla posizione e sulla rotazione"
-      },
-      "quest": {
-        "added": "Missione %s aggiunta.",
-        "finished": "Missione completata %s.",
-        "not_found": "Missione non trovata.",
-        "invalid_id": "ID missione non valido.",
-        "description": "Aggiungi o completa missioni"
-      },
-      "reload": {
-        "reload_start": "Ricarica configurazione.",
-        "reload_done": "Ricarica completa.",
-        "description": "Ricarica configurazione server"
-      },
-      "resetConst": {
-        "reset_all": "Ripristina le costellazioni di tutti gli avatar.",
-        "success": "Le costellazioni per %s sono state reimpostate. Effettua nuovamente il login per vedere le modifiche.",
-        "description": "Reimposta il livello della costellazione sul tuo personaggio attivo corrente, dovrai reloggare dopo aver usato il comando per vedere eventuali modifiche"
-      },
-      "resetShopLimit": {
-        "success": "Reset completato.",
-        "description": "Reimposta il tempo di aggiornamento del negozio del giocatore bersaglio"
-      },
-      "sendMail": {
-        "give_usage": "Utilizzo: give <player> <itemID|itemName> [importo] [livello] [raffinamento]",
-        "user_not_exist": "L'utente con ID '%s' non esiste.",
-        "start_composition": "Composizione iniziale del messaggio.\nPer favore usa '/sendmail <titolo>' per continuare.\nPuoi usare '/sendmail stop' in qualsiasi momento.",
-        "templates": "I modelli di posta saranno presto implementati...",
-        "invalid_arguments": "Argomenti non validi.",
-        "send_cancel": "Invio messaggio annullato.",
-        "send_done": "Messaggio inviato all'utente %s!",
-        "send_all_done": "Messaggio inviato a tutti gli utenti!",
-        "not_composition_end": "Composizione del messaggio non nella fase finale.\nPer favore usa '/sendmail %s' o '/sendmail stop' per annullare",
-        "please_use": "Per favore usa '/sendmail %s'",
-        "set_title": "Titolo del messaggio impostato come '%s'.\nUsa '/sendmail <content>' per continuare.",
-        "set_contents": "Contenuto del messaggio impostato come '%s'.\nUsa '/sendmail <sender>' per continuare.",
-        "set_message_sender": "Mittente del messaggio impostato come '%s'.\nUsa '/sendmail <itemID|itemName|finish> [amount] [level]' per continuare.",
-        "send": "Allegati %s di %s (livello %s) al messaggio.\nContinua ad aggiungere altri elementi o usa '/sendmail finish' per inviare il messaggio.",
-        "invalid_arguments_please_use": "Argomenti non validi.\n Utilizza '/sendmail %s'",
-        "title": "<titolo>",
-        "message": "<messaggio>",
-        "sender": "<mittente>",
-        "arguments": "<itemID|itemName|finitura> [importo] [livello]",
-        "error": "ERRORE: fase di costruzione %s non valida. Controlla lo stacktrace della console.",
-        "description": "Invia posta all'utente specificato. L'utilizzo di questo comando cambia in base al suo stato di composizione"
-      },
-        "sendMessage": {
-            "success": "Messaggio inviato.",
-            "description": "Invia un messaggio a un giocatore come server. Se usato senza target, invia a tutti i giocatori sul server."
-          },
-          "setConst": {
-            "range_error": "Il livello della costellazione deve essere compreso tra 0 e 6.",
-            "level_error": "Livello costellazione non valido.",
-            "fail": "Impossibile impostare la costellazione.",
-            "failed_success": "Le costellazioni per %s sono state impostate su %s. Ricarica la scena per vedere le modifiche.",
-            "success": "Le costellazioni per %s sono state impostate su %s.",
-            "successall": "Le costellazioni per tutti i personaggi sono state impostate su %s.",
-            "description": "Imposta il livello di costellazione per il tuo attuale personaggio attivo"
-          },
-          "setFetterLevel": {
-            "range_error": "Il livello di restrizione deve essere compreso tra 0 e 10.",
-            "success": "Livello di restrizione impostato su %s.",
-            "level_error": "Livello restrizione non valido.",
-            "description": "Imposta il tuo livello di restrizione per il tuo attuale personaggio attivo"
-          },
-          "setProp": {
-            "description": "Imposta le propriet脿 dell'intero account. Cose come godmode possono essere abilitate in questo modo, oltre a cambiare cose come il pavimento dell'abisso sbloccato e il progresso del pass battaglia.\n\tValori per <prop> (senza distinzione tra maiuscole e minuscole): GodMode | UnlimitedStamina | UnlimitedEnergy | TowerLevel | WorldLevel | BPLevel | SetOpenState | UnsetOpenState | UnlockMap\n\t(cont.) vedi PlayerProperty enum per altri possibili valori, nella forma PROP_MAX_SPRING_VOLUME -> max_spring_volume"
-          },
-          "setStats": {
-            "description": "Imposta la propriet脿 di combattimento per il tuo personaggio attivo corrente\n\tValori per <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 bloccato su %s.",
-            "locked_for_to": "%s per %s bloccato su %s.",
-            "unlocked": "%s sbloccato.",
-            "unlocked_for": "%s per %s sbloccato."
-          },
-      "spawn": {
-        "success": "Evocati %s di %s.",
-        "limit_reached": "Limite di evocazione della scena raggiunto. Generazione invece di %s entit脿.",
-        "description": "Evoca una entit脿 vicino a te"
-      },
-      "stop": {
-        "success": "Server in chiusura...",
-        "description": "Arresta il server"
-      },
-      "talent": {
-        "out_of_range": "Livello talento non valido. Il livello dovrebbe essere compreso tra 1 e 15.",
-        "set_id": "Imposta talento %s - \"%s\" su %s.",
-        "id_desc": "Talenti %s - \"%s\" - \"%s\"",
-        "invalid_skill_id": "ID talento non valido.",
-        "invalid_level": "Livello talento non valido.",
-        "normal_attack_id": "ID attacco normale %s.",
-        "e_skill_id": "ID talento E %s.",
-        "q_skill_id": "ID talento Q %s.",
-        "description": "Imposta il livello di talento per il tuo attuale personaggio attivo"
-      },
-      "team": {
-        "invalid_usage": "Utilizzo non valido.",
-        "invalid_index": "L'indice non 猫 valido.",
-        "add_too_much": "Il server ti permette di avere al massimo %s avatar nella tua squadra.",
-        "failed_to_add_avatar": "Impossibile aggiungere l'ID avatar %s.",
-        "failed_to_parse_index": "Impossibile analizzare l'indice: %s",
-        "remove_too_much": "Non puoi rimuovere tutti i tuoi avatar.",
-        "ignore_index": "Indici ignorati: %s",
-        "index_out_of_range": "L'indice che hai specificato non 猫 compreso nell'intervallo.",
-        "failed_parse_avatar_id": "Impossibile analizzare l'ID avatar: %s",
-        "avatar_already_in_team": "Avatar 猫 gi脿 nel team.",
-        "avatar_not_found": "Avatar %s non trovato.",
-        "description": "Modifica manualmente la tua squadra."
-      },
-      "teleportAll": {
-        "success": "Evoca tutti i giocatori nella tua posizione.",
-        "error": "Puoi usare questo comando solo in modalit脿 MP.",
-        "description": "Teletrasporta tutti i giocatori del tuo mondo nella tua posizione"
-      },
-      "teleport": {
-        "invalid_position": "Posizione non valida.",
-        "exists_error": "La scena specificata non esiste.",
-        "success": "Teletrasportato %s in %s, %s, %s nella scena %s.",
-        "description": "Cambia la posizione del giocatore"
-      },
-      "weather": {
-        "success": "Imposta l'ID meteo su %s con il tipo di clima %s.",
-        "status": "L'ID meteo attuale 猫 %s con il tipo di clima %s.",
-        "description": "Cambia l'ID meteo e il tipo di clima. Gli ID meteo possono essere trovati in ./Resources/ExcelBinOutput/WeatherExcelConfigData.json.\nTipi di clima: soleggiato, nuvoloso, pioggia, temporale, neve, nebbia"
-      },
-      "ban": {
-        "success": "Soccesso.",
-        "failure": "Fallito, giocatore non trovato.",
-        "invalid_time": "Impossibile analizzare il timestamp.",
-        "description": "Banna un giocatore"
-      },
-      "unlockall": {
-        "success": "Sbloccato tutti gli stati aperti per %s.",
-        "description": "Sblocca tutti gli stati aperti per un giocatore."
-      },
-      "unban": {
-        "success": "Successo.",
-        "failure": "Fallito, giocatore non trovato.",
-        "description": "Sbanna un giocatore"
-      }
+        "login_attempt": "[Dispatch] Il client %s sta provando a fare il login.",
+        "login_success": "[Dispatch] Client %s loggato come %s.",
+        "login_max_player_limit": "[Dispatch] Client %s non 猫 riuscito ad accedere: Il numero di giocatori online ha raggiunto il limite",
+        "login_token_attempt": "[Dispatch] Il client %s sta tentando di accedere tramite token.",
+        "login_token_error": "[Dispatch] Client %s non 猫 riuscito ad accedere tramite token.",
+        "login_token_success": "[Dispatch] Client %s ha effettuato l'accesso tramite token come %s.",
+        "login_password_error": "[Dispatch] Client %s non 猫 riuscito ad accedere tramite password.",
+        "login_password_storage_error": "[Dispatch] Client %s non 猫 riuscito ad accedere tramite password perch茅 non c'猫 password nel database.",
+        "combo_token_success": "[Dispatch] Il client %s 猫 riuscito a scambiare il token combinato.",
+        "combo_token_error": "Il client [Dispatch] %s non 猫 riuscito a scambiare il token combinato.",
+        "account_login_create_success": "[Dispatch] Client %s non 猫 riuscito ad accedere: Account %s creato.",
+        "account_login_create_error": "[Dispatch] Client %s non 猫 riuscito ad accedere: Creazione account non riuscita.",
+        "account_login_exist_error": "[Dispatch] Client %s non 猫 riuscito ad accedere: Account non trovato.",
+        "account_cache_error": "Errore di informazioni sulla cache dell'account di gioco.",
+        "session_key_error": "Chiave di sessione errata.",
+        "username_error": "Nome utente non trovato.",
+        "username_create_error": "Nome utente non trovato, creazione non riuscita.",
+        "password_error": "Password non valida",
+        "password_length_error": "La lunghezza della password deve essere maggiore o uguale a 8",
+        "password_storage_error": "Non hai una password per il tuo account. Contatta un amministratore.",
+        "server_max_player_limit": "Il numero di giocatori online ha raggiunto il limite"
+      },
+      "router_error": "[Dispatch] Impossibile collegare il router."
     },
-    "gacha": {
-      "details": {
-        "title": "Dettagli banner",
-        "available_five_stars": "Articoli disponibili a 5 stelle",
-        "available_four_stars": "Articoli disponibili a 4 stelle",
-        "available_three_stars": "Articoli a 3 stelle disponibili"
-      },
-      "records": {
-        "title": "Gacha Records",
-        "date": "Data",
-        "item": "oggetto"
+    "status": {
+      "free_software": "Grasscutter 猫 un software GRATUITO. Se hai pagato per questo, potresti essere stato truffato. Homepage: https://github.com/Grasscutters/Grasscutter",
+      "starting": "Avvio di Grasscutter...",
+      "shutdown": "Chiusura in corso...",
+      "done": "Fatto! Per aiuto, digita \"help\"",
+      "error": "Si 猫 verificato un errore.",
+      "welcome": "Benvenuto in Grasscutter!",
+      "run_mode_error": "Modalit脿 di esecuzione del server non valida: %s.",
+      "run_mode_help": "La modalit脿 di esecuzione del server deve essere 'HYBRID', 'DISPATCH_ONLY' o 'GAME_ONLY'. Impossibile avviare Grasscutter...",
+      "create_resources": "Creazione cartella risorse...",
+      "resources_error": "Inserisci una copia di 'BinOutput' e 'ExcelBinOutput' nella cartella delle risorse.",
+      "version": "Versione Grassscutter: %s-%s",
+      "game_version": "Versione del gioco: %s",
+      "resources": {
+        "loading": "Caricamento risorse...",
+        "finish": "Terminato il caricamento delle risorse."
       }
-    },
-    "documentation": {
-      "handbook": {
-        "title": "Manuale GM",
-        "title_commands": "Comandi",
-        "title_avatars": "Avatar",
-        "title_items": "Articoli",
-        "title_scenes": "Scene",
-        "title_monsters": "Mostri",
-        "header_id": "ID",
-        "header_command": "Comando",
-        "header_description": "Descrizione",
-        "header_avatar": "Avatar",
-        "header_item": "Articolo",
-        "header_scene": "Scena",
-        "header_monster": "Mostro"
-      },
-      "index": {
-        "title": "Documentazione",
-        "handbook": "Manuale GM",
-        "gacha_mapping": "Mappatura Gacha JSON"
+    }
+  },
+  "commands": {
+    "generic": {
+      "not_specified": "Nessun comando specificato.",
+      "unknown_command": "Comando sconosciuto: %s",
+      "permission_error": "Non hai il permesso per eseguire questo comando.",
+      "console_execute_error": "Questo comando pu貌 essere eseguito solo dalla console.",
+      "player_execute_error": "Esegui questo comando nel gioco.",
+      "command_exist_error": "Nessun comando trovato.",
+      "no_usage_specified": "Nessun utilizzo specificato",
+      "no_description_specified": "Nessuna descrizione specificata",
+      "set_to": "%s impostato su %s.",
+      "set_for_to": "%s per %s impostato su %s.",
+      "invalid": {
+      "amount": "Importo non valido.",
+      "artifactId": "ID artefatto non valido.",
+      "avatarId": "ID avatar non valido.",
+      "avatarLevel": "Livello avatar non valido.",
+      "entityId": "ID entit脿 non valido.",
+      "itemId": "ID articolo non valido.",
+      "itemLevel": "ItemLevel non valido.",
+      "itemRefinement": "Raffinamento articolo non valido.",
+      "statValue": "Valore statistica non valido.",
+      "value_between": "Valore non valido: %s deve essere compreso tra %s e %s.",
+      "playerId": "ID giocatore non valido.",
+      "uid": "UID non valido.",
+      "id": "ID non valido."
       }
     },
-    "plugin": {
-        "directory_failed": "Impossibile creare la directory dei plugin: ",
-        "unable_to_load": "Impossibile caricare il plug-in.",
-        "invalid_config": "Il plug-in %s ha un file di configurazione non valido.",
-        "invalid_main_class": "Il plug-in %s ha una classe principale non valida.",
-        "missing_config": "Il plug-in %s non ha un file di configurazione valido.",
-        "failed_to_load_plugin": "Impossibile caricare il plug-in: %s",
-        "failed_to_load": "Impossibile caricare un plug-in.",
-        "failed_to_load_dependencies": "Impossibile caricare i plugin con le dipendenze.",
-        "loading_plugin": "Caricamento plug-in: %s",
-        "failed_add_id": "Impossibile aggiungere l'identificatore del plug-in: %s",
-        "enabling_plugin": "Abilitazione plug-in: %s",
-        "enabling_failed": "Impossibile abilitare il plug-in: %s",
-        "disabling_plugin": "Disabilitazione plug-in: %s",
-        "disabling_failed": "Impossibile disabilitare il plug-in: %s"
+    "execution": {
+      "usage_prefix": "Utilizzo: ",
+      "player_exist_error": "Giocatore non trovato.",
+      "player_offline_error": "Il giocatore non 猫 online.",
+      "item_player_exist_error": "Elemento o UID non valido.",
+      "player_exist_offline_error": "Il giocatore non 猫 stato trovato o non 猫 online.",
+      "argument_error": "Argomenti non validi.",
+      "clear_target": "Obiettivo cancellato.",
+      "set_target": "I comandi successivi avranno come bersaglio @%s per impostazione predefinita.",
+      "set_target_online": "@%s 猫 online. Alcuni comandi potrebbero richiedere un bersaglio offline.",
+      "set_target_offline": "@%s 猫 offline. Alcuni comandi potrebbero richiedere un bersaglio online.",
+      "need_target": "Questo comando richiede un UID bersaglio. Aggiungi un argomento <@UID> o imposta un bersaglio persistente con /target @UID.",
+      "need_target_online": "Questo comando richiede un UID bersaglio online, ma il bersaglio corrente 猫 offline. Aggiungi un argomento <@UID> diverso o imposta un target persistente con /target @UID.",
+      "need_target_offline": "Questo comando richiede un UID bersaglio offline, ma il bersaglio corrente 猫 online. Aggiungi un argomento <@UID> diverso o imposta un target persistente con /target @UID."
+    },
+    "status": {
+      "enabled": "Abilitato",
+      "disabled": "Disabilitato",
+      "help": "Aiuto",
+      "success": "Successo"
+    },
+    "account": {
+      "invalid": "UID non valido.",
+      "exists": "Esiste gi脿 un account con questo nome utente e/o UID.",
+      "create": "Account creato con UID %s.",
+      "delete": "Account cancellato.",
+      "no_account": "Account non trovato.",
+      "description": "Modifica account utente"
+    },
+    "announce": {
+      "send_success": "Invia un annuncio con successo, puoi revocarlo /a revoca %s.",
+      "refresh_success": "Aggiorna il file di configurazione dell'annuncio con successo. [Totale %s]",
+      "revoke_done": "Prova a revocare l'annuncio %s.",
+      "not_found": "Impossibile trovare l'annuncio %s.",
+      "description": "Invia annuncio a tutti i giocatori online o gestisci l'annuncio del server"
+    },
+    "clear": {
+      "weapons": "Armi cancellate per %s.",
+      "artifacts": "Ripuliti artefatti per %s.",
+      "materials": "Materiali cancellati per %s.",
+      "furniture": "Mobili cancellati per %s.",
+      "displays": "Display cancellati per %s.",
+      "virtuals": "Virtuali cancellate per %s.",
+      "everything": "Cancellato tutto per %s.",
+      "description": "Elimina gli oggetti sbloccati non equipaggiati dal tuo inventario. Il valore predefinito 猫 4* livello 1 raffinamento 1 o inferiore, ma pu貌 essere impostato su un livello superiore." },
+    "coop": {
+      "success": "Convocato %s nel mondo di %s.",
+      "description": "Forza qualcuno a unirsi al mondo degli altri. Se nessuno viene preso di mira, ti manda comunque in modalit脿 cooperativa."
+    },
+    "enter_dungeon": {
+      "changed": "Cambiato nel dungeon %s.",
+      "not_found_error": "Il dungeon non esiste.",
+      "in_dungeon_error": "Sei gi脿 in quel dungeon.",
+      "description": "Entra in un dungeon"
+    },
+    "give": {
+      "usage_relic": "Utilizzo: fornire <artifactID> [mainPropID] [<appendPropID>[,<times>]]... [lv<livello 0-20>]",
+      "illegal_relic": "Questo ID artefatto appartiene a un intervallo nella blacklist, potrebbe non essere quello che volevi.",
+      "given": "Dato %s di %s a %s.",
+      "given_with_level_and_refinement": "Dato %s con livello %s, perfezionamento %s %s volte a %s.",
+      "given_level": "Dato %s con livello %s %s volte a %s.",
+      "given_avatar": "Dato %s con livello da %s a %s.",
+      "giveall_success": "Ha dato tutti gli oggetti con successo.",
+      "description": "D脿 un oggetto a te o al giocatore specificato. Pu貌 anche dare tutte le armi, avatar e/o materiali, e pu貌 costruire artefatti personalizzati."
+   },
+    "heal": {
+      "success": "Tutti i personaggi sono stati curati.",
+      "description": "Guarisci tutti i personaggi della tua squadra attuale."
+    },
+    "help": {
+      "aliases": "Alias: ",
+      "available_commands": "Comandi disponibili: ",
+      "tip_need_permission": "Autorizzazione: ",
+      "tip_need_no_permission": "Nessun Elemento",
+      "tip_permission_targeted": " (L'autorizzazione %s 猫 richiesta anche per l'uso su altri giocatori)",
+      "warn_player_has_no_permission": "Avviso: non hai il permesso per eseguire questo comando.",
+      "description": "Invia il messaggio di aiuto o mostra le informazioni su un comando specificato"
+    },
+    "kick": {
+      "player_kick_player": "Il giocatore [%s:%s] ha espulso un giocatore [%s:%s]",
+      "server_kick_player": "Ha preso a calci il giocatore [%s:%s]...",
+      "description": "Espelle il giocatore specificato dal server (WIP)"
+    },
+    "killall": {
+      "scene_not_found_in_player_world": "Scena non trovata nel mondo del giocatore.",
+      "kill_monsters_in_scene": "Uccidere %s mostri nella scena %s.",
+      "description": "Uccidi tutte le entit脿"
+    },
+    "killCharacter": {
+      "success": "Hai ucciso il personaggio attuale di %s.",
+      "description": "Uccide il personaggio attuale del giocatore"
+    },
+    "language": {
+      "current_language": "La lingua attuale 猫 %s.",
+      "language_changed": "Lingua modificata in %s.",
+      "language_not_found": "Attualmente, il server non ha quella lingua.",
+      "description": "Mostra o cambia la lingua corrente"
+    },
+    "list": {
+      "success": "Ci sono %s player(s) online:",
+      "description": "Lista player online"
+    },
+    "permission": {
+      "add": "Autorizzazione aggiunta.",
+      "has_error": "Hanno gi脿 questa autorizzazione!",
+      "remove": "Autorizzazione rimossa.",
+      "not_have_error": "Non hanno questa autorizzazione!",
+      "account_error": "Impossibile trovare l'account.",
+      "description": "Concede o rimuove un'autorizzazione per un utente"
+    },
+    "position": {
+      "success": "Coordinate: %s, %s, %s\nRotazione:%s, %s, %s\nID scena: %a",
+      "description": "Ottiene informazioni sulla posizione e sulla rotazione"
+    },
+    "quest": {
+      "added": "Missione %s aggiunta.",
+      "finished": "Missione completata %s.",
+      "not_found": "Missione non trovata.",
+      "invalid_id": "ID missione non valido.",
+      "description": "Aggiungi o completa missioni"
+    },
+    "reload": {
+      "reload_start": "Ricarica configurazione.",
+      "reload_done": "Ricarica completa.",
+      "description": "Ricarica configurazione server"
+    },
+    "resetConst": {
+      "reset_all": "Ripristina le costellazioni di tutti gli avatar.",
+      "success": "Le costellazioni per %s sono state reimpostate. Effettua nuovamente il login per vedere le modifiche.",
+      "description": "Reimposta il livello della costellazione sul tuo personaggio attivo corrente, dovrai reloggare dopo aver usato il comando per vedere eventuali modifiche"
+    },
+    "resetShopLimit": {
+      "success": "Reset completato.",
+      "description": "Reimposta il tempo di aggiornamento del negozio del giocatore bersaglio"
+    },
+    "sendMail": {
+      "give_usage": "Utilizzo: give <player> <itemID|itemName> [importo] [livello] [raffinamento]",
+      "user_not_exist": "L'utente con ID '%s' non esiste.",
+      "start_composition": "Composizione iniziale del messaggio.\nPer favore usa '/sendmail <titolo>' per continuare.\nPuoi usare '/sendmail stop' in qualsiasi momento.",
+      "templates": "I modelli di posta saranno presto implementati...",
+      "invalid_arguments": "Argomenti non validi.",
+      "send_cancel": "Invio messaggio annullato.",
+      "send_done": "Messaggio inviato all'utente %s!",
+      "send_all_done": "Messaggio inviato a tutti gli utenti!",
+      "not_composition_end": "Composizione del messaggio non nella fase finale.\nPer favore usa '/sendmail %s' o '/sendmail stop' per annullare",
+      "please_use": "Per favore usa '/sendmail %s'",
+      "set_title": "Titolo del messaggio impostato come '%s'.\nUsa '/sendmail <content>' per continuare.",
+      "set_contents": "Contenuto del messaggio impostato come '%s'.\nUsa '/sendmail <sender>' per continuare.",
+      "set_message_sender": "Mittente del messaggio impostato come '%s'.\nUsa '/sendmail <itemID|itemName|finish> [amount] [level]' per continuare.",
+      "send": "Allegati %s di %s (livello %s) al messaggio.\nContinua ad aggiungere altri elementi o usa '/sendmail finish' per inviare il messaggio.",
+      "invalid_arguments_please_use": "Argomenti non validi.\n Utilizza '/sendmail %s'",
+      "title": "<titolo>",
+      "message": "<messaggio>",
+      "sender": "<mittente>",
+      "arguments": "<itemID|itemName|finitura> [importo] [livello]",
+      "error": "ERRORE: fase di costruzione %s non valida. Controlla lo stacktrace della console.",
+      "description": "Invia posta all'utente specificato. L'utilizzo di questo comando cambia in base al suo stato di composizione"
+    },
+      "sendMessage": {
+          "success": "Messaggio inviato.",
+          "description": "Invia un messaggio a un giocatore come server. Se usato senza target, invia a tutti i giocatori sul server."
+        },
+        "setConst": {
+          "range_error": "Il livello della costellazione deve essere compreso tra 0 e 6.",
+          "level_error": "Livello costellazione non valido.",
+          "fail": "Impossibile impostare la costellazione.",
+          "failed_success": "Le costellazioni per %s sono state impostate su %s. Ricarica la scena per vedere le modifiche.",
+          "success": "Le costellazioni per %s sono state impostate su %s.",
+          "successall": "Le costellazioni per tutti i personaggi sono state impostate su %s.",
+          "description": "Imposta il livello di costellazione per il tuo attuale personaggio attivo"
+        },
+        "setFetterLevel": {
+          "range_error": "Il livello di restrizione deve essere compreso tra 0 e 10.",
+          "success": "Livello di restrizione impostato su %s.",
+          "level_error": "Livello restrizione non valido.",
+          "description": "Imposta il tuo livello di restrizione per il tuo attuale personaggio attivo"
+        },
+        "setProp": {
+          "description": "Imposta le propriet脿 dell'intero account. Cose come godmode possono essere abilitate in questo modo, oltre a cambiare cose come il pavimento dell'abisso sbloccato e il progresso del pass battaglia.\n\tValori per <prop> (senza distinzione tra maiuscole e minuscole): GodMode | UnlimitedStamina | UnlimitedEnergy | TowerLevel | WorldLevel | BPLevel | SetOpenState | UnsetOpenState | UnlockMap\n\t(cont.) vedi PlayerProperty enum per altri possibili valori, nella forma PROP_MAX_SPRING_VOLUME -> max_spring_volume"
+        },
+        "setStats": {
+          "description": "Imposta la propriet脿 di combattimento per il tuo personaggio attivo corrente\n\tValori per <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 bloccato su %s.",
+          "locked_for_to": "%s per %s bloccato su %s.",
+          "unlocked": "%s sbloccato.",
+          "unlocked_for": "%s per %s sbloccato."
+        },
+    "spawn": {
+      "success": "Evocati %s di %s.",
+      "limit_reached": "Limite di evocazione della scena raggiunto. Generazione invece di %s entit脿.",
+      "description": "Evoca una entit脿 vicino a te"
+    },
+    "stop": {
+      "success": "Server in chiusura...",
+      "description": "Arresta il server"
+    },
+    "talent": {
+      "out_of_range": "Livello talento non valido. Il livello dovrebbe essere compreso tra 1 e 15.",
+      "set_id": "Imposta talento %s - \"%s\" su %s.",
+      "id_desc": "Talenti %s - \"%s\" - \"%s\"",
+      "invalid_skill_id": "ID talento non valido.",
+      "invalid_level": "Livello talento non valido.",
+      "normal_attack_id": "ID attacco normale %s.",
+      "e_skill_id": "ID talento E %s.",
+      "q_skill_id": "ID talento Q %s.",
+      "description": "Imposta il livello di talento per il tuo attuale personaggio attivo"
+    },
+    "team": {
+      "invalid_usage": "Utilizzo non valido.",
+      "invalid_index": "L'indice non 猫 valido.",
+      "add_too_much": "Il server ti permette di avere al massimo %s avatar nella tua squadra.",
+      "failed_to_add_avatar": "Impossibile aggiungere l'ID avatar %s.",
+      "failed_to_parse_index": "Impossibile analizzare l'indice: %s",
+      "remove_too_much": "Non puoi rimuovere tutti i tuoi avatar.",
+      "ignore_index": "Indici ignorati: %s",
+      "index_out_of_range": "L'indice che hai specificato non 猫 compreso nell'intervallo.",
+      "failed_parse_avatar_id": "Impossibile analizzare l'ID avatar: %s",
+      "avatar_already_in_team": "Avatar 猫 gi脿 nel team.",
+      "avatar_not_found": "Avatar %s non trovato.",
+      "description": "Modifica manualmente la tua squadra."
+    },
+    "teleportAll": {
+      "success": "Evoca tutti i giocatori nella tua posizione.",
+      "error": "Puoi usare questo comando solo in modalit脿 MP.",
+      "description": "Teletrasporta tutti i giocatori del tuo mondo nella tua posizione"
+    },
+    "teleport": {
+      "invalid_position": "Posizione non valida.",
+      "exists_error": "La scena specificata non esiste.",
+      "success": "Teletrasportato %s in %s, %s, %s nella scena %s.",
+      "description": "Cambia la posizione del giocatore"
+    },
+    "weather": {
+      "success": "Imposta l'ID meteo su %s con il tipo di clima %s.",
+      "status": "L'ID meteo attuale 猫 %s con il tipo di clima %s.",
+      "description": "Cambia l'ID meteo e il tipo di clima. Gli ID meteo possono essere trovati in ./Resources/ExcelBinOutput/WeatherExcelConfigData.json.\nTipi di clima: soleggiato, nuvoloso, pioggia, temporale, neve, nebbia"
+    },
+    "ban": {
+      "success": "Soccesso.",
+      "failure": "Fallito, giocatore non trovato.",
+      "invalid_time": "Impossibile analizzare il timestamp.",
+      "description": "Banna un giocatore"
+    },
+    "unlockall": {
+      "success": "Sbloccato tutti gli stati aperti per %s.",
+      "description": "Sblocca tutti gli stati aperti per un giocatore."
+    },
+    "unban": {
+      "success": "Successo.",
+      "failure": "Fallito, giocatore non trovato.",
+      "description": "Sbanna un giocatore"
+    }
+  },
+  "gacha": {
+    "details": {
+      "title": "Dettagli banner",
+      "available_five_stars": "Articoli disponibili a 5 stelle",
+      "available_four_stars": "Articoli disponibili a 4 stelle",
+      "available_three_stars": "Articoli a 3 stelle disponibili"
+    },
+    "records": {
+      "title": "Gacha Records",
+      "date": "Data",
+      "item": "oggetto"
+    }
+  },
+  "documentation": {
+    "handbook": {
+      "title": "Manuale GM",
+      "title_commands": "Comandi",
+      "title_avatars": "Avatar",
+      "title_items": "Articoli",
+      "title_scenes": "Scene",
+      "title_monsters": "Mostri",
+      "header_id": "ID",
+      "header_command": "Comando",
+      "header_description": "Descrizione",
+      "header_avatar": "Avatar",
+      "header_item": "Articolo",
+      "header_scene": "Scena",
+      "header_monster": "Mostro"
+    },
+    "index": {
+      "title": "Documentazione",
+      "handbook": "Manuale GM",
+      "gacha_mapping": "Mappatura Gacha JSON"
     }
+  },
+  "plugin": {
+      "directory_failed": "Impossibile creare la directory dei plugin: ",
+      "unable_to_load": "Impossibile caricare il plug-in.",
+      "invalid_config": "Il plug-in %s ha un file di configurazione non valido.",
+      "invalid_main_class": "Il plug-in %s ha una classe principale non valida.",
+      "missing_config": "Il plug-in %s non ha un file di configurazione valido.",
+      "failed_to_load_plugin": "Impossibile caricare il plug-in: %s",
+      "failed_to_load": "Impossibile caricare un plug-in.",
+      "failed_to_load_dependencies": "Impossibile caricare i plugin con le dipendenze.",
+      "loading_plugin": "Caricamento plug-in: %s",
+      "failed_add_id": "Impossibile aggiungere l'identificatore del plug-in: %s",
+      "enabling_plugin": "Abilitazione plug-in: %s",
+      "enabling_failed": "Impossibile abilitare il plug-in: %s",
+      "disabling_plugin": "Disabilitazione plug-in: %s",
+      "disabling_failed": "Impossibile disabilitare il plug-in: %s"
   }
-}
\ No newline at end of file
+}
-- 
GitLab