diff --git a/Core/Loaders.h b/Core/Loaders.h index 10b51933c3..c60b19ed88 100644 --- a/Core/Loaders.h +++ b/Core/Loaders.h @@ -165,6 +165,7 @@ bool UmdReplace(const Path &filepath, FileLoader **fileLoader, std::string &erro enum class ZipFileContents { + NOT_A_ZIP_FILE = 0, UNKNOWN, PSP_GAME_DIR, ISO_FILE, diff --git a/GPU/GPUCommon.h b/GPU/GPUCommon.h index 4df16c5506..b160241e5d 100644 --- a/GPU/GPUCommon.h +++ b/GPU/GPUCommon.h @@ -8,15 +8,11 @@ #include "Common/Swap.h" #include "Core/MemMap.h" #include "Common/MemoryUtil.h" -#include "GPU/ge_constants.h" #include "GPU/GPU.h" -#include "GPU/GPUState.h" #include "GPU/Debugger/Record.h" #include "GPU/Debugger/Breakpoints.h" -#include "GPU/Common/ShaderCommon.h" #include "GPU/GPUDefinitions.h" #include "GPU/Common/GPUDebugInterface.h" -#include "GPU/GPUDefinitions.h" #if defined(__ANDROID__) #include diff --git a/UI/InstallZipScreen.cpp b/UI/InstallZipScreen.cpp index 81667099f7..f39cc88bb9 100644 --- a/UI/InstallZipScreen.cpp +++ b/UI/InstallZipScreen.cpp @@ -33,34 +33,88 @@ #include "UI/SavedataScreen.h" #include "UI/EmuScreen.h" -InstallZipScreen::InstallZipScreen(const Path &zipPath) : zipPath_(zipPath) { +InstallZipScreen::InstallZipScreen(const Path &zipPath) : UITwoPaneBaseDialogScreen(Path(), TwoPaneFlags::SettingsToTheRight | TwoPaneFlags::ContentsCanScroll), zipPath_(zipPath) { g_GameManager.ResetInstallError(); + struct zip *zipFile = ZipOpenPath(zipPath_); + if (zipFile) { + DetectZipFileContents(zipFile, &zipFileInfo_); // Even if this fails, it sets zipInfo->contents. + ZipClose(zipFile); + } } -void InstallZipScreen::CreateViews() { - using namespace UI; +std::string_view InstallZipScreen::GetTitle() const { + auto iz = GetI18NCategory(I18NCat::INSTALLZIP); + return iz->T("ZIP file"); +} - File::FileInfo fileInfo; - File::GetFileInfo(zipPath_, &fileInfo); +void InstallZipScreen::CreateSettingsViews(UI::ViewGroup *parent) { + using namespace UI; auto di = GetI18NCategory(I18NCat::DIALOG); auto iz = GetI18NCategory(I18NCat::INSTALLZIP); auto er = GetI18NCategory(I18NCat::ERRORS); auto ga = GetI18NCategory(I18NCat::GAME); - Margins actionMenuMargins(0, 100, 15, 0); + std::string shortFilename = zipPath_.GetFilename(); - root_ = new LinearLayout(ORIENT_HORIZONTAL); + bool showDeleteCheckbox = false; + returnToHomebrew_ = false; + installChoice_ = nullptr; + playChoice_ = nullptr; + doneView_ = nullptr; + existingSaveView_ = nullptr; - ViewGroup *leftColumn = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(1.0f, Margins(12))); - ViewGroup *rightColumnItems = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(300, FILL_PARENT, actionMenuMargins)); - root_->Add(leftColumn); - root_->Add(rightColumnItems); + std::vector destOptions; + + switch (zipFileInfo_.contents) { + case ZipFileContents::ISO_FILE: + case ZipFileContents::PSP_GAME_DIR: + installChoice_ = parent->Add(new Choice(iz->T("Install"), ImageID("I_FOLDER_UPLOAD"))); + installChoice_->OnClick.Handle(this, &InstallZipScreen::OnInstall); + + // NOTE: We detect PBP isos (like demos) as game dirs currently. Can't play them directly. + if (zipFileInfo_.contents == ZipFileContents::ISO_FILE) { + playChoice_ = parent->Add(new Choice(ga->T("Play"), ImageID("I_PLAY"))); + playChoice_->OnClick.Handle(this, &InstallZipScreen::OnPlay); + } + + returnToHomebrew_ = true; + showDeleteCheckbox = true; + break; + case ZipFileContents::TEXTURE_PACK: + case ZipFileContents::SAVE_DATA: + installChoice_ = parent->Add(new Choice(iz->T("Install"), ImageID("I_FOLDER_UPLOAD"))); + installChoice_->OnClick.Handle(this, &InstallZipScreen::OnInstall); + + showDeleteCheckbox = true; + break; + case ZipFileContents::FRAME_DUMP: + // It's a frame dump, add a play button! + playChoice_ = parent->Add(new Choice(ga->T("Play"), ImageID("I_PLAY"))); + playChoice_->OnClick.Handle(this, &InstallZipScreen::OnPlay); + break; + default: + // Nothing to do! + break; + } + + if (showDeleteCheckbox) { + parent->Add(new Spacer(12.0f)); + parent->Add(new CheckBox(&deleteZipFile_, iz->T("Delete ZIP file"))); + } +} + +void InstallZipScreen::CreateContentViews(UI::ViewGroup *parent) { + using namespace UI; + + LinearLayout *leftColumn = parent->Add(new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT))); + + auto di = GetI18NCategory(I18NCat::DIALOG); + auto iz = GetI18NCategory(I18NCat::INSTALLZIP); + auto er = GetI18NCategory(I18NCat::ERRORS); + auto ga = GetI18NCategory(I18NCat::GAME); std::string shortFilename = zipPath_.GetFilename(); - - // TODO: Do in the background? - struct zip *zipFile = ZipOpenPath(zipPath_); bool showDeleteCheckbox = false; returnToHomebrew_ = false; @@ -72,112 +126,107 @@ void InstallZipScreen::CreateViews() { std::vector destOptions; - if (zipFile) { - DetectZipFileContents(zipFile, &zipFileInfo_); // Even if this fails, it sets zipInfo->contents. - if (zipFileInfo_.contents == ZipFileContents::ISO_FILE || zipFileInfo_.contents == ZipFileContents::PSP_GAME_DIR) { - std::string_view question = iz->T("Install game from ZIP file?"); + switch (zipFileInfo_.contents) { + case ZipFileContents::ISO_FILE: + case ZipFileContents::PSP_GAME_DIR: + { + std::string_view question = iz->T("Install game from ZIP file?"); - leftColumn->Add(new TextView(question)); - leftColumn->Add(new TextView(shortFilename)); - if (!zipFileInfo_.contentName.empty()) { - leftColumn->Add(new TextView(zipFileInfo_.contentName)); - } - - doneView_ = leftColumn->Add(new TextView("")); - - if (zipFileInfo_.contents == ZipFileContents::ISO_FILE) { - const bool isInDownloads = File::IsProbablyInDownloadsFolder(zipPath_); - Path parent; - if (!isInDownloads && zipPath_.CanNavigateUp()) { - parent = zipPath_.NavigateUp(); - destFolders_.push_back(parent); - } - if (g_Config.currentDirectory.IsLocalType() && File::Exists(g_Config.currentDirectory) && g_Config.currentDirectory != parent) { - destFolders_.push_back(g_Config.currentDirectory); - } - destFolders_.push_back(g_Config.memStickDirectory); - } else { - destFolders_.push_back(GetSysDirectory(DIRECTORY_GAME)); - } - - installChoice_ = rightColumnItems->Add(new Choice(iz->T("Install"))); - installChoice_->OnClick.Handle(this, &InstallZipScreen::OnInstall); - - // NOTE: We detect PBP isos (like demos) as game dirs currently. Can't play them directly. - if (zipFileInfo_.contents == ZipFileContents::ISO_FILE) { - playChoice_ = rightColumnItems->Add(new Choice(ga->T("Play"))); - playChoice_->OnClick.Handle(this, &InstallZipScreen::OnPlay); - } - - returnToHomebrew_ = true; - showDeleteCheckbox = true; - } else if (zipFileInfo_.contents == ZipFileContents::TEXTURE_PACK) { - std::string_view question = iz->T("Install textures from ZIP file?"); - leftColumn->Add(new TextView(question)); - leftColumn->Add(new TextView(shortFilename)); - - doneView_ = leftColumn->Add(new TextView("")); - - installChoice_ = rightColumnItems->Add(new Choice(iz->T("Install"))); - installChoice_->OnClick.Handle(this, &InstallZipScreen::OnInstall); - - showDeleteCheckbox = true; - } else if (zipFileInfo_.contents == ZipFileContents::SAVE_DATA) { - std::string_view question = iz->T("Import savedata from ZIP file"); - leftColumn->Add(new TextView(question))->SetBig(true); - leftColumn->Add(new TextView(zipFileInfo_.gameTitle + ": " + zipFileInfo_.savedataDir)); - - Path savedataDir = GetSysDirectory(DIRECTORY_SAVEDATA); - bool overwrite = !CanExtractWithoutOverwrite(zipFile, savedataDir, 50); - - destFolders_.push_back(savedataDir); - - if (overwrite) { - leftColumn->Add(new NoticeView(NoticeLevel::WARN, di->T("Confirm Overwrite"), "")); - } - - int columnWidth = 300; - - LinearLayout *compareColumns = leftColumn->Add(new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT))); - LinearLayout *leftCompare = new LinearLayout(ORIENT_VERTICAL); - leftCompare->Add(new TextView(iz->T("Data to import"))); - compareColumns->Add(leftCompare); - leftCompare->Add(new SavedataView(*screenManager()->getUIContext(), Path(), IdentifiedFileType::PSP_SAVEDATA_DIRECTORY, - zipFileInfo_.gameTitle, zipFileInfo_.savedataTitle, zipFileInfo_.savedataDetails, NiceSizeFormat(zipFileInfo_.totalFileSize), zipFileInfo_.mTime, false, new LinearLayoutParams(columnWidth, WRAP_CONTENT))); - - // Check for potential overwrite at destination, and ask the user if it's OK to overwrite. - if (overwrite) { - savedataToOverwrite_ = savedataDir / zipFileInfo_.savedataDir; - std::shared_ptr ginfo = g_gameInfoCache->GetInfo(screenManager()->getDrawContext(), savedataToOverwrite_, GameInfoFlags::FILE_TYPE | GameInfoFlags::PARAM_SFO | GameInfoFlags::ICON | GameInfoFlags::SIZE); - - LinearLayout *rightCompare = new LinearLayout(ORIENT_VERTICAL); - rightCompare->Add(new TextView(iz->T("Existing data"))); - - compareColumns->Add(rightCompare); - existingSaveView_ = rightCompare->Add(new SavedataView(*screenManager()->getUIContext(), ginfo.get(), IdentifiedFileType::PSP_SAVEDATA_DIRECTORY, false, new LinearLayoutParams(columnWidth, WRAP_CONTENT))); - if (System_GetPropertyBool(SYSPROP_CAN_SHOW_FILE)) { - rightCompare->Add(new Button(di->T("Show in folder")))->OnClick.Add([=](UI::EventParams &) { - System_ShowFileInFolder(savedataToOverwrite_); - }); - } - } - - installChoice_ = rightColumnItems->Add(new Choice(iz->T("Install"))); - installChoice_->OnClick.Handle(this, &InstallZipScreen::OnInstall); - - doneView_ = leftColumn->Add(new TextView("")); - showDeleteCheckbox = true; - } else if (zipFileInfo_.contents == ZipFileContents::FRAME_DUMP) { + leftColumn->Add(new TextView(question)); + leftColumn->Add(new TextView(shortFilename)); + if (!zipFileInfo_.contentName.empty()) { leftColumn->Add(new TextView(zipFileInfo_.contentName)); - // It's a frame dump, add a play button! - playChoice_ = rightColumnItems->Add(new Choice(ga->T("Play"))); - playChoice_->OnClick.Handle(this, &InstallZipScreen::OnPlay); - } else { - leftColumn->Add(new TextView(iz->T("Zip file does not contain PSP software"), ALIGN_LEFT, false, new AnchorLayoutParams(10, 10, NONE, NONE))); } + + doneView_ = leftColumn->Add(new TextView("")); + + if (zipFileInfo_.contents == ZipFileContents::ISO_FILE) { + const bool isInDownloads = File::IsProbablyInDownloadsFolder(zipPath_); + Path parent; + if (!isInDownloads && zipPath_.CanNavigateUp()) { + parent = zipPath_.NavigateUp(); + destFolders_.push_back(parent); + } + if (g_Config.currentDirectory.IsLocalType() && File::Exists(g_Config.currentDirectory) && g_Config.currentDirectory != parent) { + destFolders_.push_back(g_Config.currentDirectory); + } + destFolders_.push_back(g_Config.memStickDirectory); + } else { + destFolders_.push_back(GetSysDirectory(DIRECTORY_GAME)); + } + + returnToHomebrew_ = true; + showDeleteCheckbox = true; + break; + } + case ZipFileContents::TEXTURE_PACK: + { + std::string_view question = iz->T("Install textures from ZIP file?"); + leftColumn->Add(new TextView(question)); + leftColumn->Add(new TextView(shortFilename)); + + doneView_ = leftColumn->Add(new TextView("")); + + showDeleteCheckbox = true; + break; + } + case ZipFileContents::SAVE_DATA: + { + std::string_view question = iz->T("Import savedata from ZIP file"); + leftColumn->Add(new TextView(question))->SetBig(true); + leftColumn->Add(new TextView(zipFileInfo_.gameTitle + ": " + zipFileInfo_.savedataDir)); + + Path savedataDir = GetSysDirectory(DIRECTORY_SAVEDATA); + struct zip *zipFile = ZipOpenPath(zipPath_); + bool overwrite = !CanExtractWithoutOverwrite(zipFile, savedataDir, 50); ZipClose(zipFile); - } else { + + destFolders_.push_back(savedataDir); + + if (overwrite) { + leftColumn->Add(new NoticeView(NoticeLevel::WARN, di->T("Confirm Overwrite"), "")); + } + + int columnWidth = 300; + + LinearLayout *compareColumns = leftColumn->Add(new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT))); + LinearLayout *leftCompare = new LinearLayout(ORIENT_VERTICAL); + leftCompare->Add(new TextView(iz->T("Data to import"))); + compareColumns->Add(leftCompare); + leftCompare->Add(new SavedataView(*screenManager()->getUIContext(), Path(), IdentifiedFileType::PSP_SAVEDATA_DIRECTORY, + zipFileInfo_.gameTitle, zipFileInfo_.savedataTitle, zipFileInfo_.savedataDetails, NiceSizeFormat(zipFileInfo_.totalFileSize), zipFileInfo_.mTime, false, new LinearLayoutParams(columnWidth, WRAP_CONTENT))); + + // Check for potential overwrite at destination, and ask the user if it's OK to overwrite. + if (overwrite) { + savedataToOverwrite_ = savedataDir / zipFileInfo_.savedataDir; + std::shared_ptr ginfo = g_gameInfoCache->GetInfo(screenManager()->getDrawContext(), savedataToOverwrite_, GameInfoFlags::FILE_TYPE | GameInfoFlags::PARAM_SFO | GameInfoFlags::ICON | GameInfoFlags::SIZE); + + LinearLayout *rightCompare = new LinearLayout(ORIENT_VERTICAL); + rightCompare->Add(new TextView(iz->T("Existing data"))); + + compareColumns->Add(rightCompare); + existingSaveView_ = rightCompare->Add(new SavedataView(*screenManager()->getUIContext(), ginfo.get(), IdentifiedFileType::PSP_SAVEDATA_DIRECTORY, false, new LinearLayoutParams(columnWidth, WRAP_CONTENT))); + if (System_GetPropertyBool(SYSPROP_CAN_SHOW_FILE)) { + rightCompare->Add(new Button(di->T("Show in folder")))->OnClick.Add([=](UI::EventParams &) { + System_ShowFileInFolder(savedataToOverwrite_); + }); + } + } + + doneView_ = leftColumn->Add(new TextView("")); + showDeleteCheckbox = true; + break; + } + case ZipFileContents::FRAME_DUMP: + leftColumn->Add(new TextView(zipFileInfo_.contentName)); + // It's a frame dump, add a play button! + break; + case ZipFileContents::UNKNOWN: + leftColumn->Add(new TextView(iz->T("Zip file does not contain PSP software"), ALIGN_LEFT, false, new AnchorLayoutParams(10, 10, NONE, NONE))); + break; + default: leftColumn->Add(new TextView(er->T("The file is not a valid zip file"), ALIGN_LEFT, false, new AnchorLayoutParams(10, 10, NONE, NONE))); + break; } if (destFolders_.size() > 1) { @@ -188,14 +237,11 @@ void InstallZipScreen::CreateViews() { } else if (destFolders_.size() == 1 && zipFileInfo_.contents != ZipFileContents::SAVE_DATA) { leftColumn->Add(new TextView(StringFromFormat("%s %s", iz->T_cstr("Install into folder:"), destFolders_[0].ToVisualString().c_str()))); } +} - // OK so that EmuScreen will handle it right. - backChoice_ = rightColumnItems->Add(new Choice(di->T("Back"))); - backChoice_->OnClick.Handle(this, &UIScreen::OnOK); - - if (showDeleteCheckbox) { - rightColumnItems->Add(new CheckBox(&deleteZipFile_, iz->T("Delete ZIP file"))); - } +void InstallZipScreen::BeforeCreateViews() { + File::FileInfo fileInfo; + File::GetFileInfo(zipPath_, &fileInfo); } bool InstallZipScreen::key(const KeyInput &key) { diff --git a/UI/InstallZipScreen.h b/UI/InstallZipScreen.h index 87231de943..ac1dfb32b8 100644 --- a/UI/InstallZipScreen.h +++ b/UI/InstallZipScreen.h @@ -17,27 +17,30 @@ #pragma once -#include - #include "Common/File/Path.h" #include "Common/UI/View.h" #include "Common/UI/UIScreen.h" #include "UI/BaseScreens.h" +#include "UI/SimpleDialogScreen.h" class SavedataView; -class InstallZipScreen : public UIBaseDialogScreen { +class InstallZipScreen : public UITwoPaneBaseDialogScreen { public: InstallZipScreen(const Path &zipPath); + void update() override; bool key(const KeyInput &key) override; const char *tag() const override { return "InstallZip"; } protected: - void CreateViews() override; + void BeforeCreateViews() override; + void CreateSettingsViews(UI::ViewGroup *parent) override; + void CreateContentViews(UI::ViewGroup *parent) override; + std::string_view GetTitle() const override; private: void OnInstall(UI::EventParams ¶ms); @@ -52,6 +55,7 @@ private: Path zipPath_; std::vector destFolders_; int destFolderChoice_ = 0; + ZipFileInfo zipFileInfo_{}; bool returnToHomebrew_ = true; bool installStarted_ = false; diff --git a/UI/SimpleDialogScreen.cpp b/UI/SimpleDialogScreen.cpp index 1a7291e5c5..d04515f08d 100644 --- a/UI/SimpleDialogScreen.cpp +++ b/UI/SimpleDialogScreen.cpp @@ -34,6 +34,8 @@ void UITwoPaneBaseDialogScreen::CreateViews() { auto di = GetI18NCategory(I18NCat::DIALOG); + BeforeCreateViews(); + auto createContentViews = [this](UI::ViewGroup *parent) { if (flags_ & TwoPaneFlags::ContentsCanScroll) { ScrollView *contentScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT, 1.0f, Margins(8))); @@ -65,6 +67,7 @@ void UITwoPaneBaseDialogScreen::CreateViews() { }); } else { LinearLayout *settingsPane = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); + settingsPane->SetSpacing(0.0f); if (flags_ & TwoPaneFlags::SettingsCanScroll) { ScrollView *settingsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT, 1.0f, Margins(8))); settingsScroll->Add(settingsPane); @@ -88,7 +91,7 @@ void UITwoPaneBaseDialogScreen::CreateViews() { // root_->Add(new TopBar(*screenManager()->getUIContext(), portrait, GetTitle(), new LayoutParams(FILL_PARENT, FILL_PARENT))); ScrollView *settingsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(SettingsWidth(), FILL_PARENT, 0.0f, Margins(8))); LinearLayout *settingsPane = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT)); - settingsPane->SetSpacing(0); + settingsPane->SetSpacing(0.0f); CreateSettingsViews(settingsPane); settingsPane->Add(new BorderView(BORDER_BOTTOM, BorderStyle::HEADER_FG, 2.0f, new LayoutParams(FILL_PARENT, 40.0f))); settingsPane->Add(new Choice(di->T("Back"), ImageID("I_NAVIGATE_BACK")))->OnClick.Handle(this, &UIScreen::OnBack); diff --git a/UI/SimpleDialogScreen.h b/UI/SimpleDialogScreen.h index 2ed68a7569..e8cd7b745f 100644 --- a/UI/SimpleDialogScreen.h +++ b/UI/SimpleDialogScreen.h @@ -45,6 +45,7 @@ public: } // Override this, don't override CreateViews. And don't touch root_ directly. + virtual void BeforeCreateViews() {} // If something needs to happen before both settings and contents, this is a good place. virtual void CreateSettingsViews(UI::ViewGroup *parent) = 0; virtual void CreateContentViews(UI::ViewGroup *parent) = 0; virtual std::string_view GetTitle() const { return ""; } diff --git a/assets/lang/ar_AE.ini b/assets/lang/ar_AE.ini index d1f6f2ba72..3a1e102575 100644 --- a/assets/lang/ar_AE.ini +++ b/assets/lang/ar_AE.ini @@ -765,6 +765,7 @@ Installation failed = فشل في التثبيت Installed! = ‎مثبت! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = ملف ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/az_AZ.ini b/assets/lang/az_AZ.ini index d1f6adb8f4..63c46ba1b3 100644 --- a/assets/lang/az_AZ.ini +++ b/assets/lang/az_AZ.ini @@ -761,6 +761,7 @@ Installation failed = Quraşdırma uğursuz oldu Installed! = Quraşdırıldı! Texture pack doesn't support install = Toxuma bağlaması quraşdırmanı dəstəkləmir Zip archive corrupt = ZIP arxivi korlanıb +ZIP file = ZIP faylı Zip file does not contain PSP software = ZIP faylı PSP yazılımı daşımır [KeyMapping] diff --git a/assets/lang/be_BY.ini b/assets/lang/be_BY.ini index 5381eb6f6b..9aadf20767 100644 --- a/assets/lang/be_BY.ini +++ b/assets/lang/be_BY.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Усталявана! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = Файл ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/bg_BG.ini b/assets/lang/bg_BG.ini index d8c25d88de..f0da21c629 100644 --- a/assets/lang/bg_BG.ini +++ b/assets/lang/bg_BG.ini @@ -757,6 +757,7 @@ Installation failed = Инсталацията не бе успешна Installed! = Инсталирано! Texture pack doesn't support install = Текстурният пакет не поддържа инсталиране Zip archive corrupt = ZIP архивът е повреден +ZIP file = ZIP файл Zip file does not contain PSP software = ZIP файлът не съдържа PSP софтуер [KeyMapping] diff --git a/assets/lang/ca_ES.ini b/assets/lang/ca_ES.ini index b01fb0ab52..af230ea50b 100644 --- a/assets/lang/ca_ES.ini +++ b/assets/lang/ca_ES.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Installed! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = Fitxer ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/cz_CZ.ini b/assets/lang/cz_CZ.ini index 0d9c6daf40..aa5b67ee0b 100644 --- a/assets/lang/cz_CZ.ini +++ b/assets/lang/cz_CZ.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Instalováno! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = ZIP soubor Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/da_DK.ini b/assets/lang/da_DK.ini index d626d513b0..f02de8eacd 100644 --- a/assets/lang/da_DK.ini +++ b/assets/lang/da_DK.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Installeret! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = ZIP-fil Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/de_DE.ini b/assets/lang/de_DE.ini index 3f8cb175e4..1f2213c88c 100644 --- a/assets/lang/de_DE.ini +++ b/assets/lang/de_DE.ini @@ -747,6 +747,7 @@ Installation failed = Installation fehlgeschlagen Installed! = Installiert! Texture pack doesn't support install = Texturpaket unterstützt keine Installation Zip archive corrupt = ZIP-Archiv beschädigt +ZIP file = ZIP-Datei Zip file does not contain PSP software = ZIP-Datei beinhaltet keine PSP-Software [KeyMapping] diff --git a/assets/lang/dr_ID.ini b/assets/lang/dr_ID.ini index 3566dde571..5c3ef78702 100644 --- a/assets/lang/dr_ID.ini +++ b/assets/lang/dr_ID.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Installed! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = File ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/en_US.ini b/assets/lang/en_US.ini index 0d01efbeeb..e9921b6611 100644 --- a/assets/lang/en_US.ini +++ b/assets/lang/en_US.ini @@ -781,6 +781,7 @@ Installation failed = Installation failed Installed! = Installed! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = ZIP file Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/es_ES.ini b/assets/lang/es_ES.ini index 3947e586aa..3e1691da16 100644 --- a/assets/lang/es_ES.ini +++ b/assets/lang/es_ES.ini @@ -758,6 +758,7 @@ Installation failed = Instalación fallida Installed! = ¡Instalado! Texture pack doesn't support install = El paquete de texturas no admite instalación Zip archive corrupt = Archivo ZIP dañado +ZIP file = Archivo ZIP Zip file does not contain PSP software = El archivo ZIP no contiene software de PSP [KeyMapping] diff --git a/assets/lang/es_LA.ini b/assets/lang/es_LA.ini index 0cf6520943..a51d05c045 100644 --- a/assets/lang/es_LA.ini +++ b/assets/lang/es_LA.ini @@ -757,6 +757,7 @@ Installation failed = Instalación fallida Installed! = ¡Instalado! Texture pack doesn't support install = El paquete de texturas no es compatible con la instalación. Zip archive corrupt = El archivo ZIP está dañado. +ZIP file = Archivo ZIP Zip file does not contain PSP software = El archivo ZIP no contiene software de PSP. [KeyMapping] diff --git a/assets/lang/fa_IR.ini b/assets/lang/fa_IR.ini index a6cba3f4e4..f368bd72f9 100644 --- a/assets/lang/fa_IR.ini +++ b/assets/lang/fa_IR.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Installed! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = فایل ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/fi_FI.ini b/assets/lang/fi_FI.ini index d52c10b8db..62caa65f64 100644 --- a/assets/lang/fi_FI.ini +++ b/assets/lang/fi_FI.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Asenettu! Texture pack doesn't support install = Tekstuuripakkaus ei tue asennusta Zip archive corrupt = ZIP-arkisto on korruptoitunut +ZIP file = ZIP-tiedosto Zip file does not contain PSP software = ZIP-tiedosto ei sisällä PSP-ohjelmistoa [KeyMapping] diff --git a/assets/lang/fr_FR.ini b/assets/lang/fr_FR.ini index d9d5ed22c8..66b294daf6 100644 --- a/assets/lang/fr_FR.ini +++ b/assets/lang/fr_FR.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Installé ! Texture pack doesn't support install = Le pack de textures ne peut pas être installé Zip archive corrupt = Archive ZIP corrompue +ZIP file = Fichier ZIP Zip file does not contain PSP software = Le fichier ZIP ne contient pas de logiciel PSP [KeyMapping] diff --git a/assets/lang/gl_ES.ini b/assets/lang/gl_ES.ini index 4da4b84508..ff5b4fdd67 100644 --- a/assets/lang/gl_ES.ini +++ b/assets/lang/gl_ES.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = ¡Instalado! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = Arquivo ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/gr_EL.ini b/assets/lang/gr_EL.ini index 99109d6ac8..e5c73e4980 100644 --- a/assets/lang/gr_EL.ini +++ b/assets/lang/gr_EL.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Εγκαταστάθηκε! Texture pack doesn't support install = Το πακέτο υφής δεν υποστηρίζει την εγκατάσταση Zip archive corrupt = Το αρχείο ZIP είναι κατεστραμμένο +ZIP file = Αρχείο ZIP Zip file does not contain PSP software = Το αρχείο ZIP δεν περιέχει λογισμικό PSP [KeyMapping] diff --git a/assets/lang/he_IL.ini b/assets/lang/he_IL.ini index 3620d0fd2d..18caf4e2b9 100644 --- a/assets/lang/he_IL.ini +++ b/assets/lang/he_IL.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Installed! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = קובץ ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/he_IL_invert.ini b/assets/lang/he_IL_invert.ini index 884ee7c1a9..161e4def19 100644 --- a/assets/lang/he_IL_invert.ini +++ b/assets/lang/he_IL_invert.ini @@ -754,6 +754,7 @@ Installation failed = Installation failed Installed! = Installed! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = קובץ ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/hr_HR.ini b/assets/lang/hr_HR.ini index afdfe9b11d..43f5ae7d17 100644 --- a/assets/lang/hr_HR.ini +++ b/assets/lang/hr_HR.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Instalirano! Texture pack doesn't support install = Texture pack ne podržava instaliranje Zip archive corrupt = Koruptana ZIP arhiva +ZIP file = ZIP datoteka Zip file does not contain PSP software = ZIP datoteka ne sadrži PSP software [KeyMapping] diff --git a/assets/lang/hu_HU.ini b/assets/lang/hu_HU.ini index f8b43f24e2..716196c44f 100644 --- a/assets/lang/hu_HU.ini +++ b/assets/lang/hu_HU.ini @@ -757,6 +757,7 @@ Installation failed = Sikertelen telepítés Installed! = Telepítve! Texture pack doesn't support install = A textúra csomag nem támogatja a telepítést Zip archive corrupt = A ZIP archívum sérült +ZIP file = ZIP fájl Zip file does not contain PSP software = A ZIP fájl nem tartalmaz PSP szoftvert [KeyMapping] diff --git a/assets/lang/id_ID.ini b/assets/lang/id_ID.ini index 47c6a11069..324c892f56 100644 --- a/assets/lang/id_ID.ini +++ b/assets/lang/id_ID.ini @@ -757,6 +757,7 @@ Installation failed = Pemasangan gagal Installed! = Terpasang! Texture pack doesn't support install = Paket tekstur tidak mendukung pemasangan Zip archive corrupt = Arzip ZIP rusak +ZIP file = File ZIP Zip file does not contain PSP software = File ZIP tidak mengandung perangkat lunak PSP [KeyMapping] diff --git a/assets/lang/it_IT.ini b/assets/lang/it_IT.ini index 189979eaf1..e68ff54299 100644 --- a/assets/lang/it_IT.ini +++ b/assets/lang/it_IT.ini @@ -758,6 +758,7 @@ Installation failed = Installazione fallita Installed! = Installato! Texture pack doesn't support install = Il texture pack non supporta l'installazione Zip archive corrupt = Archivio ZIP corrotto +ZIP file = File ZIP Zip file does not contain PSP software = Il file ZIP non contiene software PSP [KeyMapping] diff --git a/assets/lang/ja_JP.ini b/assets/lang/ja_JP.ini index 1ee291b49c..0304342810 100644 --- a/assets/lang/ja_JP.ini +++ b/assets/lang/ja_JP.ini @@ -757,6 +757,7 @@ Installation failed = インストール失敗 Installed! = インストールしました Texture pack doesn't support install = テクスチャパックがインストールをサポートしていません Zip archive corrupt = ZIPアーカイブが破損しています +ZIP file = ZIPファイル Zip file does not contain PSP software = ZIPファイルにPSPソフトウェアが含まれていません [KeyMapping] diff --git a/assets/lang/jv_ID.ini b/assets/lang/jv_ID.ini index 26da6b096d..1230b42ca1 100644 --- a/assets/lang/jv_ID.ini +++ b/assets/lang/jv_ID.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Keinstal! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = File ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/ko_KR.ini b/assets/lang/ko_KR.ini index f6238d7a97..aa7306a915 100644 --- a/assets/lang/ko_KR.ini +++ b/assets/lang/ko_KR.ini @@ -757,6 +757,7 @@ Installation failed = 설치 실패 Installed! = 설치되었습니다! Texture pack doesn't support install = 텍스처 팩은 설치를 지원하지 않습니다. Zip archive corrupt = ZIP 아카이브가 손상되었습니다. +ZIP file = ZIP 파일 Zip file does not contain PSP software = ZIP 파일에 PSP 소프트웨어가 포함되어 있지 않음 [KeyMapping] diff --git a/assets/lang/ku_SO.ini b/assets/lang/ku_SO.ini index e4f8c3192a..fd3a6e8e88 100644 --- a/assets/lang/ku_SO.ini +++ b/assets/lang/ku_SO.ini @@ -771,6 +771,7 @@ Installation failed = Installation failed Installed! = Installed! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = Pelê ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/lo_LA.ini b/assets/lang/lo_LA.ini index 52aa8936b9..ff28cbf549 100644 --- a/assets/lang/lo_LA.ini +++ b/assets/lang/lo_LA.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = ຕິດຕັ້ງແລ້ວ! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = File ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/lt-LT.ini b/assets/lang/lt-LT.ini index 401f77146b..3a13892aef 100644 --- a/assets/lang/lt-LT.ini +++ b/assets/lang/lt-LT.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Instaliuota! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = ZIP failas Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/ms_MY.ini b/assets/lang/ms_MY.ini index c9961f1312..7f6dc158ff 100644 --- a/assets/lang/ms_MY.ini +++ b/assets/lang/ms_MY.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Dipasang! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = Fail ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/nl_NL.ini b/assets/lang/nl_NL.ini index 271b49abf1..8f6e264735 100644 --- a/assets/lang/nl_NL.ini +++ b/assets/lang/nl_NL.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Installatie voltooid! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = ZIP-bestand Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/no_NO.ini b/assets/lang/no_NO.ini index 363c22ddd3..caac442cc0 100644 --- a/assets/lang/no_NO.ini +++ b/assets/lang/no_NO.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Installed! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = ZIP-fil Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/pl_PL.ini b/assets/lang/pl_PL.ini index e09d87844c..83b56d0d44 100644 --- a/assets/lang/pl_PL.ini +++ b/assets/lang/pl_PL.ini @@ -752,6 +752,7 @@ Installation failed = Instalacja zakończona porażką Installed! = Zainstalowano! Texture pack doesn't support install = Paczka tekstur nie obsługuje instalacji Zip archive corrupt = Niepoprawne archiwum ZIP +ZIP file = Plik ZIP Zip file does not contain PSP software = Archiwum ZIP nie zawiera aplikacji dla PSP [KeyMapping] diff --git a/assets/lang/pt_BR.ini b/assets/lang/pt_BR.ini index 581b29d4d7..90b29d8800 100644 --- a/assets/lang/pt_BR.ini +++ b/assets/lang/pt_BR.ini @@ -780,6 +780,7 @@ Installation failed = A instalação falhou Installed! = Instalado! Texture pack doesn't support install = O pacote das texturas não suporta a instalação Zip archive corrupt = Arquivo ZIP corrompido +ZIP file = Arquivo ZIP Zip file does not contain PSP software = O arquivo ZIP não contém software do PSP [KeyMapping] diff --git a/assets/lang/pt_PT.ini b/assets/lang/pt_PT.ini index af080c436e..fd913d5ec9 100644 --- a/assets/lang/pt_PT.ini +++ b/assets/lang/pt_PT.ini @@ -781,6 +781,7 @@ Installation failed = Installation failed Installed! = Instalado! Texture pack doesn't support install = O pacote de texturas não é compatível com a instalação. Zip archive corrupt = Ficheiro .zip compactado corrompido. +ZIP file = Ficheiro ZIP Zip file does not contain PSP software = O ficheiro .zip não contém software de PSP. [KeyMapping] diff --git a/assets/lang/ro_RO.ini b/assets/lang/ro_RO.ini index 55a084f2ee..960b13fda5 100644 --- a/assets/lang/ro_RO.ini +++ b/assets/lang/ro_RO.ini @@ -758,6 +758,7 @@ Installation failed = Installation failed Installed! = Instalat! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = Fișier ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/ru_RU.ini b/assets/lang/ru_RU.ini index 740b485e1d..a1539ccbf9 100644 --- a/assets/lang/ru_RU.ini +++ b/assets/lang/ru_RU.ini @@ -757,6 +757,7 @@ Installation failed = Не удалось установить Installed! = Установлено! Texture pack doesn't support install = Набор текстур не поддерживает установку Zip archive corrupt = ZIP-архив повреждён +ZIP file = ZIP файл Zip file does not contain PSP software = В файле ZIP отсутствует ПО для PSP [KeyMapping] diff --git a/assets/lang/sv_SE.ini b/assets/lang/sv_SE.ini index 03e3547f9c..acba0886ce 100644 --- a/assets/lang/sv_SE.ini +++ b/assets/lang/sv_SE.ini @@ -758,6 +758,7 @@ Installation failed = Installation misslyckades Installed! = Installerad! Texture pack doesn't support install = Texturpaketet stöder ej installation Zip archive corrupt = ZIP-filen är korrupt +ZIP file = ZIP-fil Zip file does not contain PSP software = ZIP-filen innehåller inte PSP-mjukvara [KeyMapping] diff --git a/assets/lang/tg_PH.ini b/assets/lang/tg_PH.ini index 1f9ff13f43..63d9eaf8e6 100644 --- a/assets/lang/tg_PH.ini +++ b/assets/lang/tg_PH.ini @@ -758,6 +758,7 @@ Installation failed = Hindi mainstall Installed! = Naka-install na! Texture pack doesn't support install = Hindi sinusuportahan ng texture pack ang pag-install Zip archive corrupt = Sira ang ZIP archive +ZIP file = ZIP файл Zip file does not contain PSP software = ZIP file ay hindi naglalaman ng PSP software [KeyMapping] diff --git a/assets/lang/th_TH.ini b/assets/lang/th_TH.ini index 46a7433239..bc3560a47b 100644 --- a/assets/lang/th_TH.ini +++ b/assets/lang/th_TH.ini @@ -776,6 +776,7 @@ Installation failed = การติดตั้งล้มเหลว Installed! = ติดตั้งเสร็จสิ้น! Texture pack doesn't support install = เท็คเจอร์แพ็คนี้ไม่รองรับการติดตั้ง Zip archive corrupt = ไฟล์ ZIP ไม่สมบูรณ์ (เสียจ้า) +ZIP file = ไฟล์ ZIP Zip file does not contain PSP software = ไฟล์ ZIP นี้ ไม่มีข้อมูลซอฟแวร์ของเกม PSP [KeyMapping] diff --git a/assets/lang/tr_TR.ini b/assets/lang/tr_TR.ini index 7f7f1ae09f..2579efbe36 100644 --- a/assets/lang/tr_TR.ini +++ b/assets/lang/tr_TR.ini @@ -759,6 +759,7 @@ Installation failed = Kurulum başarısız Installed! = Kuruldu! Texture pack doesn't support install = Doku paketi kurulumu desteklemiyor Zip archive corrupt = ZIP arşivi bozuk +ZIP file = ZIP dosyası Zip file does not contain PSP software = ZIP dosyası PSP yazılımı içermiyor [KeyMapping] diff --git a/assets/lang/uk_UA.ini b/assets/lang/uk_UA.ini index c2a13233c9..7d98b60192 100644 --- a/assets/lang/uk_UA.ini +++ b/assets/lang/uk_UA.ini @@ -757,6 +757,7 @@ Installation failed = Помилка встановлення Installed! = Встановлено! Texture pack doesn't support install = Пакет текстур не підтримує встановлення Zip archive corrupt = ZIP-архів пошкоджено +ZIP file = ZIP файл Zip file does not contain PSP software = ZIP-файл не містить програмного забезпечення PSP [KeyMapping] diff --git a/assets/lang/vi_VN.ini b/assets/lang/vi_VN.ini index 3af9870eec..8e98627d6a 100644 --- a/assets/lang/vi_VN.ini +++ b/assets/lang/vi_VN.ini @@ -757,6 +757,7 @@ Installation failed = Installation failed Installed! = Đã cài xong! Texture pack doesn't support install = Texture pack doesn't support install Zip archive corrupt = ZIP archive corrupt +ZIP file = Tập tin ZIP Zip file does not contain PSP software = ZIP file does not contain PSP software [KeyMapping] diff --git a/assets/lang/zh_CN.ini b/assets/lang/zh_CN.ini index 0de2290194..188cdd65b5 100644 --- a/assets/lang/zh_CN.ini +++ b/assets/lang/zh_CN.ini @@ -757,6 +757,7 @@ Installation failed = 安装失败! Installed! = 安装完成! Texture pack doesn't support install = 这个纹理包不支持安装使用 Zip archive corrupt = ZIP文档损坏 +ZIP file = ZIP 文件 Zip file does not contain PSP software = 这个ZIP压缩包未包含PSP游戏 [KeyMapping] diff --git a/assets/lang/zh_TW.ini b/assets/lang/zh_TW.ini index 84a43b02e6..d6ec6e5875 100644 --- a/assets/lang/zh_TW.ini +++ b/assets/lang/zh_TW.ini @@ -757,6 +757,7 @@ Installation failed = 安裝失敗 Installed! = 已安裝! Texture pack doesn't support install = 紋理套件不支援安裝 Zip archive corrupt = ZIP 封存損毀 +ZIP file = ZIP 檔案 Zip file does not contain PSP software = ZIP 檔案不包含 PSP 軟體 [KeyMapping]