diff --git a/Common/Data/Format/IniFile.cpp b/Common/Data/Format/IniFile.cpp index 0977308a64..4982a2c819 100644 --- a/Common/Data/Format/IniFile.cpp +++ b/Common/Data/Format/IniFile.cpp @@ -317,10 +317,13 @@ void Section::AddComment(const std::string &comment) { lines_.emplace_back(ParsedIniLine::CommentOnly("# " + comment)); } -bool Section::Get(std::string_view key, std::vector& values) const { +bool Section::Get(std::string_view key, std::vector *values, const std::vector *defaultValues) const { std::string temp; bool retval = Get(key, &temp, 0); if (!retval || temp.empty()) { + if (defaultValues) { + *values = *defaultValues; + } return false; } // ignore starting , if any @@ -331,9 +334,10 @@ bool Section::Get(std::string_view key, std::vector& values) const while (subStart != std::string::npos) { // Find next , subEnd = temp.find_first_of(',', subStart); - if (subStart != subEnd) + if (subStart != subEnd) { // take from first char until next , - values.push_back(StripSpaces(temp.substr(subStart, subEnd - subStart))); + values->push_back(StripSpaces(temp.substr(subStart, subEnd - subStart))); + } // Find the next non , char subStart = temp.find_first_not_of(',', subEnd); @@ -613,12 +617,12 @@ bool IniFile::Get(const char* sectionName, const char* key, std::string* value, return section->Get(key, value, defaultValue); } -bool IniFile::Get(const char *sectionName, const char* key, std::vector& values) +bool IniFile::Get(const char *sectionName, const char* key, std::vector *values, const std::vector *defaultValues) { Section *section = GetSection(sectionName); if (!section) return false; - return section->Get(key, values); + return section->Get(key, values, defaultValues); } bool IniFile::Get(const char* sectionName, const char* key, int* value, int defaultValue) diff --git a/Common/Data/Format/IniFile.h b/Common/Data/Format/IniFile.h index 996bd4901e..847cd35067 100644 --- a/Common/Data/Format/IniFile.h +++ b/Common/Data/Format/IniFile.h @@ -102,7 +102,7 @@ public: bool Get(std::string_view key, bool* value, bool defaultValue = false) const; bool Get(std::string_view key, float* value, float defaultValue = false) const; bool Get(std::string_view key, double* value, double defaultValue = false) const; - bool Get(std::string_view key, std::vector& values) const; + bool Get(std::string_view key, std::vector *values, const std::vector *defaultValue = nullptr) const; // Return a list of all keys in this section bool GetKeys(std::vector &keys) const; @@ -143,7 +143,7 @@ public: bool Get(const char* sectionName, const char* key, uint32_t* value, uint32_t defaultValue = 0); bool Get(const char* sectionName, const char* key, uint64_t* value, uint64_t defaultValue = 0); bool Get(const char* sectionName, const char* key, bool* value, bool defaultValue = false); - bool Get(const char* sectionName, const char* key, std::vector& values); + bool Get(const char* sectionName, const char* key, std::vector *values, const std::vector *defaultValues = nullptr); bool GetKeys(const char* sectionName, std::vector& keys) const; diff --git a/Common/Net/NetBuffer.cpp b/Common/Net/NetBuffer.cpp index 5bf15946e9..24a649745a 100644 --- a/Common/Net/NetBuffer.cpp +++ b/Common/Net/NetBuffer.cpp @@ -46,7 +46,7 @@ bool Buffer::FlushSocket(uintptr_t sock, double timeout, bool *cancelled) { int sent = send(sock, &data[pos], end - pos, MSG_NOSIGNAL); // TODO: Do we need some retry logic here, instead of just giving up? if (sent < 0) { - ERROR_LOG(Log::IO, "FlushSocket failed to send: %d", errno); + ERROR_LOG(Log::IO, "FlushSocket failed to send: errno=%d", errno); return false; } pos += sent; diff --git a/Common/Net/URL.h b/Common/Net/URL.h index 1a03d397a8..c37162f51f 100644 --- a/Common/Net/URL.h +++ b/Common/Net/URL.h @@ -31,6 +31,15 @@ struct UrlEncoder AppendEscaped(value); } + // No proper implementation of this yet, as we don't have any string vectors that really need reporting. + virtual void Add(const std::string &key, const std::vector &value) + { + if (++paramCount > 1) + data += '&'; + AppendEscaped(key); + data += "="; + } + void Add(const std::string &key, const char *value) { Add(key, std::string(value)); diff --git a/Core/Config.cpp b/Core/Config.cpp index 2b1b17ac91..d6cc0ee25f 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -76,6 +76,10 @@ static const char * const logSectionName = "Log"; bool TryUpdateSavedPath(Path *path); +static const std::vector defaultProAdhocServerList = { + "socom.cc", "psp.gameplayer.club", // TODO: Add some saved recent history too? +}; + std::string GPUBackendToString(GPUBackend backend) { switch (backend) { case GPUBackend::OPENGL: @@ -958,6 +962,7 @@ static const ConfigSetting networkSettings[] = { ConfigSetting("EnableWlan", &g_Config.bEnableWlan, false, CfgFlag::PER_GAME), ConfigSetting("EnableAdhocServer", &g_Config.bEnableAdhocServer, false, CfgFlag::PER_GAME), ConfigSetting("proAdhocServer", &g_Config.proAdhocServer, "socom.cc", CfgFlag::PER_GAME), + ConfigSetting("proAdhocServerList", &g_Config.proAdhocServerList, &defaultProAdhocServerList, CfgFlag::DEFAULT), ConfigSetting("PortOffset", &g_Config.iPortOffset, 10000, CfgFlag::PER_GAME), ConfigSetting("PrimaryDNSServer", &g_Config.sInfrastructureDNSServer, "67.222.156.250", CfgFlag::PER_GAME), ConfigSetting("MinTimeout", &g_Config.iMinTimeout, 0, CfgFlag::PER_GAME), diff --git a/Core/Config.h b/Core/Config.h index dbac130f1a..105ce8b296 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -481,6 +481,7 @@ public: // Networking bool bEnableAdhocServer; std::string proAdhocServer; + std::vector proAdhocServerList; std::string sInfrastructureDNSServer; std::string sInfrastructureUsername; // Username used for Infrastructure play. Different restrictions. bool bInfrastructureAutoDNS; diff --git a/Core/ConfigSettings.cpp b/Core/ConfigSettings.cpp index ba6b83005c..5c17b58d5b 100644 --- a/Core/ConfigSettings.cpp +++ b/Core/ConfigSettings.cpp @@ -37,6 +37,9 @@ bool ConfigSetting::Get(const Section *section) const { return section->Get(iniKey_, ptr_.f, cb_.f ? cb_.f() : default_.f); case TYPE_STRING: return section->Get(iniKey_, ptr_.s, cb_.s ? cb_.s().c_str() : default_.s); + case TYPE_STRING_VECTOR: + // No support for callbacks for these yet. that's not an issue. + return section->Get(iniKey_, ptr_.v, default_.v); case TYPE_TOUCH_POS: { ConfigTouchPos defaultTouchPos = cb_.touchPos ? cb_.touchPos() : default_.touchPos; @@ -97,6 +100,8 @@ void ConfigSetting::Set(Section *section) const { return section->Set(iniKey_, *ptr_.f); case TYPE_STRING: return section->Set(iniKey_, *ptr_.s); + case TYPE_STRING_VECTOR: + return section->Set(iniKey_, *ptr_.v); case TYPE_PATH: return section->Set(iniKey_, ptr_.p->ToString()); case TYPE_TOUCH_POS: @@ -128,6 +133,7 @@ void ConfigSetting::RestoreToDefault() const { case TYPE_UINT64: *ptr_.lu = cb_.lu ? cb_.lu() : default_.lu; break; case TYPE_FLOAT: *ptr_.f = cb_.f ? cb_.f() : default_.f; break; case TYPE_STRING: *ptr_.s = cb_.s ? cb_.s() : default_.s; break; + case TYPE_STRING_VECTOR: *ptr_.v = *default_.v; break; case TYPE_TOUCH_POS: *ptr_.touchPos = cb_.touchPos ? cb_.touchPos() : default_.touchPos; break; case TYPE_PATH: *ptr_.p = Path(cb_.p ? cb_.p() : default_.p); break; case TYPE_CUSTOM_BUTTON: *ptr_.customButton = cb_.customButton ? cb_.customButton() : default_.customButton; break; @@ -147,6 +153,7 @@ void ConfigSetting::ReportSetting(UrlEncoder &data, const std::string &prefix) c case TYPE_UINT64: return data.Add(prefix + iniKey_, *ptr_.lu); case TYPE_FLOAT: return data.Add(prefix + iniKey_, *ptr_.f); case TYPE_STRING: return data.Add(prefix + iniKey_, *ptr_.s); + case TYPE_STRING_VECTOR: return data.Add(prefix + iniKey_, *ptr_.v); case TYPE_PATH: return data.Add(prefix + iniKey_, ptr_.p->ToString()); case TYPE_TOUCH_POS: return; // Doesn't report. case TYPE_CUSTOM_BUTTON: return; // Doesn't report. diff --git a/Core/ConfigSettings.h b/Core/ConfigSettings.h index 2c4f373240..97f37524fe 100644 --- a/Core/ConfigSettings.h +++ b/Core/ConfigSettings.h @@ -25,6 +25,7 @@ struct ConfigSetting { TYPE_UINT64, TYPE_FLOAT, TYPE_STRING, + TYPE_STRING_VECTOR, TYPE_TOUCH_POS, TYPE_PATH, TYPE_CUSTOM_BUTTON @@ -37,6 +38,7 @@ struct ConfigSetting { float f; const char *s; const char *p; // not sure how much point.. + const std::vector *v; ConfigTouchPos touchPos; ConfigCustomButton customButton; }; @@ -47,6 +49,7 @@ struct ConfigSetting { uint64_t *lu; float *f; std::string *s; + std::vector *v; Path *p; ConfigTouchPos *touchPos; ConfigCustomButton *customButton; @@ -90,7 +93,7 @@ struct ConfigSetting { getPtrLUT()[v] = this; } - ConfigSetting(const char *ini, int *v, int def, std::string(*transTo)(int), int (*transFrom)(const std::string &), CfgFlag flags = CfgFlag::DEFAULT) noexcept + ConfigSetting(const char *ini, int *v, int def, std::string (*transTo)(int), int (*transFrom)(const std::string &), CfgFlag flags = CfgFlag::DEFAULT) noexcept : iniKey_(ini), type_(TYPE_INT), flags_(flags), translateTo_(transTo), translateFrom_(transFrom) { ptr_.i = v; cb_.i = nullptr; @@ -130,6 +133,13 @@ struct ConfigSetting { getPtrLUT()[v] = this; } + ConfigSetting(const char *ini, std::vector *v, const std::vector *def, CfgFlag flags = CfgFlag::DEFAULT) noexcept + : iniKey_(ini), type_(TYPE_STRING_VECTOR), flags_(flags) { + ptr_.v = v; + default_.v = def; + getPtrLUT()[v] = this; + } + ConfigSetting(const char *ini, Path *v, const char *def, CfgFlag flags = CfgFlag::DEFAULT) noexcept : iniKey_(ini), type_(TYPE_PATH), flags_(flags) { ptr_.p = v; diff --git a/Core/HLE/sceParseUri.cpp b/Core/HLE/sceParseUri.cpp index 607f2ffc0d..8f41fb89a7 100644 --- a/Core/HLE/sceParseUri.cpp +++ b/Core/HLE/sceParseUri.cpp @@ -326,7 +326,7 @@ static int sceUriEscape(u32 escapedAddr, u32 escapedLengthAddr, int escapedBuffe } } - Memory::MemcpyUnchecked(escapedAddr, escaped.c_str(), escaped.length() + 1); + Memory::MemcpyUnchecked(escapedAddr, escaped.c_str(), (u32)escaped.length() + 1); return hleLogDebug(Log::sceNet, 0, "escaped '%s' to '%s'", source, escaped.c_str()); } diff --git a/Core/SaveState.cpp b/Core/SaveState.cpp index f70098d4d5..2971b88068 100644 --- a/Core/SaveState.cpp +++ b/Core/SaveState.cpp @@ -713,6 +713,16 @@ double g_lastSaveTime = -1.0; return false; } + void DeleteSlot(const Path &gameFilename, int slot) { + Path fn = GenerateSaveSlotFilename(gameFilename, slot, STATE_EXTENSION); + Path shot = GenerateSaveSlotFilename(gameFilename, slot, SCREENSHOT_EXTENSION); + + if (File::Exists(fn)) { + DeleteIfExists(fn); + DeleteIfExists(shot); + } + } + bool UndoLastSave(const Path &gameFilename) { if (!NetworkAllowSaveState()) { return false; diff --git a/Core/SaveState.h b/Core/SaveState.h index abc0d157bc..2c5a0484c2 100644 --- a/Core/SaveState.h +++ b/Core/SaveState.h @@ -52,6 +52,8 @@ namespace SaveState { bool UndoSaveSlot(const Path &gameFilename, int slot); bool UndoLastSave(const Path &gameFilename); bool UndoLoad(const Path &gameFilename, Callback callback); + void DeleteSlot(const Path &gameFilename, int slot); + // Checks whether there's an existing save in the specified slot. bool HasSaveInSlot(const Path &gameFilename, int slot); bool HasUndoSaveInSlot(const Path &gameFilename, int slot); diff --git a/GPU/Common/PostShader.cpp b/GPU/Common/PostShader.cpp index 9ea606078b..22de58aade 100644 --- a/GPU/Common/PostShader.cpp +++ b/GPU/Common/PostShader.cpp @@ -103,7 +103,7 @@ void LoadPostShaderInfo(Draw::DrawContext *draw, const std::vector &direct section.Get("Type", &shaderType, "render"); std::vector vendorBlacklist; - section.Get("VendorBlacklist", vendorBlacklist); + section.Get("VendorBlacklist", &vendorBlacklist, nullptr); bool skipped = false; for (auto &item : vendorBlacklist) { Draw::GPUVendor blacklistedVendor = Draw::GPUVendor::VENDOR_UNKNOWN; diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 0189567b08..fa751f25cd 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -983,7 +983,10 @@ void GameSettingsScreen::CreateNetworkingSettings(UI::ViewGroup *networkingSetti networkingSettings->Add(new ItemHeader(n->T("AdHoc server"))); networkingSettings->Add(new CheckBox(&g_Config.bEnableAdhocServer, n->T("Enable built-in PRO Adhoc Server", "Enable built-in PRO Adhoc Server"))); - networkingSettings->Add(new ChoiceWithValueDisplay(&g_Config.proAdhocServer, n->T("Change proAdhocServer Address", "Change proAdhocServer Address (localhost = multiple instance)"), I18NCat::NONE))->OnClick.Handle(this, &GameSettingsScreen::OnChangeproAdhocServerAddress); + networkingSettings->Add(new ChoiceWithValueDisplay(&g_Config.proAdhocServer, n->T("Change proAdhocServer Address", "Change proAdhocServer Address (localhost = multiple instance)"), I18NCat::NONE))->OnClick.Add([=](UI::EventParams &) { + screenManager()->push(new HostnameSelectScreen(&g_Config.proAdhocServer, &g_Config.proAdhocServerList, n->T("proAdhocServer Address:"))); + return UI::EVENT_DONE; + }); networkingSettings->Add(new ItemHeader(n->T("UPnP (port-forwarding)"))); networkingSettings->Add(new CheckBox(&g_Config.bEnableUPnP, n->T("Enable UPnP", "Enable UPnP (need a few seconds to detect)"))); @@ -1820,14 +1823,6 @@ UI::EventReturn GameSettingsScreen::OnChangeQuickChat4(UI::EventParams &e) { return UI::EVENT_DONE; } -UI::EventReturn GameSettingsScreen::OnChangeproAdhocServerAddress(UI::EventParams &e) { - auto n = GetI18NCategory(I18NCat::NETWORKING); - - screenManager()->push(new HostnameSelectScreen(&g_Config.proAdhocServer, n->T("proAdhocServer Address:"))); - - return UI::EVENT_DONE; -} - UI::EventReturn GameSettingsScreen::OnTextureShader(UI::EventParams &e) { auto gr = GetI18NCategory(I18NCat::GRAPHICS); auto shaderScreen = new TextureShaderScreen(gr->T("GPU texture upscaler (fast)")); @@ -1924,8 +1919,14 @@ void HostnameSelectScreen::CreatePopupContents(UI::ViewGroup *parent) { buttonsRow2->Add(new Button(di->T("Toggle List")))->OnClick.Handle(this, &HostnameSelectScreen::OnShowIPListClick); buttonsRow2->Add(new Spacer(new LinearLayoutParams(1.0, G_RIGHT))); - std::vector listIP = { "socom.cc", "psp.gameplayer.club", "localhost" }; // TODO: Add some saved recent history too? + std::vector listIP; + if (listItems_) { + listIP = *listItems_; + } + // Add non-editable items + listIP.push_back("localhost"); net::GetIPList(listIP); + ipRows_ = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(1.0)); ScrollView* scrollView = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); LinearLayout* innerView = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); diff --git a/UI/GameSettingsScreen.h b/UI/GameSettingsScreen.h index 8dfdf87b2c..69e0b52421 100644 --- a/UI/GameSettingsScreen.h +++ b/UI/GameSettingsScreen.h @@ -89,7 +89,6 @@ private: UI::EventReturn OnChangeQuickChat2(UI::EventParams &e); UI::EventReturn OnChangeQuickChat3(UI::EventParams &e); UI::EventReturn OnChangeQuickChat4(UI::EventParams &e); - UI::EventReturn OnChangeproAdhocServerAddress(UI::EventParams &e); UI::EventReturn OnChangeBackground(UI::EventParams &e); UI::EventReturn OnFullscreenChange(UI::EventParams &e); UI::EventReturn OnFullscreenMultiChange(UI::EventParams &e); @@ -131,8 +130,8 @@ private: class HostnameSelectScreen : public PopupScreen { public: - HostnameSelectScreen(std::string *value, std::string_view title) - : PopupScreen(title, "OK", "Cancel"), value_(value) { + HostnameSelectScreen(std::string *value, std::vector *listItems, std::string_view title) + : PopupScreen(title, "OK", "Cancel"), listItems_(listItems), value_(value) { resolver_ = std::thread([](HostnameSelectScreen *thiz) { thiz->ResolverThread(); }, this); @@ -175,6 +174,7 @@ private: }; std::string *value_; + std::vector *listItems_; UI::TextEdit *addrView_ = nullptr; UI::TextView *progressView_ = nullptr; UI::LinearLayout *ipRows_ = nullptr; diff --git a/UI/PauseScreen.cpp b/UI/PauseScreen.cpp index ff63576f6d..5ac6a6507e 100644 --- a/UI/PauseScreen.cpp +++ b/UI/PauseScreen.cpp @@ -75,7 +75,7 @@ static void AfterSaveStateAction(SaveState::Status status, std::string_view mess class ScreenshotViewScreen : public PopupScreen { public: ScreenshotViewScreen(const Path &filename, std::string title, int slot, Path gamePath) - : PopupScreen(title), filename_(filename), slot_(slot), gamePath_(gamePath) {} // PopupScreen will translate Back on its own + : PopupScreen(title), filename_(filename), slot_(slot), gamePath_(gamePath), title_(title) {} // PopupScreen will translate Back on its own int GetSlot() const { return slot_; @@ -103,13 +103,26 @@ protected: GridLayout *grid = content->Add(new GridLayoutList(gridsettings, new LayoutParams(FILL_PARENT, WRAP_CONTENT))); Choice *back = new Choice(di->T("Back")); - Choice *undoButton = new Choice(pa->T("Undo last save")); - undoButton->SetEnabled(SaveState::HasUndoSaveInSlot(gamePath_, slot_)); + + const bool hasUndo = SaveState::HasUndoSaveInSlot(gamePath_, slot_); + const bool undoEnabled = g_Config.bEnableStateUndo; + + Choice *undoButton = nullptr; + if (undoEnabled || hasUndo) { + // Show the undo button if state undo is enabled in settings, OR one is available. We can load it + // even if making new undo states is not enabled. + Choice *undoButton = new Choice(pa->T("Undo last save")); + undoButton->SetEnabled(hasUndo); + } grid->Add(new Choice(pa->T("Save State")))->OnClick.Handle(this, &ScreenshotViewScreen::OnSaveState); + // We can unconditionally show the load state button, because you can only pop this dialog up if a state exists. grid->Add(new Choice(pa->T("Load State")))->OnClick.Handle(this, &ScreenshotViewScreen::OnLoadState); + grid->Add(new Choice(pa->T("Delete State")))->OnClick.Handle(this, &ScreenshotViewScreen::OnDeleteState); + if (undoButton) { + grid->Add(undoButton)->OnClick.Handle(this, &ScreenshotViewScreen::OnUndoState); + } grid->Add(back)->OnClick.Handle(this, &UIScreen::OnBack); - grid->Add(undoButton)->OnClick.Handle(this, &ScreenshotViewScreen::OnUndoState); scroll->Add(content); parent->Add(scroll); @@ -119,9 +132,11 @@ private: UI::EventReturn OnSaveState(UI::EventParams &e); UI::EventReturn OnLoadState(UI::EventParams &e); UI::EventReturn OnUndoState(UI::EventParams &e); + UI::EventReturn OnDeleteState(UI::EventParams &e); Path filename_; Path gamePath_; + std::string title_; int slot_; }; @@ -151,6 +166,27 @@ UI::EventReturn ScreenshotViewScreen::OnUndoState(UI::EventParams &e) { return UI::EVENT_DONE; } +UI::EventReturn ScreenshotViewScreen::OnDeleteState(UI::EventParams &e) { + auto di = GetI18NCategory(I18NCat::DIALOG); + + std::shared_ptr info = g_gameInfoCache->GetInfo(NULL, gamePath_, GameInfoFlags::PARAM_SFO); + + std::string message(di->T("DeleteConfirmSaveState")); + message += "\n\n" + info->GetTitle() + " (" + info->id + ")"; + message += "\n\n" + title_; + + // TODO: Also show the screenshot on the confirmation screen? + + screenManager()->push(new PromptScreen(gamePath_, message, di->T("Delete"), di->T("Cancel"), [=](bool result) { + if (result) { + SaveState::DeleteSlot(gamePath_, slot_); + TriggerFinish(DR_CANCEL); + } + })); + + return UI::EVENT_DONE; +} + class SaveSlotView : public UI::LinearLayout { public: SaveSlotView(const Path &gamePath, int slot, bool vertical, UI::LayoutParams *layoutParams = nullptr); diff --git a/assets/lang/ar_AE.ini b/assets/lang/ar_AE.ini index 6fcaee9aa8..0a61eb1daf 100644 --- a/assets/lang/ar_AE.ini +++ b/assets/lang/ar_AE.ini @@ -412,6 +412,7 @@ DeleteConfirm = ‎بيانات الحفظ هذه سوف تمسح.\nهل أنت DeleteConfirmAll = ‎هل تريد حقاً مسح كل \nملفات الحفظ لهذه اللعبة? DeleteConfirmGame = ‎هل تود حقاً مسح هذه اللعبة \nfمن جهازك? لا يمكن الرجوع عن هذا. DeleteConfirmGameConfig = ‎هل تود حقاً مسح الإعدادات لهذه اللعبة? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = ‎غير قادر علي مسح البيانات. Deleting = ‎يمسح\nمن فضلك إنتظر... Details = معلومات diff --git a/assets/lang/az_AZ.ini b/assets/lang/az_AZ.ini index b219438956..a2e5ab79d9 100644 --- a/assets/lang/az_AZ.ini +++ b/assets/lang/az_AZ.ini @@ -404,6 +404,7 @@ DeleteConfirm = Bu qeyd silinəcək.\nDəvam etmək istəyisinizmir? DeleteConfirmAll = Do you really want to delete all\nyour save data for this game? DeleteConfirmGame = Do you really want to delete this game\nfrom your device? You can't undo this. DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = Silinir\nZəhmət Olmasa Gözləyin... Details = Details diff --git a/assets/lang/be_BY.ini b/assets/lang/be_BY.ini index 29bcf0ad94..2c14a1bfa0 100644 --- a/assets/lang/be_BY.ini +++ b/assets/lang/be_BY.ini @@ -404,6 +404,7 @@ DeleteConfirm = This save data will be deleted.\nAre you sure you want to contin DeleteConfirmAll = Do you really want to delete all your save data for this game? DeleteConfirmGame = Do you really want to delete this game from your device? You can't undo this. DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = Deleting\nPlease wait... Details = Падрабязнасці diff --git a/assets/lang/bg_BG.ini b/assets/lang/bg_BG.ini index 95fe8f2da1..c48b8ed0c9 100644 --- a/assets/lang/bg_BG.ini +++ b/assets/lang/bg_BG.ini @@ -404,6 +404,7 @@ DeleteConfirm = Този запис ще бъде изтрит.\nСигурни DeleteConfirmAll = Наистина ли искате да изтриете\nвсички записани данни за тази игра? DeleteConfirmGame = Наистина ли искате да изтриете тази игра\nот устройството Ви? Не може да върнете това действие. DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = Изтриване\nМоля изчакайте... Details = Детайли diff --git a/assets/lang/ca_ES.ini b/assets/lang/ca_ES.ini index 1d70f19197..c6f6c1874e 100644 --- a/assets/lang/ca_ES.ini +++ b/assets/lang/ca_ES.ini @@ -404,6 +404,7 @@ DeleteConfirm = Aquesta partida serà esborrada.\nVols perdre el progrés guarda DeleteConfirmAll = Estàs segur que vols esborrar totes les dades de guardat d'aquest joc? DeleteConfirmGame = Estàs segur que vols esborrar aquest joc?\nAquesta operació no es pot desfer. DeleteConfirmGameConfig = Estàs segur que vols esborrar la configuración d'aquest joc?. +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Les dades no s'han pogut borrar. Deleting = Esborrant\nEspera un moment... Details = Detalls diff --git a/assets/lang/cz_CZ.ini b/assets/lang/cz_CZ.ini index 0c96e8103a..71f2f297db 100644 --- a/assets/lang/cz_CZ.ini +++ b/assets/lang/cz_CZ.ini @@ -404,6 +404,7 @@ DeleteConfirm = Tato uložená data budou smazána.\nOpravdu chcete pokračovat? DeleteConfirmAll = Opravdu chcete smazat všechna\nvaše uložená data pro tuto hru? DeleteConfirmGame = Opravdu chcete tuto hru smazat\nze svého zařízení? Toto nelze vrátit zpět. DeleteConfirmGameConfig = Opravdu chcete smazat nastavení této hry? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Nelze smazat data. Deleting = Probíhá mazání\nČekejte prosím... Details = Details diff --git a/assets/lang/da_DK.ini b/assets/lang/da_DK.ini index 42ccbac9b6..e8e3869dea 100644 --- a/assets/lang/da_DK.ini +++ b/assets/lang/da_DK.ini @@ -404,6 +404,7 @@ DeleteConfirm = Alt gemt data vil blive slettet.\nEr du sikker på at du vil for DeleteConfirmAll = Vil du virkelig slette alle\nspil-status for dette spil? DeleteConfirmGame = Vil du virkelig slette dette spil\nfra din enhed? Du kan ikke fortryde. DeleteConfirmGameConfig = Vil du virkelig slette opsætningen for dette spil? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Ikke muligt at slette data. Deleting = Sletter\nVent venligst... Details = Details diff --git a/assets/lang/de_DE.ini b/assets/lang/de_DE.ini index 9efd6535b6..b6f4cb37c7 100644 --- a/assets/lang/de_DE.ini +++ b/assets/lang/de_DE.ini @@ -397,6 +397,7 @@ DeleteConfirm = Diese Speicherdaten werden gelöscht.\nWillst du wirklich fortfa DeleteConfirmAll = Willst du wirklich alle deine Speicherdaten für dieses Spiel löschen? DeleteConfirmGame = Willst du dieses Spiel wirklich von deinem Gerät löschen? Dies lässt sich nicht rückgängig machen. DeleteConfirmGameConfig = Willst du die Einstellungen für dieses Spiel wirklich löschen? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Daten konnten nicht gelöscht werden Deleting = Löschen\nBitte warten... Details = Details diff --git a/assets/lang/dr_ID.ini b/assets/lang/dr_ID.ini index 1c6b8c06ba..55c494ff21 100644 --- a/assets/lang/dr_ID.ini +++ b/assets/lang/dr_ID.ini @@ -404,6 +404,7 @@ DeleteConfirm = Ala dihapusmi te' data.\nYake bangmo? DeleteConfirmAll = Dihapus nasang tongammi te'e\nyake bangmo? DeleteConfirmGame = Dihapus tongammi te' paningoan?\n Tihapus tongammi dau mane. DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = Dihapusmi\nTajammi... Details = Details diff --git a/assets/lang/en_US.ini b/assets/lang/en_US.ini index 92ba329a84..ec987be162 100644 --- a/assets/lang/en_US.ini +++ b/assets/lang/en_US.ini @@ -428,6 +428,7 @@ DeleteConfirm = This save data will be deleted.\nAre you sure you want to contin DeleteConfirmAll = Do you really want to delete all your save data for this game? DeleteConfirmGame = Do you really want to delete this game from your device? You can't undo this. DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = Deleting\nPlease wait... Details = Details diff --git a/assets/lang/es_ES.ini b/assets/lang/es_ES.ini index c826e1dda5..ba784da727 100644 --- a/assets/lang/es_ES.ini +++ b/assets/lang/es_ES.ini @@ -405,6 +405,7 @@ DeleteConfirm = Estos datos guardados se eliminarán. ¿Estás seguro de que des DeleteConfirmAll = ¿Realmente quieres eliminar todos tus datos guardados para este juego? DeleteConfirmGame = ¿Realmente quieres eliminar este juego de tu dispositivo? No puedes deshacer esta acción. DeleteConfirmGameConfig = ¿Realmente quieres eliminar los ajustes para este juego? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = No se pueden eliminar los datos. Deleting = Eliminando\nPor favor, espera un momento... Details = Detalles diff --git a/assets/lang/es_LA.ini b/assets/lang/es_LA.ini index 3b3348e84f..e62e48d67d 100644 --- a/assets/lang/es_LA.ini +++ b/assets/lang/es_LA.ini @@ -404,6 +404,7 @@ DeleteConfirm = Estos archivos son borrados.\n¿Estás seguro/a? DeleteConfirmAll = ADVERTENCIA:\nTodos los archivos de guardado serán borrados.\n¿Estás seguro/a? DeleteConfirmGame = ADVERTENCIA:\nEste juego será borrado para siempre y no puedes deshacerlo.\n¿Estás seguro/a? DeleteConfirmGameConfig = ADVERTENCIA:\nLos archivos de preferencias de este juego serán borrados.\n¿Estás seguro/a? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Los archivos no se pudieron borrar. Deleting = Borrando\nPor favor espere... Details = Detalles diff --git a/assets/lang/fa_IR.ini b/assets/lang/fa_IR.ini index 5d443d0ecc..b1266ab544 100644 --- a/assets/lang/fa_IR.ini +++ b/assets/lang/fa_IR.ini @@ -404,6 +404,7 @@ DeleteConfirm = ‎این دادهٔ ذخیره شده حذف خواهد شد.\n DeleteConfirmAll = ‎آیا شما می خواهید که همه ی\nداده‌های ذخیره این بازی را حذف نمایید؟ DeleteConfirmGame = ‎آیا شما می خواهید این بازی را\n.از دستگاه خود حذف کنید؟ نمی توانید آن را برگردانید DeleteConfirmGameConfig = آیا واقعا میخواهید تنظیمات این بازی را حذف کنید؟ +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = ‎در حال حذف کردن\n...منتظر بمانید Details = جزئیات diff --git a/assets/lang/fi_FI.ini b/assets/lang/fi_FI.ini index d76bba7844..8f6ffce65b 100644 --- a/assets/lang/fi_FI.ini +++ b/assets/lang/fi_FI.ini @@ -404,6 +404,7 @@ DeleteConfirm = Tämä tallennus poistetaan.\nHaluatko varmasti jatkaa? DeleteConfirmAll = Haluatko varmasti poistaa kaikki\ntämän pelin tallennustiedot? DeleteConfirmGame = Haluatko varmasti poistaa tämän pelin\nlaitteeltasi? Tätä ei voi perua. DeleteConfirmGameConfig = Haluatko varmasti poistaa tämän pelin asetukset? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Tietojen poistaminen epäonnistui. Deleting = Poistetaan\nOdota... Details = Yksityiskohdat diff --git a/assets/lang/fr_FR.ini b/assets/lang/fr_FR.ini index b8fb0c52d7..47d1ec714a 100644 --- a/assets/lang/fr_FR.ini +++ b/assets/lang/fr_FR.ini @@ -404,6 +404,7 @@ DeleteConfirm = Cette sauvegarde va être supprimée.\nÊtes-vous sûr de vouloi DeleteConfirmAll = Voulez-vous vraiment supprimer toutes les\nsauvegardes de ce jeu ?\nCette action est définitive. DeleteConfirmGame = Voulez-vous vraiment supprimer ce jeu de votre système ?\nCette action est définitive. DeleteConfirmGameConfig = Voulez-vous vraiment supprimer les paramètres pour ce jeu ? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Suppression impossible. Deleting = Suppression\nVeuillez patienter... Details = Détails diff --git a/assets/lang/gl_ES.ini b/assets/lang/gl_ES.ini index 458b139392..4766d749b3 100644 --- a/assets/lang/gl_ES.ini +++ b/assets/lang/gl_ES.ini @@ -404,6 +404,7 @@ DeleteConfirm = Este arquivo de datos borrarase.\nSeguro que queres borralo? DeleteConfirmAll = Seguro que queres borrar todos\nos datos de gardado de este xogo? DeleteConfirmGame = Seguro que queres borrar este xogo?\nEsta operación non se pode desfacer. DeleteConfirmGameConfig = Seguro que queres borrar a configuración deste xogo? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Os datos non se puideron borrar. Deleting = Borrando\nEspera un momento... Details = Details diff --git a/assets/lang/gr_EL.ini b/assets/lang/gr_EL.ini index e0c7d1ce3c..5ebe0cd374 100644 --- a/assets/lang/gr_EL.ini +++ b/assets/lang/gr_EL.ini @@ -404,6 +404,7 @@ DeleteConfirm = ΤΑ ΔΕΔΟΜΕΝΑ ΘΑ ΔΙΑΦΡΑΦΟΥΝ.\nΕΙΣΤΕ Σ DeleteConfirmAll = ΘΕΛΕΤΕ ΝΑ ΔΙΑΦΡΑΨΕΤΕ ΟΛΑ\nΤΑ ΔΕΔΟΜΕΝΑ ΓΙ' ΑΥΤΟ ΤΟ ΠΑΙΧΝΙΔΙ; DeleteConfirmGame = ΘΕΛΕΤΕ ΝΑ ΔΙΑΓΡΑΨΕΤΕ ΑΥΤΟ ΤΟ ΠΑΙΧΝΙΔΙ ΑΠΟ \nΤΗΝ ΣΥΣΚΕΥΗ ΣΑΣ; ΔΕΝ ΜΠΟΡΕΙΤΕ ΝΑ ΑΝΑΙΡΕΣΕΤΕ ΤΗΝ ΕΠΙΛΟΓΗ ΣΑΣ. DeleteConfirmGameConfig = Είστε σίγουροι ότι θέλετε να διαγράψετε τις ρυθμίσεις για αυτό το παιχνίδι; +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = ΑΔΥΝΑΜΙΑ ΔΙΑΓΡΑΦΗΣ ΔΕΔΟΜΕΝΩΝ. Deleting = ΔΙΑΓΡΑΦΗ\nΠΑΡΑΚΑΛΩ ΠΕΡΙΜΕΝΕΤΕ... Details = Details diff --git a/assets/lang/he_IL.ini b/assets/lang/he_IL.ini index b27054dba4..c1b26d3fc5 100644 --- a/assets/lang/he_IL.ini +++ b/assets/lang/he_IL.ini @@ -404,6 +404,7 @@ DeleteConfirm = ?ךישמהל םאה .וקחמי ולאה םירומשה םינ DeleteConfirmAll = ?הזה קחשמה רובע הרימשה ינותנ לכ תא קוחמל םאה DeleteConfirmGame = .וז הלועפ לטבל ןתינ אל ?ךלש רישכמהמ הזה קחשמה תא קוחמל DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = ...ןתמה אנא ...קחומ Details = Details diff --git a/assets/lang/he_IL_invert.ini b/assets/lang/he_IL_invert.ini index 6f79c655ff..af28c7dba3 100644 --- a/assets/lang/he_IL_invert.ini +++ b/assets/lang/he_IL_invert.ini @@ -404,6 +404,7 @@ DeleteConfirm = ?ךישמהל םאה .וקחמי ולאה םירומשה םינ DeleteConfirmAll = ?הזה קחשמה רובע הרימשה ינותנ לכ תא קוחמל םאה DeleteConfirmGame = .וז הלועפ לטבל ןתינ אל ?ךלש רישכמהמ הזה קחשמה תא קוחמל DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = ...ןתמה אנא ...קחומ Details = Details diff --git a/assets/lang/hr_HR.ini b/assets/lang/hr_HR.ini index e6520d303e..22e559458c 100644 --- a/assets/lang/hr_HR.ini +++ b/assets/lang/hr_HR.ini @@ -404,6 +404,7 @@ DeleteConfirm = Ova data će biti izbrisana.\nŽeliš li nastaviti? DeleteConfirmAll = Želis li izbrisati svu\nsvoju save datu za ovu igru? DeleteConfirmGame = Želiš li izbrisati igru\nsa svog uređaja? Ovo ne možeš poništit. DeleteConfirmGameConfig = Želiš li izbrisati postavke za ovu igru? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Nije moguće izbrisati datu. Deleting = Brisanje\nPričekajte... Details = Details diff --git a/assets/lang/hu_HU.ini b/assets/lang/hu_HU.ini index 0ac5d03e72..26f568e78c 100644 --- a/assets/lang/hu_HU.ini +++ b/assets/lang/hu_HU.ini @@ -404,6 +404,7 @@ DeleteConfirm = Ez a mentés törlődni fog.\nBiztosan akarod folytatni? DeleteConfirmAll = Biztosan törölni akarod az összes\nmentésedet ehhez a játékhoz? DeleteConfirmGame = Biztosan törölni akarod ezt a játékot?\nNem lehet visszavonni. DeleteConfirmGameConfig = Biztosan törölni akarod a játék beállításait? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Törlés sikertelen. Deleting = Törlés\nKérlek várj... Details = Részletek diff --git a/assets/lang/id_ID.ini b/assets/lang/id_ID.ini index 4f2c6f3f1f..6a07cdb26b 100644 --- a/assets/lang/id_ID.ini +++ b/assets/lang/id_ID.ini @@ -404,6 +404,7 @@ DeleteConfirm = Simpanan ini akan dihapus.\nAnda yakin ingin melanjutkan? DeleteConfirmAll = Apakah Anda ingin menghapus semua\ndata simpanan untuk permainan ini? DeleteConfirmGame = Apakah Anda benar-benar ingin menghapus\npermainan ini dari perangkat? Aksi ini bersifat permanen. DeleteConfirmGameConfig = Apakah Anda benar-benar ingin menghapus pengaturan untuk permainan ini? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Tidak dapat menghapus data. Deleting = Menghapus\nMohon tunggu... Details = Rincian diff --git a/assets/lang/it_IT.ini b/assets/lang/it_IT.ini index 6eb99d81f3..52e6644668 100644 --- a/assets/lang/it_IT.ini +++ b/assets/lang/it_IT.ini @@ -404,6 +404,7 @@ DeleteConfirm = Questo salvataggio sarà eliminato.\nSi è sicuri di voler conti DeleteConfirmAll = Vuoi veramente eliminare tutti\ni salvataggi di questo gioco? DeleteConfirmGame = Vuoi veramente eliminare questo gioco\ndal tuo dispositivo? Questa azione non si può annullare. DeleteConfirmGameConfig = Vuoi veramente cancellare le impostazioni per questo gioco? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Impossibile cancellare i dati. Deleting = Cancellazione in corso.\nAttendere, prego... Details = Dettagli diff --git a/assets/lang/ja_JP.ini b/assets/lang/ja_JP.ini index 5ed0ac7b74..5bdc57287c 100644 --- a/assets/lang/ja_JP.ini +++ b/assets/lang/ja_JP.ini @@ -404,6 +404,7 @@ DeleteConfirm = データを削除します。\n本当に続けますか? DeleteConfirmAll = 本当にこのゲームのセーブデータを削除しますか? DeleteConfirmGame = 本当にこのゲームを削除しますか?\nデータを元に戻すことはできません。 DeleteConfirmGameConfig = 本当にこのゲームの設定を削除しますか? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = データを削除できませんでした。 Deleting = 削除中です。\nしばらくお待ちください... Details = 詳細 diff --git a/assets/lang/jv_ID.ini b/assets/lang/jv_ID.ini index 6f567fae22..4e14ccbd7c 100644 --- a/assets/lang/jv_ID.ini +++ b/assets/lang/jv_ID.ini @@ -404,6 +404,7 @@ DeleteConfirm = Data iki arep di busek.\nTetep lanjutkake? DeleteConfirmAll = Njenengan yakin arep mbusek\nkabeh data penyimpenan dolanan iki? DeleteConfirmGame = Yakin arep mbusek dolanan iki\nsaka perangkat njenengan? Tindakan iki ora bisa di batalkake. DeleteConfirmGameConfig = Yakin arep mbusek setelan kanggo dolanan iki? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = ora dapat mbusek data. Deleting = Mbusek\nMohon nteni... Details = Details diff --git a/assets/lang/ko_KR.ini b/assets/lang/ko_KR.ini index 32de1df941..9628546c86 100644 --- a/assets/lang/ko_KR.ini +++ b/assets/lang/ko_KR.ini @@ -404,6 +404,7 @@ DeleteConfirm = 이 저장 데이터는 삭제됩니다.\n계속할까요? DeleteConfirmAll = 이 게임에 대한 모든 저장 데이터를\n삭제할까요? DeleteConfirmGame = 이 게임을 정말로 장치에서\n삭제할까요? 이 작업은 취소할 수 없습니다. DeleteConfirmGameConfig = 이 게임의 설정을 삭제할까요? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = 데이터를 삭제할 수 없습니다. Deleting = 삭제 중\n잠시만 기다려 주세요... Details = 상세 diff --git a/assets/lang/ku_SO.ini b/assets/lang/ku_SO.ini index 5d13159933..6dc5230943 100644 --- a/assets/lang/ku_SO.ini +++ b/assets/lang/ku_SO.ini @@ -418,6 +418,7 @@ DeleteConfirm = زانیارە خەخن کراوە دەسڕدرێتەوە.\nئا DeleteConfirmAll = ئایە تۆ دڵنیایت لە\nسڕینەوەی هەموو زانیاریە خەزنکروەکان بۆ ئەم یاریە؟? DeleteConfirmGame = ئایا تۆ دڵنیایت کە\nئەم یاریە بسڕیتەوە لە ئامێرەکەت؟ ئەم کارە گەڕانەوەی نییە DeleteConfirmGameConfig = ئایا تۆ دڵنیایت لە سڕینەوەی سێتینگەکانت بۆ ئەم یاریە؟ +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = نەتوانرا زانیاریەکان بسڕدرێنەوە. Deleting = دەسڕدرێتەوە\nتکایە چاوەڕوان بە... Details = Details diff --git a/assets/lang/lo_LA.ini b/assets/lang/lo_LA.ini index 0834d80951..e164a23795 100644 --- a/assets/lang/lo_LA.ini +++ b/assets/lang/lo_LA.ini @@ -404,6 +404,7 @@ DeleteConfirm = ເຊບນີ້ຈະຖືກລຶບ\nເຈົ້າຕ DeleteConfirmAll = ເຈົ້າຕ້ອງການທີ່ຈະລຶບເຊບທັງໝົດ\nຂອງເຈົ້າສຳລັບເກມນີ້ DeleteConfirmGame = ເຈົ້າຕ້ອງການທີ່ຈະລຶບເກມທັງໝົດ\nຈາກອຸປະກອນຂອງເຈົ້າຫຼືບໍ່? ເຈົ້າຈະບໍ່ສາມາດຍົກເລີກໄດ້ DeleteConfirmGameConfig = ເຈົ້າຕ້ອງການທີ່ຈະລຶບການຕັ້ງຄ່າສຳລັບເກມນີ້ຫຼືບໍ່? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = ບໍ່ສາມາດລຶບຂໍ້ມູນ. Deleting = ກຳລັງລຶບຂໍ້ມູນ\nກະລຸນາຖ້າ.. Details = Details diff --git a/assets/lang/lt-LT.ini b/assets/lang/lt-LT.ini index af29de21f9..81044e53e8 100644 --- a/assets/lang/lt-LT.ini +++ b/assets/lang/lt-LT.ini @@ -404,6 +404,7 @@ DeleteConfirm = This save data will be deleted.\nAre you sure you want to contin DeleteConfirmAll = Ar norite tikrai ištrinti visus\njūsų išsaugojimo duomenis šitam žaidimui? DeleteConfirmGame = Ar norite tikrai ištrinti šitą žaidimą\niš jūsų įrenginio? Jūs negalite atstatyti šitos komandos. DeleteConfirmGameConfig = Ar tikrai norite ištrinti šiuos nustatymus iš šito žaidimo? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Neįmanoma ištrinti duomenų. Deleting = Ištrina\nPrašome palaukti... Details = Details diff --git a/assets/lang/ms_MY.ini b/assets/lang/ms_MY.ini index b025592a20..ae7b60042c 100644 --- a/assets/lang/ms_MY.ini +++ b/assets/lang/ms_MY.ini @@ -404,6 +404,7 @@ DeleteConfirm = Data disimpan ini akan dipadam.\nAnda pasti hendak teruskan? DeleteConfirmAll = Anda yakin ingin menghapus\nsemua data penyimpanan permainan ini? DeleteConfirmGame = Anda pasti memadam permainan ini\ndari peranti? Anda tak dapat kembalikan ini. DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Pemadaman data gagal. Deleting = Memadam\nSila tunggu... Details = Details diff --git a/assets/lang/nl_NL.ini b/assets/lang/nl_NL.ini index 704fa58465..b46e1ae4af 100644 --- a/assets/lang/nl_NL.ini +++ b/assets/lang/nl_NL.ini @@ -404,6 +404,7 @@ DeleteConfirm = De opgeslagen data worden verwijderd.\nWeet u zeker dat u wilt d DeleteConfirmAll = Weet u zeker dat u alle opgeslagen data voor deze\ngame wilt verwijderen? DeleteConfirmGame = Weet u zeker dat u deze game van uw apparaat wilt\nverwijderen? Dit kan niet ongedaan gemaakt worden. DeleteConfirmGameConfig = Weet u zeker dat u de instellingen voor deze game\nwilt verwijderen? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Kan de data niet verwijderen. Deleting = Bezig met verwijderen...\nEen ogenblik geduld. Details = Details diff --git a/assets/lang/no_NO.ini b/assets/lang/no_NO.ini index 1f3ffaf3ac..dc78ea62c9 100644 --- a/assets/lang/no_NO.ini +++ b/assets/lang/no_NO.ini @@ -404,6 +404,7 @@ DeleteConfirm = Slett markert fil.\nEr du sikker på at du vil dette? DeleteConfirmAll = Do you really want to delete all\nyour save data for this game? DeleteConfirmGame = Do you really want to delete this game\nfrom your device? You can't undo this. DeleteConfirmGameConfig = Do you really want to delete the settings for this game? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Unable to delete data. Deleting = Sletter\nVent litt... Details = Details diff --git a/assets/lang/pl_PL.ini b/assets/lang/pl_PL.ini index e8780487c1..367eec62e2 100644 --- a/assets/lang/pl_PL.ini +++ b/assets/lang/pl_PL.ini @@ -404,6 +404,7 @@ DeleteConfirm = Dane zapisu zostaną usunięte.\nCzy na pewno chcesz kontynuowa DeleteConfirmAll = Czy na pewno chcesz usunąć wszystkie\ndane zapisu tej gry? DeleteConfirmGame = Czy na pewno chcesz usunąć tę grę\nze swojego urządzenia? Nie można tego cofnąć. DeleteConfirmGameConfig = Czy na pewno chcesz usunąć ustawienia dla tej gry? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Nie można usunąć danych. Deleting = Usuwanie\nProszę czekać... Details = Zmiany diff --git a/assets/lang/pt_BR.ini b/assets/lang/pt_BR.ini index b58f454a43..4e06572802 100644 --- a/assets/lang/pt_BR.ini +++ b/assets/lang/pt_BR.ini @@ -430,6 +430,7 @@ DeleteConfirm = Este dado do save será apagado.\nVocê tem certeza que você qu DeleteConfirmAll = Você realmente quer apagar todos\nos seus dados salvos deste jogo? DeleteConfirmGame = Você realmente quer apagar este jogo\ndo seu dispositivo? Você não pode desfazer isto. DeleteConfirmGameConfig = Você realmente quer apagar as configurações deste jogo? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Incapaz de apagar os dados. Deleting = Apagando\nPor favor espere... Details = Detalhes diff --git a/assets/lang/pt_PT.ini b/assets/lang/pt_PT.ini index 02d2f8ff58..cee18b77c6 100644 --- a/assets/lang/pt_PT.ini +++ b/assets/lang/pt_PT.ini @@ -428,6 +428,7 @@ DeleteConfirm = Estes dados do salvamento serão eliminados.\nTens a certeza que DeleteConfirmAll = Queres realmente eliminar todos\nos teus dados salvos deste jogo? DeleteConfirmGame = Queres realmente eliminar este jogo\ndo teu dispositivo? Não poderás desfazer isto. DeleteConfirmGameConfig = Queres realmente eliminar as definições deste jogo? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Não foi possível eliminar os dados. Deleting = A eliminar\nPor favor espere... Details = Detalhes diff --git a/assets/lang/ro_RO.ini b/assets/lang/ro_RO.ini index 388f7ea165..68994fcd9b 100644 --- a/assets/lang/ro_RO.ini +++ b/assets/lang/ro_RO.ini @@ -405,6 +405,7 @@ DeleteConfirm = Salvarea curentă va fi ștearsă.\nConfirmați? DeleteConfirmAll = Chiar vrei să-ți ștergi\ndatele salvate pt. acest joc? DeleteConfirmGame = Chiar vrei să ștergi acest joc\nde pe aparatul tău? Nu este cale de întoarcere. DeleteConfirmGameConfig = Chiar vrei să ștergi setările pt. acest joc? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Nu s-au putut șterge datele. Deleting = Ştergere în progres\nVă rugăm așteptați... Details = Details diff --git a/assets/lang/ru_RU.ini b/assets/lang/ru_RU.ini index b7715444c0..fe25970d08 100644 --- a/assets/lang/ru_RU.ini +++ b/assets/lang/ru_RU.ini @@ -404,6 +404,7 @@ DeleteConfirm = Эти данные будут удалены.\nХотите п DeleteConfirmAll = Вы уверены, что хотите удалить сохранения для данной игры? DeleteConfirmGame = Вы уверены, что хотите безвозвратно удалить\nданную игру с вашего устройства? DeleteConfirmGameConfig = Вы уверены, что хотите удалить настройки данной игры? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Не удалось удалить данные. Deleting = Удаление\nПожалуйста, подождите... Details = Подробности diff --git a/assets/lang/sv_SE.ini b/assets/lang/sv_SE.ini index 8f70509541..acd7c3614d 100644 --- a/assets/lang/sv_SE.ini +++ b/assets/lang/sv_SE.ini @@ -405,6 +405,7 @@ DeleteConfirm = All sparad data tas bort.\nÄr du säker på att du vill göra d DeleteConfirmAll = Vill du verkligen ta bort all\nsparad data för spelet? DeleteConfirmGame = Vill du verkligen ta bort det här spelet\nfrån din enhet? Detta kan inte ångras. DeleteConfirmGameConfig = Vill du verkligen ta bort inställningarna för det här spelet? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Misslyckades med att ta bort data. Deleting = Tar bort\nVänta... Details = Detaljer diff --git a/assets/lang/tg_PH.ini b/assets/lang/tg_PH.ini index 48e71ac5fa..2c0f86220f 100644 --- a/assets/lang/tg_PH.ini +++ b/assets/lang/tg_PH.ini @@ -405,6 +405,7 @@ DeleteConfirm = Ang save data na ito ay mabubura.\nGusto mo bang ituloy? DeleteConfirmAll = Gusto mo bang burahin\nang save data ng larong ito? DeleteConfirmGame = Gusto mo bang burahin ang larong ito\nsa iyong device? Wala ng undo ito. DeleteConfirmGameConfig = Sigurado ka bang burahin ang settings ng larong ito? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Hindi mabura ang datos. Deleting = Binubura...\nSandali lamang... Details = Detalye diff --git a/assets/lang/th_TH.ini b/assets/lang/th_TH.ini index 885b94e79b..60618d9c1a 100644 --- a/assets/lang/th_TH.ini +++ b/assets/lang/th_TH.ini @@ -422,6 +422,7 @@ DeleteConfirm = ข้อมูลเซฟนี้จะถูกลบ\nค DeleteConfirmAll = ข้อมูลเซฟของเกมนี้ทั้งหมดจะถูกลบ\nคุณต้องการที่จะดำเนินการต่อหรือไม่? DeleteConfirmGame = คุณต้องการลบเกมทั้งหมดที่อยู่ในอุปกรณ์ของคุณหรือไม่?\nหากกดตกลงแล้วจะไม่สามารถยกเลิกได้ DeleteConfirmGameConfig = คุณแน่ใจนะว่าต้องการลบการตั้งค่าเฉพาะของเกมนี้? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = ไม่สามารถลบข้อมูลนี้ได้ Deleting = กำลังลบข้อมูล\nโปรดรอ... Details = รายละเอียด diff --git a/assets/lang/tr_TR.ini b/assets/lang/tr_TR.ini index 94dbc54e4c..e5ad0bc067 100644 --- a/assets/lang/tr_TR.ini +++ b/assets/lang/tr_TR.ini @@ -406,6 +406,7 @@ DeleteConfirm = Bu kayıt silinecek.\nDevam etmek istiyor musunuz? DeleteConfirmAll = Bu oyun için bütün kayıtları silmek istediğine emin misin? DeleteConfirmGame = Bu oyunu cihazından silmek istediğine emin misin?\nBunu geri alamazsın. DeleteConfirmGameConfig = Bu oyun için ayarları silmek istediğine emin misin? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Veri silinemedi. Deleting = Siliniyor\nLütfen Bekleyin... Details = Ayrıntılar diff --git a/assets/lang/uk_UA.ini b/assets/lang/uk_UA.ini index efa9ae1b45..7d03121ec0 100644 --- a/assets/lang/uk_UA.ini +++ b/assets/lang/uk_UA.ini @@ -404,6 +404,7 @@ DeleteConfirm = Ці дані будуть видалені.\nХочете пр DeleteConfirmAll = Всі збереження гри будуть видалені.\nВи впевнені, що хочете продовжити? DeleteConfirmGame = Ця гра буде повністю видалена.\nВи впевнені, що хочете продовжити? DeleteConfirmGameConfig = Параметри налаштування для цієї гри будуть видалені.\nВи впевнені, що хочете продовжити? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Неможливо видалити дані. Deleting = Видалення\nБудь ласка, зачекайте... Details = Подробиці diff --git a/assets/lang/vi_VN.ini b/assets/lang/vi_VN.ini index c7c329fafa..73b38df9e2 100644 --- a/assets/lang/vi_VN.ini +++ b/assets/lang/vi_VN.ini @@ -404,6 +404,7 @@ DeleteConfirm = File save này sẽ bị xóa.\nBạn có muốn tiếp tục? DeleteConfirmAll = Bạn có muốn xóa tất cả\ndữ liệu save của trò này?? DeleteConfirmGame = Bạn có muốn xóa trò này\nkhỏi thiết bị của bạn? DeleteConfirmGameConfig = Bạn có muốn xóa thiết lập\nđối với game này? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = Không thể xóa dữ liệu này. Deleting = Đang xóa\nXin đợi... Details = Details diff --git a/assets/lang/zh_CN.ini b/assets/lang/zh_CN.ini index 6ff4bfb60b..9551b6951e 100644 --- a/assets/lang/zh_CN.ini +++ b/assets/lang/zh_CN.ini @@ -404,6 +404,7 @@ DeleteConfirm = 存档将被删除。\n您确定要继续吗? DeleteConfirmAll = 将删除此游戏的所有存档。\n您确定要这样做吗? DeleteConfirmGame = 将删除此游戏的文件,且不能复原。\n您确定要这样做吗? DeleteConfirmGameConfig = 您确定要删除此游戏的设置吗? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = 无法删除存档。 Deleting = 删除中。\n请稍候… Details = 详细内容 diff --git a/assets/lang/zh_TW.ini b/assets/lang/zh_TW.ini index 5b4498e82c..38a1678765 100644 --- a/assets/lang/zh_TW.ini +++ b/assets/lang/zh_TW.ini @@ -404,6 +404,7 @@ DeleteConfirm = 這個存檔的資料將被刪除\n仍要繼續嗎? DeleteConfirmAll = 您確定要刪除\n這個遊戲的全部存檔資料嗎? DeleteConfirmGame = 您確定要從您的裝置上刪除這個遊戲嗎?\n您無法復原此動作。 DeleteConfirmGameConfig = 您確定要刪除這個遊戲的全部設定嗎? +DeleteConfirmSaveState = Are you sure you want to permanently delete this save state? DeleteFailed = 無法刪除資料 Deleting = 正在刪除\n請稍候… Details = 詳細資料