From 926b98d49cf81d067c232f18d75ff3f4cec532a6 Mon Sep 17 00:00:00 2001 From: Marvin Scham Date: Thu, 22 Feb 2024 20:00:09 +0000 Subject: [PATCH 1/6] Translated using Weblate (German) Currently translated at 100.0% (180 of 180 strings) Translation: Disenchanter/Disenchanter Translate-URL: https://weblate.ms-ds.org/projects/disenchanter/disenchanter/de/ --- i18n/de_DE.yml | 238 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 236 insertions(+), 2 deletions(-) diff --git a/i18n/de_DE.yml b/i18n/de_DE.yml index 69d4fde..5d523dd 100644 --- a/i18n/de_DE.yml +++ b/i18n/de_DE.yml @@ -3,6 +3,240 @@ de_DE: locale_name: "Deutsch" auto_loaded_locale: "Deutscher Client gefunden!" manually_set_locale: "Auf Deutsch gestellt!" - translation_note: "Übersetzung fehlt? Hilf mit: https://github.com/marvinscham/disenchanter/blob/main/CONTRIBUTING.md" + translation_note: "Fehlende Übersetzung? Hilf mit, indem du deine anbietest: %{url}" menu.main: - logged_in_as: "Du bist als %{name} #%{tagline} eingeloggt." \ No newline at end of file + logged_in_as: "Du bist als %{name} #%{tagline} eingeloggt." + loot: + permanents: Permanent + honor_5_orb: „Ehrungsstufe 5“-Kugel + mythic_essence: Mythische Essenzen + skin_shards: Skinsplitter + skin_permanents: Skin (permanent) + champion_capsule: Champion-Kapsel + glorious_champion_capsule: Glorreiche Champion-Kapsel + honor_4_orb: „Ehrungsstufe 4“-Kugel + blue_essence: Blaue Essenzen + blue_essence_short: BE + orange_essence_short: OE + materials: Materialien + champions: Champions + skins: Skins + tacticians: Taktiker + eternals: Ewige + eternal_shards: Ewigen-Set-Splitter + eternal_permanents: Ewigen-Set + emotes: Sticker + ward_skins: Augenskins + ward_skin_shards: Augenskinsplitter + ward_skin_permanents: Augenskin (permanent) + icons: Symbole + capsules: Kapseln + key_fragments: Schlüsselfragmente + shards: Splitter + orange_essence: Orangene Essenzen + menu: + main: + exit_shortcut_notice: 'Du kannst das Skript jederzeit mit dieser Tastenkombination + verlassen:' + time_saved: Wir haben ungefähr %{time_saved} Sekunden des Wartens auf Animationen + gespart. + options: + language_settings: Spracheinstellungen + open_mastery_chart: Öffne dein „Mastery Chart“-Profil + open_usage_stats: Globale Statistiken für Disenchanter öffnen + open_repository: Öffne GitHub-Repository + debug_tools: Debug-Werkzeuge + exit: Raus hier + hello: Moin! :) + version_info: Starte Disenchanter %{version} + exit_shortcut: '[STRG + C]' + summoner_check_failed: Konnte keine Spieler-Info sammeln. Starte deinen League-Client + neu. + logged_in_as: 'Du bist als %{name} #%{tagline} eingeloggt.' + confirm_banner_intro: 'Deine Beute ist sicher, nichts wird passieren bis du + ein solches Banner bestätigst:' + confirm_banner_example: Diese Aktion ausführen? + all_done: Das war's! + see_you: Bis bald :) + what_to_do: 'Was möchtest du machen? (Tipp: Geh von oben nach unten durch, damit + du nichts verpasst!)' + debug: + dry_run: + disabled: Trockenlauf + Debug-Modus deaktiviert + notice: TROCKENLAUF AKTIVIERT - nichts ist passiert + enabled: Trockenlauf + Debug-Modus aktiviert + options: + loot_to_file: Schreibe player_loot in Datei + request_terminal: Request-Terminal + recipes_to_file: Schreibe Rezepte von lootId in Datei + loot_info_to_file: Schreibe die Beute-Infos von lootId in Datei + summoner_info_to_file: Schreibe Beschwörer-Infos in Datei + settings_to_file: Einstellungen in Datei schreiben + toggle_dry_run: Trockenlauf umschalten + toggle_debug_mode: Debug-Modus umschalten + request_terminal: + warning: Manuelles Request-Terminal geöffnet. Wenn du nicht weißt, was du + tust, oder dich jemand hierzu drängt, hör sofort auf. + exit: Drücke [%{key}] zum Verlassen. + ask_path: 'Gib den Pfad für die GET-Request ein:' + debug_mode: + enabled: Debug-Modus aktiviert + disabled: Debug-Modus deaktiviert + file_written_notice: Okay, in %{filename} geschrieben. + post_request_info: Sende POST-Anfrage an %{path} + ask_which_loot_info: Für welche lootId möchtest du Infos? + ask_which_loot_recipes: Für welche lootId möchtest du Rezepte? + mythic: + recipe_found: 'Rezept gefunden: %{thing_to_craft} für %{amount} Mythische Essenzen' + options: + blue_essence: Blaue Essenzen + orange_essence: Orangene Essenzen + random_skin_shards: Zufällige Skinsplitter + recipes_unavailable: Rezepte für %{loot} scheinen nicht verfügbar zu sein. + option: Option + back_to_main: Zurück zum Hauptmenü + champions: + options: + mastery_threshold: Behalte genug (1/2) Splitter, um Champions auf min. Meisterschaft + x (wähle von 1 bis 6) vollständig meistern zu können + all: Entzaubere alle Championsplitter + mastery_full: Behalte genug (1/2) Splitter, um alle Champions zu meistern + (entzaubere nur Splitter ohne jeglichen Nutzen) + collector: Behalte einen Splitter für jeden Champion unabhängig von der Meisterschaft + tokens: Behalte genug (1/2) Splitter für Champions mit Meisterschaftsmarken + im Besitz + choose_option: Okay, was willst du machen? + what_to_do: Was möchtest du machen? + option_chosen: Ausgewählte Option + option_done: erledigt + materials: + options: + mythic_essence: Mythische Essenzen + key_fragments: Schlüsselfragmente + capsules: Kapseln + mastery_tokens: Meisterschaftsmarken + handler: + generic: + action_cancelled: Aktion abgebrochen + ask_disenchant: '%{count} %{loot} entzaubern, um %{currency} zu erhalten?' + found_nothing: Keine %{name} zum Entzaubern gefunden. + found_some: '%{count} %{name} gefunden.' + found_no_owned: Keine %{name} (im Besitz) zum Entzaubern gefunden. + keep_unowned: '%{loot}, die du noch nicht im Besitz hast, behalten?' + filtered_down: Auf %{count} Items gefiltert. + disenchant_preview: 'Wir würden %{count} %{loot} mit der von dir gewählten Option + entzaubern:' + exception: + error_occurred: Beim Bearbeiten von %{name} ist ein Fehler aufgetreten. + error_description: 'Ein Fehler ist aufgetreten: %{error_type}. Nachricht: %{message}. + Fehlerverlauf:' + step: + champions: + owned: Championsplitter im Besitz + collection: Championsplitter zum Sammeln + exclusions: Championsplitter-Ausschlüsse + by_mastery: Championsplitter nach Meisterschaftsstufe + tokens: Championsplitter nach Meisterschaftsmarken + capsules: + filtering: 'Kapseln: Beute filtern' + request: 'Kapseln: Anforderungsausführung' + summary: 'Kapseln: Zusammenfassungserstellung' + stat_submission: Einsendung der Statistik + create_an_issue: Bitte mach einen Screenshot und erstelle einen Issue unter + %{url} + send_email_instead: Wenn du kein GitHub-Konto hast, schick ihn an %{email} + skipping_step: Überspringe diesen Schritt... + unusual_state: Das sollte eigentlich nicht möglich sein, und trotzdem sind wir + hier. + champion: + exclusions: + entry_requirements: (Klein- und Großschreibung beachten, durch Kommas getrennt) + ask: Möchtest du Ausschlüsse hinzufügen? + ask_which: Okay, welche Champions? + recognized: 'Erkannte Ausschlüsse:' + present_selection: 'Wir würden %{count} Championsplitter mit der von dir gewählten + Option entzaubern:' + no_unowned_champs_found: Keine Splitter von Champions gefunden, die du noch + nicht besitzt. + no_shards_found: Keine Championsplitter zum Entzaubern gefunden. + found_shards: '%{count} Championsplitter gefunden.' + already_done: 'Schon fertig: Keine Championsplitter übrig, die deiner Auswahl + entsprechen.' + shards_to_keep: behält %{count} + ask_include_permanents: Sollen wir permanente Champions in diesen Prozess einbeziehen? + ask_disenchant: Möchtest du %{count} Championsplitter für %{amount} Blaue Essenzen + entzaubern? + by_mastery: + ask_which_level: Auf welcher Meisterschaftsstufe sollten Champions mindestens + sein, damit ihre Splitter aufbewahrt werden? + note_level7: auf Stufe 7 + note_below_threshold: unter der Schwelle + ask_keep_unowned_champs: Sollen wir einen Splitter für Champions, die du noch + nicht besitzt, behalten? + found_champs_with_tokens: '%{count} Champions mit Meisterschaftsmarken im Besitz + gefunden' + esports_emotes: + found_some: '%{count} E-Sports-Sticker gefunden.' + none_found: Es wurden keine E-Sports-Sticker zum Umwandeln gefunden. + ask_re_roll: Möchtest du %{count} E-Sports-Sticker (bereits im Besitz) umwandeln? + mythic_essence: + none_found: Keine Mythischen Essenzen zum Benutzen gefunden. + cancelled: Verwertung Mythischer Essenzen abgebrochen. + found_some: '%{amount} Mythische Essenzen gefunden.' + not_enough: Nicht genug Mythische Essenzen dafür. + amount_to_use: Wie viel Mythische Essenzen sollen wir benutzen, um %{target_name} + herzustellen? + craft_confirm: '%{quantity} %{loot_name} für %{total_cost} Mythische Essenzen + herstellen?' + capsule: + ask_open_capsules: '%{count} schlüssellose Kapseln öffnen?' + no_capsules_found: Keine schlüssellosen Kapseln gefunden, die man öffnen könnte. + found_capsules: '%{count} Kapseln gefunden:' + key_fragments: + not_enough_fragments: Nicht genug Schlüsselfragmente, um etwas herzustellen. + found_fragments: '%{count} Schlüsselfragmente gefunden.' + ask_craft_keys: '%{key_count} Schlüssel aus %{fragment_count} Schlüsselfragmenten + herstellen?' + mastery_tokens: + could_upgrade_champions: 'Wir könnten die folgenden Champions hochstufen:' + none_found: Kein freischaltbarer Satz von Meisterschaftsmarken gefunden. + missing_essence: Dir fehlen %{essence_missing} Blaue Essenzen, um fortzufahren. + Überspringe... + to_mastery_level: zu Meisterschaftsstufe + using: mit + using_champion_shard: einem Championsplitter. + using_champion_permanent: einem permanenten Champion. + using_blue_essence: '%{recipe_cost} Blauen Essenzen.' + confirm_total_upgrades: Verbessere %{count} Champions mit + url: + opening_mastery_chart: Dein Profil wird unter %{url} in deinem Browser geöffnet... + opening_repository: Öffne das GitHub-Repository unter %{url} in deinem Browser... + opening_stats: Öffne Globale Statistiken unter %{url} in deinem Browser... + stat_submission: + ask_contribute: Möchtest du deine Ergebnisse (anonym) zu den globalen Statistiken + einsenden? + thanks: Vielen Dank! + your_stats: 'Deine Ergebnisse:' + ask_submit: Anonyme Ergebnisse absenden? + update_checker: + ask_download_now: Möchtest du die neue Version jetzt herunterladen? + done_downloading: Download abgeschlossen! + up_to_date: Du bist auf dem neuesten Stand! + local_beta_note: Willkommen in der Zukunft! + local_beta_version: 'Neueste Remote-Version: v%{version}' + update_available: Neue Version %{version} verfügbar! + common: + exiting: Beende... + done: Fertig! + yes: Ja + no: Nein + confirm_banner: BESTÄTIGE + dry_run_banner: TROCKENLAUF + not_owned: nicht im Besitz + press_enter_to_exit: Drücke die Eingabetaste, um zu beenden. + actions: Aktionen + disenchanted: Entzaubert + opened: Geöffnet + crafted: Hergestellt + redeemed: Freigeschaltet + invalid_answer: Ungültige Antwort, Optionen From 9b952708b1d20be2466fee2c87d48491942d77be Mon Sep 17 00:00:00 2001 From: marvinscham Date: Fri, 23 Feb 2024 03:51:33 +0100 Subject: [PATCH 2/6] Fixed root key Compat issues --- i18n/eo.yml | 97 +++++++++++++++++++++++++++-------------------------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/i18n/eo.yml b/i18n/eo.yml index 895c60b..cdfd955 100644 --- a/i18n/eo.yml +++ b/i18n/eo.yml @@ -1,48 +1,49 @@ -common: - exiting: Elirante... -main_menu: - time_saved: Ni ŝparis al vi proksimume %{time_saved} sekundojn de atendo por finiĝi - la animacioj. - summoner_check_failed: Ne povis ekstrakti informojn pri la alvokanto. Provu restartigi - vian League-klienton. - hello: Saluton! :) - version_info: Lanĉante Elreviĝilo %{version} - exit_shortcut_notice: Vi povas eliri ĉi tiun skripton en iu ajn momento premante - exit_shortcut: '[STIRKLAVO + C]' - logged_in_as: 'Vi estas ensalutinta kiel %{name} #%{tagline}.' - confirm_banner_intro: 'Via ŝtelo estas sekura, neniuj agoj estos faritaj ĝis vi - konfirmas rubandon kiel ĉi tiu:' - confirm_banner_example: 'KONFIRMU: Ĉu plenumi tiun agon?' - all_done: Jen ĝi! - see_you: Ĝis la revido :) -meta: - manually_set_locale: Agordita al Esperanto! - translation_note: 'Mankasita traduko? Helpu proponante vian: https://github.com/marvinscham/disenchanter/blob/main/CONTRIBUTING.md' - auto_loaded_locale: Trovita esperanta kliento! - locale_name: Esperanto -menu: - choose_option: Bone, kion vi volus fari? - option: Opcio - back_to_main: Reiri al ĉefmenuon -update_checker: - up_to_date: Vi estas ĝisdata! - local_beta_note: Bonvenon al la estonteco! - local_beta_version: 'Lasta fora versio: v%{version}' - update_available: Nova versio %{version} havebla! - ask_download_now: Ĉu vi ŝatus elŝuti la novan version nun? - done_downloading: Finiĝis elŝuto! -debug: - dry_run: - notice: PROVKURO - fakte ne faris ion - file_written_notice: Bone, skribite al %{filename}. - post_request_info: Sendante peton al %{path} -champions_menu: - options: - all: Elreviĝu ĉiujn ĉampionajn fragmentojn - tokens: Konservu sufiĉe (1/2) pecetojn por la ĉampionoj, por kiuj vi posedas majstreco - 6/7-markojn - mastery_threshold: Konservu sufiĉe da (1/2) pecetoj por tute majstri ĉampionojn - je almenaŭ majstreco nivelo x (elektu de 1 ĝis 6) - mastery_full: Konservu sufiĉe da (1/2) pecetoj por tute majstri ĉiujn ĉampionojn - (nur elreviĝu pecetojn kiuj ne havas eblan uzon) - collector: Konservu po unu peceton de ĉiu ĉampiono, sendepende de majstraĵo +eo: + common: + exiting: Elirante... + main_menu: + time_saved: Ni ŝparis al vi proksimume %{time_saved} sekundojn de atendo por finiĝi + la animacioj. + summoner_check_failed: Ne povis ekstrakti informojn pri la alvokanto. Provu restartigi + vian League-klienton. + hello: Saluton! :) + version_info: Lanĉante Elreviĝilo %{version} + exit_shortcut_notice: Vi povas eliri ĉi tiun skripton en iu ajn momento premante + exit_shortcut: '[STIRKLAVO + C]' + logged_in_as: 'Vi estas ensalutinta kiel %{name} #%{tagline}.' + confirm_banner_intro: 'Via ŝtelo estas sekura, neniuj agoj estos faritaj ĝis vi + konfirmas rubandon kiel ĉi tiu:' + confirm_banner_example: 'KONFIRMU: Ĉu plenumi tiun agon?' + all_done: Jen ĝi! + see_you: Ĝis la revido :) + meta: + manually_set_locale: Agordita al Esperanto! + translation_note: 'Mankasita traduko? Helpu proponante vian: https://github.com/marvinscham/disenchanter/blob/main/CONTRIBUTING.md' + auto_loaded_locale: Trovita esperanta kliento! + locale_name: Esperanto + menu: + choose_option: Bone, kion vi volus fari? + option: Opcio + back_to_main: Reiri al ĉefmenuon + update_checker: + up_to_date: Vi estas ĝisdata! + local_beta_note: Bonvenon al la estonteco! + local_beta_version: 'Lasta fora versio: v%{version}' + update_available: Nova versio %{version} havebla! + ask_download_now: Ĉu vi ŝatus elŝuti la novan version nun? + done_downloading: Finiĝis elŝuto! + debug: + dry_run: + notice: PROVKURO - fakte ne faris ion + file_written_notice: Bone, skribite al %{filename}. + post_request_info: Sendante peton al %{path} + champions_menu: + options: + all: Elreviĝu ĉiujn ĉampionajn fragmentojn + tokens: Konservu sufiĉe (1/2) pecetojn por la ĉampionoj, por kiuj vi posedas majstreco + 6/7-markojn + mastery_threshold: Konservu sufiĉe da (1/2) pecetoj por tute majstri ĉampionojn + je almenaŭ majstreco nivelo x (elektu de 1 ĝis 6) + mastery_full: Konservu sufiĉe da (1/2) pecetoj por tute majstri ĉiujn ĉampionojn + (nur elreviĝu pecetojn kiuj ne havas eblan uzon) + collector: Konservu po unu peceton de ĉiu ĉampiono, sendepende de majstraĵo From aa722cf301a24929d1e8dce672c77e2e3043d56e Mon Sep 17 00:00:00 2001 From: marvinscham Date: Fri, 23 Feb 2024 03:51:52 +0100 Subject: [PATCH 3/6] Added stump for Traditional Chinese Compat issues --- i18n/zh_TW.yml | 4 ++++ src/class/menu/language_menu.rb | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 i18n/zh_TW.yml diff --git a/i18n/zh_TW.yml b/i18n/zh_TW.yml new file mode 100644 index 0000000..dbcf6b3 --- /dev/null +++ b/i18n/zh_TW.yml @@ -0,0 +1,4 @@ +zh_TW: + menu: + main: + hello: 嗨! :) \ No newline at end of file diff --git a/src/class/menu/language_menu.rb b/src/class/menu/language_menu.rb index 998a662..20880a9 100644 --- a/src/class/menu/language_menu.rb +++ b/src/class/menu/language_menu.rb @@ -6,14 +6,15 @@ # Manual language selection menu class LanguageMenu < Menu def initialize(client) - menu_text = 'What\'s your preferred language?' + menu_text = I18n.t(:'menu.language.preferred') things_todo = { 'en' => 'English', 'de' => 'Deutsch', + 'zh' => '繁體中文', 'eo' => 'Esperanto', - 'x' => 'Back to main menu' + 'x' => I18n.t(:'menu.back_to_main') } - answer_display = 'Option' + answer_display = I18n.t(:'menu.option') super(client, menu_text, answer_display, things_todo) end @@ -27,6 +28,8 @@ def handle_option(thing_todo) 'de_DE' when 'eo' 'eo' + when 'zh' + 'zh_TW' else 'en' end From 5dce089f3a367561fc7ea6e9c0a3ae229cc0c840 Mon Sep 17 00:00:00 2001 From: marvinscham Date: Fri, 23 Feb 2024 03:52:31 +0100 Subject: [PATCH 4/6] UTF-8 fixes Compat issues --- src/main.rb | 38 +++++++---------------------------- src/modules/common_strings.rb | 4 +++- src/modules/user_input.rb | 3 +-- 3 files changed, 11 insertions(+), 34 deletions(-) diff --git a/src/main.rb b/src/main.rb index e97ac3e..4695437 100644 --- a/src/main.rb +++ b/src/main.rb @@ -1,5 +1,9 @@ #!/usr/bin/env ruby # frozen_string_literal: true +# encoding: UTF-8 + +Encoding.default_external = Encoding::UTF_8 +Encoding.default_internal = Encoding::UTF_8 require 'i18n' @@ -11,49 +15,21 @@ require_relative 'modules/common_strings' require_relative 'modules/user_input' -require_relative 'modules/update/checker' - def run check_build_env current_version = 'v1.6.0' stat_tracker = StatTracker.new - client = Client.new(stat_tracker) + client = Client.new(stat_tracker, current_version) - greet(client, current_version) + client.greet + client.check_summoner MainMenu.new(client).run_loop finish(stat_tracker) end -def greet(client, current_version) - puts I18n.t(:'menu.main.hello').light_green - - puts I18n.t(:'menu.main.version_info', version: current_version).light_blue - check_update(current_version) - print "#{I18n.t(:'menu.main.exit_shortcut_notice')} ".light_blue - puts I18n.t(:'menu.main.exit_shortcut').light_white + '.'.light_blue - puts separator - - check_summoner(client) -end - -def check_summoner(client) - summoner = client.req_get_current_summoner - if summoner['gameName'].nil? || summoner['gameName'].empty? - puts I18n.t(:'menu.main.summoner_check_failed').light_red - ask exit_string - exit 1 - end - - puts "\n#{I18n.t(:'menu.main.logged_in_as', name: summoner['gameName'], tagline: summoner['tagLine'])}".light_blue - puts separator - puts "\n#{I18n.t(:'menu.main.confirm_banner_intro')}".light_blue - puts "#{I18n.t(:'common.confirm_banner')}: #{I18n.t(:'menu.main.confirm_banner_example')} [y|n]".light_magenta - puts separator -end - def finish(stat_tracker) puts I18n.t(:'menu.main.all_done').light_green if stat_tracker.actions.positive? diff --git a/src/modules/common_strings.rb b/src/modules/common_strings.rb index 37bebaa..792e081 100644 --- a/src/modules/common_strings.rb +++ b/src/modules/common_strings.rb @@ -27,7 +27,9 @@ def ans_yn_d end def pad(str, len, right: true) - format("%#{right ? '-' : ''}#{len}s", str) + full_width_str_len = str.scan(/\p{Han}/).size + full_width_str_len += str.scan(/\p{Symbol}/).size + format("%#{right ? '-' : ''}#{len - full_width_str_len}s", str) end unless String.method_defined?(:light_yellow) diff --git a/src/modules/user_input.rb b/src/modules/user_input.rb index c21a510..a5eeb4b 100644 --- a/src/modules/user_input.rb +++ b/src/modules/user_input.rb @@ -2,8 +2,7 @@ def ask(question) print(question) - question = gets - question.chomp + $stdin.gets.encode('UTF-8').chomp end def user_input_check(question, answers, answer_display, color_preset = 'default') From c320c67e53d164f52733a78ae7191c62a36c3101 Mon Sep 17 00:00:00 2001 From: marvinscham Date: Fri, 23 Feb 2024 03:53:14 +0100 Subject: [PATCH 5/6] Touchups + repositioning Compat issues --- i18n/en.yml | 2 ++ src/class/client.rb | 35 ++++++++++++++++++++++++++-- src/class/menu/main_menu.rb | 7 +++--- src/modules/handlers/generic_loot.rb | 2 +- 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/i18n/en.yml b/i18n/en.yml index 17a66e0..6b93edc 100644 --- a/i18n/en.yml +++ b/i18n/en.yml @@ -61,6 +61,8 @@ en: back_to_main: Back to main menu option_chosen: Option chosen option_done: done + language: + preferred: What's your preferred language? main: hello: Hi! :) version_info: Running Disenchanter %{version} diff --git a/src/class/client.rb b/src/class/client.rb index 88a89e4..1051318 100644 --- a/src/class/client.rb +++ b/src/class/client.rb @@ -4,17 +4,20 @@ require 'net/http' require 'json' +require_relative '../modules/locale' require_relative '../modules/detect_client' +require_relative '../modules/update/checker' require_relative '../modules/handlers/exception' -require_relative '../modules/locale' # Holds port and token info +# rubocop:disable Metrics/ClassLength class Client attr_accessor :stat_tracker, :debug, :dry_run, :locale # @param stat_tracker StatTracker - def initialize(stat_tracker) + def initialize(stat_tracker, current_version) begin + @version = current_version @port, @token, path = grab_lockfile @locale = grab_locale(path) setup_locale(self) @@ -28,6 +31,33 @@ def initialize(stat_tracker) @dry_run = false end + def greet + puts I18n.t(:'menu.main.hello').light_green + + print "#{I18n.t(:'menu.main.version_info', version: @version)} - ".light_blue + check_update(@version) + puts separator + + print "#{I18n.t(:'menu.main.exit_shortcut_notice')} ".light_blue + puts I18n.t(:'menu.main.exit_shortcut').light_white + '.'.light_blue + puts "\n#{I18n.t(:'menu.main.confirm_banner_intro')}".light_blue + puts "#{I18n.t(:'common.confirm_banner')}: #{I18n.t(:'menu.main.confirm_banner_example')} [y|n]".light_magenta + + puts separator + end + + def check_summoner + summoner = req_get_current_summoner + if summoner['gameName'].nil? || summoner['gameName'].empty? + puts I18n.t(:'menu.main.summoner_check_failed').light_red + ask exit_string + exit 1 + end + + puts "\n#{I18n.t(:'menu.main.logged_in_as', name: summoner['gameName'], tagline: summoner['tagLine'])}".light_blue + puts separator + end + def host "https://127.0.0.1:#{@port}" end @@ -128,3 +158,4 @@ def handle_post_debug(post_answer) puts I18n.t(:'menu.debug.file_written_notice', filename: 'disenchanter_post.json') end end +# rubocop:enable Metrics/ClassLength diff --git a/src/class/menu/main_menu.rb b/src/class/menu/main_menu.rb index 3d934da..aac56b4 100644 --- a/src/class/menu/main_menu.rb +++ b/src/class/menu/main_menu.rb @@ -22,9 +22,9 @@ def initialize(client) menu_text = I18n.t(:'menu.main.what_to_do') lang_supp_text = if I18n.t(:'menu.main.options.language_settings') == 'Language settings' - ' (Language settings)' - else '' + else + ' (Language settings)' end things_todo = { @@ -68,6 +68,8 @@ def handle_option(todo) handle_icons(@client) when 'l' LanguageMenu.new(@client).run_loop + initialize(@client) # Reload is required to replace menu in old language + @client.greet when 'm' open_masterychart(@client) when 's' @@ -83,7 +85,6 @@ def handle_option(todo) end @client.refresh_loot - puts separator false end end diff --git a/src/modules/handlers/generic_loot.rb b/src/modules/handlers/generic_loot.rb index fa26f97..4f027b8 100644 --- a/src/modules/handlers/generic_loot.rb +++ b/src/modules/handlers/generic_loot.rb @@ -10,7 +10,7 @@ def handle_generic(client, name, type) loot_generic = select_generic_loot(client, type) if count_loot_items(loot_generic).zero? - puts I18n.t(:'handler.generic.found_nothing').yellow + puts I18n.t(:'handler.generic.found_nothing', name:).yellow return end From 36aed7f37e71c7f4dad96e52f63afcca595ada52 Mon Sep 17 00:00:00 2001 From: marvinscham Date: Fri, 23 Feb 2024 03:59:52 +0100 Subject: [PATCH 6/6] Linting touchups Compat issues --- src/class/menu/main_menu.rb | 10 +++++++--- src/main.rb | 1 - 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/class/menu/main_menu.rb b/src/class/menu/main_menu.rb index aac56b4..dd591dd 100644 --- a/src/class/menu/main_menu.rb +++ b/src/class/menu/main_menu.rb @@ -67,9 +67,7 @@ def handle_option(todo) when '8' handle_icons(@client) when 'l' - LanguageMenu.new(@client).run_loop - initialize(@client) # Reload is required to replace menu in old language - @client.greet + swap_language when 'm' open_masterychart(@client) when 's' @@ -87,4 +85,10 @@ def handle_option(todo) @client.refresh_loot false end + + def swap_language + LanguageMenu.new(@client).run_loop + initialize(@client) # Reload is required to replace menu in old language + @client.greet + end end diff --git a/src/main.rb b/src/main.rb index 4695437..cf80535 100644 --- a/src/main.rb +++ b/src/main.rb @@ -1,6 +1,5 @@ #!/usr/bin/env ruby # frozen_string_literal: true -# encoding: UTF-8 Encoding.default_external = Encoding::UTF_8 Encoding.default_internal = Encoding::UTF_8