diff --git a/Common/File/FileUtil.cpp b/Common/File/FileUtil.cpp index 2959056aed6b..a2ac17f9c980 100644 --- a/Common/File/FileUtil.cpp +++ b/Common/File/FileUtil.cpp @@ -628,13 +628,12 @@ bool Rename(const Path &srcFilename, const Path &destFilename) { break; case PathType::CONTENT_URI: // Content URI: Can only rename if in the same folder. - // TODO: Fallback to move + rename? Or do we even care about that use case? + // TODO: Fallback to move + rename? Or do we even care about that use case? We have MoveIfFast for such tricks. if (srcFilename.GetDirectory() != destFilename.GetDirectory()) { INFO_LOG(COMMON, "Content URI rename: Directories not matching, failing. %s --> %s", srcFilename.c_str(), destFilename.c_str()); return false; } INFO_LOG(COMMON, "Content URI rename: %s --> %s", srcFilename.c_str(), destFilename.c_str()); - return Android_RenameFileTo(srcFilename.ToString(), destFilename.GetFilename()) == StorageError::SUCCESS; default: return false; @@ -752,22 +751,12 @@ bool Copy(const Path &srcFilename, const Path &destFilename) { // Will overwrite the target. bool Move(const Path &srcFilename, const Path &destFilename) { - // Try a shortcut in Android Storage scenarios. - if (srcFilename.Type() == PathType::CONTENT_URI && destFilename.Type() == PathType::CONTENT_URI && srcFilename.CanNavigateUp() && destFilename.CanNavigateUp()) { - // We do not handle simultaneous renames here. - if (srcFilename.GetFilename() == destFilename.GetFilename()) { - Path srcParent = srcFilename.NavigateUp(); - Path dstParent = destFilename.NavigateUp(); - if (Android_MoveFile(srcFilename.ToString(), srcParent.ToString(), dstParent.ToString()) == StorageError::SUCCESS) { - return true; - } - // If failed, fall through and try other ways. - } - } - - if (Rename(srcFilename, destFilename)) { + bool fast = MoveIfFast(srcFilename, destFilename); + if (fast) { return true; - } else if (Copy(srcFilename, destFilename)) { + } + // OK, that failed, so fall back on a copy. + if (Copy(srcFilename, destFilename)) { return Delete(srcFilename); } else { return false; @@ -775,7 +764,13 @@ bool Move(const Path &srcFilename, const Path &destFilename) { } bool MoveIfFast(const Path &srcFilename, const Path &destFilename) { - if (srcFilename.Type() == PathType::CONTENT_URI && destFilename.Type() == PathType::CONTENT_URI && srcFilename.CanNavigateUp() && destFilename.CanNavigateUp()) { + if (srcFilename.Type() != destFilename.Type()) { + // No way it's gonna work. + return false; + } + + // Only need to check one type here, due to the above check. + if (srcFilename.Type() == PathType::CONTENT_URI && srcFilename.CanNavigateUp() && destFilename.CanNavigateUp()) { if (srcFilename.GetFilename() == destFilename.GetFilename()) { Path srcParent = srcFilename.NavigateUp(); Path dstParent = destFilename.NavigateUp(); @@ -787,11 +782,7 @@ bool MoveIfFast(const Path &srcFilename, const Path &destFilename) { } } - if (srcFilename.Type() != destFilename.Type()) { - // No way it's gonna work. - return false; - } - + // Try a traditional rename operation. return Rename(srcFilename, destFilename); } diff --git a/Common/File/FileUtil.h b/Common/File/FileUtil.h index 2ae3329b753b..5b7b779e8ebf 100644 --- a/Common/File/FileUtil.h +++ b/Common/File/FileUtil.h @@ -97,7 +97,7 @@ bool DeleteDir(const Path &filename); // Deletes the given directory and anything under it. Returns true on success. bool DeleteDirRecursively(const Path &directory); -// Renames file srcFilename to destFilename, returns true on success +// Renames/moves file srcFilename to destFilename, returns true on success // Will usually only work with in the same partition or other unit of storage, // so you might have to fall back to copy/delete. bool Rename(const Path &srcFilename, const Path &destFilename); diff --git a/Core/Util/GameManager.cpp b/Core/Util/GameManager.cpp index 628f2d29fa81..6693c4cdb0fa 100644 --- a/Core/Util/GameManager.cpp +++ b/Core/Util/GameManager.cpp @@ -345,6 +345,7 @@ bool GameManager::InstallGame(const Path &url, const Path &fileName, bool delete if (info.stripChars == 0) { success = InstallMemstickZip(z, fileName, dest / "textures.zip", info, deleteAfter); } else { + // TODO: Can probably remove this, as we now put .nomedia in /TEXTURES directly. File::CreateEmptyFile(dest / ".nomedia"); success = InstallMemstickGame(z, fileName, dest, info, true, deleteAfter); } diff --git a/Core/Util/MemStick.cpp b/Core/Util/MemStick.cpp index aa27a2b2eea6..78192f8648ba 100644 --- a/Core/Util/MemStick.cpp +++ b/Core/Util/MemStick.cpp @@ -62,7 +62,6 @@ bool SwitchMemstickFolderTo(Path newMemstickFolder) { return true; } - // Keep the size with the file, so we can skip overly large ones in the move. // The user will have to take care of them afterwards, it'll just take too long probably. struct FileSuffix { @@ -70,7 +69,7 @@ struct FileSuffix { u64 fileSize; }; -static bool ListFileSuffixesRecursively(const Path &root, const Path &folder, std::vector &dirSuffixes, std::vector &fileSuffixes) { +static bool ListFileSuffixesRecursively(const Path &root, const Path &folder, std::vector &dirSuffixes, std::vector &fileSuffixes, MoveProgressReporter &progressReporter) { std::vector files; if (!File::GetFilesInDir(folder, &files)) { return false; @@ -82,7 +81,8 @@ static bool ListFileSuffixesRecursively(const Path &root, const Path &folder, st if (root.ComputePathTo(file.fullName, dirSuffix)) { if (!dirSuffix.empty()) { dirSuffixes.push_back(dirSuffix); - ListFileSuffixesRecursively(root, folder / file.name, dirSuffixes, fileSuffixes); + ListFileSuffixesRecursively(root, folder / file.name, dirSuffixes, fileSuffixes, progressReporter); + progressReporter.SetProgress(file.name, fileSuffixes.size(), (size_t)-1); } } else { ERROR_LOG_REPORT(SYSTEM, "Failed to compute PathTo from '%s' to '%s'", root.c_str(), folder.c_str()); @@ -100,6 +100,43 @@ static bool ListFileSuffixesRecursively(const Path &root, const Path &folder, st return true; } +bool MoveChildrenFast(const Path &moveSrc, const Path &moveDest, MoveProgressReporter &progressReporter) { + std::vector files; + if (!File::GetFilesInDir(moveSrc, &files)) { + return false; + } + + for (size_t i = 0; i < files.size(); i++) { + auto &file = files[i]; + // Construct destination path + Path fileSrc = file.fullName; + Path fileDest = moveDest / file.name; + progressReporter.SetProgress(file.name, i, files.size()); + INFO_LOG(SYSTEM, "About to move PSP data from '%s' to '%s'", fileSrc.c_str(), fileDest.c_str()); + bool result = File::MoveIfFast(fileSrc, fileDest); + if (!result) { + // TODO: Should we try to move back anything that succeeded before this one? + return false; + } + } + return true; +} + +std::string MoveProgressReporter::Format() { + std::string str; + { + std::lock_guard guard(mutex_); + if (max_ > 0) { + str = StringFromFormat("(%d/%d) ", count_, max_); + } else if (max_ < 0) { + str = StringFromFormat("(%d) ", count_); + } + str += progress_; + } + return str; +} + + MoveResult *MoveDirectoryContentsSafe(Path moveSrc, Path moveDest, MoveProgressReporter &progressReporter) { auto ms = GetI18NCategory(I18NCat::MEMSTICK); if (moveSrc.GetFilename() != "PSP") { @@ -112,94 +149,132 @@ MoveResult *MoveDirectoryContentsSafe(Path moveSrc, Path moveDest, MoveProgressR INFO_LOG(SYSTEM, "About to move PSP data from '%s' to '%s'", moveSrc.c_str(), moveDest.c_str()); + // First, we try the cheapest and safest way to move: Can we move files directly within the same device? + // We loop through the files/dirs in the source directory and just try to move them, it should work. + if (MoveChildrenFast(moveSrc, moveDest, progressReporter)) { + INFO_LOG(SYSTEM, "Quick-move succeeded"); + progressReporter.SetProgress(ms->T("Done!")); + return new MoveResult{ + true, "" + }; + } + + // If this doesn't work, we'll fall back on a recursive *copy* (disk space is less of a concern when + // moving from device to device, other than that everything fits on the destination). + // Then we verify the results before we delete the originals. + // Search through recursively, listing the files to move and also summing their sizes. std::vector fileSuffixesToMove; std::vector directorySuffixesToCreate; // NOTE: It's correct to pass moveSrc twice here, it's to keep the root in the recursion. - if (!ListFileSuffixesRecursively(moveSrc, moveSrc, directorySuffixesToCreate, fileSuffixesToMove)) { + if (!ListFileSuffixesRecursively(moveSrc, moveSrc, directorySuffixesToCreate, fileSuffixesToMove, progressReporter)) { // TODO: Handle failure listing files. std::string error = "Failed to read old directory"; INFO_LOG(SYSTEM, "%s", error.c_str()); - progressReporter.Set(ms->T(error.c_str())); + progressReporter.SetProgress(ms->T(error.c_str())); return new MoveResult{ false, error }; } bool dryRun = false; // Useful for debugging. size_t failedFiles = 0; - size_t skippedFiles = 0; // We're not moving huge files like ISOs during this process, unless // they can be directly moved, without rewriting the file. const uint64_t BIG_FILE_THRESHOLD = 24 * 1024 * 1024; - if (!moveSrc.empty()) { - // Better not interrupt the app while this is happening! + if (moveSrc.empty()) { + // Shouldn't happen. + return new MoveResult{ true, "", }; + } - // Create all the necessary directories. - for (auto &dirSuffix : directorySuffixesToCreate) { - Path dir = moveDest / dirSuffix; - if (dryRun) { - INFO_LOG(SYSTEM, "dry run: Would have created dir '%s'", dir.c_str()); - } else { - INFO_LOG(SYSTEM, "Creating dir '%s'", dir.c_str()); - progressReporter.Set(dirSuffix); - // Just ignore already-exists errors. - File::CreateDir(dir); - } + // Better not interrupt the app while this is happening! + + // Create all the necessary directories. + for (size_t i = 0; i < directorySuffixesToCreate.size(); i++) { + const auto &dirSuffix = directorySuffixesToCreate[i]; + Path dir = moveDest / dirSuffix; + if (dryRun) { + INFO_LOG(SYSTEM, "dry run: Would have created dir '%s'", dir.c_str()); + } else { + INFO_LOG(SYSTEM, "Creating dir '%s'", dir.c_str()); + progressReporter.SetProgress(dirSuffix); + // Just ignore already-exists errors. + File::CreateDir(dir); } + } - for (auto &fileSuffix : fileSuffixesToMove) { - progressReporter.Set(StringFromFormat("%s (%s)", fileSuffix.suffix.c_str(), NiceSizeFormat(fileSuffix.fileSize).c_str())); - - Path from = moveSrc / fileSuffix.suffix; - Path to = moveDest / fileSuffix.suffix; - - if (fileSuffix.fileSize > BIG_FILE_THRESHOLD) { - // We only move big files if it's fast to do so. - if (dryRun) { - INFO_LOG(SYSTEM, "dry run: Would have moved '%s' to '%s' (%d bytes) if fast", from.c_str(), to.c_str(), (int)fileSuffix.fileSize); - } else { - if (!File::MoveIfFast(from, to)) { - INFO_LOG(SYSTEM, "Skipped moving file '%s' to '%s' (%s)", from.c_str(), to.c_str(), NiceSizeFormat(fileSuffix.fileSize).c_str()); - skippedFiles++; - } else { - INFO_LOG(SYSTEM, "Moved file '%s' to '%s'", from.c_str(), to.c_str()); - } - } + for (size_t i = 0; i < fileSuffixesToMove.size(); i++) { + const auto &fileSuffix = fileSuffixesToMove[i]; + progressReporter.SetProgress(StringFromFormat("%s (%s)", fileSuffix.suffix.c_str(), NiceSizeFormat(fileSuffix.fileSize).c_str()), + (int)i, (int)fileSuffixesToMove.size()); + + Path from = moveSrc / fileSuffix.suffix; + Path to = moveDest / fileSuffix.suffix; + + if (dryRun) { + INFO_LOG(SYSTEM, "dry run: Would have moved '%s' to '%s' (%d bytes)", from.c_str(), to.c_str(), (int)fileSuffix.fileSize); + } else { + // Remove the "from" prefix from the path. + // We have to drop down to string operations for this. + if (!File::Copy(from, to)) { + ERROR_LOG(SYSTEM, "Failed to copy file '%s' to '%s'", from.c_str(), to.c_str()); + failedFiles++; + // Should probably just bail? } else { - if (dryRun) { - INFO_LOG(SYSTEM, "dry run: Would have moved '%s' to '%s' (%d bytes)", from.c_str(), to.c_str(), (int)fileSuffix.fileSize); - } else { - // Remove the "from" prefix from the path. - // We have to drop down to string operations for this. - if (!File::Move(from, to)) { - ERROR_LOG(SYSTEM, "Failed to move file '%s' to '%s'", from.c_str(), to.c_str()); - failedFiles++; - // Should probably just bail? - } else { - INFO_LOG(SYSTEM, "Moved file '%s' to '%s'", from.c_str(), to.c_str()); - } - } + INFO_LOG(SYSTEM, "Copied file '%s' to '%s'", from.c_str(), to.c_str()); } } + } - // Delete all the old, now hopefully empty, directories. - // Hopefully DeleteDir actually fails if it contains a file... - for (auto &dirSuffix : directorySuffixesToCreate) { - Path dir = moveSrc / dirSuffix; - if (dryRun) { - INFO_LOG(SYSTEM, "dry run: Would have deleted dir '%s'", dir.c_str()); - } else { - INFO_LOG(SYSTEM, "Deleting dir '%s'", dir.c_str()); - progressReporter.Set(dirSuffix); - if (File::Exists(dir)) { - File::DeleteDir(dir); - } - } + if (failedFiles) { + return new MoveResult{ false, "", failedFiles }; + } + + // After the whole move, verify that all the files arrived correctly. + // If there's a single error, we do not delete the source data. + bool ok = true; + for (size_t i = 0; i < fileSuffixesToMove.size(); i++) { + const auto &fileSuffix = fileSuffixesToMove[i]; + progressReporter.SetProgress(ms->T("Checking..."), (int)i, (int)fileSuffixesToMove.size()); + + Path to = moveDest / fileSuffix.suffix; + + File::FileInfo info; + if (!File::GetFileInfo(to, &info)) { + ok = false; + break; + } + + if (fileSuffix.fileSize != info.size) { + ERROR_LOG(SYSTEM, "Mismatched size in target file %s. Verification failed.", fileSuffix.suffix.c_str()); + ok = false; + failedFiles++; + break; } } - return new MoveResult{ true, "", failedFiles }; + if (!ok) { + return new MoveResult{ false, "", failedFiles }; + } + + INFO_LOG(SYSTEM, "Verification complete"); + + // Delete all the old, now hopefully empty, directories. + // Hopefully DeleteDir actually fails if it contains a file... + for (size_t i = 0; i < directorySuffixesToCreate.size(); i++) { + const auto &dirSuffix = directorySuffixesToCreate[i]; + Path dir = moveSrc / dirSuffix; + if (dryRun) { + INFO_LOG(SYSTEM, "dry run: Would have deleted dir '%s'", dir.c_str()); + } else { + INFO_LOG(SYSTEM, "Deleting dir '%s'", dir.c_str()); + progressReporter.SetProgress(dirSuffix, i, directorySuffixesToCreate.size()); + if (File::Exists(dir)) { + File::DeleteDir(dir); + } + } + } + return new MoveResult{ true, "", 0 }; } diff --git a/Core/Util/MemStick.h b/Core/Util/MemStick.h index 6fdb868768dc..65c7384726ed 100644 --- a/Core/Util/MemStick.h +++ b/Core/Util/MemStick.h @@ -3,24 +3,26 @@ #include "Common/File/Path.h" #include +#include // Utility functions moved out from MemstickScreen. class MoveProgressReporter { public: - void Set(const std::string &value) { + void SetProgress(std::string_view value, size_t count = 0, size_t maxVal = 0) { std::lock_guard guard(mutex_); progress_ = value; + count_ = (int)count; + max_ = (int)maxVal; } - std::string Get() { - std::lock_guard guard(mutex_); - return progress_; - } + std::string Format(); private: std::string progress_; std::mutex mutex_; + int count_; + int max_; }; struct MoveResult { diff --git a/GPU/Common/TextureReplacer.cpp b/GPU/Common/TextureReplacer.cpp index d85e8372213b..9ed53c7cd8c6 100644 --- a/GPU/Common/TextureReplacer.cpp +++ b/GPU/Common/TextureReplacer.cpp @@ -87,8 +87,10 @@ void TextureReplacer::NotifyConfigChanged() { // If we're saving, auto-create the directory. if (g_Config.bSaveNewTextures && !File::Exists(newTextureDir_)) { + INFO_LOG(G3D, "Creating new texture directory: '%s'", newTextureDir_.ToVisualString().c_str()); File::CreateFullPath(newTextureDir_); - File::CreateEmptyFile(newTextureDir_ / ".nomedia"); + // We no longer create a nomedia file here, since we put one + // in the TEXTURES root. } enabled_ = File::IsDirectory(basePath_); diff --git a/UI/MemStickScreen.cpp b/UI/MemStickScreen.cpp index 8e54b8d4ca50..c59f968bcb0c 100644 --- a/UI/MemStickScreen.cpp +++ b/UI/MemStickScreen.cpp @@ -518,7 +518,7 @@ void ConfirmMemstickMoveScreen::CreateViews() { } if (moveDataTask_) { - progressView_ = leftColumn->Add(new TextView(progressReporter_.Get())); + progressView_ = leftColumn->Add(new TextView(progressReporter_.Format())); } else { progressView_ = nullptr; } @@ -545,19 +545,19 @@ void ConfirmMemstickMoveScreen::update() { if (moveDataTask_) { if (progressView_) { - progressView_->SetText(progressReporter_.Get()); + progressView_->SetText(progressReporter_.Format()); } MoveResult *result = moveDataTask_->Poll(); if (result) { if (result->success) { - progressReporter_.Set(iz->T("Done!")); + progressReporter_.SetProgress(iz->T("Done!")); INFO_LOG(SYSTEM, "Move data task finished successfully!"); // Succeeded! FinishFolderMove(); } else { - progressReporter_.Set(iz->T("Failed to move some files!")); + progressReporter_.SetProgress(iz->T("Failed to move some files!")); INFO_LOG(SYSTEM, "Move data task failed!"); // What do we do here? We might be in the middle of a move... Bad. RecreateViews(); @@ -575,7 +575,7 @@ UI::EventReturn ConfirmMemstickMoveScreen::OnConfirm(UI::EventParams ¶ms) { // If the directory itself is called PSP, don't go below. if (moveData_) { - progressReporter_.Set(T(I18NCat::MEMSTICK, "Starting move...")); + progressReporter_.SetProgress(T(I18NCat::MEMSTICK, "Starting move...")); moveDataTask_ = Promise::Spawn(&g_threadManager, [&]() -> MoveResult * { Path moveSrc = g_Config.memStickDirectory; @@ -594,6 +594,8 @@ UI::EventReturn ConfirmMemstickMoveScreen::OnConfirm(UI::EventParams ¶ms) { void ConfirmMemstickMoveScreen::FinishFolderMove() { auto ms = GetI18NCategory(I18NCat::MEMSTICK); + Path oldMemstickFolder = g_Config.memStickDirectory; + // Successful so far, switch the memstick folder. if (!SwitchMemstickFolderTo(newMemstickFolder_)) { // TODO: More precise errors. @@ -603,6 +605,12 @@ void ConfirmMemstickMoveScreen::FinishFolderMove() { // If the chosen folder already had a config, reload it! g_Config.Load(); + + // If the current browser directory is the old memstick folder, drop it. + if (g_Config.currentDirectory == oldMemstickFolder) { + g_Config.currentDirectory = g_Config.defaultCurrentDirectory; + } + PostLoadConfig(); if (!initialSetup_) { diff --git a/assets/lang/ar_AE.ini b/assets/lang/ar_AE.ini index 418942d4e2e1..062a8dba9bef 100644 --- a/assets/lang/ar_AE.ini +++ b/assets/lang/ar_AE.ini @@ -848,12 +848,14 @@ Wlan = ‎الواي فاي [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/az_AZ.ini b/assets/lang/az_AZ.ini index e87439489d86..77fde651fcc1 100644 --- a/assets/lang/az_AZ.ini +++ b/assets/lang/az_AZ.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/bg_BG.ini b/assets/lang/bg_BG.ini index e65c3e8bfd7e..3496bd8f196b 100644 --- a/assets/lang/bg_BG.ini +++ b/assets/lang/bg_BG.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/ca_ES.ini b/assets/lang/ca_ES.ini index 95ba9714b8cc..00619648c155 100644 --- a/assets/lang/ca_ES.ini +++ b/assets/lang/ca_ES.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/cz_CZ.ini b/assets/lang/cz_CZ.ini index 1a27b71cf941..f1b45b47bd01 100644 --- a/assets/lang/cz_CZ.ini +++ b/assets/lang/cz_CZ.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/da_DK.ini b/assets/lang/da_DK.ini index b67506712f2e..9b9a7c3f2972 100644 --- a/assets/lang/da_DK.ini +++ b/assets/lang/da_DK.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/de_DE.ini b/assets/lang/de_DE.ini index 2111830f4efb..310d5dc00555 100644 --- a/assets/lang/de_DE.ini +++ b/assets/lang/de_DE.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Enthält bereits PSP Daten Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Daten können mit PPSSPP Regulär/Gold geteilt werden! DataCannotBeShared = Daten können NICHT mit Regulär/Gold geteilt werden! DataWillBeLostOnUninstall = Warnung! Dateien gehen verloren beim deinstallieren von PPSSPP. DataWillStay = Dateien gehen NICHT verloren beim deinstallieren von PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Konnte ein paar Dateien nicht bewegen! diff --git a/assets/lang/dr_ID.ini b/assets/lang/dr_ID.ini index 5bb82510b201..e46eca591661 100644 --- a/assets/lang/dr_ID.ini +++ b/assets/lang/dr_ID.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/en_US.ini b/assets/lang/en_US.ini index edcecaa6b35f..f103c0567612 100644 --- a/assets/lang/en_US.ini +++ b/assets/lang/en_US.ini @@ -1025,12 +1025,14 @@ written = Written in C++ for speed and portability [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/es_ES.ini b/assets/lang/es_ES.ini index 6f326a9f64a2..385e3d9c4291 100644 --- a/assets/lang/es_ES.ini +++ b/assets/lang/es_ES.ini @@ -841,12 +841,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Ya contiene datos de PSP Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Crear o elegir la carpeta PSP Current = Actual DataCanBeShared = Los datos se pueden compartir entre PPSSPP regular/Gold DataCannotBeShared = ¡Los datos NO se pueden compartir entre PPSSPP regular/Gold! DataWillBeLostOnUninstall = ¡AVISO: los datos se perderán una vez desinstales PPSSPP! DataWillStay = Los datos se mantendrán aunque desinstales PPSSPP. +Deleting... = Deleting... Done! = ¡Hecho! EasyUSBAccess = Acceso fácil USB Failed to move some files! = ¡Error al mover algunos archivos! diff --git a/assets/lang/es_LA.ini b/assets/lang/es_LA.ini index fcaae9efffd6..9d391c3955e8 100644 --- a/assets/lang/es_LA.ini +++ b/assets/lang/es_LA.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Actualmente contiene datos de PSP Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Seleccionar o crear carpeta PSP Current = Actual DataCanBeShared = Datos pueden moverse entre PPSSPP regular/Gold DataCannotBeShared = ¡Datos NO pueden moverse entre PPSSPP regular/Gold! DataWillBeLostOnUninstall = ADVERTENCIA: ¡Datos pueden borrarse al desinstalar PPSSPP! DataWillStay = Datos pueden mantenerse incluso si desinstalas PPSSPP. +Deleting... = Deleting... Done! = ¡Hecho! EasyUSBAccess = Acceso USB fácil Failed to move some files! = ¡Falló al mover algunos archivos! diff --git a/assets/lang/fa_IR.ini b/assets/lang/fa_IR.ini index 61000a670a06..5e33afd8a0f4 100644 --- a/assets/lang/fa_IR.ini +++ b/assets/lang/fa_IR.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/fi_FI.ini b/assets/lang/fi_FI.ini index 33e8678d6ddd..1e7555abacc3 100644 --- a/assets/lang/fi_FI.ini +++ b/assets/lang/fi_FI.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Sisältää jo PSP-tiedot Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Luo tai valitse PSP-kansio Current = Nykyinen DataCanBeShared = Tiedot voidaan jakaa PPSSPP:n tavallisen / Gold-version välillä DataCannotBeShared = Tietoja EI VOIDA jakaan PPSSPP:n tavallisen / Gold-version välillä! DataWillBeLostOnUninstall = Varoitus! Tiedot häviävät, kun poistat PPSSPP:n! DataWillStay = Tiedot säilyvät jopa jos poistat PPSSPP:n. +Deleting... = Deleting... Done! = Valmis! EasyUSBAccess = Helppo USB-pääsy Failed to move some files! = Joitain tiedostoja ei voitu siirtää! diff --git a/assets/lang/fr_FR.ini b/assets/lang/fr_FR.ini index 48c608ed7eea..43d6029a8748 100644 --- a/assets/lang/fr_FR.ini +++ b/assets/lang/fr_FR.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Contient déjà des données PSP Cancelled - try again = Annulé - réessayer +Checking... = Checking... Create or Choose a PSP folder = Créer ou choisir un dossier PSP Current = Current DataCanBeShared = Les données peuvent être partagées entre PPSSPP régulier/Gold DataCannotBeShared = Les données NE PEUVENT PAS être partagées entre PPSSPP régulier/Gold! DataWillBeLostOnUninstall = Avertissement! Les données seront perdues lorsque vous désinstallez PPSSPP! DataWillStay = Les données resteront même si vous désinstallez PPSSPP. +Deleting... = Deleting... Done! = Terminé! EasyUSBAccess = Easy USB access Failed to move some files! = Impossible de déplacer certains fichiers! diff --git a/assets/lang/gl_ES.ini b/assets/lang/gl_ES.ini index f26d9481571c..670c8fe263fe 100644 --- a/assets/lang/gl_ES.ini +++ b/assets/lang/gl_ES.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/gr_EL.ini b/assets/lang/gr_EL.ini index 06c5203fd6a7..2482d98b58c9 100644 --- a/assets/lang/gr_EL.ini +++ b/assets/lang/gr_EL.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/he_IL.ini b/assets/lang/he_IL.ini index ec5c9286487e..b010e614fe90 100644 --- a/assets/lang/he_IL.ini +++ b/assets/lang/he_IL.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/he_IL_invert.ini b/assets/lang/he_IL_invert.ini index 653b2a0100f6..06f28f5087ad 100644 --- a/assets/lang/he_IL_invert.ini +++ b/assets/lang/he_IL_invert.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/hr_HR.ini b/assets/lang/hr_HR.ini index 6d53c5a169fa..e0648472c325 100644 --- a/assets/lang/hr_HR.ini +++ b/assets/lang/hr_HR.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/hu_HU.ini b/assets/lang/hu_HU.ini index ab57703a2b3e..4c65e3194186 100644 --- a/assets/lang/hu_HU.ini +++ b/assets/lang/hu_HU.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/id_ID.ini b/assets/lang/id_ID.ini index 98877be8cd28..3ad464cf1ee7 100644 --- a/assets/lang/id_ID.ini +++ b/assets/lang/id_ID.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Sudah berisi data PSP Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Buat atau Pilih berkas PSP Current = Saat ini DataCanBeShared = Data bisa dibagikan antar PPSSPP reguler/emas DataCannotBeShared = Data tidak bisa dibagi antar PPSSPP reguler/emas! DataWillBeLostOnUninstall = Peringatan! Data akan hilang ketika Anda menghapus PPSSPP! DataWillStay = Data akan tetap ada meskipun Anda menghapus PPSSPP. +Deleting... = Deleting... Done! = Selesai! EasyUSBAccess = Akses mudah USB Failed to move some files! = Gagal memindahkan beberapa berkas! diff --git a/assets/lang/it_IT.ini b/assets/lang/it_IT.ini index 1de4af2b8bfc..49dd39806521 100644 --- a/assets/lang/it_IT.ini +++ b/assets/lang/it_IT.ini @@ -1019,12 +1019,14 @@ written = Scritto in C++ per velocità e portabilità [MemStick] Already contains PSP data = Contiene già dati PSP Cancelled - try again = Annullato - prova di nuovo +Checking... = Checking... Create or Choose a PSP folder = Scegli o crea una cartella PSP Current = Corrente DataCanBeShared = I dati possono essere condivisi tra PPSSPP normale/Gold DataCannotBeShared = I dati NON possono essere condivisi tra PPSSPP normale/Gold! DataWillBeLostOnUninstall = Attenzione! I dati andranno persi quando disinstalli PPSSPP! DataWillStay = I dati rimarranno anche se disinstalli PPSSPP. +Deleting... = Deleting... Done! = Fatto! EasyUSBAccess = Facile accesso tramite USB Failed to move some files! = Il trasferimento di alcuni file è fallito! diff --git a/assets/lang/ja_JP.ini b/assets/lang/ja_JP.ini index 66a2a5afdd26..f216c104992e 100644 --- a/assets/lang/ja_JP.ini +++ b/assets/lang/ja_JP.ini @@ -1018,10 +1018,12 @@ written = 速度と移植性を保つためにC++で書かれています [MemStick] Already contains PSP data = 既にPSPデータが存在しています。 Cancelled - try again = Cancelled - try again +Checking... = Checking... Current = 現在の DataWillStay = データはPPSSPPをアンインストールしても残ります。 DataCanBeShared = 通常版/ゴールド間でのデータの共有が可能です。 DataCannotBeShared = 通常版/ゴールド間でのデータの共有は「できません」。 +Deleting... = Deleting... Done! = 完了! EasyUSBAccess = PCとのUSB接続でフォルダにアクセスが簡単にできます。 Failed to move some files! = いくつかのファイルの移動に失敗しました! diff --git a/assets/lang/jv_ID.ini b/assets/lang/jv_ID.ini index b8971adcfca7..6328228cf334 100644 --- a/assets/lang/jv_ID.ini +++ b/assets/lang/jv_ID.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/ko_KR.ini b/assets/lang/ko_KR.ini index e6088c328936..c34c54f7c903 100644 --- a/assets/lang/ko_KR.ini +++ b/assets/lang/ko_KR.ini @@ -1001,12 +1001,14 @@ written = 속도와 이식성을 위해 C++로 작성되었습니다. [MemStick] Already contains PSP data = 이미 PSP 데이터가 포함되어 있습니다. Cancelled - try again = 취소됨 - 다시 시도 +Checking... = Checking... Create or Choose a PSP folder = PSP 폴더 생성 또는 선택 Current = 현재 DataCanBeShared = PPSSPP 레귤러/골드 간에 데이터 공유 가능 DataCannotBeShared = PPSSPP 레귤러/골드 간에 데이터를 공유할 수 없습니다! DataWillBeLostOnUninstall = 경고! PPSSPP를 제거하면 데이터가 손실됩니다! DataWillStay = PPSSPP를 제거해도 데이터는 유지됩니다. +Deleting... = Deleting... Done! = 완료! EasyUSBAccess = 쉬운 USB 접속 Failed to move some files! = 일부 파일을 이동하지 못했습니다! diff --git a/assets/lang/lo_LA.ini b/assets/lang/lo_LA.ini index b530fcb3c98b..18483abc7da0 100644 --- a/assets/lang/lo_LA.ini +++ b/assets/lang/lo_LA.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/lt-LT.ini b/assets/lang/lt-LT.ini index 691196de95fe..aa9cf42f69a8 100644 --- a/assets/lang/lt-LT.ini +++ b/assets/lang/lt-LT.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/ms_MY.ini b/assets/lang/ms_MY.ini index c594d0d81681..305ed2288943 100644 --- a/assets/lang/ms_MY.ini +++ b/assets/lang/ms_MY.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/nl_NL.ini b/assets/lang/nl_NL.ini index 47bfd52101e5..dc5ac1358182 100644 --- a/assets/lang/nl_NL.ini +++ b/assets/lang/nl_NL.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/no_NO.ini b/assets/lang/no_NO.ini index 87c206100a99..955586c93bf2 100644 --- a/assets/lang/no_NO.ini +++ b/assets/lang/no_NO.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/pl_PL.ini b/assets/lang/pl_PL.ini index 8ad730935f35..840341653ca9 100644 --- a/assets/lang/pl_PL.ini +++ b/assets/lang/pl_PL.ini @@ -845,12 +845,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Już zawiera dane PSP Cancelled - try again = Anulowano - spróbuj ponownie +Checking... = Checking... Create or Choose a PSP folder = Utwórz lub Wybierz folder PSP Current = Obecny DataCanBeShared = Dane mogą być udostępniane pomiędzy zwykłą wersją PPSSPP, a wersją Gold DataCannotBeShared = Dane NIE mogą być udostępniane pomiędzy zwykłą wersją PPSSPP, a wersją Gold! DataWillBeLostOnUninstall = Uwaga! Utracisz wszystkie dane po odinstalowaniu PPSSPP! DataWillStay = Dane zostaną na urządzeniu, nawet po odinstalowaniu PPSSPP. +Deleting... = Deleting... Done! = Ukończono! EasyUSBAccess = Łatwy dostęþ do USB Failed to move some files! = Nie udało się przenieść niektórych plików! diff --git a/assets/lang/pt_BR.ini b/assets/lang/pt_BR.ini index 31b09979bb5b..bcb630d4461d 100644 --- a/assets/lang/pt_BR.ini +++ b/assets/lang/pt_BR.ini @@ -1025,12 +1025,14 @@ written = Escrito em C++ pela velocidade e portabilidade [MemStick] Already contains PSP data = Já contém dados do PSP Cancelled - try again = Cancelado - tente de novo +Checking... = Checking... Create or Choose a PSP folder = Criar ou escolher uma pasta do PSP Current = Atual DataCanBeShared = Os dados podem ser compartilhados entre o PPSSPP regular/Gold DataCannotBeShared = Os dados NÃO PODEM ser compartilhados entre o PPSSPP regular/Gold! DataWillBeLostOnUninstall = Aviso! Os dados serão perdidos quando você desinstalar o PPSSPP! DataWillStay = Os dados permanecerão mesmo se você desinstalar o PPSSPP. +Deleting... = Deleting... Done! = Concluído! EasyUSBAccess = Acesso fácil ao USB Failed to move some files! = Falhou em mover alguns arquivos! diff --git a/assets/lang/pt_PT.ini b/assets/lang/pt_PT.ini index e1ab88caf8c1..6eedb8dc4c33 100644 --- a/assets/lang/pt_PT.ini +++ b/assets/lang/pt_PT.ini @@ -1044,12 +1044,14 @@ written = PPSSPP foi escrito em C++ pela sua velocidade e portabilidade [MemStick] Already contains PSP data = Já contém dados da PSP Cancelled - try again = Cancelado - tenta de novo +Checking... = Checking... Create or Choose a PSP folder = Criar ou escolher uma pasta da PSP Current = Atual DataCanBeShared = Os dados podem ser partilhados entre o PPSSPP Regular/Gold DataCannotBeShared = Os dados não podem ser partilhados entre o PPSSPP Regular/Gold DataWillBeLostOnUninstall = Aviso! Os dados serão perdidos quando desinstalares o PPSSPP! DataWillStay = Os dados permanecerão intactos mesmo se desinstalares o PPSSPP. +Deleting... = Deleting... Done! = Concluído! EasyUSBAccess = Acesso fácil ao USB Failed to move some files! = Erro ao mover alguns ficheiros! diff --git a/assets/lang/ro_RO.ini b/assets/lang/ro_RO.ini index 1fef8f0eb293..b0218da350fc 100644 --- a/assets/lang/ro_RO.ini +++ b/assets/lang/ro_RO.ini @@ -841,12 +841,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/ru_RU.ini b/assets/lang/ru_RU.ini index 63a3150059cf..486dadbf45a5 100644 --- a/assets/lang/ru_RU.ini +++ b/assets/lang/ru_RU.ini @@ -1018,12 +1018,14 @@ written = Написан на C++ для скорости и портируем [MemStick] Already contains PSP data = Уже содержит данные PSP Cancelled - try again = Отменено - попробуйте еще раз +Checking... = Checking... Create or Choose a PSP folder = Создайте или выберите папку PSP Current = Текущая DataCanBeShared = Данные могут передаваться между обычным PPSSPP и Gold DataCannotBeShared = Данные НЕ МОГУТ передаваться между обычным PPSSPP и Gold! DataWillBeLostOnUninstall = Внимание! Данные будут утеряны, если вы удалите PPSSPP! DataWillStay = Данные останутся, даже если вы удалите PPSSPP +Deleting... = Deleting... Done! = Завершено! EasyUSBAccess = Простой доступ к USB Failed to move some files! = Не получилось переместить некоторые файлы! diff --git a/assets/lang/sv_SE.ini b/assets/lang/sv_SE.ini index fdf95a94259a..f836763b6f4d 100644 --- a/assets/lang/sv_SE.ini +++ b/assets/lang/sv_SE.ini @@ -1019,12 +1019,14 @@ Spanish = Spanska [MemStick] Already contains PSP data = Innehåller redan PSP-data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Skapa eller välj en PSP-mapp Current = Nuvarande DataCanBeShared = Data kan delas mellan PPSSPP vanlig/Gold DataCannotBeShared = Data KAN INTE delas mellan PPSSPP vanlig/Gold! DataWillBeLostOnUninstall = Varning! Data kommer förloras om du avinstallerar PPSSPP! DataWillStay = Data stannar kvar även om du avinstallerar PPSSPP. +Deleting... = Deleting... Done! = Klar! EasyUSBAccess = Lätt åtkomst via USB Failed to move some files! = Misslyckades att flytta några filer! diff --git a/assets/lang/tg_PH.ini b/assets/lang/tg_PH.ini index 040a221f7b31..bee703afb429 100644 --- a/assets/lang/tg_PH.ini +++ b/assets/lang/tg_PH.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/th_TH.ini b/assets/lang/th_TH.ini index 8dc7a2874f48..d816d0ca7ce5 100644 --- a/assets/lang/th_TH.ini +++ b/assets/lang/th_TH.ini @@ -840,12 +840,14 @@ Wlan = เครือข่าย [MemStick] Already contains PSP data = มีข้อมูลอยู่ข้างในนั้น Cancelled - try again = ถูกยกเลิกแล้ว - ลองอีกครั้ง +Checking... = Checking... Create or Choose a PSP folder = สร้างหรือเลือกโฟลเดอร์เก็บข้อมูล PSP Current = ที่ใช้อยู่ DataCanBeShared = ข้อมูลสามารถใช้งานร่วมกันได้ ทั้งใน PPSSPP ตัวสีฟ้า/สีทอง DataCannotBeShared = ข้อมูลไม่สามารถใช้งานร่วมกันได้ ทั้งใน PPSSPP ตัวสีฟ้า/สีทอง! DataWillBeLostOnUninstall = คำเตือน! ข้อมูลอาจจะสูญหาย เมื่อคุณถอนการติดตั้ง PPSSPP! DataWillStay = ข้อมูลจะยังคงอยู่ ถึงแม้ว่าจะถอนการติดตั้ง PPSSPP ออกไปแล้ว +Deleting... = Deleting... Done! = เรียบร้อย! EasyUSBAccess = การเข้าถึงข้อมูลทำได้ง่าย Failed to move some files! = ล้มเหลวในการย้ายบางไฟล์! diff --git a/assets/lang/tr_TR.ini b/assets/lang/tr_TR.ini index c868f0fdaa43..55894458a36c 100644 --- a/assets/lang/tr_TR.ini +++ b/assets/lang/tr_TR.ini @@ -842,12 +842,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Zaten PSP verisi içeriyor Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Bir PSP klasörü oluştur veya seç Current = Current DataCanBeShared = Veri PPSSPP normal/Gold arasında paylaşılabilir DataCannotBeShared = Veri PPSSPP normal/Gold arasında PAYLAŞILAMAZ! DataWillBeLostOnUninstall = Uyarı! PPSSPP'yi kaldırdığınızda veriler kaybolacak! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Tamamlandı! EasyUSBAccess = Kolay USB erişimi Failed to move some files! = Bazı dosyalar taşınamadı! diff --git a/assets/lang/uk_UA.ini b/assets/lang/uk_UA.ini index 6eb68d07c0bd..7012e5d507a2 100644 --- a/assets/lang/uk_UA.ini +++ b/assets/lang/uk_UA.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/vi_VN.ini b/assets/lang/vi_VN.ini index f75889280321..b69ca49182b2 100644 --- a/assets/lang/vi_VN.ini +++ b/assets/lang/vi_VN.ini @@ -840,12 +840,14 @@ Wlan = WLAN [MemStick] Already contains PSP data = Already contains PSP data Cancelled - try again = Cancelled - try again +Checking... = Checking... Create or Choose a PSP folder = Create or Choose a PSP folder Current = Current DataCanBeShared = Data can be shared between PPSSPP regular/Gold DataCannotBeShared = Data CANNOT be shared between PPSSPP regular/Gold! DataWillBeLostOnUninstall = Warning! Data will be lost when you uninstall PPSSPP! DataWillStay = Data will stay even if you uninstall PPSSPP. +Deleting... = Deleting... Done! = Done! EasyUSBAccess = Easy USB access Failed to move some files! = Failed to move some files! diff --git a/assets/lang/zh_CN.ini b/assets/lang/zh_CN.ini index 6f77d8b5cb29..4571e7c63d46 100644 --- a/assets/lang/zh_CN.ini +++ b/assets/lang/zh_CN.ini @@ -840,12 +840,14 @@ Wlan = WLAN键 [MemStick] Already contains PSP data = 已含有PSP数据 Cancelled - try again = 已取消 - 请再次重试 +Checking... = Checking... Create or Choose a PSP folder = 创建或者选择PSP文件夹 Current = 目前 DataCanBeShared = 数据可以在普通版/黄金版之间共用 DataCannotBeShared = 数据无法在普通版/黄金版之间共用! DataWillBeLostOnUninstall = 警告!卸载PPSSPP后全部数据将丢失! DataWillStay = 卸载PPSSPP时数据能保留。 +Deleting... = Deleting... Done! = 完成! EasyUSBAccess = USB连接更简单 Failed to move some files! = 无法移动部分文件! diff --git a/assets/lang/zh_TW.ini b/assets/lang/zh_TW.ini index 216b2dcb7fdd..9308b5764e60 100644 --- a/assets/lang/zh_TW.ini +++ b/assets/lang/zh_TW.ini @@ -1018,12 +1018,14 @@ written = 使用 C++ 編寫,以保證建置速度和相容性 [MemStick] Already contains PSP data = 已包含 PSP 資料 Cancelled - try again = 已取消 - 再試一次 +Checking... = Checking... Create or Choose a PSP folder = 建立或選擇 PSP 資料夾 Current = 目前 DataCanBeShared = 資料可在 PPSSPP 標準版/黃金版之間共用 DataCannotBeShared = 資料無法在 PPSSPP 標準版/黃金版之間共用! DataWillBeLostOnUninstall = 警告!資料會在解除安裝 PPSSPP 後遺失! DataWillStay = 資料會在解除安裝 PPSSPP 後保留 +Deleting... = Deleting... Done! = 完成! EasyUSBAccess = USB 輕鬆存取 Failed to move some files! = 無法移動部分檔案!