diff --git a/MinecraftClient/ChatBots/AutoCraft.cs b/MinecraftClient/ChatBots/AutoCraft.cs index bf3dac79..c2128ad5 100644 --- a/MinecraftClient/ChatBots/AutoCraft.cs +++ b/MinecraftClient/ChatBots/AutoCraft.cs @@ -53,9 +53,24 @@ namespace MinecraftClient.ChatBots public void OnSettingUpdate() { _Table_Location = new Location(CraftingTable.X, CraftingTable.Y, CraftingTable.Z).ToFloor(); + + List nameList = new(); foreach (RecipeConfig recipe in Recipes) { - recipe.Name ??= string.Empty; + if (string.IsNullOrWhiteSpace(recipe.Name)) + { + recipe.Name = new Random().NextInt64().ToString(); + LogToConsole(BotName, Translations.TryGet("bot.autoCraft.exception.name_miss")); + } + if (nameList.Contains(recipe.Name)) + { + LogToConsole(BotName, Translations.TryGet("bot.autoCraft.exception.duplicate", recipe.Name)); + do + { + recipe.Name = new Random().NextInt64().ToString(); + } while (nameList.Contains(recipe.Name)); + } + nameList.Add(recipe.Name); int fixLength = -1; if (recipe.Type == CraftTypeConfig.player && recipe.Slots.Length != 4) diff --git a/MinecraftClient/Mapping/Location.cs b/MinecraftClient/Mapping/Location.cs index b64ace5e..f535c724 100644 --- a/MinecraftClient/Mapping/Location.cs +++ b/MinecraftClient/Mapping/Location.cs @@ -295,15 +295,6 @@ namespace MinecraftClient.Mapping return loc1.Equals(loc2); } - public static bool operator ==(Location? loc1, Location? loc2) - { - if (loc1 == null && loc2 == null) - return true; - if (loc1 == null || loc2 == null) - return false; - return loc1.Equals(loc2); - } - /// /// Compare two locations. Locations are not equals if the integer part of their coordinates are not equals. /// @@ -315,15 +306,6 @@ namespace MinecraftClient.Mapping return !loc1.Equals(loc2); } - public static bool operator !=(Location? loc1, Location? loc2) - { - if (loc1 == null && loc2 == null) - return false; - if (loc1 == null || loc2 == null) - return true; - return !loc1.Equals(loc2); - } - /// /// Sums two locations and returns the result. /// diff --git a/MinecraftClient/Program.cs b/MinecraftClient/Program.cs index 734fd420..03d898c3 100644 --- a/MinecraftClient/Program.cs +++ b/MinecraftClient/Program.cs @@ -172,6 +172,12 @@ namespace MinecraftClient return; } + if (args.Contains("--trim-translation")) + { + Translations.TrimAllTranslations(); + return; + } + if (args.Contains("--generate")) { string dataGenerator = ""; diff --git a/MinecraftClient/Resources/lang/de.ini b/MinecraftClient/Resources/lang/de.ini index 8f734620..7b0c05c5 100644 --- a/MinecraftClient/Resources/lang/de.ini +++ b/MinecraftClient/Resources/lang/de.ini @@ -1,15 +1,22 @@ [mcc] # Messages from MCC itself +mcc.help_us_translate= +mcc.run_with_default_settings= +mcc.settings_generated= +mcc.has_update= mcc.login=Login : mcc.login_basic_io=Bitte gib einen Nutzernamen oder eine E-Mail deiner Wahl ein. -mcc.password=Passwort : +mcc.password=Passwort : mcc.password_basic_io=Bitte gib das Passwort für {0} ein. mcc.password_hidden=Passwort : {0} mcc.offline=§8Das Programm läuft im Offline-Modus. mcc.session_invalid=§8Gespeicherte Session ungültig oder abgelaufen. mcc.session_valid=§8Gespeicherte Session gültig für {0}. +mcc.profile_key_invalid= +mcc.profile_key_valid= mcc.connecting=Verbinde zu {0}... -mcc.ip=Server-IP : +mcc.fetching_key= +mcc.ip=Server-IP : mcc.use_version=§8Benutze Minecraft-Version {0} (protocol v{1}) mcc.unknown_version=§8Unbekannte oder nicht unterstützte MC-Version {0}.\nWechsele in den Autodetection-Modus. mcc.forge=Prüfe, ob der Server Forge benutzt... @@ -20,7 +27,7 @@ mcc.not_found=§8SRV-Lookup fehlgeschlagen für {0}\n{1}: {2} mcc.retrieve=Erhalte Server-Info... mcc.restart=Starte Minecraft Console Client neu... mcc.restart_delay=Warte {0} Sekunden vor Neustart... -mcc.server_version=Server-Version : +mcc.server_version=Server-Version : mcc.disconnected=Mit keinem Server verbunden. Schreibe '{0}help' für weitere Hilfe. mcc.press_exit=Oder drücke Enter, um den Minecraft Console Client zu verlassen. mcc.version_supported=Version wird unterstützt.\nMelde an... @@ -41,13 +48,16 @@ mcc.with_forge=, mit Forge mcc.handshake=§8Handshake erfolgreich. (Server ID: {0}) mcc.realms_available=Du hast Zugang zu den folgenden Realms-Welten mcc.realms_join=Nutze realms:index als Server-IP, um der Realms-Welt beizutreten - +mcc.generator.generating= +mcc.generator.done= [debug] # Messages from MCC Debug Mode debug.color_test=Farbtest: Dein Terminal sollte {0} anzeigen. debug.session_cache_ok=§8Sitzungsdaten wurden erfolgreich vom Speicher geladen. debug.session_cache_fail=§8Es konnten keine Sitzungsdaten vom Speicher geladen werden. +debug.keys_cache_ok= +debug.keys_cache_fail= debug.session_id=Erfolgreich. (session ID: {0}) debug.crypto=§8Crypto-Schlüssel & -Hash wurden generiert. debug.request=§8Starte Anfrage zu {0} @@ -58,7 +68,7 @@ error.ping=Ping an IP fehlgeschlagen. error.unsupported=Kann nicht zum Server verbinden : Diese Version wird nicht unterstützt ! error.determine=Konnte Server-Version nicht bestimmen. error.forgeforce=Der zwangshafte Forge-Support wird für diese Minecraft-Version nicht unterstützt! -error.login=Minecraft Login fehlgeschlagen : +error.login=Minecraft Login fehlgeschlagen : error.login.migrated=Account wurde migriert, benutze eine E-Mail als Nutzername. error.login.server=Login-Server nicht erreichbar. Bitte versuche es später erneut. error.login.blocked=Falsches Passwort, gesperrte IP oder zu viele Logins. @@ -82,6 +92,9 @@ error.connection_timeout=§8Es gab einen Timeout während des Verbindungsaufbaus error.forge=§8Forge Login Handshake konnte nicht erfolgreich abgeschlossen werden. error.forge_encrypt=§8Forge StartEncryption Handshake konnte nicht erfolgreich abgeschlossen werden. error.setting.str2int=Konnte '{0}' nicht in einen Int umwandeln. Bitte überprüfe die Einstellungen. +error.setting.str2double= +error.setting.str2locationList.convert_fail= +error.setting.str2locationList.format_err= error.setting.argument_syntax={0}: Invalid syntax, expecting --argname=value or --section.argname=value error.setting.unknown_section={0}: Unknown setting section '{1}' error.setting.unknown_or_invalid={0}: Unknown setting or invalid value @@ -92,6 +105,11 @@ error.realms.access_denied=Diese Realms-Welt existiert nicht oder der Zugang wur error.realms.server_unavailable=Der Realms-Server braucht ein wenig Zeit zum starten. Bitte versuche es später erneut. error.realms.server_id=Invalid or unknown Realms server ID. error.realms.disabled=Versuche der Realms-Welt beizutreten, allerdings wurde der Realms-Support in der Config deaktiviert +error.missing.argument= +error.usage= +error.generator.invalid= +error.generator.path= +error.generator.json= [internal command] # MCC internal help command @@ -173,6 +191,14 @@ cache.ignore_line=§8Ignoriere ungültigen Sitzungstoken Zeile: {0} cache.read_fail_plain=§8Konnte Sitzungscache nicht vom Speicher lesen: {0} cache.saving=§8Speichere Sitzungscache auf Festplatte cache.save_fail=§8Konnte Sitzungscache auf keine Festplatte schreiben: {0} +# Profile Key Cache +cache.loading_keys= +cache.loaded_keys= +cache.ignore_string_keys= +cache.ignore_line_keys= +cache.read_fail_plain_keys= +cache.saving_keys= +cache.save_fail_keys= [proxy] proxy.connected=§8Verbunden mit Proxy {0}:{1} @@ -186,6 +212,7 @@ chat.fail=§8Konnte Datei nicht herunterladen. chat.from_dir=§8Nutze en_GB.lang als Standard von deinem Minecraft-Pfad. chat.loaded=§8Übersetzungsdatei geladen. chat.not_found=§8Übersetzungsdatei konnte nicht gefunden werden: '{0}'\nEinige Nachrichten können ohne diese Datei nicht korrekt angezeigt werden. +chat.message_chain_broken= [general] # General message/information (i.e. Done) @@ -201,12 +228,23 @@ general.available_cmd=Verfügbare Befehle: {0} # Animation cmd.animation.desc=Schwinge deinen Arm. +# Bots +cmd.bots.desc= +cmd.bots.list= +cmd.bots.notfound= +cmd.bots.noloaded= +cmd.bots.unloaded= +cmd.bots.unloaded_all= + # ChangeSlot cmd.changeSlot.desc=Ändere deine Hotbar cmd.changeSlot.nan=Konnte Slot nicht ändern: Dies ist keine Nummer. cmd.changeSlot.changed=Slot geändert auf {0} cmd.changeSlot.fail=Konnte Slot nicht ändern. +# Chunk +cmd.chunk.desc= + # Connect cmd.connect.desc=Verbinde zum angegebenen Server. cmd.connect.unknown=Unbekannter Account '{0}'. @@ -248,6 +286,19 @@ cmd.entityCmd.distance=Entfernung cmd.entityCmd.location=Position cmd.entityCmd.type=Typ +# Exec If +cmd.execif.desc= +cmd.execif.executed= +cmd.execif.executed_no_output= +cmd.execif.error_occured= +cmd.execif.error= + +# Exec Multi +cmd.execmulti.desc= +cmd.execmulti.executed= +cmd.execmulti.result= +cmd.execmulti.no_result= + # Exit cmd.exit.desc=Verbindung zum Server verloren. @@ -267,12 +318,15 @@ cmd.inventory.close_fail=Konnte das Inventar #{0} nicht schließen cmd.inventory.not_exist=Inventar #{0} existiert nicht. cmd.inventory.inventory=Inventar cmd.inventory.inventories=Inventare +cmd.inventory.inventories_available= cmd.inventory.hotbar=Deine ausgewählte Hotbar ist {0} cmd.inventory.damage=Schaden cmd.inventory.left=Links cmd.inventory.right=Rechts cmd.inventory.middle=Mittel cmd.inventory.clicking={0} klicke Slote {1} im Fenster #{2} +cmd.inventory.shiftclick= +cmd.inventory.shiftclick_fail= cmd.inventory.no_item=Kein Item im Slot #{0} cmd.inventory.drop=Droppe 1 Item aus Slot #{0} cmd.inventory.drop_stack=Droppe ganzen Item Stack aus Slot #{0} @@ -284,10 +338,29 @@ cmd.inventory.help.usage=Benutzung cmd.inventory.help.list=Liste deine Inventare auf. cmd.inventory.help.close=Schließe einen offenen Container. cmd.inventory.help.click=Klicke auf ein Item. +cmd.inventory.help.shiftclick= cmd.inventory.help.drop=Werfe ein Item aus deinem Inventar. cmd.inventory.help.creativegive=Gebe dir ein Item im Kreativmodus. cmd.inventory.help.creativedelete=Leere Slot im Kreativmodus. -cmd.inventory.help.unknown=Unbekannte Aktion. +cmd.inventory.help.inventories= +cmd.inventory.help.search= +cmd.inventory.help.unknown=Unbekannte Aktion. +cmd.inventory.found_items= +cmd.inventory.no_found_items= + +# Leave bed +cmd.bed.desc= +cmd.bed.leaving= +cmd.bed.trying_to_use= +cmd.bed.in= +cmd.bed.not_in= +cmd.bed.not_a_bed= +cmd.bed.searching= +cmd.bed.bed_not_found= +cmd.bed.found_a_bed_at= +cmd.bed.cant_reach_safely= +cmd.bed.moving= +cmd.bed.failed_to_reach_in_time= # List cmd.list.desc=Liste alle Spieler auf. @@ -301,6 +374,8 @@ cmd.look.desc=Schaue in eine Richtung oder auf Koordinaten. cmd.look.unknown=Unbekannte Richtung '{0}' cmd.look.at=Schaue nach YAW: {0} PITCH: {1} cmd.look.block=Schaue auf {0} +cmd.look.inspection= +cmd.look.noinspection= # Move cmd.move.desc=Laufe oder fange an zu laufen. @@ -313,11 +388,21 @@ cmd.move.fail=Konnte Pfad nach {0} nicht berechnen. cmd.move.suggestforce=Weg nach {0} konnte nicht berechnet werden. Benutze den -f Parameter, um unsichere Wege zu aktivieren. cmd.move.gravity.enabled=Gravitation ist aktiv. cmd.move.gravity.disabled=Gravitation ist deaktiviert. - +cmd.move.chunk_loading_status= +cmd.move.chunk_not_loaded= # Reco cmd.reco.desc=Starte neu und verbinde erneut zum Server. +# Reload +cmd.reload.started= +cmd.reload.warning1= +cmd.reload.warning2= +cmd.reload.warning3= +cmd.reload.warning4= +cmd.reload.finished= +cmd.reload.desc= + # Respawn cmd.respawn.desc=Benutze dies, um nach deinem Tod zu respawnen. cmd.respawn.done=Du wurdest respawned. @@ -353,6 +438,7 @@ cmd.tps.current=Aktuelle TPS # Useblock cmd.useblock.desc=Plaziere einen Block oder öffne eine Kiste +cmd.useblock.use= # Useitem cmd.useitem.desc=Benutze (links klick) ein Item auf der Hand @@ -362,6 +448,20 @@ cmd.useitem.use=Item wurde benutzt. [bot] # ChatBots. Naming style: bot.. +# Alerts +bot.alerts.start_rain= +bot.alerts.end_rain= +bot.alerts.start_thunderstorm= +bot.alerts.end_thunderstorm= + +# Anti AFK +bot.antiafk.not_using_terrain_handling= +bot.antiafk.invalid_range_partial= +bot.antiafk.invalid_range= +bot.antiafk.invalid_value= +bot.antiafk.swapping= +bot.antiafk.invalid_walk_range= + # AutoAttack bot.autoAttack.mode=Unbekannter Angriffsmodus: {0}. Benutze Einfach als Standard. bot.autoAttack.priority=Unbekannte Priorität: {0}. Benutze Entfernung als Standard. @@ -402,6 +502,8 @@ bot.autoCraft.exception.name_miss=Fehlender Rezeptname während der Rezeptüberg bot.autoCraft.exception.slot=Ungültiges Slot-Feld im Rezept: {0} bot.autoCraft.exception.duplicate=Doppelter Rezeptname angegeben: {0} bot.autoCraft.debug.no_config=Keine Config-Datei gefunden. Schreibe eine neue... +bot.autocraft.invaild_slots= +bot.autocraft.invaild_invaild_result= # AutoDrop bot.autoDrop.cmd=AutoDrop ChatBot Befehl @@ -420,9 +522,17 @@ bot.autoDrop.no_mode=Kann drop Modus nicht aus Config Datei lesen. Benutze inclu bot.autoDrop.no_inventory=Konnte Inventar nicht finden {0}! # AutoFish +bot.autoFish.no_inv_handle= +bot.autoFish.start= bot.autoFish.throw=Angel ausgeworfen! bot.autoFish.caught=Fisch gefangen! +bot.autoFish.caught_at= bot.autoFish.no_rod=Keine Angelrute in der Hand. Ist sie kaputt? +bot.autoFish.despawn= +bot.autoFish.fishing_timeout= +bot.autoFish.cast_timeout= +bot.autoFish.update_lookat= +bot.autoFish.switch= # AutoRelog bot.autoRelog.launch=Starte mit {0} reconnect Versuchen @@ -466,7 +576,7 @@ bot.mailer.init_fail.mail_retention=Konnte Mailer nicht aktivieren: Die Auslaufz bot.mailer.create.db=Erstelle neue Datenbank: {0} bot.mailer.create.ignore=Erstelle neue Ignore-Liste: {0} bot.mailer.load.db=Lade Datenbank-Datei: {0} -bot.mailer.load.ignore=Lade Ignore-Liste: +bot.mailer.load.ignore=Lade Ignore-Liste: bot.mailer.cmd=Mailer-Befehl @@ -482,12 +592,43 @@ bot.mailer.cmd.ignore.removed=Entferne {0} von der Ignore Liste! bot.mailer.cmd.ignore.invalid=Fehlender oder ungültiger Name. Benutzung: {0} bot.mailer.cmd.help=Siehe Benutzung +# Maps +bot.map.cmd.desc= +bot.map.cmd.not_found= +bot.map.cmd.invalid_id= +bot.map.received= +bot.map.no_maps= +bot.map.received_map= +bot.map.rendered= +bot.map.failed_to_render= +bot.map.list_item= + # ReplayCapture bot.replayCapture.cmd=replay Befehl bot.replayCapture.created=Replay-Datei erstellt. bot.replayCapture.stopped=Record angehalten. bot.replayCapture.restart=Aufnahme wurde angehalten. Starte das Programm neu um eine neue Aufnahme zu erstellen. +# Follow player +cmd.follow.desc= +cmd.follow.usage= +cmd.follow.already_stopped= +cmd.follow.stopping= +cmd.follow.invalid_name= +cmd.follow.invalid_player= +cmd.follow.cant_reach_player= +cmd.follow.already_following= +cmd.follow.switched= +cmd.follow.started= +cmd.follow.unsafe_enabled= +cmd.follow.note= +cmd.follow.player_came_to_the_range= +cmd.follow.resuming= +cmd.follow.player_left_the_range= +cmd.follow.pausing= +cmd.follow.player_left= +cmd.follow.stopping= + # Script bot.script.not_found=§8[MCC] [{0}] Konnte Skriptdatei nicht finden: {1} bot.script.file_not_found=Datei nicht gefunden: '{0}' @@ -508,3 +649,220 @@ bot.scriptScheduler.task=triggeronfirstlogin: {0}\n triggeronlogin: {1}\n trigge # TestBot bot.testBot.told=Bot: {0} told me : {1} bot.testBot.said=Bot: {0} said : {1} + + +[config] + +config.load= +config.load.fail= +config.write.fail= +config.backup.fail= +config.saving= + +# Head +config.Head= + +# Main.General +config.Main.General.account= +config.Main.General.login= +config.Main.General.server_info= +config.Main.General.method= + +# Main.Advanced +config.Main.Advanced= +config.Main.Advanced.language= +config.Main.Advanced.internal_cmd_char= +config.Main.Advanced.message_cooldown= +config.Main.Advanced.bot_owners= +config.Main.Advanced.mc_version= +config.Main.Advanced.mc_forge= +config.Main.Advanced.brand_info= +config.Main.Advanced.chatbot_log_file= +config.Main.Advanced.private_msgs_cmd_name= +config.Main.Advanced.show_system_messages= +config.Main.Advanced.show_xpbar_messages= +config.Main.Advanced.show_chat_links= +config.Main.Advanced.show_inventory_layout= +config.Main.Advanced.terrain_and_movements= +config.Main.Advanced.inventory_handling= +config.Main.Advanced.entity_handling= +config.Main.Advanced.session_cache= +config.Main.Advanced.profilekey_cache= +config.Main.Advanced.resolve_srv_records= +config.Main.Advanced.account_list= +config.Main.Advanced.server_list= +config.Main.Advanced.player_head_icon= +config.Main.Advanced.exit_on_failure= +config.Main.Advanced.script_cache= +config.Main.Advanced.timestamps= +config.Main.Advanced.auto_respawn= +config.Main.Advanced.minecraft_realms= +config.Main.Advanced.move_head_while_walking= +config.Main.Advanced.timeout= +config.Main.Advanced.enable_emoji= +config.Main.Advanced.movement_speed= +config.Main.Advanced.language.invaild= + +# Signature +config.Signature= +config.Signature.LoginWithSecureProfile= +config.Signature.SignChat= +config.Signature.SignMessageInCommand= +config.Signature.MarkLegallySignedMsg= +config.Signature.MarkModifiedMsg= +config.Signature.MarkIllegallySignedMsg= +config.Signature.MarkSystemMessage= +config.Signature.ShowModifiedChat= +config.Signature.ShowIllegalSignedChat= + +# Logging +config.Logging= +config.Logging.DebugMessages= +config.Logging.ChatMessages= +config.Logging.InfoMessages= +config.Logging.WarningMessages= +config.Logging.ErrorMessages= +config.Logging.ChatFilter= +config.Logging.DebugFilter= +config.Logging.FilterMode= +config.Logging.LogToFile= +config.Logging.LogFile= +config.Logging.PrependTimestamp= +config.Logging.SaveColorCodes= + +# AppVars +config.AppVars.Variables= + +# Proxy +config.Proxy= +config.Proxy.Enabled_Login= +config.Proxy.Enabled_Ingame= +config.Proxy.Server= +config.Proxy.Proxy_Type= +config.Proxy.Username= +config.Proxy.Password= + +# ChatFormat +config.ChatFormat= +config.ChatFormat.Builtins= +config.ChatFormat.UserDefined= + +# MCSettings +config.MCSettings= +config.MCSettings.Enabled= +config.MCSettings.Locale= +config.MCSettings.RenderDistance= +config.MCSettings.Difficulty= +config.MCSettings.ChatMode= +config.MCSettings.ChatColors= +config.MCSettings.MainHand= + +# ChatBot +config.ChatBot= + +# ChatBot.Alerts +config.ChatBot.Alerts= +config.ChatBot.Alerts.Beep_Enabled= +config.ChatBot.Alerts.Trigger_By_Words= +config.ChatBot.Alerts.Trigger_By_Rain= +config.ChatBot.Alerts.Trigger_By_Thunderstorm= +config.ChatBot.Alerts.Matches_File= +config.ChatBot.Alerts.Excludes_File= +config.ChatBot.Alerts.Log_To_File= +config.ChatBot.Alerts.Log_File= + +# ChatBot.AntiAFK +config.ChatBot.AntiAfk= +config.ChatBot.AntiAfk.Delay= +config.ChatBot.AntiAfk.Command= +config.ChatBot.AntiAfk.Use_Terrain_Handling= +config.ChatBot.AntiAfk.Walk_Range= +config.ChatBot.AntiAfk.Walk_Retries= + +# ChatBot.AutoAttack +config.ChatBot.AutoAttack= +config.ChatBot.AutoAttack.Mode= +config.ChatBot.AutoAttack.Priority= +config.ChatBot.AutoAttack.Cooldown_Time= +config.ChatBot.AutoAttack.Interaction= +config.ChatBot.AutoAttack.Attack_Hostile= +config.ChatBot.AutoAttack.Attack_Passive= +config.ChatBot.AutoAttack.List_Mode= +config.ChatBot.AutoAttack.Entites_List= + +# ChatBot.AutoCraft +config.ChatBot.AutoCraft= +config.ChatBot.AutoCraft.CraftingTable= +config.ChatBot.AutoCraft.OnFailure= +config.ChatBot.AutoCraft.Recipes= + +# ChatBot.AutoDrop +config.ChatBot.AutoDrop= +config.ChatBot.AutoDrop.Mode= + +# ChatBot.AutoEat +config.ChatBot.AutoEat= + +# ChatBot.AutoFishing +config.ChatBot.AutoFishing= +config.ChatBot.AutoFishing.Antidespawn= +config.ChatBot.AutoFishing.Mainhand= +config.ChatBot.AutoFishing.Auto_Start= +config.ChatBot.AutoFishing.Cast_Delay= +config.ChatBot.AutoFishing.Fishing_Delay= +config.ChatBot.AutoFishing.Fishing_Timeout= +config.ChatBot.AutoFishing.Durability_Limit= +config.ChatBot.AutoFishing.Auto_Rod_Switch= +config.ChatBot.AutoFishing.Stationary_Threshold= +config.ChatBot.AutoFishing.Hook_Threshold= +config.ChatBot.AutoFishing.Log_Fish_Bobber= +config.ChatBot.AutoFishing.Enable_Move= +config.ChatBot.AutoFishing.Movements= + +# ChatBot.AutoRelog +config.ChatBot.AutoRelog= +config.ChatBot.AutoRelog.Delay= +config.ChatBot.AutoRelog.Retries= +config.ChatBot.AutoRelog.Ignore_Kick_Message= +config.ChatBot.AutoRelog.Kick_Messages= + +# ChatBot.AutoRespond +config.ChatBot.AutoRespond= +config.ChatBot.AutoRespond.Match_Colors= + +# ChatBot.ChatLog +config.ChatBot.ChatLog= + +# ChatBot.FollowPlayer +config.ChatBot.FollowPlayer= +config.ChatBot.FollowPlayer.Update_Limit= +config.ChatBot.FollowPlayer.Stop_At_Distance= + +# ChatBot.HangmanGame +config.ChatBot.HangmanGame= + +# ChatBot.Mailer +config.ChatBot.Mailer= + +# ChatBot.Map +config.ChatBot.Map= +config.ChatBot.Map.Should_Resize= +config.ChatBot.Map.Resize_To= +config.ChatBot.Map.Auto_Render_On_Update= +config.ChatBot.Map.Delete_All_On_Unload= +config.ChatBot.Map.Notify_On_First_Update= + +# ChatBot.PlayerListLogger +config.ChatBot.PlayerListLogger= +config.ChatBot.PlayerListLogger.Delay= + +# ChatBot.RemoteControl +config.ChatBot.RemoteControl= + +# ChatBot.ReplayCapture +config.ChatBot.ReplayCapture= +config.ChatBot.ReplayCapture.Backup_Interval= + +# ChatBot.ScriptScheduler +config.ChatBot.ScriptScheduler= + diff --git a/MinecraftClient/Resources/lang/en.ini b/MinecraftClient/Resources/lang/en.ini index cb617770..f9c2f0d9 100644 --- a/MinecraftClient/Resources/lang/en.ini +++ b/MinecraftClient/Resources/lang/en.ini @@ -91,13 +91,7 @@ error.no_version_report=§8Server does not report its protocol version, autodete error.connection_timeout=§8A timeout occured while attempting to connect to this IP. error.forge=§8Forge Login Handshake did not complete successfully error.forge_encrypt=§8Forge StartEncryption Handshake did not complete successfully -error.setting.str2int=Failed to convert '{0}' into an integer. Please check your settings. -error.setting.str2double=Failed to convert '{0}' to a floating-point number. Please check your settings. -error.setting.str2locationList.convert_fail=Failed to convert '{0}' to a floating point number. Please check your settings. -error.setting.str2locationList.format_err=Wrong format, can't parse '{0}' into position data.. Please check your settings. error.setting.argument_syntax={0}: Invalid syntax, expecting --argname=value or --section.argname=value -error.setting.unknown_section={0}: Unknown setting section '{1}' -error.setting.unknown_or_invalid={0}: Unknown setting or invalid value error.http_code=§8Got error code from server: {0} error.auth=§8Got error code from server while refreshing authentication: {0} error.realms.ip_error=Cannot retrieve the server IP of your Realms world @@ -425,7 +419,7 @@ cmd.setrndstr.format=setrnd variable string1 "\"string2\" string3" # Sneak cmd.sneak.desc=Toggles sneaking cmd.sneak.on=You are sneaking now -cmd.sneak.off=You aren't sneaking anymore +cmd.sneak.off=You are not sneaking anymore # DropItem cmd.dropItem.desc=Drop specified type of items from player inventory or opened container @@ -449,23 +443,18 @@ cmd.useitem.use=Used an item # ChatBots. Naming style: bot.. # Alerts -bot.alerts.start_rain=§cWeather change: It's raining now.§r -bot.alerts.end_rain=§cWeather change: It's no longer raining.§r -bot.alerts.start_thunderstorm=§cWeather change: It's a thunderstorm.§r -bot.alerts.end_thunderstorm=§cWeather change: It's no longer a thunderstorm.§r +bot.alerts.start_rain=§cWeather change: It is raining now.§r +bot.alerts.end_rain=§cWeather change: It is no longer raining.§r +bot.alerts.start_thunderstorm=§cWeather change: It is a thunderstorm.§r +bot.alerts.end_thunderstorm=§cWeather change: It is no longer a thunderstorm.§r # Anti AFK bot.antiafk.not_using_terrain_handling=The terrain handling is not enabled in the settings of the client, enable it if you want to use it with this bot. Using alternative (command) method. -bot.antiafk.invalid_range_partial=Invalid time range provided, using the first part of the range {0} as the time! -bot.antiafk.invalid_range=Invalid time range provided, using default time of 600! -bot.antiafk.invalid_value=Invalid time provided, using default time of 600! bot.antiafk.swapping=The time range begins with a bigger value, swapped them around. bot.antiafk.invalid_walk_range=Invalid walk range provided, must be a positive integer greater than 0, using default value of 5! # AutoAttack -bot.autoAttack.mode=Unknown attack mode: {0}. Using single mode as default. -bot.autoAttack.priority=Unknown priority: {0}. Using distance priority as default. -bot.autoAttack.invalidcooldown=Attack cooldown value cannot be smaller than 0. Using auto as default +bot.autoAttack.invalidcooldown=Attack cooldown value cannot be smaller than 0. # AutoCraft bot.autoCraft.cmd=Auto-crafting ChatBot command @@ -493,13 +482,7 @@ bot.autoCraft.aborted=Crafting aborted! Check your available materials. bot.autoCraft.craft_fail=Crafting failed! Waiting for more materials bot.autoCraft.timeout=Action timeout! Reason: {0} bot.autoCraft.error.config=Error while parsing config: {0} -bot.autoCraft.exception.empty=Empty configuration file: {0} -bot.autoCraft.exception.invalid=Invalid configuration file: {0} -bot.autoCraft.exception.item_miss=Missing item in recipe: {0} -bot.autoCraft.exception.invalid_table=Invalid tablelocation format: {0} -bot.autoCraft.exception.item_name=Invalid item name in recipe {0} at {1} bot.autoCraft.exception.name_miss=Missing recipe name while parsing a recipe -bot.autoCraft.exception.slot=Invalid slot field in recipe: {0} bot.autoCraft.exception.duplicate=Duplicate recipe name specified: {0} bot.autoCraft.debug.no_config=No config found. Writing a new one. bot.autocraft.invaild_slots=The number of slots does not match and has been adjusted automatically. @@ -636,8 +619,6 @@ bot.script.fail=Script '{0}' failed to run ({1}). bot.script.pm.loaded=Script '{0}' loaded. # ScriptScheduler -bot.scriptScheduler.loading=Loading tasks from '{0}' -bot.scriptScheduler.not_found=File not found: '{0}' bot.scriptScheduler.loaded_task=Loaded task:\n{0} bot.scriptScheduler.no_trigger=This task will never trigger:\n{0} bot.scriptScheduler.no_action=No action for task:\n{0} diff --git a/MinecraftClient/Resources/lang/fr.ini b/MinecraftClient/Resources/lang/fr.ini index 3b6e904a..b2af8a9b 100644 --- a/MinecraftClient/Resources/lang/fr.ini +++ b/MinecraftClient/Resources/lang/fr.ini @@ -1,15 +1,22 @@ [mcc] # Messages from MCC itself +mcc.help_us_translate= +mcc.run_with_default_settings= +mcc.settings_generated= +mcc.has_update= mcc.login=Connexion : mcc.login_basic_io=Veuillez saisir un nom d'utilisateur ou une adresse email. -mcc.password=Mot de passe : +mcc.password=Mot de passe : mcc.password_basic_io=Saisissez le mot de passe pour {0}. mcc.password_hidden=Mot de passe : {0} mcc.offline=§8Vous avez choisi d'utiliser le mode hors ligne. mcc.session_invalid=§8Le cache de la session est invalide ou a expiré. mcc.session_valid=§8Le cache de la session est encore valable pendant {0}. +mcc.profile_key_invalid= +mcc.profile_key_valid= mcc.connecting=Connexion à {0}... -mcc.ip=Adresse IP du Serveur : +mcc.fetching_key= +mcc.ip=Adresse IP du Serveur : mcc.use_version=§8Utilisation de la version {0} de Minecraft (protocole v{1}) mcc.unknown_version=§8Version MC non connue ou non supportée. {0}.\nPassage en mode autodétection. mcc.forge=Vérification si le serveur utilise Forge... @@ -20,7 +27,7 @@ mcc.not_found=§8Échec de la résolution SRV pour {0}\n{1} : {2} mcc.retrieve=Récupération des informations du serveur... mcc.restart=Redémarrage de Minecraft Console Client... mcc.restart_delay=Attente de {0} secondes avant de redémarrer... -mcc.server_version=Version du serveur : +mcc.server_version=Version du serveur : mcc.disconnected=Actuellement non connecté à un serveur. Utilisez '{0}help' pour obtenir de l'aide. mcc.press_exit=Ou appuyez sur la touche Entrer pour quitter Minecraft Console Client. mcc.version_supported=La version est prise en charge.\nConnexion... @@ -41,13 +48,16 @@ mcc.with_forge=, avec Forge mcc.handshake=§8Handshake réussi. (ID Serveur : {0}) mcc.realms_available=Vous avez accès aux mondes Realms suivants mcc.realms_join=Utilisez realms: comme ip de serveur pour rejoindre un monde Realms - +mcc.generator.generating= +mcc.generator.done= [debug] # Messages from MCC Debug Mode debug.color_test=Test des couleurs : Votre terminal devrait afficher {0} debug.session_cache_ok=§8Informations de Session chargées depuis le disque avec succès. debug.session_cache_fail=§8Aucune session n'a pu être chargé depuis le disque +debug.keys_cache_ok= +debug.keys_cache_fail= debug.session_id=Succès. (ID de Session : {0}) debug.crypto=§8Clé de chiffrement & hash générés. debug.request=§8Envoi d'une requête à {0} @@ -58,7 +68,7 @@ error.ping=Échec du ping sur l'IP. error.unsupported=Impossible de se connecter au serveur : Cette version n'est pas prise en charge ! error.determine=La version du serveur n'a pas pu être déterminée. error.forgeforce=Impossible de forcer le support de Forge sur cette version de Minecraft ! -error.login=Échec d'authentification : +error.login=Échec d'authentification : error.login.migrated=Compte migré, utiliser l'email à la place du nom d'utilisateur. error.login.server=Serveur d'authentification indisponible. Veuillez réessayer ultérieurement. error.login.blocked=Mot de passe incorrect, IP bannie ou trop de connexions. @@ -82,6 +92,9 @@ error.connection_timeout=§8La connexion à cette adresse IP n'a pas abouti (tim error.forge=§8Le Handshake Forge (Login) n'a pas réussi error.forge_encrypt=§8Le Handshake Forge (StartEncryption) n'a pas réussi error.setting.str2int=Échec de la conversion '{0}' en nombre entier. Veuillez vérifier la configuration. +error.setting.str2double= +error.setting.str2locationList.convert_fail= +error.setting.str2locationList.format_err= error.setting.argument_syntax={0} : Syntaxe invalide, --argname=value ou --section.argname=value attendu error.setting.unknown_section={0} : Section de configuration '{1}' inconnue error.setting.unknown_or_invalid={0} : Paramètre inconnu ou valeur invalide @@ -92,6 +105,11 @@ error.realms.access_denied=Ce monde Realms n'existe pas ou l'accès a été refu error.realms.server_unavailable=Le serveur peut nécessiter un peu de temps pour démarrer. Veuillez réessayer plus tard. error.realms.server_id=ID Realms invalide ou inconnu. error.realms.disabled=Tentative de connexion à un monde Realms mais le support Realms est désactivé dans la configuration +error.missing.argument= +error.usage= +error.generator.invalid= +error.generator.path= +error.generator.json= [internal command] # MCC internal help command @@ -173,6 +191,14 @@ cache.ignore_line=§8Ignoré une ligne de jeton de session invalide : {0} cache.read_fail_plain=§8Échec de la lecture ddu fichier de cache de sessions : {0} cache.saving=§8Sauvegarde du cache de sessions sur le disque cache.save_fail=§8Échec d'écriture du fichier de cache de sessions : {0} +# Profile Key Cache +cache.loading_keys= +cache.loaded_keys= +cache.ignore_string_keys= +cache.ignore_line_keys= +cache.read_fail_plain_keys= +cache.saving_keys= +cache.save_fail_keys= [proxy] proxy.connected=§8Connecté au proxy {0}:{1} @@ -186,6 +212,7 @@ chat.fail=§8Échec de téléchargement du fichier. chat.from_dir=§8Utilisation à la place de en_GB.lang depuis votre jeu Minecraft. chat.loaded=§8Fichier de traductions chargé. chat.not_found=§8Fichier de traductions non trouvé : '{0}'\nCertains messages ne seront pas affichés correctement sans ce fichier. +chat.message_chain_broken= [general] # General message/information (i.e. Done) @@ -201,12 +228,23 @@ general.available_cmd=Commandes disponibles : {0} # Animation cmd.animation.desc=Balancer le bras. +# Bots +cmd.bots.desc= +cmd.bots.list= +cmd.bots.notfound= +cmd.bots.noloaded= +cmd.bots.unloaded= +cmd.bots.unloaded_all= + # ChangeSlot cmd.changeSlot.desc=Changer de slot (emplacement) dans la hotbar cmd.changeSlot.nan=Le slot n'a pas pu être changé : Numéro invalide cmd.changeSlot.changed=Slot sélectionné : {0} cmd.changeSlot.fail=Le slot n'a pas pu être sélectionné +# Chunk +cmd.chunk.desc= + # Connect cmd.connect.desc=Se connecter au serveur spécifié cmd.connect.unknown=Compte '{0}' inconnu. @@ -248,6 +286,19 @@ cmd.entityCmd.distance=Distance cmd.entityCmd.location=Emplacement cmd.entityCmd.type=Type +# Exec If +cmd.execif.desc= +cmd.execif.executed= +cmd.execif.executed_no_output= +cmd.execif.error_occured= +cmd.execif.error= + +# Exec Multi +cmd.execmulti.desc= +cmd.execmulti.executed= +cmd.execmulti.result= +cmd.execmulti.no_result= + # Exit cmd.exit.desc=Se déconnecter du serveur. @@ -267,15 +318,18 @@ cmd.inventory.close_fail=Impossible de fermer l'inventaire #{0} cmd.inventory.not_exist=L'inventaire #{0} n'existe pas cmd.inventory.inventory=Inventaire cmd.inventory.inventories=Inventaires +cmd.inventory.inventories_available= cmd.inventory.hotbar=Votre sélection dans la horbar : {0} cmd.inventory.damage=Dommage cmd.inventory.left=gauche cmd.inventory.right=droit cmd.inventory.middle=du milieu cmd.inventory.clicking=Clic {0} sur le slot {1} dans la fenêtre #{2} +cmd.inventory.shiftclick= +cmd.inventory.shiftclick_fail= cmd.inventory.no_item=Aucun objet dans le slot #{0} cmd.inventory.drop=Lâché 1 objet depuis le slot #{0} -cmd.inventory.drop_stack=Lâché tous les objets du slot #{0} +cmd.inventory.drop_stack=Lâché tous les objets du slot #{0} # Inventory Help cmd.inventory.help.basic=Utilisation de base cmd.inventory.help.available=Actions possibles @@ -284,10 +338,29 @@ cmd.inventory.help.usage=Utilisation cmd.inventory.help.list=Lister votre inventaire. cmd.inventory.help.close=Fermer un conteneur ouvert. cmd.inventory.help.click=Cliquer sur un objet. +cmd.inventory.help.shiftclick= cmd.inventory.help.drop=Lâcher un objet de votre inventaire. cmd.inventory.help.creativegive=Se donner un objet en mode créatif. cmd.inventory.help.creativedelete=Vider un slot en mode créatif. -cmd.inventory.help.unknown=Action inconnue. +cmd.inventory.help.inventories= +cmd.inventory.help.search= +cmd.inventory.help.unknown=Action inconnue. +cmd.inventory.found_items= +cmd.inventory.no_found_items= + +# Leave bed +cmd.bed.desc= +cmd.bed.leaving= +cmd.bed.trying_to_use= +cmd.bed.in= +cmd.bed.not_in= +cmd.bed.not_a_bed= +cmd.bed.searching= +cmd.bed.bed_not_found= +cmd.bed.found_a_bed_at= +cmd.bed.cant_reach_safely= +cmd.bed.moving= +cmd.bed.failed_to_reach_in_time= # List cmd.list.desc=Lister les joueurs connectés. @@ -301,6 +374,8 @@ cmd.look.desc=Regarder dans une direction ou des coordonnées. cmd.look.unknown=Direction inconnue : '{0}' cmd.look.at=Rotation de la tête (YAW:{0}, PITCH:{1}) cmd.look.block=Rotation de la tête vers : {0} +cmd.look.inspection= +cmd.look.noinspection= # Move cmd.move.desc=Marcher ou commencer à marcher. @@ -313,10 +388,21 @@ cmd.move.fail=Échec de calcul du chemin vers {0} cmd.move.suggestforce=Échec de calcul du chemin vers {0}. Utilisez -f pour autoriser les mouvements risqués. cmd.move.gravity.enabled=La gravité est activée. cmd.move.gravity.disabled=La gravité est désactivée. +cmd.move.chunk_loading_status= +cmd.move.chunk_not_loaded= # Reco cmd.reco.desc=Relancer le programme et se reconnecter au serveur +# Reload +cmd.reload.started= +cmd.reload.warning1= +cmd.reload.warning2= +cmd.reload.warning3= +cmd.reload.warning4= +cmd.reload.finished= +cmd.reload.desc= + # Respawn cmd.respawn.desc=Réapparaitre sur le serveur si vous êtes mort. cmd.respawn.done=Vous êtes réapparu. @@ -352,6 +438,7 @@ cmd.tps.current=TPS actuel # Useblock cmd.useblock.desc=Placer un bloc ou ouvrir un coffre +cmd.useblock.use= # Useitem cmd.useitem.desc=Utiliser (clic gauche) un objet dans la main @@ -361,6 +448,20 @@ cmd.useitem.use=Objet utilisé [bot] # ChatBots. Naming style: bot.. +# Alerts +bot.alerts.start_rain= +bot.alerts.end_rain= +bot.alerts.start_thunderstorm= +bot.alerts.end_thunderstorm= + +# Anti AFK +bot.antiafk.not_using_terrain_handling= +bot.antiafk.invalid_range_partial= +bot.antiafk.invalid_range= +bot.antiafk.invalid_value= +bot.antiafk.swapping= +bot.antiafk.invalid_walk_range= + # AutoAttack bot.autoAttack.mode=Mode d'attaque inconnu : {0}. Utilisation du mode par défaut (single). bot.autoAttack.priority=Priorité inconnue : {0}. Utilisation du mode par défaut (privilégier la distance). @@ -401,6 +502,8 @@ bot.autoCraft.exception.name_miss=Nom manquant lors du chargement d'une recette bot.autoCraft.exception.slot=Slot invalide dans la recette : {0} bot.autoCraft.exception.duplicate=Nom de recette spécifié en double : {0} bot.autoCraft.debug.no_config=Fichier de configuration introuvable. Création d'un nouveau fichier. +bot.autocraft.invaild_slots= +bot.autocraft.invaild_invaild_result= # AutoDrop bot.autoDrop.cmd=Commande du ChatBot AutoDrop @@ -419,9 +522,17 @@ bot.autoDrop.no_mode=Impossible de lire le mode de Drop dans la configuration. U bot.autoDrop.no_inventory=Impossible de trouver l'inventaire {0} ! # AutoFish +bot.autoFish.no_inv_handle= +bot.autoFish.start= bot.autoFish.throw=Canne à pêche lancée bot.autoFish.caught=Poisson attrapé ! +bot.autoFish.caught_at= bot.autoFish.no_rod=Pas de canne a pêche dans la main. Peut-être a-t-elle cassé ? +bot.autoFish.despawn= +bot.autoFish.fishing_timeout= +bot.autoFish.cast_timeout= +bot.autoFish.update_lookat= +bot.autoFish.switch= # AutoRelog bot.autoRelog.launch=Lancement avec {0} tentatives de reconnexion @@ -465,7 +576,7 @@ bot.mailer.init_fail.mail_retention=Impossible d'activer le Mailer : La rétenti bot.mailer.create.db=Création d'un nouveau fichier de base de données : {0} bot.mailer.create.ignore=Création d'une nouvelle liste d'exclusions : {0} bot.mailer.load.db=Chargement de la base de données : {0} -bot.mailer.load.ignore=Chargement de la liste d'exclusions : +bot.mailer.load.ignore=Chargement de la liste d'exclusions : bot.mailer.cmd=Commande du Mailer @@ -481,12 +592,43 @@ bot.mailer.cmd.ignore.removed=Retrait de {0} de la liste d'exclusions ! bot.mailer.cmd.ignore.invalid=Nom manquant ou invalide. Utilisation : {0} bot.mailer.cmd.help=Voir l'utilisation +# Maps +bot.map.cmd.desc= +bot.map.cmd.not_found= +bot.map.cmd.invalid_id= +bot.map.received= +bot.map.no_maps= +bot.map.received_map= +bot.map.rendered= +bot.map.failed_to_render= +bot.map.list_item= + # ReplayCapture bot.replayCapture.cmd=Commande de Replay bot.replayCapture.created=Fichier de Replay créé. bot.replayCapture.stopped=Enregistrement arrêté. bot.replayCapture.restart=L'enregistrement a été stoppé. Redémarrez le programme pour commencer un nouvel enregistrement. +# Follow player +cmd.follow.desc= +cmd.follow.usage= +cmd.follow.already_stopped= +cmd.follow.stopping= +cmd.follow.invalid_name= +cmd.follow.invalid_player= +cmd.follow.cant_reach_player= +cmd.follow.already_following= +cmd.follow.switched= +cmd.follow.started= +cmd.follow.unsafe_enabled= +cmd.follow.note= +cmd.follow.player_came_to_the_range= +cmd.follow.resuming= +cmd.follow.player_left_the_range= +cmd.follow.pausing= +cmd.follow.player_left= +cmd.follow.stopping= + # Script bot.script.not_found=§8[MCC] [{0}] Impossible de trouver le fichier de script : {1} bot.script.file_not_found=Fichier non trouvé : '{0}' @@ -507,3 +649,220 @@ bot.scriptScheduler.task=triggeronfirstlogin : {0}\n triggeronlogin : {1}\n trig # TestBot bot.testBot.told=Bot : {0} m'a dit : {1} bot.testBot.said=Bot : {0} a dit : {1} + + +[config] + +config.load= +config.load.fail= +config.write.fail= +config.backup.fail= +config.saving= + +# Head +config.Head= + +# Main.General +config.Main.General.account= +config.Main.General.login= +config.Main.General.server_info= +config.Main.General.method= + +# Main.Advanced +config.Main.Advanced= +config.Main.Advanced.language= +config.Main.Advanced.internal_cmd_char= +config.Main.Advanced.message_cooldown= +config.Main.Advanced.bot_owners= +config.Main.Advanced.mc_version= +config.Main.Advanced.mc_forge= +config.Main.Advanced.brand_info= +config.Main.Advanced.chatbot_log_file= +config.Main.Advanced.private_msgs_cmd_name= +config.Main.Advanced.show_system_messages= +config.Main.Advanced.show_xpbar_messages= +config.Main.Advanced.show_chat_links= +config.Main.Advanced.show_inventory_layout= +config.Main.Advanced.terrain_and_movements= +config.Main.Advanced.inventory_handling= +config.Main.Advanced.entity_handling= +config.Main.Advanced.session_cache= +config.Main.Advanced.profilekey_cache= +config.Main.Advanced.resolve_srv_records= +config.Main.Advanced.account_list= +config.Main.Advanced.server_list= +config.Main.Advanced.player_head_icon= +config.Main.Advanced.exit_on_failure= +config.Main.Advanced.script_cache= +config.Main.Advanced.timestamps= +config.Main.Advanced.auto_respawn= +config.Main.Advanced.minecraft_realms= +config.Main.Advanced.move_head_while_walking= +config.Main.Advanced.timeout= +config.Main.Advanced.enable_emoji= +config.Main.Advanced.movement_speed= +config.Main.Advanced.language.invaild= + +# Signature +config.Signature= +config.Signature.LoginWithSecureProfile= +config.Signature.SignChat= +config.Signature.SignMessageInCommand= +config.Signature.MarkLegallySignedMsg= +config.Signature.MarkModifiedMsg= +config.Signature.MarkIllegallySignedMsg= +config.Signature.MarkSystemMessage= +config.Signature.ShowModifiedChat= +config.Signature.ShowIllegalSignedChat= + +# Logging +config.Logging= +config.Logging.DebugMessages= +config.Logging.ChatMessages= +config.Logging.InfoMessages= +config.Logging.WarningMessages= +config.Logging.ErrorMessages= +config.Logging.ChatFilter= +config.Logging.DebugFilter= +config.Logging.FilterMode= +config.Logging.LogToFile= +config.Logging.LogFile= +config.Logging.PrependTimestamp= +config.Logging.SaveColorCodes= + +# AppVars +config.AppVars.Variables= + +# Proxy +config.Proxy= +config.Proxy.Enabled_Login= +config.Proxy.Enabled_Ingame= +config.Proxy.Server= +config.Proxy.Proxy_Type= +config.Proxy.Username= +config.Proxy.Password= + +# ChatFormat +config.ChatFormat= +config.ChatFormat.Builtins= +config.ChatFormat.UserDefined= + +# MCSettings +config.MCSettings= +config.MCSettings.Enabled= +config.MCSettings.Locale= +config.MCSettings.RenderDistance= +config.MCSettings.Difficulty= +config.MCSettings.ChatMode= +config.MCSettings.ChatColors= +config.MCSettings.MainHand= + +# ChatBot +config.ChatBot= + +# ChatBot.Alerts +config.ChatBot.Alerts= +config.ChatBot.Alerts.Beep_Enabled= +config.ChatBot.Alerts.Trigger_By_Words= +config.ChatBot.Alerts.Trigger_By_Rain= +config.ChatBot.Alerts.Trigger_By_Thunderstorm= +config.ChatBot.Alerts.Matches_File= +config.ChatBot.Alerts.Excludes_File= +config.ChatBot.Alerts.Log_To_File= +config.ChatBot.Alerts.Log_File= + +# ChatBot.AntiAFK +config.ChatBot.AntiAfk= +config.ChatBot.AntiAfk.Delay= +config.ChatBot.AntiAfk.Command= +config.ChatBot.AntiAfk.Use_Terrain_Handling= +config.ChatBot.AntiAfk.Walk_Range= +config.ChatBot.AntiAfk.Walk_Retries= + +# ChatBot.AutoAttack +config.ChatBot.AutoAttack= +config.ChatBot.AutoAttack.Mode= +config.ChatBot.AutoAttack.Priority= +config.ChatBot.AutoAttack.Cooldown_Time= +config.ChatBot.AutoAttack.Interaction= +config.ChatBot.AutoAttack.Attack_Hostile= +config.ChatBot.AutoAttack.Attack_Passive= +config.ChatBot.AutoAttack.List_Mode= +config.ChatBot.AutoAttack.Entites_List= + +# ChatBot.AutoCraft +config.ChatBot.AutoCraft= +config.ChatBot.AutoCraft.CraftingTable= +config.ChatBot.AutoCraft.OnFailure= +config.ChatBot.AutoCraft.Recipes= + +# ChatBot.AutoDrop +config.ChatBot.AutoDrop= +config.ChatBot.AutoDrop.Mode= + +# ChatBot.AutoEat +config.ChatBot.AutoEat= + +# ChatBot.AutoFishing +config.ChatBot.AutoFishing= +config.ChatBot.AutoFishing.Antidespawn= +config.ChatBot.AutoFishing.Mainhand= +config.ChatBot.AutoFishing.Auto_Start= +config.ChatBot.AutoFishing.Cast_Delay= +config.ChatBot.AutoFishing.Fishing_Delay= +config.ChatBot.AutoFishing.Fishing_Timeout= +config.ChatBot.AutoFishing.Durability_Limit= +config.ChatBot.AutoFishing.Auto_Rod_Switch= +config.ChatBot.AutoFishing.Stationary_Threshold= +config.ChatBot.AutoFishing.Hook_Threshold= +config.ChatBot.AutoFishing.Log_Fish_Bobber= +config.ChatBot.AutoFishing.Enable_Move= +config.ChatBot.AutoFishing.Movements= + +# ChatBot.AutoRelog +config.ChatBot.AutoRelog= +config.ChatBot.AutoRelog.Delay= +config.ChatBot.AutoRelog.Retries= +config.ChatBot.AutoRelog.Ignore_Kick_Message= +config.ChatBot.AutoRelog.Kick_Messages= + +# ChatBot.AutoRespond +config.ChatBot.AutoRespond= +config.ChatBot.AutoRespond.Match_Colors= + +# ChatBot.ChatLog +config.ChatBot.ChatLog= + +# ChatBot.FollowPlayer +config.ChatBot.FollowPlayer= +config.ChatBot.FollowPlayer.Update_Limit= +config.ChatBot.FollowPlayer.Stop_At_Distance= + +# ChatBot.HangmanGame +config.ChatBot.HangmanGame= + +# ChatBot.Mailer +config.ChatBot.Mailer= + +# ChatBot.Map +config.ChatBot.Map= +config.ChatBot.Map.Should_Resize= +config.ChatBot.Map.Resize_To= +config.ChatBot.Map.Auto_Render_On_Update= +config.ChatBot.Map.Delete_All_On_Unload= +config.ChatBot.Map.Notify_On_First_Update= + +# ChatBot.PlayerListLogger +config.ChatBot.PlayerListLogger= +config.ChatBot.PlayerListLogger.Delay= + +# ChatBot.RemoteControl +config.ChatBot.RemoteControl= + +# ChatBot.ReplayCapture +config.ChatBot.ReplayCapture= +config.ChatBot.ReplayCapture.Backup_Interval= + +# ChatBot.ScriptScheduler +config.ChatBot.ScriptScheduler= + diff --git a/MinecraftClient/Resources/lang/ru.ini b/MinecraftClient/Resources/lang/ru.ini index 83757a3c..886b1923 100644 --- a/MinecraftClient/Resources/lang/ru.ini +++ b/MinecraftClient/Resources/lang/ru.ini @@ -1,15 +1,22 @@ [mcc] # Messages from MCC itself +mcc.help_us_translate= +mcc.run_with_default_settings= +mcc.settings_generated= +mcc.has_update= mcc.login=Логин : mcc.login_basic_io=Пожалуйста, введите имя пользователя или email по вашему выбору. -mcc.password=Пароль: +mcc.password=Пароль: mcc.password_basic_io=Пожалуйста, введите пароль для {0}. mcc.password_hidden=Пароль: {0} mcc.offline=§8Вы выбрали запуск в автономном режиме. mcc.session_invalid=§8Кэшированная сессия недействительна или истекла. mcc.session_valid=§8Кэшированная сессия все еще действительна для {0}. +mcc.profile_key_invalid= +mcc.profile_key_valid= mcc.connecting=Подключение к {0}... -mcc.ip=IP сервера: +mcc.fetching_key= +mcc.ip=IP сервера: mcc.use_version=§8Используется Minecraft версии {0} (протокол v{1}) mcc.unknown_version=§8Неизвестная или не поддерживаемая версия MC {0}.\nПереключение в режим автоопределения. mcc.forge=Проверка, запущен ли на сервере Forge... @@ -20,7 +27,7 @@ mcc.not_found=§8Failed to perform SRV lookup for {0}\n{1}: {2} mcc.retrieve=Получение информации о сервере... mcc.restart=Перезапуск консольного клиента Minecraft... mcc.restart_delay=Ожидание {0} секунд перед перезапуском... -mcc.server_version=Версия сервера: +mcc.server_version=Версия сервера: mcc.disconnected=Не подключен ни к одному серверу. Используйте '{0}help' для получения справки. mcc.press_exit=Нажмите Enter, чтобы выйти из консольного клиента Minecraft. mcc.version_supported=Версия поддерживается.\nВойти в игру... @@ -41,13 +48,16 @@ mcc.with_forge=, с Forge mcc.handshake=§8Handshake successful. (ID сервера: {0}) mcc.realms_available=У вас есть доступ к следующим мирам Realms mcc.realms_join=Используйте realms:index как IP сервера, чтобы присоединиться к миру Realms - +mcc.generator.generating= +mcc.generator.done= [debug] # Messages from MCC Debug Mode debug.color_test=Цветовой тест: В вашем терминале должно отображаться {0} debug.session_cache_ok=§8Данные сессии успешно загружены с диска. debug.session_cache_fail=§8Ни одна сессия не могла быть загружена с диска +debug.keys_cache_ok= +debug.keys_cache_fail= debug.session_id=Успех. (ID сессии: {0}) debug.crypto=§8Сгенерированы криптографические ключи и хэш. debug.request=§8Выполнение запроса к {0} @@ -58,7 +68,7 @@ error.ping=Не удалось выполнить ping этого IP. error.unsupported=Не удается подключиться к серверу: эта версия не поддерживается! error.determine=Не удалось определить версию сервера. error.forgeforce=Не удается принудительно включить поддержку Forge для этой версии Minecraft! -error.login=Не удалось войти в систему Minecraft : +error.login=Не удалось войти в систему Minecraft : error.login.migrated=Аккаунт перенесен, используйте e-mail в качестве имени пользователя. error.login.server=Серверы входа недоступны. Пожалуйста, повторите попытку позже. error.login.blocked=Неправильный пароль, IP из черного списка или слишком много логинов. @@ -82,6 +92,9 @@ error.connection_timeout=§8При попытке подключения к эт error.forge=§8Forge Login Handshake не завершилось успешно error.forge_encrypt=§8Forge StartEncryption Handshake не завершилось успешно error.setting.str2int=Не удалось преобразовать '{0}' в int. Проверьте свои настройки. +error.setting.str2double= +error.setting.str2locationList.convert_fail= +error.setting.str2locationList.format_err= error.setting.argument_syntax={0}: Неверный синтаксис, ожидается --argname=value или --section.argname=value error.setting.unknown_section={0}: Неизвестный раздел настройки '{1}' error.setting.unknown_or_invalid={0}: Неизвестная настройка или недопустимое значение @@ -92,6 +105,11 @@ error.realms.access_denied=Этот мир Realms не существует ил error.realms.server_unavailable=Серверу Realms может потребоваться некоторое время для запуска. Пожалуйста, повторите попытку позже. error.realms.server_id=Неверный или неизвестный идентификатор сервера Realms. error.realms.disabled=Попытка присоединиться к миру Realms, но поддержка Realms отключена в конфигурации +error.missing.argument= +error.usage= +error.generator.invalid= +error.generator.path= +error.generator.json= [internal command] # MCC internal help command @@ -114,7 +132,7 @@ exception.chatbot.init= Методы ChatBot НЕ должны вызывать exception.csrunner.invalid_head=Предоставленный скрипт не имеет действительного заголовка MCCScript [chatbot] -# API ChatBot +# ChatBot API chatbot.reconnect=[{0}] Отключение и повторное подключение к серверу [filemonitor] @@ -173,6 +191,14 @@ cache.ignore_line=§8Игнорирование недопустимой стр cache.read_fail_plain=§8Не удалось прочитать кэш сессии с диска: {0} cache.saving=§8Сохранение кэша сессии на диск cache.save_fail=§8Не удалось записать кэш сессии на диск: {0} +# Profile Key Cache +cache.loading_keys= +cache.loaded_keys= +cache.ignore_string_keys= +cache.ignore_line_keys= +cache.read_fail_plain_keys= +cache.saving_keys= +cache.save_fail_keys= [proxy] proxy.connected=§8Подключен к прокси {0}:{1} @@ -186,6 +212,7 @@ chat.fail=§8Не удалось загрузить файл. chat.from_dir=§8Дополнительно к en_GB.lang из вашей директории Minecraft. chat.loaded=§8Файл переводов загружен. chat.not_found=§8Файл переводов не найден: '{0}'\nНекоторые сообщения не будут правильно печататься без этого файла. +chat.message_chain_broken= [general] # General message/information (i.e. Done) @@ -201,12 +228,23 @@ general.available_cmd=Доступные команды: {0} # Animation cmd.animation.desc=Взмах руки. +# Bots +cmd.bots.desc= +cmd.bots.list= +cmd.bots.notfound= +cmd.bots.noloaded= +cmd.bots.unloaded= +cmd.bots.unloaded_all= + # ChangeSlot cmd.changeSlot.desc=Изменить горячую панель cmd.changeSlot.nan=Не удалось изменить слот: Not a Number cmd.changeSlot.changed=Изменился на слот {0} cmd.changeSlot.fail=Не удалось изменить слот +# Chunk +cmd.chunk.desc= + # Connect cmd.connect.desc=подключиться к указанному серверу. cmd.connect.unknown=Неизвестная учетная запись '{0}'. @@ -248,6 +286,19 @@ cmd.entityCmd.distance=Дальность cmd.entityCmd.location=Местоположение cmd.entityCmd.type=Type +# Exec If +cmd.execif.desc= +cmd.execif.executed= +cmd.execif.executed_no_output= +cmd.execif.error_occured= +cmd.execif.error= + +# Exec Multi +cmd.execmulti.desc= +cmd.execmulti.executed= +cmd.execmulti.result= +cmd.execmulti.no_result= + # Exit cmd.exit.desc=отключиться от сервера. @@ -267,12 +318,15 @@ cmd.inventory.close_fail=Не удалось закрыть опись #{0} cmd.inventory.not_exist=Инвентаризация #{0} не существует cmd.inventory.inventory=Инвентарь cmd.inventory.inventories=Инвентарь +cmd.inventory.inventories_available= cmd.inventory.hotbar=Выбранная вами горячая панель - {0} cmd.inventory.damage=Ущерб cmd.inventory.left=Левый cmd.inventory.right=Правый cmd.inventory.middle=Середина cmd.inventory.clicking={0} щелчок по слоту {1} в окне #{2} +cmd.inventory.shiftclick= +cmd.inventory.shiftclick_fail= cmd.inventory.no_item=Нет предмета в слоте #{0} cmd.inventory.drop=Сбросил 1 предмет из слота #{0} cmd.inventory.drop_stack=Выбросил всю стопку предметов из слота #{0} @@ -284,10 +338,29 @@ cmd.inventory.help.usage=Применение cmd.inventory.help.list=Список инвентаря. cmd.inventory.help.close=Закрыть открытый контейнер. cmd.inventory.help.click=Нажать на элемент. +cmd.inventory.help.shiftclick= cmd.inventory.help.drop=Убрать предмет из инвентаря. cmd.inventory.help.creativegive=Выдать предмет в творческом режиме. cmd.inventory.help.creativedelete=Очистить слот в творческом режиме. -cmd.inventory.help.unknown=Неизвестное действие. +cmd.inventory.help.inventories= +cmd.inventory.help.search= +cmd.inventory.help.unknown=Неизвестное действие. +cmd.inventory.found_items= +cmd.inventory.no_found_items= + +# Leave bed +cmd.bed.desc= +cmd.bed.leaving= +cmd.bed.trying_to_use= +cmd.bed.in= +cmd.bed.not_in= +cmd.bed.not_a_bed= +cmd.bed.searching= +cmd.bed.bed_not_found= +cmd.bed.found_a_bed_at= +cmd.bed.cant_reach_safely= +cmd.bed.moving= +cmd.bed.failed_to_reach_in_time= # List cmd.list.desc=получить список игроков. @@ -301,6 +374,8 @@ cmd.look.desc=смотреть направление или координат cmd.look.unknown=Неизвестное направление '{0}' cmd.look.at=Посмотреть на YAW: {0} PITCH: {1} cmd.look.block=Посмотреть на {0} +cmd.look.inspection= +cmd.look.noinspection= # Move cmd.move.desc= идти или начать идти. @@ -310,10 +385,24 @@ cmd.move.moving=Перемещение {0} cmd.move.dir_fail=Невозможно двигаться в этом направлении. cmd.move.walk=Путь к {0} cmd.move.fail=Не удалось вычислить путь к {0} +cmd.move.suggestforce= +cmd.move.gravity.enabled= +cmd.move.gravity.disabled= +cmd.move.chunk_loading_status= +cmd.move.chunk_not_loaded= # Reco cmd.reco.desc=перезапустить и заново подключиться к серверу. +# Reload +cmd.reload.started= +cmd.reload.warning1= +cmd.reload.warning2= +cmd.reload.warning3= +cmd.reload.warning4= +cmd.reload.finished= +cmd.reload.desc= + # Respawn cmd.respawn.desc=Используйте это, чтобы возродиться, если вы мертвы. cmd.respawn.done=Вы переродились. @@ -328,6 +417,11 @@ cmd.send.desc=отправить сообщение в чат или коман cmd.set.desc=установить пользовательскую %переменную%. cmd.set.format=имя переменной должно быть A-Za-z0-9. +# SetRnd +cmd.setrnd.desc= +cmd.setrndnum.format= +cmd.setrndstr.format= + # Sneak cmd.sneak.desc=Выключает подкрадывание cmd.sneak.on=Вы сейчас крадетесь @@ -344,6 +438,7 @@ cmd.tps.current=Текущий tps # Useblock cmd.useblock.desc=Поставить блок или открыть сундук +cmd.useblock.use= # Useitem cmd.useitem.desc=Использовать (левый клик) предмет на руке @@ -353,6 +448,20 @@ cmd.useitem.use=Использовать предмет [bot] # ChatBots. Naming style: bot.. +# Alerts +bot.alerts.start_rain= +bot.alerts.end_rain= +bot.alerts.start_thunderstorm= +bot.alerts.end_thunderstorm= + +# Anti AFK +bot.antiafk.not_using_terrain_handling= +bot.antiafk.invalid_range_partial= +bot.antiafk.invalid_range= +bot.antiafk.invalid_value= +bot.antiafk.swapping= +bot.antiafk.invalid_walk_range= + # AutoAttack bot.autoAttack.mode=Неизвестный режим атаки: {0}. По умолчанию используется одиночный режим. bot.autoAttack.priority=Неизвестный приоритет: {0}. По умолчанию используется приоритет расстояния. @@ -393,6 +502,8 @@ bot.autoCraft.exception.name_miss=Пропущено имя рецепта пр bot.autoCraft.exception.slot=Неправильное поле слота в рецепте: {0} bot.autoCraft.exception.duplicate=Дублируется указанное имя рецепта: {0} bot.autoCraft.debug.no_config=Конфигурация не найдена. Записываем новый. +bot.autocraft.invaild_slots= +bot.autocraft.invaild_invaild_result= # AutoDrop bot.autoDrop.cmd=Команда автоудаления ЧатБота @@ -411,9 +522,17 @@ bot.autoDrop.no_mode=Невозможно прочитать режим паде bot.autoDrop.no_inventory=Не удается найти инвентарь {0}! # AutoFish +bot.autoFish.no_inv_handle= +bot.autoFish.start= bot.autoFish.throw=Закинул удочку bot.autoFish.caught=Поймал рыбу! +bot.autoFish.caught_at= bot.autoFish.no_rod=Нет удочки под рукой. Может быть сломана? +bot.autoFish.despawn= +bot.autoFish.fishing_timeout= +bot.autoFish.cast_timeout= +bot.autoFish.update_lookat= +bot.autoFish.switch= # AutoRelog bot.autoRelog.launch=Запуск с {0} попытками повторного подключения @@ -457,7 +576,7 @@ bot.mailer.init_fail.mail_retention=Невозможно включить Mailer bot.mailer.create.db=Создание нового файла базы данных: {0} bot.mailer.create.ignore=Создание нового списка игнорирования: {0} bot.mailer.load.db=Загрузка файла базы данных: {0} -bot.mailer.load.ignore=Загрузка списка игнорирования: +bot.mailer.load.ignore=Загрузка списка игнорирования: bot.mailer.cmd=команда почтового клиента @@ -473,12 +592,43 @@ bot.mailer.cmd.ignore.removed=Удалил {0} из списка игнорир bot.mailer.cmd.ignore.invalid=Пропущено или недопустимое имя. Использование: {0} <имя пользователя bot.mailer.cmd.help=Смотрите использование +# Maps +bot.map.cmd.desc= +bot.map.cmd.not_found= +bot.map.cmd.invalid_id= +bot.map.received= +bot.map.no_maps= +bot.map.received_map= +bot.map.rendered= +bot.map.failed_to_render= +bot.map.list_item= + # ReplayCapture bot.replayCapture.cmd=команда воспроизведения bot.replayCapture.created=Файл воспроизведения создан. bot.replayCapture.stopped=Запись остановлена. bot.replayCapture.restart=Запись была остановлена. Перезапустите программу, чтобы начать другую запись. +# Follow player +cmd.follow.desc= +cmd.follow.usage= +cmd.follow.already_stopped= +cmd.follow.stopping= +cmd.follow.invalid_name= +cmd.follow.invalid_player= +cmd.follow.cant_reach_player= +cmd.follow.already_following= +cmd.follow.switched= +cmd.follow.started= +cmd.follow.unsafe_enabled= +cmd.follow.note= +cmd.follow.player_came_to_the_range= +cmd.follow.resuming= +cmd.follow.player_left_the_range= +cmd.follow.pausing= +cmd.follow.player_left= +cmd.follow.stopping= + # Script bot.script.not_found=§8[MCC] [{0}] Не удается найти файл скрипта: {1} bot.script.file_not_found=Файл не найден: '{0}' @@ -499,3 +649,220 @@ bot.scriptScheduler.task=triggeronfirstlogin: {0}\n triggeronlogin: {1}\n trigge # TestBot bot.testBot.told=Bot: {0} сказал мне : {1} bot.testBot.said=Бот: {0} сказал: {1} + + +[config] + +config.load= +config.load.fail= +config.write.fail= +config.backup.fail= +config.saving= + +# Head +config.Head= + +# Main.General +config.Main.General.account= +config.Main.General.login= +config.Main.General.server_info= +config.Main.General.method= + +# Main.Advanced +config.Main.Advanced= +config.Main.Advanced.language= +config.Main.Advanced.internal_cmd_char= +config.Main.Advanced.message_cooldown= +config.Main.Advanced.bot_owners= +config.Main.Advanced.mc_version= +config.Main.Advanced.mc_forge= +config.Main.Advanced.brand_info= +config.Main.Advanced.chatbot_log_file= +config.Main.Advanced.private_msgs_cmd_name= +config.Main.Advanced.show_system_messages= +config.Main.Advanced.show_xpbar_messages= +config.Main.Advanced.show_chat_links= +config.Main.Advanced.show_inventory_layout= +config.Main.Advanced.terrain_and_movements= +config.Main.Advanced.inventory_handling= +config.Main.Advanced.entity_handling= +config.Main.Advanced.session_cache= +config.Main.Advanced.profilekey_cache= +config.Main.Advanced.resolve_srv_records= +config.Main.Advanced.account_list= +config.Main.Advanced.server_list= +config.Main.Advanced.player_head_icon= +config.Main.Advanced.exit_on_failure= +config.Main.Advanced.script_cache= +config.Main.Advanced.timestamps= +config.Main.Advanced.auto_respawn= +config.Main.Advanced.minecraft_realms= +config.Main.Advanced.move_head_while_walking= +config.Main.Advanced.timeout= +config.Main.Advanced.enable_emoji= +config.Main.Advanced.movement_speed= +config.Main.Advanced.language.invaild= + +# Signature +config.Signature= +config.Signature.LoginWithSecureProfile= +config.Signature.SignChat= +config.Signature.SignMessageInCommand= +config.Signature.MarkLegallySignedMsg= +config.Signature.MarkModifiedMsg= +config.Signature.MarkIllegallySignedMsg= +config.Signature.MarkSystemMessage= +config.Signature.ShowModifiedChat= +config.Signature.ShowIllegalSignedChat= + +# Logging +config.Logging= +config.Logging.DebugMessages= +config.Logging.ChatMessages= +config.Logging.InfoMessages= +config.Logging.WarningMessages= +config.Logging.ErrorMessages= +config.Logging.ChatFilter= +config.Logging.DebugFilter= +config.Logging.FilterMode= +config.Logging.LogToFile= +config.Logging.LogFile= +config.Logging.PrependTimestamp= +config.Logging.SaveColorCodes= + +# AppVars +config.AppVars.Variables= + +# Proxy +config.Proxy= +config.Proxy.Enabled_Login= +config.Proxy.Enabled_Ingame= +config.Proxy.Server= +config.Proxy.Proxy_Type= +config.Proxy.Username= +config.Proxy.Password= + +# ChatFormat +config.ChatFormat= +config.ChatFormat.Builtins= +config.ChatFormat.UserDefined= + +# MCSettings +config.MCSettings= +config.MCSettings.Enabled= +config.MCSettings.Locale= +config.MCSettings.RenderDistance= +config.MCSettings.Difficulty= +config.MCSettings.ChatMode= +config.MCSettings.ChatColors= +config.MCSettings.MainHand= + +# ChatBot +config.ChatBot= + +# ChatBot.Alerts +config.ChatBot.Alerts= +config.ChatBot.Alerts.Beep_Enabled= +config.ChatBot.Alerts.Trigger_By_Words= +config.ChatBot.Alerts.Trigger_By_Rain= +config.ChatBot.Alerts.Trigger_By_Thunderstorm= +config.ChatBot.Alerts.Matches_File= +config.ChatBot.Alerts.Excludes_File= +config.ChatBot.Alerts.Log_To_File= +config.ChatBot.Alerts.Log_File= + +# ChatBot.AntiAFK +config.ChatBot.AntiAfk= +config.ChatBot.AntiAfk.Delay= +config.ChatBot.AntiAfk.Command= +config.ChatBot.AntiAfk.Use_Terrain_Handling= +config.ChatBot.AntiAfk.Walk_Range= +config.ChatBot.AntiAfk.Walk_Retries= + +# ChatBot.AutoAttack +config.ChatBot.AutoAttack= +config.ChatBot.AutoAttack.Mode= +config.ChatBot.AutoAttack.Priority= +config.ChatBot.AutoAttack.Cooldown_Time= +config.ChatBot.AutoAttack.Interaction= +config.ChatBot.AutoAttack.Attack_Hostile= +config.ChatBot.AutoAttack.Attack_Passive= +config.ChatBot.AutoAttack.List_Mode= +config.ChatBot.AutoAttack.Entites_List= + +# ChatBot.AutoCraft +config.ChatBot.AutoCraft= +config.ChatBot.AutoCraft.CraftingTable= +config.ChatBot.AutoCraft.OnFailure= +config.ChatBot.AutoCraft.Recipes= + +# ChatBot.AutoDrop +config.ChatBot.AutoDrop= +config.ChatBot.AutoDrop.Mode= + +# ChatBot.AutoEat +config.ChatBot.AutoEat= + +# ChatBot.AutoFishing +config.ChatBot.AutoFishing= +config.ChatBot.AutoFishing.Antidespawn= +config.ChatBot.AutoFishing.Mainhand= +config.ChatBot.AutoFishing.Auto_Start= +config.ChatBot.AutoFishing.Cast_Delay= +config.ChatBot.AutoFishing.Fishing_Delay= +config.ChatBot.AutoFishing.Fishing_Timeout= +config.ChatBot.AutoFishing.Durability_Limit= +config.ChatBot.AutoFishing.Auto_Rod_Switch= +config.ChatBot.AutoFishing.Stationary_Threshold= +config.ChatBot.AutoFishing.Hook_Threshold= +config.ChatBot.AutoFishing.Log_Fish_Bobber= +config.ChatBot.AutoFishing.Enable_Move= +config.ChatBot.AutoFishing.Movements= + +# ChatBot.AutoRelog +config.ChatBot.AutoRelog= +config.ChatBot.AutoRelog.Delay= +config.ChatBot.AutoRelog.Retries= +config.ChatBot.AutoRelog.Ignore_Kick_Message= +config.ChatBot.AutoRelog.Kick_Messages= + +# ChatBot.AutoRespond +config.ChatBot.AutoRespond= +config.ChatBot.AutoRespond.Match_Colors= + +# ChatBot.ChatLog +config.ChatBot.ChatLog= + +# ChatBot.FollowPlayer +config.ChatBot.FollowPlayer= +config.ChatBot.FollowPlayer.Update_Limit= +config.ChatBot.FollowPlayer.Stop_At_Distance= + +# ChatBot.HangmanGame +config.ChatBot.HangmanGame= + +# ChatBot.Mailer +config.ChatBot.Mailer= + +# ChatBot.Map +config.ChatBot.Map= +config.ChatBot.Map.Should_Resize= +config.ChatBot.Map.Resize_To= +config.ChatBot.Map.Auto_Render_On_Update= +config.ChatBot.Map.Delete_All_On_Unload= +config.ChatBot.Map.Notify_On_First_Update= + +# ChatBot.PlayerListLogger +config.ChatBot.PlayerListLogger= +config.ChatBot.PlayerListLogger.Delay= + +# ChatBot.RemoteControl +config.ChatBot.RemoteControl= + +# ChatBot.ReplayCapture +config.ChatBot.ReplayCapture= +config.ChatBot.ReplayCapture.Backup_Interval= + +# ChatBot.ScriptScheduler +config.ChatBot.ScriptScheduler= + diff --git a/MinecraftClient/Resources/lang/vi.ini b/MinecraftClient/Resources/lang/vi.ini index 23d88967..f85d3355 100644 --- a/MinecraftClient/Resources/lang/vi.ini +++ b/MinecraftClient/Resources/lang/vi.ini @@ -1,5 +1,9 @@ [mcc] # Messages from MCC itself +mcc.help_us_translate= +mcc.run_with_default_settings= +mcc.settings_generated= +mcc.has_update= mcc.login=Đăng nhập: mcc.login_basic_io=Hãy nhập địa chỉ email hoặc tên tài khoản của bạn: mcc.password=Mật khẩu: @@ -8,8 +12,11 @@ mcc.password_hidden=Password : {0} mcc.offline=§8Bạn chọn sử dụng chế độ ngoại tuyến. mcc.session_invalid=§8Phiên không hợp lệ hoặc đã hết hạn. mcc.session_valid=§8Phiên vẫn còn hợp lệ cho {0}. +mcc.profile_key_invalid= +mcc.profile_key_valid= mcc.connecting=Đang kết nối tới {0}... -mcc.ip=Địa chỉ máy chủ: +mcc.fetching_key= +mcc.ip=Địa chỉ máy chủ: mcc.use_version=§8Sử dụng Minecraft phiên bản {0} (protocol v{1}) mcc.unknown_version=§8Phiên bản không hợp lệ {0}.\nChuyển sang chế độ nhận diện tự động. mcc.forge=Đang kiểm tra xem máy chủ có dùng Forge... @@ -20,7 +27,7 @@ mcc.not_found=§8Tìm kiếm SRV thất bại cho {0}\n{1}: {2} mcc.retrieve=Đang nhận thông tin máy chủ... mcc.restart=Đang khởi động lại Minecraft Console Client... mcc.restart_delay=Đang chờ {0} giây trước khi khởi động lại... -mcc.server_version=Phiên bản máy chủ: +mcc.server_version=Phiên bản máy chủ: mcc.disconnected=Chưa kết nối tới máy chủ nào. Dùng '{0}help' để in ra hướng dẫn. mcc.press_exit=Hoặc nhấn Enter để đóng Minecraft Console Client mcc.version_supported=Phiên bản hợp lệ \nĐang đăng nhập @@ -41,13 +48,16 @@ mcc.with_forge=, với Forge mcc.handshake=§8Bắt tay thành công (ID máy chủ: {0}) mcc.realms_available=Bạn có quyền tham gia vào những máy chủ Realm này mcc.realms_join=Dùng realm:[thứ tự] để tham gia máy chủ Realm - +mcc.generator.generating= +mcc.generator.done= [debug] # Messages from MCC Debug Mode debug.color_test=Color test: Màn hình của bạn sẽ hiển thị {0} debug.session_cache_ok=§8Đã load thông tin phiên thành công debug.session_cache_fail=§8Không có phiên nào có thể load. +debug.keys_cache_ok= +debug.keys_cache_fail= debug.session_id=Thành công. (session ID: {0}) debug.crypto=§8Khóa mật mã và hash đã được tạo. debug.request=§8Đang gửi yêu cầu tới {0} @@ -82,6 +92,9 @@ error.connection_timeout=§8A timeout occured while attempting to connect to thi error.forge=§8Forge Login Handshake did not complete successfully error.forge_encrypt=§8Forge StartEncryption Handshake did not complete successfully error.setting.str2int=Failed to convert '{0}' into an int. Please check your settings. +error.setting.str2double= +error.setting.str2locationList.convert_fail= +error.setting.str2locationList.format_err= error.setting.argument_syntax={0}: Invalid syntax, expecting --argname=value or --section.argname=value error.setting.unknown_section={0}: Unknown setting section '{1}' error.setting.unknown_or_invalid={0}: Unknown setting or invalid value @@ -92,6 +105,11 @@ error.realms.access_denied=This Realms world does not exist or access was denied error.realms.server_unavailable=Realms server may require some time to start up. Please retry again later. error.realms.server_id=Invalid or unknown Realms server ID. error.realms.disabled=Trying to join a Realms world but Realms support is disabled in config +error.missing.argument= +error.usage= +error.generator.invalid= +error.generator.path= +error.generator.json= [internal command] # MCC internal help command @@ -173,6 +191,14 @@ cache.ignore_line=§8Ignoring invalid session token line: {0} cache.read_fail_plain=§8Failed to read session cache from disk: {0} cache.saving=§8Saving session cache to disk cache.save_fail=§8Failed to write session cache to disk: {0} +# Profile Key Cache +cache.loading_keys= +cache.loaded_keys= +cache.ignore_string_keys= +cache.ignore_line_keys= +cache.read_fail_plain_keys= +cache.saving_keys= +cache.save_fail_keys= [proxy] proxy.connected=§8Connected to proxy {0}:{1} @@ -186,6 +212,7 @@ chat.fail=§8Failed to download the file. chat.from_dir=§8Defaulting to en_GB.lang from your Minecraft directory. chat.loaded=§8Translations file loaded. chat.not_found=§8Translations file not found: '{0}'\nSome messages won't be properly printed without this file. +chat.message_chain_broken= [general] # General message/information (i.e. Done) @@ -201,12 +228,23 @@ general.available_cmd=Available commands: {0} # Animation cmd.animation.desc=Swing your arm. +# Bots +cmd.bots.desc= +cmd.bots.list= +cmd.bots.notfound= +cmd.bots.noloaded= +cmd.bots.unloaded= +cmd.bots.unloaded_all= + # ChangeSlot cmd.changeSlot.desc=Change hotbar cmd.changeSlot.nan=Could not change slot: Not a Number cmd.changeSlot.changed=Changed to slot {0} cmd.changeSlot.fail=Could not change slot +# Chunk +cmd.chunk.desc= + # Connect cmd.connect.desc=connect to the specified server. cmd.connect.unknown=Unknown account '{0}'. @@ -248,6 +286,19 @@ cmd.entityCmd.distance=Distance cmd.entityCmd.location=Location cmd.entityCmd.type=Type +# Exec If +cmd.execif.desc= +cmd.execif.executed= +cmd.execif.executed_no_output= +cmd.execif.error_occured= +cmd.execif.error= + +# Exec Multi +cmd.execmulti.desc= +cmd.execmulti.executed= +cmd.execmulti.result= +cmd.execmulti.no_result= + # Exit cmd.exit.desc=disconnect from the server. @@ -267,12 +318,15 @@ cmd.inventory.close_fail=Failed to close Inventory #{0} cmd.inventory.not_exist=Inventory #{0} do not exist cmd.inventory.inventory=Inventory cmd.inventory.inventories=Inventories +cmd.inventory.inventories_available= cmd.inventory.hotbar=Your selected hotbar is {0} cmd.inventory.damage=Damage cmd.inventory.left=Left cmd.inventory.right=Right cmd.inventory.middle=Middle cmd.inventory.clicking={0} clicking slot {1} in window #{2} +cmd.inventory.shiftclick= +cmd.inventory.shiftclick_fail= cmd.inventory.no_item=No item in slot #{0} cmd.inventory.drop=Dropped 1 item from slot #{0} cmd.inventory.drop_stack=Dropped whole item stack from slot #{0} @@ -284,10 +338,29 @@ cmd.inventory.help.usage=Usage cmd.inventory.help.list=List your inventory. cmd.inventory.help.close=Close an opened container. cmd.inventory.help.click=Click on an item. +cmd.inventory.help.shiftclick= cmd.inventory.help.drop=Drop an item from inventory. cmd.inventory.help.creativegive=Give item in creative mode. cmd.inventory.help.creativedelete=Clear slot in creative mode. -cmd.inventory.help.unknown=Unknown action. +cmd.inventory.help.inventories= +cmd.inventory.help.search= +cmd.inventory.help.unknown=Unknown action. +cmd.inventory.found_items= +cmd.inventory.no_found_items= + +# Leave bed +cmd.bed.desc= +cmd.bed.leaving= +cmd.bed.trying_to_use= +cmd.bed.in= +cmd.bed.not_in= +cmd.bed.not_a_bed= +cmd.bed.searching= +cmd.bed.bed_not_found= +cmd.bed.found_a_bed_at= +cmd.bed.cant_reach_safely= +cmd.bed.moving= +cmd.bed.failed_to_reach_in_time= # List cmd.list.desc=get the player list. @@ -301,6 +374,8 @@ cmd.look.desc=look at direction or coordinates. cmd.look.unknown=Unknown direction '{0}' cmd.look.at=Looking at YAW: {0} PITCH: {1} cmd.look.block=Looking at {0} +cmd.look.inspection= +cmd.look.noinspection= # Move cmd.move.desc=walk or start walking. @@ -310,10 +385,24 @@ cmd.move.moving=Moving {0} cmd.move.dir_fail=Cannot move in that direction. cmd.move.walk=Walking to {0} cmd.move.fail=Failed to compute path to {0} +cmd.move.suggestforce= +cmd.move.gravity.enabled= +cmd.move.gravity.disabled= +cmd.move.chunk_loading_status= +cmd.move.chunk_not_loaded= # Reco cmd.reco.desc=restart and reconnect to the server. +# Reload +cmd.reload.started= +cmd.reload.warning1= +cmd.reload.warning2= +cmd.reload.warning3= +cmd.reload.warning4= +cmd.reload.finished= +cmd.reload.desc= + # Respawn cmd.respawn.desc=Use this to respawn if you are dead. cmd.respawn.done=You have respawned. @@ -328,6 +417,11 @@ cmd.send.desc=send a chat message or command. cmd.set.desc=set a custom %variable%. cmd.set.format=variable name must be A-Za-z0-9. +# SetRnd +cmd.setrnd.desc= +cmd.setrndnum.format= +cmd.setrndstr.format= + # Sneak cmd.sneak.desc=Toggles sneaking cmd.sneak.on=You are sneaking now @@ -344,6 +438,7 @@ cmd.tps.current=Current tps # Useblock cmd.useblock.desc=Place a block or open chest +cmd.useblock.use= # Useitem cmd.useitem.desc=Use (left click) an item on the hand @@ -353,6 +448,20 @@ cmd.useitem.use=Used an item [bot] # ChatBots. Naming style: bot.. +# Alerts +bot.alerts.start_rain= +bot.alerts.end_rain= +bot.alerts.start_thunderstorm= +bot.alerts.end_thunderstorm= + +# Anti AFK +bot.antiafk.not_using_terrain_handling= +bot.antiafk.invalid_range_partial= +bot.antiafk.invalid_range= +bot.antiafk.invalid_value= +bot.antiafk.swapping= +bot.antiafk.invalid_walk_range= + # AutoAttack bot.autoAttack.mode=Unknown attack mode: {0}. Using single mode as default. bot.autoAttack.priority=Unknown priority: {0}. Using distance priority as default. @@ -393,6 +502,8 @@ bot.autoCraft.exception.name_miss=Missing recipe name while parsing a recipe bot.autoCraft.exception.slot=Invalid slot field in recipe: {0} bot.autoCraft.exception.duplicate=Duplicate recipe name specified: {0} bot.autoCraft.debug.no_config=No config found. Writing a new one. +bot.autocraft.invaild_slots= +bot.autocraft.invaild_invaild_result= # AutoDrop bot.autoDrop.cmd=AutoDrop ChatBot command @@ -411,9 +522,17 @@ bot.autoDrop.no_mode=Cannot read drop mode from config. Using include mode. bot.autoDrop.no_inventory=Cannot find inventory {0}! # AutoFish +bot.autoFish.no_inv_handle= +bot.autoFish.start= bot.autoFish.throw=Threw a fishing rod bot.autoFish.caught=Caught a fish! +bot.autoFish.caught_at= bot.autoFish.no_rod=No Fishing Rod on hand. Maybe broken? +bot.autoFish.despawn= +bot.autoFish.fishing_timeout= +bot.autoFish.cast_timeout= +bot.autoFish.update_lookat= +bot.autoFish.switch= # AutoRelog bot.autoRelog.launch=Launching with {0} reconnection attempts @@ -457,7 +576,7 @@ bot.mailer.init_fail.mail_retention=Cannot enable Mailer: Mail Retention must be bot.mailer.create.db=Creating new database file: {0} bot.mailer.create.ignore=Creating new ignore list: {0} bot.mailer.load.db=Loading database file: {0} -bot.mailer.load.ignore=Loading ignore list: +bot.mailer.load.ignore=Loading ignore list: bot.mailer.cmd=mailer command @@ -473,12 +592,43 @@ bot.mailer.cmd.ignore.removed=Removed {0} from the ignore list! bot.mailer.cmd.ignore.invalid=Missing or invalid name. Usage: {0} bot.mailer.cmd.help=See usage +# Maps +bot.map.cmd.desc= +bot.map.cmd.not_found= +bot.map.cmd.invalid_id= +bot.map.received= +bot.map.no_maps= +bot.map.received_map= +bot.map.rendered= +bot.map.failed_to_render= +bot.map.list_item= + # ReplayCapture bot.replayCapture.cmd=replay command bot.replayCapture.created=Replay file created. bot.replayCapture.stopped=Record stopped. bot.replayCapture.restart=Record was stopped. Restart the program to start another record. +# Follow player +cmd.follow.desc= +cmd.follow.usage= +cmd.follow.already_stopped= +cmd.follow.stopping= +cmd.follow.invalid_name= +cmd.follow.invalid_player= +cmd.follow.cant_reach_player= +cmd.follow.already_following= +cmd.follow.switched= +cmd.follow.started= +cmd.follow.unsafe_enabled= +cmd.follow.note= +cmd.follow.player_came_to_the_range= +cmd.follow.resuming= +cmd.follow.player_left_the_range= +cmd.follow.pausing= +cmd.follow.player_left= +cmd.follow.stopping= + # Script bot.script.not_found=§8[MCC] [{0}] Cannot find script file: {1} bot.script.file_not_found=File not found: '{0}' @@ -499,3 +649,220 @@ bot.scriptScheduler.task=triggeronfirstlogin: {0}\n triggeronlogin: {1}\n trigge # TestBot bot.testBot.told=Bot: {0} told me : {1} bot.testBot.said=Bot: {0} said : {1} + + +[config] + +config.load= +config.load.fail= +config.write.fail= +config.backup.fail= +config.saving= + +# Head +config.Head= + +# Main.General +config.Main.General.account= +config.Main.General.login= +config.Main.General.server_info= +config.Main.General.method= + +# Main.Advanced +config.Main.Advanced= +config.Main.Advanced.language= +config.Main.Advanced.internal_cmd_char= +config.Main.Advanced.message_cooldown= +config.Main.Advanced.bot_owners= +config.Main.Advanced.mc_version= +config.Main.Advanced.mc_forge= +config.Main.Advanced.brand_info= +config.Main.Advanced.chatbot_log_file= +config.Main.Advanced.private_msgs_cmd_name= +config.Main.Advanced.show_system_messages= +config.Main.Advanced.show_xpbar_messages= +config.Main.Advanced.show_chat_links= +config.Main.Advanced.show_inventory_layout= +config.Main.Advanced.terrain_and_movements= +config.Main.Advanced.inventory_handling= +config.Main.Advanced.entity_handling= +config.Main.Advanced.session_cache= +config.Main.Advanced.profilekey_cache= +config.Main.Advanced.resolve_srv_records= +config.Main.Advanced.account_list= +config.Main.Advanced.server_list= +config.Main.Advanced.player_head_icon= +config.Main.Advanced.exit_on_failure= +config.Main.Advanced.script_cache= +config.Main.Advanced.timestamps= +config.Main.Advanced.auto_respawn= +config.Main.Advanced.minecraft_realms= +config.Main.Advanced.move_head_while_walking= +config.Main.Advanced.timeout= +config.Main.Advanced.enable_emoji= +config.Main.Advanced.movement_speed= +config.Main.Advanced.language.invaild= + +# Signature +config.Signature= +config.Signature.LoginWithSecureProfile= +config.Signature.SignChat= +config.Signature.SignMessageInCommand= +config.Signature.MarkLegallySignedMsg= +config.Signature.MarkModifiedMsg= +config.Signature.MarkIllegallySignedMsg= +config.Signature.MarkSystemMessage= +config.Signature.ShowModifiedChat= +config.Signature.ShowIllegalSignedChat= + +# Logging +config.Logging= +config.Logging.DebugMessages= +config.Logging.ChatMessages= +config.Logging.InfoMessages= +config.Logging.WarningMessages= +config.Logging.ErrorMessages= +config.Logging.ChatFilter= +config.Logging.DebugFilter= +config.Logging.FilterMode= +config.Logging.LogToFile= +config.Logging.LogFile= +config.Logging.PrependTimestamp= +config.Logging.SaveColorCodes= + +# AppVars +config.AppVars.Variables= + +# Proxy +config.Proxy= +config.Proxy.Enabled_Login= +config.Proxy.Enabled_Ingame= +config.Proxy.Server= +config.Proxy.Proxy_Type= +config.Proxy.Username= +config.Proxy.Password= + +# ChatFormat +config.ChatFormat= +config.ChatFormat.Builtins= +config.ChatFormat.UserDefined= + +# MCSettings +config.MCSettings= +config.MCSettings.Enabled= +config.MCSettings.Locale= +config.MCSettings.RenderDistance= +config.MCSettings.Difficulty= +config.MCSettings.ChatMode= +config.MCSettings.ChatColors= +config.MCSettings.MainHand= + +# ChatBot +config.ChatBot= + +# ChatBot.Alerts +config.ChatBot.Alerts= +config.ChatBot.Alerts.Beep_Enabled= +config.ChatBot.Alerts.Trigger_By_Words= +config.ChatBot.Alerts.Trigger_By_Rain= +config.ChatBot.Alerts.Trigger_By_Thunderstorm= +config.ChatBot.Alerts.Matches_File= +config.ChatBot.Alerts.Excludes_File= +config.ChatBot.Alerts.Log_To_File= +config.ChatBot.Alerts.Log_File= + +# ChatBot.AntiAFK +config.ChatBot.AntiAfk= +config.ChatBot.AntiAfk.Delay= +config.ChatBot.AntiAfk.Command= +config.ChatBot.AntiAfk.Use_Terrain_Handling= +config.ChatBot.AntiAfk.Walk_Range= +config.ChatBot.AntiAfk.Walk_Retries= + +# ChatBot.AutoAttack +config.ChatBot.AutoAttack= +config.ChatBot.AutoAttack.Mode= +config.ChatBot.AutoAttack.Priority= +config.ChatBot.AutoAttack.Cooldown_Time= +config.ChatBot.AutoAttack.Interaction= +config.ChatBot.AutoAttack.Attack_Hostile= +config.ChatBot.AutoAttack.Attack_Passive= +config.ChatBot.AutoAttack.List_Mode= +config.ChatBot.AutoAttack.Entites_List= + +# ChatBot.AutoCraft +config.ChatBot.AutoCraft= +config.ChatBot.AutoCraft.CraftingTable= +config.ChatBot.AutoCraft.OnFailure= +config.ChatBot.AutoCraft.Recipes= + +# ChatBot.AutoDrop +config.ChatBot.AutoDrop= +config.ChatBot.AutoDrop.Mode= + +# ChatBot.AutoEat +config.ChatBot.AutoEat= + +# ChatBot.AutoFishing +config.ChatBot.AutoFishing= +config.ChatBot.AutoFishing.Antidespawn= +config.ChatBot.AutoFishing.Mainhand= +config.ChatBot.AutoFishing.Auto_Start= +config.ChatBot.AutoFishing.Cast_Delay= +config.ChatBot.AutoFishing.Fishing_Delay= +config.ChatBot.AutoFishing.Fishing_Timeout= +config.ChatBot.AutoFishing.Durability_Limit= +config.ChatBot.AutoFishing.Auto_Rod_Switch= +config.ChatBot.AutoFishing.Stationary_Threshold= +config.ChatBot.AutoFishing.Hook_Threshold= +config.ChatBot.AutoFishing.Log_Fish_Bobber= +config.ChatBot.AutoFishing.Enable_Move= +config.ChatBot.AutoFishing.Movements= + +# ChatBot.AutoRelog +config.ChatBot.AutoRelog= +config.ChatBot.AutoRelog.Delay= +config.ChatBot.AutoRelog.Retries= +config.ChatBot.AutoRelog.Ignore_Kick_Message= +config.ChatBot.AutoRelog.Kick_Messages= + +# ChatBot.AutoRespond +config.ChatBot.AutoRespond= +config.ChatBot.AutoRespond.Match_Colors= + +# ChatBot.ChatLog +config.ChatBot.ChatLog= + +# ChatBot.FollowPlayer +config.ChatBot.FollowPlayer= +config.ChatBot.FollowPlayer.Update_Limit= +config.ChatBot.FollowPlayer.Stop_At_Distance= + +# ChatBot.HangmanGame +config.ChatBot.HangmanGame= + +# ChatBot.Mailer +config.ChatBot.Mailer= + +# ChatBot.Map +config.ChatBot.Map= +config.ChatBot.Map.Should_Resize= +config.ChatBot.Map.Resize_To= +config.ChatBot.Map.Auto_Render_On_Update= +config.ChatBot.Map.Delete_All_On_Unload= +config.ChatBot.Map.Notify_On_First_Update= + +# ChatBot.PlayerListLogger +config.ChatBot.PlayerListLogger= +config.ChatBot.PlayerListLogger.Delay= + +# ChatBot.RemoteControl +config.ChatBot.RemoteControl= + +# ChatBot.ReplayCapture +config.ChatBot.ReplayCapture= +config.ChatBot.ReplayCapture.Backup_Interval= + +# ChatBot.ScriptScheduler +config.ChatBot.ScriptScheduler= + diff --git a/MinecraftClient/Resources/lang/zh-Hans.ini b/MinecraftClient/Resources/lang/zh-Hans.ini index 42938675..723be3d0 100644 --- a/MinecraftClient/Resources/lang/zh-Hans.ini +++ b/MinecraftClient/Resources/lang/zh-Hans.ini @@ -4,8 +4,8 @@ mcc.help_us_translate=帮助我们翻译MCC:{0} mcc.run_with_default_settings=\nMCC正在使用默认配置运行。 mcc.settings_generated=§c配置文件 MinecraftClient.ini 已经生成。 mcc.has_update=§e新版本的MCC已经推出:{0} -mcc.login=登录: -mcc.login_basic_io=请输入。 +mcc.login=账户名: +mcc.login_basic_io=请输入用户名或邮箱。 mcc.password=密码: mcc.password_basic_io=请输入{0}的密码。 mcc.password_hidden=密码:{0} @@ -15,6 +15,7 @@ mcc.session_valid=§8{0}的缓存仍然有效。 mcc.profile_key_invalid=§8缓存的聊天签名密钥需要刷新。 mcc.profile_key_valid=§8{0}的聊天签名密钥缓存仍然有效. mcc.connecting=正在连接至{0}... +mcc.fetching_key= mcc.ip=服务器IP: mcc.use_version=§8正在运行Minecraft版本{0} (v{1}协议) mcc.unknown_version=§8未知或不受支持的Minecraft版本{0}。\n正在切换至自动检测模式。 @@ -47,7 +48,8 @@ mcc.with_forge=, 带有Forge mcc.handshake=§8握手成功。 (服务器ID:{0}) mcc.realms_available==您可以访问以下Realms世界 mcc.realms_join=请使用realms:<序号>作为服务器IP加入Realms世界 - +mcc.generator.generating= +mcc.generator.done= [debug] # Messages from MCC Debug Mode @@ -61,7 +63,7 @@ debug.crypto=§8密钥和哈希值已生成: debug.request=§8正在请求{0} [error] -# Error messages from MCC +# Error messages from MCC error.ping=ping此IP失败。 error.unsupported=无法连接到服务器:不支持此版本! error.determine=无法确定服务器版本。 @@ -91,6 +93,8 @@ error.forge=§8Forge登录握手未成功完成 error.forge_encrypt=§8Forge StartEncryption握手未成功完成 error.setting.str2int=无法将'{0}'转换为一个整数。请检查设置。 error.setting.str2double=无法将'{0}'转换为一个浮点数。请检查设置。 +error.setting.str2locationList.convert_fail= +error.setting.str2locationList.format_err= error.setting.argument_syntax={0}:无效语法,应为 --argname=value 或 --section.argname=value error.setting.unknown_section={0}:未知设置部分'{1}' error.setting.unknown_or_invalid={0}:未知设置或无效值 @@ -101,6 +105,11 @@ error.realms.access_denied=此Realms世界不存在或访问被拒绝 error.realms.server_unavailable=Realms服务器可能需要一些时间来启动。请稍后再试。 error.realms.server_id=Realms服务器ID无效或未知。 error.realms.disabled=正在尝试加入Realms世界,但配置中禁用了Realms支持 +error.missing.argument= +error.usage= +error.generator.invalid= +error.generator.path= +error.generator.json= [internal command] # MCC internal help command @@ -203,6 +212,7 @@ chat.fail=§8下载文件失败。 chat.from_dir=§8默认为你的Minecraft目录中的en_GB.lang chat.loaded=§8已加载翻译文件。 chat.not_found=§8找不到翻译文件:'{0}'\n如果没有此文件,某些信息将无法正确打印。 +chat.message_chain_broken= [general] # General message/information (i.e. Done) @@ -218,12 +228,23 @@ general.available_cmd=可用命令:{0} # Animation cmd.animation.desc=挥动你的手臂。 +# Bots +cmd.bots.desc= +cmd.bots.list= +cmd.bots.notfound= +cmd.bots.noloaded= +cmd.bots.unloaded= +cmd.bots.unloaded_all= + # ChangeSlot cmd.changeSlot.desc=变更快捷栏栏位 cmd.changeSlot.nan=无法变更栏位:不是数字 cmd.changeSlot.changed=已变更为栏位{0} cmd.changeSlot.fail=无法变更栏位 +# Chunk +cmd.chunk.desc= + # Connect cmd.connect.desc=连接到指定的服务器。 cmd.connect.unknown=未知帐户 '{0}'。 @@ -265,6 +286,19 @@ cmd.entityCmd.distance=距离 cmd.entityCmd.location=位置 cmd.entityCmd.type=类型 +# Exec If +cmd.execif.desc= +cmd.execif.executed= +cmd.execif.executed_no_output= +cmd.execif.error_occured= +cmd.execif.error= + +# Exec Multi +cmd.execmulti.desc= +cmd.execmulti.executed= +cmd.execmulti.result= +cmd.execmulti.no_result= + # Exit cmd.exit.desc=断开与服务器的连接。 @@ -284,12 +318,15 @@ cmd.inventory.close_fail=关闭物品栏失败 #{0} cmd.inventory.not_exist=物品栏#{0}不存在 cmd.inventory.inventory=物品栏 cmd.inventory.inventories=物品栏集 +cmd.inventory.inventories_available= cmd.inventory.hotbar=您选择的快捷栏是{0} cmd.inventory.damage=武器伤害值 cmd.inventory.left=左 cmd.inventory.right=右 cmd.inventory.middle=中间 cmd.inventory.clicking={0}正在点击窗口#{2}中的栏位{1} +cmd.inventory.shiftclick= +cmd.inventory.shiftclick_fail= cmd.inventory.no_item=栏位#{0}中没有物品 cmd.inventory.drop=从栏位#{0}中丢弃了1个物品 cmd.inventory.drop_stack=从栏位#{0}中丢弃了所有堆叠的物品 @@ -301,12 +338,31 @@ cmd.inventory.help.usage=用法 cmd.inventory.help.list=列出你的物品栏。 cmd.inventory.help.close=关闭打开的容器。 cmd.inventory.help.click=单击物品。 +cmd.inventory.help.shiftclick= cmd.inventory.help.drop=从物品栏中丢弃物品。 cmd.inventory.help.creativegive=在创造模式中给予物品。 cmd.inventory.help.creativedelete=在创造性模式中清除栏位。 +cmd.inventory.help.inventories= +cmd.inventory.help.search= cmd.inventory.help.unknown=未知操作。 +cmd.inventory.found_items= +cmd.inventory.no_found_items= -# List 列表设置 +# Leave bed +cmd.bed.desc= +cmd.bed.leaving= +cmd.bed.trying_to_use= +cmd.bed.in= +cmd.bed.not_in= +cmd.bed.not_a_bed= +cmd.bed.searching= +cmd.bed.bed_not_found= +cmd.bed.found_a_bed_at= +cmd.bed.cant_reach_safely= +cmd.bed.moving= +cmd.bed.failed_to_reach_in_time= + +# List cmd.list.desc=获取玩家列表。 cmd.list.players=玩家列表:{0} @@ -332,10 +388,21 @@ cmd.move.fail=无法计算到达{0}的路径。 cmd.move.suggestforce=无法计算安全到达{0}的路径. 请使用 -f 参数允许不安全移动。 cmd.move.gravity.enabled=重力已开启。 cmd.move.gravity.disabled=重力已关闭。 +cmd.move.chunk_loading_status= +cmd.move.chunk_not_loaded= # Reco cmd.reco.desc=重新启动并重新连接到服务器。 +# Reload +cmd.reload.started= +cmd.reload.warning1= +cmd.reload.warning2= +cmd.reload.warning3= +cmd.reload.warning4= +cmd.reload.finished= +cmd.reload.desc= + # Respawn cmd.respawn.desc=如果你死亡了,请用这个来重生。 cmd.respawn.done=你重生了。 @@ -371,6 +438,7 @@ cmd.tps.current=当前TPS # Useblock cmd.useblock.desc=放置一个方块或打开箱子 +cmd.useblock.use= # Useitem cmd.useitem.desc=使用(左键单击)手上的物品 @@ -386,6 +454,14 @@ bot.alerts.end_rain=§c天气变化:雨停了。§r bot.alerts.start_thunderstorm=§c天气变化:现在是雷雨天。§r bot.alerts.end_thunderstorm=§c天气变化:现在不再是雷雨天了。§r +# Anti AFK +bot.antiafk.not_using_terrain_handling= +bot.antiafk.invalid_range_partial= +bot.antiafk.invalid_range= +bot.antiafk.invalid_value= +bot.antiafk.swapping= +bot.antiafk.invalid_walk_range= + # AutoAttack bot.autoAttack.mode=未知的攻击模式:{0},使用单一模式作为默认值。 bot.autoAttack.priority=未知优先模式:{0},使用距离优先作为默认值。 @@ -404,7 +480,7 @@ bot.autoCraft.help.load=加载配置文件。 bot.autoCraft.help.list=列出可用配方。 bot.autoCraft.help.reload=重新加载配置文件。 bot.autoCraft.help.resetcfg=将默认示例配置写入默认位置。 -bot.autoCraft.help.start=开始制作。用法:/autocraft start <配方名称> +bot.autoCraft.help.start=开始制作。用法:/autocraft start <配方名称> bot.autoCraft.help.stop=停止当前正在进行的制作过程 bot.autoCraft.help.help=获取命令描述。用法: /autocraft help <命令名> bot.autoCraft.loaded=已成功加载 @@ -426,6 +502,8 @@ bot.autoCraft.exception.name_miss=解析配方时缺少配方名称 bot.autoCraft.exception.slot=配方中的栏位字段无效:{0} bot.autoCraft.exception.duplicate=指定了重复的配方名称:{0} bot.autoCraft.debug.no_config=找不到配置。请新建一个。 +bot.autocraft.invaild_slots= +bot.autocraft.invaild_invaild_result= # AutoDrop bot.autoDrop.cmd=AutoDrop ChatBot命令 @@ -444,9 +522,17 @@ bot.autoDrop.no_mode=无法从配置中读取丢弃模式(drop mode)。使 bot.autoDrop.no_inventory=找不到物品栏{0}! # AutoFish +bot.autoFish.no_inv_handle= +bot.autoFish.start= bot.autoFish.throw=抛竿 bot.autoFish.caught=钓到鱼了! +bot.autoFish.caught_at= bot.autoFish.no_rod=手上没有鱼竿,可能用坏了? +bot.autoFish.despawn= +bot.autoFish.fishing_timeout= +bot.autoFish.cast_timeout= +bot.autoFish.update_lookat= +bot.autoFish.switch= # AutoRelog bot.autoRelog.launch=已启动,尝试了{0}次重新连接 @@ -474,7 +560,7 @@ bot.autoRespond.match=match: {0}\nregex: {1}\naction: {2}\nactionPrivate: {3}\na # ChatLog bot.chatLog.invalid_file=路径'{0}'包含无效字符。 -# Mailer +# Mailer bot.mailer.init=使用设置初始化Mailer: bot.mailer.init.db= - 数据库文件:{0} bot.mailer.init.ignore= - 忽略列表:{0} @@ -506,12 +592,43 @@ bot.mailer.cmd.ignore.removed={0}已从忽略列表中删除! bot.mailer.cmd.ignore.invalid=丢失或无效的名称。用法:{0}<用户名> bot.mailer.cmd.help=查看用法 +# Maps +bot.map.cmd.desc= +bot.map.cmd.not_found= +bot.map.cmd.invalid_id= +bot.map.received= +bot.map.no_maps= +bot.map.received_map= +bot.map.rendered= +bot.map.failed_to_render= +bot.map.list_item= + # ReplayCapture bot.replayCapture.cmd=replay 命令 bot.replayCapture.created=已创建重播文件。 bot.replayCapture.stopped=录制已停止。 bot.replayCapture.restart=录制已停止。请重新启动程序以进行另一段录制。 +# Follow player +cmd.follow.desc= +cmd.follow.usage= +cmd.follow.already_stopped= +cmd.follow.stopping= +cmd.follow.invalid_name= +cmd.follow.invalid_player= +cmd.follow.cant_reach_player= +cmd.follow.already_following= +cmd.follow.switched= +cmd.follow.started= +cmd.follow.unsafe_enabled= +cmd.follow.note= +cmd.follow.player_came_to_the_range= +cmd.follow.resuming= +cmd.follow.player_left_the_range= +cmd.follow.pausing= +cmd.follow.player_left= +cmd.follow.stopping= + # Script bot.script.not_found=§8[MCC] [{0}] 找不到脚本文件:{1} bot.script.file_not_found=找不到文件:'{0}' @@ -533,6 +650,7 @@ bot.scriptScheduler.task=triggeronfirstlogin: {0}\n triggeronlogin: {1}\n trigge bot.testBot.told=Bot:{0}对我说:{1} bot.testBot.said=Bot:{0}说:{1} + [config] config.load=已从 {0} 加载设置。 @@ -549,3 +667,202 @@ config.Main.General.account=Login请填写邮箱或玩家名称。若要以离 config.Main.General.login=游戏服务器的地址和端口,可填入域名或IP地址。(可删除端口字段,会自动解析SRV记录) config.Main.General.server_info=帐户类型:mojang 或是 microsoft。此项设置也会影响交互式登录。 config.Main.General.method=微软账户的登录方式:mcc 或是 browser(手动在网页上登录)。 + +# Main.Advanced +config.Main.Advanced= +config.Main.Advanced.language= +config.Main.Advanced.internal_cmd_char= +config.Main.Advanced.message_cooldown= +config.Main.Advanced.bot_owners= +config.Main.Advanced.mc_version= +config.Main.Advanced.mc_forge= +config.Main.Advanced.brand_info= +config.Main.Advanced.chatbot_log_file= +config.Main.Advanced.private_msgs_cmd_name= +config.Main.Advanced.show_system_messages= +config.Main.Advanced.show_xpbar_messages= +config.Main.Advanced.show_chat_links= +config.Main.Advanced.show_inventory_layout= +config.Main.Advanced.terrain_and_movements= +config.Main.Advanced.inventory_handling= +config.Main.Advanced.entity_handling= +config.Main.Advanced.session_cache= +config.Main.Advanced.profilekey_cache= +config.Main.Advanced.resolve_srv_records= +config.Main.Advanced.account_list= +config.Main.Advanced.server_list= +config.Main.Advanced.player_head_icon= +config.Main.Advanced.exit_on_failure= +config.Main.Advanced.script_cache= +config.Main.Advanced.timestamps= +config.Main.Advanced.auto_respawn= +config.Main.Advanced.minecraft_realms= +config.Main.Advanced.move_head_while_walking= +config.Main.Advanced.timeout= +config.Main.Advanced.enable_emoji= +config.Main.Advanced.movement_speed= +config.Main.Advanced.language.invaild= + +# Signature +config.Signature= +config.Signature.LoginWithSecureProfile= +config.Signature.SignChat= +config.Signature.SignMessageInCommand= +config.Signature.MarkLegallySignedMsg= +config.Signature.MarkModifiedMsg= +config.Signature.MarkIllegallySignedMsg= +config.Signature.MarkSystemMessage= +config.Signature.ShowModifiedChat= +config.Signature.ShowIllegalSignedChat= + +# Logging +config.Logging= +config.Logging.DebugMessages= +config.Logging.ChatMessages= +config.Logging.InfoMessages= +config.Logging.WarningMessages= +config.Logging.ErrorMessages= +config.Logging.ChatFilter= +config.Logging.DebugFilter= +config.Logging.FilterMode= +config.Logging.LogToFile= +config.Logging.LogFile= +config.Logging.PrependTimestamp= +config.Logging.SaveColorCodes= + +# AppVars +config.AppVars.Variables= + +# Proxy +config.Proxy= +config.Proxy.Enabled_Login= +config.Proxy.Enabled_Ingame= +config.Proxy.Server= +config.Proxy.Proxy_Type= +config.Proxy.Username= +config.Proxy.Password= + +# ChatFormat +config.ChatFormat= +config.ChatFormat.Builtins= +config.ChatFormat.UserDefined= + +# MCSettings +config.MCSettings= +config.MCSettings.Enabled= +config.MCSettings.Locale= +config.MCSettings.RenderDistance= +config.MCSettings.Difficulty= +config.MCSettings.ChatMode= +config.MCSettings.ChatColors= +config.MCSettings.MainHand= + +# ChatBot +config.ChatBot= + +# ChatBot.Alerts +config.ChatBot.Alerts= +config.ChatBot.Alerts.Beep_Enabled= +config.ChatBot.Alerts.Trigger_By_Words= +config.ChatBot.Alerts.Trigger_By_Rain= +config.ChatBot.Alerts.Trigger_By_Thunderstorm= +config.ChatBot.Alerts.Matches_File= +config.ChatBot.Alerts.Excludes_File= +config.ChatBot.Alerts.Log_To_File= +config.ChatBot.Alerts.Log_File= + +# ChatBot.AntiAFK +config.ChatBot.AntiAfk= +config.ChatBot.AntiAfk.Delay= +config.ChatBot.AntiAfk.Command= +config.ChatBot.AntiAfk.Use_Terrain_Handling= +config.ChatBot.AntiAfk.Walk_Range= +config.ChatBot.AntiAfk.Walk_Retries= + +# ChatBot.AutoAttack +config.ChatBot.AutoAttack= +config.ChatBot.AutoAttack.Mode= +config.ChatBot.AutoAttack.Priority= +config.ChatBot.AutoAttack.Cooldown_Time= +config.ChatBot.AutoAttack.Interaction= +config.ChatBot.AutoAttack.Attack_Hostile= +config.ChatBot.AutoAttack.Attack_Passive= +config.ChatBot.AutoAttack.List_Mode= +config.ChatBot.AutoAttack.Entites_List= + +# ChatBot.AutoCraft +config.ChatBot.AutoCraft= +config.ChatBot.AutoCraft.CraftingTable= +config.ChatBot.AutoCraft.OnFailure= +config.ChatBot.AutoCraft.Recipes= + +# ChatBot.AutoDrop +config.ChatBot.AutoDrop= +config.ChatBot.AutoDrop.Mode= + +# ChatBot.AutoEat +config.ChatBot.AutoEat= + +# ChatBot.AutoFishing +config.ChatBot.AutoFishing= +config.ChatBot.AutoFishing.Antidespawn= +config.ChatBot.AutoFishing.Mainhand= +config.ChatBot.AutoFishing.Auto_Start= +config.ChatBot.AutoFishing.Cast_Delay= +config.ChatBot.AutoFishing.Fishing_Delay= +config.ChatBot.AutoFishing.Fishing_Timeout= +config.ChatBot.AutoFishing.Durability_Limit= +config.ChatBot.AutoFishing.Auto_Rod_Switch= +config.ChatBot.AutoFishing.Stationary_Threshold= +config.ChatBot.AutoFishing.Hook_Threshold= +config.ChatBot.AutoFishing.Log_Fish_Bobber= +config.ChatBot.AutoFishing.Enable_Move= +config.ChatBot.AutoFishing.Movements= + +# ChatBot.AutoRelog +config.ChatBot.AutoRelog= +config.ChatBot.AutoRelog.Delay= +config.ChatBot.AutoRelog.Retries= +config.ChatBot.AutoRelog.Ignore_Kick_Message= +config.ChatBot.AutoRelog.Kick_Messages= + +# ChatBot.AutoRespond +config.ChatBot.AutoRespond= +config.ChatBot.AutoRespond.Match_Colors= + +# ChatBot.ChatLog +config.ChatBot.ChatLog= + +# ChatBot.FollowPlayer +config.ChatBot.FollowPlayer= +config.ChatBot.FollowPlayer.Update_Limit= +config.ChatBot.FollowPlayer.Stop_At_Distance= + +# ChatBot.HangmanGame +config.ChatBot.HangmanGame= + +# ChatBot.Mailer +config.ChatBot.Mailer= + +# ChatBot.Map +config.ChatBot.Map= +config.ChatBot.Map.Should_Resize= +config.ChatBot.Map.Resize_To= +config.ChatBot.Map.Auto_Render_On_Update= +config.ChatBot.Map.Delete_All_On_Unload= +config.ChatBot.Map.Notify_On_First_Update= + +# ChatBot.PlayerListLogger +config.ChatBot.PlayerListLogger= +config.ChatBot.PlayerListLogger.Delay= + +# ChatBot.RemoteControl +config.ChatBot.RemoteControl= + +# ChatBot.ReplayCapture +config.ChatBot.ReplayCapture= +config.ChatBot.ReplayCapture.Backup_Interval= + +# ChatBot.ScriptScheduler +config.ChatBot.ScriptScheduler= + diff --git a/MinecraftClient/Translations.cs b/MinecraftClient/Translations.cs index 3d79003e..8e257882 100644 --- a/MinecraftClient/Translations.cs +++ b/MinecraftClient/Translations.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Drawing.Drawing2D; using System.Globalization; using System.IO; using System.Text; @@ -632,19 +633,14 @@ namespace MinecraftClient foreach (string lineRaw in content) { string line = lineRaw.Trim(); - if (line.Length <= 0) + if (line.Length < 3) continue; - if (line.StartsWith("#")) // ignore comment line started with # - continue; - if (line[0] == '[' && line[^1] == ']') // ignore section + if (!char.IsLetterOrDigit(line[0])) // ignore comment line started with # continue; - string translationName = line.Split('=')[0]; - if (line.Length > (translationName.Length + 1)) - { - string translationValue = line[(translationName.Length + 1)..].Replace("\\n", "\n"); - translations[translationName] = translationValue; - } + int index = line.IndexOf('='); + if (line.Length > (index + 1)) + translations[line[..index]] = line[(index + 1)..].Replace("\\n", "\n"); } return translations; } @@ -657,12 +653,54 @@ namespace MinecraftClient string defaultPath = AppDomain.CurrentDomain.BaseDirectory + Path.DirectorySeparatorChar + translationFilePath + Path.DirectorySeparatorChar + defaultTranslation; if (!Directory.Exists(translationFilePath)) - { Directory.CreateDirectory(translationFilePath); - } File.WriteAllText(defaultPath, DefaultConfigResource.Translation_en, Encoding.UTF8); } + public static void TrimAllTranslations() + { + string[] transEn = DefaultConfigResource.ResourceManager.GetString("Translation_en")! + .Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None); + + foreach (string lang in new string[] { "de", "fr", "ru", "vi", "zh_Hans" }) + { + Dictionary trans = ParseTranslationContent( + DefaultConfigResource.ResourceManager.GetString("Translation_" + lang)! + .Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None) + ); + using FileStream file = File.OpenWrite(AppDomain.CurrentDomain.BaseDirectory + + Path.DirectorySeparatorChar + translationFilePath + Path.DirectorySeparatorChar + lang + ".ini"); + int total = 0, translated = 0; + for (int i = 0; i < transEn.Length; ++i) + { + string line = transEn[i].Trim(); + int index = transEn[i].IndexOf('='); + if (line.Length < 3 || !char.IsLetterOrDigit(line[0]) || index == -1 || line.Length <= (index + 1)) + { + file.Write(Encoding.UTF8.GetBytes(line)); + } + else + { + string key = line[..index]; + file.Write(Encoding.UTF8.GetBytes(key)); + file.Write(Encoding.UTF8.GetBytes("=")); + if (trans.TryGetValue(key, out string? value)) + { + file.Write(Encoding.UTF8.GetBytes(value.Replace("\n", "\\n"))); + ++total; + ++translated; + } + else + { + ++total; + } + } + file.Write(Encoding.UTF8.GetBytes(Environment.NewLine)); + } + ConsoleIO.WriteLine(string.Format("Language {0}: Translated {1} of {2}, {3:0.00}%", lang, translated, total, 100.0 * (double)translated / total)); + } + } + #region Console writing method wrapper /// diff --git a/README.md b/README.md index 39a969a7..dd59e00d 100644 --- a/README.md +++ b/README.md @@ -50,12 +50,12 @@ If you'd like to contribute to Minecraft Console Client, great, just fork the re Check out: [How to update or add translations for MCC](https://mccteam.github.io/guide/contibuting.html#translations). MCC now supports the following languages (Alphabetical order) : - * `de.ini` : Deutsch - German + * `de.ini` (57.69% translated) : Deutsch - German * `en.ini` : English - English - * `fr.ini` : Français (France) - French - * `ru.ini` : Русский (Russkiy) - Russian - * `vi.ini` : Tiếng Việt (Việt Nam) - Vietnamese - * `zh-Hans.ini` : 简体中文(中国大陆) - Chinese Simplified (China; Mandarin) + * `fr.ini` (57.69% translated) : Français (France) - French + * `ru.ini` (56.77% translated) : Русский (Russkiy) - Russian + * `vi.ini` (56.77% translated) : Tiếng Việt (Việt Nam) - Vietnamese + * `zh-Hans.ini` (62.56% translated) : 简体中文(中国大陆) - Chinese Simplified (China; Mandarin) ## Building from the source 🏗️