From 4b96f9aa46b240d9d2d6e577a1a87bfe5a8b51c2 Mon Sep 17 00:00:00 2001 From: Bucket Of Chicken <122376377+realbucketofchicken@users.noreply.github.com> Date: Sat, 5 Jul 2025 11:07:00 +0200 Subject: [PATCH] last few translations --- Main.tscn | 82 +++++++++++++----------- Settings.tscn | 3 +- birthday_container.gd | 1 - create_playlists_menu.gd | 6 +- main.gd | 30 +++------ search_item.tscn | 3 +- translation/translations.csv | 50 ++++++++++++++- translation/translations.de.translation | Bin 1885 -> 3557 bytes translation/translations.en.translation | Bin 1790 -> 3378 bytes update_checker.gd | 16 ++--- 10 files changed, 116 insertions(+), 75 deletions(-) diff --git a/Main.tscn b/Main.tscn index 9831cb7..91efc66 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=81 format=3 uid="uid://b2sygl55s6fng"] +[gd_scene load_steps=82 format=3 uid="uid://b2sygl55s6fng"] [ext_resource type="Script" uid="uid://cvqefw0g6ala7" path="res://main.gd" id="1_ubs1p"] [ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"] @@ -221,6 +221,14 @@ shadow_size = 2 shadow_color = Color(0, 0, 0, 0.556863) shadow_offset = Vector2(6.55, 6.735) +[sub_resource type="GDScript" id="GDScript_x3yn0"] +resource_name = "sd" +script/source = "extends Node + +func _ready() -> void: + TranslationServer.set_locale(\"de\") +" + [node name="Node2D" type="Control"] layout_mode = 3 anchors_preset = 15 @@ -414,7 +422,7 @@ alignment = 1 custom_minimum_size = Vector2(155, 42.335) layout_mode = 2 focus_mode = 0 -text = "CREATE_PLAYLIST" +text = "PLAYLIST_CREATE" [node name="Control" type="Control" parent="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer"] custom_minimum_size = Vector2(7.55, 0) @@ -550,10 +558,11 @@ grow_vertical = 2 color = Color(0.14902, 0.14902, 0.14902, 1) [node name="FileDialog" type="FileDialog" parent="CreatePlaylistsMenu"] -title = "Open a Directory" +title = "DIR_OPEN" initial_position = 2 size = Vector2i(352, 180) -ok_button_text = "Select Current Folder" +ok_button_text = "DIR_OPEN" +cancel_button_text = "CANCEL" file_mode = 2 access = 2 filters = PackedStringArray("*") @@ -579,14 +588,14 @@ size_flags_horizontal = 3 [node name="Title" type="Label" parent="CreatePlaylistsMenu/ScrollContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 4 -text = "CREATE PLAYLIST" +text = "PLAYLIST_CREATE" label_settings = SubResource("LabelSettings_v1ivf") [node name="PlaylistName" type="LineEdit" parent="CreatePlaylistsMenu/ScrollContainer/VBoxContainer"] custom_minimum_size = Vector2(325.08, 0) layout_mode = 2 size_flags_horizontal = 4 -placeholder_text = "Playlist name" +placeholder_text = "PLAYLIST_NAME" [node name="GoodIndicator" type="Label" parent="CreatePlaylistsMenu/ScrollContainer/VBoxContainer"] layout_mode = 2 @@ -600,12 +609,12 @@ layout_mode = 2 [node name="SelectDirButton" type="Button" parent="CreatePlaylistsMenu/ScrollContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 4 -text = "Select directory" +text = "DIR_SELECT" [node name="CurrentDirectory" type="Label" parent="CreatePlaylistsMenu/ScrollContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 4 -text = "No directory selected" +text = "DIR_NONE" [node name="Seperator2" type="Control" parent="CreatePlaylistsMenu/ScrollContainer/VBoxContainer"] custom_minimum_size = Vector2(0, 14.865) @@ -617,7 +626,7 @@ layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 4 disabled = true -text = "Create Playlist" +text = "PLAYLIST_CREATE" [node name="CloseButton" type="Button" parent="CreatePlaylistsMenu"] layout_mode = 1 @@ -647,10 +656,11 @@ shortcut = SubResource("Shortcut_axi6u") text = "RANDOMIZE" [node name="FileDialog" type="FileDialog" parent="."] -title = "Open a Directory" +title = "DIR_OPEN" position = Vector2i(28, 115) -size = Vector2i(576, 507) -ok_button_text = "Select Current Folder" +size = Vector2i(833, 507) +ok_button_text = "DIR_OPEN" +cancel_button_text = "CANCEL" file_mode = 2 access = 2 use_native_dialog = true @@ -827,7 +837,7 @@ offset_right = -328.0 offset_bottom = 80.0 grow_horizontal = 2 focus_mode = 1 -placeholder_text = "Search" +placeholder_text = "SONG_SEARCH" alignment = 1 caret_blink = true script = ExtResource("12_mr42x") @@ -917,7 +927,7 @@ offset_left = -64.0 offset_top = -23.0 grow_horizontal = 0 grow_vertical = 0 -text = "v1.5.6" +text = "v1.7" horizontal_alignment = 2 [node name="SettingsButton" type="Button" parent="."] @@ -980,21 +990,22 @@ offset_bottom = 501.0 [node name="WavDisclaimer" type="AcceptDialog" parent="."] transparent_bg = true -title = "WAV disclaimer" +title = "!" initial_position = 4 size = Vector2i(256, 100) transparent = true popup_window = true force_native = true -dialog_text = "wav files are not supported yet" +dialog_text = "WAV_DISCLAIMER" [node name="PlaylistOrSong" type="ConfirmationDialog" parent="."] +title = "CONFIRM" initial_position = 2 size = Vector2i(473, 106) -ok_button_text = "Download Playlist" -dialog_text = "Do you want to download the song or the Entire playlist?" +ok_button_text = "DL_LIST" +dialog_text = "DL_DIALOG" dialog_autowrap = true -cancel_button_text = "Download Song" +cancel_button_text = "DL_SONG" [node name="UpdateChecker" type="Control" parent="."] layout_mode = 1 @@ -1034,7 +1045,7 @@ offset_left = -136.0 offset_right = 113.0 offset_bottom = 23.0 grow_horizontal = 2 -text = "Update Available!" +text = "UPDATE_AVAILABLE" horizontal_alignment = 1 vertical_alignment = 1 @@ -1144,7 +1155,7 @@ offset_left = -20.0 offset_right = 20.0 offset_bottom = 23.0 grow_horizontal = 2 -text = "Simplaudio is Updating!" +text = "S_UPDATING" label_settings = SubResource("LabelSettings_b1152") horizontal_alignment = 1 vertical_alignment = 1 @@ -1159,10 +1170,7 @@ offset_top = 52.0 offset_right = 142.0 offset_bottom = 153.0 grow_horizontal = 2 -text = "Please wait. -Simplaudio will restart automatically - -this wont take long" +text = "S_UPT_NOTE" horizontal_alignment = 1 [node name="LoadingIMG" type="Sprite2D" parent="UpdatingNotification"] @@ -1189,9 +1197,11 @@ label_settings = SubResource("LabelSettings_ivhc6") horizontal_alignment = 1 [node name="deleteConfirm" type="ConfirmationDialog" parent="."] +title = "CONFIRM" initial_position = 2 size = Vector2i(263, 100) -dialog_text = "Are you sure you want to delete" +dialog_text = "DELETE_DIALOG" +cancel_button_text = "CANCEL" [node name="LoadingFailedScreen" type="Control" parent="."] visible = false @@ -1232,22 +1242,18 @@ alignment = 1 [node name="LoadingFailedLabel" type="Label" parent="LoadingFailedScreen/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 4 -text = "LOADING FAILED" +text = "LOADINGF_NOTE1" label_settings = SubResource("LabelSettings_spe36") [node name="Label2" type="Label" parent="LoadingFailedScreen/VBoxContainer"] layout_mode = 2 -text = "Saving is currently disabled -Simplaudio failed to load your save, -Simplaudio may also have failed to save, -if you suspect this, please contact me." +text = "LOADINGF_NOTE1" label_settings = SubResource("LabelSettings_amome") horizontal_alignment = 1 [node name="Label3" type="Label" parent="LoadingFailedScreen/VBoxContainer"] layout_mode = 2 -text = "Please restart Simplaudio, -if the issue presists you can:" +text = "LOADINGF_NOTE2" label_settings = SubResource("LabelSettings_drf2g") horizontal_alignment = 1 @@ -1258,11 +1264,11 @@ alignment = 1 [node name="ContinueAnyways" type="Button" parent="LoadingFailedScreen/VBoxContainer/HBoxContainer"] layout_mode = 2 -text = "Continue anyways" +text = "LOADINGF_CONTINUE" [node name="Contact" type="Button" parent="LoadingFailedScreen/VBoxContainer/HBoxContainer"] layout_mode = 2 -text = "Contact me" +text = "LOADINGF_CONTACT" [node name="ConfirmationDialog" type="ConfirmationDialog" parent="LoadingFailedScreen"] title = "Are you sure?" @@ -1316,11 +1322,12 @@ offset_right = 62.5 offset_bottom = 11.5 grow_horizontal = 2 grow_vertical = 2 -text = "Happy Birthday Simplaudio!" +text = "BDAY" label_settings = SubResource("LabelSettings_f1d3e") [node name="PlayingNow" type="Window" parent="."] transparent_bg = true +initial_position = 4 size = Vector2i(400, 200) visible = false unresizable = true @@ -1331,6 +1338,9 @@ force_native = true [node name="PlayingNowWindow" parent="PlayingNow" node_paths=PackedStringArray("ParentScene") instance=ExtResource("40_ismud")] ParentScene = NodePath("../..") +[node name="Node" type="Node" parent="."] +script = SubResource("GDScript_x3yn0") + [connection signal="toggled" from="SelectPlaylist" to="SelectPlaylist" method="_on_toggled"] [connection signal="pressed" from="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer/CreatePlaylist" to="PlaylistPanelHolder/PlaylistsPanel" method="_on_create_playlist_pressed"] [connection signal="toggled" from="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer/PlayAll" to="PlaylistPanelHolder/PlaylistsPanel" method="_on_play_all_toggled"] diff --git a/Settings.tscn b/Settings.tscn index 150f629..860d455 100644 --- a/Settings.tscn +++ b/Settings.tscn @@ -41,7 +41,6 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -scroll_vertical = 391 [node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"] custom_minimum_size = Vector2(576, 493) @@ -583,7 +582,7 @@ layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 4 focus_mode = 0 -text = "RESET SETTINGS" +text = "RESET_SETTINGS" [node name="Exit" type="Button" parent="."] layout_mode = 1 diff --git a/birthday_container.gd b/birthday_container.gd index 56b874f..bb1122a 100644 --- a/birthday_container.gd +++ b/birthday_container.gd @@ -11,7 +11,6 @@ var IsFocused:bool # Called when the node enters the scene tree for the first time. func _ready() -> void: birthday_happy.hide() - print("user: ",DiscordRPC.get_current_user().get("username")) var bday:bool if Time.get_datetime_dict_from_system().day == 9: if Time.get_datetime_dict_from_system().month == 9: diff --git a/create_playlists_menu.gd b/create_playlists_menu.gd index a2e1371..da37e08 100644 --- a/create_playlists_menu.gd +++ b/create_playlists_menu.gd @@ -33,15 +33,15 @@ func _on_playlist_name_text_changed(new_text: String) -> void: #elif new_text.unicode_at() if !Parent.Playlists.has(new_text): if new_text != "": - good_indicator.text = "Name Valid" + good_indicator.text = tr("NAME_VALID") good_indicator.label_settings.font_color = Color(0,1,0,1) NameValid =true else: - good_indicator.text = "Name needs to be something" + good_indicator.text = tr("NAME_EMPTY") good_indicator.label_settings.font_color = Color(1,0,0,1) NameValid = false else: - good_indicator.text = "Name Already used" + good_indicator.text = tr("NAME_USED") good_indicator.label_settings.font_color = Color(1,0,0,1) NameValid = false IsValid() diff --git a/main.gd b/main.gd index f29b38f..9e810fd 100644 --- a/main.gd +++ b/main.gd @@ -95,9 +95,6 @@ func _ready() -> void: search_results.index_pressed.connect(SetSong) search_results.song_deleted.connect(deletesong) var Strin:String - for Arg in OS.get_cmdline_args(): - if Arg.to_lower().ends_with(".mp3") or Arg.to_lower().ends_with(".wav"): - OS.alert("opening files like this\nis no longer supported") var data:Dictionary var save = loadUserdata() if save != {}: @@ -210,14 +207,7 @@ func setUpDiscord(): var LText = SplashStrings.pick_random() print(LText) DiscordRPC.large_image_text = LText - if DiscordUsername == "vrenthusiest": - if randi_range(1,4) == 1: - DiscordRPC.large_image = "nullbody" - DiscordRPC.large_image_text = "I am racist against nullbodys - Vr" - else: - DiscordRPC.large_image = "logo" - else: - DiscordRPC.large_image = "logo" + DiscordRPC.large_image = "logo" DiscordUsername = DiscordRPC.get_current_user().get("username") DiscordRPC.refresh() # this is boolean if everything worked @@ -242,7 +232,7 @@ func deletesong(idx:int): var currentDir:String= CurrentDir currentDir += "/" + textSongs[idx] delete_confirm.show() - delete_confirm.dialog_text = "are you sure you want to delete \n" + textSongs[idx] +"?" + delete_confirm.dialog_text = tr("DELETE_DIALOG") + textSongs[idx] +"?" delete_confirm.confirmed.connect(deleteConfirmed) delete_confirm.canceled.connect(deleteCancelled) await ContinueDelete @@ -351,13 +341,13 @@ func PlaySongs(): Paused = true music_player.stream_paused = true play_list.icon = PLAY - DiscordRPC.state = "Paused" + DiscordRPC.state = tr("DELETE_DIALOG") print(DiscordRPC.get_current_user()) else: DiscordRPC.start_timestamp = int(Time.get_unix_time_from_system() - (current_progress.value * CurrentSongLenth / current_progress.max_value)) print(DiscordRPC.get_current_user()) - DiscordRPC.state = "Listening To Music" + DiscordRPC.state = tr("STATE_LISTENING") Paused = false music_player.stream_paused = false play_list.icon = PAUSE @@ -371,14 +361,12 @@ func PlaySongs(): if PlayAllLists: if CurrentIDX >= (textSongs.size()): CurrentPlaylist = Playlists.keys()[(Playlists.keys().find(CurrentPlaylist)+1) % Playlists.keys().size()] - print("ASSS") print(CurrentPlaylist) index = CurrentIDX % textSongs.size() else: if PlayAllLists: if CurrentIDX+1 >= (textSongs.size()-1): CurrentPlaylist = Playlists.keys()[(Playlists.keys().find(CurrentPlaylist)+1) % Playlists.keys().size()] - print("AS") index = textSongs.find(OpenedSong) % textSongs.size() if PlayAllLists: if !CurrentDir.ends_with(CurrentPlaylist): @@ -499,24 +487,22 @@ func _process(_delta: float) -> void: SaveEverything() @warning_ignore("integer_division") if DiscordRichPresenceEnabled: - if DiscordRPC.large_image != "nullbody": - UpdateSplashes() + UpdateSplashes() if DiscordRPC.get_is_discord_working(): print(DiscordRPC.get_current_user()["username"]) print(TimeSpentListening) var LText = SplashStrings.pick_random() - if DiscordRPC.large_image != "nullbody": - DiscordRPC.large_image_text = LText + DiscordRPC.large_image_text = LText if DiscordRPC.get_is_discord_working(): DiscordRPC.refresh() # "59:59 remaining" timestamp for the activity if music_player.playing: TimeSpentListening += _delta CurrentPausedIndicatorShaderIntensity = lerp(CurrentPausedIndicatorShaderIntensity,0.0,0.1) - DiscordRPC.state = "Listening To Music" + DiscordRPC.state = tr("STATE_LISTENING") else: DiscordRPC.start_timestamp = int(0) - DiscordRPC.state = "Paused" + DiscordRPC.state = tr("STATE_PAUSED") if DiscordRPC.get_is_discord_working(): DiscordRPC.refresh() CurrentPausedIndicatorShaderIntensity = lerp(CurrentPausedIndicatorShaderIntensity,1.0,0.1) diff --git a/search_item.tscn b/search_item.tscn index fbe3fae..330cd69 100644 --- a/search_item.tscn +++ b/search_item.tscn @@ -47,7 +47,8 @@ alignment = 0 [node name="PopupMenu" type="PopupMenu" parent="."] item_count = 1 -item_0/text = "delete" +item_0/text = "DELETE" +item_0/id = 0 [connection signal="pressed" from="HBoxContainer/Dropdown" to="." method="_on_dropdown_pressed"] [connection signal="pressed" from="HBoxContainer/Songname" to="." method="_on_songname_pressed"] diff --git a/translation/translations.csv b/translation/translations.csv index 5e16591..a3b7d6e 100644 --- a/translation/translations.csv +++ b/translation/translations.csv @@ -13,7 +13,7 @@ PLAYALL,Play all,alle abspielen UPDATE,Update,Updaten SETTINGS,SETTINGS,EINSTELLUNGEN INTIGRATIONS,INTIGRATIONS,INTIGRATIONEN -DRPC,discord rich presense,discord aktivitäten +DRPC,discord rich presense,Discord aktivitäten DRPC_NOTE,NOTE: After disableing a restart is needed,Nach deaktivieren neustarten LOOKS,LOOKS,AUSEHEN BS_SELECT,Select Background,Hintergrund auswählen @@ -30,9 +30,55 @@ ROOM_SIZE,Room size,Raum größe MISC,MISC,WEITERES STREAMER_WINDOW,Streamer window,Streamer fenster STREAMER_NOTE,This setting enables a dedicated window for displaying the currently playing song. This can be useful when streaming ,"Diese eistellung aktiviert ein fenster das das grade speilende lied zeigt, ist hauptzächlich für streamer nützlich" -CREDITS,CREDITS,CREDITS +CREDITS,CREDITS,dankesagung YT_DL,Godot YT-DL by Noé Le Cam,Godot YT-DL von Noé Le Cam DRPCL,Discord RPC by vaporee,Discord RPC von vaporee GDGIF,Godot GIF by b0tlanner,Godot GIF von b0tlanner RESET_SETTINGS,RESET SETTINGS,EINSTELLUNGEN ZURÜCKSETZEN LISTENING_TIME,Total listening time:,Gesamte hörzeit +CREATE_PLAYLIST,CREATE PLAYLIST,PLAYLIST ERSTELLEN +PLAYLIST_NAME,Playlist name,Playlist name +DIR_SELECT,Select directory,Pfad auswählen +NAME_USED,Name Already used,Name ist schon genutzt +NAME_EMPTY,Name is empty,Name ist leer +NAME_VALID,Name Valid,Name ist verfügbar +DIR_NONE,No directory selected,Kein pfad ausgewählt +PLAYLIST_CREATE,Create Playlist,Playlist erstellen +SEARCH,Search,Suchen +S_UPDATING,Simplaudio is Updating!,Simlaudio updated… +S_UPT_NOTE,"Please wait. +Simplaudio will restart automatically + +this wont take long","Bitte warten. +Simplaudio started automatisch neu + +Dies dauert nicht lange" +LOADINGF_TITLE,LOADING FAILED,LADEN GESCHEITERT +LOADINGF_NOTE1,Simplaudio failed to load your save.,Simplaudio konnte deinen speicher nicht laden. +LOADINGF_NOTE2,"Please restart Simplaudio, +if the issue presists you can:","Bitte starte simplaudio neu, +Wenn das problem weiterhin besteht kannst du:" +LOADINGF_CONTINUE,Continue anyways,Trozdem weiter +LOADINGF_CONTACT,Contact me,Kontaktiere mich +UPDATE_AVAILABLEUpdate Available!,,Update Verfügbar! +CANCEL,Cancel,Abbrechen +OK,OK,OK +DELETE_DIALOG,Are you sure you want to delete \n,Bist du dir sicher das du das folgende lied löschen willst:\n +BDAY,Happy Birthday Simplaudio!,Glückwunsch zum geburtstag Simplaudio! +STATE_PAUSED,Paused,Pausiert +STATE_LISTENING,Listening To Music,Hört sich musik an +WAV_DISCLAIMER,wav files are not supported yet,WAV dateien sind nicht supportet +UPD_ERR_CLT,a client error occurred,ein client error ist passiert +UPDT_OUT_END, Is Out!, Ist raus! +IMPORTANT,(Important),(Wichtig) +UPD_UPDATING,Updating…,Updated… +UPD_ERR_CODE,DOWNLOAD FAILED ERROR CODE: ,DOWLOAD FEHLER CODE: +UPD_UNZIP_PANT,unzipping…,entpacken… +SONG_SEARCH,Search…,Suchen… +FOLDER_SELECT,Select Current Folder,Wähle einen ordner aus +DIR_OPEN,Open a Directory,Öffne einen pfad +DELETE,delete,löschen +CONFIRM,Please Confirm…,Bitte bestimme… +DL_SONG,Download Song,Nur Lied Herunterladen +DL_LIST,Download Playlist,Playliste Herunterladen +DL_DIALOG,Do you want to download the song or the Entire playlist?,Willst du die playlist herunterladen? diff --git a/translation/translations.de.translation b/translation/translations.de.translation index 344bcb23197736dc41b96eae50fcbf34ce8c5e62..509275479f365186d393121acfcdf74fc897b14e 100644 GIT binary patch literal 3557 zcma)94Nz3q6@DyRvn(_i($E!D9&T8HfCQOpMpk5nC*c0!?gDk2ip%nVW&fCci>Bzr zBu*0WkG3WfGTJx^IR3OrM=MH8r?G1sIyKS8bYe=HIvQ;>R;f+Xl6D^b&hl<%!?ZJf z!#DSybI<=d_W};5ql!~LHCDnL;32@?74-#uJz}dX;t5FsPt+F{RMZfQkH$$!hV zd3i{RhPVQf#rHo8@--Y%G1%HF#*4^<3D(Dy z{Ti$mpb^*zv;ky?lIj6^fjz(r0P)%P@+_M8LkjOG)}H}C2i^qE0d#&|S!w@n!k*~M zv*?dNe>{sva_qZ>v(JDp5@e_cT7YEcDl3zxHA~^~v(5|&bP@K;6xxV&HQ)j^03ARG z*a}c+ZLi@@}Y_=(TRKgpye z@aH{0)V~0?i0L!=imj*bI58(=gDwo?U&=qxvIWk+0Upf)<7e$}KX?ZO-4z0hZ{^@9 zwJvU-?#f^PvE+>m_@moEpiv|nqc;jusNUZMvVi(#akmXdXy%AF`M1}PZ-XA)E&}uW zd(*${uR$&YJeqmt*C(j@jzfriP`lD=-uY3V}ij`suUwh=K#R>glcFo==f8&D^#X+)6 z|0lf}YBPjbpX{3bYMOEC0p-K=O>cbh?@tgA<(`|sZ~lAIL;IBcsP9aEe9Pj(%b;iH zcTVrTSPMRzCni7qU|X6Cc4p7@MDkk~w!v>9bSe_;=Y9OsPO35WJhAU9p0_@?0m+g5 z#JZlG*FE|U?65pp{<-&z2j(FN;#1Cpzg92kLL6k1YQ^F+^yMVo08Okw{PMO9N}Z^NO#gScQ~EX{E;f%$|LA1T=_eq^>UZkai$9Q* z_^C!rziaovrZ&*TORU5G?AL#E1I8$a#5`KIJzGY#q&txq?}=+FUnY#gMI3*6^!kEY z#7i|ve3$OrDgNP7@aZi{d{15+KjA$Bt&XNmI}d}Sa~0VR5`2$VO~G@bLVF9V;=&xhUjO&vx&bQdV@hxKhAjDn^&&j7GK z?5+8H)fi|N-yH07fJ=~-YqPJM?(0mEIoX_5ph{jktTtp5Wl5L)+=QXH;mdPt-e8%` zS$twE@9CB{$A$u8h?DF4oC8*wtGAfeTk4!H!S>~r7aX817O=X;+*+gNIMf@uT0K$d z33aykVS}v(=XEw$U5&%!s|JP&~G~J38Ym&B215L*w^g z%hcc$YDvB}{d9TSm4)gd6NzUuLEhaRiH&*vk{IoQH&a7(ot^)xPuaC61L7ld-9S=1GIcqH zQ4?+rNBQ-x;%W=ODIDT$;n)%0BJx$9pi;zXm7~6j3+@T3jfI~wg_^oGaq*T%qXADS zBu2j44c^`0i0!X3I|Y{;)vXaFPcSO-9kG!}kLZgkEx)Y}pzCcOHVhr{X|SmSk69}Q z_e`anok*sx5&ib3X>7~=Ii6Ix+YXLda%;_(Vp39C@n?JpVVQD^(osk z^nETBhSpRq*!UX3SydZvl8cPSHD!NJeQIa=1?|P{J-11`GbMyD;Gkms-pLu6orZO# za#LA>ZkJJVHx=J3$!;rn+^WjZ%l@o4^*Y0J(h5#?NfVuPM0w?mV|EX2*`C4Xoo^H) zZLzWT7EdIXlTB`SE?p(N8IJN`U|3^*Z;&R!Fud!-%&C>B1C^OHn%cn&rpZjJyrL9V zYlt;AU-p}>XwTqca#QYo$yW6NC6hVRNx57-E~Zb6M7e2IZEWOT#r7S=LmJt?Tn3}b z)Hr-ybK$*JR28kkXe<;^aFuWVfah46WX{tYFKM#D;p?O*AAzAt!ww8w(Y|Uq^V4Jo#KO$n!sp6Wrk6@R3p7W$}=^cv})$} L2fcj`{Db!&E;6}m delta 1022 zcmYk4Ur1A77{+(bR_;t)Xp3TMTa-#mvLPhFB5^HEsLdS>$%OExl(2|UsNj$gv?!Dg zWWj>yA0-JRsU-!{jd*ePoI^w^^tdoenG0|d+RREWx2{B5I3Ol)YXY$eh7EF z25kBfyA{9-19=%3Na&d<)L!I-J!I-qrDvb;(JS?nR`rKo6lrL~ie9)}7zyf@%T)o9 z$cE<7_1PBG9Ig(US&kULpsfc%ApLcjkoE<2Kp^#{@qFoBq17n(0&&@UH<4F=Zuc7Tp z%Q$L!tabR2cQjcz`}_=Qc}LSr`alJ`xFC_fSnr(|ql(Y#d*FEkA7}B;DHnP?77ue_ z&Z`8nfA`Iqdnox)mh*Ccd&dzr(xmRZA^hoQJ*II8?_Lh*w=OnCP?rE6V=#N{_A-2& zLF5V5xs%-|gonQ0eG6}&!dH!)426#_d@L#gQs?WF-mE8yf{UvE4ZCe+Pac|ccf!k_ zxy|P5cEnP_YQzxOrrU0#+h0s&%!vchVq!6Iqp4^Q8jbn|-*ncf(n{j##NPc~rv1t{ NQts@BgN-I2;r>yJ`*|$hF znHcM&k*3yGD~zdWI~AO0(wG4=N}HLQq*^m$BejV!wG$nUZ6uUpYLhYPJo=sGUAx1y zGkwE1_nhyZd;Z?JZx+Akw=wO}VaqEbX=SzscvqDUKMh0TJJ zJR!4eh#ivB(UOqb!ZMo;wXHkYDJL|7A}NV@D7ta_m=cVKx)LB6O9Kjlq^GKiivLz= zOMH1GF0&G{#q&QK!n-EGNCKv`2V%05T&MLeaCs><@U4|Xq+%(uQ)|7gZy<(w_vRS0>FBp1Be1o0$)K~0r(DN z{3TIxe9dQng-jDf&}n?#;D^g8PlE>EV`DYBIK*{+zD&4uOAm#g=lp_a2X=47ZJ=8~ z;C%IyCnl~S2#qg|D(C;WbhvF1cs>i9FF3IA=ZB%phb@8Uw{rgoy}G0y@^$m`@}uh! zk7NSGr0zCdd1j_|S7n8>g zIdr{o7|}H%sD9?c)s%l%oJfAQ-lpi_MW&YS+Gi`~R|^3P+?UTmB3Vg&>n z~rp5ha@{h240l)eo;Lj&he7mA~G;AYPIVD5&T z7vX0ne<}Ucxm!qou}enQ`$Lj#1nWPr*|J-mkou_E%$r-TW8O21%EGW36nj~ zZySPNnkjlu{QMurvwCmf5ZC$nBa>TC#9>Ey5sr`T`_ULSdH&qKYghl~cI*>RcAP(O z?<+su0sEQxwrzXn!3xcmddK4pU(~sF&-&wIP^dP_ z10j=pb6IfhW$<)IXny|OJ?r*uY?2L~zprq^2L=>(ALMTU+}~d3XO9d+=krdh2`GoH zJ=PNq$E0>PrT2IPj;iX>Rhvdv?kf>5dQLo-t}@j~ZGGCqdtpS3shk`976 z^nT&N;Q%CGuh`$9GN0SJ*6k7lBD47&)__Cc1X(z{RMyzlE+u3pIsyTg$0;(GC*X4W ztpS(UBeLy=?wm#OH!S9slkl!3!&Gb8iNPZMx~AGa<_2$J;<=g{mASp%dT}}dwdU_? z=L+RYzRLWvA}5&WZS>fMJ0UC;`%f80amFuimg8;Av6`v2y%zJKPL%~Z@WZPk7H(%^ zS6oI1>{6r)KarR}7K;c9e(kXamuN$vx4s>&x6aMau%g(2yIPlC7km&oy*ya6kZygrgvS5=UOtlxG8&f*J&$iwf(OXJCQ8ja?tCo!09!P|xXjG0fzXQeo zr(iX3`LW*@IkIZ!T-8mbRcSA0Tp!ln*mkq=?i>+{M;}Ia^UNPR2hbi;AD*vUW=Y4M z2R}81HBva#4!$*c!r9VfbfC$q&3ygN3m0W69_&DWu3CDFx3?zLMoa!XfvGezESk!* zFH}S;`JQ$17`;FJZ}+}q>=G+0fAWy&s9x>N&NHo`_i43bAcR`0%k8k=@mHpwT(uTM z$Ha@(`dAdf$t$_hyk@Mf%-oz?WGK$InBQ%fFE+ahk|ox)XNea?17&PFV=P4Z z%qB&Ha+rDRQTO9wb9G;~*gWF%4-V-ZtP+Ng>Ma(hT9f(dynMZrhoEYFQnwrH)0S4!7l?v0r*AN2$*+8vD%Xm*7$aZ+F7XmbxNc zv3Np?CQ7F70S4{r(}$Sd+vK78wc-Vb-|zJcHm}`LC9o@(GA)+csdO@&ZZ=8Do2S|^ zXiTlm$lH{I+`XeE2UUBf_Hs8hIdC1rvZP>~V$ltucqAE1yXt}%!<4J`={tSrb*lE( n>4r@6vtKj4@M;=U9lp%RG0^=DQ)!Rjn?c_=`mXr#-_pMUE81ND delta 970 zcmZ9LPe@cz6vp2h$9gl3e-f#f{>+marE%yFLbjNwe1syXqo!EeA~$IZCt7Hf@E{PH zC=4GY!2}{DB?*IqCKc|)#jM&S8Ev!{1vP{iZKl3&x+fkz`0<_dy?f8O_q>_eV6G_L ztalyN{yu)lZ#;XH9)KQFaRhn{oKQK}$rFQD=kgm6Hv{Lar`$g8deN)mKInCq&qBk< zZ!7N}bPS|aKCLtjod<=$1h0Vy=wRhmRb&~uO%d<Lw#HkL0>FjW?vD>%hHeKw zQ1K)7_?wCY(Ef9tWC9Bf#Dsgu%$+iC5CNML@e}sG)hH4R-k{6R-pvkWbX(I(VeWFh zs0}?_;<#9x2arOGpCi6C4>{PhP5I~;iXK{XJ6dGz^314;e@=>PA< zyLj<4j*kZ_bNPoCI=42Eb0S1072Zf+J&BytD+U9tVT+%$2(U)u(~q@3p)z4PK(v1L z%m{q$v3Ya(M$_4wFB8alYcjX)>Hi94Ln7;9-IK3wAZH_D_@}&Ms9uhEH;_gzMlF+d z=!JpoKlNzw2~zg3^Nm)HH1?P void: if error != OK: push_error("! a client error occurred") - errorLabel.text = "a client error occurred" + errorLabel.text = tr("UPD_ERR_CLT") func _on_http_request_completed(result: int, _response_code: int, _headers: PackedStringArray, body: PackedByteArray) -> void: if result != HTTPRequest.RESULT_SUCCESS: @@ -53,15 +53,15 @@ func _on_http_request_completed(result: int, _response_code: int, _headers: Pack print("! AHHH " + str(result2)) if result2.has("tag_name"): if result2["tag_name"] != version.text: - update_available_text.text = result2["tag_name"] + " Is Out!" + update_available_text.text = result2["tag_name"] + tr("UPDT_OUT_END") show() updateLink = result2["html_url"] if result2.has("body"): patchnotes.text = str(result2["body"]) if patchnotes.text.contains("(!IT)"): patchnotes.text = patchnotes.text.erase(patchnotes.text.find("(!IT)"),7) - print("importaint update detected") - update_available_text.text = "(Important) " + result2["tag_name"] + " Is Out!" + print("import-aint update detected") + update_available_text.text = tr("IMPORTANT") + " " + result2["tag_name"] + tr("UPDT_OUT_END") patchnotes_bg.color = IMPUpdatePatchNotesColor link_bttnbg.color = IMPUpdateLinkColor link_bttnbg.StandardColor = IMPUpdateLinkColor @@ -72,7 +72,7 @@ func _on_close_buen_pressed() -> void: func _on_link_button_pressed() -> void: link_button.disabled = true - link_button.text = "Updating..." + link_button.text = tr("UPD_UPDATING") updating_notification.show() updating_bg.show() paused_indicator.hide() @@ -91,7 +91,7 @@ func _on_link_button_pressed() -> void: ) if error != OK: print("! DOWNLOAD ERROR: " + str(error)) - errorLabel.text = "DOWNLOAD FAILED ERROR CODE: " + str(error) + errorLabel.text = tr("UPD_ERR_CODE") + str(error) errorLabel.label_settings.font_color = errorColor else: errorLabel.text = "downloading..." @@ -102,11 +102,11 @@ func _on_link_button_pressed() -> void: func _on_download_request_completed(result: int, response_code: int, headers: PackedStringArray, body: PackedByteArray) -> void: if result != HTTPRequest.RESULT_SUCCESS: print("! Something went wrong server side: " + str(result)) - errorLabel.text = "DOWNLOAD FAILED ERROR CODE: " + str(result) + errorLabel.text = tr("UPD_ERR_CODE") + str(result) errorLabel.label_settings.font_color = errorColor return else: - errorLabel.text = "unzipping..." + errorLabel.text = tr("UPD_UNZIP_PANT") print("works as expected brotha") var unzipper:ZIPReader = ZIPReader.new() # sus unzipper.open(GetLocalPath()+"download.zip")