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 344bcb2..5092754 100644 Binary files a/translation/translations.de.translation and b/translation/translations.de.translation differ diff --git a/translation/translations.en.translation b/translation/translations.en.translation index dd524c4..28d3b8f 100644 Binary files a/translation/translations.en.translation and b/translation/translations.en.translation differ diff --git a/update_checker.gd b/update_checker.gd index 51098b2..6ce599f 100644 --- a/update_checker.gd +++ b/update_checker.gd @@ -39,7 +39,7 @@ func check_for_updates() -> 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")