From dfca8be71b15bc13997110cc8777dd5a84a1fde7 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 21 Sep 2013 19:25:33 +0200 Subject: - esp reader now handles invalid files more gracefully - files moved will now also be treated as "deleted" in the old location so a newly created file with that same name is not created in overwrite - introduced a mechanism by which MO can recognize if it crashed before when attempting to load a plugin. That plugin can be blacklisted so it doesn't get loaded again - plugins can now programaticaly change their settings - plugins can now store data persistently without exposing that data as settings - requesting an unset-setting from a plugin is no longer treated as a bug - clarified warning message for when files are in overwrite directory - the proxyPython plugin will now discover if python initialization crashed MO on a previous session and give the user a chance to fix it or disable the plugin - bugfix: GetModuleFileName modified the buffer past the zero termination. While this doesn't violate the API documentation it is different from the regular windows implementation - bugfix: proxy plugins couldn't access the parent widget - bugfix: when moving a file from overwrite to a mod the in-memory file structure wasn't updated - bugfix: name input dialog for profiles allowed names that weren't valid directory names - bugfix: profile dialog wasn't able to delete profiles if the name started or ended in whitespaces - bugfix: The name-cells for plugin settings could be changed (without effect) - removed a few obsolete files from the repository --- src/mainwindow.cpp | 94 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 9 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 2c5e3707..ffec91a1 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -98,6 +98,7 @@ along with Mod Organizer. If not, see . #include #include #include +#include #ifdef TEST_MODELS @@ -233,6 +234,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget connect(&m_ModList, SIGNAL(modlist_changed(QModelIndex, int)), this, SLOT(modlistChanged(QModelIndex, int))); connect(&m_ModList, SIGNAL(removeSelectedMods()), this, SLOT(removeMod_clicked())); connect(&m_ModList, SIGNAL(requestColumnSelect(QPoint)), this, SLOT(displayColumnSelection(QPoint))); + connect(&m_ModList, SIGNAL(fileMoved(QString, QString, QString)), this, SLOT(fileMoved(QString, QString, QString))); connect(ui->modList, SIGNAL(dropModeUpdate(bool)), &m_ModList, SLOT(dropModeUpdate(bool))); connect(m_ModListSortProxy, SIGNAL(filterActive(bool)), this, SLOT(modFilterActive(bool))); connect(ui->modFilterEdit, SIGNAL(textChanged(QString)), m_ModListSortProxy, SLOT(updateFilter(QString))); @@ -997,6 +999,7 @@ bool MainWindow::registerPlugin(QObject *plugin) { // proxy plugins IPluginProxy *proxy = qobject_cast(plugin); if (verifyPlugin(proxy)) { + proxy->setParentWidget(this); QStringList pluginNames = proxy->pluginList(QCoreApplication::applicationDirPath() + "/" + ToQString(AppConfig::pluginPath())); foreach (const QString &pluginName, pluginNames) { try { @@ -1040,11 +1043,38 @@ void MainWindow::loadPlugins() registerPlugin(plugin); } + QFile loadCheck(QCoreApplication::applicationDirPath() + "/plugin_loadcheck.tmp"); + if (loadCheck.exists() && loadCheck.open(QIODevice::ReadOnly)) { + // oh, there was a failed plugin load last time. Find out which plugin was loaded last + QString fileName; + while (!loadCheck.atEnd()) { + fileName = QString::fromUtf8(loadCheck.readLine().constData()).trimmed(); + } + if (QMessageBox::question(this, tr("Plugin error"), + tr("It appears the plugin \"%1\" failed to load last startup and caused MO to crash. Do you want to disable it?\n" + "(Please note: If this is the first time you see this message for this plugin you may want to give it another try. " + "The plugin may be able to recover from the problem)").arg(fileName), + QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes) == QMessageBox::Yes) { + m_Settings.addBlacklistPlugin(fileName); + } + loadCheck.close(); + } + + loadCheck.open(QIODevice::WriteOnly); + QString pluginPath = QDir::fromNativeSeparators(ToQString(GameInfo::instance().getOrganizerDirectory())) + "/" + ToQString(AppConfig::pluginPath()); qDebug("looking for plugins in %s", QDir::toNativeSeparators(pluginPath).toUtf8().constData()); QDirIterator iter(pluginPath, QDir::Files | QDir::NoDotAndDotDot); + while (iter.hasNext()) { iter.next(); + if (m_Settings.pluginBlacklisted(iter.fileName())) { + qDebug("plugin \"%s\" blacklisted", qPrintable(iter.fileName())); + continue; + } + loadCheck.write(iter.fileName().toUtf8()); + loadCheck.write("\n"); + loadCheck.flush(); QString pluginName = iter.filePath(); if (QLibrary::isLibrary(pluginName)) { QPluginLoader pluginLoader(pluginName); @@ -1063,6 +1093,9 @@ void MainWindow::loadPlugins() } } + // remove the load check file on success + loadCheck.remove(); + m_DownloadManager.setSupportedExtensions(m_InstallationManager.getSupportedExtensions()); m_DiagnosisPlugins.push_back(this); @@ -1172,6 +1205,21 @@ QVariant MainWindow::pluginSetting(const QString &pluginName, const QString &key return m_Settings.pluginSetting(pluginName, key); } +void MainWindow::setPluginSetting(const QString &pluginName, const QString &key, const QVariant &value) +{ + m_Settings.setPluginSetting(pluginName, key, value); +} + +QVariant MainWindow::persistent(const QString &pluginName, const QString &key, const QVariant &def) const +{ + return m_Settings.pluginPersistent(pluginName, key, def); +} + +void MainWindow::setPersistent(const QString &pluginName, const QString &key, const QVariant &value, bool sync) +{ + m_Settings.setPluginPersistent(pluginName, key, value, sync); +} + QString MainWindow::pluginDataPath() const { QString pluginPath = QDir::fromNativeSeparators(ToQString(GameInfo::instance().getOrganizerDirectory())) + "/" + ToQString(AppConfig::pluginPath()); @@ -1273,11 +1321,9 @@ void MainWindow::spawnBinary(const QFileInfo &binary, const QString &arguments, this->setEnabled(true); refreshDirectoryStructure(); - refreshDataTree(); if (GameInfo::instance().getLoadOrderMechanism() == GameInfo::TYPE_FILETIME) { QFile::remove(m_CurrentProfile->getLoadOrderFileName()); } - refreshLists(); dialog->hide(); } } @@ -1622,11 +1668,15 @@ void MainWindow::refreshESPList() m_CurrentProfile->writeModlist(); // clear list - m_PluginList.refresh(m_CurrentProfile->getName(), - *m_DirectoryStructure, - m_CurrentProfile->getPluginsFileName(), - m_CurrentProfile->getLoadOrderFileName(), - m_CurrentProfile->getLockedOrderFileName()); + try { + m_PluginList.refresh(m_CurrentProfile->getName(), + *m_DirectoryStructure, + m_CurrentProfile->getPluginsFileName(), + m_CurrentProfile->getLoadOrderFileName(), + m_CurrentProfile->getLockedOrderFileName()); + } catch (const std::exception &e) { + reportError(tr("Failed to refresh list of esps: %s").arg(e.what())); + } } @@ -1926,7 +1976,6 @@ void MainWindow::on_btnRefreshData_clicked() { if (!m_DirectoryUpdate) { refreshDirectoryStructure(); - refreshDataTree(); } else { qDebug("directory update"); } @@ -2331,8 +2380,12 @@ void MainWindow::directory_refreshed() { DirectoryEntry *newStructure = m_DirectoryRefresher.getDirectoryStructure(); if (newStructure != NULL) { - delete m_DirectoryStructure; + DirectoryEntry *oldStructure = m_DirectoryStructure; m_DirectoryStructure = newStructure; + delete oldStructure; + + refreshDataTree(); + refreshLists(); } else { // TODO: don't know why this happens, this slot seems to get called twice with only one emit return; @@ -2541,6 +2594,29 @@ void MainWindow::modlistChanged(int) } +void MainWindow::fileMoved(const QString &filePath, const QString &oldOriginName, const QString &newOriginName) +{ + const FileEntry::Ptr filePtr = m_DirectoryStructure->findFile(ToWString(filePath)); + if (filePtr.get() != NULL) { + try { + FilesOrigin &oldOrigin = m_DirectoryStructure->getOriginByName(ToWString(oldOriginName)); + FilesOrigin &newOrigin = m_DirectoryStructure->getOriginByName(ToWString(newOriginName)); + + QString fullNewPath = ToQString(newOrigin.getPath()) + "\\" + filePath; + WIN32_FIND_DATAW findData; + ::FindFirstFileW(ToWString(fullNewPath).c_str(), &findData); + + filePtr->addOrigin(newOrigin.getID(), findData.ftCreationTime, L""); + filePtr->removeOrigin(oldOrigin.getID()); + } catch (const std::exception &e) { + reportError(tr("Failed to move \"%1\" from mod \"%2\" to \"%3\": %4").arg(filePath).arg(oldOriginName).arg(newOriginName).arg(e.what())); + } + } else { + reportError(tr("Failed to relocate \"%1\"").arg(filePath)); + } +} + + QTreeWidgetItem *MainWindow::addFilterItem(QTreeWidgetItem *root, const QString &name, int categoryID) { QTreeWidgetItem *item = new QTreeWidgetItem(QStringList(name)); -- cgit v1.3.1 From c57b172204432f18856ef05d8faa9ebf3001b0c8 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 22 Sep 2013 13:10:21 +0200 Subject: - removed some obsolete code - MO will no longer start an application while the directory structure is being refreshed because MO may need to access profile files afterwards - bugfix: the overwrite info-dialog was not destroyed and could thus keep a lock on files thus preventing those files from being moved/deleted --- src/mainwindow.cpp | 21 ++++++++++++++++++--- src/mainwindow.h | 1 + 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index ffec91a1..fdd16049 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1272,6 +1272,11 @@ HANDLE MainWindow::spawnBinaryDirect(const QFileInfo &binary, const QString &arg } } + while (m_RefreshProgress->isVisible()) { + ::Sleep(1000); + QCoreApplication::processEvents(); + } + return startBinary(binary, arguments, profileName, m_Settings.logLevel(), currentDirectory, true); } @@ -2612,7 +2617,7 @@ void MainWindow::fileMoved(const QString &filePath, const QString &oldOriginName reportError(tr("Failed to move \"%1\" from mod \"%2\" to \"%3\": %4").arg(filePath).arg(oldOriginName).arg(newOriginName).arg(e.what())); } } else { - reportError(tr("Failed to relocate \"%1\"").arg(filePath)); + // this is probably not an error, the specified path is likely a directory } } @@ -2871,6 +2876,15 @@ void MainWindow::unendorse_clicked() } +void MainWindow::overwriteClosed(int) +{ + QDialog *dialog = this->findChild("__overwriteDialog"); + if (dialog != NULL) { + dialog->deleteLater(); + } +} + + void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index, int tab) { std::vector flags = modInfo->getFlags(); @@ -2883,6 +2897,7 @@ void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index, dialog->show(); dialog->raise(); dialog->activateWindow(); + connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int))); } else { ModInfoDialog dialog(modInfo, m_DirectoryStructure, this); connect(&dialog, SIGNAL(nexusLinkActivated(QString)), this, SLOT(nexusLinkActivated(QString))); @@ -3100,8 +3115,8 @@ void MainWindow::createModFromOverwrite() } ModInfo::Ptr overwriteInfo = ModInfo::getByIndex(m_ContextRow); - - shellMove(QStringList(overwriteInfo->absolutePath() + "\\*"), QStringList(newMod->absolutePath()), this); + shellMove(QStringList(QDir::toNativeSeparators(overwriteInfo->absolutePath()) + "\\*"), + QStringList(QDir::toNativeSeparators(newMod->absolutePath())), this); refreshModList(); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 54ae0e96..80dca172 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -464,6 +464,7 @@ private slots: void toolBar_customContextMenuRequested(const QPoint &point); void removeFromToolbar(); + void overwriteClosed(int); private slots: // ui slots // actions -- cgit v1.3.1 From f4528c7aaab81d904977666a475899ab153137f9 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 23 Sep 2013 22:39:58 +0200 Subject: - bugfix: esp parsing could crash for broken/unrecognized esps - bugfix: esp parser didn't handle oblivion esps correctly --- src/mainwindow.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index fdd16049..601ec5c5 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2004,6 +2004,10 @@ void MainWindow::on_tabWidget_currentChanged(int index) void MainWindow::installMod(const QString &fileName) { + if (m_CurrentProfile == NULL) { + return; + } + bool hasIniTweaks = false; GuessedValue modName; m_CurrentProfile->writeModlistNow(); -- cgit v1.3.1 From 47293827bbd92ce227e5188c10b66deb9f85d5bf Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 28 Sep 2013 21:13:57 +0200 Subject: - download progress is now visible in task bar - esp-tooltip now lists all masters, highlighting the missing ones - python plugin will now report a problem if the path contains a semicolon - leak detection now (somewaht) works around the fact that we don't always get a stack trace - bugfix: mod meta-file is now reliably created if it was missing - bugfix: parser for nxm-links didn't handle numbers in the mod name - bugfix: small memory leak --- src/downloadmanager.cpp | 4 ++++ src/downloadmanager.h | 2 ++ src/mainwindow.cpp | 2 -- src/modinfo.cpp | 39 +++++++++++++++++---------------------- src/pluginlist.cpp | 7 ++++++- src/shared/directoryentry.cpp | 7 +++++-- src/shared/leaktrace.cpp | 37 ++++++++++++++++++++++++++++--------- src/shared/leaktrace.h | 4 ++-- src/version.rc | 4 ++-- 9 files changed, 66 insertions(+), 40 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index c8f118f6..bbb34ccc 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -22,6 +22,7 @@ along with Mod Organizer. If not, see . #include "nxmurl.h" #include #include +#include #include "utility.h" #include "json.h" #include "selectiondialog.h" @@ -63,6 +64,7 @@ DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createNew(const Ne info->m_CurrentUrl = 0; info->m_Tries = AUTOMATIC_RETRIES; info->m_State = STATE_STARTED; + info->m_TaskProgressId = TaskProgressManager::instance().getId(); return info; } @@ -105,6 +107,7 @@ DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createFromMeta(con info->m_CurrentUrl = 0; info->m_Urls = metaFile.value("url", "").toString().split(";"); info->m_Tries = 0; + info->m_TaskProgressId = TaskProgressManager::instance().getId(); info->m_NexusInfo.m_Name = metaFile.value("name", 0).toString(); info->m_NexusInfo.m_ModName = metaFile.value("modName", "").toString(); info->m_NexusInfo.m_Version = metaFile.value("version", 0).toString(); @@ -805,6 +808,7 @@ void DownloadManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) } int oldProgress = info->m_Progress; info->m_Progress = ((info->m_ResumePos + bytesReceived) * 100) / (info->m_ResumePos + bytesTotal); + TaskProgressManager::instance().updateProgress(info->m_TaskProgressId, bytesReceived, bytesTotal); if (oldProgress != info->m_Progress) { emit update(index); } diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 92ba3143..0d49aa35 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -98,6 +98,8 @@ private: int m_Tries; bool m_ReQueried; + quint32 m_TaskProgressId; + NexusInfo m_NexusInfo; static DownloadInfo *createNew(const NexusInfo &nexusInfo, int modID, int fileID, const QStringList &URLs); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 601ec5c5..b722b388 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -149,7 +149,6 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget m_GameInfo(new GameInfoImpl()) { ui->setupUi(this); - this->setWindowTitle(ToQString(GameInfo::instance().getGameName()).append(" Mod Organizer v").append(m_Updater.getVersion().canonicalString())); m_RefreshProgress = new QProgressBar(statusBar()); @@ -3194,7 +3193,6 @@ bool MainWindow::addCategories(QMenu *menu, int targetID) return childEnabled; } - void MainWindow::saveCategoriesFromMenu(QMenu *menu, int modRow) { ModInfo::Ptr modInfo = ModInfo::getByIndex(modRow); diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 166c815b..7632a86e 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -350,8 +350,6 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc ModInfoRegular::~ModInfoRegular() { try { - //TODO this may cause the meta-file and the directory to be - // re-created after a remove saveMeta(); } catch (const std::exception &e) { qCritical("failed to save meta information for \"%s\": %s", @@ -371,28 +369,25 @@ bool ModInfoRegular::isEmpty() const void ModInfoRegular::saveMeta() { - if (m_MetaInfoChanged) { - if (QFile::exists(absolutePath().append("/meta.ini"))) { - QSettings metaFile(absolutePath().append("/meta.ini"), QSettings::IniFormat); - if (metaFile.status() == QSettings::NoError) { - std::set temp = m_Categories; - temp.erase(m_PrimaryCategory); - metaFile.setValue("category", QString("%1").arg(m_PrimaryCategory) + "," + SetJoin(temp, ",")); - metaFile.setValue("newestVersion", m_NewestVersion.canonicalString()); - metaFile.setValue("version", m_Version.canonicalString()); - metaFile.setValue("modid", m_NexusID); - metaFile.setValue("notes", m_Notes); - metaFile.setValue("nexusDescription", m_NexusDescription); - metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate)); - if (m_EndorsedState != ENDORSED_UNKNOWN) { - metaFile.setValue("endorsed", m_EndorsedState); - } - - } else { - reportError(tr("failed to write %1/meta.ini: %2").arg(absolutePath()).arg(metaFile.status())); + // only write meta data if the mod directory exists + if (m_MetaInfoChanged && QFile::exists(absolutePath())) { + QSettings metaFile(absolutePath().append("/meta.ini"), QSettings::IniFormat); + if (metaFile.status() == QSettings::NoError) { + std::set temp = m_Categories; + temp.erase(m_PrimaryCategory); + metaFile.setValue("category", QString("%1").arg(m_PrimaryCategory) + "," + SetJoin(temp, ",")); + metaFile.setValue("newestVersion", m_NewestVersion.canonicalString()); + metaFile.setValue("version", m_Version.canonicalString()); + metaFile.setValue("modid", m_NexusID); + metaFile.setValue("notes", m_Notes); + metaFile.setValue("nexusDescription", m_NexusDescription); + metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate)); + if (m_EndorsedState != ENDORSED_UNKNOWN) { + metaFile.setValue("endorsed", m_EndorsedState); } + metaFile.sync(); // sync needs to be called to ensure the file is created } else { - qWarning("mod %s has no meta.ini at %s/meta.ini", m_Name.toUtf8().constData(), absolutePath().toUtf8().constData()); + reportError(tr("failed to write %1/meta.ini: %2").arg(absolutePath()).arg(metaFile.status())); } m_MetaInfoChanged = false; } diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 0ed0d7f9..39cca6af 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -675,8 +675,13 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const } else { QString text = tr("Origin: %1").arg(m_ESPs[index].m_OriginName); if (m_ESPs[index].m_MasterUnset.size() > 0) { - text += "\n" + tr("Missing Masters") + ": " + SetJoin(m_ESPs[index].m_MasterUnset, ", "); + text += "
" + tr("Missing Masters") + ": " + SetJoin(m_ESPs[index].m_MasterUnset, ", ") + ""; } + std::set enabledMasters; + std::set_difference(m_ESPs[index].m_Masters.begin(), m_ESPs[index].m_Masters.end(), + m_ESPs[index].m_MasterUnset.begin(), m_ESPs[index].m_MasterUnset.end(), + std::inserter(enabledMasters, enabledMasters.end())); + text += "
" + tr("Enabled Masters") + ": " + SetJoin(enabledMasters, ", "); return text; } } else { diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp index bd33fef6..8380181f 100644 --- a/src/shared/directoryentry.cpp +++ b/src/shared/directoryentry.cpp @@ -568,8 +568,9 @@ void DirectoryEntry::removeDirRecursive() for (auto iter = m_SubDirectories.begin(); iter != m_SubDirectories.end(); ++iter) { (*iter)->removeDirRecursive(); + delete *iter; } - m_SubDirectories.clear(); + m_SubDirectories.clear(); } void DirectoryEntry::removeDir(const std::wstring &path) @@ -578,8 +579,10 @@ void DirectoryEntry::removeDir(const std::wstring &path) if (pos == std::string::npos) { for (auto iter = m_SubDirectories.begin(); iter != m_SubDirectories.end(); ++iter) { if (_wcsicmp((*iter)->getName().c_str(), path.c_str()) == 0) { - (*iter)->removeDirRecursive(); + DirectoryEntry *entry = *iter; + entry->removeDirRecursive(); m_SubDirectories.erase(iter); + delete entry; break; } } diff --git a/src/shared/leaktrace.cpp b/src/shared/leaktrace.cpp index 0c618b68..83ed4fd0 100644 --- a/src/shared/leaktrace.cpp +++ b/src/shared/leaktrace.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include @@ -32,8 +33,18 @@ class StackData { friend bool operator==(const StackData &LHS, const StackData &RHS); friend bool operator<(const StackData &LHS, const StackData &RHS); public: - StackData() { + + StackData() + : m_FunctionName("Dummy"), m_CodeLine(0) + {} + StackData(const char *functionName, int line) { m_Count = ::CaptureStackBackTrace(FRAMES_TO_SKIP, FRAMES_TO_CAPTURE, m_Stack, &m_Hash); + m_FunctionName = functionName; + m_CodeLine = line; + if (m_Count == 0) { + // TODO in this case the hash doesn't seem to be set. This is of course not a good solution + m_Hash = reinterpret_cast(m_FunctionName) + m_CodeLine; + } } std::string toString() const { initDbgIfNecessary(); @@ -45,6 +56,8 @@ public: std::ostringstream stackStream; + stackStream << m_FunctionName << " [" << m_CodeLine << "]\n"; + for(unsigned int i = 0; i < m_Count; ++i) { DWORD64 displacement = 0; if (!::SymFromAddr(::GetCurrentProcess(), (DWORD64)m_Stack[i], &displacement, symbol)) { @@ -59,6 +72,8 @@ private: LPVOID m_Stack[FRAMES_TO_CAPTURE]; USHORT m_Count; ULONG m_Hash; + const char *m_FunctionName; + int m_CodeLine; }; bool operator==(const StackData &LHS, const StackData &RHS) { @@ -70,10 +85,9 @@ bool operator<(const StackData &LHS, const StackData &RHS) { } - static struct __TraceData { - void regTrace(void *pointer) { - m_Traces[reinterpret_cast(pointer)] = StackData(); + void regTrace(void *pointer, const char *functionName, int line) { + m_Traces[reinterpret_cast(pointer)] = StackData(functionName, line); } void deregTrace(void *pointer) { auto iter = m_Traces.find(reinterpret_cast(pointer)); @@ -83,14 +97,19 @@ static struct __TraceData { } ~__TraceData() { - std::map result; + std::map > result; for (auto iter = m_Traces.begin(); iter != m_Traces.end(); ++iter) { - result[iter->second] += 1; + result[iter->second].push_back(iter->first); } for (auto iter = result.begin(); iter != result.end(); ++iter) { printf("-----------------------------------\n" "%d objects not freed, allocated at:\n%s", - iter->second, iter->first.toString().c_str()); + iter->second.size(), iter->first.toString().c_str()); + printf("Addresses: "); + for (int i = 0; i < (std::min)(5, iter->second.size()); ++i) { + printf("%p, ", iter->second[i]); + } + printf("\n"); } } @@ -98,9 +117,9 @@ static struct __TraceData { } __trace; -void LeakTrace::TraceAlloc(void *ptr) +void LeakTrace::TraceAlloc(void *ptr, const char *functionName, int line) { - __trace.regTrace(ptr); + __trace.regTrace(ptr, functionName, line); } void LeakTrace::TraceDealloc(void *ptr) diff --git a/src/shared/leaktrace.h b/src/shared/leaktrace.h index 78764260..4985925e 100644 --- a/src/shared/leaktrace.h +++ b/src/shared/leaktrace.h @@ -4,14 +4,14 @@ namespace LeakTrace { -void TraceAlloc(void *ptr); +void TraceAlloc(void *ptr, const char *functionName, int line); void TraceDealloc(void *ptr); }; #ifdef TRACE_LEAKS -#define LEAK_TRACE LeakTrace::TraceAlloc(this) +#define LEAK_TRACE LeakTrace::TraceAlloc(this, __FUNCTION__, __LINE__) #define LEAK_UNTRACE LeakTrace::TraceDealloc(this) #else // TRACE_LEAKS diff --git a/src/version.rc b/src/version.rc index 16e006cf..16669011 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,2,0 -#define VER_FILEVERSION_STR "1,0,2,0\0" +#define VER_FILEVERSION 1,0,4,0 +#define VER_FILEVERSION_STR "1,0,4,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 640b14ef257aa3b681e9c1ba72a88707dfdc7632 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 30 Sep 2013 18:33:45 +0200 Subject: diagnosis plugin now warns when nitpick is installed --- src/mainwindow.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b722b388..24772db1 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1329,6 +1329,7 @@ void MainWindow::spawnBinary(const QFileInfo &binary, const QString &arguments, QFile::remove(m_CurrentProfile->getLoadOrderFileName()); } dialog->hide(); + dialog->deleteLater(); } } } -- cgit v1.3.1 From cffd9eb4e21f0ddcddca68d8eb0f1c80c8ac6ae1 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 5 Oct 2013 14:20:48 +0200 Subject: - hook.dll now doesn't inject to certain applications (currently steam, chrome and firefox) - versioning system improved. Will now report "downgrades" for mods and support a different versioning system (requires manual switch) - updates can now be ignored until a new version is uploaded - new splash screen - bugfix: a few memory leaks (shouldn't account for much) - bugfix: result of GetModuleHandle wasn't zero-terminated in some cases --- src/categories.cpp | 7 ++++ src/categories.h | 4 ++ src/downloadmanager.cpp | 1 + src/installationmanager.cpp | 6 +-- src/main.cpp | 97 ++++++++++++++++++++++++-------------------- src/mainwindow.cpp | 87 +++++++++++++++++++++++++++------------ src/mainwindow.h | 4 ++ src/modinfo.cpp | 30 ++++++++++++-- src/modinfo.h | 49 ++++++++++++++++++++++ src/modinfodialog.cpp | 11 +---- src/modlist.cpp | 34 ++++++++++------ src/modlistsortproxy.cpp | 2 +- src/modlistview.cpp | 4 +- src/nexusinterface.cpp | 10 +++++ src/nexusinterface.h | 1 + src/nxmaccessmanager.cpp | 8 ++++ src/nxmaccessmanager.h | 2 + src/organizer.pro | 7 +++- src/pluginlist.cpp | 4 ++ src/pluginlist.h | 2 + src/profile.cpp | 3 +- src/selfupdater.cpp | 2 - src/shared/gameinfo.cpp | 7 ++++ src/shared/gameinfo.h | 4 +- src/shared/leaktrace.cpp | 1 + src/shared/shared.pro | 10 ++++- src/spawn.cpp | 4 +- src/spawn.h | 4 +- src/splash.png | Bin 103422 -> 260807 bytes 29 files changed, 296 insertions(+), 109 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/categories.cpp b/src/categories.cpp index 62ba3ca5..c084c238 100644 --- a/src/categories.cpp +++ b/src/categories.cpp @@ -43,6 +43,7 @@ QString CategoryFactory::categoriesFilePath() CategoryFactory::CategoryFactory() { + atexit(&cleanup); reset(); QFile categoryFile(categoriesFilePath()); @@ -124,6 +125,12 @@ void CategoryFactory::setParents() } } +void CategoryFactory::cleanup() +{ + delete s_Instance; + s_Instance = NULL; +} + void CategoryFactory::saveCategories() { diff --git a/src/categories.h b/src/categories.h index 75698149..31fccd6d 100644 --- a/src/categories.h +++ b/src/categories.h @@ -180,6 +180,8 @@ private: void setParents(); + static void cleanup(); + private: static CategoryFactory *s_Instance; @@ -188,6 +190,8 @@ private: std::map m_IDMap; std::map m_NexusMap; +private: + }; diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index bbb34ccc..b965d598 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -162,6 +162,7 @@ DownloadManager::~DownloadManager() for (QVector::iterator iter = m_ActiveDownloads.begin(); iter != m_ActiveDownloads.end(); ++iter) { delete *iter; } + m_ActiveDownloads.clear(); } diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp index 378eb38a..87efecf1 100644 --- a/src/installationmanager.cpp +++ b/src/installationmanager.cpp @@ -46,6 +46,7 @@ along with Mod Organizer. If not, see . #include #include #include +#include using namespace MOBase; @@ -678,8 +679,7 @@ bool InstallationManager::install(const QString &fileName, GuessedValue this->m_CurrentArchive->close(); }); - DirectoryTree *filesTree = archiveOpen ? createFilesTree() : NULL; - + QScopedPointer filesTree(archiveOpen ? createFilesTree() : NULL); IPluginInstaller::EInstallResult installResult = IPluginInstaller::RESULT_NOTATTEMPTED; std::sort(m_Installers.begin(), m_Installers.end(), [] (IPluginInstaller *LHS, IPluginInstaller *RHS) { @@ -704,7 +704,7 @@ bool InstallationManager::install(const QString &fileName, GuessedValue (filesTree != NULL) && (installer->isArchiveSupported(*filesTree))) { installResult = installerSimple->install(modName, *filesTree, version, modID); if (installResult == IPluginInstaller::RESULT_SUCCESS) { - mapToArchive(filesTree); + mapToArchive(filesTree.data()); // the simple installer only prepares the installation, the rest works the same for all installers if (!doInstall(modName, modID, version, newestVersion, categoryID)) { installResult = IPluginInstaller::RESULT_FAILED; diff --git a/src/main.cpp b/src/main.cpp index 5a694121..c4431ac4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,6 +18,11 @@ along with Mod Organizer. If not, see . */ +#ifdef LEAK_CHECK_WITH_VLD +#include +#include +#endif // LEAK_CHECK_WITH_VLD + #include #include #include @@ -430,61 +435,65 @@ int main(int argc, char *argv[]) application.setStyleFile(settings.value("Settings/style", "").toString()); - // set up main window and its data structures - MainWindow mainWindow(argv[0], settings); - QObject::connect(&mainWindow, SIGNAL(styleChanged(QString)), &application, SLOT(setStyleFile(QString))); - QObject::connect(&instance, SIGNAL(messageSent(QString)), &mainWindow, SLOT(externalMessage(QString))); + int res = 1; + { // scope to control lifetime of mainwindow + // set up main window and its data structures + MainWindow mainWindow(argv[0], settings); + QObject::connect(&mainWindow, SIGNAL(styleChanged(QString)), &application, SLOT(setStyleFile(QString))); + QObject::connect(&instance, SIGNAL(messageSent(QString)), &mainWindow, SLOT(externalMessage(QString))); - mainWindow.setExecutablesList(executablesList); - mainWindow.readSettings(); + mainWindow.setExecutablesList(executablesList); + mainWindow.readSettings(); - QString selectedProfileName = QString::fromUtf8(settings.value("selected_profile", "").toByteArray()); + QString selectedProfileName = QString::fromUtf8(settings.value("selected_profile", "").toByteArray()); - { // see if there is a profile on the command line - int profileIndex = arguments.indexOf("-p", 1); - if ((profileIndex != -1) && (profileIndex < arguments.size() - 1)) { - qDebug("profile overwritten on command line"); - selectedProfileName = arguments.at(profileIndex + 1); + { // see if there is a profile on the command line + int profileIndex = arguments.indexOf("-p", 1); + if ((profileIndex != -1) && (profileIndex < arguments.size() - 1)) { + qDebug("profile overwritten on command line"); + selectedProfileName = arguments.at(profileIndex + 1); + } + arguments.removeAt(profileIndex); + arguments.removeAt(profileIndex); + } + qDebug("configured profile: %s", qPrintable(selectedProfileName)); + + // if we have a command line parameter, it is either a nxm link or + // a binary to start + if ((arguments.size() > 1) && (!isNxmLink(arguments.at(1)))) { + QString exeName = arguments.at(1); + qDebug("starting %s from command line", qPrintable(exeName)); + arguments.removeFirst(); // remove application name (ModOrganizer.exe) + arguments.removeFirst(); // remove binary name + // pass the remaining parameters to the binary + mainWindow.spawnProgram(exeName, arguments.join(" "), selectedProfileName, QDir()); + return 0; } - arguments.removeAt(profileIndex); - arguments.removeAt(profileIndex); - } - qDebug("configured profile: %s", qPrintable(selectedProfileName)); - - // if we have a command line parameter, it is either a nxm link or - // a binary to start - if ((arguments.size() > 1) && (!isNxmLink(arguments.at(1)))) { - QString exeName = arguments.at(1); - qDebug("starting %s from command line", qPrintable(exeName)); - arguments.removeFirst(); // remove application name (ModOrganizer.exe) - arguments.removeFirst(); // remove binary name - // pass the remaining parameters to the binary - mainWindow.spawnProgram(exeName, arguments.join(" "), selectedProfileName, QDir()); - return 0; - } - mainWindow.createFirstProfile(); + mainWindow.createFirstProfile(); - if (selectedProfileName.length() != 0) { - if (!mainWindow.setCurrentProfile(selectedProfileName)) { + if (selectedProfileName.length() != 0) { + if (!mainWindow.setCurrentProfile(selectedProfileName)) { + mainWindow.setCurrentProfile(1); + qWarning("failed to set profile: %s", + selectedProfileName.toUtf8().constData()); + } + } else { mainWindow.setCurrentProfile(1); - qWarning("failed to set profile: %s", - selectedProfileName.toUtf8().constData()); } - } else { - mainWindow.setCurrentProfile(1); - } - qDebug("displaying main window"); - mainWindow.show(); + qDebug("displaying main window"); + mainWindow.show(); - if ((arguments.size() > 1) && - (isNxmLink(arguments.at(1)))) { - qDebug("starting download from command line: %s", qPrintable(arguments.at(1))); - mainWindow.externalMessage(arguments.at(1)); + if ((arguments.size() > 1) && + (isNxmLink(arguments.at(1)))) { + qDebug("starting download from command line: %s", qPrintable(arguments.at(1))); + mainWindow.externalMessage(arguments.at(1)); + } + splash.finish(&mainWindow); + res = application.exec(); } - splash.finish(&mainWindow); - return application.exec(); + return res; } catch (const std::exception &e) { reportError(e.what()); return 1; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 24772db1..1ea35d74 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -139,8 +139,8 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget : QMainWindow(parent), ui(new Ui::MainWindow), m_Tutorial(this, "MainWindow"), m_ExeName(exeName), m_OldProfileIndex(-1), m_DirectoryStructure(new DirectoryEntry(L"data", NULL, 0)), - m_ModList(NexusInterface::instance()), m_ModListGroupingProxy(NULL), m_ModListSortProxy(NULL), - m_OldExecutableIndex(-1), m_GamePath(ToQString(GameInfo::instance().getGameDirectory())), + m_ModList(this), m_ModListGroupingProxy(NULL), m_ModListSortProxy(NULL), + m_PluginList(this), m_OldExecutableIndex(-1), m_GamePath(ToQString(GameInfo::instance().getGameDirectory())), m_DownloadManager(NexusInterface::instance(), this), m_InstallationManager(this), m_Translator(NULL), m_TranslatorQt(NULL), m_Updater(NexusInterface::instance(), this), m_CategoryFactory(CategoryFactory::instance()), @@ -149,7 +149,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget m_GameInfo(new GameInfoImpl()) { ui->setupUi(this); - this->setWindowTitle(ToQString(GameInfo::instance().getGameName()).append(" Mod Organizer v").append(m_Updater.getVersion().canonicalString())); + this->setWindowTitle(ToQString(GameInfo::instance().getGameName()) + " Mod Organizer v" + m_Updater.getVersion().displayString()); m_RefreshProgress = new QProgressBar(statusBar()); m_RefreshProgress->setTextVisible(true); @@ -255,7 +255,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget connect(&m_Updater, SIGNAL(updateAvailable()), this, SLOT(updateAvailable())); connect(&m_Updater, SIGNAL(motdAvailable(QString)), this, SLOT(motdReceived(QString))); - connect(ExitProxy::instance(), SIGNAL(exit()), this, SLOT(close())); +// connect(ExitProxy::instance(), SIGNAL(exit()), this, SLOT(close())); connect(NexusInterface::instance()->getAccessManager(), SIGNAL(loginSuccessful(bool)), this, SLOT(loginSuccessful(bool))); connect(NexusInterface::instance()->getAccessManager(), SIGNAL(loginFailed(QString)), this, SLOT(loginFailed(QString))); @@ -412,7 +412,7 @@ void MainWindow::actionToToolButton(QAction *&sourceAction) button->setToolButtonStyle(ui->toolBar->toolButtonStyle()); button->setToolTip(sourceAction->toolTip()); button->setShortcut(sourceAction->shortcut()); - QMenu *buttonMenu = new QMenu(sourceAction->text()); + QMenu *buttonMenu = new QMenu(sourceAction->text(), button); button->setMenu(buttonMenu); QAction *newAction = ui->toolBar->insertWidget(sourceAction, button); newAction->setObjectName(sourceAction->objectName()); @@ -1499,6 +1499,8 @@ void MainWindow::updateTo(QTreeWidgetItem *subTree, const std::wstring &director updateTo(directoryChild, temp.str(), **current, conflictsOnly); if (directoryChild->childCount() != 0) { subTree->addChild(directoryChild); + } else { + delete directoryChild; } } } @@ -3069,7 +3071,6 @@ void MainWindow::openExplorer_clicked() ::ShellExecuteW(NULL, L"explore", ToWString(modInfo->absolutePath()).c_str(), NULL, NULL, SW_SHOWNORMAL); } - void MainWindow::information_clicked() { try { @@ -3079,7 +3080,6 @@ void MainWindow::information_clicked() } } - void MainWindow::syncOverwrite() { ModInfo::Ptr modInfo = ModInfo::getByIndex(m_ContextRow); @@ -3091,7 +3091,6 @@ void MainWindow::syncOverwrite() } } - void MainWindow::createModFromOverwrite() { GuessedValue name; @@ -3125,14 +3124,12 @@ void MainWindow::createModFromOverwrite() refreshModList(); } - void MainWindow::cancelModListEditor() { ui->modList->setEnabled(false); ui->modList->setEnabled(true); } - void MainWindow::on_modList_doubleClicked(const QModelIndex &index) { if (!index.isValid()) { @@ -3155,7 +3152,6 @@ void MainWindow::on_modList_doubleClicked(const QModelIndex &index) } } - bool MainWindow::addCategories(QMenu *menu, int targetID) { ModInfo::Ptr modInfo = ModInfo::getByIndex(m_ContextRow); @@ -3210,7 +3206,6 @@ void MainWindow::saveCategoriesFromMenu(QMenu *menu, int modRow) } } - void MainWindow::saveCategories() { QMenu *menu = qobject_cast(sender()); @@ -3254,8 +3249,6 @@ void MainWindow::saveCategories() refreshFilters(); } - - void MainWindow::savePrimaryCategory() { QMenu *menu = qobject_cast(sender()); @@ -3280,7 +3273,6 @@ void MainWindow::savePrimaryCategory() } } - void MainWindow::checkModsForUpdates() { statusBar()->show(); @@ -3298,6 +3290,45 @@ void MainWindow::checkModsForUpdates() } } +void MainWindow::changeVersioningScheme() { + if (QMessageBox::question(this, tr("Continue?"), + tr("This will try to change the versioning scheme so that the newest version is interpreted as an update to " + "the installed version."), + QMessageBox::Yes | QMessageBox::Cancel) == QMessageBox::Yes) { + + ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow); + + bool success = false; + + static VersionInfo::VersionScheme schemes[] = { VersionInfo::SCHEME_REGULAR, VersionInfo::SCHEME_DECIMALMARK, VersionInfo::SCHEME_NUMBERSANDLETTERS }; + + for (int i = 0; i < sizeof(schemes) / sizeof(VersionInfo::VersionScheme) && !success; ++i) { + VersionInfo verOld(info->getVersion().canonicalString(), schemes[i]); + VersionInfo verNew(info->getNewestVersion().canonicalString(), schemes[i]); + if (verOld < verNew) { + info->setVersion(verOld); + info->setNewestVersion(verNew); + success = true; + } + } + if (!success) { + QMessageBox::information(this, tr("Sorry"), + tr("I don't know a versioning scheme where %1 is newer than %2.").arg(info->getNewestVersion().canonicalString()).arg(info->getVersion().canonicalString()), + QMessageBox::Ok); + } + } +} + +void MainWindow::ignoreUpdate() { + ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow); + info->ignoreUpdate(true); +} + +void MainWindow::unignoreUpdate() +{ + ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow); + info->ignoreUpdate(false); +} void MainWindow::addPrimaryCategoryCandidates(QMenu *primaryCategoryMenu, ModInfo::Ptr info) { @@ -3319,7 +3350,6 @@ void MainWindow::addPrimaryCategoryCandidates(QMenu *primaryCategoryMenu, ModInf } } - void MainWindow::addPrimaryCategoryCandidates() { QMenu *menu = qobject_cast(sender()); @@ -3333,7 +3363,6 @@ void MainWindow::addPrimaryCategoryCandidates() addPrimaryCategoryCandidates(menu, modInfo); } - void MainWindow::enableVisibleMods() { if (QMessageBox::question(NULL, tr("Confirm"), tr("Really enable all visible mods?"), @@ -3342,7 +3371,6 @@ void MainWindow::enableVisibleMods() } } - void MainWindow::disableVisibleMods() { if (QMessageBox::question(NULL, tr("Confirm"), tr("Really disable all visible mods?"), @@ -3351,7 +3379,6 @@ void MainWindow::disableVisibleMods() } } - void MainWindow::exportModListCSV() { SelectionDialog selection(tr("Choose what to export")); @@ -3406,7 +3433,6 @@ void MainWindow::exportModListCSV() } } - void addMenuAsPushButton(QMenu *menu, QMenu *subMenu) { QPushButton *pushBtn = new QPushButton(subMenu->title()); @@ -3416,13 +3442,13 @@ void addMenuAsPushButton(QMenu *menu, QMenu *subMenu) menu->addAction(action); } - void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) { try { QTreeView *modList = findChild("modList"); - m_ContextRow = mapToModel(&m_ModList, modList->indexAt(pos)).row(); + QModelIndex index = mapToModel(&m_ModList, modList->indexAt(pos)); + m_ContextRow = index.row(); QMenu menu; @@ -3461,6 +3487,17 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) connect(primaryCategoryMenu, SIGNAL(aboutToHide()), this, SLOT(savePrimaryCategory())); addMenuAsPushButton(&menu, primaryCategoryMenu); + menu.addSeparator(); + if (info->downgradeAvailable()) { + menu.addAction(tr("Change versioning scheme"), this, SLOT(changeVersioningScheme())); + } + if (info->updateIgnored()) { + menu.addAction(tr("Un-ignore update"), this, SLOT(unignoreUpdate())); + } else { + menu.addAction(tr("Ignore update"), this, SLOT(ignoreUpdate())); + } + menu.addSeparator(); + menu.addAction(tr("Rename Mod..."), this, SLOT(renameMod_clicked())); menu.addAction(tr("Remove Mod..."), this, SLOT(removeMod_clicked())); menu.addAction(tr("Reinstall Mod"), this, SLOT(reinstallMod_clicked())); @@ -4207,9 +4244,9 @@ void MainWindow::on_actionEndorseMO_triggered() void MainWindow::updateDownloadListDelegate() { if (ui->compactBox->isChecked()) { - ui->downloadView->setItemDelegate(new DownloadListWidgetCompactDelegate(&m_DownloadManager, ui->downloadView)); + ui->downloadView->setItemDelegate(new DownloadListWidgetCompactDelegate(&m_DownloadManager, ui->downloadView, ui->downloadView)); } else { - ui->downloadView->setItemDelegate(new DownloadListWidgetDelegate(&m_DownloadManager, ui->downloadView)); + ui->downloadView->setItemDelegate(new DownloadListWidgetDelegate(&m_DownloadManager, ui->downloadView, ui->downloadView)); } DownloadListSortProxy *sortProxy = new DownloadListSortProxy(&m_DownloadManager, ui->downloadView); @@ -4267,7 +4304,7 @@ void MainWindow::nxmUpdatesAvailable(const std::vector &modIDs, QVariant us } else { std::vector info = ModInfo::getByModID(result["id"].toInt()); for (auto iter = info.begin(); iter != info.end(); ++iter) { - (*iter)->setNewestVersion(VersionInfo(result["version"].toString())); + (*iter)->setNewestVersion(result["version"].toString()); (*iter)->setNexusDescription(result["description"].toString()); if (NexusInterface::instance()->getAccessManager()->loggedIn() && result.contains("voted_by_user")) { diff --git a/src/mainwindow.h b/src/mainwindow.h index 80dca172..dfec5f49 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -466,6 +466,10 @@ private slots: void removeFromToolbar(); void overwriteClosed(int); + void changeVersioningScheme(); + void ignoreUpdate(); + void unignoreUpdate(); + private slots: // ui slots // actions void on_actionAdd_Profile_triggered(); diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 7632a86e..1479f7b4 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -303,10 +303,11 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc QString metaFileName = path.absoluteFilePath("meta.ini"); QSettings metaFile(metaFileName, QSettings::IniFormat); - m_Notes = metaFile.value("notes", "").toString(); - m_NexusID = metaFile.value("modid", -1).toInt(); + m_Notes = metaFile.value("notes", "").toString(); + m_NexusID = metaFile.value("modid", -1).toInt(); m_Version.parse(metaFile.value("version", "").toString()); - m_NewestVersion = metaFile.value("newestVersion", "").toString(); + m_NewestVersion = metaFile.value("newestVersion", "").toString(); + m_IgnoredVersion = metaFile.value("ignoredVersion", "").toString(); m_InstallationFile = metaFile.value("installationFile", "").toString(); m_NexusDescription = metaFile.value("nexusDescription", "").toString(); m_LastNexusQuery = QDateTime::fromString(metaFile.value("lastNexusQuery", "").toString(), Qt::ISODate); @@ -377,6 +378,7 @@ void ModInfoRegular::saveMeta() temp.erase(m_PrimaryCategory); metaFile.setValue("category", QString("%1").arg(m_PrimaryCategory) + "," + SetJoin(temp, ",")); metaFile.setValue("newestVersion", m_NewestVersion.canonicalString()); + metaFile.setValue("ignoredVersion", m_IgnoredVersion.canonicalString()); metaFile.setValue("version", m_Version.canonicalString()); metaFile.setValue("modid", m_NexusID); metaFile.setValue("notes", m_Notes); @@ -396,10 +398,22 @@ void ModInfoRegular::saveMeta() bool ModInfoRegular::updateAvailable() const { + if (m_IgnoredVersion.isValid() && (m_IgnoredVersion == m_NewestVersion)) { + return false; + } return m_NewestVersion.isValid() && (m_Version < m_NewestVersion); } +bool ModInfoRegular::downgradeAvailable() const +{ + if (m_IgnoredVersion.isValid() && (m_IgnoredVersion == m_NewestVersion)) { + return false; + } + return m_NewestVersion.isValid() && (m_NewestVersion < m_Version); +} + + void ModInfoRegular::nxmDescriptionAvailable(int, QVariant, QVariant resultData) { QVariantMap result = resultData.toMap(); @@ -576,6 +590,16 @@ QString ModInfoRegular::absolutePath() const return m_Path; } +void ModInfoRegular::ignoreUpdate(bool ignore) +{ + if (ignore) { + m_IgnoredVersion = m_NewestVersion; + } else { + m_IgnoredVersion.clear(); + } + m_MetaInfoChanged = true; +} + std::vector ModInfoRegular::getFlags() const { diff --git a/src/modinfo.h b/src/modinfo.h index 7e217de7..3b83d207 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -192,6 +192,22 @@ public: **/ virtual bool updateAvailable() const = 0; + /** + * @return true if the update currently available is ignored + */ + virtual bool updateIgnored() const = 0; + + /** + * @brief test if the "newest" version of the mod is older than the installed version + * + * test if there is a newer version of the mod. This does NOT cause + * information to be retrieved from the nexus, it will only test version information already + * available locally. Use checkAllForUpdate() to update this version information + * + * @return true if the newest version is older than the installed one + **/ + virtual bool downgradeAvailable() const = 0; + /** * @brief request an update of nexus description for this mod. * @@ -309,6 +325,11 @@ public: **/ virtual MOBase::VersionInfo getNewestVersion() const = 0; + /** + * @brief ignore the newest version for updates + */ + virtual void ignoreUpdate(bool ignore) = 0; + /** * @brief getter for the nexus mod id * @@ -494,6 +515,22 @@ public: **/ bool updateAvailable() const; + /** + * @return true if the current update is being ignored + */ + virtual bool updateIgnored() const { return m_IgnoredVersion == m_NewestVersion; } + + /** + * @brief test if there is a newer version of the mod + * + * test if there is a newer version of the mod. This does NOT cause + * information to be retrieved from the nexus, it will only test version information already + * available locally. Use checkAllForUpdate() to update this version information + * + * @return true if there is a newer version + **/ + bool downgradeAvailable() const; + /** * @brief request an update of nexus description for this mod. * @@ -620,6 +657,11 @@ public: **/ MOBase::VersionInfo getNewestVersion() const { return m_NewestVersion; } + /** + * @brief ignore the newest version for updates + */ + void ignoreUpdate(bool ignore); + /** * @brief getter for the installation file * @@ -746,6 +788,7 @@ private: bool m_MetaInfoChanged; MOBase::VersionInfo m_NewestVersion; + MOBase::VersionInfo m_IgnoredVersion; EEndorsedState m_EndorsedState; @@ -767,10 +810,13 @@ class ModInfoBackup : public ModInfoRegular public: virtual bool updateAvailable() const { return false; } + virtual bool updateIgnored() const { return false; } + virtual bool downgradeAvailable() const { return false; } virtual bool updateNXMInfo() { return false; } virtual void setNexusID(int) {} virtual void endorse(bool) {} virtual int getFixedPriority() const { return -1; } + virtual void ignoreUpdate(bool) {} virtual bool canBeUpdated() const { return false; } virtual bool canBeEnabled() const { return false; } virtual std::vector getIniTweaks() const { return std::vector(); } @@ -798,12 +844,15 @@ class ModInfoOverwrite : public ModInfo public: virtual bool updateAvailable() const { return false; } + virtual bool updateIgnored() const { return false; } + virtual bool downgradeAvailable() const { return false; } virtual bool updateNXMInfo() { return false; } virtual void setCategory(int, bool) {} virtual bool setName(const QString&) { return false; } virtual void setNotes(const QString&) {} virtual void setNexusID(int) {} virtual void setNewestVersion(const MOBase::VersionInfo&) {} + virtual void ignoreUpdate(bool) {} virtual void setNexusDescription(const QString&) {} virtual void setIsEndorsed(bool) {} virtual void setNeverEndorse() {} diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 75e7e499..b4ae57ea 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -76,7 +76,6 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo m_UTF8Codec = QTextCodec::codecForName("utf-8"); QListWidget *textFileList = findChild("textFileList"); - QListWidget *iniFileList = findChild("iniFileList"); QListWidget *iniTweaksList = findChild("iniTweaksList"); QListWidget *activeESPList = findChild("activeESPList"); QListWidget *inactiveESPList = findChild("inactiveESPList"); @@ -707,7 +706,7 @@ QString ModInfoDialog::getFileCategory(int categoryID) void ModInfoDialog::updateVersionColor() { // QPalette versionColor; - if (m_ModInfo->getVersion() < m_ModInfo->getNewestVersion()) { + if (m_ModInfo->getVersion() != m_ModInfo->getNewestVersion()) { ui->versionEdit->setStyleSheet("color: red"); // versionColor.setColor(QPalette::Text, Qt::red); ui->versionEdit->setToolTip(tr("Current Version: %1").arg(m_ModInfo->getNewestVersion().canonicalString())); @@ -758,13 +757,7 @@ void ModInfoDialog::modDetailsUpdated(bool success) ui->descriptionView->setHtml(tr("(description incomplete, please visit nexus)")); } - QString version = m_ModInfo->getNewestVersion().canonicalString(); - - if (!version.isEmpty()) { - m_ModInfo->setNewestVersion(version); - - updateVersionColor(); - } + updateVersionColor(); } } diff --git a/src/modlist.cpp b/src/modlist.cpp index b5a7182e..7367b2ae 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -143,13 +143,16 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const } else if (column == COL_NAME) { return modInfo->name(); } else if (column == COL_VERSION) { - QString version = modInfo->getVersion().canonicalString(); - if (version.isEmpty() && modInfo->canBeUpdated()) { - version = "?"; - } else if (version[0] == 'd') { - version.remove(0, 1); + VersionInfo verInfo = modInfo->getVersion(); + if (role == Qt::EditRole) { + return verInfo.canonicalString(); + } else { + QString version = verInfo.displayString(); + if (version.isEmpty() && modInfo->canBeUpdated()) { + version = "?"; + } + return version; } - return version; } else if (column == COL_PRIORITY) { int priority = modInfo->getFixedPriority(); if (priority != INT_MIN) { @@ -241,17 +244,18 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const result.setItalic(true); } } else if (column == COL_VERSION) { - if (modInfo->updateAvailable()) { + if (modInfo->updateAvailable() || modInfo->downgradeAvailable()) { result.setWeight(QFont::Bold); } } return result; } else if (role == Qt::DecorationRole) { if (column == COL_VERSION) { - if (modInfo->updateAvailable() && - modInfo->getNewestVersion().isValid()) { + if (modInfo->updateAvailable()) { return QIcon(":/MO/gui/update_available"); - } else if (modInfo->getVersion().isVersionDate()) { + } else if (modInfo->downgradeAvailable()) { + return QIcon(":/MO/gui/warning"); + } else if (modInfo->getVersion().scheme() == VersionInfo::SCHEME_DATE) { return QIcon(":/MO/gui/version_date"); } } @@ -264,7 +268,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const } else if (column == COL_VERSION) { if (!modInfo->getNewestVersion().isValid()) { return QVariant(); - } else if (modInfo->updateAvailable()) { + } else if (modInfo->updateAvailable() || modInfo->downgradeAvailable()) { return QBrush(Qt::red); } else { return QBrush(Qt::darkGreen); @@ -291,7 +295,13 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const return QString(); } } else if (column == COL_VERSION) { - return tr("installed version: %1, newest version: %2").arg(modInfo->getVersion().canonicalString()).arg(modInfo->getNewestVersion().canonicalString()); + QString text = tr("installed version: %1, newest version: %2").arg(modInfo->getVersion().displayString()).arg(modInfo->getNewestVersion().displayString()); + if (modInfo->downgradeAvailable()) { + text += "
" + tr("The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn " + "(i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. " + "Either way you may want to \"upgrade\"."); + } + return text; } else if (column == COL_CATEGORY) { const std::set &categories = modInfo->getCategories(); std::wostringstream categoryString; diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp index 53c03c6a..c7c3ab28 100644 --- a/src/modlistsortproxy.cpp +++ b/src/modlistsortproxy.cpp @@ -211,7 +211,7 @@ bool ModListSortProxy::filterMatches(ModInfo::Ptr info, bool enabled) const if (enabled) return false; } break; case CategoryFactory::CATEGORY_SPECIAL_UPDATEAVAILABLE: { - if (!info->updateAvailable()) return false; + if (!info->updateAvailable() && !info->downgradeAvailable()) return false; } break; case CategoryFactory::CATEGORY_SPECIAL_NOCATEGORY: { if (info->getCategories().size() > 0) return false; diff --git a/src/modlistview.cpp b/src/modlistview.cpp index 44228d5b..1a4f6266 100644 --- a/src/modlistview.cpp +++ b/src/modlistview.cpp @@ -4,7 +4,7 @@ #include -class ModListViewStyle: public QProxyStyle{ +class ModListViewStyle: public QProxyStyle { public: ModListViewStyle(QStyle *style, int indentation); @@ -37,7 +37,7 @@ void ModListViewStyle::drawPrimitive(PrimitiveElement element, const QStyleOptio ModListView::ModListView(QWidget *parent) : QTreeView(parent) { - setStyle(new ModListViewStyle(style(), indentation())); +// setStyle(new ModListViewStyle(style(), indentation())); } void ModListView::dragEnterEvent(QDragEnterEvent *event) diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index cd78ca4c..bee0bb44 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -68,6 +68,7 @@ void NexusBridge::nxmDescriptionAvailable(int modID, QVariant userData, QVariant std::set::iterator iter = m_RequestIDs.find(requestID); if (iter != m_RequestIDs.end()) { m_RequestIDs.erase(iter); + emit descriptionAvailable(modID, userData, resultData); } } @@ -142,6 +143,7 @@ QAtomicInt NexusInterface::NXMRequestInfo::s_NextID(0); NexusInterface::NexusInterface() : m_NMMVersion() { + atexit(&cleanup); m_AccessManager = new NXMAccessManager(this); m_DiskCache = new QNetworkDiskCache(this); @@ -149,6 +151,13 @@ NexusInterface::NexusInterface() } +void NexusInterface::cleanup() +{ + delete NexusInterface::s_Instance; + NexusInterface::s_Instance = NULL; +} + + NXMAccessManager *NexusInterface::getAccessManager() { return m_AccessManager; @@ -405,6 +414,7 @@ void NexusInterface::downloadRequestedNXM(const QString &url) emit requestNXMDownload(url); } +#include void NexusInterface::requestFinished(std::list::iterator iter) { diff --git a/src/nexusinterface.h b/src/nexusinterface.h index 0c304a71..0b53f9d0 100644 --- a/src/nexusinterface.h +++ b/src/nexusinterface.h @@ -294,6 +294,7 @@ private: NexusInterface(); void nextRequest(); void requestFinished(std::list::iterator iter); + static void cleanup(); private: diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp index d83ffa61..a05b8a6c 100644 --- a/src/nxmaccessmanager.cpp +++ b/src/nxmaccessmanager.cpp @@ -44,6 +44,14 @@ NXMAccessManager::NXMAccessManager(QObject *parent) { } +NXMAccessManager::~NXMAccessManager() +{ + if (m_LoginReply != NULL) { + m_LoginReply->deleteLater(); + m_LoginReply = NULL; + } +} + QNetworkReply *NXMAccessManager::createRequest( QNetworkAccessManager::Operation operation, const QNetworkRequest &request, diff --git a/src/nxmaccessmanager.h b/src/nxmaccessmanager.h index b0c43978..1d8d36ab 100644 --- a/src/nxmaccessmanager.h +++ b/src/nxmaccessmanager.h @@ -37,6 +37,8 @@ public: explicit NXMAccessManager(QObject *parent); + ~NXMAccessManager(); + bool loggedIn() const; void login(const QString &username, const QString &password); diff --git a/src/organizer.pro b/src/organizer.pro index e89b6e99..a9353361 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -183,7 +183,6 @@ INCLUDEPATH += ../shared ../archive ../uibase ../bsatk ../esptk "$(BOOSTPATH)" LIBS += -L"$(BOOSTPATH)/stage/lib" - CONFIG(debug, debug|release) { OUTDIR = $$OUT_PWD/debug DSTDIR = $$PWD/../../outputd @@ -294,6 +293,12 @@ OTHER_FILES += \ INCLUDEPATH += "$(ZLIBPATH)" "$(ZLIBPATH)/build" "$(BOOSTPATH)" LIBS += -L"$(ZLIBPATH)/build" -lzlibstatic + +# leak detection with vld +#INCLUDEPATH += "E:/Visual Leak Detector/include" +#LIBS += -L"E:/Visual Leak Detector/lib/Win32" +#DEFINES += LEAK_CHECK_WITH_VLD + #SOURCES += modeltest.cpp #HEADERS += modeltest.h #DEFINES += TEST_MODELS diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 39cca6af..e730d3f4 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -90,6 +90,10 @@ PluginList::PluginList(QObject *parent) } +PluginList::~PluginList() +{ +} + QString PluginList::getColumnName(int column) { diff --git a/src/pluginlist.h b/src/pluginlist.h index 3442a9f7..60c9be95 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -53,6 +53,8 @@ public: **/ PluginList(QObject *parent = NULL); + ~PluginList(); + /** * @brief does a complete refresh of the list * diff --git a/src/profile.cpp b/src/profile.cpp index 07f7010e..3da12d7d 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -185,7 +185,7 @@ void Profile::writeModlistNow(bool onlyOnTimer) const QString fileName = getModlistFileName(); if (QFile::exists(fileName)) { - shellDelete(QStringList(fileName)); + shellDelete(QStringList(fileName), false, QApplication::activeModalWidget()); } if (!file.copy(fileName)) { @@ -238,6 +238,7 @@ void Profile::createTweakedIniFile() if (error) { reportError(tr("failed to create tweaked ini: %1").arg(getCurrentErrorStringA().c_str())); } + qDebug("%s saved", qPrintable(QDir::toNativeSeparators(tweakedIni))); } diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index 421fbeab..bdace814 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -126,7 +126,6 @@ void SelfUpdater::startUpdate() void SelfUpdater::download(const QString &downloadLink, const QString &fileName) { - qDebug("download: %s", downloadLink.toUtf8().constData()); QNetworkAccessManager *accessManager = m_Interface->getAccessManager(); QUrl dlUrl(downloadLink); QNetworkRequest request(dlUrl); @@ -324,7 +323,6 @@ void SelfUpdater::nxmDescriptionAvailable(int, QVariant, QVariant resultData, in if (m_NewestVersion.isEmpty()) { QTimer::singleShot(5000, this, SLOT(testForUpdate())); } - VersionInfo currentVersion(m_MOVersion); VersionInfo newestVersion(m_NewestVersion); diff --git a/src/shared/gameinfo.cpp b/src/shared/gameinfo.cpp index 6b53450d..f74e52b4 100644 --- a/src/shared/gameinfo.cpp +++ b/src/shared/gameinfo.cpp @@ -40,6 +40,13 @@ GameInfo* GameInfo::s_Instance = NULL; GameInfo::GameInfo(const std::wstring &omoDirectory, const std::wstring &gameDirectory) : m_GameDirectory(gameDirectory), m_OrganizerDirectory(omoDirectory) { + atexit(&cleanup); +} + + +void GameInfo::cleanup() { + delete GameInfo::s_Instance; + GameInfo::s_Instance = NULL; } diff --git a/src/shared/gameinfo.h b/src/shared/gameinfo.h index 3e022ef4..14f52f05 100644 --- a/src/shared/gameinfo.h +++ b/src/shared/gameinfo.h @@ -176,9 +176,11 @@ private: static bool identifyGame(const std::wstring &omoDirectory, const std::wstring &searchPath); std::wstring getSpecialPath(LPCWSTR name) const; + static void cleanup(); + private: - static GameInfo* s_Instance; + static GameInfo *s_Instance; std::wstring m_MyGamesDirectory; diff --git a/src/shared/leaktrace.cpp b/src/shared/leaktrace.cpp index 83ed4fd0..c3721557 100644 --- a/src/shared/leaktrace.cpp +++ b/src/shared/leaktrace.cpp @@ -114,6 +114,7 @@ static struct __TraceData { } std::map m_Traces; + } __trace; diff --git a/src/shared/shared.pro b/src/shared/shared.pro index ab0bd8a0..992fd7f2 100644 --- a/src/shared/shared.pro +++ b/src/shared/shared.pro @@ -13,9 +13,17 @@ CONFIG += staticlib INCLUDEPATH += ../bsatk "$(BOOSTPATH)" + +# only for custom leak detection +#DEFINES += TRACE_LEAKS +#LIBS += -lDbgHelp + + CONFIG(debug, debug|release) { - LIBS += -L$$OUT_PWD/../bsatk/debug + LIBS += -L$$OUT_PWD/../bsatk/debug LIBS += -lDbgHelp + QMAKE_CXXFLAGS_DEBUG -= -Zi + QMAKE_CXXFLAGS += -Z7 } else { LIBS += -L$$OUT_PWD/../bsatk/release } diff --git a/src/spawn.cpp b/src/spawn.cpp index ab43b687..5639a78c 100644 --- a/src/spawn.cpp +++ b/src/spawn.cpp @@ -156,7 +156,7 @@ HANDLE startBinary(const QFileInfo &binary, const QString &arguments, const QStr return processHandle; } - +/* ExitProxy *ExitProxy::s_Instance = NULL; ExitProxy *ExitProxy::instance() @@ -170,4 +170,4 @@ ExitProxy *ExitProxy::instance() void ExitProxy::emitExit() { emit exit(); -} +}*/ diff --git a/src/spawn.h b/src/spawn.h index e0d1f958..48320fea 100644 --- a/src/spawn.h +++ b/src/spawn.h @@ -31,7 +31,7 @@ along with Mod Organizer. If not, see . * @brief a dirty little trick so we can issue a clean restart from startBinary * @note unused */ -class ExitProxy : public QObject { +/*class ExitProxy : public QObject { Q_OBJECT public: static ExitProxy *instance(); @@ -42,7 +42,7 @@ private: ExitProxy() {} private: static ExitProxy *s_Instance; -}; +};*/ /** diff --git a/src/splash.png b/src/splash.png index 45ace8f8..0137bf72 100644 Binary files a/src/splash.png and b/src/splash.png differ -- cgit v1.3.1 From 694e3ed2793d5c2dafc1061b119c93b091aeb2d1 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 6 Oct 2013 12:19:46 +0200 Subject: bugfix: statusbar may have stayed enabled if an error occured on handling the refreshed-event --- src/mainwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 601ec5c5..b6ee866f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2387,6 +2387,8 @@ void MainWindow::refresher_progress(int percent) void MainWindow::directory_refreshed() { + statusBar()->hide(); + DirectoryEntry *newStructure = m_DirectoryRefresher.getDirectoryStructure(); if (newStructure != NULL) { DirectoryEntry *oldStructure = m_DirectoryStructure; @@ -2404,7 +2406,6 @@ void MainWindow::directory_refreshed() refreshLists(); } // m_RefreshProgress->setVisible(false); - statusBar()->hide(); // some problem-reports may rely on the virtual directory tree so they need to be updated // now -- cgit v1.3.1 From 823dfd410b90407cf6a641226bc46291f23d0004 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 6 Oct 2013 13:34:34 +0200 Subject: - option to ignore/unignore updates is now only shown if there IS an update - window now shouldn't lose focus on win 8 2 seconds after mod information gets invalidated - small bugfix related to new version scheme parsing --- src/mainwindow.cpp | 14 ++++++++------ src/modlist.cpp | 11 +++++------ src/profile.cpp | 4 ++-- 3 files changed, 15 insertions(+), 14 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9516f818..10985b0b 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3293,8 +3293,8 @@ void MainWindow::checkModsForUpdates() void MainWindow::changeVersioningScheme() { if (QMessageBox::question(this, tr("Continue?"), - tr("This will try to change the versioning scheme so that the newest version is interpreted as an update to " - "the installed version."), + tr("The versioning scheme decides which version is considered newer than another.\n" + "This function will guess the versioning scheme under the assumption that the installed version is outdated."), QMessageBox::Yes | QMessageBox::Cancel) == QMessageBox::Yes) { ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow); @@ -3492,10 +3492,12 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) if (info->downgradeAvailable()) { menu.addAction(tr("Change versioning scheme"), this, SLOT(changeVersioningScheme())); } - if (info->updateIgnored()) { - menu.addAction(tr("Un-ignore update"), this, SLOT(unignoreUpdate())); - } else { - menu.addAction(tr("Ignore update"), this, SLOT(ignoreUpdate())); + if (info->updateAvailable() || info->downgradeAvailable()) { + if (info->updateIgnored()) { + menu.addAction(tr("Un-ignore update"), this, SLOT(unignoreUpdate())); + } else { + menu.addAction(tr("Ignore update"), this, SLOT(ignoreUpdate())); + } } menu.addSeparator(); diff --git a/src/modlist.cpp b/src/modlist.cpp index 7367b2ae..786f6f17 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -144,15 +144,13 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const return modInfo->name(); } else if (column == COL_VERSION) { VersionInfo verInfo = modInfo->getVersion(); - if (role == Qt::EditRole) { - return verInfo.canonicalString(); - } else { - QString version = verInfo.displayString(); + QString version = verInfo.displayString(); + if (role != Qt::EditRole) { if (version.isEmpty() && modInfo->canBeUpdated()) { version = "?"; } - return version; } + return version; } else if (column == COL_PRIORITY) { int priority = modInfo->getFixedPriority(); if (priority != INT_MIN) { @@ -405,7 +403,8 @@ bool ModList::setData(const QModelIndex &index, const QVariant &value, int role) } break; case COL_VERSION: { ModInfo::Ptr info = ModInfo::getByIndex(modID); - VersionInfo version(value.toString()); + VersionInfo::VersionScheme scheme = info->getVersion().scheme(); + VersionInfo version(value.toString(), scheme); if (version.isValid()) { info->setVersion(version); return true; diff --git a/src/profile.cpp b/src/profile.cpp index 3da12d7d..e075a4e6 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -185,7 +185,7 @@ void Profile::writeModlistNow(bool onlyOnTimer) const QString fileName = getModlistFileName(); if (QFile::exists(fileName)) { - shellDelete(QStringList(fileName), false, QApplication::activeModalWidget()); + shellDeleteQuiet(fileName); } if (!file.copy(fileName)) { @@ -205,7 +205,7 @@ void Profile::createTweakedIniFile() { QString tweakedIni = m_Directory.absoluteFilePath("initweaks.ini"); - if (QFile::exists(tweakedIni) && !shellDelete(QStringList(tweakedIni))) { + if (QFile::exists(tweakedIni) && !shellDeleteQuiet(tweakedIni)) { reportError(tr("failed to update tweaked ini file, wrong settings may be used: %1").arg(windowsErrorString(::GetLastError()))); return; } -- cgit v1.3.1 From b23a4885e075a551eabd5fc42ca45f98aa13f966 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 6 Oct 2013 14:12:25 +0200 Subject: - bugfix: When updating MO, if login is required, the process didn't continue automatically after login --- src/mainwindow.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 10985b0b..57201db9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4228,6 +4228,7 @@ void MainWindow::on_actionUpdate_triggered() (m_AskForNexusPW && queryLogin(username, password)))) { NexusInterface::instance()->getAccessManager()->login(username, password); m_LoginAttempted = true; + m_PostLoginTasks.push_back([&](MainWindow*) { m_Updater.startUpdate(); }); } else { m_Updater.startUpdate(); } -- cgit v1.3.1 From 54c7131a5e2fa282369e25344ac190d51676c383 Mon Sep 17 00:00:00 2001 From: Tannin Date: Thu, 10 Oct 2013 19:32:01 +0200 Subject: - new toggle to display hidden downloads - hidden downloads can be un-hidden - the installation manager now more thoroughly cleans up the temporary directory after installation - added SkyrimLauncher.exe to the list of auto-detected executables - bugfix: shutting down MO while downloads where active in some occasions didn't work - bugfix: when canceling the only active download the taskbar icon didn't return to normal --- src/downloadlistwidget.cpp | 20 ++++++++--- src/downloadlistwidget.h | 2 ++ src/downloadlistwidgetcompact.cpp | 20 ++++++++--- src/downloadlistwidgetcompact.h | 2 ++ src/downloadmanager.cpp | 58 ++++++++++++++++++++++++++----- src/downloadmanager.h | 24 ++++++++++++- src/installationmanager.cpp | 72 +++++++++++++-------------------------- src/installationmanager.h | 5 +-- src/main.cpp | 5 ++- src/mainwindow.cpp | 6 ++++ src/mainwindow.h | 1 + src/mainwindow.ui | 9 ++++- src/moapplication.cpp | 6 +++- src/moapplication.h | 60 ++++++++++++++++---------------- src/shared/skyriminfo.cpp | 1 + src/version.rc | 4 +-- 16 files changed, 189 insertions(+), 106 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/downloadlistwidget.cpp b/src/downloadlistwidget.cpp index b657ca69..b4d40799 100644 --- a/src/downloadlistwidget.cpp +++ b/src/downloadlistwidget.cpp @@ -208,6 +208,11 @@ void DownloadListWidgetDelegate::issueRemoveFromView() emit removeDownload(m_ContextRow, false); } +void DownloadListWidgetDelegate::issueRestoreToView() +{ + emit restoreDownload(m_ContextRow); +} + void DownloadListWidgetDelegate::issueCancel() { emit cancelDownload(m_ContextRow); @@ -277,13 +282,18 @@ bool DownloadListWidgetDelegate::editorEvent(QEvent *event, QAbstractItemModel * QMenu menu(m_View); m_ContextRow = qobject_cast(model)->mapToSource(index).row(); DownloadManager::DownloadState state = m_Manager->getState(m_ContextRow); + bool hidden = m_Manager->isHidden(m_ContextRow); if (state >= DownloadManager::STATE_READY) { menu.addAction(tr("Install"), this, SLOT(issueInstall())); if (m_Manager->isInfoIncomplete(m_ContextRow)) { menu.addAction(tr("Query Info"), this, SLOT(issueQueryInfo())); } menu.addAction(tr("Delete"), this, SLOT(issueDelete())); - menu.addAction(tr("Remove from View"), this, SLOT(issueRemoveFromView())); + if (hidden) { + menu.addAction(tr("Un-Hide"), this, SLOT(issueRestoreToView())); + } else { + menu.addAction(tr("Remove from View"), this, SLOT(issueRemoveFromView())); + } } else if (state == DownloadManager::STATE_DOWNLOADING){ menu.addAction(tr("Cancel"), this, SLOT(issueCancel())); menu.addAction(tr("Pause"), this, SLOT(issuePause())); @@ -295,9 +305,11 @@ bool DownloadListWidgetDelegate::editorEvent(QEvent *event, QAbstractItemModel * menu.addSeparator(); menu.addAction(tr("Delete Installed..."), this, SLOT(issueDeleteCompleted())); menu.addAction(tr("Delete All..."), this, SLOT(issueDeleteAll())); - menu.addSeparator(); - menu.addAction(tr("Remove Installed..."), this, SLOT(issueRemoveFromViewCompleted())); - menu.addAction(tr("Remove All..."), this, SLOT(issueRemoveFromViewAll())); + if (!hidden) { + menu.addSeparator(); + menu.addAction(tr("Remove Installed..."), this, SLOT(issueRemoveFromViewCompleted())); + menu.addAction(tr("Remove All..."), this, SLOT(issueRemoveFromViewAll())); + } menu.exec(mouseEvent->globalPos()); event->accept(); diff --git a/src/downloadlistwidget.h b/src/downloadlistwidget.h index c80200fb..f5bfdbaa 100644 --- a/src/downloadlistwidget.h +++ b/src/downloadlistwidget.h @@ -65,6 +65,7 @@ signals: void installDownload(int index); void queryInfo(int index); void removeDownload(int index, bool deleteFile); + void restoreDownload(int index); void cancelDownload(int index); void pauseDownload(int index); void resumeDownload(int index); @@ -83,6 +84,7 @@ private slots: void issueInstall(); void issueDelete(); void issueRemoveFromView(); + void issueRestoreToView(); void issueCancel(); void issuePause(); void issueResume(); diff --git a/src/downloadlistwidgetcompact.cpp b/src/downloadlistwidgetcompact.cpp index 8dd6e275..d2a71dd5 100644 --- a/src/downloadlistwidgetcompact.cpp +++ b/src/downloadlistwidgetcompact.cpp @@ -195,6 +195,11 @@ void DownloadListWidgetCompactDelegate::issueRemoveFromView() emit removeDownload(m_ContextIndex.row(), false); } +void DownloadListWidgetCompactDelegate::issueRestoreToView() +{ + emit restoreDownload(m_ContextIndex.row()); +} + void DownloadListWidgetCompactDelegate::issueCancel() { emit cancelDownload(m_ContextIndex.row()); @@ -265,13 +270,18 @@ bool DownloadListWidgetCompactDelegate::editorEvent(QEvent *event, QAbstractItem QMenu menu; m_ContextIndex = qobject_cast(model)->mapToSource(index); DownloadManager::DownloadState state = m_Manager->getState(m_ContextIndex.row()); + bool hidden = m_Manager->isHidden(m_ContextIndex.row()); if (state >= DownloadManager::STATE_READY) { menu.addAction(tr("Install"), this, SLOT(issueInstall())); if (m_Manager->isInfoIncomplete(m_ContextIndex.row())) { menu.addAction(tr("Query Info"), this, SLOT(issueQueryInfo())); } menu.addAction(tr("Delete"), this, SLOT(issueDelete())); - menu.addAction(tr("Remove from View"), this, SLOT(issueRemoveFromView())); + if (hidden) { + menu.addAction(tr("Un-Hide"), this, SLOT(issueRestoreToView())); + } else { + menu.addAction(tr("Remove from View"), this, SLOT(issueRemoveFromView())); + } } else if (state == DownloadManager::STATE_DOWNLOADING){ menu.addAction(tr("Cancel"), this, SLOT(issueCancel())); menu.addAction(tr("Pause"), this, SLOT(issuePause())); @@ -283,9 +293,11 @@ bool DownloadListWidgetCompactDelegate::editorEvent(QEvent *event, QAbstractItem menu.addSeparator(); menu.addAction(tr("Delete Installed..."), this, SLOT(issueDeleteCompleted())); menu.addAction(tr("Delete All..."), this, SLOT(issueDeleteAll())); - menu.addSeparator(); - menu.addAction(tr("Remove Installed..."), this, SLOT(issueRemoveFromViewCompleted())); - menu.addAction(tr("Remove All..."), this, SLOT(issueRemoveFromViewAll())); + if (!hidden) { + menu.addSeparator(); + menu.addAction(tr("Remove Installed..."), this, SLOT(issueRemoveFromViewCompleted())); + menu.addAction(tr("Remove All..."), this, SLOT(issueRemoveFromViewAll())); + } menu.exec(mouseEvent->globalPos()); event->accept(); diff --git a/src/downloadlistwidgetcompact.h b/src/downloadlistwidgetcompact.h index 78f51840..05d00b9d 100644 --- a/src/downloadlistwidgetcompact.h +++ b/src/downloadlistwidgetcompact.h @@ -65,6 +65,7 @@ signals: void installDownload(int index); void queryInfo(int index); void removeDownload(int index, bool deleteFile); + void restoreDownload(int index); void cancelDownload(int index); void pauseDownload(int index); void resumeDownload(int index); @@ -83,6 +84,7 @@ private slots: void issueInstall(); void issueDelete(); void issueRemoveFromView(); + void issueRestoreToView(); void issueCancel(); void issuePause(); void issueResume(); diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index b965d598..eca5600a 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -69,14 +69,16 @@ DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createNew(const Ne return info; } -DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createFromMeta(const QString &filePath) +DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createFromMeta(const QString &filePath, bool showHidden) { DownloadInfo *info = new DownloadInfo; QString metaFileName = filePath + ".meta"; QSettings metaFile(metaFileName, QSettings::IniFormat); - if (metaFile.value("removed", false).toBool()) { + if (!showHidden && metaFile.value("removed", false).toBool()) { return NULL; + } else { + info->m_Hidden = metaFile.value("removed", false).toBool(); } QString fileName = QFileInfo(filePath).fileName(); @@ -151,7 +153,7 @@ QString DownloadManager::DownloadInfo::currentURL() DownloadManager::DownloadManager(NexusInterface *nexusInterface, QObject *parent) - : IDownloadManager(parent), m_NexusInterface(nexusInterface), m_DirWatcher() + : IDownloadManager(parent), m_NexusInterface(nexusInterface), m_DirWatcher(), m_ShowHidden(false) { connect(&m_DirWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(directoryChanged(QString))); } @@ -188,13 +190,15 @@ void DownloadManager::pauseAll() ::Sleep(100); bool done = false; + QTime startTime = QTime::currentTime(); // further loops: busy waiting for all downloads to complete. This could be neater... - while (!done) { + while (!done && (startTime.secsTo(QTime::currentTime()) < 5)) { QCoreApplication::processEvents(); done = true; foreach (DownloadInfo *info, m_ActiveDownloads) { if ((info->m_State < STATE_CANCELED) || - (info->m_State != STATE_FETCHINGFILEINFO) || (info->m_State != STATE_FETCHINGMODINFO)) { + (info->m_State == STATE_FETCHINGFILEINFO) || + (info->m_State == STATE_FETCHINGMODINFO)) { done = false; break; } @@ -230,6 +234,12 @@ void DownloadManager::setSupportedExtensions(const QStringList &extensions) refreshList(); } +void DownloadManager::setShowHidden(bool showHidden) +{ + m_ShowHidden = showHidden; + refreshList(); +} + void DownloadManager::refreshList() { // remove finished downloads @@ -267,7 +277,7 @@ void DownloadManager::refreshList() QString fileName = QDir::fromNativeSeparators(m_OutputDirectory) + "/" + file; - DownloadInfo *info = DownloadInfo::createFromMeta(fileName); + DownloadInfo *info = DownloadInfo::createFromMeta(fileName, m_ShowHidden); if (info != NULL) { m_ActiveDownloads.push_front(info); } @@ -437,6 +447,22 @@ void DownloadManager::refreshAlphabeticalTranslation() } +void DownloadManager::restoreDownload(int index) +{ + if ((index < 0) || (index >= m_ActiveDownloads.size())) { + throw MyException(tr("invalid index")); + } + + DownloadInfo *download = m_ActiveDownloads.at(index); + download->m_Hidden = false; + + QString filePath = m_OutputDirectory + "/" + download->m_FileName; + + QSettings metaSettings(filePath.append(".meta"), QSettings::IniFormat); + metaSettings.setValue("removed", false); +} + + void DownloadManager::removeDownload(int index, bool deleteFile) { try { @@ -492,9 +518,13 @@ void DownloadManager::pauseDownload(int index) return; } - if (m_ActiveDownloads.at(index)->m_State == STATE_DOWNLOADING) { - setState(m_ActiveDownloads.at(index), STATE_PAUSING); - qDebug("pausing %d - %s", index, m_ActiveDownloads[index]->m_FileName.toUtf8().constData()); + DownloadInfo *info = m_ActiveDownloads.at(index); + + if (info->m_State == STATE_DOWNLOADING) { + setState(info, STATE_PAUSING); + qDebug("pausing %d - %s", index, info->m_FileName.toUtf8().constData()); + } else if ((info->m_State == STATE_FETCHINGMODINFO) || (info->m_State == STATE_FETCHINGFILEINFO)) { + setState(info, STATE_READY); } } @@ -671,6 +701,14 @@ int DownloadManager::getModID(int index) const return m_ActiveDownloads.at(index)->m_ModID; } +bool DownloadManager::isHidden(int index) const +{ + if ((index < 0) || (index >= m_ActiveDownloads.size())) { + throw MyException(tr("invalid index")); + } + return m_ActiveDownloads.at(index)->m_Hidden; +} + NexusInfo DownloadManager::getNexusInfo(int index) const { @@ -843,6 +881,7 @@ void DownloadManager::createMetaFile(DownloadInfo *info) metaFile.setValue("uninstalled", info->m_State == DownloadManager::STATE_UNINSTALLED); metaFile.setValue("paused", (info->m_State == DownloadManager::STATE_PAUSED) || (info->m_State == DownloadManager::STATE_ERROR)); + metaFile.setValue("removed", info->m_Hidden); // slightly hackish... for (int i = 0; i < m_ActiveDownloads.size(); ++i) { @@ -1110,6 +1149,7 @@ void DownloadManager::downloadFinished() QByteArray data = info->m_Reply->readAll(); info->m_Output.write(data); info->m_Output.close(); + TaskProgressManager::instance().forgetMe(info->m_TaskProgressId); bool error = false; diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 0d49aa35..a42ac073 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -102,8 +102,10 @@ private: NexusInfo m_NexusInfo; + bool m_Hidden; + static DownloadInfo *createNew(const NexusInfo &nexusInfo, int modID, int fileID, const QStringList &URLs); - static DownloadInfo *createFromMeta(const QString &filePath); + static DownloadInfo *createFromMeta(const QString &filePath, bool showHidden); /** * @brief rename the file @@ -168,6 +170,11 @@ public: */ void setSupportedExtensions(const QStringList &extensions); + /** + * @brief sets whether hidden files are to be shown after all + */ + void setShowHidden(bool showHidden); + /** * @brief download from an already open network connection * @@ -263,6 +270,13 @@ public: **/ int getModID(int index) const; + /** + * @brief determine if the specified file is supposed to be hidden + * @param index index of the file to look up + * @return true if the specified file is supposed to be hidden + */ + bool isHidden(int index) const; + /** * @brief retrieve all nexus info of the download specified by index * @@ -352,6 +366,12 @@ public slots: **/ void removeDownload(int index, bool deleteFile); + /** + * @brief restores the specified download to view (which was previously hidden + * @param index index of the download to restore + */ + void restoreDownload(int index); + /** * @brief cancel the specified download. This will lead to the corresponding file to be deleted * @@ -436,6 +456,8 @@ private: std::map m_DownloadFails; + bool m_ShowHidden; + }; #endif // DOWNLOADMANAGER_H diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp index 87efecf1..6b430eea 100644 --- a/src/installationmanager.cpp +++ b/src/installationmanager.cpp @@ -184,11 +184,7 @@ bool InstallationManager::unpackSingleFile(const QString &fileName) QString InstallationManager::extractFile(const QString &fileName) { if (unpackSingleFile(fileName)) { - QString tempFileName = QDir::tempPath().append("/").append(QFileInfo(fileName).fileName()); - - m_FilesToDelete.insert(tempFileName); - - return tempFileName; + return QDir::tempPath().append("/").append(QFileInfo(fileName).fileName()); } else { return QString(); } @@ -571,49 +567,36 @@ bool InstallationManager::doInstall(GuessedValue &modName, int modID, } -void InstallationManager::openFile(const QString &fileName) +bool InstallationManager::wasCancelled() { - unpackSingleFile(fileName); + return m_CurrentArchive->getLastError() == Archive::ERROR_EXTRACT_CANCELLED; +} - QString tempFileName = QDir::tempPath().append("/").append(QFileInfo(fileName).fileName()); - SHELLEXECUTEINFOW execInfo; - memset(&execInfo, 0, sizeof(SHELLEXECUTEINFOW)); - execInfo.cbSize = sizeof(SHELLEXECUTEINFOW); - execInfo.fMask = SEE_MASK_NOCLOSEPROCESS; - execInfo.lpVerb = L"open"; - std::wstring fileNameW = ToWString(tempFileName); - execInfo.lpFile = fileNameW.c_str(); - execInfo.nShow = SW_SHOWNORMAL; - if (!::ShellExecuteExW(&execInfo)) { - qCritical("failed to spawn %s: %d", tempFileName.toUtf8().constData(), ::GetLastError()); - } +void InstallationManager::postInstallCleanup() const +{ + m_CurrentArchive->close(); - m_FilesToDelete.insert(tempFileName); -} + // directories we may want to remove. sorted from longest to shortest to ensure we remove subdirectories first. + auto longestFirst = [](const QString &LHS, const QString &RHS) -> bool { + if (LHS.size() != RHS.size()) return LHS.size() > RHS.size(); + else return LHS < RHS; + }; + std::set> directoriesToRemove(longestFirst); -// copy and pasted from mo_dll -bool EndsWith(LPCWSTR string, LPCWSTR subString) -{ - size_t slen = wcslen(string); - size_t len = wcslen(subString); - if (slen < len) { - return false; + // clean up temp files + // TODO: this doesn't yet remove directories. Also, the files may be left there if this point isn't reached + foreach (const QString &tempFile, m_TempFilesToDelete) { + QFileInfo fileInfo(QDir::tempPath() + "/" + tempFile); + QFile::remove(fileInfo.absoluteFilePath()); + directoriesToRemove.insert(fileInfo.absolutePath()); } - for (size_t i = 0; i < len; ++i) { - if (towlower(string[slen - len + i]) != towlower(subString[i])) { - return false; - } + // try to delete each directory we had temporary files in. the call fails for non-empty directories which is ok + foreach (const QString &dir, directoriesToRemove) { + QDir().rmdir(dir); } - return true; -} - - -bool InstallationManager::wasCancelled() -{ - return m_CurrentArchive->getLastError() == Archive::ERROR_EXTRACT_CANCELLED; } @@ -675,9 +658,7 @@ bool InstallationManager::install(const QString &fileName, GuessedValue bool archiveOpen = m_CurrentArchive->open(ToWString(QDir::toNativeSeparators(fileName)).c_str(), new MethodCallback(this, &InstallationManager::queryPassword)); - ON_BLOCK_EXIT([this] { - this->m_CurrentArchive->close(); - }); + ON_BLOCK_EXIT(std::bind(&InstallationManager::postInstallCleanup, this)); QScopedPointer filesTree(archiveOpen ? createFilesTree() : NULL); IPluginInstaller::EInstallResult installResult = IPluginInstaller::RESULT_NOTATTEMPTED; @@ -729,13 +710,6 @@ bool InstallationManager::install(const QString &fileName, GuessedValue qPrintable(installer->name()), e.what()); } - // clean up temp files - // TODO: this doesn't yet remove directories. Also, the files may be left there if this point isn't reached - foreach (const QString &tempFile, m_TempFilesToDelete) { - QFile::remove(QDir::tempPath() + "/" + tempFile); - } - - // act upon the installation result. at this point the files have already been // extracted to the correct location switch (installResult) { diff --git a/src/installationmanager.h b/src/installationmanager.h index 0e43a15d..1c6f9f19 100644 --- a/src/installationmanager.h +++ b/src/installationmanager.h @@ -168,9 +168,7 @@ private: bool ensureValidModName(MOBase::GuessedValue &name) const; -private slots: - - void openFile(const QString &fileName); + void postInstallCleanup() const; private: @@ -202,7 +200,6 @@ private: QProgressDialog m_InstallationProgress; - std::set m_FilesToDelete; std::set m_TempFilesToDelete; }; diff --git a/src/main.cpp b/src/main.cpp index c4431ac4..7c2a9b0e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -433,7 +433,10 @@ int main(int argc, char *argv[]) qDebug("initializing tutorials"); TutorialManager::init(QDir::fromNativeSeparators(ToQString(GameInfo::instance().getTutorialDir())).append("/")); - application.setStyleFile(settings.value("Settings/style", "").toString()); + if (!application.setStyleFile(settings.value("Settings/style", "").toString())) { + // disable invalid stylesheet + settings.setValue("Settings/style", ""); + } int res = 1; { // scope to control lifetime of mainwindow diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 57201db9..33dc75ed 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4265,6 +4265,7 @@ void MainWindow::updateDownloadListDelegate() connect(ui->downloadView->itemDelegate(), SIGNAL(installDownload(int)), this, SLOT(installDownload(int))); connect(ui->downloadView->itemDelegate(), SIGNAL(queryInfo(int)), &m_DownloadManager, SLOT(queryInfo(int))); connect(ui->downloadView->itemDelegate(), SIGNAL(removeDownload(int, bool)), &m_DownloadManager, SLOT(removeDownload(int, bool))); + connect(ui->downloadView->itemDelegate(), SIGNAL(restoreDownload(int)), &m_DownloadManager, SLOT(restoreDownload(int))); connect(ui->downloadView->itemDelegate(), SIGNAL(cancelDownload(int)), &m_DownloadManager, SLOT(cancelDownload(int))); connect(ui->downloadView->itemDelegate(), SIGNAL(pauseDownload(int)), &m_DownloadManager, SLOT(pauseDownload(int))); connect(ui->downloadView->itemDelegate(), SIGNAL(resumeDownload(int)), &m_DownloadManager, SLOT(resumeDownload(int))); @@ -4735,3 +4736,8 @@ void MainWindow::on_linkButton_pressed() ui->linkButton->menu()->actions().at(1)->setIcon(linkDesktopFile.exists() ? removeIcon : addIcon); ui->linkButton->menu()->actions().at(2)->setIcon(linkMenuFile.exists() ? removeIcon : addIcon); } + +void MainWindow::on_showHiddenBox_toggled(bool checked) +{ + m_DownloadManager.setShowHidden(checked); +} diff --git a/src/mainwindow.h b/src/mainwindow.h index dfec5f49..ad4ed82e 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -502,6 +502,7 @@ private slots: // ui slots void on_groupCombo_currentIndexChanged(int index); void on_categoriesList_itemSelectionChanged(); void on_linkButton_pressed(); + void on_showHiddenBox_toggled(bool checked); }; #endif // MAINWINDOW_H diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 923df17c..b29136ff 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -968,7 +968,7 @@ p, li { white-space: pre-wrap; } - + @@ -976,6 +976,13 @@ p, li { white-space: pre-wrap; } + + + + Show Hidden + + + diff --git a/src/moapplication.cpp b/src/moapplication.cpp index efb0b615..ac660c6c 100644 --- a/src/moapplication.cpp +++ b/src/moapplication.cpp @@ -32,7 +32,7 @@ MOApplication::MOApplication(int argc, char **argv) } -void MOApplication::setStyleFile(const QString &styleName) +bool MOApplication::setStyleFile(const QString &styleName) { // remove all files from watch QStringList currentWatch = m_StyleWatcher.files(); @@ -42,11 +42,15 @@ void MOApplication::setStyleFile(const QString &styleName) // set new stylesheet or clear it if (styleName.length() != 0) { QString styleSheetName = applicationDirPath() + "/" + MOBase::ToQString(AppConfig::stylesheetsPath()) + "/" + styleName; + if (!QFile::exists(styleSheetName)) { + return false; + } m_StyleWatcher.addPath(styleSheetName); updateStyle(styleSheetName); } else { setStyleSheet(""); } + return true; } diff --git a/src/moapplication.h b/src/moapplication.h index 3d74031d..dd7f5eab 100644 --- a/src/moapplication.h +++ b/src/moapplication.h @@ -17,33 +17,33 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ -#ifndef MOAPPLICATION_H -#define MOAPPLICATION_H - -#include -#include - - -class MOApplication : public QApplication { -Q_OBJECT -public: - - MOApplication(int argc, char **argv); - - virtual bool notify (QObject *receiver, QEvent *event); - -public slots: - - void setStyleFile(const QString &style); - -private slots: - - void updateStyle(const QString &fileName); - -private: - - QFileSystemWatcher m_StyleWatcher; -}; - - -#endif // MOAPPLICATION_H +#ifndef MOAPPLICATION_H +#define MOAPPLICATION_H + +#include +#include + + +class MOApplication : public QApplication { +Q_OBJECT +public: + + MOApplication(int argc, char **argv); + + virtual bool notify (QObject *receiver, QEvent *event); + +public slots: + + bool setStyleFile(const QString &style); + +private slots: + + void updateStyle(const QString &fileName); + +private: + + QFileSystemWatcher m_StyleWatcher; +}; + + +#endif // MOAPPLICATION_H diff --git a/src/shared/skyriminfo.cpp b/src/shared/skyriminfo.cpp index 8c6b79ef..71d791f5 100644 --- a/src/shared/skyriminfo.cpp +++ b/src/shared/skyriminfo.cpp @@ -295,6 +295,7 @@ std::vector SkyrimInfo::getExecutables() result.push_back(ExecutableInfo(L"SKSE", L"skse_loader.exe", L"", L"", DEFAULT_CLOSE)); result.push_back(ExecutableInfo(L"SBW", L"SBW.exe", L"", L"", DEFAULT_CLOSE)); result.push_back(ExecutableInfo(L"Skyrim", L"TESV.exe", L"", L"", DEFAULT_CLOSE)); + result.push_back(ExecutableInfo(L"Skyrim Launcher", L"SkyrimLauncher.exe", L"", L"", DEFAULT_CLOSE)); result.push_back(ExecutableInfo(L"BOSS", L"BOSS/BOSS.exe", L"", L"", DEFAULT_STAY)); result.push_back(ExecutableInfo(L"Creation Kit", L"CreationKit.exe", L"", L"", DEFAULT_STAY, L"202480")); diff --git a/src/version.rc b/src/version.rc index 16669011..e71bc1b5 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,4,0 -#define VER_FILEVERSION_STR "1,0,4,0\0" +#define VER_FILEVERSION 1,0,5,0 +#define VER_FILEVERSION_STR "1,0,5,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 382226bb46541f07e62ce689cfeaf395aa673a44 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 11 Oct 2013 23:03:49 +0200 Subject: - added new plugin to test if fnis needs to be run - some functionality to the plugin interface to enable them to search for files&directories in the virtual FS (rudimentary atm) - functionality for plugins to react to application being started from MO - broken ESPs are no longer reported as popup windows but only in the log file - bugfix: plugins couldn't store persistent data if they had no user-editable settings --- src/main.cpp | 2 +- src/mainwindow.cpp | 87 +++++++++++++++++++++++++++++++++++++++++-- src/mainwindow.h | 10 ++++- src/organizer.pro | 4 +- src/pluginlist.cpp | 2 +- src/settings.cpp | 1 + src/shared/directoryentry.cpp | 6 +++ src/shared/directoryentry.h | 1 + 8 files changed, 103 insertions(+), 10 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/main.cpp b/src/main.cpp index c4431ac4..49c7b3c0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -466,7 +466,7 @@ int main(int argc, char *argv[]) arguments.removeFirst(); // remove application name (ModOrganizer.exe) arguments.removeFirst(); // remove binary name // pass the remaining parameters to the binary - mainWindow.spawnProgram(exeName, arguments.join(" "), selectedProfileName, QDir()); + mainWindow.startApplication(exeName, arguments, QString(), selectedProfileName); return 0; } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 1ea35d74..1ee4b66e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1276,10 +1276,15 @@ HANDLE MainWindow::spawnBinaryDirect(const QFileInfo &binary, const QString &arg QCoreApplication::processEvents(); } - return startBinary(binary, arguments, profileName, m_Settings.logLevel(), currentDirectory, true); + if (m_AboutToRun(binary.absoluteFilePath())) { + return startBinary(binary, arguments, profileName, m_Settings.logLevel(), currentDirectory, true); + } else { + qDebug("start of \"%s\" canceled by plugin", qPrintable(binary.absoluteFilePath())); + return INVALID_HANDLE_VALUE; + } } - +/* void MainWindow::spawnProgram(const QString &fileName, const QString &argumentsArg, const QString &profileName, const QDir ¤tDirectory) { @@ -1299,7 +1304,7 @@ void MainWindow::spawnProgram(const QString &fileName, const QString &argumentsA } spawnBinaryDirect(binary, arguments, profileName, currentDirectory, steamAppID); } - +*/ void MainWindow::spawnBinary(const QFileInfo &binary, const QString &arguments, const QDir ¤tDirectory, bool closeAfterStart, const QString &steamAppID) { @@ -1895,7 +1900,6 @@ void MainWindow::activateProxy(bool activate) busyDialog.hide(); } - void MainWindow::readSettings() { QSettings settings(ToQString(GameInfo::instance().getIniFilename()), QSettings::IniFormat); @@ -2053,11 +2057,86 @@ QString MainWindow::resolvePath(const QString &fileName) const } } +QStringList MainWindow::listDirectories(const QString &directoryName) const +{ + QStringList result; + DirectoryEntry *dir = m_DirectoryStructure->findSubDirectoryRecursive(ToWString(directoryName)); + if (dir != NULL) { + std::vector::iterator current, end; + dir->getSubDirectories(current, end); + for (; current != end; ++current) { + result.append(ToQString((*current)->getName())); + } + } + return result; +} + +QStringList MainWindow::findFiles(const QString &path, const std::function &filter) const +{ + QStringList result; + DirectoryEntry *dir = m_DirectoryStructure->findSubDirectoryRecursive(ToWString(path)); + if (dir != NULL) { + std::vector files = dir->getFiles(); + foreach (FileEntry::Ptr file, files) { + if (filter(ToQString(file->getName()))) { + result.append(ToQString(file->getFullPath())); + } + } + } else { + qWarning("directory %s not found", qPrintable(path)); + } + return result; +} + IDownloadManager *MainWindow::downloadManager() { return &m_DownloadManager; } +HANDLE MainWindow::startApplication(const QString &executable, const QStringList &args, const QString &cwd, const QString &profile) +{ + QFileInfo binary; + QString arguments = args.join(" "); + QString currentDirectory = cwd; + QString profileName = (profile.length() > 0) ? profile : m_CurrentProfile->getName(); + QString steamAppID; + if (executable.contains('\\') || executable.contains('/')) { + // file path + binary = QFileInfo(executable); + if (binary.isRelative()) { + // relative path, should be relative to game directory + binary = QFileInfo(QDir::fromNativeSeparators(ToQString(GameInfo::instance().getGameDirectory())) + "/" + executable); + } + if (cwd.length() == 0) { + currentDirectory = binary.absolutePath(); + } + } else { + // only a file name, search executables list + try { + const Executable &exe = m_ExecutablesList.find(executable); + steamAppID = exe.m_SteamAppID; + if (arguments == "") { + arguments = exe.m_Arguments; + } + binary = exe.m_BinaryInfo; + if (cwd.length() == 0) { + currentDirectory = exe.m_WorkingDirectory; + } + } catch (const std::runtime_error&) { + qWarning("\"%s\" not set up as executable", executable.toUtf8().constData()); + return INVALID_HANDLE_VALUE; + } + } + + return spawnBinaryDirect(binary, arguments, profileName, currentDirectory, steamAppID); +} + +bool MainWindow::onAboutToRun(const boost::function &func) +{ + auto conn = m_AboutToRun.connect(func); + return conn.connected(); +} + std::vector MainWindow::activeProblems() const { std::vector problems; diff --git a/src/mainwindow.h b/src/mainwindow.h index dfec5f49..6992861b 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -89,8 +89,8 @@ public: void createFirstProfile(); - void spawnProgram(const QString &fileName, const QString &argumentsArg, - const QString &profileName, const QDir ¤tDirectory); +/* void spawnProgram(const QString &fileName, const QString &argumentsArg, + const QString &profileName, const QDir ¤tDirectory);*/ void loadPlugins(); @@ -111,7 +111,11 @@ public: virtual QString pluginDataPath() const; virtual void installMod(const QString &fileName); virtual QString resolvePath(const QString &fileName) const; + virtual QStringList listDirectories(const QString &directoryName) const; + virtual QStringList findFiles(const QString &path, const std::function &filter) const; virtual MOBase::IDownloadManager *downloadManager(); + virtual HANDLE startApplication(const QString &executable, const QStringList &args = QStringList(), const QString &cwd = "", const QString &profile = ""); + virtual bool onAboutToRun(const boost::function &func); virtual std::vector activeProblems() const; virtual QString shortDescription(unsigned int key) const; @@ -320,6 +324,8 @@ private: QFile m_PluginsCheck; + SignalAboutToRunApplication m_AboutToRun; + private slots: void showMessage(const QString &message); diff --git a/src/organizer.pro b/src/organizer.pro index a9353361..c817f2da 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -199,8 +199,8 @@ CONFIG(debug, debug|release) { QMAKE_LFLAGS += /DEBUG } -QMAKE_CXXFLAGS_WARN_ON -= -W3 -QMAKE_CXXFLAGS_WARN_ON += -W4 +#QMAKE_CXXFLAGS_WARN_ON -= -W3 +#QMAKE_CXXFLAGS_WARN_ON += -W4 QMAKE_CXXFLAGS += -wd4127 -wd4512 -wd4189 CONFIG += embed_manifest_exe diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index e730d3f4..55f8a39e 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -953,7 +953,7 @@ PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled, FILETIME time, c m_Masters.insert(QString(iter->c_str())); } } catch (const std::exception &e) { - reportError(tr("failed to parse esp file %1: %2").arg(fullPath).arg(e.what())); + qCritical("failed to parse esp file %s: %s", qPrintable(fullPath), e.what()); m_IsMaster = false; } } diff --git a/src/settings.cpp b/src/settings.cpp index 42a8d693..4f301b0c 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -105,6 +105,7 @@ bool Settings::pluginBlacklisted(const QString &fileName) const void Settings::registerPlugin(IPlugin *plugin) { m_Plugins.push_back(plugin); + m_PluginSettings.insert(plugin->name(), QMap()); foreach (const PluginSetting &setting, plugin->settings()) { QVariant temp = m_Settings.value("Plugins/" + plugin->name() + "/" + setting.key, setting.defaultValue); if (!temp.convert(setting.defaultValue.type())) { diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp index 8380181f..b3a12498 100644 --- a/src/shared/directoryentry.cpp +++ b/src/shared/directoryentry.cpp @@ -746,6 +746,12 @@ DirectoryEntry *DirectoryEntry::findSubDirectory(const std::wstring &name) const } +DirectoryEntry *DirectoryEntry::findSubDirectoryRecursive(const std::wstring &path) +{ + return getSubDirectoryRecursive(path, false, -1); +} + + const FileEntry::Ptr DirectoryEntry::findFile(const std::wstring &name) { auto iter = m_Files.find(name); diff --git a/src/shared/directoryentry.h b/src/shared/directoryentry.h index 498ebfe1..1ad9816c 100644 --- a/src/shared/directoryentry.h +++ b/src/shared/directoryentry.h @@ -227,6 +227,7 @@ public: } DirectoryEntry *findSubDirectory(const std::wstring &name) const; + DirectoryEntry *findSubDirectoryRecursive(const std::wstring &path); /** retrieve a file in this directory by name. * @param name name of the file -- cgit v1.3.1 From f3cb50057ba5cfe5496fda6ed860b14331fdb5c0 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 12 Oct 2013 13:21:37 +0200 Subject: - bugfixes to last merge - fnis-check plugin can now be disabled --- src/mainwindow.cpp | 6 ++++-- src/mainwindow.h | 25 ++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 7ef2dab6..b7a0fc2f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -111,6 +111,8 @@ using namespace MOBase; using namespace MOShared; + + static bool isOnline() { QList interfaces = QNetworkInterface::allInterfaces(); @@ -146,7 +148,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget m_Updater(NexusInterface::instance(), this), m_CategoryFactory(CategoryFactory::instance()), m_CurrentProfile(NULL), m_AskForNexusPW(false), m_LoginAttempted(false), m_ArchivesInit(false), m_ContextItem(NULL), m_ContextAction(NULL), m_CurrentSaveView(NULL), - m_GameInfo(new GameInfoImpl()) + m_GameInfo(new GameInfoImpl()), m_AboutToRun() { ui->setupUi(this); this->setWindowTitle(ToQString(GameInfo::instance().getGameName()) + " Mod Organizer v" + m_Updater.getVersion().displayString()); @@ -2131,7 +2133,7 @@ HANDLE MainWindow::startApplication(const QString &executable, const QStringList return spawnBinaryDirect(binary, arguments, profileName, currentDirectory, steamAppID); } -bool MainWindow::onAboutToRun(const boost::function &func) +bool MainWindow::onAboutToRun(const std::function &func) { auto conn = m_AboutToRun.connect(func); return conn.connected(); diff --git a/src/mainwindow.h b/src/mainwindow.h index fab850cf..7d5d4a63 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -50,6 +50,7 @@ along with Mod Organizer. If not, see . #include "savegameinfowidgetgamebryo.h" #include #include +#include namespace Ui { class MainWindow; @@ -64,6 +65,28 @@ class MainWindow : public QMainWindow, public MOBase::IOrganizer, public MOBase: Q_OBJECT Q_INTERFACES(MOBase::IPluginDiagnose) +private: + + struct SignalCombinerAnd + { + typedef bool result_type; + template + bool operator()(InputIterator first, InputIterator last) const + { + while (first != last) { + if (!(*first)) { + return false; + } + ++first; + } + return true; + } + }; + +public: + + typedef boost::signals2::signal SignalAboutToRunApplication; + public: explicit MainWindow(const QString &exeName, QSettings &initSettings, QWidget *parent = 0); ~MainWindow(); @@ -115,7 +138,7 @@ public: virtual QStringList findFiles(const QString &path, const std::function &filter) const; virtual MOBase::IDownloadManager *downloadManager(); virtual HANDLE startApplication(const QString &executable, const QStringList &args = QStringList(), const QString &cwd = "", const QString &profile = ""); - virtual bool onAboutToRun(const boost::function &func); + virtual bool onAboutToRun(const std::function &func); virtual std::vector activeProblems() const; virtual QString shortDescription(unsigned int key) const; -- cgit v1.3.1 From b47c89661e603336abd98d5ecd0a82f6743cab18 Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 16 Oct 2013 23:04:03 +0200 Subject: - plugin (esp/esm) list is now exposed to plugins (read-only functionality right now) - integrated fomod installer now supports file dependencies - bugfix: integrated fomod installer crashed if the installer had no optiosn´´ns MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mainwindow.cpp | 5 +++++ src/mainwindow.h | 23 +---------------------- src/pluginlist.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ src/pluginlist.h | 9 ++++++++- 4 files changed, 54 insertions(+), 23 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b7a0fc2f..de6f20cf 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2095,6 +2095,11 @@ IDownloadManager *MainWindow::downloadManager() return &m_DownloadManager; } +IPluginList *MainWindow::pluginList() +{ + return &m_PluginList; +} + HANDLE MainWindow::startApplication(const QString &executable, const QStringList &args, const QString &cwd, const QString &profile) { QFileInfo binary; diff --git a/src/mainwindow.h b/src/mainwindow.h index dc8d20c8..a96e5fcf 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -84,28 +84,6 @@ private: } }; -public: - - typedef boost::signals2::signal SignalAboutToRunApplication; - -public: - - struct SignalCombinerAnd - { - typedef bool result_type; - template - bool operator()(InputIterator first, InputIterator last) const - { - while (first != last) { - if (!(*first)) { - return false; - } - ++first; - } - return true; - } - }; - typedef boost::signals2::signal SignalAboutToRunApplication; public: @@ -158,6 +136,7 @@ public: virtual QStringList listDirectories(const QString &directoryName) const; virtual QStringList findFiles(const QString &path, const std::function &filter) const; virtual MOBase::IDownloadManager *downloadManager(); + virtual MOBase::IPluginList *pluginList(); virtual HANDLE startApplication(const QString &executable, const QStringList &args = QStringList(), const QString &cwd = "", const QString &profile = ""); virtual bool onAboutToRun(const std::function &func); diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 55f8a39e..74aa6ff3 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -571,6 +571,46 @@ void PluginList::refreshLoadOrder() } } +IPluginList::PluginState PluginList::state(const QString &name) const +{ + auto iter = m_ESPsByName.find(name.toLower()); + if (iter == m_ESPsByName.end()) { + return IPluginList::STATE_MISSING; + } else { + return m_ESPs[iter->second].m_Enabled ? IPluginList::STATE_ACTIVE : IPluginList::STATE_INACTIVE; + } +} + +int PluginList::priority(const QString &name) const +{ + auto iter = m_ESPsByName.find(name.toLower()); + if (iter == m_ESPsByName.end()) { + return -1; + } else { + return m_ESPs[iter->second].m_Priority; + } +} + +int PluginList::loadOrder(const QString &name) const +{ + auto iter = m_ESPsByName.find(name.toLower()); + if (iter == m_ESPsByName.end()) { + return -1; + } else { + return m_ESPs[iter->second].m_LoadOrder; + } +} + +bool PluginList::isMaster(const QString &name) const +{ + auto iter = m_ESPsByName.find(name.toLower()); + if (iter == m_ESPsByName.end()) { + return false; + } else { + return m_ESPs[iter->second].m_IsMaster; + } +} + void PluginList::updateIndices() { diff --git a/src/pluginlist.h b/src/pluginlist.h index 60c9be95..2ad54d6d 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -25,12 +25,13 @@ along with Mod Organizer. If not, see . #include #include #include +#include /** * @brief model representing the plugins (.esp/.esm) in the current virtual data folder **/ -class PluginList : public QAbstractTableModel +class PluginList : public QAbstractTableModel, public MOBase::IPluginList { Q_OBJECT @@ -134,6 +135,12 @@ public: void refreshLoadOrder(); +public: + virtual PluginState state(const QString &name) const; + virtual int priority(const QString &name) const; + virtual int loadOrder(const QString &name) const; + virtual bool isMaster(const QString &name) const; + public: // implementation of the QAbstractTableModel interface virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; -- cgit v1.3.1 From 9a03783f491505940a20d006055a5427bf364807 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 18 Oct 2013 23:35:38 +0200 Subject: - tooltip on download list now contains the file name - bugfix: when refreshing the directory tree conflict information wasn't immediately refreshed (including on start) - bugfix: dataChanged events wasn't emitted when user changed the modlist - bugfix: file patterns in checkfnis plugin weren't completely correct --- src/downloadlist.cpp | 6 ++++-- src/mainwindow.cpp | 7 ++++++- src/modinfo.cpp | 8 +++++++- src/modinfo.h | 10 ++++++++++ src/modlist.cpp | 21 +++++++++++++-------- 5 files changed, 40 insertions(+), 12 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/downloadlist.cpp b/src/downloadlist.cpp index 9ab48013..fe021a27 100644 --- a/src/downloadlist.cpp +++ b/src/downloadlist.cpp @@ -75,12 +75,14 @@ QVariant DownloadList::data(const QModelIndex &index, int role) const if (role == Qt::DisplayRole) { return index.row(); } else if (role == Qt::ToolTipRole) { + QString text = m_Manager->getFileName(index.row()) + "\n"; if (m_Manager->isInfoIncomplete(index.row())) { - return tr("Information missing, please select \"Query Info\" from the context menu to re-retrieve."); + text += tr("Information missing, please select \"Query Info\" from the context menu to re-retrieve."); } else { NexusInfo info = m_Manager->getNexusInfo(index.row()); - return QString("%1 (ID %2) %3").arg(info.m_ModName).arg(m_Manager->getModID(index.row())).arg(info.m_Version); + text += QString("%1 (ID %2) %3").arg(info.m_ModName).arg(m_Manager->getModID(index.row())).arg(info.m_Version); } + return text; } else { return QVariant(); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index de6f20cf..4c72ada3 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2080,7 +2080,7 @@ QStringList MainWindow::findFiles(const QString &path, const std::function files = dir->getFiles(); foreach (FileEntry::Ptr file, files) { - if (filter(ToQString(file->getName()))) { + if (filter(ToQString(file->getFullPath()))) { result.append(ToQString(file->getFullPath())); } } @@ -2498,6 +2498,11 @@ void MainWindow::directory_refreshed() // some problem-reports may rely on the virtual directory tree so they need to be updated // now updateProblemsButton(); + + for (int i = 0; i < m_ModList.rowCount(); ++i) { + ModInfo::Ptr modInfo = ModInfo::getByIndex(i); + modInfo->clearCaches(); + } } diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 9bc013f1..8d672675 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -324,6 +324,7 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc } } + QString categoriesString = metaFile.value("category", "").toString(); QStringList categories = categoriesString.split(',', QString::SkipEmptyParts); @@ -589,6 +590,11 @@ void ModInfoRegular::endorse(bool doEndorse) } } +void ModInfoRegular::clearCaches() +{ + m_LastConflictCheck = QTime(); +} + QString ModInfoRegular::absolutePath() const { @@ -690,7 +696,7 @@ ModInfoRegular::EConflictType ModInfoRegular::isConflicted() const { // this is costy so cache the result QTime now = QTime::currentTime(); - if (abs(m_LastConflictCheck.secsTo(now)) > 10) { + if (m_LastConflictCheck.isNull() || (m_LastConflictCheck.secsTo(now) > 10)) { bool overwrite = false; bool overwritten = false; bool regular = false; diff --git a/src/modinfo.h b/src/modinfo.h index 59030350..71c8de55 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -282,6 +282,11 @@ public: */ virtual void endorse(bool doEndorse) = 0; + /** + * @brief clear all caches held for this mod + */ + virtual void clearCaches() {} + /** * @brief getter for the mod name * @@ -633,6 +638,11 @@ public: */ virtual void endorse(bool doEndorse); + /** + * @brief clear all caches held for this mod + */ + virtual void clearCaches(); + /** * @brief getter for the mod name * diff --git a/src/modlist.cpp b/src/modlist.cpp index 786f6f17..18bbfd5a 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -373,9 +373,10 @@ bool ModList::setData(const QModelIndex &index, const QVariant &value, int role) } return true; } else if (role == Qt::EditRole) { + bool res = false; switch (index.column()) { case COL_NAME: { - return renameMod(modID, value.toString()); + res = renameMod(modID, value.toString()); } break; case COL_PRIORITY: { bool ok = false; @@ -384,9 +385,9 @@ bool ModList::setData(const QModelIndex &index, const QVariant &value, int role) m_Profile->setModPriority(modID, newPriority); emit modlist_changed(index, role); - return true; + res = true; } else { - return false; + res = false; } } break; case COL_MODID: { @@ -396,9 +397,9 @@ bool ModList::setData(const QModelIndex &index, const QVariant &value, int role) if (ok) { info->setNexusID(newID); emit modlist_changed(index, role); - return true; + res = true; } else { - return false; + res = false; } } break; case COL_VERSION: { @@ -407,17 +408,21 @@ bool ModList::setData(const QModelIndex &index, const QVariant &value, int role) VersionInfo version(value.toString(), scheme); if (version.isValid()) { info->setVersion(version); - return true; + res = true; } else { - return false; + res = false; } } break; default: { qWarning("edit on column \"%s\" not supported", getColumnName(index.column()).toUtf8().constData()); - return false; + res = false; } break; } + if (res) { + emit dataChanged(index, index); + } + return res; } else { return false; } -- cgit v1.3.1 From bc7c42dbe8dd85a77a2eb8c1d094c77aa5cb7b1f Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 20 Oct 2013 16:51:40 +0200 Subject: - directories in data-view are now sorted - questionbox with selection memory is now exposed to plugins - the choice to run fnis from the checker can now be memorized --- src/mainwindow.cpp | 11 ++-- src/organizer.pro | 3 - src/questionboxmemory.cpp | 72 ---------------------- src/questionboxmemory.h | 63 ------------------- src/questionboxmemory.ui | 139 ------------------------------------------ src/shared/directoryentry.cpp | 7 +++ 6 files changed, 14 insertions(+), 281 deletions(-) delete mode 100644 src/questionboxmemory.cpp delete mode 100644 src/questionboxmemory.h delete mode 100644 src/questionboxmemory.ui (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4c72ada3..14bb3b59 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -59,14 +59,15 @@ along with Mod Organizer. If not, see . #include #include #include +#include #include #include -#include #include +#include +#include #include #include #include -#include #include #include #include @@ -162,6 +163,8 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget ui->actionEndorseMO->setVisible(false); + MOBase::QuestionBoxMemory::init(initSettings.fileName()); + updateProblemsButton(); updateToolBar(); @@ -1264,7 +1267,7 @@ HANDLE MainWindow::spawnBinaryDirect(const QFileInfo &binary, const QString &arg (m_Settings.getLoadMechanism() == LoadMechanism::LOAD_MODORGANIZER)) { if (!testForSteam()) { if (QuestionBoxMemory::query(this->isVisible() ? this : NULL, - m_Settings.directInterface(), "steamQuery", tr("Start Steam?"), + "steamQuery", tr("Start Steam?"), tr("Steam is required to be running already to correctly start the game. " "Should MO try to start steam now?"), QDialogButtonBox::Yes | QDialogButtonBox::No) == QDialogButtonBox::Yes) { @@ -3094,7 +3097,7 @@ void MainWindow::testExtractBSA(int modIndex) QFileInfoList archives = dir.entryInfoList(QStringList("*.bsa")); if (archives.length() != 0 && - (QuestionBoxMemory::query(this, m_Settings.directInterface(), "unpackBSA", tr("Extract BSA"), + (QuestionBoxMemory::query(this, "unpackBSA", tr("Extract BSA"), tr("This mod contains at least one BSA. Do you want to unpack it?\n" "(This removes the BSA after completion. If you don't know about BSAs, just select no)"), QDialogButtonBox::Yes | QDialogButtonBox::No, QDialogButtonBox::No) == QMessageBox::Yes)) { diff --git a/src/organizer.pro b/src/organizer.pro index c817f2da..907979ee 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -27,7 +27,6 @@ SOURCES += \ savegamegamebryo.cpp \ savegame.cpp \ report.cpp \ - questionboxmemory.cpp \ queryoverwritedialog.cpp \ profilesdialog.cpp \ profile.cpp \ @@ -95,7 +94,6 @@ HEADERS += \ savegamegamebyro.h \ savegame.h \ report.h \ - questionboxmemory.h \ queryoverwritedialog.h \ profilesdialog.h \ profile.h \ @@ -156,7 +154,6 @@ FORMS += \ settingsdialog.ui \ selectiondialog.ui \ savegameinfowidget.ui \ - questionboxmemory.ui \ queryoverwritedialog.ui \ profilesdialog.ui \ overwriteinfodialog.ui \ diff --git a/src/questionboxmemory.cpp b/src/questionboxmemory.cpp deleted file mode 100644 index a7bb72b6..00000000 --- a/src/questionboxmemory.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* -Copyright (C) 2012 Sebastian Herbord. All rights reserved. - -This file is part of Mod Organizer. - -Mod Organizer is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Mod Organizer is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Mod Organizer. If not, see . -*/ - -#include "questionboxmemory.h" -#include "ui_questionboxmemory.h" - -#include -#include - -QuestionBoxMemory::QuestionBoxMemory(QWidget *parent, const QString &title, const QString &text, - const QDialogButtonBox::StandardButtons buttons, QDialogButtonBox::StandardButton defaultButton) - : QDialog(parent), ui(new Ui::QuestionBoxMemory) -{ - ui->setupUi(this); - - this->setWindowTitle(title); - - QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion); - ui->iconLabel->setPixmap(icon.pixmap(128)); - ui->messageLabel->setText(text); - ui->buttonBox->setStandardButtons(buttons); - if (defaultButton != QDialogButtonBox::NoButton) { - ui->buttonBox->button(defaultButton)->setDefault(true); - } - connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*))); -} - - -QuestionBoxMemory::~QuestionBoxMemory() -{ - delete ui; -} - - -void QuestionBoxMemory::buttonClicked(QAbstractButton *button) -{ - m_Button = ui->buttonBox->standardButton(button); -} - - -QDialogButtonBox::StandardButton QuestionBoxMemory::query(QWidget *parent, - QSettings &settings, const QString &name, - const QString &title, const QString &text, QDialogButtonBox::StandardButtons buttons, - QDialogButtonBox::StandardButton defaultButton) -{ - if (settings.contains(QString("DialogChoices/") + name)) { - return static_cast(settings.value(QString("DialogChoices/") + name).toInt()); - } else { - QuestionBoxMemory dialog(parent, title, text, buttons, defaultButton); - dialog.exec(); - if (dialog.ui->rememberCheckBox->isChecked()) { - settings.setValue(QString("DialogChoices/") + name, dialog.m_Button); - } - return dialog.m_Button; - } -} diff --git a/src/questionboxmemory.h b/src/questionboxmemory.h deleted file mode 100644 index 72351830..00000000 --- a/src/questionboxmemory.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright (C) 2012 Sebastian Herbord. All rights reserved. - -This file is part of Mod Organizer. - -Mod Organizer is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Mod Organizer is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Mod Organizer. If not, see . -*/ - -#ifndef QUESTIONBOXMEMORY_H -#define QUESTIONBOXMEMORY_H - -#include -#include -#include - - -namespace Ui { - class QuestionBoxMemory; -} - - -class QuestionBoxMemory : public QDialog -{ - Q_OBJECT - -public: - - virtual ~QuestionBoxMemory(); - static QDialogButtonBox::StandardButton query(QWidget *parent, - QSettings &settings, const QString &name, - const QString &title, const QString &text, - QDialogButtonBox::StandardButtons buttons = QDialogButtonBox::Yes | QDialogButtonBox::No, - QDialogButtonBox::StandardButton defaultButton = QDialogButtonBox::NoButton); -private slots: - - void buttonClicked(QAbstractButton *button); - -private: - - explicit QuestionBoxMemory(QWidget *parent, const QString &title, const QString &text, const QDialogButtonBox::StandardButtons buttons, - QDialogButtonBox::StandardButton defaultButton); - -private: - - Ui::QuestionBoxMemory *ui; - QDialogButtonBox::StandardButton m_Button; - -}; - -#endif // QUESTIONBOXMEMORY_H - - diff --git a/src/questionboxmemory.ui b/src/questionboxmemory.ui deleted file mode 100644 index 9c211fe8..00000000 --- a/src/questionboxmemory.ui +++ /dev/null @@ -1,139 +0,0 @@ - - - QuestionBoxMemory - - - - 0 - 0 - 374 - 130 - - - - Placeholder - - - - 1 - - - 2 - - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - - 0 - 0 - - - - - 36 - 36 - - - - false - - - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - - - - 9 - - - - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - true - - - - - - - - - - 7 - - - - - Remember selection - - - - - - - Qt::Horizontal - - - QDialogButtonBox::No|QDialogButtonBox::Yes - - - - - - - - - - - buttonBox - accepted() - QuestionBoxMemory - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - QuestionBoxMemory - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp index b3a12498..dde8a69e 100644 --- a/src/shared/directoryentry.cpp +++ b/src/shared/directoryentry.cpp @@ -492,6 +492,12 @@ static bool SupportOptimizedFind() } +static bool DirCompareByName(const DirectoryEntry *lhs, const DirectoryEntry *rhs) +{ + return wcsicmp(lhs->getName().c_str(), rhs->getName().c_str()) < 0; +} + + void DirectoryEntry::addFiles(FilesOrigin &origin, wchar_t *buffer, int bufferOffset) { WIN32_FIND_DATAW findData; @@ -523,6 +529,7 @@ void DirectoryEntry::addFiles(FilesOrigin &origin, wchar_t *buffer, int bufferOf result = ::FindNextFileW(searchHandle, &findData); } } + std::sort(m_SubDirectories.begin(), m_SubDirectories.end(), &DirCompareByName); ::FindClose(searchHandle); } -- cgit v1.3.1 From 8c0b309bdee2527fab66b00b34171ef18f5055bf Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 25 Oct 2013 14:49:42 +0200 Subject: - Option to choose edition of the game. Currently only relevant for FO3 because FO3 GOTY is its own app - applications that aren't in the executables list can again be started from the command line - references to missing categories are now removed from mods - bugfix: integrated fomod installer didn't update description and picture on some constellations of Windows version and theme --- src/ModOrganizer.pro | 20 ++++++++++---------- src/main.cpp | 21 +++++++++++++++++++++ src/mainwindow.cpp | 2 +- src/modinfo.cpp | 1 - src/modlist.cpp | 14 ++++++++++---- src/settings.cpp | 2 +- src/shared/fallout3info.cpp | 11 +++++++++-- src/shared/fallout3info.h | 3 ++- src/shared/falloutnvinfo.cpp | 2 +- src/shared/falloutnvinfo.h | 2 +- src/shared/gameinfo.cpp | 6 ++++++ src/shared/gameinfo.h | 3 ++- src/shared/oblivioninfo.cpp | 2 +- src/shared/oblivioninfo.h | 2 +- src/shared/skyriminfo.cpp | 2 +- src/shared/skyriminfo.h | 2 +- src/version.rc | 4 ++-- 17 files changed, 70 insertions(+), 29 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro index c8bfe6df..f35958f8 100644 --- a/src/ModOrganizer.pro +++ b/src/ModOrganizer.pro @@ -3,21 +3,21 @@ CONFIG += ordered SUBDIRS = bsatk \ - shared \ - uibase \ - organizer \ - hookdll \ - archive \ - helper \ + shared \ + uibase \ + organizer \ + hookdll \ + archive \ + helper \ plugins \ proxydll \ nxmhandler \ - BossDummy \ - pythonRunner \ - esptk + BossDummy \ + pythonRunner \ + esptk hookdll.depends = shared -organizer.depends = shared, uibase, plugins +organizer.depends = shared uibase plugins CONFIG(debug, debug|release) { DESTDIR = outputd diff --git a/src/main.cpp b/src/main.cpp index 59a4e837..90cf9e0e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -400,6 +400,27 @@ int main(int argc, char *argv[]) settings.setValue("gamePath", gamePath.toUtf8().constData()); } + int edition = 0; + if (settings.contains("game_edition")) { + edition = settings.value("game_edition").toInt(); + } else { + std::vector editions = GameInfo::instance().getSteamVariants(); + if (editions.size() < 2) { + edition = 0; + } else { + SelectionDialog selection(QObject::tr("Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!)"), NULL); + int index = 0; + for (auto iter = editions.begin(); iter != editions.end(); ++iter) { + selection.addChoice(ToQString(*iter), "", index++); + } + if (selection.exec() == QDialog::Rejected) { + return -1; + } else { + settings.setValue("game_edition", selection.getChoiceData().toInt()); + } + } + } + qDebug("managing game at %s", qPrintable(QDir::toNativeSeparators(gamePath))); ExecutablesList executablesList; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 14bb3b59..cf8e355f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2134,7 +2134,7 @@ HANDLE MainWindow::startApplication(const QString &executable, const QStringList } } catch (const std::runtime_error&) { qWarning("\"%s\" not set up as executable", executable.toUtf8().constData()); - return INVALID_HANDLE_VALUE; + binary = QFileInfo(executable); } } diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 8d672675..faf8c95b 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -560,7 +560,6 @@ void ModInfoRegular::addNexusCategory(int categoryID) m_Categories.insert(CategoryFactory::instance().resolveNexusID(categoryID)); } - void ModInfoRegular::setIsEndorsed(bool endorsed) { if (m_EndorsedState != ENDORSED_NEVER) { diff --git a/src/modlist.cpp b/src/modlist.cpp index 18bbfd5a..0fdcf6fa 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -169,10 +169,16 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const int category = modInfo->getPrimaryCategory(); if (category != -1) { CategoryFactory &categoryFactory = CategoryFactory::instance(); - try { - return categoryFactory.getCategoryName(categoryFactory.getCategoryIndex(category)); - } catch (const std::exception &e) { - qCritical("failed to retrieve category name: %s", e.what()); + if (categoryFactory.categoryExists(category)) { + try { + return categoryFactory.getCategoryName(categoryFactory.getCategoryIndex(category)); + } catch (const std::exception &e) { + qCritical("failed to retrieve category name: %s", e.what()); + return QString(); + } + } else { + qWarning("category %d doesn't exist (may have been removed)", category); + modInfo->setCategory(category, false); return QString(); } } else { diff --git a/src/settings.cpp b/src/settings.cpp index 4f301b0c..36a4f1f8 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -159,7 +159,7 @@ bool Settings::automaticLoginEnabled() const QString Settings::getSteamAppID() const { - return m_Settings.value("Settings/app_id", ToQString(GameInfo::instance().getSteamAPPId())).toString(); + return m_Settings.value("Settings/app_id", ToQString(GameInfo::instance().getSteamAPPId(m_Settings.value("game_edition", 0).toInt()))).toString(); } QString Settings::getDownloadDirectory() const diff --git a/src/shared/fallout3info.cpp b/src/shared/fallout3info.cpp index 79dd90c9..c673fa1b 100644 --- a/src/shared/fallout3info.cpp +++ b/src/shared/fallout3info.cpp @@ -133,10 +133,17 @@ std::wstring Fallout3Info::getOMODExt() return L"fomod"; } +std::vector Fallout3Info::getSteamVariants() const +{ + return boost::assign::list_of(L"Regular")(L"Game Of The Year"); +} -std::wstring Fallout3Info::getSteamAPPId() +std::wstring Fallout3Info::getSteamAPPId(int variant) const { - return L"22300"; + switch (variant) { + case 1: return L"22370"; + default: return L"22300"; + } } diff --git a/src/shared/fallout3info.h b/src/shared/fallout3info.h index 95a76471..0fa97d41 100644 --- a/src/shared/fallout3info.h +++ b/src/shared/fallout3info.h @@ -66,7 +66,8 @@ public: virtual std::wstring getReferenceDataFile(); virtual std::wstring getOMODExt(); - virtual std::wstring getSteamAPPId(); + virtual std::vector getSteamVariants() const; + virtual std::wstring getSteamAPPId(int variant = 0) const; virtual std::wstring getSEName(); diff --git a/src/shared/falloutnvinfo.cpp b/src/shared/falloutnvinfo.cpp index 6da454ee..7d7f0098 100644 --- a/src/shared/falloutnvinfo.cpp +++ b/src/shared/falloutnvinfo.cpp @@ -136,7 +136,7 @@ std::wstring FalloutNVInfo::getOMODExt() } -std::wstring FalloutNVInfo::getSteamAPPId() +std::wstring FalloutNVInfo::getSteamAPPId(int) const { return L"22380"; } diff --git a/src/shared/falloutnvinfo.h b/src/shared/falloutnvinfo.h index 2f6cba7b..3960c951 100644 --- a/src/shared/falloutnvinfo.h +++ b/src/shared/falloutnvinfo.h @@ -68,7 +68,7 @@ public: virtual std::wstring getReferenceDataFile(); virtual std::wstring getOMODExt(); - virtual std::wstring getSteamAPPId(); + virtual std::wstring getSteamAPPId(int variant = 0) const; virtual std::wstring getSEName(); diff --git a/src/shared/gameinfo.cpp b/src/shared/gameinfo.cpp index f74e52b4..00bb42fd 100644 --- a/src/shared/gameinfo.cpp +++ b/src/shared/gameinfo.cpp @@ -30,6 +30,7 @@ along with Mod Organizer. If not, see . #include #include #include +#include namespace MOShared { @@ -184,6 +185,11 @@ bool GameInfo::requiresSteam() const return FileExists(getGameDirectory().append(L"\\steam_api.dll")); } +std::vector GameInfo::getSteamVariants() const +{ + return boost::assign::list_of(L"Regular"); +} + std::wstring GameInfo::getLocalAppFolder() const { diff --git a/src/shared/gameinfo.h b/src/shared/gameinfo.h index 14f52f05..0221dd1b 100644 --- a/src/shared/gameinfo.h +++ b/src/shared/gameinfo.h @@ -137,7 +137,8 @@ public: virtual std::wstring getOMODExt() = 0; - virtual std::wstring getSteamAPPId() = 0; + virtual std::vector getSteamVariants() const; + virtual std::wstring getSteamAPPId(int variant = 0) const = 0; virtual std::wstring getSEName() = 0; diff --git a/src/shared/oblivioninfo.cpp b/src/shared/oblivioninfo.cpp index 7c6d5cbb..b3e65e59 100644 --- a/src/shared/oblivioninfo.cpp +++ b/src/shared/oblivioninfo.cpp @@ -243,7 +243,7 @@ std::wstring OblivionInfo::getOMODExt() } -std::wstring OblivionInfo::getSteamAPPId() +std::wstring OblivionInfo::getSteamAPPId(int) const { return L"22330"; } diff --git a/src/shared/oblivioninfo.h b/src/shared/oblivioninfo.h index 13374aa3..6a9f56ca 100644 --- a/src/shared/oblivioninfo.h +++ b/src/shared/oblivioninfo.h @@ -64,7 +64,7 @@ public: virtual std::wstring getReferenceDataFile(); virtual std::wstring getOMODExt(); - virtual std::wstring getSteamAPPId(); + virtual std::wstring getSteamAPPId(int variant = 0) const; virtual std::wstring getSEName(); diff --git a/src/shared/skyriminfo.cpp b/src/shared/skyriminfo.cpp index 71d791f5..0a0dd98d 100644 --- a/src/shared/skyriminfo.cpp +++ b/src/shared/skyriminfo.cpp @@ -169,7 +169,7 @@ std::wstring SkyrimInfo::getOMODExt() } -std::wstring SkyrimInfo::getSteamAPPId() +std::wstring SkyrimInfo::getSteamAPPId(int) const { return L"72850"; } diff --git a/src/shared/skyriminfo.h b/src/shared/skyriminfo.h index c5d31ff0..ae5ab81f 100644 --- a/src/shared/skyriminfo.h +++ b/src/shared/skyriminfo.h @@ -71,7 +71,7 @@ public: virtual std::wstring getReferenceDataFile(); virtual std::wstring getOMODExt(); - virtual std::wstring getSteamAPPId(); + virtual std::wstring getSteamAPPId(int variant = 0) const; virtual std::wstring getSEName(); diff --git a/src/version.rc b/src/version.rc index e71bc1b5..55de3798 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,5,0 -#define VER_FILEVERSION_STR "1,0,5,0\0" +#define VER_FILEVERSION 1,0,7,0 +#define VER_FILEVERSION_STR "1,0,7,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 09bd3dbead9afd6a57684908e77aba6960ad464d Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 26 Oct 2013 15:02:31 +0200 Subject: - text files encoded in system encoding should now be correctly recognized in the mod info dialog - archive-list can be user-sorted again (within one mod) --- src/mainwindow.cpp | 11 ++++++----- src/mainwindow.h | 2 +- src/mainwindow.ui | 26 ++++++++++++++++---------- src/modinfodialog.cpp | 30 +++++++++++++++++++----------- 4 files changed, 42 insertions(+), 27 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cf8e355f..967a3842 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -205,7 +205,6 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget resizeLists(initSettings.contains("mod_list_state"), initSettings.contains("plugin_list_state")); - QMenu *linkMenu = new QMenu(this); linkMenu->addAction(QIcon(":/MO/gui/link"), tr("Toolbar"), this, SLOT(linkToolbar())); linkMenu->addAction(QIcon(":/MO/gui/link"), tr("Desktop"), this, SLOT(linkDesktop())); @@ -247,6 +246,8 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget connect(ui->espFilterEdit, SIGNAL(textChanged(QString)), this, SLOT(espFilterChanged(QString))); connect(&m_PluginList, SIGNAL(saveTimer()), this, SLOT(savePluginList())); + connect(ui->bsaList, SIGNAL(itemsMoved()), this, SLOT(on_bsaList_itemMoved())); + connect(ui->bsaWarning, SIGNAL(linkActivated(QString)), this, SLOT(linkClicked(QString))); connect(&m_DirectoryRefresher, SIGNAL(refreshed()), this, SLOT(directory_refreshed())); @@ -681,7 +682,7 @@ bool MainWindow::saveCurrentLists() reportError(tr("failed to save load order: %1").arg(e.what())); } - // ensure the archive list exists + // save only if the file doesn't exist at all, changes made in the ui are saved immediately if (!QFile::exists(m_CurrentProfile->getArchivesFileName())) { saveArchiveList(); } @@ -883,8 +884,7 @@ void MainWindow::hideSaveGameInfo() } } - -bool MainWindow::eventFilter(QObject* object, QEvent *event) +bool MainWindow::eventFilter(QObject *object, QEvent *event) { if ((object == ui->savegameList) && ((event->type() == QEvent::Leave) || (event->type() == QEvent::WindowDeactivate))) { @@ -1802,6 +1802,7 @@ void MainWindow::refreshBSAList() subItem = items.at(0); } else { subItem = new QTreeWidgetItem(QStringList(ToQString(origin.getName()))); + subItem->setFlags(subItem->flags() & ~Qt::ItemIsDragEnabled); ui->bsaList->addTopLevelItem(subItem); } subItem->addChild(iter->second); @@ -4649,7 +4650,7 @@ void MainWindow::on_bsaList_customContextMenuRequested(const QPoint &pos) menu.exec(ui->bsaList->mapToGlobal(pos)); } -void MainWindow::on_bsaList_itemChanged(QTreeWidgetItem*, int) +void MainWindow::on_bsaList_itemMoved() { saveArchiveList(); m_CheckBSATimer.start(500); diff --git a/src/mainwindow.h b/src/mainwindow.h index a96e5fcf..93a6af80 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -510,7 +510,7 @@ private slots: // ui slots void on_actionEndorseMO_triggered(); void on_bsaList_customContextMenuRequested(const QPoint &pos); - void on_bsaList_itemChanged(QTreeWidgetItem *item, int column); + void on_bsaList_itemMoved(); void on_btnRefreshData_clicked(); void on_categoriesList_customContextMenuRequested(const QPoint &pos); void on_compactBox_toggled(bool checked); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index b29136ff..73ca868e 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -577,7 +577,7 @@ p, li { white-space: pre-wrap; } QTabWidget::Rounded - 0 + 1 @@ -725,7 +725,7 @@ p, li { white-space: pre-wrap; } 6 - + Qt::CustomContextMenu @@ -742,7 +742,7 @@ BSAs checked here are loaded in such a way that your installation order is obeye QAbstractItemView::NoEditTriggers - false + true false @@ -751,10 +751,10 @@ BSAs checked here are loaded in such a way that your installation order is obeye false - QAbstractItemView::NoDragDrop + QAbstractItemView::DragDrop - Qt::IgnoreAction + Qt::MoveAction QAbstractItemView::SingleSelection @@ -768,6 +768,12 @@ BSAs checked here are loaded in such a way that your installation order is obeye true + + 1 + + + false + 200 @@ -776,11 +782,6 @@ BSAs checked here are loaded in such a way that your installation order is obeye File - - - Mod - - @@ -1224,6 +1225,11 @@ Right now this has very limited functionality QTreeView
modlistview.h
+ + MOBase::SortableTreeWidget + QTreeWidget +
sortabletreewidget.h
+
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index b4ae57ea..fae21cc4 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -254,17 +254,19 @@ void ModInfoDialog::refreshLists() } else if ((fileName.endsWith(".png", Qt::CaseInsensitive)) || (fileName.endsWith(".jpg", Qt::CaseInsensitive))) { QImage image = QImage(fileName); - if (static_cast(image.width()) / static_cast(image.height()) > 1.34) { - image = image.scaledToWidth(128); - } else { - image = image.scaledToHeight(96); - } + if (!image.isNull()) { + if (static_cast(image.width()) / static_cast(image.height()) > 1.34) { + image = image.scaledToWidth(128); + } else { + image = image.scaledToHeight(96); + } - QPushButton *thumbnailButton = new QPushButton(QPixmap::fromImage(image), ""); - thumbnailButton->setIconSize(QSize(image.width(), image.height())); - connect(thumbnailButton, SIGNAL(clicked()), &m_ThumbnailMapper, SLOT(map())); - m_ThumbnailMapper.setMapping(thumbnailButton, fileName); - ui->thumbnailArea->addWidget(thumbnailButton); + QPushButton *thumbnailButton = new QPushButton(QPixmap::fromImage(image), ""); + thumbnailButton->setIconSize(QSize(image.width(), image.height())); + connect(thumbnailButton, SIGNAL(clicked()), &m_ThumbnailMapper, SLOT(map())); + m_ThumbnailMapper.setMapping(thumbnailButton, fileName); + ui->thumbnailArea->addWidget(thumbnailButton); + } } } @@ -400,7 +402,13 @@ void ModInfoDialog::openTextFile(const QString &fileName) textFile.open(QIODevice::ReadOnly); QByteArray buffer = textFile.readAll(); QTextCodec *codec = QTextCodec::codecForUtfText(buffer, m_UTF8Codec); - ui->textFileView->setText(codec->toUnicode(buffer)); + QString text = codec->toUnicode(buffer); + if (codec->fromUnicode(text) != buffer) { + qDebug("conversion failed assuming local encoding"); + codec = QTextCodec::codecForLocale(); + text = codec->toUnicode(buffer); + } + ui->textFileView->setText(text); ui->textFileView->setProperty("currentFile", fileName); ui->textFileView->setProperty("encoding", codec->name()); ui->saveTXTButton->setEnabled(false); -- cgit v1.3.1 From d1594798e6e78bb329e744a72e92d3f292f38a20 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 1 Nov 2013 14:59:25 +0100 Subject: - added a new diagnosis to detect potential problems in regards to esp vs. asset ordering (not fully functional yet) - new plugin interfaces to the mod list - plugins can now query the origin (mod) of a esp/esm - bugfix: potential access to profile before one was activated - bugfix: regression in previous (not-yet-released) commit prevented changes to bsa list from being saved --- src/mainwindow.cpp | 18 +++++++++++++--- src/mainwindow.h | 4 +++- src/modlist.cpp | 40 +++++++++++++++++++++++++++++++++++ src/modlist.h | 15 ++++++++++++- src/pluginlist.cpp | 9 ++++++++ src/pluginlist.h | 1 + src/problemsdialog.ui | 58 +++++++++++++++++++++++++-------------------------- 7 files changed, 110 insertions(+), 35 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 967a3842..774c99f5 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -246,7 +246,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget connect(ui->espFilterEdit, SIGNAL(textChanged(QString)), this, SLOT(espFilterChanged(QString))); connect(&m_PluginList, SIGNAL(saveTimer()), this, SLOT(savePluginList())); - connect(ui->bsaList, SIGNAL(itemsMoved()), this, SLOT(on_bsaList_itemMoved())); + connect(ui->bsaList, SIGNAL(itemsMoved()), this, SLOT(bsaList_itemMoved())); connect(ui->bsaWarning, SIGNAL(linkActivated(QString)), this, SLOT(linkClicked(QString))); @@ -1673,7 +1673,7 @@ void MainWindow::refreshSaveList() void MainWindow::refreshLists() { - if (m_DirectoryStructure->isPopulated()) { + if ((m_CurrentProfile != NULL) && m_DirectoryStructure->isPopulated()) { refreshESPList(); refreshBSAList(); } // no point in refreshing lists if no files have been added to the directory tree @@ -2104,6 +2104,11 @@ IPluginList *MainWindow::pluginList() return &m_PluginList; } +IModList *MainWindow::modList() +{ + return &m_ModList; +} + HANDLE MainWindow::startApplication(const QString &executable, const QStringList &args, const QString &cwd, const QString &profile) { QFileInfo binary; @@ -4650,13 +4655,19 @@ void MainWindow::on_bsaList_customContextMenuRequested(const QPoint &pos) menu.exec(ui->bsaList->mapToGlobal(pos)); } -void MainWindow::on_bsaList_itemMoved() +void MainWindow::bsaList_itemMoved() { saveArchiveList(); m_CheckBSATimer.start(500); } +void MainWindow::on_bsaList_itemChanged(QTreeWidgetItem*, int) +{ + saveArchiveList(); + m_CheckBSATimer.start(500); +} + void MainWindow::on_actionProblems_triggered() { // QString problemDescription; @@ -4836,3 +4847,4 @@ void MainWindow::on_showHiddenBox_toggled(bool checked) { m_DownloadManager.setShowHidden(checked); } + diff --git a/src/mainwindow.h b/src/mainwindow.h index 93a6af80..cf97d4f9 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -137,6 +137,7 @@ public: virtual QStringList findFiles(const QString &path, const std::function &filter) const; virtual MOBase::IDownloadManager *downloadManager(); virtual MOBase::IPluginList *pluginList(); + virtual MOBase::IModList *modList(); virtual HANDLE startApplication(const QString &executable, const QStringList &args = QStringList(), const QString &cwd = "", const QString &profile = ""); virtual bool onAboutToRun(const std::function &func); @@ -510,7 +511,7 @@ private slots: // ui slots void on_actionEndorseMO_triggered(); void on_bsaList_customContextMenuRequested(const QPoint &pos); - void on_bsaList_itemMoved(); + void bsaList_itemMoved(); void on_btnRefreshData_clicked(); void on_categoriesList_customContextMenuRequested(const QPoint &pos); void on_compactBox_toggled(bool checked); @@ -531,6 +532,7 @@ private slots: // ui slots void on_categoriesList_itemSelectionChanged(); void on_linkButton_pressed(); void on_showHiddenBox_toggled(bool checked); + void on_bsaList_itemChanged(QTreeWidgetItem *item, int column); }; #endif // MAINWINDOW_H diff --git a/src/modlist.cpp b/src/modlist.cpp index 0fdcf6fa..541e1e6e 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -551,6 +551,46 @@ void ModList::changeModPriority(int sourceIndex, int newPriority) emit modorder_changed(); } +IModList::ModState ModList::state(const QString &name) const +{ + unsigned int modIndex = ModInfo::getIndex(name); + if (modIndex == UINT_MAX) { + return IModList::STATE_MISSING; + } else { + ModInfo::Ptr modInfo = ModInfo::getByIndex(modIndex); + if (modInfo->canBeEnabled()) { + return m_Profile->modEnabled(modIndex) ? IModList::STATE_ACTIVE : IModList::STATE_INACTIVE; + } else { + return IModList::STATE_NOTOPTIONAL; + } + } +} + +int ModList::priority(const QString &name) const +{ + unsigned int modIndex = ModInfo::getIndex(name); + if (modIndex == UINT_MAX) { + return -1; + } else { + return m_Profile->getModPriority(modIndex); + } +} + +bool ModList::setPriority(const QString &name, int newPriority) +{ + if ((newPriority < 0) || (newPriority >= static_cast(m_Profile->numRegularMods()))) { + return false; + } + + unsigned int modIndex = ModInfo::getIndex(name); + if (modIndex == UINT_MAX) { + return false; + } else { + m_Profile->setModPriority(modIndex, newPriority); + notifyChange(modIndex); + return true; + } +} bool ModList::dropURLs(const QMimeData *mimeData, int row, const QModelIndex &parent) { diff --git a/src/modlist.h b/src/modlist.h index 7e76d677..cdaa24ca 100644 --- a/src/modlist.h +++ b/src/modlist.h @@ -26,6 +26,8 @@ along with Mod Organizer. If not, see . #include "modinfo.h" #include "profile.h" +#include + #include #include #include @@ -41,7 +43,7 @@ along with Mod Organizer. If not, see . * This is used in a view in the main window of MO. It combines general information about * the mods from ModInfo with status information from the Profile **/ -class ModList : public QAbstractItemModel +class ModList : public QAbstractItemModel, public MOBase::IModList { Q_OBJECT @@ -92,6 +94,17 @@ public: void changeModPriority(int sourceIndex, int newPriority); +public: + + /// \copydoc MOBase::IModList::state + virtual ModState state(const QString &name) const; + + /// \copydoc MOBase::IModList::priority + virtual int priority(const QString &name) const; + + /// \copydoc MOBase::IModList::setPriority + virtual bool setPriority(const QString &name, int newPriority); + public: // implementation of virtual functions of QAbstractItemModel virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 74aa6ff3..456d29ee 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -611,6 +611,15 @@ bool PluginList::isMaster(const QString &name) const } } +QString PluginList::origin(const QString &name) const +{ + auto iter = m_ESPsByName.find(name.toLower()); + if (iter == m_ESPsByName.end()) { + return false; + } else { + return m_ESPs[iter->second].m_OriginName; + } +} void PluginList::updateIndices() { diff --git a/src/pluginlist.h b/src/pluginlist.h index 2ad54d6d..4da7be4b 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -140,6 +140,7 @@ public: virtual int priority(const QString &name) const; virtual int loadOrder(const QString &name) const; virtual bool isMaster(const QString &name) const; + virtual QString origin(const QString &name) const; public: // implementation of the QAbstractTableModel interface diff --git a/src/problemsdialog.ui b/src/problemsdialog.ui index b194bf31..d3a0d959 100644 --- a/src/problemsdialog.ui +++ b/src/problemsdialog.ui @@ -49,54 +49,52 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html>
- - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Close + + + +
- buttonBox - accepted() + closeButton + clicked() ProblemsDialog accept() - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - ProblemsDialog - reject() - - - 316 - 260 + 526 + 354 286 - 274 + 187 -- cgit v1.3.1 From f010c22a3b2ec31bc4ebc3f577ac4455c5de5dfb Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 6 Nov 2013 18:35:27 +0100 Subject: - diagnosis plugins can now request to be re-evaluated - main application now contains means for plugins to react on some changes (to be extended) - plugins can now retrieve more information about a mod - user-agent sent to nexus now automatically contains the current MO version - included updated russian translation - problems dialog now refreshes itself after a fix was applied - fixed new esp/asset ordering diagnosis. May be fully functional now - bugfix: restoring locked load order could leave MO in an endless loop (not sure if this fix is correct yet) - bugfix: plugin list was not visually updated after some changes - bugfix: nmm importer threw away mod ordering --- src/downloadlistwidget.ui | 4 +- src/main.cpp | 2 +- src/mainwindow.cpp | 9 +- src/mainwindow.ui | 57 +- src/modinfo.cpp | 9 + src/modinfo.h | 1 + src/modinfodialog.ui | 33 +- src/modlist.cpp | 49 +- src/modlist.h | 21 +- src/nexusinterface.cpp | 15 +- src/nexusinterface.h | 1 + src/organizer_ru.qm | Bin 53312 -> 188628 bytes src/organizer_ru.ts | 3256 ++++++++++++++++++++--------------------- src/overwriteinfodialog.cpp | 4 +- src/overwriteinfodialog.h | 100 +- src/pluginlist.cpp | 28 +- src/pluginlist.h | 10 +- src/problemsdialog.cpp | 31 +- src/problemsdialog.h | 4 + src/settingsdialog.ui | 2 +- src/shared/directoryentry.cpp | 2 +- src/version.rc | 4 +- 22 files changed, 1838 insertions(+), 1804 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/downloadlistwidget.ui b/src/downloadlistwidget.ui index 01b2ee07..106ac922 100644 --- a/src/downloadlistwidget.ui +++ b/src/downloadlistwidget.ui @@ -7,7 +7,7 @@ 0 0 315 - 75 + 81 @@ -78,7 +78,7 @@ - 0 + 0 diff --git a/src/main.cpp b/src/main.cpp index 90cf9e0e..5053d21d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -140,7 +140,7 @@ bool bootstrap() QObject::tr("The current user account doesn't have the required access rights to run " "Mod Organizer. The neccessary changes can be made automatically (the MO directory " "will be made writable for the current user account). You will be asked to run " - "\"helper.exe\" with administrative rights)."), + "\"helper.exe\" with administrative rights."), QMessageBox::Yes | QMessageBox::Cancel) == QMessageBox::Yes) { if (!Helper::init(GameInfo::instance().getOrganizerDirectory())) { return false; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 774c99f5..f726757c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -487,6 +487,7 @@ void MainWindow::updateProblemsButton() ui->actionProblems->setIconText(tr("Problems")); ui->actionProblems->setToolTip(tr("There are potential problems with your setup")); } else { + ui->actionProblems->setEnabled(false); ui->actionProblems->setIconText(tr("No Problems")); ui->actionProblems->setToolTip(tr("Everything seems to be in order")); } @@ -983,6 +984,7 @@ bool MainWindow::registerPlugin(QObject *plugin) IPluginDiagnose *diagnose = qobject_cast(plugin); if (diagnose != NULL) { m_DiagnosisPlugins.push_back(diagnose); + diagnose->onInvalidated([&] () { this->updateProblemsButton(); }); } } { // tool plugins @@ -2178,7 +2180,7 @@ QString MainWindow::fullDescription(unsigned int key) const { switch (key) { case PROBLEM_PLUGINSNOTLOADED: { - QString result = tr("The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:
    "); + QString result = tr("The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:") + "
      "; foreach (const QString &plugin, m_UnloadedPlugins) { result += "
    • " + plugin + "
    • "; } @@ -2985,8 +2987,9 @@ void MainWindow::unendorse_clicked() void MainWindow::overwriteClosed(int) { - QDialog *dialog = this->findChild("__overwriteDialog"); + OverwriteInfoDialog *dialog = this->findChild("__overwriteDialog"); if (dialog != NULL) { + m_ModList.modInfoChanged(dialog->modInfo()); dialog->deleteLater(); } } @@ -2994,6 +2997,7 @@ void MainWindow::overwriteClosed(int) void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index, int tab) { + m_ModList.modInfoAboutToChange(modInfo); std::vector flags = modInfo->getFlags(); if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end()) { QDialog *dialog = this->findChild("__overwriteDialog"); @@ -3019,6 +3023,7 @@ void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index, dialog.exec(); modInfo->saveMeta(); emit modInfoDisplayed(); + m_ModList.modInfoChanged(modInfo); } if (m_CurrentProfile->modEnabled(index)) { diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 73ca868e..bc7dc212 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -31,7 +31,16 @@ 4 - + + 6 + + + 6 + + + 6 + + 6 @@ -577,7 +586,7 @@ p, li { white-space: pre-wrap; } QTabWidget::Rounded - 1 + 0 @@ -721,7 +730,16 @@ p, li { white-space: pre-wrap; } Archives - + + 6 + + + 6 + + + 6 + + 6 @@ -801,7 +819,16 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data - + + 6 + + + 6 + + + 6 + + 6 @@ -871,7 +898,16 @@ BSAs checked here are loaded in such a way that your installation order is obeye Saves - + + 6 + + + 6 + + + 6 + + 6 @@ -900,7 +936,16 @@ p, li { white-space: pre-wrap; } Downloads - + + 2 + + + 2 + + + 2 + + 2 diff --git a/src/modinfo.cpp b/src/modinfo.cpp index faf8c95b..f436eba8 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -827,6 +827,15 @@ ModInfoOverwrite::ModInfoOverwrite() } +bool ModInfoOverwrite::isEmpty() const +{ + QDirIterator iter(absolutePath(), QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs); + if (!iter.hasNext()) return true; + iter.next(); + if ((iter.fileName() == "meta.ini") && !iter.hasNext()) return true; + return false; +} + QString ModInfoOverwrite::absolutePath() const { return QDir::fromNativeSeparators(ToQString(GameInfo::instance().getOverwriteDir())); diff --git a/src/modinfo.h b/src/modinfo.h index 71c8de55..6de0275b 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -866,6 +866,7 @@ public: virtual void setNeverEndorse() {} virtual bool remove() { return false; } virtual void endorse(bool) {} + virtual bool isEmpty() const; virtual QString name() const { return "Overwrite"; } virtual QString notes() const { return ""; } virtual QDateTime creationTime() const { return m_StartupTime; } diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui index 7e06745d..2fdbe5f3 100644 --- a/src/modinfodialog.ui +++ b/src/modinfodialog.ui @@ -209,7 +209,7 @@ 0 0 - 676 + 668 126 @@ -217,17 +217,22 @@ Images located in the mod. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. 0 - + + 0 + + + 0 + + + 0 + + 0 @@ -254,14 +259,10 @@ p, li { white-space: pre-wrap; } List of esps and esms that can not be loaded by the game. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. @@ -659,7 +660,7 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> diff --git a/src/modlist.cpp b/src/modlist.cpp index 541e1e6e..446946dc 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -551,19 +551,49 @@ void ModList::changeModPriority(int sourceIndex, int newPriority) emit modorder_changed(); } -IModList::ModState ModList::state(const QString &name) const +void ModList::modInfoAboutToChange(ModInfo::Ptr info) { - unsigned int modIndex = ModInfo::getIndex(name); - if (modIndex == UINT_MAX) { - return IModList::STATE_MISSING; + m_ChangeInfo.name = info->name(); + m_ChangeInfo.state = state(info->name()); +} + +void ModList::modInfoChanged(ModInfo::Ptr info) +{ + if (info->name() == m_ChangeInfo.name) { + IModList::ModStates newState = state(info->name()); + if (m_ChangeInfo.state != newState) { + m_ModStateChanged(info->name(), newState); + } } else { + qCritical("modInfoChanged not called after modInfoAboutToChange"); + } +} + +IModList::ModStates ModList::state(const QString &name) const +{ + ModStates result; + unsigned int modIndex = ModInfo::getIndex(name); + if (modIndex != UINT_MAX) { + result |= IModList::STATE_EXISTS; ModInfo::Ptr modInfo = ModInfo::getByIndex(modIndex); + if (modInfo->isEmpty()) { + result |= IModList::STATE_EMPTY; + } + if (modInfo->endorsedState() == ModInfo::ENDORSED_TRUE) { + result |= IModList::STATE_ENDORSED; + } + if (modInfo->isValid()) { + result |= IModList::STATE_VALID; + } if (modInfo->canBeEnabled()) { - return m_Profile->modEnabled(modIndex) ? IModList::STATE_ACTIVE : IModList::STATE_INACTIVE; + if (m_Profile->modEnabled(modIndex)) { + result |= IModList::STATE_ACTIVE; + } } else { - return IModList::STATE_NOTOPTIONAL; + result |= IModList::STATE_ESSENTIAL; } } + return result; } int ModList::priority(const QString &name) const @@ -592,6 +622,13 @@ bool ModList::setPriority(const QString &name, int newPriority) } } + +bool ModList::onModStateChanged(const std::function &func) +{ + auto conn = m_ModStateChanged.connect(func); + return conn.connected(); +} + bool ModList::dropURLs(const QMimeData *mimeData, int row, const QModelIndex &parent) { QStringList source; diff --git a/src/modlist.h b/src/modlist.h index cdaa24ca..8cab7f3e 100644 --- a/src/modlist.h +++ b/src/modlist.h @@ -32,7 +32,7 @@ along with Mod Organizer. If not, see . #include #include #include - +#include #include #include #include @@ -61,6 +61,8 @@ public: COL_LASTCOLUMN = COL_PRIORITY }; + typedef boost::signals2::signal SignalModStateChanged; + public: /** @@ -94,10 +96,13 @@ public: void changeModPriority(int sourceIndex, int newPriority); + void modInfoAboutToChange(ModInfo::Ptr info); + void modInfoChanged(ModInfo::Ptr info); + public: /// \copydoc MOBase::IModList::state - virtual ModState state(const QString &name) const; + virtual ModStates state(const QString &name) const; /// \copydoc MOBase::IModList::priority virtual int priority(const QString &name) const; @@ -105,6 +110,9 @@ public: /// \copydoc MOBase::IModList::setPriority virtual bool setPriority(const QString &name, int newPriority); + /// \copydoc MOBase::IModList::onModStateChanged + virtual bool onModStateChanged(const std::function &func); + public: // implementation of virtual functions of QAbstractItemModel virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; @@ -245,6 +253,11 @@ private: unsigned int categoryOrder; }; + struct TModInfoChange { + QString name; + QFlags state; + }; + private: Profile *m_Profile; @@ -258,6 +271,10 @@ private: bool m_DropOnItems; + TModInfoChange m_ChangeInfo; + + SignalModStateChanged m_ModStateChanged; + }; #endif // MODLIST_H diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index 936ff400..6a4ae046 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -22,8 +22,10 @@ along with Mod Organizer. If not, see . #include "utility.h" #include "json.h" #include "selectiondialog.h" +#include #include #include +#include using QtJson::Json; @@ -148,6 +150,13 @@ NexusInterface::NexusInterface() m_DiskCache = new QNetworkDiskCache(this); connect(m_AccessManager, SIGNAL(requestNXMDownload(QString)), this, SLOT(downloadRequestedNXM(QString))); + + + VS_FIXEDFILEINFO version = GetFileVersion(ToWString(QApplication::applicationFilePath())); + + m_MOVersion = VersionInfo(version.dwFileVersionMS >> 16, + version.dwFileVersionMS & 0xFFFF, + version.dwFileVersionLS >> 16); } @@ -396,8 +405,10 @@ void NexusInterface::nextRequest() QNetworkRequest request(url); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/xml"); -#pragma message("automatically insert the correct version number") - request.setRawHeader("User-Agent", QString("Mod Organizer v1.0.5 (compatible to Nexus Client v%1)").arg(m_NMMVersion).toUtf8()); + request.setRawHeader("User-Agent", + QString("Mod Organizer v%1 (compatible to Nexus Client v%2)") + .arg(m_MOVersion.displayString()) + .arg(m_NMMVersion).toUtf8()); info.m_Reply = m_AccessManager->get(request); diff --git a/src/nexusinterface.h b/src/nexusinterface.h index 0b53f9d0..03226d8e 100644 --- a/src/nexusinterface.h +++ b/src/nexusinterface.h @@ -307,6 +307,7 @@ private: std::list m_ActiveRequest; QQueue m_RequestQueue; + MOBase::VersionInfo m_MOVersion; QString m_NMMVersion; }; diff --git a/src/organizer_ru.qm b/src/organizer_ru.qm index 1bae65a6..5921c2dc 100644 Binary files a/src/organizer_ru.qm and b/src/organizer_ru.qm differ diff --git a/src/organizer_ru.ts b/src/organizer_ru.ts index 2204198c..9b7b8101 100644 --- a/src/organizer_ru.ts +++ b/src/organizer_ru.ts @@ -1,4 +1,3 @@ - @@ -11,26 +10,26 @@ This is a list of esps and esms that were active when the save game was created. - Это ÑпиÑок ESP и ESM, которые были активны во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñейва. + Это ÑпиÑок esp и esm, которые были активны во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑохранениÑ. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок ESP и ESM, которые были активны, когда Ñейв был Ñоздан..</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ESP, правый Ñтолбец Ñодержит мод (или моды), которые могут быть включены, чтобы неактивные ESP / ESM Ñтали активными.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы нажмете ОК, вÑе моды, выбранные в правой колонке будут активированы..</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок ESP и ESM, которые были активны, когда Ñейв был Ñоздан..</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ESP, правый Ñтолбец Ñодержит мод (или моды), которые могут быть включены, чтобы неактивные ESP / ESM Ñтали активными.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы нажмете ОК, вÑе моды, выбранные в правой колонке будут активированы..</span></p></body></html> @@ -45,7 +44,7 @@ p, li { white-space: pre-wrap; } not found - Ðе найдено + не найдено @@ -73,8 +72,9 @@ p, li { white-space: pre-wrap; } Components of this package. -If there is a component called "00 Core" it is usually required. Options are ordered by priority as set up by the author. - Компоненты Ñтого пакета.ЕÑли еÑть компонент который называетÑÑ "00 Core", значит так надо. Параметры отÑортированы по приоритетноÑти Ñозданной автором. +If there is a component called "00 Core" it is usually required. Options are ordered by priority as set up by the author. + Компоненты Ñтого пакета. +ЕÑли еÑть компонент, называемый "00 Core", то Ñто обычно необходимо. Опции упорÑдочены по приоритету, уÑтановленному автором. @@ -91,7 +91,7 @@ If there is a component called "00 Core" it is usually required. Optio Opens a Dialog that allows custom modifications. - Открывает диалоговое окно, которое позволÑет выбрать пользовательÑкие модификации. + Открывает диалог, позволÑющий выбрать пользовательÑкие модификации. @@ -101,7 +101,7 @@ If there is a component called "00 Core" it is usually required. Optio Ok - ОК + Ок @@ -129,7 +129,7 @@ If there is a component called "00 Core" it is usually required. Optio Internal ID for the category. The categories a mod belongs to are stored by this ID. It is recommended you use new IDs for categories you add instead of re-using existing ones. - Внутренний ID категории. Категории мода хранÑÑ‚ÑÑ Ð² иÑтории под Ñтим ID. Это рекомендуетÑÑ Ð¸Ñпользовать при Ñоздании новых ID Ð´Ð»Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¹, чтобы повторно иÑпользовать уже ÑущеÑтвующие. + Внутренний ID категории. Категории мода хранÑÑ‚ÑÑ Ð² иÑтории под Ñтим ID. РекомендуетÑÑ Ð¸Ñпользовать новые ID Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»Ñемых вами категорий, вмеÑто повторного иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑущеÑтвующих. @@ -154,20 +154,20 @@ If there is a component called "00 Core" it is usually required. Optio - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can match one or multiple nexus categories to a internal ID. Whenever you download a mod from a Nexus Page, Mod Organizer will try to resolve the category defined on the Nexus to one available in MO.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">To find out a category id used by the nexus, visit the categories list of the nexus page and hover over the links there.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can match one or multiple nexus categories to a internal ID. Whenever you download a mod from a Nexus Page, Mod Organizer will try to resolve the category defined on the Nexus to one available in MO.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">To find out a category id used by the nexus, visit the categories list of the nexus page and hover over the links there.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете задать ÑоответÑтвие Ñ Ð¾Ð´Ð½Ð¾Ð¹ или неÑкольким категориÑм Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ð¼Ð¸ ID. Каждый раз, когда вы загружаете мод Ñо Ñтраницы Nexus, МО автоматичеÑки поÑтараетÑÑ Ð·Ð°Ð´Ð°Ñ‚ÑŒ ÑоответÑтвие, как на Nexus.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Чтобы узнать идентификатор категории иÑпользуемого ÑоответÑтвиÑ, поÑетите ÑпиÑок категорий на Ñтранице СвÑзь и наведите курÑор мыши на нужную ÑÑылку.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете задать одну или неÑколько категорий Nexus внутреннему ID. Каждый раз, когда вы загружаете мод Ñо Ñтраницы Nexus, МО поÑтараетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки задать моду категорию, приÑвоенную ему на Nexus.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Чтобы узнать ID категории, иÑпользуемой на Nexus, перейдите в ÑпиÑок категорий Nexus и наведите курÑор мыши на нужную ÑÑылку.</span></p></body></html> @@ -199,7 +199,7 @@ p, li { white-space: pre-wrap; } - This feature may not work unless you're logged in with Nexus + This feature may not work unless you're logged in with Nexus Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ не работать, еÑли вход выполнен Ñ Nexus @@ -225,14 +225,10 @@ p, li { white-space: pre-wrap; } DirectoryRefresher - - failed to read %1: %2 - Ðе удалоÑÑŒ прочитать %1: %2 - failed to read bsa: %1 - + не удалоÑÑŒ прочитать bsa: %1 @@ -245,73 +241,63 @@ p, li { white-space: pre-wrap; } Filetime - Ждите + Дата модификации Done - Готово + Выполнено - Information missing, please select "Query Info" from the context menu to re-retrieve. - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует, пожалуйÑта, выберите пункт "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" из контекÑтного меню. + Information missing, please select "Query Info" from the context menu to re-retrieve. + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует, пожалуйÑта, выберите пункт "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" из контекÑтного меню. DownloadListWidget - + Placeholder Заполнитель - - 0 - - - - - KB - - - - + + - Done - Double Click to install Готово - двойной щелчок Ð´Ð»Ñ ÑƒÑтановки. + - Paused - Double Click to resume - + Пауза - двойной клик Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ + - Installed - Double Click to re-install УÑтановлено - двойной клик Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑƒÑтановки + - Uninstalled - Double Click to re-install - + Удалено - двойной клик Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑƒÑтановки DownloadListWidgetCompact - + Placeholder Заполнитель - + Done Готово @@ -319,120 +305,120 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - + + Paused + ПриоÑтановлено + + + + Fetching Info 1 + Извлечение информации 1 + + + + Fetching Info 2 + Извлечение информации 2 + + + Installed УÑтановлено - + Uninstalled - + Удалено - + Done Готово - - - - + + + + Are you sure? Ð’Ñ‹ уверены? - + This will remove all finished downloads from this list and from disk. Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will remove all installed downloads from this list and from disk. Это удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will permanently remove all finished downloads from this list (but NOT from disk). - + Это полноÑтью удалит вÑе завершенные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Это полноÑтью удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + Install УÑтановка - + Query Info Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ - + Delete - + Удалить - + Remove from View - - - - - Remove - Удаление + Скрыть от проÑмотра - + Cancel Отмена - - Paused - - - - - Fetching Info 1 - - - - - Fetching Info 2 - - - - + Pause Пауза - + + Remove + Удаление + + + Resume Возобновить - + Delete Installed... - + Удалить уÑтановленное... - + Delete All... - + Удалить вÑе... - + Remove Installed... Отменить уÑтановку - + Remove All... Удалить вÑе @@ -440,100 +426,100 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + Fetching Info 1 + Извлечение информации 1 + + + + Fetching Info 2 + Извлечение информации 2 + + + + + + Are you sure? Ð’Ñ‹ уверены? - + This will remove all finished downloads from this list and from disk. Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will remove all installed downloads from this list and from disk. Это удалит вÑе уÑтановленные загрузки из Ñтого лиÑта и Ñ Ð´Ð¸Ñка. - + This will remove all finished downloads from this list (but NOT from disk). - + Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + This will remove all installed downloads from this list (but NOT from disk). - + Это удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + Install УÑтановить - + Query Info Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ - + Delete - + Удалить - + Remove from View - - - - - Remove - Удалить + Скрыть от проÑмотра - + Cancel Отмена - - Fetching Info 1 - - - - - Fetching Info 2 - + + Pause + Пауза - Pause - Пауза + Remove + Удалить - + Resume Возобновить - + Delete Installed... - + Удалить уÑтановленное... - + Delete All... - + Удалить вÑе... - + Remove Installed... Удалить уÑтановленные - + Remove All... Удалить вÑе @@ -541,109 +527,103 @@ p, li { white-space: pre-wrap; } DownloadManager - - failed to rename "%1" to "%2" - Ðе удалоÑÑŒ переименовать "%1" в "%2" + + failed to rename "%1" to "%2" + не удалоÑÑŒ переименовать "%1" в "%2" - + Download again? Скачать Ñнова - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем загружен. Ð’Ñ‹ хотите загрузить его Ñнова? У него будет другое имÑ. - + failed to download %1: could not open output file: %2 - Ошибка загрузки %1: не удалоÑÑŒ открыть входÑщий файл: %2 - - - - - - - - - - - - - + не удалоÑÑŒ загрузить %1: не удалоÑÑŒ открыть выходной файл: %2 + + + + + + + + + + + + invalid index - Ðеверный Ð¸Ð½Ð´ÐµÐºÑ + неверный Ð¸Ð½Ð´ÐµÐºÑ - + failed to delete %1 - Ðе удалоÑÑŒ удалить %1 + не удалоÑÑŒ удалить %1 - + failed to delete meta file for %1 - Ðе удалоÑÑŒ удалить мета файл %1 + не удалоÑÑŒ удалить мета-файл %1 - - - - - - + + + + + invalid index %1 - Ðеверный Ð¸Ð½Ð´ÐµÐºÑ %1 + неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - + Please enter the nexus mod id - Выберите ID мода Ñ Nexus + ПожалуйÑта, введите ID мода на Nexus - + Mod ID: ID мода: - invalid alphabetical index %1 - ÐедейÑтвительный алфавитный указатель %1 - - - + Information updated Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð° - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Ðет ÑоответÑтвующих модов на Nexus! Возможно фал был удален или переименован? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Ðет ÑоответÑтвующих фалов на Nexus. Выберите файл вручную. - + No download server available. Please try again later. Сервер недоÑтупен. Попробуйте позже. - + Failed to request file info from nexus: %1 Ðе удалоÑÑŒ получить информацию о файле: %1 - + Download failed: %1 (%2) Загрузка не удалаÑÑŒ: %1 (%2) - + failed to re-open %1 - Ðе удалоÑÑŒ открыть %1 + не удалоÑÑŒ повторно открыть %1 @@ -720,14 +700,16 @@ p, li { white-space: pre-wrap; } Allow the Steam AppID to be used for this executable to be changed. - Разрешить Steam AppID. Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑполнÑемый файл будет изменен. + Разрешить изменение Steam AppID, иÑпользуемого Ð´Ð»Ñ Ñтого иÑполнÑемого файла. Allow the Steam AppID to be used for this executable to be changed. Every game/tool distributed through Steam has a unique ID. MO needs to know this ID to start those programs directly, otherwise the program is started by steam and then MO will not work. By default, MO will use the AppID for the game. Right now the only case I know of where this needs to be overwritten is for the Skyrim Creation Kit which has its own AppID. This overwrite is already preconfigured. - Разрешить Steam AppID, который будет иÑпользоватьÑÑ Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ÑполнÑемого файла. ÐšÐ°Ð¶Ð´Ð°Ñ Ð¸Ð³Ñ€Ð°\инÑтрумент раcпроÑтранÑетÑÑ Ñ‡ÐµÑ€ÐµÐ· Steam и имеет уникальный ID. MO необходимо знать Ñтот ID, что бы активировать игру\инÑтрумент, иначе придетÑÑ Ð·Ð°Ð¿ÑƒÑкать через Steam. По умолчанию MO будет иÑпользовать AppID Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹\инÑтрумента.Возможны проблемы Ñ ID Ñоздаваемыми в Skyrim Creation Kit. + Разрешить изменение Steam AppID, который будет иÑпользоватьÑÑ Ð´Ð»Ñ Ð¸ÑполнÑемого файла. +ÐšÐ°Ð¶Ð´Ð°Ñ Ð¸Ð³Ñ€Ð°/инÑтрумент раÑпроÑтранÑемые через Steam имеют Ñвой уникальный ID. MO необходимо знать Ñтот ID Ð´Ð»Ñ Ð¿Ñ€Ñмого запуÑка Ñтих программ, иначе они будут запущены через Steam и MO работать не будет. По умолчанию MO будет иÑпользовать AppID Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. +Ð’ данный момент единÑтвенный Ñлучай, где Ñто должно быть перезапиÑано Ñто Skyrim Creation Kit, который имеет Ñвой ÑобÑтвенный AppID. Эта замена уже предварительно Ñконфигурирована. @@ -744,7 +726,9 @@ Right now the only case I know of where this needs to be overwritten is for the Steam AppID to use for this executable that differs from the games AppID. Every game/tool distributed through Steam has a unique ID. MO needs to know this ID to start those programs directly, otherwise the program is started by steam and then MO will not work. By default, MO will use the AppID for the game (usually 72850). Right now the only case I know of where this needs to be overwritten is for the Skyrim Creation Kit which has its own AppID (usually 202480). This overwrite is already preconfigured. - Steam AppID, который будет иÑпользоватьÑÑ Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ÑполнÑемого файла. ÐšÐ°Ð¶Ð´Ð°Ñ Ð¸Ð³Ñ€Ð°\инÑтрумент раcпроÑтранÑетÑÑ Ñ‡ÐµÑ€ÐµÐ· Steam и имеет уникальный ID. MO необходимо знать Ñтот ID, что бы активировать игру\инÑтрумент, иначе придетÑÑ Ð·Ð°Ð¿ÑƒÑкать через Steam. По умолчанию MO будет иÑпользовать AppID Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹\инÑтрумента.Возможны проблемы Ñ ID Ñоздаваемыми в Skyrim Creation Kit. + Steam AppID, иÑпользуемый Ð´Ð»Ñ Ñтого иÑполнÑемого файла, отличающийÑÑ Ð¾Ñ‚ AppID других игр. +ÐšÐ°Ð¶Ð´Ð°Ñ Ð¸Ð³Ñ€Ð°/инÑтрумент раÑпроÑтранÑемые через Steam имеют Ñвой уникальный ID. MO необходимо знать Ñтот ID Ð´Ð»Ñ Ð¿Ñ€Ñмого запуÑка Ñтих программ, иначе они будут запущены через Steam и MO работать не будет. По умолчанию MO будет иÑпользовать AppID Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹ (обычно 72850). +Ð’ данный момент единÑтвенный Ñлучай, где он должен быть перезапиÑан, Ñто Ð´Ð»Ñ Skyrim Creation Kit, который имеет Ñвой ÑобÑтвенный AppID (обычно 202480). Эта замена уже предварительно Ñконфигурирована. @@ -794,12 +778,12 @@ Right now the only case I know of where this needs to be overwritten is for the Java (32-bit) required - + ТребуетÑÑ Java (32-bit) MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - + MO требует 32-bit java Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ñтого приложениÑ. ЕÑли он у Ð²Ð°Ñ ÑƒÐ¶Ðµ уÑтановлен, выберете javaw.exe Ð´Ð»Ñ Ñтой уÑтановки как иÑполнÑемый файл. @@ -813,8 +797,8 @@ Right now the only case I know of where this needs to be overwritten is for the - Really remove "%1" from executables? - ДейÑтвительно удалить "%1" иÑполнÑемых? + Really remove "%1" from executables? + ДейÑтвительно удалить "%1" иÑполнÑемых? @@ -843,7 +827,7 @@ Right now the only case I know of where this needs to be overwritten is for the Search term - ПоиÑк терминала + ПоиÑк термина @@ -893,8 +877,8 @@ Right now the only case I know of where this needs to be overwritten is for the - <a href="#">Link</a> - <a href="#">ÑÑылка</a> + <a href="#">Link</a> + <a href="#">СÑылка</a> @@ -916,58 +900,6 @@ Right now the only case I know of where this needs to be overwritten is for the Cancel Отмена - - ModuleConfig.xml missing - ModuleConfig.xml отÑутÑтвует - - - failed to parse info.xml: %1 (%2) (line %3, column %4) - не удалоÑÑŒ проанализировать info.xml: %1 (%2) (Ñтрока %3, Ñтолбец %4) - - - unsupported order type %1 - не поддерживаемый тип порÑдка %1 - - - unsupported group type %1 - не поддерживаемый тип группы %1 - - - This component is required - Этот компонент необходим - - - It is recommended you enable this component - РекомендуетÑÑ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ñтот компонент - - - Optional component - Дополнительный компонент - - - This component is not usable in combination with other installed plugins - Этот компонент не может ÑочетатьÑÑ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ уÑтановленными плагинами. - - - You may be experiencing instability in combination with other installed plugins - Могут наблюдатьÑÑ Ð½ÐµÑтабильноÑть в Ñочетании Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ уÑтановленными плагинами. - - - None - Ðи один - - - Select one or more of these options: - Выберите один или неÑколько из Ñледующих вариантов: - - - failed to parse ModuleConfig.xml: %1 - не удаетÑÑ Ð¿Ñ€Ð¾Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ ModuleConfig.xml: %1 - - - Install - УÑтановить - InstallDialog @@ -993,7 +925,7 @@ Right now the only case I know of where this needs to be overwritten is for the - Pick a name for the mod. This is also used as a directory name, so please don't use characters that are illegal in file names. + Pick a name for the mod. This is also used as a directory name, so please don't use characters that are illegal in file names. Выбери Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¼Ð¾Ð´Ð°. Это также иÑпользуетÑÑ Ð² качеÑтве имени каталога, поÑтому, пожалуйÑта, не иÑпользуйте Ñимволы, которые запрещены в именах файлов. @@ -1008,16 +940,16 @@ Right now the only case I know of where this needs to be overwritten is for the - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This displays the content of the archive. &lt;data&gt; represents the base directory which will map to the game's data directory. You can change the base directory via the right-click context menu and you can move around files via drag&amp;drop</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This displays the content of the archive. &lt;data&gt; represents the base directory which will map to the game's data directory. You can change the base directory via the right-click context menu and you can move around files via drag&amp;drop</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это показывает Ñодержимое архива. <data> предÑтавлÑет базовый каталог, в котором будут ÑопоÑтавлены Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ каталога игры. Ð’Ñ‹ можете изменить базовый каталог Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ правой кнопкой мыши через контекÑтное меню, и можете перемещатьÑÑ Ð¿Ð¾ файлам Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ drag&drop.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Отображает Ñодержимое архива. &lt;data&gt; предÑтавлÑет базовый каталог, данные в котором будут ÑопоÑтавлены Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ каталога игры. Ð’Ñ‹ можете изменить базовый каталог нажатием правой кнопки мыши, через контекÑтное меню, а также можете перемещатьÑÑ Ð¿Ð¾ файлам Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ drag&amp;drop</span></p></body></html> @@ -1027,59 +959,20 @@ p, li { white-space: pre-wrap; } OK - + OK Cancel Отмена - - Looks good - ВыглÑдит хорошо - - - No problem detected - Проблем не обнаружено - - - No game data on top level - Ðет данных игры уровнем выше - - - There is no esp/esm file or asset directory (textures, meshes, interface, ...) on the top level. - СущеÑтвующий ESP / ESM файла или каталога не имеет текÑтуры textures, meshes, interface, ... уровнем выше. - - - Enter a directory name - Введите Ð¸Ð¼Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° - - - A directory with that name exists - Каталог Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем не ÑущеÑтвует - - - Set data directory - Ðабор данных каталога - - - Unset data directory - Отключенный каталог данных - - - Create directory... - Создать директорию... - - - &Open - &Открыть - InstallationManager - mo_archive.dll not loaded: "%1" - mo_archive.dll не загружен: "%1" + + archive.dll not loaded: "%1" + archive.dll не загружен: "%1" @@ -1092,158 +985,91 @@ p, li { white-space: pre-wrap; } Пароль - Directory exists - Каталог ÑущеÑтвует - - - This mod seems to be installed already. Do you want to add files from this archive (overwriting existing ones) or do you want to completely replace the existing files (old files are deleted)? - Этот мод, кажетÑÑ, уже уÑтановлен. Ð’Ñ‹ хотите перезапиÑать ÑущеÑтвующие или вы хотите полноÑтью заменить ÑущеÑтвующие файлы (Ñтарые файлы удалÑÑŽÑ‚ÑÑ)? - - - Add Files - Добавить файлы - - - Replace - Заменить - - - - - + + + Extracting files Извлечение файлов - Preparing installer - Подготовка к уÑтановке - - - Installation as fomod failed: %1 - УÑтановка в fomod не удалаÑÑŒ: %1 - - - failed to start %1 - Ðе удалоÑÑŒ начать %1 - - - Running external installer. -Note: This installer will not be aware of other installed mods! - ЗапуÑк внешней уÑтановки. -Внимание: Других запущенных программ уÑтановки не должно быть! - - - Force Close - Закрыть принудительно - - - Confirm - Подтвердить - - - installation failed (errorcode %1) - УÑтановка не удалаÑÑŒ (errorcode %1) - - - - File format "%1" not supported - Формат файла "%1" не поддерживаетÑÑ - - - failed to open archive "%1": %2 - Ðе удалоÑÑŒ открыть архив "%1": %2 - - - - archive.dll not loaded: "%1" - - - - + failed to create backup - + не удалоÑÑŒ Ñоздать резервную копию - + Mod Name - + Ð˜Ð¼Ñ Ð¼Ð¾Ð´Ð° - + Name Ð˜Ð¼Ñ - + Invalid name - + ÐедопуÑтимое Ð¸Ð¼Ñ - + The name you entered is invalid, please enter a different one. - - - - Installer missing - УÑтановщик отÑутÑтвует - - - This package contains a scripted installer. To use this installer you need the optional "NCC"-package and the .net runtime. Do you want to continue, treating this as a manual installer? - Этот пакет Ñодержит Ñценарии уÑтановки. Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтой уÑтановки необходимо дополнительно «NCC» пакет и .net runtime. Ð’Ñ‹ хотите иÑпользовать Ñто в качеÑтве уÑтановки? + Введенное вами Ð¸Ð¼Ñ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑтимо, пожалуйÑта введите другое. - Please install NCC - УÑтановите NCC + + File format "%1" not supported + Формат файла "%1" не поддерживаетÑÑ - + None of the available installer plugins were able to handle that archive - + Ðе один из доÑтупных плагинов-уÑтановщиков не Ñмог проÑмотреть Ñтот архив - + no error - Ошибки отÑутÑтвуют + ошибки отÑутÑтвуют - + 7z.dll not found 7z.dll не найден - - 7z.dll isn't valid + + 7z.dll isn't valid 7z.dll поврежден - + archive not found - Ðрхив не найден + архив не найден - + failed to open archive - Ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð° + не удалоÑÑŒ открыть архив - + unsupported archive type - Ðе поддерживаемый тип архива + не поддерживаемый тип архива - + internal library error - ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° библиотеки + внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° библиотеки - + archive invalid - Ðрхив поврежден + архив поврежден - + unknown archive error - ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° архива + неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° архива @@ -1255,8 +1081,8 @@ Note: This installer will not be aware of other installed mods! - This dialog should disappear automatically if the application/game is done. Click unlock if it didn't. - Это окно должно закрытьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки еÑли игра запущена. Ðажмите кнопку "Разблокировать" еÑли Ñтого не произошло. + This dialog should disappear automatically if the application/game is done. Click unlock if it didn't. + Этот диалог должен закрытьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки еÑли игра/приложение запущены. Ðажмите разблокировать, еÑли Ñтого не произошло. @@ -1274,7 +1100,7 @@ Note: This installer will not be aware of other installed mods! failed to write log to %1: %2 - Ðе удалоÑÑŒ произвеÑти запиÑÑŒ в журнал %1: %2 + не удалоÑÑŒ произвеÑти запиÑÑŒ в журнал %1: %2 @@ -1282,12 +1108,12 @@ Note: This installer will not be aware of other installed mods! an error occured: %1 - + произошла ошибка: %1 an error occured - + произошла ошибка @@ -1301,148 +1127,169 @@ Note: This installer will not be aware of other installed mods! Profile - + Профиль Pick a module collection - + Выберете набор модулей - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Create profiles here. Each profile contains its own list of active mods and esps. This way you can quickly switch between setups for different play throughs.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Please note that right now your esp load order is not kept seperate for different profiles.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Create profiles here. Each profile contains its own list of active mods and esps. This way you can quickly switch between setups for different play throughs.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Please note that right now your esp load order is not kept seperate for different profiles.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Создать профили здеÑÑŒ. Каждый профиль включает Ñвой ÑобÑтвенный ÑпиÑок активных модов и esp. Таким образом, вы можете быÑтро переключатьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ уÑтановками Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… прохождений игры.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Обратите внимание, что порÑдок загрузки esp одинаков Ð´Ð»Ñ Ð²Ñех профилей.</span></p></body></html> Refresh list - + Обновить ÑпиÑок Refresh list. This is usually not necessary unless you modified data outside the program. - + Обновить ÑпиÑок. Обычно в Ñтом нет необходимоÑти, пока вы не измените данные вне программы. List of available mods. - + СпиÑок доÑтупных модов. - This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. + Это ÑпиÑок уÑтановленных модов. ИÑпользуйте флажки, Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ/Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð¾Ð² и перетаÑкивание модов, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ… порÑдка уÑтановки. Filter - + Фильтр No groups - + Без группировки Nexus IDs - Nexus IDs + Nexus IDs - + Namefilter - + Фильтр по имени Pick a program to run. - + Выберете программу Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Choose the program to run. Once you start using ModOrganizer, you should always run your game and tools from here or through shortcuts created here, otherwise mods installed through MO will not be visible.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can add new Tools to this list, but I can't promise tools I haven't tested will work.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Choose the program to run. Once you start using ModOrganizer, you should always run your game and tools from here or through shortcuts created here, otherwise mods installed through MO will not be visible.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can add new Tools to this list, but I can't promise tools I haven't tested will work.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Выберете программу Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка. Как только вы начинаете иÑпользовать ModOrganizer, вы вÑегда должны запуÑкать игры и инÑтрументы из него или через Ñозданные в нем Ñрлыки, в противном Ñлучае, уÑтановленные через MO моды отображатьÑÑ Ð½Ðµ будут.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете добавить новые инÑтрументы в Ñтот ÑпиÑок, но работоÑпоÑобноÑть их вÑех не гарантированна.</span></p></body></html> Run program - + ЗапуÑтить программу - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Run the selected program with ModOrganizer enabled.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Run the selected program with ModOrganizer enabled.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЗапуÑтить выбранную программу Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ ModOrganizer.</span></p></body></html> Run - + ЗапуÑтить Create a shortcut in your start menu or on the desktop to the specified program - + Создать Ñрлык Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð¹ программы, в меню ПуÑк или на рабочем Ñтоле. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This creates a start menu shortcut that directly starts the selected program with the MO active.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This creates a start menu shortcut that directly starts the selected program with the MO active.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Создает Ñрлык в меню ПуÑк, который запуÑкает выбранную программу Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼ MO.</span></p></body></html> Shortcut - - - - Save - Сохранить + Ярлык List of available esp/esm files - + СпиÑок доÑтупных esp/esm файлов - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps and esms contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps and esms contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Этот ÑпиÑок Ñодержит esp и esm файлы активных модов. Ð”Ð»Ñ Ð½Ð¸Ñ… требуетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ð¹ порÑдок загрузки. ИÑпользуйте перетаÑкивание Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñдка загрузки. Обратите внимание, что MO Ñохранит порÑдок загрузки только Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸/проверенных модов.<br />СущеÑтвует Ð·Ð°Ð¼ÐµÑ‡Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð°, называющаÑÑÑ &quot;BOSS&quot; , ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки Ñортирует Ñти файлы.</span></p></body></html> List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. - + СпиÑок доÑтупных BSA. Они не отмечены здеÑÑŒ, не управлÑÑŽÑ‚ÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ MO и игнорируют порÑдок уÑтановки. - BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! BSAs checked here are loaded in such a way that your installation order is obeyed properly. - + BSA файлы - архивы (ÑопоÑтавимы Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ .zip) которые Ñодержат иÑпользуемые игрой данные (meshes, textures, ...). Как таковые они "конкурируют" Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ð¼Ð¸ файлами в папке Data, поверх которых загружены. +По умолчанию, BSA, у которых Ð¸Ð¼Ñ Ñовпадает Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ESP (Ñ‚.е. plugin.esp и plugin.bsa) будут автоматичеÑки загружены и будут иметь приоритет над вÑеми отдельными файлами и уÑтановленный вами Ñлева порÑдок уÑтановки будет проигнорирован! + +BSA, отмеченные здеÑÑŒ, загружаютÑÑ Ñ‚Ð°Ðº, чтобы порÑдок уÑтановки ÑоблюдалÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ‹Ð¼ образом. @@ -1458,1030 +1305,1035 @@ BSAs checked here are loaded in such a way that your installation order is obeye - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + <html><head/><body><p>Помеченые архивы (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) вÑе еще загружаютÑÑ Ð² Skyrim, но <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">применÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¹</span></a> механизм: Отдельные файлы перезапиÑывают BSAs, вне завиÑимоÑти от приоритета мода/плагина.</p></body></html> Data - + Данные refresh data-directory overview - + обновить обзор каталога Data Refresh the overview. This may take a moment. - + Обновление обзора. Это может занÑть некоторое времÑ. - - + + Refresh - + Обновить This is an overview of your data directory as visible to the game (and tools). - + Это обзор вашего каталога данных так, как он будет видим игре (и инÑтрументам). Filter the above list so that only conflicts are displayed. - + Отфильтровать вышеприведенный ÑпиÑок так, чтобы отображалиÑÑŒ только конфликты. Show only conflicts - + Показать только конфликты Saves - + Ð¡Ð¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of all savegames for this game. Hover over a list entry to get detailed information about the save including a list of esps/esms that were used at the time this save was created but aren't active now.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you click &quot;Fix Mods...&quot; in the context menu, MO will try to activate all mods and esps to fix those missing esps. It will not disable anything!</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of all savegames for this game. Hover over a list entry to get detailed information about the save including a list of esps/esms that were used at the time this save was created but aren't active now.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you click &quot;Fix Mods...&quot; in the context menu, MO will try to activate all mods and esps to fix those missing esps. It will not disable anything!</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">СпиÑок вÑех Ñохранений игры. Ðаведите указатель мыши на Ñлемент ÑпиÑка, чтобы получить подробную информацию о Ñохранении, включающем ÑпиÑок esp/esm, которые иÑпользовалиÑÑŒ во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑохранениÑ, но не активны в наÑтоÑщее времÑ.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы выберете в контекÑтном меню пункт &quot;ИÑправить моды...&quot;, MO попытаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ вÑе моды и esp, чтобы иÑправить Ñти отÑутÑтвующие esp. Это ничего не отключит!</span></p></body></html> Downloads - + Загрузки This is a list of mods you downloaded from Nexus. Double click one to install it. - + СпиÑок модов, загруженных Ñ Nexus. Двойной клик Ð´Ð»Ñ ÑƒÑтановки. - + Compact - + Упаковать - + Tool Bar - + Панель инÑтрументов - + Install Mod - + УÑтановить мод - + Install &Mod - + УÑтановить &мод - + Install a new mod from an archive - + УÑтановить новый мод из архива - + Ctrl+M - + Ctrl+M - + Profiles - + Профили - + &Profiles - + &Профили - + Configure Profiles - + ÐаÑтройка профилей - + Ctrl+P - + Ctrl+P - + Executables - + Программы - + &Executables - + &Программы - + Configure the executables that can be started through Mod Organizer - + ÐаÑтройка программ, которые могут быть запущены через Mod Organizer - + Ctrl+E - + Ctrl+E + - Tools - + ИнÑтрументы - + &Tools - + &ИнÑтрументы - + Ctrl+I - + Ctrl+I - + Settings - + ÐаÑтройки - + &Settings - + &ÐаÑтройки - + Configure settings and workarounds - + ÐаÑтройка параметров и ÑпоÑобов обхода - + Ctrl+S - + Ctrl+S - + Nexus - + Nexus - + Search nexus network for more mods - + ПоиÑк дополнительных модов на Nexus - + Ctrl+N - + Ctrl+N - - + + Update - + Обновление - + Mod Organizer is up-to-date - + Mod Organizer обновлен - - + + No Problems - + Проблем не обнаружено - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! Right now this has very limited functionality - + Эта кнопка будет подÑвечена, еÑли MO обнарул возможные проблемы в вашей уÑтановке и имеютÑÑ Ñоветы по их иÑправлению. + +!Ð’ разработке! +ПрÑмо ÑÐµÐ¹Ñ‡Ð°Ñ Ñтот функционал Ñильно ограничен - - + + Help - + Справка - + Ctrl+H - + Ctrl+H - + Endorse MO - + Одобрить MO - - + + Endorse Mod Organizer - + Одобрить Mod Organizer - + Toolbar - + Панель инÑтрументов - + Desktop - + Рабочий Ñтол - + Start Menu - + Меню ПуÑк - + Problems - + Проблемы - + There are potential problems with your setup - + ЕÑть возможные проблемы Ñ Ð²Ð°ÑˆÐµÐ¹ уÑтановкой - + Everything seems to be in order - + КажетÑÑ Ð²ÑÑ‘ в порÑдке - + Help on UI - + Справка по интерфейÑу - + Documentation Wiki - + Wiki-Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ - + Report Issue - + Сообщить о проблеме - + Tutorials - + Уроки - - failed to save load order: %1 - + + failed to save archives order, do you have write access to "%1"? + не удалоÑÑŒ Ñохранить порÑдок архивов, у Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ð´Ð¾Ñтуп на запиÑÑŒ к "%1"? - - failed to save archives order, do you have write access to "%1"? - + + failed to save load order: %1 + не удалоÑÑŒ Ñохранить порÑдок загрузки: %1 - + Name Ð˜Ð¼Ñ - + Please enter a name for the new profile - + Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + failed to create profile: %1 - + не удалоÑÑŒ Ñоздать профиль: %1 - + Show tutorial? - + Показать урок? - - You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. + Ð’Ñ‹ запуÑтили Mod Organizer впервые. Ð’Ñ‹ хотите проÑмотреть уроки по оÑновным возможноÑÑ‚Ñм? Ð’ Ñлучае отказа вы вÑегда можете открыть уроки из меню "Помощь". - + Downloads in progress - + Загрузки в процеÑÑе - + There are still downloads in progress, do you really want to quit? - + Загрузки вÑÑ‘ ещё в процеÑÑе, вы правда хотите выйти? - + failed to read savegame: %1 - + не удалоÑÑŒ прочеÑть Ñохранение: %1 + + + + Plugin "%1" failed: %2 + Плагин "%1" не удалоÑÑŒ: %2 - - Plugin "%1" failed: %2 - + + Plugin "%1" failed + Плагин "%1" не удалоÑÑŒ - - Failed to start "%1" - + + failed to init plugin %1: %2 + не удалоÑÑŒ инициализировать плагин %1: %2 + + + + Failed to start "%1" + Ðе удалоÑÑŒ запуÑтить "%1" - + Waiting - + Ожидание - - Please press OK once you're logged into steam. - + + Please press OK once you're logged into steam. + Ðажмите OK как только вы войдете в Steam. - - "%1" not found - + + "%1" not found + "%1" не найден - + Start Steam? - + ЗапуÑтить Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + ТребуетÑÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ñ‹Ð¹ Steam, Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ запуÑка игры. Должен ли MO попытатьÑÑ Ð·Ð°Ð¿ÑƒÑтить Steam ÑейчаÑ? - + Also in: <br> - + Также в: <br> - + No conflict - + Конфликтов нет - + <Edit...> - + <Правка...> - + This bsa is enabled in the ini file so it may be required! - + Этот bsa подключен через ini, так что он может быть необходим! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Этот архив вÑе равно будет загружен, так как еÑть плагин Ñ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÐµÐ½Ð½Ñ‹Ð¼ названием, но его файлы не будут Ñледовать порÑдку уÑтановки! - + Activating Network Proxy - + Подключение Ñетевого прокÑи - - + + Installation successful - + УÑтановка завершена - - + + Configure Mod - + ÐаÑтройка мода - - + + This mod contains ini tweaks. Do you want to configure them now? - + Этот мод включает наÑтройки ini. Ð’Ñ‹ хотите наÑтроить их ÑейчаÑ? - - - mod "%1" not found - + + + mod "%1" not found + мод "%1" не найден - - + + Installation cancelled - + УÑтановка отменена - - + + The mod was not installed completely. - + Мод не был уÑтановлен полноÑтью. - + Some plugins could not be loaded - + Ðекоторые плагины не могут быть загружены - + The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> - + Следующие плагины не могут быть загружены. Причина может быть в отÑутÑтвующих завиÑимоÑÑ‚ÑÑ… (таких как python) или в уÑтаревшей верÑии:<ul> - + Choose Mod - + Выберете мод - + Mod Archive - + Ðрхив мода - + Start Tutorial? - + Ðачать обучение? - - You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - + + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? + Ð’Ñ‹ ÑобираетеÑÑŒ открыть обучение. По техничеÑким причинам будет невозможно доÑрочно закончить обучение. Продолжить? - - + + Download started - + Загрузка начата - + failed to update mod list: %1 - + не удалоÑÑŒ обновить ÑпиÑок модов: %1 - + failed to spawn notepad.exe: %1 - + не удалоÑÑŒ вызвать notepad.exe: %1 - + failed to open %1 - + не удалоÑÑŒ открыть %1 - + failed to change origin name: %1 - - - - - Multiple esps activated, please check that they don't conflict. - + не удалоÑÑŒ изменить оригинальное имÑ: %1 - - - Create Mod... - - - - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - - A mod with this name already exists - - - - - <All> - - - - + <Checked> - - - - - Plugin "%1" failed - + <Подключен> - - failed to init plugin %1: %2 - - - - - - Description missing - - - - + <Unchecked> - + <Отключен> - + <Update> - + <Обновлен> - + <No category> - + <Без категории> - + <Conflicted> - + <Конфликтует> - + failed to rename mod: %1 - + не удалоÑÑŒ переименовать мод: %1 - + Overwrite? - + ПерезапиÑать? - - This will replace the existing mod "%1". Continue? - + + This will replace the existing mod "%1". Continue? + Это заменит ÑущеÑтвующий мод "%1". Продолжить? - - failed to remove mod "%1" - + + failed to remove mod "%1" + не удалоÑÑŒ удалить мод "%1" - - - - failed to rename "%1" to "%2" - Ðе удалоÑÑŒ переименовать "%1" в "%2" + + + + failed to rename "%1" to "%2" + не удалоÑÑŒ переименовать "%1" в "%2" - - - + + Multiple esps activated, please check that they don't conflict. + Подключено неÑколько esp, выберете из них не конфликтующие. + + + + + Confirm - Подтвердить + Подтверждение - + Remove the following mods?<br><ul>%1</ul> - + Удалить Ñледующие моды?<br><ul>%1</ul> - + failed to remove mod: %1 - + не удалоÑÑŒ удалить мод: %1 - - + + Failed - + Ðеудача - + Installation file no longer exists - + УÑтановочный файл больше не ÑущеÑтвует - - Mods installed with old versions of MO can't be reinstalled in this way. - + + Mods installed with old versions of MO can't be reinstalled in this way. + Моды, уÑтановленные Ñ Ð¸Ñпользованием Ñтарых верÑий MO не могут быть переÑтановленны таким образом. - - + + You need to be logged in with Nexus to endorse - + Ð’Ñ‹ должны быть авторизированы на Nexus, чтобы одобрÑть. - - + + Extract BSA - + Извлечь BSA - + This mod contains at least one BSA. Do you want to unpack it? -(This removes the BSA after completion. If you don't know about BSAs, just select no) - +(This removes the BSA after completion. If you don't know about BSAs, just select no) + Этот мод включает как минимум один BSA. Ð’Ñ‹ хотите раÑпаковать их? +(Это удалит BSA поÑле завершениÑ. ЕÑли вы не знаете ничего о BSAs, проÑто откажитеÑÑŒ) - - - + + + failed to read %1: %2 - Ðе удалоÑÑŒ прочитать %1: %2 + не удалоÑÑŒ прочеÑть %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Ðрхив Ñодержит неверные хеши. Ðекоторые файлы могут быть иÑпорчены. - + Nexus ID for this Mod is unknown - + Nexus ID Ð´Ð»Ñ Ñтого мода неизвеÑтен + + + + + Create Mod... + Создать мод... + + + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + Это перемеÑтит вÑе файлы от перезапиÑи в новый, отдельный мод. +ПожалуйÑта, введите имÑ: + + + + A mod with this name already exists + Мод Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует - + Really enable all visible mods? - + ДейÑтвительно подключить вÑе видимые моды? - + Really disable all visible mods? - + ДейÑтвительно отключить вÑе видимые моды? - + Choose what to export - + Выберете, что ÑкÑпортировать - + Everything - + Ð’ÑÑ‘ - + All installed mods are included in the list - + Ð’Ñе уÑтановленные моды, включенные в ÑпиÑок - + Active Mods - + Ðктивные моды - + Only active (checked) mods from your current profile are included - + Включены вÑе активные (подключенные) моды вашего текущего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + Visible - + Видимые - + All mods visible in the mod list are included - + Включены вÑе моды, видимые в ÑпиÑке модов - + export failed: %1 - + ÑкÑпорт не удалÑÑ: %1 - + Install Mod... - + УÑтановить мод... - + Enable all visible - + Включить вÑе видимые - + Disable all visible - + Отключить вÑе видимые - + Check all for update - + Проверить вÑе на Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ - + Export to csv... - + ЭкÑпорт в csv... - + Sync to Mods... - + Синхронизировать Ñ Ð¼Ð¾Ð´Ð°Ð¼Ð¸... - + Restore Backup - + ВоÑÑтановить из резервной копии - + Remove Backup... - + Удалить резервную копию... - + Set Category - + Задать категорию - + Primary Category - + ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Rename Mod... - + Переименовать мод... - + Remove Mod... - + Удалить мод... - + Reinstall Mod - + ПереуÑтановить мод - + Un-Endorse - + Отменить одобрение - - + + Endorse - + Одобрить - - Won't endorse - + + Won't endorse + Ðе одобрÑть - + Endorsement state unknown - + Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтен - + Ignore missing data - + Игнорировать отÑутÑтвующие данные - + Visit on Nexus - + Перейти на Nexus - + Open in explorer - + Открыть в проводнике - + Information... - + ИнформациÑ... - - + + Exception: - + ИÑключение: - - + + Unknown exception - + ÐеизвеÑтное иÑключение - + + <All> + <Ð’Ñе> + + + <Multiple> - + <ÐеÑколько> - + Fix Mods... - + ИÑправить моды... - - + + failed to remove %1 - + не удалоÑÑŒ удалить %1 - - + + failed to create %1 - + не удалоÑÑŒ Ñоздать %1 - - Can't change download directory while downloads are in progress! - + + Can't change download directory while downloads are in progress! + ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº, когда загрузки ещё не завершены! - + Download failed - + Загрузка не удалаÑÑŒ - + failed to write to file %1 - + ошибка запиÑи в файл %1 - + %1 written - + %1 запиÑан - + Select binary - + Выбрать иÑполнÑемый файл - + Binary - Двоичный + ИÑполнÑемый файл - + Enter Name - + Введите Ð¸Ð¼Ñ - + Please enter a name for the executable - + Введите название Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ - + Not an executable - + Ðе ÑвлÑетÑÑ Ð¸ÑполнÑемым - + This is not a recognized executable. - + Это неверный иÑполнÑемый файл. - - + + Replace file? - + Заменить файл? - + There already is a hidden version of this file. Replace it? - + Уже ÑущеÑтвует ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла. Заменить? - - + + File operation failed - + ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ не удалаÑÑŒ - - - Failed to remove "%1". Maybe you lack the required file permissions? - + + + Failed to remove "%1". Maybe you lack the required file permissions? + Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? - + There already is a visible version of this file. Replace it? - + Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - + Update available - + ДоÑтупно обновление - + Open/Execute - + Открыть/Выполнить - + Add as Executable - + Добавить как иÑполнÑемый - + Un-Hide - + Показать - + Hide - + Скрыть - + Write To File... - + ЗапиÑать в файл... - + Do you want to endorse Mod Organizer on %1 now? - + Ð’Ñ‹ хотите одобрить Mod Organizer на %1 ÑейчаÑ? - - Unlock load order - - - - - Lock load order - - - - + Request to Nexus failed: %1 - + Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Nexus не удалÑÑ: %1 - - + + login successful - + уÑпешный вход - + login failed: %1. Trying to download anyway - + вход не удалÑÑ: %1. ПытаюÑÑŒ загрузить вÑÑ‘ равно - + login failed: %1 - + войти не удалоÑÑŒ: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + войти не удалоÑÑŒ: %1. Вам нужно войти на Nexus, чтобы обновить MO. - + Error - + Ошибка - + failed to extract %1 (errorcode %2) - + не удалоÑÑŒ извлечь %1 (код ошибки %2) - + Extract... - + РаÑпаковка... - + Edit Categories... - + Изменить категории... - + Enable all - + Включить вÑе - + Disable all - + Отключить вÑе + + + + Unlock load order + Разблокировать порÑдок загрузки + + + + Lock load order + Заблокировать порÑдок загрузки @@ -2492,10 +2344,6 @@ Please enter a name: Placeholder Заполнитель - - Please install NCC - УÑтановите NCC - ModInfo @@ -2503,11 +2351,7 @@ Please enter a name: invalid index %1 - Ðеверный Ð¸Ð½Ð´ÐµÐºÑ %1 - - - invalid mod id %1 - неверный ID мода %1 + неверный Ð¸Ð½Ð´ÐµÐºÑ %1 @@ -2515,7 +2359,7 @@ Please enter a name: This is the backup of a mod - + Это Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð¾Ð´Ð° @@ -2538,7 +2382,7 @@ Please enter a name: A list of text-files in the mod directory like readmes. - СпиÑок текÑтовых файлов в каталоге мода, ознакомительных. + СпиÑок текÑтовых файлов в каталоге мода, таких как ридми. @@ -2554,7 +2398,7 @@ Please enter a name: This is a list of .ini files in the mod. - Это ÑпиÑок INI - фалов мода. + Это ÑпиÑок .ini-файлов мода. @@ -2583,16 +2427,16 @@ Please enter a name: - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок вÑех изображений (. JPG и. PNG) в каталоге мода, такие как Ñкриншоты и Ñ‚.п. Ðажмите на один из них, что бы увеличить.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок вÑех изображений (.jpg и .png) в каталоге мода, таких как Ñкриншоты и Ñ‚.п. Ðажмите на любое, Ð´Ð»Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ.</span></p></body></html> @@ -2603,26 +2447,26 @@ p, li { white-space: pre-wrap; } List of esps and esms that can not be loaded by the game. - СпиÑок ESP и ESM которые не могут быть включены в игру. + СпиÑок esp и esm, которые не могут быть загружены игрой. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">СпиÑок ESP и ESM Ñодержащие в паллагине, которые не могут быть включены в игру. они так же не будут отображены в ÑпиÑке ESP и ESM мода.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Они обычно Ñодержат дополнительные функции. См. ReadME.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">БольшинÑтво модов не имеют дополнительные ESP. ПоÑтому вы можете увидеть пуÑтой ÑпиÑок</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">СпиÑок esp и esm, ÑодержащихÑÑ Ð² плагине, которые не могут быть загружены в игру. Они так же не будут отображены в ÑпиÑке esp, в главном окне MO.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Они обычно Ñодержат опциональный функционал, Ñмотрите документацию.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">БольшинÑтво модов не Ñодержат дополнительных esp, поÑтому вы можете увидеть пуÑтой ÑпиÑок</span></p></body></html> @@ -2631,8 +2475,8 @@ p, li { white-space: pre-wrap; } - The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. - Выбранный ESP (в нижнем ÑпиÑке) будет перемещены в подкаталог мода и, таким образом, Ñтанут "невидимыми" Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. Затем они больше не будут активированы. + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. + Выбранный ESP (в нижнем ÑпиÑке) будет перемещены в подкаталог мода и, таким образом, Ñтанут "невидимыми" Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. Затем они больше не будут активированы. @@ -2641,8 +2485,8 @@ p, li { white-space: pre-wrap; } - This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. - Перемещает ESP в каталог Data. Он может быть включен в главном окне. Обратите внимание, что ESP проÑто ÑтановитÑÑ "доÑтупным", Ñто не обÑзательно будет включен! Это наÑтраиваетÑÑ Ð² главном окне OMO. + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. + Перемещает esp в каталог Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ esp так, что он может быть подключен в главном окне. Обратите внимание, что ESP проÑто ÑтановитÑÑ "доÑтупным", но не будет загружен! Это наÑтраиваетÑÑ Ð² главном окне MO. @@ -2652,7 +2496,7 @@ p, li { white-space: pre-wrap; } These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. - Это моды который находÑÑ‚ÑÑ Ð² каталоге игры (виртуальном). Они могут быть включены в главном окне. + Это файлы модов которые находÑÑ‚ÑÑ Ð² (виртуальном)каталоге данных вашей игры и могут быть выбираемыми в ÑпиÑке esp, в главном окне. @@ -2703,7 +2547,7 @@ p, li { white-space: pre-wrap; } Primary Category - + ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ @@ -2722,29 +2566,29 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod ID for this mod on Nexus. This is filled in automatically if you downloaded and installed the mod from inside MO. Otherwise you can enter it manually. To find the correct id, find the mod on nexus. The URL will look like this: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. In this example, 1334 is the id you're looking for. Besides: The above is the link to Mod Organizer on the Nexus. Why not go there now and endorse?</span></a></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod ID for this mod on Nexus. This is filled in automatically if you downloaded and installed the mod from inside MO. Otherwise you can enter it manually. To find the correct id, find the mod on nexus. The URL will look like this: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. In this example, 1334 is the id you're looking for. Besides: The above is the link to Mod Organizer on the Nexus. Why not go there now and endorse?</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ñтого мода на Nexus. ЗаполнÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, еÑли Ñкачали и уÑтановили мод МО. Иначе вы можете ввеÑти его вручную. Чтобы найти правильный ID, нужно найти иÑточник. URL будет выглÑдеть Ñледующим образом: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. Ð’ Ñтом примере, вы ищите ID 1334. Кроме того: выше еÑть ÑÑылка на Mod Organizer на Nexus. Почему бы не пойти туда b yt ghjdthbnm?</span></a></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ñтого мода на Nexus. ЗаполнÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, еÑли Ñкачали и уÑтановили мод из МО. Ð’ противном Ñлучае вы можете ввеÑти его вручную. Чтобы найти правильный ID, нужно найти мод на Nexus. URL будет выглÑдеть Ñледующим образом: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. Ð’ Ñтом примере, 1334 - ID, который вы ищете. Кроме того: Выше еÑть ÑÑылка на Mod Organizer на Nexus. Почему бы не перейти по ней и не одобрить?</span></a></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Installed Version of the Mod. The tooltip will contain the current version available on nexus. The installed version is only set if you installed the mod through MO.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Installed Version of the Mod. The tooltip will contain the current version available on nexus. The installed version is only set if you installed the mod through MO.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¼Ð¾Ð´Ð°. Ð’ подÑказке будет ÑодержатьÑÑ Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÑÑылка. УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÑƒÑтанавливаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли вы уÑтановили мод через МО</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¼Ð¾Ð´Ð°. ПодÑказка будет Ñодержать текущую верÑию, доÑтупную на Nexus. УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÑƒÑтановитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли вы уÑтановили мод через МО.</span></p></body></html> @@ -2754,12 +2598,12 @@ p, li { white-space: pre-wrap; } Refresh - + Обновить информацию Refresh all information from Nexus. - + Обновить вÑÑŽ информацию Ñ Nexus @@ -2768,51 +2612,28 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - - - Files - Файлы - - - List of files currently uploaded on nexus. Double click to download. - СпиÑок файлов загружаемых Ñ Nexus. Двойной клик Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ - - - Type - Тип - - - Name - Ð˜Ð¼Ñ - - - Size (kB) - Размер (KB) +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> Endorse - + Одобрить Notes - - - - Endorsements are an important motivation for authors. Please don't forget to endorse mods you like. - Ðе забудте поблагодарить автора. - - - Have you endorsed this yet? - Поблагодарить? + ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ @@ -2826,23 +2647,28 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a modifiable directory view of the mod directory. You can move around files using drag &amp; drop and rename them (double click).</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Changes happen immediately on disc, so do</span><span style=" font-size:8pt; font-weight:600;"> be careful</span><span style=" font-size:8pt;">.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a modifiable directory view of the mod directory. You can move around files using drag &amp; drop and rename them (double click).</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Changes happen immediately on disc, so do</span><span style=" font-size:8pt; font-weight:600;"> be careful</span><span style=" font-size:8pt;">.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это обзор модифицируемого каталога папки мода. Ð’Ñ‹ можете перемещать файлы, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¿ÐµÑ€ÐµÑ‚Ð°Ñкивание и переименовывать их двойным кликом.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸ÑходÑÑ‚ непоÑредÑтвенно на диÑке, так что</span><span style=" font-size:8pt; font-weight:600;"> будьте оÑторожныl</span><span style=" font-size:8pt;">.</span></p></body></html> Previous - + Предыдущий Next - Вперед + Вперед @@ -2852,22 +2678,22 @@ p, li { white-space: pre-wrap; } &Delete - + &Удалить &Rename - + &Переименовать &Hide - + &Скрыть &Unhide - + &Показать @@ -2877,184 +2703,184 @@ p, li { white-space: pre-wrap; } &New Folder - + &ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° Save changes? - + Сохранить изменениÑ? + + + + + Save changes to "%1"? + Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² "%1"? File Exists - + Файл уже ÑущеÑтвует A file with that name exists, please enter a new one - + Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует, укажите другое failed to move file - + не удалоÑÑŒ перемеÑтить файл - failed to create directory "optional" - + failed to create directory "optional" + не удалоÑÑŒ Ñоздать папку "optional" Info requested, please wait - - - - - (description incomplete, please visit nexus) - - - - - Current Version: %1 - - - - - No update available - + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð°, пожалуйÑта, подождите Main - - - - - - Save changes to "%1"? - + Главное Update - + Обновление Optional - + Опционально Old - + Старые Misc - + Разное Unknown - + ÐеизвеÑтно - - <a href="%1">Visit on Nexus</a> - + + Current Version: %1 + Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ: %1 - - - Confirm - Подтвердить + + No update available + Ðет доÑтупных обновлений + + + + (description incomplete, please visit nexus) + (опиÑание не завершено, Ñмотрите на nexus) + + + + <a href="%1">Visit on Nexus</a> + <a href="%1">Перейти на Nexus</a> Failed to delete %1 - + Ðе удалоÑÑŒ удалить %1 - Are sure you want to delete "%1"? - + + Confirm + Подтверждение + + + + Are sure you want to delete "%1"? + Ð’Ñ‹ уверены, что хотите удалить "%1"? Are sure you want to delete the selected files? - + Ð’Ñ‹ уверены, что хотите удалить выбранные файлы? New Folder - + ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - Failed to create "%1" - + Failed to create "%1" + Ðе удалоÑÑŒ Ñоздать "%1" Replace file? - + Заменить файл? There already is a hidden version of this file. Replace it? - + Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? File operation failed - + Ðе удалаÑÑŒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ - Failed to remove "%1". Maybe you lack the required file permissions? - + Failed to remove "%1". Maybe you lack the required file permissions? + Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? failed to rename %1 to %2 - + не удалоÑÑŒ переименовать %1 в %2 There already is a visible version of this file. Replace it? - + Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? Un-Hide - + Показать Hide - + Скрыть ModInfoOverwrite - - - Overwrite - - This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) - + Этот пÑевдо-мод Ñодержит файлы из виртуального древа данных, которые были изменены (в Construction Kit и других программах) + + + + Overwrite + Замена @@ -3062,180 +2888,176 @@ p, li { white-space: pre-wrap; } failed to write %1/meta.ini: %2 - + не удалоÑÑŒ запиÑать %1/meta.ini: %2 %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory - + %1 не Ñодержит ни esp/esm, ни папок реÑурÑов (textures, meshes, interface, ...) Categories: <br> - + Категории: <br> ModList - - - Confirm - Подтвердить - Overwrite - + Замена This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit) - + Эта запиÑÑŒ включает файлы, которые были Ñозданы внутри виртуального древа (Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Construction Kit и др. программ) Backup - + Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ No valid game data - + Ðеверные игровые данные Not endorsed yet - + Еще не одобрено Overwrites files - + ЗаменÑет файлы Overwritten files - + Замененные файлы Overwrites & Overwritten - + ЗаменÑет и заменÑетÑÑ Redundant - - - - - Category of the mod. - - - - - Id of the mod as used on Nexus. - - - - - Emblemes to highlight things that might require attention. - + Избыточные - - Categories: <br> - + + invalid + неверные installed version: %1, newest version: %2 - - - - Name - Ð˜Ð¼Ñ - - - - Version - ВерÑÐ¸Ñ - - - - Version of the mod (if available) - + уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ: %1, Ð½Ð¾Ð²ÐµÐ¹ÑˆÐ°Ñ Ð²ÐµÑ€ÑиÑ: %2 - - Priority - - - - - invalid - + + Categories: <br> + Категории: <br> Invalid name - + ÐедопуÑтимое Ð¸Ð¼Ñ drag&drop failed: %1 - + перетаÑкивание не удалоÑÑŒ: %1 + + + + Confirm + Подтверждение + + + + Are you sure you want to remove "%1"? + Ð’Ñ‹ дейÑтвительно хотите удалить "%1"? Flags - + Флаги Mod Name - + Ð˜Ð¼Ñ Ð¼Ð¾Ð´Ð° + + + + Version + ВерÑÐ¸Ñ + + + + Priority + Приоритет Category - + ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Nexus ID - + Nexus ID Installation - + УÑтановка unknown - + неизвеÑтный Name of your mods - + Ð˜Ð¼Ñ Ð²Ð°ÑˆÐ¸Ñ… модов + + + + Version of the mod (if available) + ВерÑÐ¸Ñ Ð¼Ð¾Ð´Ð° (еÑли доÑтупно) - Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. + Приоритет уÑтановки Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… модов. Файлы модов Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ приоритетом перезапишут файлы модов Ñ Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ приоритетом. - - Time this mod was installed - + + Category of the mod. + ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¼Ð¾Ð´Ð°. - - Are you sure you want to remove "%1"? - + + Id of the mod as used on Nexus. + ID мода, иÑпользуемый на Nexus. + + + + Emblemes to highlight things that might require attention. + ВыделÑет подÑветкой вещи, которые могут потребовать вниманиÑ. + + + + Time this mod was installed + ВремÑ, когда мод был уÑтановлен. @@ -3243,12 +3065,12 @@ p, li { white-space: pre-wrap; } Message of the Day - + Сообщение Ð´Ð½Ñ OK - + OK @@ -3256,12 +3078,12 @@ p, li { white-space: pre-wrap; } Overwrites - + ЗаменÑет not implemented - + не реализовано @@ -3269,37 +3091,30 @@ p, li { white-space: pre-wrap; } timeout - + задержка Please check your password - - - - - NexusDialog - - Mod ID - ID мода + Проверьте ваш пароль NexusInterface - Failed to guess mod id for "%1", please pick the correct one - + Failed to guess mod id for "%1", please pick the correct one + Ðе удалоÑÑŒ опознать id мода "%1", пожалуйÑта, выберете правильный empty response - + пуÑтой ответ invalid response - + неверный ответ @@ -3307,22 +3122,22 @@ p, li { white-space: pre-wrap; } Overwrite - + Замена You can use drag&drop to move files and directories to regular mods. - + Ð’Ñ‹ можете иÑпользовать перетаÑкивание, Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¿Ð¾Ðº и файлов в раÑпакованные моды. &Delete - + &Удалить &Rename - + &Переименовать @@ -3332,130 +3147,114 @@ p, li { white-space: pre-wrap; } &New Folder - + &ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - Failed to delete "%1" - + Failed to delete "%1" + Ðе удалоÑÑŒ удалить "%1" Confirm - Подтвердить + Подтверждение - Are sure you want to delete "%1"? - + Are sure you want to delete "%1"? + Ð’Ñ‹ уверены, что хотите удалить "%1"? Are sure you want to delete the selected files? - + Ð’Ñ‹ дейÑтвительно хотите удалить выбранные файлы? New Folder - + ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - Failed to create "%1" - + Failed to create "%1" + Ðе удалоÑÑŒ Ñоздать "%1" PluginList - + + Name + Ð˜Ð¼Ñ + + + + Priority + Приоритет + + + Mod Index - + Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° - - + + unknown - + неизвеÑтно - + Name of your mods - + Имена ваших модов - - Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. + Приоритет загрузки ваших модов. Моды Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ приоритетом перезапишут данные модов Ñ Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ приоритетом. - + The modindex determins the formids of objects originating from this mods. - + Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° определÑющий id форм объектов, проиÑходÑщих из Ñтих модов. - + esp not found: %1 - + esp не найден: %1 - - - Confirm - Подтвердить - - - - Really enable all plugins? - - - - - Really disable all plugins? - - - - + The file containing locked plugin indices is broken - + Файл, Ñодержащий индекÑÑ‹ заблокированного плагина, не работает. - + failed to open output file: %1 - + не удалоÑÑŒ открыть выходной файл: %1 Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - - - - - failed to restore load order for %1 - + Ðекоторые из ваших плагинов имеют неверные имена. Эти плагины не могут быть загружены игрой. Смотрите mo_interface.log Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑпиÑка таких плагинов и переименуйте их. - This plugin can't be disabled (enforced by the game) - + This plugin can't be disabled (enforced by the game) + Этот плагин не может быть отключен (грузитÑÑ Ð¸Ð³Ñ€Ð¾Ð¹ принудительно) Origin: %1 - + ИÑточник: %1 - - Name - Ð˜Ð¼Ñ - - - - Priority - + + failed to restore load order for %1 + не удалоÑÑŒ воÑÑтановить порÑдок загрузки Ð´Ð»Ñ %1 @@ -3463,31 +3262,35 @@ p, li { white-space: pre-wrap; } Problems - + Проблемы - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> fix - + иÑправить Fix - + ИÑправить No guided fix - + Ðе управлÑемое иÑправление @@ -3495,27 +3298,27 @@ p, li { white-space: pre-wrap; } invalid profile name %1 - + неверное Ð¸Ð¼Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ %1 failed to create %1 - + не удалоÑÑŒ Ñоздать %1 - failed to open "%1" for writing - + failed to open "%1" for writing + не удалоÑÑŒ открыть "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи failed to update tweaked ini file, wrong settings may be used: %1 - + не удалоÑÑŒ обновить наÑтроенный ini-файл, вероÑтно иÑпользуютÑÑ Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ñ‹Ðµ наÑтройки: %1 failed to create tweaked ini: %1 - + не удалоÑÑŒ Ñоздать наÑтроенный ini: %1 @@ -3524,43 +3327,43 @@ p, li { white-space: pre-wrap; } invalid index %1 - Ðеверный Ð¸Ð½Ð´ÐµÐºÑ %1 + неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - Overwrite directory couldn't be parsed - + Overwrite directory couldn't be parsed + Замена каталога не может быть обработана invalid priority %1 - + неверный приоритет %1 failed to parse ini file (%1) - + не удалоÑÑŒ обработать ini файл (%1) failed to parse ini file (%1): %2 - + не удалоÑÑŒ обработать ini файл (%1): %2 - failed to modify "%1" - + failed to modify "%1" + не удалоÑÑŒ изменить "%1" - + Delete savegames? - + Удалить ÑохранениÑ? - - Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) - + + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) + Ð’Ñ‹ хотите удалить локальные ÑохранениÑ? (При отрицательном выборе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð·ÑÑ‚ÑÑ Ñнова, еÑли повторно включить локальные ÑохранениÑ) @@ -3568,27 +3371,27 @@ p, li { white-space: pre-wrap; } Dialog - + Диалог Please enter a name for the new profile - + Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ If checked, the new profile will use the default game settings. - + ЕÑли отмечено, новый профиль будет иÑпользовать наÑтройки игры по умолчанию. - If checked, the new profile will use the default game settings instead of the "global" settings. Global settings are the settings you configure when running the game launcher directly, without MO. - + If checked, the new profile will use the default game settings instead of the "global" settings. Global settings are the settings you configure when running the game launcher directly, without MO. + ЕÑли отмечено, новый профиль будет иÑпользовать наÑтройки игры по умолчанию, вмеÑто общих наÑтроек. Общие наÑтройки, Ñто наÑтройки, которые вы уÑтановили, когда запуÑтили лаунчер игры напрÑмую, без MO. Default Game Settings - + ÐаÑтройки игры по умолчанию @@ -3596,109 +3399,122 @@ p, li { white-space: pre-wrap; } Profiles - + Профили List of Profiles - + СпиÑок профилей - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is the list of profiles. Each Profile contains its own list and installation order of enabled mods (from a shared pool), a configuration of enabled esps/esms, a copy of the games ini-file and an optional savegame filter.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Note</span> For technical reasons it's currently not possible to have seperate load-orders for esps. This means you can't load moda.esp before modb.esp in one profile and the other way around in another.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is the list of profiles. Each Profile contains its own list and installation order of enabled mods (from a shared pool), a configuration of enabled esps/esms, a copy of the games ini-file and an optional savegame filter.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Note</span> For technical reasons it's currently not possible to have seperate load-orders for esps. This means you can't load moda.esp before modb.esp in one profile and the other way around in another.</p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Это ÑпиÑок профилей. Каждый профиль Ñодержит Ñвой ÑобÑтвенный ÑпиÑок и порÑдок уÑтановки подключенных модов (из общего пула), наÑтройки подключенных esps/esms, копии игровых ini-файлов и опциональный фильтр Ñохранений.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Примечание</span> По техничеÑким причинам невозможно иметь отдельные порÑдки загрузки Ð´Ð»Ñ esp. Это означает, что вы не Ñможете загрузить moda.esp пере modb.esp в одном профиле и иным образом в другом профиле.</p></body></html> If checked, savegames are local to this profile and will not appear when starting with a different profile. - + ЕÑли отмечено, ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ локальными Ð´Ð»Ñ Ñтого Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¸ не будут отображены Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… профилей. Local Savegames - + Локальные ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ This ensures data files from mods are actually used. You want to enable this unless you use a different tool for Archive Invalidation. - + Это гарантирует иÑпользование файлов данных из модов. Вам нужно включить Ñто, еÑли вы не иÑпользуете других инÑтрументов Ð´Ð»Ñ Ð¸Ð½Ð²Ð°Ð»Ð¸Ð´Ð°Ñ†Ð¸Ð¸. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The games Oblivion, Fallout 3 and Fallout NV contain a bug which prevents texture and mesh replacers (that is: all modifications to meshes and textures already in game) from working.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Mod Organizer uses a workaround called &quot;BSA redirection&quot; (google is your friend) to fix this issue reliably and without further work. Simply activate and forget.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">With Skyrim this bug seems to be fixed to a degree but whether a mod becomes active still depends on file dates. Therefore, it still makes sense to activate this.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The games Oblivion, Fallout 3 and Fallout NV contain a bug which prevents texture and mesh replacers (that is: all modifications to meshes and textures already in game) from working.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Mod Organizer uses a workaround called &quot;BSA redirection&quot; (google is your friend) to fix this issue reliably and without further work. Simply activate and forget.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">With Skyrim this bug seems to be fixed to a degree but whether a mod becomes active still depends on file dates. Therefore, it still makes sense to activate this.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Игры Oblivion, Fallout 3 и Fallout NV Ñодержат баг, который делает неработоÑпоÑобными текÑтуры и модели реплейÑеров (то еÑть: вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ и текÑтур в игре).</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod Organizer иÑпользует ÑпоÑоб обхода, называемый &quot;BSA redirection&quot; (google в помощь), чтобы решить Ñту проблему надежно и без дальнейшей возни. ПроÑто подключить и забыть.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’ Скайрим, кажетÑÑ, Ñтот баг иÑправлен в извеÑтной Ñтепени, но будет ли мод активным, завиÑит по прежнему от даты модификации файлов. ПоÑтому вÑÑ‘ ещё еÑть ÑмыÑл включить Ñто.</span></p></body></html> Automatic Archive Invalidation - + ÐвтоматичеÑÐºÐ°Ñ Ð¸Ð½Ð²Ð°Ð»Ð¸Ð´Ð°Ð´Ñ†Ð¸Ñ Create a new profile from scratch - + Создать новый профиль Â«Ñ Ð½ÑƒÐ»Ñ» Create - + Создать Clone the selected profile - + Клонировать выбранный профиль This creates a new profile with the same settings and active mods as the selected one. - + Это ÑоздаÑÑ‚ новый профиль Ñ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸ же наÑтройками и активными модами, как у выбранного. Copy - + Копировать Delete the selected Profile. This can not be un-done! - + Удалить выбранный профиль. Это Ð½ÐµÐ»ÑŒÐ·Ñ Ð±ÑƒÐ´ÐµÑ‚ отменить! Remove - + Удалить Rename - + Переименовать Transfer save games to the selected profile. - + Передать ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² выбранный профиль. Transfer Saves - + Передать ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ @@ -3707,14 +3523,14 @@ p, li { white-space: pre-wrap; } - Archive invalidation isn't required for this game. - + Archive invalidation isn't required for this game. + Ð˜Ð½Ð²Ð°Ð»Ð¸Ð´Ð°Ñ†Ð¸Ñ Ð½Ðµ требуетÑÑ Ð´Ð»Ñ Ñтой игры. failed to create profile: %1 - + не удалоÑÑŒ Ñоздать профиль: %1 @@ -3724,42 +3540,42 @@ p, li { white-space: pre-wrap; } Please enter a name for the new profile - + Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ failed to copy profile: %1 - + не удалоÑÑŒ Ñкопировать профиль: %1 Confirm - Подтвердить + Подтверждение Are you sure you want to remove this profile? - + Ð’Ñ‹ дейÑтвительно хотите удалить Ñтот профиль? Rename Profile - + Переименовать профиль New Name - + Ðовое Ð¸Ð¼Ñ failed to change archive invalidation state: %1 - + не удалоÑÑŒ изменить режим инвалидации: %1 failed to determine if invalidation is active: %1 - + не удалоÑÑŒ определить активноÑть инвалидации: %1 @@ -3767,7 +3583,7 @@ p, li { white-space: pre-wrap; } Failed to save custom categories - + Ðе удалоÑÑŒ Ñохранить пользовательÑкие категории @@ -3775,301 +3591,311 @@ p, li { white-space: pre-wrap; } invalid index %1 - Ðеверный Ð¸Ð½Ð´ÐµÐºÑ %1 + неверный Ð¸Ð½Ð´ÐµÐºÑ %1 invalid category id %1 - + неверный id категории %1 + + + + invalid field name "%1" + неверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ "%1" + + + + invalid type for "%1" (should be integer) + неверный тип Ð´Ð»Ñ "%1" (должно быть целое) + + + + invalid type for "%1" (should be string) + неверный тип Ð´Ð»Ñ "%1" (должна быть Ñтрока) + + + + invalid type for "%1" (should be float) + неверный тип Ð´Ð»Ñ "%1" (должно быть Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ запÑтой) + + + + no fields set up yet! + уÑтановленных полей ещё нет! + + + + field not set "%1" + поле не уÑтановлено "%1" + + + + invalid character in field "%1" + неверный Ñимвол в поле "%1" + + + + empty field name + пуÑтое Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ + + + + invalid game type %1 + неверный тип игры %1 helper failed - + Ñбой помощника failed to determine account name - + не удалоÑÑŒ определить Ð¸Ð¼Ñ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð° invalid 7-zip32.dll: %1 - + неверный 7-zip32.dll: %1 failed to open %1: %2 - + не удалоÑÑŒ открыть %1: %2 %1 not found - + %1 не найден Failed to delete %1 - + Ðе удалоÑÑŒ удалить %1 Failed to deactivate script extender loading - + Ðе удалоÑÑŒ отключить загрузку раÑÑˆÐ¸Ñ€Ð¸Ñ‚ÐµÐ»Ñ Ñкриптов Failed to remove %1: %2 - + Ðе удалоÑÑŒ удалить %1: %2 Failed to rename %1 to %2 - + Ðе удалоÑÑŒ переименовать %1 в %2 Failed to deactivate proxy-dll loading - + Ðе удалоÑÑŒ отключить загрузку proxy-dll Failed to copy %1 to %2 - + Ðе удалоÑÑŒ Ñкопировать %1 в %2 Failed to set up script extender loading - + Ðе удалоÑÑŒ уÑтановить загрузку раÑÑˆÐ¸Ñ€Ð¸Ñ‚ÐµÐ»Ñ Ñкриптов Failed to delete old proxy-dll %1 - + Ðе удалоÑÑŒ удалить Ñтарый proxy-dll %1 Failed to overwrite %1 - + Ðе удалоÑÑŒ заменить %1 Failed to set up proxy-dll loading - - - - - "%1" is missing - + Ðе удалоÑÑŒ уÑтановить загрузку proxy-dll Permissions required - + ТребуютÑÑ Ð¿Ñ€Ð°Ð²Ð° доÑтупа + + + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + Текущий аккаунт Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ имеет необходимых прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Mod Organizer. Ðеобходимые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть Ñделаны автоматичеÑки (каталог MO будет уÑтановлен запиÑываемым Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ аккаунта пользователÑ). Вам будет предложено запуÑтить "helper.exe" Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора. Woops - - - - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). - + Ð£Ð¿Ñ ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + Mod Organizer вышел из ÑтроÑ! Ðужно ли Ñоздать диагноÑтичеÑкий файл? ЕÑли вы вышлите файл (%1) по адреÑу sherb@gmx.net, ошибка Ñ Ð½Ð°Ð¼Ð½Ð¾Ð³Ð¾ большей вероÑтноÑтью будет иÑправлена. ПожалуйÑта, добавьте краткое опиÑание Ñвоих дейÑтвий, перед тем, как произошла ошибка ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 - + ModOrganizer вышел из ÑтроÑ! К Ñожалению не удалоÑÑŒ запиÑать диагноÑтичеÑкий файл: %1 - + Mod Organizer - + Mod Organizer An instance of Mod Organizer is already running - + Другой ÑкземплÑÑ€ Mod Organizer уже запущен - No game identified in "%1". The directory is required to contain the game binary and its launcher. - + No game identified in "%1". The directory is required to contain the game binary and its launcher. + Игра не обнаружена в "%1". ТребуетÑÑ, чтобы папка Ñодержала иÑполнÑемые файлы игры. Please select the game to manage - + Выберете игру Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ - - Please use "Help" from the toolbar to get usage instructions to all elements - + + Please use "Help" from the toolbar to get usage instructions to all elements + ИÑпользуйте пункт "Справка" на панели инÑтрументов, чтобы получить инÑтрукции по иÑпользованию вÑех Ñлементов. - - + + <Manage...> - + <УправлÑть...> - + failed to parse profile %1: %2 - + не удалоÑÑŒ обработать профиль %1: %2 - + - failed to find "%1" - + failed to find "%1" + не удалоÑÑŒ найти "%1" + + + + encoding error, please report this as a bug and include the file mo_interface.log! + ошибка кодированиÑ, пожалуйÑта Ñообщите об Ñтом баге, включив файл mo_interface.log! failed to access %1 - + не удалоÑÑŒ получить доÑтуп к %1 failed to set file time %1 - + не удалоÑÑŒ изменить дату модификации Ð´Ð»Ñ %1 failed to create %1 - + не удалоÑÑŒ Ñоздать %1 + + + + "%1" is missing + "%1" отÑутÑтвует Before you can use ModOrganizer, you need to create at least one profile. ATTENTION: Run the game at least once before creating a profile! - + Перед тем, как иÑпользовать Mod Organizer, вам нужно Ñоздать Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один профиль. Ð’ÐИМÐÐИЕ: Перед Ñозданием Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð·Ð°Ð¿ÑƒÑтите игру Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один раз! Error - + Ошибка wrong file format - + неверный формат файла failed to open %1 - + не удалоÑÑŒ открыть %1 - + Script Extender - + Script Extender - + Proxy DLL - + Proxy DLL - failed to spawn "%1" - + failed to spawn "%1" + не удалоÑÑŒ вызвать "%1" Elevation required - + ТребуетÑÑ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ðµ прав This process requires elevation to run. This is a potential security risk so I highly advice you to investigate if -"%1" +"%1" can be installed to work without elevation. Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe to make changes to the system) - + Этот процеÑÑ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð² на запуÑк. +Это потенциальный риÑк Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти, поÑтому наÑтоÑтельно рекомендуетÑÑ Ð¸Ð·ÑƒÑ‡Ð¸Ñ‚ÑŒ +"%1" + на возможноÑть уÑтановки без Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð². + +ЗапуÑтить Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ правами в любом Ñлучае? (будет выведен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾ разрешении ModOrganizer.exe Ñделать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑиÑтеме) - failed to spawn "%1": %2 - + failed to spawn "%1": %2 + не удалоÑÑŒ вызвать "%1": %2 - "%1" doesn't exist - + "%1" doesn't exist + "%1" не ÑущеÑтвует - failed to inject dll into "%1": %2 - + failed to inject dll into "%1": %2 + не удалоÑÑŒ подключить dll к "%1": %2 - failed to run "%1" - - - - - invalid field name "%1" - - - - - invalid type for "%1" (should be integer) - - - - - invalid type for "%1" (should be string) - - - - - invalid type for "%1" (should be float) - - - - - no fields set up yet! - - - - - field not set "%1" - - - - - invalid character in field "%1" - - - - - empty field name - - - - - invalid game type %1 - + failed to run "%1" + не удалоÑÑŒ запуÑтить "%1" @@ -4077,22 +3903,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Mod Exists - + Мод ÑущеÑтвует This mod seems to be installed already. Do you want to add files from this archive (overwriting existing ones) or do you want to completely replace the existing files (old files are deleted)? Alternatively you can install this mod under a different name. - + КажетÑÑ, что Ñтот мод уже уÑтановлен. Ð’Ñ‹ хотите добавить файлы из архива (Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñью уже ÑущеÑтвующих) или вам нужно полноÑтью заменить ÑущеÑтвующие файлы (Ñтарые будут удалены)? Как вариант, вы можете уÑтановить Ñтот мод под другим именем. Keep Backup - + ОÑтавить резервную копию Merge - + Объединить @@ -4102,7 +3928,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Rename - + Переименовать @@ -4115,7 +3941,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Remember selection - + Запомнить выбор @@ -4123,27 +3949,27 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Save # - + Сохранение â„– Character - + ПерÑонаж Level - + Уровень Location - + МеÑтоположение Date - + Дата @@ -4151,7 +3977,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Missing ESPs - + ОтÑутÑтвующие ESP @@ -4159,17 +3985,17 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Dialog - + Диалог Copy To Clipboard - + Копировать в буфер обмена Save As... - + Сохранить как... @@ -4179,17 +4005,17 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Save CSV - + Сохранить CSV Text Files - + ТекÑтовые файлы - failed to open "%1" for writing - + failed to open "%1" for writing + не удалоÑÑŒ открыть "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи @@ -4197,7 +4023,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Select - + Выбрать @@ -4214,8 +4040,8 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe SelfUpdater - archive.dll not loaded: "%1" - + archive.dll not loaded: "%1" + archive.dll не загружен: "%1" @@ -4223,95 +4049,95 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Update - + Обновление An update is available (newest version: %1), do you want to install it? - + ДоÑтупно обновление (поÑледнÑÑ Ð²ÐµÑ€ÑиÑ: %1). Ð’Ñ‹ хотите уÑтановить его? Download in progress - + Загрузка в процеÑÑе Download failed: %1 - + Загрузка не удалаÑÑŒ: %1 Failed to install update: %1 - + Ðе удалоÑÑŒ уÑтановить обновление: %1 - failed to open archive "%1": %2 - Ðе удалоÑÑŒ открыть архив "%1": %2 + failed to open archive "%1": %2 + не удалоÑÑŒ открыть архив "%1": %2 failed to move outdated files: %1. Please update manually. - + не удалоÑÑŒ перемеÑтить уÑтаревшие файлы: %1. ПожалуйÑта, обновите вручную. Update installed, Mod Organizer will now be restarted. - + Обновление уÑтановлено, Mod Organizer будет перезапущен. Error - + Ошибка Failed to parse response. Please report this as a bug and include the file mo_interface.log. - + Ðе удалоÑÑŒ обработать запроÑ. ПожалуйÑта, Ñообщите об Ñтом баге, включив в Ñообщение файл mo_interface.log. No incremental update available for this version, the complete package needs to be downloaded (%1 kB) - + Ðет дополнительных обновлений Ð´Ð»Ñ Ñтой верÑии, необходимо загрузить полный пакет (%1 kB) no file for update found. Please update manually. - - - - - No download server available. Please try again later. - Сервер недоÑтупен. Попробуйте позже. + не найдено файла Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ. ПожалуйÑта, обновите вручную. Failed to retrieve update information: %1 - + Ðе удалоÑÑŒ получить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± обновлении: %1 + + + + No download server available. Please try again later. + Ðет доÑтупных Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ Ñерверов. ПожалуйÑта, попробуйте позже. Settings - - setting for invalid plugin "%1" requested - + + setting for invalid plugin "%1" requested + запрошена наÑтройка Ð´Ð»Ñ Ð½ÐµÐ´ÐµÐ¹Ñтвительного плагина "%1" - - invalid setting "%1" requested for plugin "%2" - + + invalid setting "%1" requested for plugin "%2" + Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð½Ð°Ñтройка "%1" запрошена Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð° "%2" - + Confirm - Подтвердить + Подтверждение - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? - + Изменение каталога Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¾Ð² отразитÑÑ Ð½Ð° вÑех ваших профилÑÑ…. ÐÐµÐ»ÑŒÐ·Ñ Ð±ÑƒÐ´ÐµÑ‚ отменить Ñто, еÑли только вы не Ñохранили резервные копии ваших профилей вручную. Продолжить? @@ -4319,169 +4145,178 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - + ÐаÑтройки General - + Общие Language - + Язык The display language - + ИÑпользуемый Ñзык - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The display language. This will only displaye languages for which you have a translation installed.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The display language. This will only displaye languages for which you have a translation installed.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ИÑпользуемый Ñзык. Будут отображены Ñзыки, Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° которые имеетÑÑ.</span></p></body></html> Style - + Стиль graphical style - + графичеÑкий Ñтиль graphical style of the MO user interface - + графичеÑкий Ñтиль пользовательÑкого интерфейÑа MO Log Level - + Уровень Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - Decides the amount of data printed to "ModOrganizer.log" - + Decides the amount of data printed to "ModOrganizer.log" + ОпределÑет количеÑтво данных, выводимых в "ModOrganizer.log" - Decides the amount of data printed to "ModOrganizer.log". -"Debug" produces very useful information for finding problems. There is usually no noteworthy performance impact but the file may become rather large. If this is a problem you may prefer the "Info" level for regluar use. On the "Error" level the log file usually remains empty. - + Decides the amount of data printed to "ModOrganizer.log". +"Debug" produces very useful information for finding problems. There is usually no noteworthy performance impact but the file may become rather large. If this is a problem you may prefer the "Info" level for regluar use. On the "Error" level the log file usually remains empty. + ОпределÑет количеÑтво данных, выводимых в "ModOrganizer.log". +"Отладка" позволÑет получить очень полезную Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка проблем информацию. ВлиÑÐ½Ð¸Ñ Ð½Ð° производительноÑть не замечено, однако размер лога может быть довольно большим. ЕÑли Ñто проблема, то вы можете предпочеÑть Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ð³Ð¾ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ "ИнформациÑ". Ðа уровне "Ошибка" лог обычно оÑтаетÑÑ Ð¿ÑƒÑтым. Debug - + Отладка Info - + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Error - + Ошибка Advanced - + Продвинутый Directory where downloads are stored. - + Каталог, в котором хранÑÑ‚ÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸. Mod Directory - + Каталог модов Directory where mods are stored. - + Каталог, в котором хранÑÑ‚ÑÑ Ð¼Ð¾Ð´Ñ‹. - Directory where mods are stored. Please note that changing this will break all associations of profiles with mods that don't exist in the new location (with the same name). - + Directory where mods are stored. Please note that changing this will break all associations of profiles with mods that don't exist in the new location (with the same name). + Каталог, в котором хранÑÑ‚ÑÑ Ð¼Ð¾Ð´Ñ‹. Имейте ввиду, Ñти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ñ€ÑƒÑˆÐ°Ñ‚ вÑе аÑÑоциации профилей Ñ Ð½ÐµÑущеÑтвующими в новом раÑположении модами (Ñ Ñ‚ÐµÐ¼ же именем). Download Directory - + Каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ Cache Directory - + Каталог кÑша Reset stored information from dialogs. - + Ð¡Ð±Ñ€Ð¾Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð¼Ð¾Ð¹ информации о диалогах. - This will make all dialogs show up again where you checked the "Remember selection"-box. - + This will make all dialogs show up again where you checked the "Remember selection"-box. + ЗаÑтавит Ñнова поÑвитьÑÑ Ð²Ñе диалоги, в которых вы ранее отмечали флажок "Запомнить выбор". Reset Dialogs - + СброÑить диалоги Modify the categories available to arrange your mods. - + Изменение категорий, доÑтупных Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´Ð¾Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²Ð°ÑˆÐ¸Ñ… модов. Configure Mod Categories - + ÐаÑтроить категории модов Nexus - + Nexus Allows automatic log-in when the Nexus-Page for the game is clicked. - + ПозволÑет автоматичеÑки входить, кликнув на Nexus-Ñтраницу игры. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Allows automatic log-in when the Nexus-Page for the game is clicked. Please note that the obfuscation with which the password is stored in modorganizer.ini is not very strong. If you're worried someone might steal your password, don't store it here.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Allows automatic log-in when the Nexus-Page for the game is clicked. Please note that the obfuscation with which the password is stored in modorganizer.ini is not very strong. If you're worried someone might steal your password, don't store it here.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ПозволÑет автоматичеÑки входить, кликнув на Nexus-Ñтраницу игры. Обратите внимание, что шифрование Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ пароль хранитÑÑ Ð² файле modorganizer.ini не очень Ñильное. ЕÑли вы беÑпокоитеÑÑŒ, что кто-нибудь может украÑть ваш пароль, не храните его здеÑÑŒ.</span></p></body></html> If checked and if correct credentials are entered below, log-in to Nexus (for browsing and downloading) is automatic. - + ЕÑли отмечено и данные ниже введены правильно, входит на Nexus (Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и загрузки) автоматичеÑки. Automatically Log-In to Nexus - + ÐвтоматичеÑкий вход на Nexus @@ -4493,220 +4328,244 @@ p, li { white-space: pre-wrap; } Password Пароль + + + Disable automatic internet features + Отключить автоматичеÑкие возможноÑти интернет + + + + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) + Отключает автоматичеÑкие возможноÑти интернет. Это не подейÑтвует на функции, которые Ñвно вызваны пользователем (проверка модов на обновлениÑ, одобрение, открытие в браузере) + + + + Offline Mode + Ðвтономный режим + + + + Use a proxy for network connections. + ИÑпользовать прокÑи Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñетью + + + + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. + ИÑпользовать прокÑи Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñетью. ИÑпользуютÑÑ ÑиÑтемные параметры, наÑтраиваемые в Internet Explorer. Обратите внимание, что MO запуÑтитÑÑ Ð½Ð° неÑколько Ñекунд медленнее на некоторых ÑиÑтемах, когда иÑпользуетÑÑ Ð¿Ñ€Ð¾ÐºÑи. + + + + Use HTTP Proxy (Uses System Settings) + ИÑпользовать HTTP Proxy (ИÑпользуютÑÑ ÑиÑтемные наÑтройки) + + + + Known Servers (Dynamically updated every download) + ИзвеÑтные Ñерверы (ДинамичеÑки обновлÑетÑÑ Ð¿Ñ€Ð¸ каждой загрузке) + + + + Preferred Servers (Drag & Drop) + Предпочитаемые Ñерверы (ИÑпользуйте перетаÑкивание) + Plugins - + Плагины Author: - + Ðвтор: Version: - + ВерÑиÑ: Description: - + ОпиÑание: Key - + Клавиша Value - + Значение Workarounds - + СпоÑобы обхода Steam App ID - + ID Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Steam The Steam AppID for your game - + ID в Steam Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ игры - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Steam App ID is required to directly start some games. For Skyrim, if this is not set or wrong, the &quot;Mod Organizer&quot; load mechanism may not work properly.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The preset for this is the App ID of the &quot;regular&quot; version so in most cases, you should be set.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you think you have a different version (GotY or something), follow these steps to get to the id:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Navigate to the game library in steam</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. right-click on the game you need the id for and choose </span><span style=" font-size:8pt; font-weight:600;">Create desktop shortcut</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. right-click on the newly created shortcut on your desktop and select </span><span style=" font-size:8pt; font-weight:600;">Properties</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. in the URL-field you should see something like this: </span><span style=" font-size:8pt; font-style:italic;">steam://rungameid/22380</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 is the id you're looking for.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Steam App ID is required to directly start some games. For Skyrim, if this is not set or wrong, the &quot;Mod Organizer&quot; load mechanism may not work properly.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The preset for this is the App ID of the &quot;regular&quot; version so in most cases, you should be set.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you think you have a different version (GotY or something), follow these steps to get to the id:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Navigate to the game library in steam</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. right-click on the game you need the id for and choose </span><span style=" font-size:8pt; font-weight:600;">Create desktop shortcut</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. right-click on the newly created shortcut on your desktop and select </span><span style=" font-size:8pt; font-weight:600;">Properties</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. in the URL-field you should see something like this: </span><span style=" font-size:8pt; font-style:italic;">steam://rungameid/22380</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 is the id you're looking for.</span></p></body></html> - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Steam необходим Ð´Ð»Ñ Ð¿Ñ€Ñмого запуÑка некоторых игр. Ð”Ð»Ñ Skyrim, еÑли он не уÑтановлен или неверен, механизм загрузки &quot;Mod Organizer&quot; может работать неправильно.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ПредуÑтановленный ID в большинÑтве Ñлучаев должен быть уÑтановлен.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы думаете, что у Ð²Ð°Ñ Ð´Ñ€ÑƒÐ³Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ (GotY или другое), Ñледуйте Ñледующей инÑтрукции по уÑтановке id:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Перейдите в библиотеку игр Steam.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. Сделайте правый клик по игре, id которой нужен и выберете </span><span style=" font-size:8pt; font-weight:600;">Создать Ñрлык на рабочем Ñтоле</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. Сделайте правый клик на Ñозданном на рабочем Ñтоле Ñрлыке и выберете </span><span style=" font-size:8pt; font-weight:600;">СвойÑтва</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. в поле URL вы должны увидеть что-то вроде: </span><span style=" font-size:8pt; font-style:italic;">steam://rungameid/22380</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 Ñто и еÑть id, который вам нужен.</span></p></body></html> Load Mechanism - + Механизм загрузки Select loading mechanism. See help for details. - + Выберете механизм загрузки. Смотрите Ñправку Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾Ñтей. + + + + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. +There are several means to do this: +*Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. +*Script Extender* In this mode, MO is installed as a Script Extender (obse, fose, nvse, skse) plugin. +*Proxy DLL* In this mode, MO replaces one of the game's dlls with one that loads MO (and the original dll of course). This will ONLY work with Steam games and it has only been tested with Skyrim. Please use this only if the other mechanisms don't work. + +If you use the Steam version of Oblivion the default will NOT work. In this case, please install obse and use "Script Extender" as the load mechanism. Also you can then not start Oblivion from MO. Instead, use MO only to set up your mods, then quit and start Oblivion through Steam. + Mod Organizer необходимо подключить dll к игре, чтобы вÑе моды были видны в ней. +ЕÑть неÑколько ÑпоÑобов Ñделать Ñто: +*Mod Organizer* (по умолчанию) Ð’ Ñтом режиме Mod Organizer Ñам подключает dll. ÐедоÑтатком Ñтого ÑвлÑетÑÑ Ñ‚Ð¾, что вам необходимо вÑегда начинать игру через MO или Ñозданный им Ñрлык. +*Script Extender* Ð’ Ñтом режиме, MO уÑтановлен как плагин Script Extender (obse, fose, nvse, skse). +*Proxy DLL* Ð’ Ñтом режиме MO заменÑет одну из игровых dll игры Ñвоей, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÑ‚ MO и оригинальную игру. Это работает только Ñ Ð¸Ð³Ñ€Ð°Ð¼Ð¸ Steam и теÑтировалоÑÑŒ только на Skyrim. ИÑпользуйте Ñтот ÑпоÑоб только еÑли другие не работают. + +ЕÑли вы иÑпользуете Steam-верÑию Oblivion , ÑпоÑоб по умолчанию не работает. Ð’ Ñтом Ñлучае уÑтановите obse и иÑпользуйте "Script Extender" как механизм загрузки. Также поÑле Ñтого вы не Ñможете запуÑтить Oblivion из MO, вмеÑто Ñтого иÑпользуйте MO только Ð´Ð»Ñ Ð½Ð°Ñтройки модов и запуÑкайте игру через Steam. NMM Version - + ВерÑÐ¸Ñ NMM The Version of Nexus Mod Manager to impersonate. - + ВерÑÐ¸Ñ Nexus Mod Manager Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑтавлениÑ. Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. -On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. -Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. +On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. +Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. -tl;dr-version: If Nexus-features don't work, insert the current version number of NMM here and try again. - - - - - These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. - +tl;dr-version: If Nexus-features don't work, insert the current version number of NMM here and try again. + Mod Organizer иÑпользует API Nexus , Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð°ÐºÐ¸Ñ… возможноÑтей, как проверка обновлений и загрузка файлов. К Ñожалению Ñтот API не был Ñделан официально доÑтупным прочим утилитам, вроде MO, так что нужно предÑтавлÑтьÑÑ ÐºÐ°Ðº Nexus Mod Manager, чтобы получить доÑтуп. +Помимо Ñтого Nexus иÑпользует идентификатор верÑий, чтобы блокировать уÑтаревшии верÑии NMM и принудительно заÑтавить пользователей обновитьÑÑ. Это значит, что MO также нужно предÑтавлÑтьÑÑ Ð¿Ð¾Ñледней верÑией NMM, даже еÑли MO не нуждаетÑÑ Ð² обновлении. ПоÑтому вы можете наÑтроить здеÑÑŒ также и верÑию Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸. +Обратите внимание, что MO идентифицирует ÑÐµÐ±Ñ Ð²ÐµÐ±Ñерверу как MO, он не подделывает данные о Ñебе. Он вÑего лишь добавлÑетÑÑ ÐºÐ°Ðº "ÑовмеÑтимаÑ" Ñ NMM верÑиÑ, в поле user agent. + +tl;dr-верÑиÑ: ЕÑли возможноÑти Nexus не работают, вÑтавьте здеÑÑŒ текущую верÑию NMM и повторите попытку. Enforces that inactive ESPs and ESMs are never loaded. - - - - - Disable automatic internet features - - - - - Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - - - - - Offline Mode - - - - - Use a proxy for network connections. - - - - - Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - - - - - Use HTTP Proxy (Uses System Settings) - - - - - Known Servers (Dynamically updated every download) - - - - - Preferred Servers (Drag & Drop) - - - - - Mod Organizer needs a dll to be injected into the game so all mods are visible to it. -There are several means to do this: -*Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. -*Script Extender* In this mode, MO is installed as a Script Extender (obse, fose, nvse, skse) plugin. -*Proxy DLL* In this mode, MO replaces one of the game's dlls with one that loads MO (and the original dll of course). This will ONLY work with Steam games and it has only been tested with Skyrim. Please use this only if the other mechanisms don't work. - -If you use the Steam version of Oblivion the default will NOT work. In this case, please install obse and use "Script Extender" as the load mechanism. Also you can then not start Oblivion from MO. Instead, use MO only to set up your mods, then quit and start Oblivion through Steam. - + ОбеÑпечивает то, что неактивные ESP и ESM не будут загружены. - It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. -I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. +I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. + КажетÑÑ, что иногда игры загружают ESP и ESM файлы, даже еÑли они не были не подключены как плагины +ОбÑтоÑтельÑтва Ñтого пока не извеÑтны, но отчеты пользователей подразумевают, что Ñто в Ñ€Ñде Ñлучаев нежелательно. ЕÑли Ñтот флажок отмечен, не отмеченные в ÑпиÑке ESP и ESM не будут видимы в ÑпиÑке и не будут загружены. Hide inactive ESPs/ESMs - + Скрыть неактивные ESPs/ESMs If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + ЕÑли отмечено, файлы (Ñ‚.е. esp, esm и bsa) принадлежащие оÑновной игре не Ñмогут быть отключены из интерфейÑа. (по умолчанию: вкл) If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + ЕÑли отмечено, файлы (Ñ‚.е. esp, esm и bsa) принадлежащие оÑновной игре не Ñмогут быть отключены из интерфейÑа. (по умолчанию: вкл) +Снимите флажок, еÑли вы ÑобираетеÑÑŒ иÑпользовать Mod Organizer Ñ Ñ‚Ð¾Ñ‚Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ конверÑиÑми (как Nehrim) , но будьте оÑторожны, игра может вылететь, еÑли требуемые файлы будут отключены. Force-enable game files - + Принудительно подключить файлы игры For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! - + Ð”Ð»Ñ Ð¡ÐºÐ°Ð¹Ñ€Ð¸Ð¼ Ñто может быть иÑпользовано вмеÑто инвалидации. Это должно Ñделать AI избыточным Ð´Ð»Ñ Ð²Ñех профилей. +Ð”Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… игр недоÑтаточно замены Ð´Ð»Ñ AI! Back-date BSAs - + Back-date BSAs + + + + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. + Это ÑпоÑобы обхода проблем Ñ Mod Organizer. УбедитеÑÑŒ, что вы прочли Ñправку, перед тем, как делать какие-либо Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð´ÐµÑÑŒ. Select download directory - + Выберете каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº Select mod directory - + Выберете каталог Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¾Ð² Select cache directory - + Выберете каталог Ð´Ð»Ñ ÐºÐµÑˆÐ° Confirm? - + Подтвердить? - This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? + Это позволить Ñнова отобразить вÑе диалоги, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… вы ранее выбрали флажок "Запомнить выбор". @@ -4714,7 +4573,7 @@ For the other games this is not a sufficient replacement for AI! Quick Install - + БыÑÑ‚Ñ€Ð°Ñ ÑƒÑтановка @@ -4725,17 +4584,17 @@ For the other games this is not a sufficient replacement for AI! Opens a Dialog that allows custom modifications. - Открывает диалоговое окно, которое позволÑет выбрать пользовательÑкие модификации. + Открывает диалог, позволÑющий выбрать пользовательÑкие модификации. Manual - + РуководÑтво OK - + OK @@ -4748,18 +4607,18 @@ For the other games this is not a sufficient replacement for AI! SHM error: %1 - + Ошибка SHM: %1 failed to connect to running instance: %1 - + не удалоÑÑŒ подключитьÑÑ Ðº запущенному ÑкземплÑру: %1 failed to receive data from secondary instance: %1 - + не удалоÑÑŒ получить данные из вторичного ÑкземплÑра: %1 @@ -4767,7 +4626,7 @@ For the other games this is not a sufficient replacement for AI! Sync Overwrite - + Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½Ñ‹ @@ -4777,22 +4636,22 @@ For the other games this is not a sufficient replacement for AI! Sync To - + Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ - <don't sync> - + <don't sync> + <не Ñинхронизировать> failed to remove %1 - + не удалоÑÑŒ удалить %1 failed to move %1 to %2 - + не удалоÑÑŒ перемеÑтить %1 в %2 @@ -4800,17 +4659,17 @@ For the other games this is not a sufficient replacement for AI! Dialog - + Диалог Global Characters - + Общие Ñимволы This is a list of characters in the global location. - + Это ÑпиÑок перÑонажей в общем меÑтораÑположении. @@ -4822,7 +4681,14 @@ On Windows Vista/Windows 7: On Windows XP: C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves - + СпиÑок перÑонажей в общем меÑтораÑположении. + +Ðа Windows Vista/Windows 7: +C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +Ðа Windows XP: +C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + @@ -4835,27 +4701,35 @@ On Windows XP: C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves - + СпиÑок Ñохранений Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ перÑонажем в общем меÑтораÑположении. + +Ðа Windows Vista/Windows 7: +C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +Ðа Windows XP: +C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + + Move -> - + ПеремеÑтить -> Copy -> - + Скопировать -> <- Move - + <- ПеремеÑтить <- Copy - + <- Скопировать @@ -4865,17 +4739,17 @@ On Windows XP: Profile Characters - + ПерÑонажи Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Overwrite - + ПерепиÑать - Overwrite the file "%1" - + Overwrite the file "%1" + ПерезапиÑать файл "%1" @@ -4883,23 +4757,23 @@ On Windows XP: Confirm - Подтвердить + Подтверждение - Copy all save games of character "%1" to the profile? - + Copy all save games of character "%1" to the profile? + Скопировать вÑе игры Ñ Ð¿ÐµÑ€Ñонажем "%1" в профиль? - Move all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. - + Move all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. + ПеремеÑтить вÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÐµÑ€Ñонажем "%1" в общее меÑтораÑположение? Имейте ввиду, что Ñто запутает текущую нумерацию Ñохранений. - Copy all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. - + Copy all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. + Скопировать вÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÐµÑ€Ñонажем "%1" в общее меÑтораÑположение? Имейте ввиду, что Ñто запутает текущую нумерацию Ñохранений. diff --git a/src/overwriteinfodialog.cpp b/src/overwriteinfodialog.cpp index e215146f..2ba81633 100644 --- a/src/overwriteinfodialog.cpp +++ b/src/overwriteinfodialog.cpp @@ -72,7 +72,8 @@ private: OverwriteInfoDialog::OverwriteInfoDialog(ModInfo::Ptr modInfo, QWidget *parent) : QDialog(parent), ui(new Ui::OverwriteInfoDialog), m_FileSystemModel(NULL), - m_DeleteAction(NULL), m_RenameAction(NULL), m_OpenAction(NULL) + m_DeleteAction(NULL), m_RenameAction(NULL), m_OpenAction(NULL), + m_ModInfo(modInfo) { ui->setupUi(this); @@ -101,7 +102,6 @@ OverwriteInfoDialog::~OverwriteInfoDialog() delete ui; } - bool OverwriteInfoDialog::recursiveDelete(const QModelIndex &index) { for (int childRow = 0; childRow < m_FileSystemModel->rowCount(index); ++childRow) { diff --git a/src/overwriteinfodialog.h b/src/overwriteinfodialog.h index a60e0571..34e86219 100644 --- a/src/overwriteinfodialog.h +++ b/src/overwriteinfodialog.h @@ -17,51 +17,55 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ -#ifndef OVERWRITEINFODIALOG_H -#define OVERWRITEINFODIALOG_H - -#include "modinfo.h" -#include -#include - -namespace Ui { -class OverwriteInfoDialog; -} - -class OverwriteInfoDialog : public QDialog -{ - Q_OBJECT - -public: - - explicit OverwriteInfoDialog(ModInfo::Ptr modInfo, QWidget *parent = 0); - ~OverwriteInfoDialog(); - -private: - - void openFile(const QModelIndex &index); - bool recursiveDelete(const QModelIndex &index); - void deleteFile(const QModelIndex &index); - -private slots: - - void deleteTriggered(); - void renameTriggered(); - void openTriggered(); - void createDirectoryTriggered(); - - void on_filesView_customContextMenuRequested(const QPoint &pos); - -private: - - Ui::OverwriteInfoDialog *ui; - QFileSystemModel *m_FileSystemModel; - QModelIndexList m_FileSelection; - QAction *m_DeleteAction; - QAction *m_RenameAction; - QAction *m_OpenAction; - QAction *m_NewFolderAction; - -}; - -#endif // OVERWRITEINFODIALOG_H +#ifndef OVERWRITEINFODIALOG_H +#define OVERWRITEINFODIALOG_H + +#include "modinfo.h" +#include +#include + +namespace Ui { +class OverwriteInfoDialog; +} + +class OverwriteInfoDialog : public QDialog +{ + Q_OBJECT + +public: + + explicit OverwriteInfoDialog(ModInfo::Ptr modInfo, QWidget *parent = 0); + ~OverwriteInfoDialog(); + + ModInfo::Ptr modInfo() const { return m_ModInfo; } + +private: + + void openFile(const QModelIndex &index); + bool recursiveDelete(const QModelIndex &index); + void deleteFile(const QModelIndex &index); + +private slots: + + void deleteTriggered(); + void renameTriggered(); + void openTriggered(); + void createDirectoryTriggered(); + + void on_filesView_customContextMenuRequested(const QPoint &pos); + +private: + + Ui::OverwriteInfoDialog *ui; + QFileSystemModel *m_FileSystemModel; + QModelIndexList m_FileSelection; + QAction *m_DeleteAction; + QAction *m_RenameAction; + QAction *m_OpenAction; + QAction *m_NewFolderAction; + + ModInfo::Ptr m_ModInfo; + +}; + +#endif // OVERWRITEINFODIALOG_H diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 456d29ee..b0228849 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -199,10 +199,11 @@ void PluginList::refresh(const QString &profileName, const DirectoryEntry &baseD readLockedOrderFrom(lockedOrderFile); - refreshLoadOrder(); - emit layoutChanged(); + refreshLoadOrder(); emit dataChanged(this->index(0, 0), this->index(m_ESPs.size(), 1)); + + m_Refreshed(); } @@ -534,6 +535,7 @@ void PluginList::syncLoadOrder() void PluginList::refreshLoadOrder() { + emit layoutAboutToBeChanged(); syncLoadOrder(); // set priorities according to locked load order std::map lockedLoadOrder; @@ -550,9 +552,9 @@ void PluginList::refreshLoadOrder() // find the location to insert at while ((targetPrio < static_cast(m_ESPs.size() - 1)) && (m_ESPs[m_ESPsByPriority[targetPrio]].m_LoadOrder < iter->first)) { - if (QString::compare(m_ESPs[m_ESPsByPriority[targetPrio]].m_Name, iter->second) != 0) { +// if (QString::compare(m_ESPs[m_ESPsByPriority[targetPrio]].m_Name, iter->second) != 0) { ++targetPrio; - } +// } } if (static_cast(targetPrio) >= m_ESPs.size()) { @@ -569,6 +571,7 @@ void PluginList::refreshLoadOrder() } } } + emit layoutChanged(); } IPluginList::PluginState PluginList::state(const QString &name) const @@ -621,6 +624,12 @@ QString PluginList::origin(const QString &name) const } } +bool PluginList::onRefreshed(const std::function &callback) +{ + auto conn = m_Refreshed.connect(callback); + return conn.connected(); +} + void PluginList::updateIndices() { m_ESPsByName.clear(); @@ -743,10 +752,11 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const } -bool PluginList::setData(const QModelIndex &index, const QVariant &value, int role) +bool PluginList::setData(const QModelIndex &modIndex, const QVariant &value, int role) { if (role == Qt::CheckStateRole) { - m_ESPs[index.row()].m_Enabled = value.toInt() == Qt::Checked; + m_ESPs[modIndex.row()].m_Enabled = value.toInt() == Qt::Checked; + emit dataChanged(modIndex, modIndex); refreshLoadOrder(); startSaveTime(); @@ -829,14 +839,17 @@ void PluginList::setPluginPriority(int row, int &newPriority) for (int i = oldPriority + 1; i <= newPriorityTemp; ++i) { --m_ESPs.at(m_ESPsByPriority.at(i)).m_Priority; } + emit dataChanged(index(oldPriority + 1, 0), index(newPriorityTemp, columnCount())); } else { for (int i = newPriorityTemp; i < oldPriority; ++i) { ++m_ESPs.at(m_ESPsByPriority.at(i)).m_Priority; } + emit dataChanged(index(newPriorityTemp, 0), index(oldPriority - 1, columnCount())); ++newPriority; } m_ESPs.at(row).m_Priority = newPriorityTemp; + emit dataChanged(index(row, 0), index(row, columnCount())); } catch (const std::out_of_range&) { reportError(tr("failed to restore load order for %1").arg(m_ESPs[row].m_Name)); } @@ -868,9 +881,9 @@ void PluginList::changePluginPriority(std::vector rows, int newPriority) for (std::vector::const_iterator iter = rows.begin(); iter != rows.end(); ++iter) { setPluginPriority(*iter, newPriority); } - refreshLoadOrder(); emit layoutChanged(); + refreshLoadOrder(); startSaveTime(); } @@ -958,7 +971,6 @@ bool PluginList::eventFilter(QObject *obj, QEvent *event) int newPriority = m_ESPs[idx.row()].m_Priority + diff; if ((newPriority >= 0) && (newPriority < rowCount())) { setPluginPriority(idx.row(), newPriority); - emit dataChanged(this->index(idx.row(), 0), this->index(idx.row(), this->columnCount() - 1)); } } refreshLoadOrder(); diff --git a/src/pluginlist.h b/src/pluginlist.h index 4da7be4b..2af5a0df 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -20,12 +20,13 @@ along with Mod Organizer. If not, see . #ifndef PLUGINLIST_H #define PLUGINLIST_H +#include +#include #include #include #include +#include #include -#include -#include /** @@ -45,6 +46,8 @@ public: COL_LASTCOLUMN = COL_MODINDEX }; + typedef boost::signals2::signal SignalRefreshed; + public: /** @@ -141,6 +144,7 @@ public: virtual int loadOrder(const QString &name) const; virtual bool isMaster(const QString &name) const; virtual QString origin(const QString &name) const; + virtual bool onRefreshed(const std::function &callback); public: // implementation of the QAbstractTableModel interface @@ -240,6 +244,8 @@ private: mutable QTimer m_SaveTimer; + SignalRefreshed m_Refreshed; + }; #endif // PLUGINLIST_H diff --git a/src/problemsdialog.cpp b/src/problemsdialog.cpp index d5700381..edb34f39 100644 --- a/src/problemsdialog.cpp +++ b/src/problemsdialog.cpp @@ -10,11 +10,26 @@ using namespace MOBase; ProblemsDialog::ProblemsDialog(std::vector diagnosePlugins, QWidget *parent) - : QDialog(parent), ui(new Ui::ProblemsDialog) + : QDialog(parent), ui(new Ui::ProblemsDialog), m_DiagnosePlugins(diagnosePlugins) { ui->setupUi(this); - foreach (IPluginDiagnose *diagnose, diagnosePlugins) { + runDiagnosis(); + + connect(ui->problemsWidget, SIGNAL(itemSelectionChanged()), this, SLOT(selectionChanged())); + connect(ui->descriptionText, SIGNAL(anchorClicked(QUrl)), this, SLOT(urlClicked(QUrl))); +} + + +ProblemsDialog::~ProblemsDialog() +{ + delete ui; +} + +void ProblemsDialog::runDiagnosis() +{ + ui->problemsWidget->clear(); + foreach (IPluginDiagnose *diagnose, m_DiagnosePlugins) { std::vector activeProblems = diagnose->activeProblems(); foreach (unsigned int key, activeProblems) { QTreeWidgetItem *newItem = new QTreeWidgetItem(); @@ -26,7 +41,7 @@ ProblemsDialog::ProblemsDialog(std::vector diagnosePl ui->problemsWidget->addTopLevelItem(newItem); if (diagnose->hasGuidedFix(key)) { - newItem->setText(1, tr("fix")); + newItem->setText(1, tr("Fix")); QPushButton *fixButton = new QPushButton(tr("Fix")); connect(fixButton, SIGNAL(clicked()), this, SLOT(startFix())); ui->problemsWidget->setItemWidget(newItem, 1, fixButton); @@ -35,17 +50,8 @@ ProblemsDialog::ProblemsDialog(std::vector diagnosePl } } } - connect(ui->problemsWidget, SIGNAL(itemSelectionChanged()), this, SLOT(selectionChanged())); - connect(ui->descriptionText, SIGNAL(anchorClicked(QUrl)), this, SLOT(urlClicked(QUrl))); -} - - -ProblemsDialog::~ProblemsDialog() -{ - delete ui; } - bool ProblemsDialog::hasProblems() const { return ui->problemsWidget->topLevelItemCount() != 0; @@ -62,6 +68,7 @@ void ProblemsDialog::startFix() { IPluginDiagnose *plugin = reinterpret_cast(ui->problemsWidget->currentItem()->data(1, Qt::UserRole).value()); plugin->startGuidedFix(ui->problemsWidget->currentItem()->data(1, Qt::UserRole + 1).toUInt()); + runDiagnosis(); } void ProblemsDialog::urlClicked(const QUrl &url) diff --git a/src/problemsdialog.h b/src/problemsdialog.h index 050785f4..24a69cdf 100644 --- a/src/problemsdialog.h +++ b/src/problemsdialog.h @@ -21,6 +21,9 @@ public: ~ProblemsDialog(); bool hasProblems() const; +private: + + void runDiagnosis(); private slots: @@ -31,6 +34,7 @@ private slots: private: Ui::ProblemsDialog *ui; + std::vector m_DiagnosePlugins; }; #endif // PROBLEMSDIALOG_H diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index e7bd0fa3..39d49a39 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -652,7 +652,7 @@ Please note that MO does identify itself as MO to the webserver, it's not lying tl;dr-version: If Nexus-features don't work, insert the current version number of NMM here and try again. - 009.009.009; + 009.009.009 Qt::AlignCenter diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp index dde8a69e..685e14a9 100644 --- a/src/shared/directoryentry.cpp +++ b/src/shared/directoryentry.cpp @@ -494,7 +494,7 @@ static bool SupportOptimizedFind() static bool DirCompareByName(const DirectoryEntry *lhs, const DirectoryEntry *rhs) { - return wcsicmp(lhs->getName().c_str(), rhs->getName().c_str()) < 0; + return _wcsicmp(lhs->getName().c_str(), rhs->getName().c_str()) < 0; } diff --git a/src/version.rc b/src/version.rc index 55de3798..ab144909 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,7,0 -#define VER_FILEVERSION_STR "1,0,7,0\0" +#define VER_FILEVERSION 1,0,8,0 +#define VER_FILEVERSION_STR "1,0,8,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From c6101e34e1e142a3442c3a4543ea22dabd31fa33 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 18 Nov 2013 20:17:14 +0100 Subject: - archive.dll now supports querying the crc value of files - esptk now determines if a esp is a dummy (without records) - hook.dll no longer creates a log file if noone wrote to it - nexus id and installtime columns are now hidden by default - modlist can now be refreshed without saving first (so plugins can replace the modlist.txt as a whole) - plugins can now query more details about virtualised files - added style options "plastique" and "cleanlooks" - "overwrite" is no longer listed with a creation time - a warning will now be displayed if the user has too many plugins active - a warning will now be displayed if mods with scripts have an installation order that doesn't match the corresponding esp load order - nmm importer now has select all/deselect all buttons - nmm importer no longer tries to unpack missing files from archives (won't work anyway) - initial support for importing from nmm 0.5 alpha - removed some broken warning suppresions - python runner now works with bundled python - extended qbs build system (still fails to build the main gui application) - implemented a nsis-based installer --- src/installationmanager.cpp | 2 -- src/main.cpp | 2 +- src/mainwindow.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++--- src/mainwindow.h | 5 ++++- src/moapplication.cpp | 29 ++++++++++++++++++-------- src/moapplication.h | 2 ++ src/modinfodialog.ui | 33 ++++++++++-------------------- src/modlist.cpp | 7 ++++++- src/modlist.h | 4 ++++ src/organizer.qbs | 44 ++++++++++++++++++++++++++++----------- src/pluginlist.cpp | 21 +++++++++++++++++++ src/pluginlist.h | 7 +++++++ src/settings.cpp | 3 +++ src/shared/shared.qbs | 14 ++++++++----- 14 files changed, 167 insertions(+), 56 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp index 6b430eea..a8571ec9 100644 --- a/src/installationmanager.cpp +++ b/src/installationmanager.cpp @@ -506,7 +506,6 @@ bool InstallationManager::ensureValidModName(GuessedValue &name) const return true; } - bool InstallationManager::doInstall(GuessedValue &modName, int modID, const QString &version, const QString &newestVersion, int categoryID) { @@ -528,7 +527,6 @@ bool InstallationManager::doInstall(GuessedValue &modName, int modID, m_InstallationProgress.setValue(0); m_InstallationProgress.setWindowModality(Qt::WindowModal); m_InstallationProgress.show(); - if (!m_CurrentArchive->extract(ToWString(QDir::toNativeSeparators(targetDirectory)).c_str(), new MethodCallback(this, &InstallationManager::updateProgress), new MethodCallback(this, &InstallationManager::updateProgressFile), diff --git a/src/main.cpp b/src/main.cpp index 5053d21d..8b74ba83 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -60,7 +60,6 @@ along with Mod Organizer. If not, see . #include "selectiondialog.h" #include "moapplication.h" #include "tutorialmanager.h" -#include #include #include #include @@ -156,6 +155,7 @@ bool bootstrap() // verify the hook-dll exists QString dllName = qApp->applicationDirPath() + "/" + ToQString(AppConfig::hookDLLName()); + HMODULE dllMod = ::LoadLibraryW(ToWString(dllName).c_str()); if (dllMod == NULL) { throw windows_error("hook.dll is missing or invalid"); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f726757c..a8026b68 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -188,8 +188,13 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget ui->modList->header()->installEventFilter(&m_ModList); if (initSettings.contains("mod_list_state")) { ui->modList->header()->restoreState(initSettings.value("mod_list_state").toByteArray()); + } else { + // hide these columns by default + ui->modList->header()->setSectionHidden(ModList::COL_MODID, true); + ui->modList->header()->setSectionHidden(ModList::COL_INSTALLTIME, true); } - ui->modList->header()->setSectionHidden(0, false); // prevent the name-column from being hidden + + ui->modList->header()->setSectionHidden(ModList::COL_NAME, false); // prevent the name-column from being hidden ui->modList->installEventFilter(&m_ModList); // set up plugin list @@ -1364,10 +1369,12 @@ void MainWindow::startExeAction() } -void MainWindow::refreshModList() +void MainWindow::refreshModList(bool saveChanges) { // don't lose changes! - m_CurrentProfile->writeModlistNow(true); + if (saveChanges) { + m_CurrentProfile->writeModlistNow(true); + } ModInfo::updateFromDisc(m_Settings.getModDirectory(), &m_DirectoryStructure); m_CurrentProfile->refreshModStatus(); @@ -2096,6 +2103,32 @@ QStringList MainWindow::findFiles(const QString &path, const std::function MainWindow::findFileInfos(const QString &path, const std::function &filter) const +{ + QList result; + DirectoryEntry *dir = m_DirectoryStructure->findSubDirectoryRecursive(ToWString(path)); + if (dir != NULL) { + std::vector files = dir->getFiles(); + foreach (FileEntry::Ptr file, files) { + FileInfo info; + info.filePath = ToQString(file->getFullPath()); + bool fromArchive = false; + info.origins.append(ToQString(m_DirectoryStructure->getOriginByID(file->getOrigin(fromArchive)).getName())); + info.archive = fromArchive ? ToQString(file->getArchive()) : ""; + foreach (int idx, file->getAlternatives()) { + info.origins.append(ToQString(m_DirectoryStructure->getOriginByID(idx).getName())); + } + + if (filter(info)) { + result.append(info); + } + } + } else { + qWarning("directory %s not found", qPrintable(path)); + } + return result; +} + IDownloadManager *MainWindow::downloadManager() { return &m_DownloadManager; @@ -2161,6 +2194,9 @@ std::vector MainWindow::activeProblems() const if (m_UnloadedPlugins.size() != 0) { problems.push_back(PROBLEM_PLUGINSNOTLOADED); } + if (m_PluginList.enabledCount() > 256) { + problems.push_back(PROBLEM_TOOMANYPLUGINS); + } return problems; } @@ -2170,6 +2206,9 @@ QString MainWindow::shortDescription(unsigned int key) const case PROBLEM_PLUGINSNOTLOADED: { return tr("Some plugins could not be loaded"); } break; + case PROBLEM_TOOMANYPLUGINS: { + return tr("Too many esps and esms enabled"); + } break; default: { return tr("Description missing"); } break; @@ -2187,6 +2226,10 @@ QString MainWindow::fullDescription(unsigned int key) const result += "
        "; return result; } break; + case PROBLEM_TOOMANYPLUGINS: { + return tr("The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or " + "merge some plugins into one. You can find a guide here: http://wiki.step-project.com/Guide:Merging_Plugins"); + } break; default: { return tr("Description missing"); } break; @@ -3195,6 +3238,7 @@ void MainWindow::syncOverwrite() modInfo->testValid(); refreshDirectoryStructure(); } + } void MainWindow::createModFromOverwrite() diff --git a/src/mainwindow.h b/src/mainwindow.h index cf97d4f9..dfd2e571 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -98,7 +98,6 @@ public: void refreshBSAList(); void refreshDataTree(); void refreshSaveList(); - void refreshModList(); void setExecutablesList(const ExecutablesList &executablesList); @@ -135,11 +134,14 @@ public: virtual QString resolvePath(const QString &fileName) const; virtual QStringList listDirectories(const QString &directoryName) const; virtual QStringList findFiles(const QString &path, const std::function &filter) const; + virtual QList findFileInfos(const QString &path, const std::function &filter) const; + virtual MOBase::IDownloadManager *downloadManager(); virtual MOBase::IPluginList *pluginList(); virtual MOBase::IModList *modList(); virtual HANDLE startApplication(const QString &executable, const QStringList &args = QStringList(), const QString &cwd = "", const QString &profile = ""); virtual bool onAboutToRun(const std::function &func); + virtual void refreshModList(bool saveChanges = true); virtual std::vector activeProblems() const; virtual QString shortDescription(unsigned int key) const; @@ -274,6 +276,7 @@ private: private: static const unsigned int PROBLEM_PLUGINSNOTLOADED = 1; + static const unsigned int PROBLEM_TOOMANYPLUGINS = 2; private: diff --git a/src/moapplication.cpp b/src/moapplication.cpp index ba23808b..7e3104db 100644 --- a/src/moapplication.cpp +++ b/src/moapplication.cpp @@ -23,12 +23,15 @@ along with Mod Organizer. If not, see . #include #include #include +#include +#include MOApplication::MOApplication(int argc, char **argv) : QApplication(argc, argv) { connect(&m_StyleWatcher, SIGNAL(fileChanged(QString)), SLOT(updateStyle(QString))); + m_DefaultStyle = style()->objectName(); } @@ -42,11 +45,12 @@ bool MOApplication::setStyleFile(const QString &styleName) // set new stylesheet or clear it if (styleName.length() != 0) { QString styleSheetName = applicationDirPath() + "/" + MOBase::ToQString(AppConfig::stylesheetsPath()) + "/" + styleName; - if (!QFile::exists(styleSheetName)) { - return false; + if (QFile::exists(styleSheetName)) { + m_StyleWatcher.addPath(styleSheetName); + updateStyle(styleSheetName); + } else { + updateStyle(styleName); } - m_StyleWatcher.addPath(styleSheetName); - updateStyle(styleSheetName); } else { setStyleSheet(""); } @@ -74,11 +78,18 @@ bool MOApplication::notify(QObject *receiver, QEvent *event) void MOApplication::updateStyle(const QString &fileName) { - QFile file(fileName); - if (file.open(QFile::ReadOnly)) { - setStyleSheet(file.readAll()); + if (fileName == "Plastique") { + setStyle(new QPlastiqueStyle); + setStyleSheet(""); + } else if (fileName == "Cleanlooks") { + setStyle(new QCleanlooksStyle); + setStyleSheet(""); } else { - qDebug("no stylesheet"); + setStyle(m_DefaultStyle); + if (QFile::exists(fileName)) { + setStyleSheet(QString("file:///%1").arg(fileName)); + } else { + qWarning("invalid stylesheet: %s", qPrintable(fileName)); + } } - file.close(); } diff --git a/src/moapplication.h b/src/moapplication.h index dd7f5eab..645b9144 100644 --- a/src/moapplication.h +++ b/src/moapplication.h @@ -43,6 +43,8 @@ private slots: private: QFileSystemWatcher m_StyleWatcher; + QString m_DefaultStyle; + }; diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui index 2fdbe5f3..d0039a95 100644 --- a/src/modinfodialog.ui +++ b/src/modinfodialog.ui @@ -209,7 +209,7 @@ 0 0 - 668 + 676 126 @@ -223,16 +223,7 @@ 0 - - 0 - - - 0 - - - 0 - - + 0 @@ -293,7 +284,7 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + :/MO/gui/resources/go-up.png:/MO/gui/resources/go-up.png @@ -322,7 +313,7 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + :/MO/gui/resources/go-down.png:/MO/gui/resources/go-down.png @@ -525,9 +516,9 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + - + Primary Category @@ -542,7 +533,7 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + :/MO/gui/resources/internet-web-browser.png:/MO/gui/resources/internet-web-browser.png @@ -634,7 +625,7 @@ p, li { white-space: pre-wrap; } - + :/MO/gui/refresh:/MO/gui/refresh @@ -660,7 +651,7 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -696,7 +687,7 @@ p, li { white-space: pre-wrap; } Endorse - + :/MO/gui/icon_favorite:/MO/gui/icon_favorite @@ -791,8 +782,6 @@ p, li { white-space: pre-wrap; } - - - + diff --git a/src/modlist.cpp b/src/modlist.cpp index eac02372..b35d6ad2 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -186,7 +186,12 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const return QVariant(); } } else if (column == COL_INSTALLTIME) { - return modInfo->creationTime(); + // display installation time for mods that can be updated + if (modInfo->canBeUpdated()) { + return modInfo->creationTime(); + } else { + return QVariant(); + } } else { return tr("invalid"); } diff --git a/src/modlist.h b/src/modlist.h index 8cab7f3e..cc5955d0 100644 --- a/src/modlist.h +++ b/src/modlist.h @@ -275,6 +275,10 @@ private: SignalModStateChanged m_ModStateChanged; + + // QAbstractItemModel interface + + // IModList interface }; #endif // MODLIST_H diff --git a/src/organizer.qbs b/src/organizer.qbs index fdfb914c..2b7f45fc 100644 --- a/src/organizer.qbs +++ b/src/organizer.qbs @@ -3,21 +3,41 @@ import qbs.base 1.0 Application { name: 'Organizer' - Depends { name: 'Qt.core' } - Depends { name: 'Qt.gui' } - Depends { name: 'Qt.network' } - Depends { name: 'Qt.declarative' } - Depends { name: 'UIBase' } + Depends { name: "Qt"; submodules: ["core", "gui", "network", "declarative"] } Depends { name: 'Shared' } + Depends { name: 'UIBase' } Depends { name: 'cpp' } - cpp.defines: [] - cpp.includePaths: [ '../shared', '../archive', '../uibase', qbs.getenv("BOOSTPATH") ] + cpp.defines: [ 'UNICODE', '_UNICODE' ] + cpp.libraryPaths: [ qbs.getenv('BOOSTPATH') + '/stage/lib' ] + cpp.includePaths: [ '../shared', '../archive', '../bsatk', '../esptk', '../uibase', qbs.getenv("BOOSTPATH") ] // '../bsatk', '../esptk', - files: [ - '*.cpp', - '*.h', - '*.ui' - ] + cpp.staticLibraries: [ 'shell32', 'user32', 'Version', 'shlwapi' ] + //LIBS += -lmo_shared -luibase -lshell32 -lole32 -luser32 -ladvapi32 -lgdi32 -lPsapi -lVersion -lbsatk -lshlwapi + + Group { + name: 'Headers' + files: [ '*.h' ] + } + + Group { + name: 'Sources' + files: [ '*.cpp' ] + } + + Group { + name: 'UI Files' + files: [ '*.ui' ] + } + + Group { + name: 'ESP Toolkit' + files: [ '../esptk/*.h', '../esptk/*.cpp' ] + } } + +// /nologo /c + + +// /Zi -GR -W3 diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index b0228849..8eeed76e 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -499,6 +499,17 @@ bool PluginList::saveLoadOrder(DirectoryEntry &directoryStructure) return true; } +int PluginList::enabledCount() const +{ + int enabled = 0; + foreach (auto info, m_ESPs) { + if (info.m_Enabled) { + ++enabled; + } + } + return enabled; +} + bool PluginList::isESPLocked(int index) const { return m_LockedOrder.find(m_ESPs.at(index).m_Name.toLower()) != m_LockedOrder.end(); @@ -713,6 +724,8 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const return QIcon(":/MO/gui/warning"); } else if (m_LockedOrder.find(m_ESPs[index].m_Name.toLower()) != m_LockedOrder.end()) { return QIcon(":/MO/gui/locked"); + } else if (m_ESPs[index].m_IsDummy && m_ESPs[index].m_Enabled) { + return QIcon(":/MO/gui/edit_clear"); } else { return QVariant(); } @@ -723,6 +736,8 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const if (m_ESPs[index].m_IsMaster) { result.setItalic(true); result.setWeight(QFont::Bold); + } else if (m_ESPs[index].m_IsDummy) { + result.setItalic(true); } return result; } else if (role == Qt::TextAlignmentRole) { @@ -744,6 +759,10 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const m_ESPs[index].m_MasterUnset.begin(), m_ESPs[index].m_MasterUnset.end(), std::inserter(enabledMasters, enabledMasters.end())); text += "
        " + tr("Enabled Masters") + ": " + SetJoin(enabledMasters, ", "); + if (m_ESPs[index].m_IsDummy) { + text += "
        This file is a dummy! It exists only so the bsa with the same name gets loaded. With MO you don't need this: " + "If you enable the archive with the same name in the \"Archive\" tab you can disable this plugin."; + } return text; } } else { @@ -1009,6 +1028,7 @@ PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled, FILETIME time, c try { ESP::File file(ToWString(fullPath)); m_IsMaster = file.isMaster(); + m_IsDummy = file.isDummy(); std::set masters = file.masters(); for (auto iter = masters.begin(); iter != masters.end(); ++iter) { m_Masters.insert(QString(iter->c_str())); @@ -1016,5 +1036,6 @@ PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled, FILETIME time, c } catch (const std::exception &e) { qCritical("failed to parse esp file %s: %s", qPrintable(fullPath), e.what()); m_IsMaster = false; + m_IsDummy = false; } } diff --git a/src/pluginlist.h b/src/pluginlist.h index 2af5a0df..2f1a3f5f 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -126,6 +126,12 @@ public: **/ bool saveLoadOrder(MOShared::DirectoryEntry &directoryStructure); + /** + * @return number of enabled plugins in the list + */ + int enabledCount() const; + + QString getName(int index) const { return m_ESPs.at(index).m_Name; } int getPriority(int index) const { return m_ESPs.at(index).m_Priority; } bool isESPLocked(int index) const; @@ -198,6 +204,7 @@ private: FILETIME m_Time; QString m_OriginName; bool m_IsMaster; + bool m_IsDummy; std::set m_Masters; mutable std::set m_MasterUnset; }; diff --git a/src/settings.cpp b/src/settings.cpp index 36a4f1f8..144049aa 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -422,6 +422,9 @@ void Settings::addLanguages(QComboBox *languageBox) void Settings::addStyles(QComboBox *styleBox) { styleBox->addItem("None", ""); + styleBox->addItem("Plastique", "Plastique"); + styleBox->addItem("Cleanlooks", "Cleanlooks"); + QDirIterator langIter(QCoreApplication::applicationDirPath() + "/" + ToQString(AppConfig::stylesheetsPath()), QStringList("*.qss"), QDir::Files); while (langIter.hasNext()) { langIter.next(); diff --git a/src/shared/shared.qbs b/src/shared/shared.qbs index 44b7539f..1fa471a0 100644 --- a/src/shared/shared.qbs +++ b/src/shared/shared.qbs @@ -1,16 +1,20 @@ import qbs.base 1.0 -Application { - name: 'Shared' +StaticLibrary { + name: { + print(qbs.getenv("BOOSTPATH") + "/stage/lib") + return 'Shared' + } Depends { name: 'cpp' } Depends { name: 'BSAToolkit' } cpp.defines: [] - cpp.libraryPaths: [ qbs.getenv("BOOSTPATH") ] - cpp.includePaths: [ 'bsatk', qbs.getenv("BOOSTPATH") ] + cpp.libraryPaths: [ qbs.getenv("BOOSTPATH") + "/stage/lib" ] + cpp.includePaths: [ '../bsatk', qbs.getenv("BOOSTPATH") ] files: [ '*.h', - '*.cpp' + '*.cpp', + '*.inc' ] } -- cgit v1.3.1 From db0347212a509b9ceef1cede61a4afd7d2253014 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 22 Nov 2013 17:45:34 +0100 Subject: - bugfix: installFile for mods was not a relative path if the downloads directory was non-default - bugfix: crash after removing the last profile in the list (ordered alphabetically) - improved subdirs ordering to ensure pythonrunner is compiled before pythonproxy - translation files for plugins are now generated - set some texts as un-translatable where it made no sense - staging script now re-builds MO completely before packaging - updated qt libraries for packaging to 4.8.5 - added python to the package --- src/ModOrganizer.pro | 2 +- src/downloadlistwidget.ui | 2 +- src/installationmanager.cpp | 2 +- src/installationmanager.h | 7 + src/mainwindow.cpp | 8 + src/organizer.en.ts | 4652 ------------------------------------------- src/organizer.pro | 2 +- src/organizer_cs.qm | Bin 137168 -> 131358 bytes src/organizer_cs.ts | 1443 ++++++++------ src/organizer_de.qm | Bin 140302 -> 134498 bytes src/organizer_de.ts | 1450 ++++++++------ src/organizer_es.qm | Bin 54680 -> 53759 bytes src/organizer_es.ts | 1457 ++++++++------ src/organizer_fr.qm | Bin 115943 -> 110028 bytes src/organizer_fr.ts | 1454 ++++++++------ src/organizer_ru.qm | Bin 188628 -> 179642 bytes src/organizer_ru.ts | 2253 ++++++++++++--------- src/organizer_tr.qm | Bin 45452 -> 39829 bytes src/organizer_tr.ts | 1452 ++++++++------ src/organizer_zh_CN.qm | Bin 111361 -> 105836 bytes src/organizer_zh_CN.ts | 1445 ++++++++------ src/organizer_zh_TW.qm | Bin 111395 -> 105872 bytes src/organizer_zh_TW.ts | 1445 ++++++++------ 23 files changed, 7036 insertions(+), 10038 deletions(-) delete mode 100644 src/organizer.en.ts (limited to 'src/mainwindow.cpp') diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro index f35958f8..dbf6ab6e 100644 --- a/src/ModOrganizer.pro +++ b/src/ModOrganizer.pro @@ -1,5 +1,4 @@ TEMPLATE = subdirs -CONFIG += ordered SUBDIRS = bsatk \ @@ -16,6 +15,7 @@ SUBDIRS = bsatk \ pythonRunner \ esptk +plugins.depends = pythonRunner hookdll.depends = shared organizer.depends = shared uibase plugins diff --git a/src/downloadlistwidget.ui b/src/downloadlistwidget.ui index 106ac922..7a6ce8ba 100644 --- a/src/downloadlistwidget.ui +++ b/src/downloadlistwidget.ui @@ -85,7 +85,7 @@ - KB + KB diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp index a8571ec9..224602a8 100644 --- a/src/installationmanager.cpp +++ b/src/installationmanager.cpp @@ -647,7 +647,7 @@ bool InstallationManager::install(const QString &fileName, GuessedValue } m_CurrentFile = fileInfo.absoluteFilePath(); - if (fileInfo.dir() == QDir(ToQString(GameInfo::instance().getDownloadDir()))) { + if (fileInfo.dir() == QDir(m_DownloadsDirectory)) { m_CurrentFile = fileInfo.fileName(); } qDebug("using mod name \"%s\" (id %d) -> %s", modName->toUtf8().constData(), modID, qPrintable(m_CurrentFile)); diff --git a/src/installationmanager.h b/src/installationmanager.h index 1c6f9f19..8b1f8c9a 100644 --- a/src/installationmanager.h +++ b/src/installationmanager.h @@ -64,6 +64,12 @@ public: */ void setModsDirectory(const QString &modsDirectory) { m_ModsDirectory = modsDirectory; } + /** + * @brief update the directory where downloads are stored + * @param downloadDirectory the download directory + */ + void setDownloadDirectory(const QString &downloadDirectory) { m_DownloadsDirectory = downloadDirectory; } + /** * @brief install a mod from an archive * @@ -191,6 +197,7 @@ private: QWidget *m_ParentWidget; QString m_ModsDirectory; + QString m_DownloadsDirectory; std::vector m_Installers; std::set m_SupportedExtensions; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a8026b68..31ee1ae7 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -223,6 +223,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget NexusInterface::instance()->setNMMVersion(m_Settings.getNMMVersion()); m_InstallationManager.setModsDirectory(m_Settings.getModDirectory()); + m_InstallationManager.setDownloadDirectory(m_Settings.getDownloadDirectory()); updateDownloadListDelegate(); @@ -1435,6 +1436,12 @@ void MainWindow::on_profileBox_currentIndexChanged(int index) saveCurrentLists(); } + // ensure the new index is valid + if (index < 0 || index >= ui->profileBox->count()) { + qDebug("invalid profile index, using last profile"); + ui->profileBox->setCurrentIndex(ui->profileBox->count() - 1); + } + if (ui->profileBox->currentIndex() == 0) { ProfilesDialog(m_GamePath).exec(); while (!refreshProfiles()) { @@ -3909,6 +3916,7 @@ void MainWindow::on_actionSettings_triggered() bool proxy = m_Settings.useProxy(); m_Settings.query(this); m_InstallationManager.setModsDirectory(m_Settings.getModDirectory()); + m_InstallationManager.setDownloadDirectory(m_Settings.getDownloadDirectory()); fixCategories(); refreshFilters(); if (QDir::fromNativeSeparators(m_DownloadManager.getOutputDirectory()) != QDir::fromNativeSeparators(m_Settings.getDownloadDirectory())) { diff --git a/src/organizer.en.ts b/src/organizer.en.ts deleted file mode 100644 index 3423891a..00000000 --- a/src/organizer.en.ts +++ /dev/null @@ -1,4652 +0,0 @@ - - - - - ActivateModsDialog - - - Activate Mods - - - - - This is a list of esps and esms that were active when the save game was created. - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html> - - - - - Missing ESP - - - - - Mod - - - - - not found - - - - - BainComplexInstallerDialog - - - BAIN Package Installer - - - - - Name - - - - - This looks like a Package prepared for Installation through BAIN. You can select options from the list below. If there is a package.txt file, it should contain detailed information about the options. - - - - - Components of this package. - - - - - Components of this package. -If there is a component called "00 Core" it is usually required. Options are ordered by priority as set up by the author. - - - - - - The package.txt is often part of BAIN packages and contains details about the options available. - - - - - Package.txt - - - - - - Opens a Dialog that allows custom modifications. - - - - - Manual - - - - - Ok - - - - - Cancel - - - - - CategoriesDialog - - - Categories - - - - - ID - - - - - Internal ID for the category. - - - - - Internal ID for the category. The categories a mod belongs to are stored by this ID. It is recommended you use new IDs for categories you add instead of re-using existing ones. - - - - - Name - - - - - - Name of the Categorie used for display. - - - - - Nexus IDs - - - - - Comma-Separated list of Nexus IDs to be matched to the internal ID. - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can match one or multiple nexus categories to a internal ID. Whenever you download a mod from a Nexus Page, Mod Organizer will try to resolve the category defined on the Nexus to one available in MO.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">To find out a category id used by the nexus, visit the categories list of the nexus page and hover over the links there.</span></p></body></html> - - - - - Parent ID - - - - - If set, the category is defined as a sub-category of another one. Parent ID needs to be a valid category ID. - - - - - Add - - - - - Remove - - - - - CredentialsDialog - - - Login - - - - - This feature may not work unless you're logged in with Nexus - - - - - Username - - - - - Password - - - - - Remember - - - - - Never ask again - - - - - DirectoryRefresher - - - failed to read bsa: %1 - - - - - DownloadList - - - Name - - - - - Filetime - - - - - Done - - - - - Information missing, please select "Query Info" from the context menu to re-retrieve. - - - - - DownloadListWidget - - - - Placeholder - - - - - 0 - - - - - KB - - - - - - - Done - Double Click to install - - - - - - Paused - Double Click to resume - - - - - - Installed - Double Click to re-install - - - - - - Uninstalled - Double Click to re-install - - - - - DownloadListWidgetCompact - - - - Placeholder - - - - - Done - - - - - DownloadListWidgetCompactDelegate - - - Paused - - - - - Fetching Info 1 - - - - - Fetching Info 2 - - - - - Installed - - - - - Uninstalled - - - - - Done - - - - - - - - Are you sure? - - - - - This will remove all finished downloads from this list and from disk. - - - - - This will remove all installed downloads from this list and from disk. - - - - - This will permanently remove all finished downloads from this list (but NOT from disk). - - - - - This will permanently remove all installed downloads from this list (but NOT from disk). - - - - - Install - - - - - Query Info - - - - - Delete - - - - - Remove from View - - - - - Cancel - - - - - Pause - - - - - Remove - - - - - Resume - - - - - Delete Installed... - - - - - Delete All... - - - - - Remove Installed... - - - - - Remove All... - - - - - DownloadListWidgetDelegate - - - Fetching Info 1 - - - - - Fetching Info 2 - - - - - - - - Are you sure? - - - - - This will remove all finished downloads from this list and from disk. - - - - - This will remove all installed downloads from this list and from disk. - - - - - This will remove all finished downloads from this list (but NOT from disk). - - - - - This will remove all installed downloads from this list (but NOT from disk). - - - - - Install - - - - - Query Info - - - - - Delete - - - - - Remove from View - - - - - Cancel - - - - - Pause - - - - - Remove - - - - - Resume - - - - - Delete Installed... - - - - - Delete All... - - - - - Remove Installed... - - - - - Remove All... - - - - - DownloadManager - - - failed to rename "%1" to "%2" - - - - - Download again? - - - - - A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - - - - - failed to download %1: could not open output file: %2 - - - - - - - - - - - - - - - invalid index - - - - - failed to delete %1 - - - - - failed to delete meta file for %1 - - - - - - - - - - invalid index %1 - - - - - Please enter the nexus mod id - - - - - Mod ID: - - - - - Information updated - - - - - - No matching file found on Nexus! Maybe this file is no longer available or it was renamed? - - - - - No file on Nexus matches the selected file by name. Please manually choose the correct one. - - - - - No download server available. Please try again later. - - - - - Failed to request file info from nexus: %1 - - - - - Download failed: %1 (%2) - - - - - failed to re-open %1 - - - - - EditExecutablesDialog - - - Modify Executables - - - - - List of configured executables - - - - - This is a list of your configured executables. Executables in grey are automatically recognised and can not be modified. - - - - - Title - - - - - - Name of the executable. This is only for display purposes. - - - - - Binary - - - - - - Binary to run - - - - - Browse filesystem - - - - - Browse filesystem for the executable to run. - - - - - - ... - - - - - Start in - - - - - Arguments - - - - - - Arguments to pass to the application - - - - - Allow the Steam AppID to be used for this executable to be changed. - - - - - Allow the Steam AppID to be used for this executable to be changed. -Every game/tool distributed through Steam has a unique ID. MO needs to know this ID to start those programs directly, otherwise the program is started by steam and then MO will not work. By default, MO will use the AppID for the game. -Right now the only case I know of where this needs to be overwritten is for the Skyrim Creation Kit which has its own AppID. This overwrite is already preconfigured. - - - - - Overwrite Steam AppID - - - - - Steam AppID to use for this executable that differs from the games AppID. - - - - - Steam AppID to use for this executable that differs from the games AppID. -Every game/tool distributed through Steam has a unique ID. MO needs to know this ID to start those programs directly, otherwise the program is started by steam and then MO will not work. By default, MO will use the AppID for the game (usually 72850). -Right now the only case I know of where this needs to be overwritten is for the Skyrim Creation Kit which has its own AppID (usually 202480). This overwrite is already preconfigured. - - - - - - - If checked, MO will be closed once the specified executable is run. - - - - - Close MO when started - - - - - - Add an executable - - - - - - Add - - - - - - Remove the selected executable - - - - - Remove - - - - - Select a binary - - - - - Executable (%1) - - - - - Java (32-bit) required - - - - - MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - - - - - Select a directory - - - - - Confirm - - - - - Really remove "%1" from executables? - - - - - Modify - - - - - MO must be kept running or this application will not work correctly. - - - - - FindDialog - - - Find - - - - - Find what: - - - - - - Search term - - - - - - Find next occurence from current file position. - - - - - &Find Next - - - - - - - Close - - - - - FomodInstallerDialog - - - FOMOD Installation Dialog - - - - - Name - - - - - Author - - - - - Version - - - - - Website - - - - - <a href="#">Link</a> - - - - - Manual - - - - - Back - - - - - Next - - - - - Cancel - - - - - InstallDialog - - - Install Mods - - - - - New Mod - - - - - Name - - - - - Pick a name for the mod - - - - - Pick a name for the mod. This is also used as a directory name, so please don't use characters that are illegal in file names. - - - - - Content - - - - - Content of the archive. You can change the directory structure by using drag&drop. Hint: Also try right clicking... - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This displays the content of the archive. &lt;data&gt; represents the base directory which will map to the game's data directory. You can change the base directory via the right-click context menu and you can move around files via drag&amp;drop</span></p></body></html> - - - - - Placeholder - - - - - OK - - - - - Cancel - - - - - InstallationManager - - - archive.dll not loaded: "%1" - - - - - Password required - - - - - Password - - - - - - - Extracting files - - - - - failed to create backup - - - - - Mod Name - - - - - Name - - - - - Invalid name - - - - - The name you entered is invalid, please enter a different one. - - - - - File format "%1" not supported - - - - - None of the available installer plugins were able to handle that archive - - - - - no error - - - - - 7z.dll not found - - - - - 7z.dll isn't valid - - - - - archive not found - - - - - failed to open archive - - - - - unsupported archive type - - - - - internal library error - - - - - archive invalid - - - - - unknown archive error - - - - - LockedDialog - - - Locked - - - - - This dialog should disappear automatically if the application/game is done. Click unlock if it didn't. - - - - - MO is locked while the executable is running. - - - - - Unlock - - - - - LogBuffer - - - failed to write log to %1: %2 - - - - - MOApplication - - - an error occured: %1 - - - - - an error occured - - - - - MainWindow - - - - Categories - - - - - Profile - - - - - Pick a module collection - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Create profiles here. Each profile contains its own list of active mods and esps. This way you can quickly switch between setups for different play throughs.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Please note that right now your esp load order is not kept seperate for different profiles.</span></p></body></html> - - - - - Refresh list - - - - - Refresh list. This is usually not necessary unless you modified data outside the program. - - - - - List of available mods. - - - - - This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - - - - - Filter - - - - - No groups - - - - - Nexus IDs - - - - - - - Namefilter - - - - - Pick a program to run. - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Choose the program to run. Once you start using ModOrganizer, you should always run your game and tools from here or through shortcuts created here, otherwise mods installed through MO will not be visible.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can add new Tools to this list, but I can't promise tools I haven't tested will work.</span></p></body></html> - - - - - Run program - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Run the selected program with ModOrganizer enabled.</span></p></body></html> - - - - - Run - - - - - Create a shortcut in your start menu or on the desktop to the specified program - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This creates a start menu shortcut that directly starts the selected program with the MO active.</span></p></body></html> - - - - - Shortcut - - - - - List of available esp/esm files - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps and esms contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> - - - - - List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. - - - - - BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. -By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! - -BSAs checked here are loaded in such a way that your installation order is obeyed properly. - - - - - - File - - - - - - Mod - - - - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - - - - - Data - - - - - refresh data-directory overview - - - - - Refresh the overview. This may take a moment. - - - - - - - Refresh - - - - - This is an overview of your data directory as visible to the game (and tools). - - - - - - Filter the above list so that only conflicts are displayed. - - - - - Show only conflicts - - - - - Saves - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of all savegames for this game. Hover over a list entry to get detailed information about the save including a list of esps/esms that were used at the time this save was created but aren't active now.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you click &quot;Fix Mods...&quot; in the context menu, MO will try to activate all mods and esps to fix those missing esps. It will not disable anything!</span></p></body></html> - - - - - Downloads - - - - - This is a list of mods you downloaded from Nexus. Double click one to install it. - - - - - Compact - - - - - Tool Bar - - - - - Install Mod - - - - - Install &Mod - - - - - Install a new mod from an archive - - - - - Ctrl+M - - - - - Profiles - - - - - &Profiles - - - - - Configure Profiles - - - - - Ctrl+P - - - - - Executables - - - - - &Executables - - - - - Configure the executables that can be started through Mod Organizer - - - - - Ctrl+E - - - - - - Tools - - - - - &Tools - - - - - Ctrl+I - - - - - Settings - - - - - &Settings - - - - - Configure settings and workarounds - - - - - Ctrl+S - - - - - Nexus - - - - - Search nexus network for more mods - - - - - Ctrl+N - - - - - - Update - - - - - Mod Organizer is up-to-date - - - - - - No Problems - - - - - This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. - -!Work in progress! -Right now this has very limited functionality - - - - - - Help - - - - - Ctrl+H - - - - - Endorse MO - - - - - - Endorse Mod Organizer - - - - - Toolbar - - - - - Desktop - - - - - Start Menu - - - - - Problems - - - - - There are potential problems with your setup - - - - - Everything seems to be in order - - - - - Help on UI - - - - - Documentation Wiki - - - - - Report Issue - - - - - Tutorials - - - - - failed to save archives order, do you have write access to "%1"? - - - - - failed to save load order: %1 - - - - - Name - - - - - Please enter a name for the new profile - - - - - failed to create profile: %1 - - - - - Show tutorial? - - - - - You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - - - - - Downloads in progress - - - - - There are still downloads in progress, do you really want to quit? - - - - - failed to read savegame: %1 - - - - - Plugin "%1" failed: %2 - - - - - Plugin "%1" failed - - - - - failed to init plugin %1: %2 - - - - - Failed to start "%1" - - - - - Waiting - - - - - Please press OK once you're logged into steam. - - - - - "%1" not found - - - - - Start Steam? - - - - - Steam is required to be running already to correctly start the game. Should MO try to start steam now? - - - - - Also in: <br> - - - - - No conflict - - - - - <Edit...> - - - - - This bsa is enabled in the ini file so it may be required! - - - - - This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - - - - - Activating Network Proxy - - - - - - Installation successful - - - - - - Configure Mod - - - - - - This mod contains ini tweaks. Do you want to configure them now? - - - - - - mod "%1" not found - - - - - - Installation cancelled - - - - - - The mod was not installed completely. - - - - - Some plugins could not be loaded - - - - - - Description missing - - - - - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> - - - - - Choose Mod - - - - - Mod Archive - - - - - Start Tutorial? - - - - - You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - - - - - Download started - - - - - failed to update mod list: %1 - - - - - failed to spawn notepad.exe: %1 - - - - - failed to open %1 - - - - - failed to change origin name: %1 - - - - - <Checked> - - - - - <Unchecked> - - - - - <Update> - - - - - <No category> - - - - - <Conflicted> - - - - - failed to rename mod: %1 - - - - - Overwrite? - - - - - This will replace the existing mod "%1". Continue? - - - - - failed to remove mod "%1" - - - - - - - failed to rename "%1" to "%2" - - - - - Multiple esps activated, please check that they don't conflict. - - - - - - - Confirm - - - - - Remove the following mods?<br><ul>%1</ul> - - - - - failed to remove mod: %1 - - - - - - Failed - - - - - Installation file no longer exists - - - - - Mods installed with old versions of MO can't be reinstalled in this way. - - - - - - You need to be logged in with Nexus to endorse - - - - - - Extract BSA - - - - - This mod contains at least one BSA. Do you want to unpack it? -(This removes the BSA after completion. If you don't know about BSAs, just select no) - - - - - - - failed to read %1: %2 - - - - - - This archive contains invalid hashes. Some files may be broken. - - - - - Nexus ID for this Mod is unknown - - - - - - Create Mod... - - - - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - - A mod with this name already exists - - - - - Really enable all visible mods? - - - - - Really disable all visible mods? - - - - - Choose what to export - - - - - Everything - - - - - All installed mods are included in the list - - - - - Active Mods - - - - - Only active (checked) mods from your current profile are included - - - - - Visible - - - - - All mods visible in the mod list are included - - - - - export failed: %1 - - - - - Install Mod... - - - - - Enable all visible - - - - - Disable all visible - - - - - Check all for update - - - - - Export to csv... - - - - - Sync to Mods... - - - - - Restore Backup - - - - - Remove Backup... - - - - - Set Category - - - - - Primary Category - - - - - Rename Mod... - - - - - Remove Mod... - - - - - Reinstall Mod - - - - - Un-Endorse - - - - - - Endorse - - - - - Won't endorse - - - - - Endorsement state unknown - - - - - Ignore missing data - - - - - Visit on Nexus - - - - - Open in explorer - - - - - Information... - - - - - - Exception: - - - - - - Unknown exception - - - - - <All> - - - - - <Multiple> - - - - - Fix Mods... - - - - - - failed to remove %1 - - - - - - failed to create %1 - - - - - Can't change download directory while downloads are in progress! - - - - - Download failed - - - - - failed to write to file %1 - - - - - %1 written - - - - - Select binary - - - - - Binary - - - - - Enter Name - - - - - Please enter a name for the executable - - - - - Not an executable - - - - - This is not a recognized executable. - - - - - - Replace file? - - - - - There already is a hidden version of this file. Replace it? - - - - - - File operation failed - - - - - - Failed to remove "%1". Maybe you lack the required file permissions? - - - - - There already is a visible version of this file. Replace it? - - - - - Update available - - - - - Open/Execute - - - - - Add as Executable - - - - - Un-Hide - - - - - Hide - - - - - Write To File... - - - - - Do you want to endorse Mod Organizer on %1 now? - - - - - Request to Nexus failed: %1 - - - - - - login successful - - - - - login failed: %1. Trying to download anyway - - - - - login failed: %1 - - - - - login failed: %1. You need to log-in with Nexus to update MO. - - - - - Error - - - - - failed to extract %1 (errorcode %2) - - - - - Extract... - - - - - Edit Categories... - - - - - Enable all - - - - - Disable all - - - - - Unlock load order - - - - - Lock load order - - - - - MessageDialog - - - - Placeholder - - - - - ModInfo - - - - invalid index %1 - - - - - ModInfoBackup - - - This is the backup of a mod - - - - - ModInfoDialog - - - Mod Info - - - - - Textfiles - - - - - A list of text-files in the mod directory. - - - - - A list of text-files in the mod directory like readmes. - - - - - - Save - - - - - INI-Files - - - - - This is a list of .ini files in the mod. - - - - - This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. - - - - - Save changes to the file. - - - - - Save changes to the file. This overwrites the original. There is no automatic backup! - - - - - Images - - - - - Images located in the mod. - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - - - - - - Optional ESPs - - - - - List of esps and esms that can not be loaded by the game. - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - - - - - Make the selected mod in the lower list unavailable. - - - - - The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. - - - - - Move a file to the data directory. - - - - - This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. - - - - - ESPs in the data directory and thus visible to the game. - - - - - These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. - - - - - Available ESPs - - - - - Conflicts - - - - - The following conflicted files are provided by this mod - - - - - - File - - - - - Overwritten Mods - - - - - The following conflicted files are provided by other mods - - - - - Providing Mod - - - - - Non-Conflicted files - - - - - Categories - - - - - Primary Category - - - - - Nexus Info - - - - - Mod ID - - - - - Mod ID for this mod on Nexus. - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod ID for this mod on Nexus. This is filled in automatically if you downloaded and installed the mod from inside MO. Otherwise you can enter it manually. To find the correct id, find the mod on nexus. The URL will look like this: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. In this example, 1334 is the id you're looking for. Besides: The above is the link to Mod Organizer on the Nexus. Why not go there now and endorse?</span></a></p></body></html> - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Installed Version of the Mod. The tooltip will contain the current version available on nexus. The installed version is only set if you installed the mod through MO.</span></p></body></html> - - - - - Version - - - - - Refresh - - - - - Refresh all information from Nexus. - - - - - Description - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - - - - Endorse - - - - - Notes - - - - - Filetree - - - - - A directory view of this mod - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a modifiable directory view of the mod directory. You can move around files using drag &amp; drop and rename them (double click).</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Changes happen immediately on disc, so do</span><span style=" font-size:8pt; font-weight:600;"> be careful</span><span style=" font-size:8pt;">.</span></p></body></html> - - - - - Previous - - - - - Next - - - - - Close - - - - - &Delete - - - - - &Rename - - - - - &Hide - - - - - &Unhide - - - - - &Open - - - - - &New Folder - - - - - - Save changes? - - - - - - Save changes to "%1"? - - - - - File Exists - - - - - A file with that name exists, please enter a new one - - - - - failed to move file - - - - - failed to create directory "optional" - - - - - - Info requested, please wait - - - - - Main - - - - - Update - - - - - Optional - - - - - Old - - - - - Misc - - - - - Unknown - - - - - Current Version: %1 - - - - - No update available - - - - - (description incomplete, please visit nexus) - - - - - <a href="%1">Visit on Nexus</a> - - - - - Failed to delete %1 - - - - - - Confirm - - - - - Are sure you want to delete "%1"? - - - - - Are sure you want to delete the selected files? - - - - - - New Folder - - - - - Failed to create "%1" - - - - - - Replace file? - - - - - There already is a hidden version of this file. Replace it? - - - - - - File operation failed - - - - - - Failed to remove "%1". Maybe you lack the required file permissions? - - - - - - failed to rename %1 to %2 - - - - - There already is a visible version of this file. Replace it? - - - - - Un-Hide - - - - - Hide - - - - - ModInfoOverwrite - - - This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) - - - - - Overwrite - - - - - ModInfoRegular - - - failed to write %1/meta.ini: %2 - - - - - %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory - - - - - Categories: <br> - - - - - ModList - - - Overwrite - - - - - This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit) - - - - - Backup - - - - - No valid game data - - - - - Not endorsed yet - - - - - Overwrites files - - - - - Overwritten files - - - - - Overwrites & Overwritten - - - - - Redundant - - - - - invalid - - - - - installed version: %1, newest version: %2 - - - - - Categories: <br> - - - - - Invalid name - - - - - drag&drop failed: %1 - - - - - Confirm - - - - - Are you sure you want to remove "%1"? - - - - - Flags - - - - - Mod Name - - - - - Version - - - - - Priority - - - - - Category - - - - - Nexus ID - - - - - Installation - - - - - - unknown - - - - - Name of your mods - - - - - Version of the mod (if available) - - - - - Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. - - - - - Category of the mod. - - - - - Id of the mod as used on Nexus. - - - - - Emblemes to highlight things that might require attention. - - - - - Time this mod was installed - - - - - MotDDialog - - - Message of the Day - - - - - OK - - - - - MyFileSystemModel - - - Overwrites - - - - - not implemented - - - - - NXMAccessManager - - - timeout - - - - - Please check your password - - - - - NexusInterface - - - Failed to guess mod id for "%1", please pick the correct one - - - - - empty response - - - - - invalid response - - - - - OverwriteInfoDialog - - - Overwrite - - - - - You can use drag&drop to move files and directories to regular mods. - - - - - &Delete - - - - - &Rename - - - - - &Open - - - - - &New Folder - - - - - Failed to delete "%1" - - - - - - Confirm - - - - - Are sure you want to delete "%1"? - - - - - Are sure you want to delete the selected files? - - - - - - New Folder - - - - - Failed to create "%1" - - - - - PluginList - - - Name - - - - - Priority - - - - - Mod Index - - - - - - unknown - - - - - Name of your mods - - - - - Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - - - - - The modindex determins the formids of objects originating from this mods. - - - - - esp not found: %1 - - - - - - Confirm - - - - - Really enable all plugins? - - - - - Really disable all plugins? - - - - - The file containing locked plugin indices is broken - - - - - - failed to open output file: %1 - - - - - Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - - - - - This plugin can't be disabled (enforced by the game) - - - - - Origin: %1 - - - - - failed to restore load order for %1 - - - - - ProblemsDialog - - - Problems - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - - - - fix - - - - - Fix - - - - - No guided fix - - - - - Profile - - - invalid profile name %1 - - - - - failed to create %1 - - - - - failed to open "%1" for writing - - - - - failed to update tweaked ini file, wrong settings may be used: %1 - - - - - failed to create tweaked ini: %1 - - - - - - - - - invalid index %1 - - - - - Overwrite directory couldn't be parsed - - - - - invalid priority %1 - - - - - failed to parse ini file (%1) - - - - - failed to parse ini file (%1): %2 - - - - - - failed to modify "%1" - - - - - Delete savegames? - - - - - Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) - - - - - ProfileInputDialog - - - Dialog - - - - - Please enter a name for the new profile - - - - - If checked, the new profile will use the default game settings. - - - - - If checked, the new profile will use the default game settings instead of the "global" settings. Global settings are the settings you configure when running the game launcher directly, without MO. - - - - - Default Game Settings - - - - - ProfilesDialog - - - Profiles - - - - - List of Profiles - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is the list of profiles. Each Profile contains its own list and installation order of enabled mods (from a shared pool), a configuration of enabled esps/esms, a copy of the games ini-file and an optional savegame filter.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Note</span> For technical reasons it's currently not possible to have seperate load-orders for esps. This means you can't load moda.esp before modb.esp in one profile and the other way around in another.</p></body></html> - - - - - - If checked, savegames are local to this profile and will not appear when starting with a different profile. - - - - - Local Savegames - - - - - This ensures data files from mods are actually used. You want to enable this unless you use a different tool for Archive Invalidation. - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The games Oblivion, Fallout 3 and Fallout NV contain a bug which prevents texture and mesh replacers (that is: all modifications to meshes and textures already in game) from working.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Mod Organizer uses a workaround called &quot;BSA redirection&quot; (google is your friend) to fix this issue reliably and without further work. Simply activate and forget.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">With Skyrim this bug seems to be fixed to a degree but whether a mod becomes active still depends on file dates. Therefore, it still makes sense to activate this.</span></p></body></html> - - - - - Automatic Archive Invalidation - - - - - - Create a new profile from scratch - - - - - Create - - - - - Clone the selected profile - - - - - This creates a new profile with the same settings and active mods as the selected one. - - - - - Copy - - - - - - Delete the selected Profile. This can not be un-done! - - - - - Remove - - - - - Rename - - - - - - Transfer save games to the selected profile. - - - - - Transfer Saves - - - - - Close - - - - - Archive invalidation isn't required for this game. - - - - - - failed to create profile: %1 - - - - - Name - - - - - Please enter a name for the new profile - - - - - failed to copy profile: %1 - - - - - Confirm - - - - - Are you sure you want to remove this profile? - - - - - Rename Profile - - - - - New Name - - - - - failed to change archive invalidation state: %1 - - - - - failed to determine if invalidation is active: %1 - - - - - QObject - - - Failed to save custom categories - - - - - - - - invalid index %1 - - - - - invalid category id %1 - - - - - invalid field name "%1" - - - - - invalid type for "%1" (should be integer) - - - - - invalid type for "%1" (should be string) - - - - - invalid type for "%1" (should be float) - - - - - no fields set up yet! - - - - - field not set "%1" - - - - - invalid character in field "%1" - - - - - empty field name - - - - - invalid game type %1 - - - - - helper failed - - - - - - failed to determine account name - - - - - - invalid 7-zip32.dll: %1 - - - - - failed to open %1: %2 - - - - - - %1 not found - - - - - Failed to delete %1 - - - - - Failed to deactivate script extender loading - - - - - Failed to remove %1: %2 - - - - - - Failed to rename %1 to %2 - - - - - Failed to deactivate proxy-dll loading - - - - - - - Failed to copy %1 to %2 - - - - - Failed to set up script extender loading - - - - - Failed to delete old proxy-dll %1 - - - - - Failed to overwrite %1 - - - - - Failed to set up proxy-dll loading - - - - - Permissions required - - - - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). - - - - - - Woops - - - - - ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - - - - - ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 - - - - - - Mod Organizer - - - - - An instance of Mod Organizer is already running - - - - - No game identified in "%1". The directory is required to contain the game binary and its launcher. - - - - - - Please select the game to manage - - - - - Please use "Help" from the toolbar to get usage instructions to all elements - - - - - - <Manage...> - - - - - failed to parse profile %1: %2 - - - - - - failed to find "%1" - - - - - failed to access %1 - - - - - failed to set file time %1 - - - - - failed to create %1 - - - - - "%1" is missing - - - - - Before you can use ModOrganizer, you need to create at least one profile. ATTENTION: Run the game at least once before creating a profile! - - - - - - Error - - - - - - - wrong file format - - - - - failed to open %1 - - - - - Script Extender - - - - - Proxy DLL - - - - - failed to spawn "%1" - - - - - Elevation required - - - - - This process requires elevation to run. -This is a potential security risk so I highly advice you to investigate if -"%1" -can be installed to work without elevation. - -Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe to make changes to the system) - - - - - failed to spawn "%1": %2 - - - - - "%1" doesn't exist - - - - - failed to inject dll into "%1": %2 - - - - - failed to run "%1" - - - - - QueryOverwriteDialog - - - Mod Exists - - - - - This mod seems to be installed already. Do you want to add files from this archive (overwriting existing ones) or do you want to completely replace the existing files (old files are deleted)? Alternatively you can install this mod under a different name. - - - - - Keep Backup - - - - - Merge - - - - - Replace - - - - - Rename - - - - - Cancel - - - - - QuestionBoxMemory - - - Remember selection - - - - - SaveGameInfoWidget - - - Save # - - - - - Character - - - - - Level - - - - - Location - - - - - Date - - - - - SaveGameInfoWidgetGamebryo - - - Missing ESPs - - - - - SaveTextAsDialog - - - Dialog - - - - - Copy To Clipboard - - - - - Save As... - - - - - Close - - - - - Save CSV - - - - - Text Files - - - - - failed to open "%1" for writing - - - - - SelectionDialog - - - Select - - - - - Placeholder - - - - - Cancel - - - - - SelfUpdater - - - archive.dll not loaded: "%1" - - - - - - - - Update - - - - - An update is available (newest version: %1), do you want to install it? - - - - - Download in progress - - - - - Download failed: %1 - - - - - Failed to install update: %1 - - - - - failed to open archive "%1": %2 - - - - - failed to move outdated files: %1. Please update manually. - - - - - Update installed, Mod Organizer will now be restarted. - - - - - Error - - - - - Failed to parse response. Please report this as a bug and include the file mo_interface.log. - - - - - No incremental update available for this version, the complete package needs to be downloaded (%1 kB) - - - - - no file for update found. Please update manually. - - - - - Failed to retrieve update information: %1 - - - - - No download server available. Please try again later. - - - - - Settings - - - setting for invalid plugin "%1" requested - - - - - invalid setting "%1" requested for plugin "%2" - - - - - Confirm - - - - - Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? - - - - - SettingsDialog - - - Settings - - - - - General - - - - - Language - - - - - The display language - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The display language. This will only displaye languages for which you have a translation installed.</span></p></body></html> - - - - - Style - - - - - graphical style - - - - - graphical style of the MO user interface - - - - - Log Level - - - - - Decides the amount of data printed to "ModOrganizer.log" - - - - - Decides the amount of data printed to "ModOrganizer.log". -"Debug" produces very useful information for finding problems. There is usually no noteworthy performance impact but the file may become rather large. If this is a problem you may prefer the "Info" level for regluar use. On the "Error" level the log file usually remains empty. - - - - - Debug - - - - - Info - - - - - Error - - - - - Advanced - - - - - - Directory where downloads are stored. - - - - - Mod Directory - - - - - Directory where mods are stored. - - - - - Directory where mods are stored. Please note that changing this will break all associations of profiles with mods that don't exist in the new location (with the same name). - - - - - Download Directory - - - - - Cache Directory - - - - - Reset stored information from dialogs. - - - - - This will make all dialogs show up again where you checked the "Remember selection"-box. - - - - - Reset Dialogs - - - - - - Modify the categories available to arrange your mods. - - - - - Configure Mod Categories - - - - - - Nexus - - - - - Allows automatic log-in when the Nexus-Page for the game is clicked. - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Allows automatic log-in when the Nexus-Page for the game is clicked. Please note that the obfuscation with which the password is stored in modorganizer.ini is not very strong. If you're worried someone might steal your password, don't store it here.</span></p></body></html> - - - - - If checked and if correct credentials are entered below, log-in to Nexus (for browsing and downloading) is automatic. - - - - - Automatically Log-In to Nexus - - - - - Username - - - - - Password - - - - - Disable automatic internet features - - - - - Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - - - - - Offline Mode - - - - - Use a proxy for network connections. - - - - - Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - - - - - Use HTTP Proxy (Uses System Settings) - - - - - Known Servers (Dynamically updated every download) - - - - - Preferred Servers (Drag & Drop) - - - - - Plugins - - - - - Author: - - - - - Version: - - - - - Description: - - - - - Key - - - - - Value - - - - - Workarounds - - - - - Steam App ID - - - - - The Steam AppID for your game - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Steam App ID is required to directly start some games. For Skyrim, if this is not set or wrong, the &quot;Mod Organizer&quot; load mechanism may not work properly.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The preset for this is the App ID of the &quot;regular&quot; version so in most cases, you should be set.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you think you have a different version (GotY or something), follow these steps to get to the id:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Navigate to the game library in steam</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. right-click on the game you need the id for and choose </span><span style=" font-size:8pt; font-weight:600;">Create desktop shortcut</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. right-click on the newly created shortcut on your desktop and select </span><span style=" font-size:8pt; font-weight:600;">Properties</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. in the URL-field you should see something like this: </span><span style=" font-size:8pt; font-style:italic;">steam://rungameid/22380</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 is the id you're looking for.</span></p></body></html> - - - - - Load Mechanism - - - - - Select loading mechanism. See help for details. - - - - - Mod Organizer needs a dll to be injected into the game so all mods are visible to it. -There are several means to do this: -*Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. -*Script Extender* In this mode, MO is installed as a Script Extender (obse, fose, nvse, skse) plugin. -*Proxy DLL* In this mode, MO replaces one of the game's dlls with one that loads MO (and the original dll of course). This will ONLY work with Steam games and it has only been tested with Skyrim. Please use this only if the other mechanisms don't work. - -If you use the Steam version of Oblivion the default will NOT work. In this case, please install obse and use "Script Extender" as the load mechanism. Also you can then not start Oblivion from MO. Instead, use MO only to set up your mods, then quit and start Oblivion through Steam. - - - - - NMM Version - - - - - The Version of Nexus Mod Manager to impersonate. - - - - - Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. -On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. -Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. - -tl;dr-version: If Nexus-features don't work, insert the current version number of NMM here and try again. - - - - - Enforces that inactive ESPs and ESMs are never loaded. - - - - - It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. -I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. - - - - - Hide inactive ESPs/ESMs - - - - - If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - - - - - If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) -Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - - - - - Force-enable game files - - - - - - For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. -For the other games this is not a sufficient replacement for AI! - - - - - Back-date BSAs - - - - - These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. - - - - - Select download directory - - - - - Select mod directory - - - - - Select cache directory - - - - - Confirm? - - - - - This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? - - - - - SimpleInstallDialog - - - Quick Install - - - - - Name - - - - - - Opens a Dialog that allows custom modifications. - - - - - Manual - - - - - OK - - - - - Cancel - - - - - SingleInstance - - - SHM error: %1 - - - - - - failed to connect to running instance: %1 - - - - - failed to receive data from secondary instance: %1 - - - - - SyncOverwriteDialog - - - Sync Overwrite - - - - - Name - - - - - Sync To - - - - - <don't sync> - - - - - failed to remove %1 - - - - - failed to move %1 to %2 - - - - - TransferSavesDialog - - - Dialog - - - - - Global Characters - - - - - This is a list of characters in the global location. - - - - - This is a list of characters in the global location. - -On Windows Vista/Windows 7: - C:\Users\[UserName]\Documents\My Games\Skyrim\Saves - -On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves - - - - - - This is a list of save games for the selected character in the global location. - -On Windows Vista/Windows 7: - C:\Users\[UserName]\Documents\My Games\Skyrim\Saves - -On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves - - - - - - - Move -> - - - - - Copy -> - - - - - <- Move - - - - - <- Copy - - - - - Done - - - - - Profile Characters - - - - - Overwrite - - - - - Overwrite the file "%1" - - - - - - - - Confirm - - - - - - Copy all save games of character "%1" to the profile? - - - - - Move all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. - - - - - Copy all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. - - - - diff --git a/src/organizer.pro b/src/organizer.pro index 907979ee..f4be6f80 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -213,7 +213,7 @@ TRANSLATIONS = organizer_de.ts \ organizer_zh_CN.ts \ organizer_cs.ts \ organizer_tr.ts \ -# organizer.en.ts \ + organizer_en.ts \ organizer_ru.ts !isEmpty(TRANSLATIONS) { diff --git a/src/organizer_cs.qm b/src/organizer_cs.qm index 8bdf0b55..d859caca 100644 Binary files a/src/organizer_cs.qm and b/src/organizer_cs.qm differ diff --git a/src/organizer_cs.ts b/src/organizer_cs.ts index 1b5b3fca..10c5f555 100644 --- a/src/organizer_cs.ts +++ b/src/organizer_cs.ts @@ -254,7 +254,7 @@ p, li { white-space: pre-wrap; } Hotovo - + Information missing, please select "Query Info" from the context menu to re-retrieve. Info chybí, oznaÄte "Získat Info" z kontextového menu pro pokus naÄtení z Nexusu. @@ -267,11 +267,6 @@ p, li { white-space: pre-wrap; } Placeholder #Placeholder - - - 0 - - KB @@ -335,60 +330,65 @@ p, li { white-space: pre-wrap; } Hotovo - - - - + + + + Are you sure? Jsi si jistý? - + This will remove all finished downloads from this list and from disk. Tímto vymažeÅ¡ vÅ¡echny dokonÄené stáhnutí se seznamu i z disku. - + This will remove all installed downloads from this list and from disk. Tímto vymažeÅ¡ jenom nainstalované stáhnutí se seznamu i z disku. - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Install Instaluj - + Query Info Získej Info - + Delete - + + Un-Hide + Odekrýt + + + Remove from View - + Remove Odstranit - + Cancel ZruÅ¡it @@ -408,32 +408,32 @@ p, li { white-space: pre-wrap; } - + Pause Pauza - + Resume PokraÄuj - + Delete Installed... - + Delete All... - + Remove Installed... Odstraň už nainstalované... - + Remove All... Odstraň vÅ¡echny... @@ -441,60 +441,65 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Jsi si jistý? - + This will remove all finished downloads from this list and from disk. Tímto vymažeÅ¡ vÅ¡echny dokonÄené stáhnutí se seznamu i z disku. - + This will remove all installed downloads from this list and from disk. Tímto vymažeÅ¡ jenom nainstalované stáhnutí se seznamu i z disku. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Instaluj - + Query Info Získej Info - + Delete - + + Un-Hide + Odekrýt + + + Remove from View - + Remove OdstraniÅ¥ - + Cancel ZruÅ¡it @@ -509,32 +514,32 @@ p, li { white-space: pre-wrap; } - + Pause Pauza - + Resume PokraÄuj - + Delete Installed... - + Delete All... - + Remove Installed... Odstranit už nainstalované... - + Remove All... Odstranit vÅ¡echny... @@ -542,67 +547,80 @@ p, li { white-space: pre-wrap; } DownloadManager - + failed to rename "%1" to "%2" NezdaÅ™ilo se pÅ™ejmenovat "%1" na "%2" - + Download again? Stáhnout znovu? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Soubor se stejným jménem už byl stáhnutý. Chcete ho stáhnout znovu? Nový soubor bude pojmenován jinak. - + failed to download %1: could not open output file: %2 Stahování zlyhalo %1: nemožno otevřít výslední soubor: %2 - - - - - - + + Wrong Game + + + + + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". + + + + + - - - - + + + + + + + + + + + invalid index neplatný index - + failed to delete %1 odstránÄ›ní zlyhalo %1 - + failed to delete meta file for %1 odstránÄ›ní meta souboru zlyhalo pro %1 - - - - - - + + + + + + invalid index %1 neplatný index %1 - + Please enter the nexus mod id Prosím zadej Nexus mod ID - + Mod ID: Mod ID: @@ -611,38 +629,38 @@ p, li { white-space: pre-wrap; } neplatný alfabetický index %1 - + Information updated Info aktualizované - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Žádný pÅ™islouchající soubor nenalezen na Nexusu! Možná už není k dispozici nebo byl pÅ™ejmenovaný? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Žádný soubor na Nexusu nezodpovedá pÅ™esnému jménu. Zvolte ruÄne ten správný. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Zlyhalo získání info z Nexusu %1 - + Download failed: %1 (%2) Stahování zlyhalo: %1 (%2) - + failed to re-open %1 zlyhalo znovu-otevÅ™ení %1 @@ -1089,12 +1107,12 @@ p, li { white-space: pre-wrap; } mo_archive.dll nenaÄteno: "%1" - + Password required Heslo požadováno - + Password Heslo @@ -1116,8 +1134,8 @@ p, li { white-space: pre-wrap; } - - + + Extracting files Rozbalují se soubory @@ -1150,7 +1168,7 @@ p, li { white-space: pre-wrap; } instalace zlyhala (errorcode %1) - + File format "%1" not supported Formát souboru "%1" nepodporován @@ -1171,32 +1189,32 @@ p, li { white-space: pre-wrap; } Tenhle mod je zdá se už nainstalován. Chcete do nej jenom pÅ™idat (a možná pÅ™epsat rovnaké) soubory nebo chcete kompletne nahradit celý mod (pÅ™edchozí se úplne vymaže)? - + archive.dll not loaded: "%1" - + failed to create backup - + Mod Name - + Name Jméno - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1215,52 +1233,52 @@ Poznámka: Instalátor nerozpoznává už nainstalované mody! Prosím nainstalujte doplnÄ›k NCC - + None of the available installer plugins were able to handle that archive - + no error žádná chyba - + 7z.dll not found 7z.dll nenalezeno - + 7z.dll isn't valid 7z.dll je neplatný - + archive not found archív nenalezen - + failed to open archive nemožno otevřít archív - + unsupported archive type nepodporovaný typ archívu - + internal library error chyba internal library - + archive invalid archív je neplatný - + unknown archive error neznáma chyba archívu @@ -1299,12 +1317,12 @@ Poznámka: Instalátor nerozpoznává už nainstalované mody! MOApplication - + an error occured: %1 vyskytla se chyba: %1 - + an error occured vyskytla se chyba @@ -1380,7 +1398,7 @@ p, li { white-space: pre-wrap; } - + Namefilter @@ -1513,67 +1531,66 @@ By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp BSAs checked here are loaded in such a way that your installation order is obeyed properly. - - + + File Soubor - - - Mod - Mod + + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + + Mod + Mod - + Data Data - + refresh data-directory overview znovunaÄti data - + Refresh the overview. This may take a moment. Obnov náhled. Tohle může chvíli trvat. - - - + + + Refresh ZnovunaÄíst - + This is an overview of your data directory as visible to the game (and tools). Tohle je náhled tvé data struktury, kterou naÄte hra (i nástroje). - - + + Filter the above list so that only conflicts are displayed. PÅ™efiltruje seznam nahoÅ™e tak, že budou zobrazeny pouze konflikty. - + Show only conflicts Ukaž jenom konflikty - + Saves Uložené pozice - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1590,155 +1607,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Pokud kliknete &quot;Fixni Mody...&quot; v kontext menu, MO se pokusí aktivovat vÅ¡echny mody a esp soubory, které byli v pozici používány. Nic se vÅ¡ak nevypne!</span></p></body></html> - + Downloads Stáhnuté - + This is a list of mods you downloaded from Nexus. Double click one to install it. Tohle je seznam modů, které jsi stánul z Nexusu. Dvojklik nainstaluje mod. - + Compact Kompaktní - + + Show Hidden + + + + Tool Bar Panel nástrojú - + Install Mod Instaluj mod - + Install &Mod Instaluj &Mod - + Install a new mod from an archive Instaluj nový mod z archívu - + Ctrl+M Ctrl+M - + Profiles Profily - + &Profiles &Profily - + Configure Profiles Nastav profily - + Ctrl+P Ctrl+P - + Executables SpouÅ¡tÄ›ní - + &Executables &SpouÅ¡tÄ›ní - + Configure the executables that can be started through Mod Organizer Konfigurace spouÅ¡tÄ›ní, které lze použít pro naÄtení modů z MO - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Nastavení - + &Settings &Nastavení - + Configure settings and workarounds Konfigurace a nastavení programu a různých Å™eÅ¡ení - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Prohledat mody na nexusu - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Verze Mod Organizer u je aktuální - - + + No Problems Žádné problémy - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1749,54 +1771,54 @@ Right now this has very limited functionality V souÄasnosti má omezenou funkcionalitu - - + + Help Pomoc - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems Problémy - + There are potential problems with your setup Existují potenciální problémy s programem - + Everything seems to be in order VÅ¡echno se jeví v pořádku @@ -1813,22 +1835,22 @@ V souÄasnosti má omezenou funkcionalitu <li>dotNet není nainstalován nebo je neaktuální. Tohle vyžaduje NCC. NajdÄ›te ho zde: <a href="%1">%1</a></li> - + Help on UI Pomoc s programem - + Documentation Wiki Dokumentace wiki - + Report Issue Nahlásit chybu - + Tutorials @@ -1837,374 +1859,431 @@ V souÄasnosti má omezenou funkcionalitu poÅ™adí naÄtení se nezdaÅ™ilo uložit - + failed to save load order: %1 zlyhalo uložení poÅ™adí naÄtení: %1 - + failed to save archives order, do you have write access to "%1"? zlyhal zápis poÅ™adí archivů, máte administrátorsky povoleno zapisovat na "%1"? - + Name Jméno - + Please enter a name for the new profile Prosím zadej jméno pro nový profil - + failed to create profile: %1 Zlyhalo vytvoÅ™ení profilu: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Probíhá stahování - + There are still downloads in progress, do you really want to quit? Pořád probíhá stahování, urÄitÄ› chcete skonÄit (zruší stahování)? - + failed to read savegame: %1 nezdaÅ™ilo se naÄíst pozici: %1 - + Plugin "%1" failed: %2 - + + Plugin error + + + + + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? +(Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) + + + + Failed to start "%1" Zlyhal start "%1" - + Waiting ÄŒekání - + Please press OK once you're logged into steam. Stiskni OK až budeÅ¡ pÅ™ihlášen do Steamu. - + "%1" not found "%1" nenalezeno - + Start Steam? Spustit Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam by mÄ›l běžet aby se podaÅ™ilo spustit hru. Má se MO pokusit spustit steam teÄ? - + Also in: <br> Také v: <br> - + No conflict Žádné konflikty - + <Edit...> <Edit...> - + + Failed to refresh list of esps: %s + + + + This bsa is enabled in the ini file so it may be required! Tenhle BSA soubor je aktivován v ini souboru, tak zÅ™ejmÄ› je vyžadován! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Tento archív se stejnÄ› naÄte, protože existuje plugin se stejným jménem ale jeho soubory nebudou zodpovídat poÅ™adí nainstalování! - + Activating Network Proxy - - + + Installation successful Instalace úspěšná - - + + Configure Mod Konfigurace Modu - - + + This mod contains ini tweaks. Do you want to configure them now? Tenhle mod obsahuje ini úpravy. Chcete je nastavovat teÄ? - - + + mod "%1" not found mod "%1" nenalezen - - + + Installation cancelled Instalace zruÅ¡ena - - + + The mod was not installed completely. Tento mod se nenainstaloval úplne. - + Some plugins could not be loaded - - - Description missing + + Too many esps and esms enabled - - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> + + + Description missing - + Choose Mod Vyber Mod - + Mod Archive Archív Modu - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Stahování zaÄalo - + failed to update mod list: %1 nezdaÅ™ilo se aktualizovat seznam modů: %1 - + failed to spawn notepad.exe: %1 zlyhalo otevÅ™ení notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 NezdaÅ™ilo se zmÄ›nit původní jméno: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + + Continue? + + + + + The versioning scheme decides which version is considered newer than another. +This function will guess the versioning scheme under the assumption that the installed version is outdated. + + + + + Sorry + + + + + I don't know a versioning scheme where %1 is newer than %2. + + + + <All> <VÅ¡echny> - + <Checked> <Aktivované> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: + + + + + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + + Failed to move "%1" from mod "%2" to "%3": %4 + + + + <Unchecked> <Neaktivované> - + <Update> <Aktualizace> - + <No category> <Bez kategorie> - + <Conflicted> - + + <Not Endorsed> + + + + failed to rename mod: %1 NezdaÅ™ilo se pÅ™ejmenovat mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" NezdaÅ™ilo se pÅ™ejmenovat "%1" na "%2" - - - + + + Confirm Potvrdit - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 NezdaÅ™ilo se odstranit mod: %1 - - + + Failed Zlyhání - + Installation file no longer exists InstalaÄní soubor již neexistuje - + Mods installed with old versions of MO can't be reinstalled in this way. Mody nainstalovány staršími verzemi MO nemůžou být pÅ™einstalovány tímto spůsobem. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA Extrakce BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Tento mod obsahuje alespoň jeden BSA soubor. Chcete rozpakovat i jeho obsah? (BSA se po úspěšném rozpakování odstrání. Pokud nevíte, co je BSA, zvolte možnost Ne) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Tento archiv má neplatné identifikaÄní souÄty. Nekteré soubory mohou být poÅ¡kozeny. - + Nexus ID for this Mod is unknown Nexus ID pro tento Mod není známo @@ -2217,371 +2296,391 @@ Please enter a name: Zvol Prioritu - + Really enable all visible mods? Opravdu aktivovat vÅ¡echny zobrazené mody? - + Really disable all visible mods? Opravdu deaktivovat vÅ¡echny zobrazené mody? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instaluj Mod... - + Enable all visible Aktivuj vÅ¡echny v seznamu - + Disable all visible Deaktivuj vÅ¡echny v seznamu - + Check all for update Skontroluj vÅ¡echny pro aktualizaci - + Export to csv... - + Sync to Mods... Synchronizuj s Mody... - + Restore Backup - + Remove Backup... - + Set Category OznaÄ Kategorii - + Primary Category - + + Change versioning scheme + + + + + Un-ignore update + + + + + Ignore update + + + + Rename Mod... PÅ™ejmenuj Mod... - + Remove Mod... Odstranit Mod... - + Reinstall Mod PÅ™einstaluj Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus NavÅ¡tiv na Nexusu - + Open in explorer OtevÅ™i v prohlížeÄi - + Information... Informace... - - + + Exception: Výnimky: - - + + Unknown exception Neznámá výnimka - + <Multiple> - + Fix Mods... Oprav Mody... - - + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! Není možné zmÄ›nit cíl pro stahování když probíhá stahování! - + Download failed Stahování zlyhalo - + failed to write to file %1 NezdaÅ™il se zápis do souboru %1 - + %1 written %1 zapsáno - + Select binary Vyber binární soubor - + Binary Soubor - + Enter Name Zadej jméno - + Please enter a name for the executable Prosím zadej jméno pro spouÅ¡tÄ›ní - + Not an executable Není spustitelný - + This is not a recognized executable. Tenhle soubor není rozpoznán jako spustitelný. - - + + Replace file? Nahradit soubor? - + There already is a hidden version of this file. Replace it? Už existuje skrytá verze tohto souboru. Nahradit? - - + + File operation failed Operace se souborem zlyhala - - + + Failed to remove "%1". Maybe you lack the required file permissions? NepodaÅ™ilo se odstranit "%1". Možná nejsou k dispozici požadována práva? - + There already is a visible version of this file. Replace it? Už existuje viditelná verze tohto souboru. Nahradit? - + Update available Aktualizace k dispozici - + Open/Execute Otevřít/Spustit - + Add as Executable PÅ™idat SpouÅ¡tení - + Un-Hide Odekrýt - + Hide Skrýt - + Write To File... Zápis do souboru... - + Do you want to endorse Mod Organizer on %1 now? - + + Remove + + + + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway pÅ™ihlášení zlyhalo: %1. Pokouším se beztak stahovat - + login failed: %1 pÅ™ihlášení zlyhalo: %1 - + login failed: %1. You need to log-in with Nexus to update MO. pÅ™ihlášení zlyhalo: %1. Na aktualizaci MO je potÅ™ebné pÅ™ihlášení k Nexusu. - + Error Chyba - + failed to extract %1 (errorcode %2) zlyhala extrakce %1 (errorcode %2) - + Extract... Extrakce... - + Edit Categories... Editovat Kategorie... - + Enable all - + Disable all @@ -2615,7 +2714,7 @@ Please enter a name: ModInfoBackup - + This is the backup of a mod @@ -2644,7 +2743,7 @@ Please enter a name: - + Save Uložit @@ -2664,51 +2763,49 @@ Please enter a name: Tohle je seznam .ini souborů v modu. Dají se upravovat pro zmenu konfigurace a chování modu, pokud umožňuje takové parametry. - + Save changes to the file. Uložit zmÄ›ny do souboru. - + Save changes to the file. This overwrites the original. There is no automatic backup! Uložit zmÄ›ny do souboru.Tohle pÅ™epíše původní soubor. Nevytváří se žádná automatická záloha! - + Images Obrázky - + Images located in the mod. Obrázky obsažené v modu. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Tohle je seznam vÅ¡ech obrázků (.jpg a.png) obsažených v modu, jako naříklad screenshoty. Kliknutím na jeden ho zvÄ›tšíš.</span></p></body></html> - - + + Optional ESPs Volitelné ESP - + List of esps and esms that can not be loaded by the game. Seznam souborů .esp a .esm, které nebudou naÄteni do hry. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2717,7 +2814,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -2727,103 +2824,116 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">VÄ›tÅ¡ina modů nemá volitelné esp, tak s nejvyšší pravdÄ›podobností býva tenhle seznam prázdný.</span></p></body></html> - + + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. + + + + + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. + + + + Make the selected mod in the lower list unavailable. Znepřístupni oznaÄený mod v seznamu dolů. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. OznaÄený soubor esp (v seznamu dolů) bude pÅ™emístÄ›n do podadresáře modu a tak se stane "neviditelným" pro hru. V takovem stavu se nedá aktivovat. - + Move a file to the data directory. PÅ™esuň soubor mezi Data. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. PÅ™esune soubor esp do adresáře, kde má být, aby mohl být aktivován. Prosím berte na vÄ›domí, že tato akce jenom soubor "zpÅ™istupní", nedÄ›lá ho automaticky aktivním. To se pak aktivuje v hlavním oknu mezi esp. - + ESPs in the data directory and thus visible to the game. ESP soubory mezi Data a tedy přístupné pro hru. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Tady jsou soubory modu, které se nacházejí ve (virtuálním) data adresáři hry a proto je bude možné aktivovat v seznamu esp v hlavním oknÄ›. - + Available ESPs ESP k dispozici - + Conflicts Konflikty - + The following conflicted files are provided by this mod Konfliktní soubory, které budou pÅ™ebity tímhle modem - - + + File Soubor - + Overwritten Mods PÅ™epsané mody - + The following conflicted files are provided by other mods Konfliktní soubory, které další mody pÅ™ebijou - + Providing Mod Mod původu - + Non-Conflicted files Nekonfliktní soubory - + Categories Kategorie - + Primary Category - + Nexus Info Nexus Info - + Mod ID Mod ID - + Mod ID for this mod on Nexus. Mod ID tohodle modu na Nexusu. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2836,7 +2946,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod ID pro tenhle mod na Nexusu. Vyplňuje se automaticky pokud ste soubor i stáhli i nainstalovali přímo skrz MO. Jinak ho můžete zadat ruÄne. Správne ID naleznete u modu na Nexusu. Adresa bude vypadat takhle: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. V takovem případe 1334 je Mod ID. Mimo jiné odkaz je přímo na Mod Organizer tak proÄ rovnou nejít zadat Endorse?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2849,27 +2959,27 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Nainstalovaná verze modu. Bublina ukáže Äíslo nejaktuálnÄ›jší verzi modu na Nexusu. Číslo verze se nastaví samo jenom pokud byl mod nainstalován skrz MO.</span></p></body></html> - + Version Verze - + Refresh ZnovunaÄíst - + Refresh all information from Nexus. - + Description Popis - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2895,20 +3005,21 @@ p, li { white-space: pre-wrap; } Druh + Name - Jméno + Jméno Size (kB) Velikost (kB) - + Endorse - + Notes @@ -2921,17 +3032,17 @@ p, li { white-space: pre-wrap; } Už jste tenhle mod endorsovali? - + Filetree Struktura souborů - + A directory view of this mod Zložkový náhled na mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2946,17 +3057,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Zmeny se okamžite dejí pÅ™imo na disku, takže</span><span style=" font-size:8pt; font-weight:600;">buÄte opatrní</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next Další - + Close Zavřít @@ -2991,8 +3102,8 @@ p, li { white-space: pre-wrap; } &Nová Složka - - + + Save changes? Uložit zmÄ›ny? @@ -3001,28 +3112,28 @@ p, li { white-space: pre-wrap; } Uložit zmÄ›ny v "%1"? - + File Exists Soubor existuje - + A file with that name exists, please enter a new one Soubor s rovnakým názvem existuje, prosím zadejte jiné jméno - + failed to move file zlyhalo pÅ™esunutí souboru - + failed to create directory "optional" zlyhalo vytvoÅ™ení zložky "optional" - - + + Info requested, please wait Info vyžádáno, prosím poÄkejte @@ -3032,53 +3143,53 @@ p, li { white-space: pre-wrap; } (popis chybí, prosím navÅ¡tivte nexus pro kompletní zobrazení) - + (description incomplete, please visit nexus) (popis chybí, prosím navÅ¡tivte nexus pro kompletní zobrazení) - + Current Version: %1 SouÄasná verze: %1 - + No update available Žádný update není k dispozici - + Main Hlavní - - + + Save changes to "%1"? - + Update Update - + Optional Volitelné - + Old Staré - + Misc Jiné - + Unknown Neznámé @@ -3087,13 +3198,13 @@ p, li { white-space: pre-wrap; } požadavka zlyhala: %1 - + <a href="%1">Visit on Nexus</a> <a href="%1">NavÅ¡tivte na Nexusu</a> - - + + Confirm Potvrdit @@ -3110,85 +3221,110 @@ p, li { white-space: pre-wrap; } Výnimka: %1 - + Failed to delete %1 Zlyhalo vymazání %1 - + Are sure you want to delete "%1"? Jsi si jistý, že chceÅ¡ vymazat "%1"? - + Are sure you want to delete the selected files? Jsi si jistý, že chceÅ¡ vymazat oznaÄené soubory? - - + + New Folder Nová zložka - + Failed to create "%1" Zlyhalo vytvoÅ™ení "%1" - - + + Replace file? Nahradit soubor? - + There already is a hidden version of this file. Replace it? Už existuje skrytá verze tohto souboru. Nahradit? - - + + File operation failed Operace se souborem zlyhala - - + + Failed to remove "%1". Maybe you lack the required file permissions? NepodaÅ™ilo se odstranit "%1". Možná nejsou k dispozici požadována práva? - - + + failed to rename %1 to %2 NezdaÅ™ilo se pÅ™ejmenovat %1 na %2 - + There already is a visible version of this file. Replace it? Už existuje viditelná verze tohto souboru. Nahradit? - + Un-Hide Odekrýt - + Hide Skrýt + + + Please enter a name + + + + + + Error + Chyba + + + + Invalid name. Must be a valid file name + + + + + A tweak by that name exists + + + + + Create Tweak + + ModInfoOverwrite - Overwrite - PÅ™epsat + PÅ™epsat - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) Tenhle kvázi mod obsahuje soubory, které byli vytvoÅ™eny nebo zmÄ›nÄ›ny bÄ›hem spuÅ¡tení, tzn. ve virtuálním Data stromÄ› (ku příkladu Construction Kit je sem vytváří') @@ -3196,17 +3332,17 @@ p, li { white-space: pre-wrap; } ModInfoRegular - + failed to write %1/meta.ini: %2 zlyhal zápis %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 neobsahuje žádné esp/esm ani jiné použitelné struktury (textures, meshes, interface,...) - + Categories: <br> Kategorie: <br> @@ -3214,7 +3350,7 @@ p, li { white-space: pre-wrap; } ModList - + Confirm Potvrdit @@ -3231,9 +3367,8 @@ p, li { white-space: pre-wrap; } neplatný index řádku %1 - Overwrite - PÅ™epsat + PÅ™epsat @@ -3284,17 +3419,17 @@ p, li { white-space: pre-wrap; } max - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. @@ -3303,7 +3438,7 @@ p, li { white-space: pre-wrap; } %1 neobsahuje žádné esp/esm ani jiné použitelné struktury (textures, meshes, interface,...) - + Categories: <br> Kategorie: <br> @@ -3312,7 +3447,7 @@ p, li { white-space: pre-wrap; } Tenhle kvázi mod obsahuje soubory, které byli vytvoÅ™eny nebo zmÄ›nÄ›ny bÄ›hem spuÅ¡tení, tzn. ve virtuálním Data stromÄ› (ku příkladu Construction Kit je sem vytváří') - + installed version: %1, newest version: %2 nainstalovaná verze: %1, nejnovjší verze: %2 @@ -3325,83 +3460,88 @@ p, li { white-space: pre-wrap; } Jména vaÅ¡ich modů - + Version Verze - + Version of the mod (if available) Verze modu (pokud je k dispozici) - + Priority Priorita - + invalid - + + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". + + + + Invalid name - + drag&drop failed: %1 - + Flags - + Mod Name - + Category - + Nexus ID - + Installation - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Priorita aplikace modu. Čím vÄ›tší, tím "důležitÄ›jší" je mod a proto může pÅ™ebít mody s nižší prioritou. - + Time this mod was installed - + Are you sure you want to remove "%1"? UrÄitÄ› chcete odstranit "%1"? @@ -3437,12 +3577,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites PÅ™episuje - + not implemented není implementováno @@ -3451,11 +3591,16 @@ p, li { white-space: pre-wrap; } NXMAccessManager + Logging into Nexus + + + + timeout PÅ™ekroÄen Äasový limit - + Please check your password OveÅ™te heslo @@ -3505,17 +3650,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response prázdná odozva - + invalid response neplatná odozva @@ -4474,34 +4619,34 @@ V souÄasnosti má omezenou funkcionalitu Zlyhalo vymazání %1 - + Failed to delete "%1" odstránÄ›ní zlyhalo "%1" - - + + Confirm Potvrdit - + Are sure you want to delete "%1"? Jsi si jistý, že chceÅ¡ vymazat "%1"? - + Are sure you want to delete the selected files? Jsi si jistý, že chceÅ¡ vymazat oznaÄené soubory? - - + + New Folder Nová Zložka - + Failed to create "%1" Zlyhalo vytvoÅ™ení "%1" @@ -4514,70 +4659,85 @@ V souÄasnosti má omezenou funkcionalitu esp nenalezeno: %1 - + Mod Index - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + + failed to update esp info for file %1 (source id: %2), error: %3 + + + + esp not found: %1 - - + + Confirm Potvrdit - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 zlyhalo otevÅ™ení výstupního souboru: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. NÄ›které vaÅ¡e pluginy mají neplatné názvy! Tyhle pluginy nemůžou být naÄteny hrou. Prosím nahlédnÄ›te do souboru mo_interface.log pro kompletní seznam pluginů a pÅ™ejmenujte je. - + + Missing Masters + + + + + Enabled Masters + + + + failed to restore load order for %1 @@ -4590,17 +4750,17 @@ V souÄasnosti má omezenou funkcionalitu max - + This plugin can't be disabled (enforced by the game) Tenhle plugin nemůže být deaktivován (vyžaduje to hra) - + Origin: %1 Původní mod: %1 - + Name Jméno @@ -4609,7 +4769,7 @@ V souÄasnosti má omezenou funkcionalitu Jména vaÅ¡ich modů - + Priority Priorita @@ -4638,22 +4798,28 @@ V souÄasnosti má omezenou funkcionalitu <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - fix + + Close - + + Fix - + No guided fix @@ -4665,72 +4831,82 @@ p, li { white-space: pre-wrap; } Zlyhalo uplatnÄ›ní zmÄ›n v ini - + invalid profile name %1 - + failed to create %1 - + + failed to open temporary file + + + + failed to open "%1" for writing - + + failed to write mod list: %1 + + + + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - - - - - + + + + + invalid index %1 Neplatný index %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 neplatná priorita %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 zlyhalo rozebrání ini souboru (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) @@ -4946,37 +5122,61 @@ p, li { white-space: pre-wrap; } Prosím zadej jméno pro nový profil - + failed to copy profile: %1 zlyhalo kopírování profilu: %1 - + + Invalid name + + + + + Invalid profile name + + + + Confirm Potvrdit - + + Are you sure you want to remove this profile (including local savegames if any)? + + + + + Profile broken + + + + + This profile you're about to delete seems to be broken or the path is invalid. I'm about to delete the following folder: "%1". Proceed? + + + Are you sure you want to remove this profile? - Jsi si jistý, že chceÅ¡ odstranit tento profil? + Jsi si jistý, že chceÅ¡ odstranit tento profil? - + Rename Profile - + New Name - + failed to change archive invalidation state: %1 Zlyhala zmÄ›na stavu invalidace archívu: %1 - + failed to determine if invalidation is active: %1 NepodaÅ™ilo se zjistit jestli je invalidace aktivní: %1 @@ -4984,20 +5184,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories NezdaÅ™ilo se uložit uživatelské kategorie - - - - + + + + invalid index %1 neplatný index %1 - + invalid category id %1 neplatné id kategorie %1 @@ -5013,7 +5213,7 @@ p, li { white-space: pre-wrap; } Jméno úÄtu nebylo rozpoznáno - + invalid 7-zip32.dll: %1 neplatný 7-zip32.dll: %1 @@ -5083,12 +5283,12 @@ p, li { white-space: pre-wrap; } Zlyhalo nastavení proxy-dll naÄítání - + "%1" is missing "%1" chybí - + Permissions required Chybí oprávnÄ›ní @@ -5097,8 +5297,8 @@ p, li { white-space: pre-wrap; } Uživatelský úÄet nemá dostateÄná oprávnÄ›ní pro spuÅ¡tÄ›ní Mod Organizeru. Nevyhnutné zmeny se můžou udÄ›lat automaticky (adresář MO se nastaví ako pÅ™episovatelný pro souÄasného uživatele). Budete požádáni spustit "mo_helper.exe" s administrátorskými právami). - - + + Woops Hups @@ -5107,61 +5307,66 @@ p, li { white-space: pre-wrap; } ModOrganizer havaroval! Má se vytvoÅ™it diagnostický soubor? Pokud mi tento soubor poÅ¡lete (sherb@gmx.net), bude omnoho vyšší Å¡ance, že chybu opravím. - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 ModOrganizer havaroval! NaneÅ¡tÄ›stí, nezdaÅ™ilo se ani vytvoÅ™it diagnostický soubor: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Jedna instance Mod Organizeru už běží - + No game identified in "%1". The directory is required to contain the game binary and its launcher. Žádná hra nebyla nalezena v "%1". Je potÅ™ebné, aby adresář obsahoval binár hry a spouÅ¡tÄ›Ä. - - + + Please select the game to manage Prosím vyberte hru, kterou chcete spravovat - + + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) + + + + Please use "Help" from the toolbar to get usage instructions to all elements Prosím použijte "Pomoc" z panelu nástrojú pro instrukce ke vÅ¡em elementům - - + + <Manage...> <Manage...> - + failed to parse profile %1: %2 NezdaÅ™ilo se rozebrat profil %1: %2 - - + + failed to find "%1" NepodaÅ™ilo sa najít "%1" @@ -5170,17 +5375,17 @@ p, li { white-space: pre-wrap; } Chyba kódování, prosím nahlaste tuto chybu a poskytnÄ›te záznamový soubor mo_interface.log! - + failed to access %1 zlyhal přístup k %1 - + failed to set file time %1 nepodaÅ™ilo se nastavit Äas souboru %1 - + failed to create %1 NepodaÅ™ilo se vytvoÅ™it %1 @@ -5216,12 +5421,12 @@ p, li { white-space: pre-wrap; } nepodaÅ™ilo se otevřít %1 - + Script Extender Skript Extender - + Proxy DLL Proxy DLL @@ -5364,9 +5569,8 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe QuestionBoxMemory - Remember selection - pamatovat si výbÄ›r + pamatovat si výbÄ›r @@ -5474,9 +5678,9 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - - - + + + Update Aktualizace @@ -5486,57 +5690,57 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Je k dispozici Aktualizace (nejnovší verze: %1), chcete nainstalovat? - + Download in progress Stahování probíhá - + Download failed: %1 Stahování zlyhalo: %1 - + Failed to install update: %1 Zlyhala instalace aktualizace: %1 - + failed to open archive "%1": %2 nepodaÅ™ilo se otevřít archív "%1": %2 - + failed to move outdated files: %1. Please update manually. - + Update installed, Mod Organizer will now be restarted. Aktualizace nainstalována, Mod Organizer se teÄ restartuje. - + Error Chyba - + Failed to parse response. Please report this as a bug and include the file mo_interface.log. Zlyhala odozva. Prosím nahlaste tuto chybu autorovi a pÅ™iložte soubor mo_interface.log. - + No incremental update available for this version, the complete package needs to be downloaded (%1 kB) Inkrementální aktualizace není k dispozici, je potÅ™ebné stáhnout celý nový balík (%1 kB) - + no file for update found. Please update manually. - + No download server available. Please try again later. @@ -5545,7 +5749,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Nenalezen soubor pro aktualizaci - + Failed to retrieve update information: %1 NepodaÅ™ilo se získat informace o aktualizaci: %1 @@ -5553,26 +5757,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - setting for invalid plugin "%1" requested - + Administrative rights required to change this. + Administrátorské práva jsou požadovány na tuhle zmÄ›nu. - - invalid setting "%1" requested for plugin "%2" + + + attempt to store setting for unknown plugin "%1" - Administrative rights required to change this. - Administrátorské práva jsou požadovány na tuhle zmÄ›nu. - - - + Confirm Potvrdit - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? Zmena adresáře modu zmÄ›ní vÅ¡echny tvoje profily! Nenalezené mody (nebo pÅ™ejmenované) v nové lokaci budou deaktivovány ve vÅ¡ech profilech. Není možnosÅ¥ návratu pokud si nezazálohujete profily ruÄnÄ›. PokraÄovat? @@ -5785,7 +5985,12 @@ p, li { white-space: pre-wrap; } - + + Blacklisted Plugins (use <del> to remove): + + + + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5861,47 +6066,47 @@ p, li { white-space: pre-wrap; } - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds ŘeÅ¡ení - + Steam App ID Steam App ID - + The Steam AppID for your game Steam AppID pro vaÅ¡i hru - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -5928,12 +6133,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 je id, které hledáte.</span></p></body></html> - + Load Mechanism Mechanizmus spuÅ¡tÄ›ní - + Select loading mechanism. See help for details. Vyberte mechanizmus použit pro spuÅ¡tÄ›ní. Pro víc detailů Äti NápovÄ›du. @@ -5958,17 +6163,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">Proxy DLL</span><span style=" font-size:8pt;"> V tomhle módu, MO nahradí jedno dll samotné hry takovým, které naÄte MO (a také původní obsah dll samozÅ™ejmÄ›). Tohle bude fungovat POUZE pro Steamové verze her a bylo testováno pouze u Skyrimu. VyhnÄ›te se téhle metóde pokud funguje jedna z pÅ™edchozích.</span></p></body></html> - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -5977,53 +6182,53 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + Enforces that inactive ESPs and ESMs are never loaded. ZabezpeÄí, aby se neaktivní ESP a ESM vůbec nezobrazovali. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. Zdá se, že hry obÄasnÄ› naÄtou ESP nebo ESM soubory i když nebyli oznaÄeny ako aktivní pluginy. Nevím za jakých podmínek se to stává, ale uživatelé říkaj, že v nÄ›kterých případech je to neželané. Pokud je tohle oznaÄeno, ESP a ESM soubory které v seznamu nejsou oznaÄeny, nemůžou být za žádných okolností naÄtené ve hÅ™e. - + Hide inactive ESPs/ESMs Skrýt neaktivní ESP/ESM - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Pro Skyrim, tohle je možné použít místo Invalidace Archívu. Pro vÅ¡echny profily bude IA nepotÅ™ebná. Pro ostatné hry tohle není dostateÄná náhrada Invalidace Archívu! - + Back-date BSAs Uprav dátumy BSA - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -6032,27 +6237,27 @@ Pro ostatné hry tohle není dostateÄná náhrada Invalidace Archívu! Tohle jsou různé náhradné Å™eÅ¡ení problému s používaním modů. Obvykle nejsou potÅ™ebné. Prosím urÄite si projdÄ›te NápovÄ›du pÅ™edtím než zde neco pomÄ›níte. - + Select download directory Vyber adresář pro stahování - + Select mod directory Vyber adresář pro mody - + Select cache directory Vyber adresář pro cache - + Confirm? Potvrdit? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? Znovu se budou zobrazovat vÅ¡echny výzvy, u kterých jste oznaÄili "Zapamatovat tuto odpovÄ›d provždy". PokraÄovat? diff --git a/src/organizer_de.qm b/src/organizer_de.qm index 71baf743..23596b09 100644 Binary files a/src/organizer_de.qm and b/src/organizer_de.qm differ diff --git a/src/organizer_de.ts b/src/organizer_de.ts index e47e557f..68af9c3a 100644 --- a/src/organizer_de.ts +++ b/src/organizer_de.ts @@ -254,7 +254,7 @@ p, li { white-space: pre-wrap; } Fertig - + Information missing, please select "Query Info" from the context menu to re-retrieve. Informationen unvollständig, bitte clicke im Kontextmenü "Info abfragen" um diese erneut abzurufen. @@ -267,11 +267,6 @@ p, li { white-space: pre-wrap; } Placeholder Platzhalter - - - 0 - - KB @@ -320,40 +315,40 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - - - - + + + + Are you sure? Sind sie sicher? - + This will remove all finished downloads from this list and from disk. Entfernt alle abgeschlossenen Downloads aus der Liste und von der Festplatte. - + This will remove all installed downloads from this list and from disk. Entfernt alle installierten Downloads aus der Liste und von der Festplatte. - + Install Installieren - + Query Info Info abfragen - + Remove Entfernen - + Cancel Abbrechen @@ -388,52 +383,57 @@ p, li { white-space: pre-wrap; } Fertig - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Delete - + + Un-Hide + Sichtbar machen + + + Remove from View - + Pause Pausieren - + Resume Fortsetzen - + Delete Installed... - + Delete All... - + Remove Installed... Installierte entfernen... - + Remove All... Alle löschen... @@ -441,60 +441,65 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Sind sie sicher? - + This will remove all finished downloads from this list and from disk. Entfernt alle abgeschlossenen Downloads aus der Liste und von der Festplatte. - + This will remove all installed downloads from this list and from disk. Entfernt alle installierten Downloads aus der Liste und von der Festplatte. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Installieren - + Query Info Info abfragen - + Delete - + + Un-Hide + Sichtbar machen + + + Remove from View - + Remove Entfernen - + Cancel Abbrechen @@ -509,32 +514,32 @@ p, li { white-space: pre-wrap; } - + Pause Pausieren - + Resume Fortsetzen - + Delete Installed... - + Delete All... - + Remove Installed... Installierte entfernen... - + Remove All... Alle löschen... @@ -542,12 +547,12 @@ p, li { white-space: pre-wrap; } DownloadManager - - - - - - + + + + + + invalid index %1 ungültiger index %1 @@ -556,52 +561,65 @@ p, li { white-space: pre-wrap; } Löschen der Datei ist fehlgeschlagen - + failed to delete %1 konnte %1 nicht löschen - + failed to delete meta file for %1 konnte meta-informationen für %1 nicht löschen - - - - - - + + - - - - + + + + + + + + + + + invalid index ungültiger Index - + failed to rename "%1" to "%2" - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + + Wrong Game + + + + + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". + + + + Please enter the nexus mod id Bitte gib die Nexus Mod ID ein - + Mod ID: Mod ID: @@ -610,33 +628,33 @@ p, li { white-space: pre-wrap; } ungültiger alphabetischer index %1 - + Information updated Informationen aktualisiert - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Keine passende Datei auf Nexus gefunden! Ist die Datei vielleicht nicht mehr verfügbar? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Keine Datei mit diesem Namen auf Nexus gefunden. Bitte wähle die passende händisch aus. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Konnte Datei-Informationen nicht von Nexus abrufen: %1 - + Download failed: %1 (%2) Download fehlgeschlagen: %1 (%2) @@ -645,7 +663,7 @@ p, li { white-space: pre-wrap; } Abfrage von Dateiinformationen von Nexus fehlgeschlagen! - + failed to re-open %1 Öffnen von %1 fehlgeschlagen @@ -654,7 +672,7 @@ p, li { white-space: pre-wrap; } konnte Antwort von Nexus nicht interpretieren - + failed to download %1: could not open output file: %2 Download von %1 fehlgeschlagen: Konnte Ausgabedatei %2 nicht öffnen @@ -1110,12 +1128,12 @@ p, li { white-space: pre-wrap; } mo_archive.dll nicht geladen: %1 - + Password required Kennwort benötigt - + Password Kennwort @@ -1129,18 +1147,18 @@ p, li { white-space: pre-wrap; } - - + + Extracting files Extrahiere Dateien - + failed to open archive Öffnen des Archivs fehlgeschlagen - + File format "%1" not supported Dateiformat "%1" wird nicht unterstützt @@ -1189,32 +1207,32 @@ p, li { white-space: pre-wrap; } Installation fehlgeschlagen (Fehlercode %1) - + archive.dll not loaded: "%1" - + failed to create backup - + Mod Name - + Name Name - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1227,47 +1245,47 @@ p, li { white-space: pre-wrap; } Dieses Archive enthält einen geskripteten Installer. Um diesen zu nutzen wird das Optionale Paket "NCC" und die .net Runtime benötigt. Willst du jetzt mit einer manuellen Installation fortfahren? - + None of the available installer plugins were able to handle that archive - + no error Kein Fehler - + 7z.dll not found 7z.dll nicht gefunden - + 7z.dll isn't valid 7z.dll ist ungültig - + archive not found Archiv nicht gefunden - + unsupported archive type Archivtyp wird nicht unterstützt - + internal library error Interner Fehler in der Bibliothek - + archive invalid Ungültiges Archiv - + unknown archive error Unbekannter Fehler im Archiv @@ -1306,12 +1324,12 @@ p, li { white-space: pre-wrap; } MOApplication - + an error occured: %1 ein Fehler ist aufgetreten: %1 - + an error occured ein Fehler ist aufgetreten @@ -1387,7 +1405,7 @@ p, li { white-space: pre-wrap; } - + Namefilter @@ -1517,67 +1535,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Datei - - - Mod - Mod + + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + + Mod + Mod - + Data Data - + refresh data-directory overview Data-Verzeichnis übersicht neu laden - + Refresh the overview. This may take a moment. Lädt die Übersicht neu. Dies kann einen Augenblick dauern. - - - + + + Refresh Neu laden - + This is an overview of your data directory as visible to the game (and tools). Dies ist eine Übersicht des "data"-verzeichnisses so wie es das Spiel zu sehen bekommt. - - + + Filter the above list so that only conflicts are displayed. Obere Liste filtern um nur Konflikte anzuzeigen. - + Show only conflicts Nur Konflikte anzeigen - + Saves Spielstände - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1594,155 +1611,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Wenn Sie im Kontextmenü auf &quot;Mods reparieren...&quot; klicken, wird Mod Organiser versuchen die entsprechenden Mods und ESPs zu aktivieren. Es werden dabei kein Eintrag deaktiviert!</span></p></body></html> - + Downloads Downloads - + This is a list of mods you downloaded from Nexus. Double click one to install it. Dies ist eine Liste der Mods die von Nexus heruntergeladen wurden. Doppelklicken Sie um zu installieren. - + Compact Kompakt - + + Show Hidden + + + + Tool Bar Werkzeugleiste - + Install Mod Mod installieren - + Install &Mod &Mod installieren - + Install a new mod from an archive Installiert eine Mod aus einem Archiv - + Ctrl+M Ctrl+M - + Profiles Profile - + &Profiles &Profile - + Configure Profiles Profile konfigurieren - + Ctrl+P Ctrl+P - + Executables Programme - + &Executables Programm&e - + Configure the executables that can be started through Mod Organizer Konfigurieren der Programme die von Mod Organiser gestartet werden können - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Einstellungen - + &Settings Ein&stellungen - + Configure settings and workarounds Einstellungen und Workarounds verwalten - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Durchsuche die passende Seite des Nexus-Netzwerks nach weiteren Mods - + Ctrl+N Ctrl+N - - + + Update Aktualisierung - + Mod Organizer is up-to-date Mod Organizer ist auf dem neuesten Stand - - + + No Problems Keine Probleme - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1751,54 +1773,54 @@ Right now this has very limited functionality Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. - - + + Help Hilfe - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems Probleme - + There are potential problems with your setup Es bestehen möglicherweise Probleme mit Ihrer Konfiguration - + Everything seems to be in order Alles in bester Ordnung @@ -1815,22 +1837,22 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. <li>dotNet ist nicht installiert oder veraltet. Dies wird benötigt um NCC nutzen zu können. Laden Sie die korrekte Version von <a href="%1">%1</a> herunter</li> - + Help on UI Hilfe zur Oberfläche - + Documentation Wiki Wiki Dokumentation - + Report Issue Fehler melden - + Tutorials @@ -1839,374 +1861,431 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Ladereihenfolge konnte nicht gespeichert werden - + failed to save load order: %1 Reihenfolge konnt nicht gespeichert werden: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Name - + Please enter a name for the new profile Bitte geben Sie einen Namen für das neue Profil an - + failed to create profile: %1 Erstellen des Profils fehlgeschlagen: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Download in Bearbeitung - + There are still downloads in progress, do you really want to quit? Es gibt noch unfertige Downloads, wollen Sie wirklich das Programm beenden? - + failed to read savegame: %1 Spielstand konnte nicht gelesen werden: %1 - + Plugin "%1" failed: %2 - + + Plugin error + + + + + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? +(Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) + + + + Failed to start "%1" - + Waiting Warte - + Please press OK once you're logged into steam. Bitte drücken sie OK sobald sie bei Steam angemeldet sind. - + "%1" not found "%1" nicht gefunden - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam muss laufen um das Spiel korrekt zu starten. Soll MO versuchen Steam zu starten? - + Also in: <br> Auch in: <br> - + No conflict Keine Konflikte - + <Edit...> <Bearbeiten...> - + + Failed to refresh list of esps: %s + + + + This bsa is enabled in the ini file so it may be required! Dieses Archiv ist in der ini Konfiguration gelistet, daher ist es möglicherweise erforderlich! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Dieses Archiv wird vom Spiel geladen werden da ein Plugin mit dem selben Namen aktiv ist aber die enthaltenen Dateien werden sich nicht an Ihre Installations-Reihenfolge halten! - + Activating Network Proxy - - + + Installation successful Installation erfolgreich - - + + Configure Mod Mod konfigurieren - - + + This mod contains ini tweaks. Do you want to configure them now? Diese Mod enthält Anpassungen für die Ini datei. Wollen Sie diese nun konfigurieren? - - + + mod "%1" not found mod "%1" nicht gefunden - - + + Installation cancelled Installation abgebrochen - - + + The mod was not installed completely. Die mod wurde nicht erfolgreich installiert. - + Some plugins could not be loaded - - - Description missing + + Too many esps and esms enabled - - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> + + + Description missing - + Choose Mod Mod wählen - + Mod Archive Mod Archiv - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Download gestartet - + failed to update mod list: %1 Aktualisieren der Modliste fehlgeschlagen: %1 - + failed to spawn notepad.exe: %1 notepad.exe konnte nicht aufgerufen werden: %1 - + failed to open %1 %1 konnte nicht geöffnet werden - + failed to change origin name: %1 konnte den Namen der Dateiquelle nicht ändern: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + + Continue? + + + + + The versioning scheme decides which version is considered newer than another. +This function will guess the versioning scheme under the assumption that the installed version is outdated. + + + + + Sorry + + + + + I don't know a versioning scheme where %1 is newer than %2. + + + + <All> <Alle> - + <Checked> <Markierte> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: + + + + + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + + Failed to move "%1" from mod "%2" to "%3": %4 + + + + <Unchecked> <Nicht markierte> - + <Update> <Update> - + <No category> <Ohne Kategorie> - + <Conflicted> - + + <Not Endorsed> + + + + failed to rename mod: %1 konnte die Mod nicht umbenennen: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Bestätigen - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 konnte die mod nicht entfernen: %1 - - + + Failed Fehlgeschlagen - + Installation file no longer exists Installationsdatei existiert nicht mehr - + Mods installed with old versions of MO can't be reinstalled in this way. Mods die mit alten Versionen von MO installiert wurden können nicht auf diese Weise neu-installiert werden. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA BSA extrahieren - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Diese mod enthält mindestens eine BSA datei. Soll sie entpackt werden? (Das BSA wird danach gelöscht. Wenn Sie nicht wissen was BSAs sind wählen Sie am besten \"nein\") - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Dieses Archiv enthält ungültige Prüfsummen. Einige Dateien sind evtl. defekt. - + Nexus ID for this Mod is unknown Nexus ID für diese Mod unbekannt @@ -2219,371 +2298,391 @@ Please enter a name: Priorität wählen - + Really enable all visible mods? Alle angezeigten Mods aktivieren? - + Really disable all visible mods? Alle angezeigten Mods deaktivieren? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Mod installieren... - + Enable all visible Alle sichtbaren aktvieren - + Disable all visible Alle sichtbaren deaktvieren - + Check all for update Alle auf Aktualisierungen überprüfen - + Export to csv... - + Sync to Mods... Mods synchronisieren... - + Restore Backup - + Remove Backup... - + Set Category Kategorie festlegen - + Primary Category - + + Change versioning scheme + + + + + Un-ignore update + + + + + Ignore update + + + + Rename Mod... Mod umbenennen... - + Remove Mod... Mod entfernen... - + Reinstall Mod Mod neu installieren - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus Auf Nexus besuchen - + Open in explorer In Explorer öffnen - + Information... Informationen... - - + + Exception: Ausnahme: - - + + Unknown exception Unbekannte Ausnahme - + <Multiple> - + Fix Mods... Mods reparieren... - - + + failed to remove %1 %1 konnte nicht entfernt werden - - + + failed to create %1 %1 konnte nicht erstellt werden - + Can't change download directory while downloads are in progress! Das download verzeichnis kann nicht geändert werden solange Downloads laufen! - + Download failed Download fehlgeschlagen - + failed to write to file %1 Speichern in Datei "%1" fehlgeschlagen - + %1 written "%1" gespeichert - + Select binary Binary wählen - + Binary Ausführbare Datei - + Enter Name Namen eingeben - + Please enter a name for the executable Bitte geben Sie einen Namen für die Anwendungsdatei ein - + Not an executable Datei ist nicht ausführbar - + This is not a recognized executable. - - + + Replace file? Datei ersetzen? - + There already is a hidden version of this file. Replace it? Es existiert bereits eine versteckte Variante von dieser Datei. Soll diese ersetzt werden? - - + + File operation failed Dateioperation fehlgeschlagen - - + + Failed to remove "%1". Maybe you lack the required file permissions? Konnte "%1" nicht löschen. Fehlen Ihnen evtl. die nötigen Berechtigungen? - + There already is a visible version of this file. Replace it? Es existiert bereits eine sichtbare Variante dieser Datei. Soll diese ersetzt werden? - + Update available Aktualisierung verfügbar - + Open/Execute Öffnen/Ausführen - + Add as Executable Als Anwendung hinzufügen - + Un-Hide Sichtbar machen - + Hide Verstecken - + Write To File... In Datei speichern... - + Do you want to endorse Mod Organizer on %1 now? - + + Remove + + + + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway login fehlgeschlagen: %1. Der Download scheitert vermutlich - + login failed: %1 login fehlgeschlagen: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Fehler - + failed to extract %1 (errorcode %2) konnte "%1" nicht extrahieren (fehlercode %2) - + Extract... Extrahieren... - + Edit Categories... - + Enable all - + Disable all @@ -2613,7 +2712,7 @@ Please enter a name: ModInfoBackup - + This is the backup of a mod @@ -2656,57 +2755,55 @@ Please enter a name: Eine Liste mit Textdateien im Modverzeichnis. Die Dateien werden üblicherweise dazu verwendet um das Verhalten und Parameter der mods zu konfigurieren. - + Save changes to the file. Änderungen an der Datei speichern. - + Save changes to the file. This overwrites the original. There is no automatic backup! Änderungen der Datei speichern. Dies überschreibt das Original - es gibt keine automatische Sicherung! - + Save Speichern - + Images Bilder - + Images located in the mod. Bilder im Modverzeichnis. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Listet alle Bilder (*.jpg, *.png) im Modverzeichnis auf, bspw. Screenshots. Klicken für eine größere Ansicht.</span></p></body></html> - - + + Optional ESPs Optionale ESPs - + List of esps and esms that can not be loaded by the game. Liste mit ESP und ESM Dateien die vom Spiel nicht geladen werden können. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2715,7 +2812,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -2725,103 +2822,116 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Die meisten Mods haben keine optionalen ESPs, wahrscheinlich sehen Sie also eine leere Liste vor sich..</span></p></body></html> - + + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. + + + + + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. + + + + Make the selected mod in the lower list unavailable. Den unten ausgewählten Mod als nicht verfügbar markieren. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. Die in der unteren Liste ausgewählte ESP wird in ein Unterverzeichnis des Mods verschoben und so für das Spiel unsichtbar. Sie kann nicht mehr im Spiel aktiviert werden. - + Move a file to the data directory. Datei in das Datenverzeichnis verschieben. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Verschiebt ein ESP in das ESP Verzeichnis damit es im Hauptfenster aktiviert werden kann. Bitte beachten Sie, dass das ESP nur "verfügbar" wird, es wird nicht zwangsläufig geladen! Das Laden der ESP wird im Hauptfenster von MO eingestellt. - + ESPs in the data directory and thus visible to the game. ESPs im Datenverzeichnis und für das Spiel sichtbar. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Dies Mod Dateien sind im (virtuellen) Datenverzeichnis des Spiels und somit in der ESP Liste des Hauptfenster auswählbar. - + Available ESPs Verfügbare ESPs - + Conflicts Konflikte - + The following conflicted files are provided by this mod Die folgenden konfliktbehafteten Dateien werden von dieser Mod bereitgestellt - - + + File Datei - + Overwritten Mods Überschriebene Mods - + The following conflicted files are provided by other mods Die folgenden konfliktbehafteten Dateien werden von anderen Mods bereitgestellt - + Providing Mod Bereitstellende Mod - + Non-Conflicted files Konfliktfreie Dateien - + Categories Kategorien - + Primary Category - + Nexus Info Nexus Info - + Mod ID Mod ID - + Mod ID for this mod on Nexus. ID dieser mod auf Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2839,7 +2949,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ModID für den Mod auf Nexus. Um die korrekte Id zu finden, einfach den Mod auf Nexus aufrufen. Die URL sieht so aus:<a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" color:#000000;">. In diesem Beispiel ist 1334 die gesuchte Id. Zufällig ist das genau der Link zu Mod Organiser im Nexus. Warum nicht einfach mal anklicken und ein Endorsement hinzufügen?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2852,27 +2962,27 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Installierte Version des Mods. Der Tooltip zeigt die auf Nexus verfügbare Version. Die installierte Versionsnummer kann nur angezeigt werden wenn der Mod durch MO installiert wurde.</span></p></body></html> - + Version Version - + Refresh Neu laden - + Refresh all information from Nexus. - + Description Beschreibung - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2886,12 +2996,12 @@ p, li { white-space: pre-wrap; } about:blank - + Endorse - + Notes @@ -2912,8 +3022,9 @@ p, li { white-space: pre-wrap; } Typ + Name - Name + Name Size (kB) @@ -2932,17 +3043,17 @@ p, li { white-space: pre-wrap; } Schon ein "endorsement" vergeben? - + Filetree Verzeichnisbaum - + A directory view of this mod Verzeichnisansicht des Mods - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2957,17 +3068,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Veränderungen werden sofort auf der Platte ausgeführt, also</span><span style=" font-size:8pt; font-weight:600;"> vorsichtig sein!</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next Weiter - + Close Schliessen @@ -3002,8 +3113,8 @@ p, li { white-space: pre-wrap; } &Neuer Ordner - - + + Save changes? Änderungen speichern? @@ -3012,28 +3123,28 @@ p, li { white-space: pre-wrap; } Änderungen an "%1" speichern? - + File Exists Datei existiert bereits - + A file with that name exists, please enter a new one Eine Datei mit diesem Namen existiert bereits, bitte wählen Sie einen anderen Namen - + failed to move file Verschieben der Datei fehlgeschlagen - + failed to create directory "optional" Erstellen des Verzeichnis "optional" fehlgeschlagen - - + + Info requested, please wait Information wird abgerufen, bitte warten @@ -3050,32 +3161,32 @@ p, li { white-space: pre-wrap; } (Beschreibung unvollständig. Bitte besuche die Nexus-Seite) - + Main Primär - + Update Aktualisierung - + Optional Optional - + Old Alt - + Misc Sonstiges - + Unknown Unbekannt @@ -3084,18 +3195,18 @@ p, li { white-space: pre-wrap; } Anfrage fehlgeschlagen - + (description incomplete, please visit nexus) - + <a href="%1">Visit on Nexus</a> <a href="%1">Auf Nexus öffnen</a> - - + + Confirm Bestätigen @@ -3108,88 +3219,114 @@ p, li { white-space: pre-wrap; } Download gestartet - + Failed to delete %1 "%1" konnte nicht gelöscht werden - + Are sure you want to delete "%1"? Sind Sie sicher, dass Sie "%1" löschen wollen? - + Are sure you want to delete the selected files? Sind Sie sicher, dass Sie die ausgewählten Dateien löschen wollen? - - + + New Folder Neuer Ordner - + Failed to create "%1" "%1" konnte nicht erstellt werden - - + + Replace file? Datei ersetzen? - + There already is a hidden version of this file. Replace it? Es existiert bereits eine versteckte Variante von dieser Datei. Soll diese ersetzt werden? - - + + File operation failed Dateioperation fehlgeschlagen - - + + Failed to remove "%1". Maybe you lack the required file permissions? Konnte "%1" nicht löschen. Fehlen Ihnen evtl. die nötigen Berechtigungen? - - + + failed to rename %1 to %2 konnte "%1" nicht in "%2" umbenennen - + There already is a visible version of this file. Replace it? Es existiert bereits eine sichtbare Variante dieser Datei. Soll diese ersetzt werden? - + Un-Hide Sichtbar machen - + Hide Verstecken - + + Please enter a name + + + + + + Error + Fehler + + + + Invalid name. Must be a valid file name + + + + + A tweak by that name exists + + + + + Create Tweak + + + + Current Version: %1 Aktuelle Version: %1 - - + + Save changes to "%1"? - + No update available Keine neue Version verfügbar @@ -3197,12 +3334,11 @@ p, li { white-space: pre-wrap; } ModInfoOverwrite - Overwrite - Overwrite + Overwrite - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) Diese Pseudo-Mod enthält Dateien des virtuellen Verzeichnisses die modifiziert wurden (z.B. durch den Construction Kit) @@ -3210,17 +3346,17 @@ p, li { white-space: pre-wrap; } ModInfoRegular - + failed to write %1/meta.ini: %2 konnte %1/meta.ini nicht schreiben: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 enthält keine esp / esm Dateien und keine Resourcen (Texturen, Netze, Oberfläche...) - + Categories: <br> Kategorien: <br> @@ -3236,7 +3372,7 @@ p, li { white-space: pre-wrap; } aÜberprüfung gestartet - + Confirm Bestätigen @@ -3261,7 +3397,7 @@ p, li { white-space: pre-wrap; } Max - + installed version: %1, newest version: %2 installierte Version: %1, neueste Version: %2 @@ -3278,9 +3414,8 @@ p, li { white-space: pre-wrap; } Alle angezeigten Mods deaktivieren? - Overwrite - Overwrite + Overwrite @@ -3323,47 +3458,52 @@ p, li { white-space: pre-wrap; } - + invalid - + + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". + + + + Categories: <br> Kategorien: <br> - + Invalid name - + Mod Name - + Installation - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. - + Time this mod was installed @@ -3380,59 +3520,59 @@ p, li { white-space: pre-wrap; } Namen Ihrer Mods - + Version Version - + Version of the mod (if available) Version des Mod (wenn verfügbar) - + Priority Priorität - + drag&drop failed: %1 - + Flags - + Category - + Nexus ID - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority Installations-Priorität Ihres Mods. Je höher, desto wichtiger ist dieser Mod und überschreibt damit Dateien von Mods mit niedrigerer Priorität. - + Are you sure you want to remove "%1"? Bist du sicher dass du "%1" löschen willst? @@ -3468,12 +3608,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites Overwrites - + not implemented nicht implementiert @@ -3482,11 +3622,16 @@ p, li { white-space: pre-wrap; } NXMAccessManager + Logging into Nexus + + + + timeout Zeitüberschreitung - + Please check your password Bitte das Passwort überprüfen @@ -3576,17 +3721,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response leere Antwort - + invalid response ungültige Antwort @@ -4576,34 +4721,34 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. "%1" konnte nicht gelöscht werden - + Failed to delete "%1" - - + + Confirm Bestätigen - + Are sure you want to delete "%1"? Sind Sie sicher, dass Sie "%1" löschen wollen? - + Are sure you want to delete the selected files? Sind Sie sicher, dass Sie die ausgewählten Dateien löschen wollen? - - + + New Folder Neuer Ordner - + Failed to create "%1" "%1" konnte nicht erstellt werden @@ -4611,70 +4756,85 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. PluginList - + Mod Index - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + + failed to update esp info for file %1 (source id: %2), error: %3 + + + + esp not found: %1 ESP nicht gefunden: %1 - - + + Confirm Bestätigen - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 konnte die Ausgabedatei nicht öffnen: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. Einige Ihrer Plugins haben ungültige Namen! Diese Plugins können nicht vom Spiel geladen werden. Die Datei mo_interface.log enthält eine Liste der betroffenen Plugins. Bitte benennen Sie diese um. - + + Missing Masters + + + + + Enabled Masters + + + + failed to restore load order for %1 @@ -4687,17 +4847,17 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. max - + This plugin can't be disabled (enforced by the game) Dieses Plugin kann nicht deaktiviert werden (vom Spiel benötigt) - + Origin: %1 Ursprung: %1 - + Name Name @@ -4706,7 +4866,7 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Namen Ihrer Mods - + Priority Priorität @@ -4737,22 +4897,28 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - fix - + + Close + Schliessen - + + Fix - + No guided fix @@ -4764,72 +4930,82 @@ p, li { white-space: pre-wrap; } konnte Ini Anpassungen nicht anwenden - + invalid profile name %1 - + failed to create %1 %1 konnte nicht erstellt werden - + + failed to open temporary file + + + + failed to open "%1" for writing - + + failed to write mod list: %1 + + + + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 Ungültige Priorität %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 Konnte ini-datei (%1) nicht auslesen: %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) - - - - - + + + + + invalid index %1 ungültiger index %1 @@ -5054,37 +5230,61 @@ p, li { white-space: pre-wrap; } Bitte geben Sie einen Namen für das neue Profil an - + failed to copy profile: %1 Kopieren des Profils fehlgeschlagen: %1 - + + Invalid name + + + + + Invalid profile name + + + + Confirm Bestätigen - + + Are you sure you want to remove this profile (including local savegames if any)? + + + + + Profile broken + + + + + This profile you're about to delete seems to be broken or the path is invalid. I'm about to delete the following folder: "%1". Proceed? + + + Are you sure you want to remove this profile? - Sind Sie sicher, dass Sie dieses Profil löschen wollen? + Sind Sie sicher, dass Sie dieses Profil löschen wollen? - + Rename Profile - + New Name - + failed to change archive invalidation state: %1 Ändern der Archiv Invalidierung fehlgeschlagen: %1 - + failed to determine if invalidation is active: %1 MO konnte nicht feststellen ob Invalidierung aktiv ist: %1 @@ -5176,13 +5376,13 @@ p, li { white-space: pre-wrap; } Waffen - + invalid 7-zip32.dll: %1 Ungültige 7-zip32.dll: %1 - + "%1" is missing "%1" fehlt @@ -5191,8 +5391,8 @@ p, li { white-space: pre-wrap; } "%1" konnte nicht erstellt werden, haben Sie die nötigen Schreibrechte für das Installations Verzeichnis? - - + + Please select the game to manage Bitte wählen Sie ein Spiel zum Verwalten aus @@ -5201,7 +5401,7 @@ p, li { white-space: pre-wrap; } Ungültiges Profil %1 - + Permissions required Berechtigungen erforderlich @@ -5210,8 +5410,8 @@ p, li { white-space: pre-wrap; } Der aktuelle Benutzeraccount hat die erforderlichen Berechtigungen nicht um Mod Organizer auszuführen. The notwendigen Änderungen können automatisch durchgeführt werden (der aktuelle Benutzeraccount erhält Schreibzugriff auf das ModOrganizer Verzeichnis). Sie werden aufgefordert werden "mo_helper.exe" mit erhöhten Privilegien auszuführen. - - + + Woops Oha @@ -5220,36 +5420,41 @@ p, li { white-space: pre-wrap; } ModOrganizer ist abgestürzt! Soll eine Diagnosedatei geschrieben werden? Wenn sie mir diese Datei per eMail (sherb@gmx.net) schicken kann dieser Fehler vermutlich eher behoben werden. - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 ModOrganizer ist abgestürzt! Leider konnte keine Diagnosedatei geschrieben werden: %1 - + An instance of Mod Organizer is already running Mod Organizer läuft bereits - + No game identified in "%1". The directory is required to contain the game binary and its launcher. Es wurde kein Spiel in "%1" gefunden. Das Verzeichnis muss das Anwendungsdatei des Spiels und des Launchers enthalten. + + + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) + + "%1" not found "%1" nicht gefunden - + Please use "Help" from the toolbar to get usage instructions to all elements Bitte verwenden Sie die "Hilfe" Funktion um Hinweise zu Nutzung aller Elemete zu bekommen @@ -5262,19 +5467,19 @@ p, li { white-space: pre-wrap; } Ungültige Priorität %1 - - + + failed to find "%1" Konnte "%1" nicht finden - - + + <Manage...> <Verwalten...> - + failed to parse profile %1: %2 Konnte Profil %1 nicht verarbeiten: %2 @@ -5283,17 +5488,17 @@ p, li { white-space: pre-wrap; } Kodierungsfehler! Bitte melden Sie dies als Bug und fügen Sie die Datei mo_interface.log bei! - + failed to access %1 Auf %1 konnte nicht zugegriffen werden - + failed to set file time %1 Konnte Dateizeit nicht setzen %1 - + failed to create %1 %1 konnte nicht erstellt werden @@ -5449,18 +5654,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Englisch - - + + Mod Organizer Mod Organizer - + Script Extender Script Extender - + Proxy DLL Proxy DLL @@ -5476,20 +5681,20 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe konnte den Accountnamen nicht bestimmen - + Failed to save custom categories Konnte die modifizierten Kategorien nicht speichern - - - - + + + + invalid index %1 ungültiger index %1 - + invalid category id %1 ungültige Kategorie %1 @@ -5582,14 +5787,6 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Abbrechen - - QuestionBoxMemory - - - Remember selection - - - SaveGameInfoWidget @@ -5695,9 +5892,9 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - - - + + + Update Aktualisierung @@ -5707,57 +5904,57 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Eine Aktualisierung ist verfügbar (neueste Version: %1). Soll sie installiert werden? - + Download in progress Download läuft - + Download failed: %1 Download fehlgeschlagen: %1 - + Failed to install update: %1 Konnte das update nicht installieren: %1 - + failed to open archive "%1": %2 konnte das Archiv "%1" nicht öffnen: %2 - + failed to move outdated files: %1. Please update manually. - + Update installed, Mod Organizer will now be restarted. Aktualisierung installiert. Mod Organizer wird sich nun neu starten. - + Error Fehler - + Failed to parse response. Please report this as a bug and include the file mo_interface.log. Konnte Antwort nicht auslesen. Bitte melden Sie dies als Bug und fügen Sie die Datei mo_interface.log bei. - + No incremental update available for this version, the complete package needs to be downloaded (%1 kB) Es existiert keine inkrementelle Aktualisierung für diese Version, Sie müssen das vollständige Archiv herunterladen (%1 kB) - + no file for update found. Please update manually. - + No download server available. Please try again later. @@ -5766,7 +5963,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe kein Update gefunden - + Failed to retrieve update information: %1 Konnte update informationen nicht abrufen: %1 @@ -5782,26 +5979,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - setting for invalid plugin "%1" requested - + Administrative rights required to change this. + Admistratorrechte sind erforderlich um dies zu ändern. - - invalid setting "%1" requested for plugin "%2" + + + attempt to store setting for unknown plugin "%1" - Administrative rights required to change this. - Admistratorrechte sind erforderlich um dies zu ändern. - - - + Confirm Bestätigen - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -6040,42 +6233,47 @@ p, li { white-space: pre-wrap; } - + Author: - + Version: - + Description: - + Key - + Value - + + Blacklisted Plugins (use <del> to remove): + + + + Workarounds Workarounds - + Load Mechanism Lademechanismus - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -6086,17 +6284,17 @@ If you use the Steam version of Oblivion the default will NOT work. In this case - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -6105,53 +6303,53 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + Enforces that inactive ESPs and ESMs are never loaded. Stellt sicher, dass inaktive ESP und ESM Dateien nie geladen werden. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. Manche Spiele scheinen gelegentlich ESP oder ESM Dateien zu laden auch wenn sie nicht als Plugins aktiviert wurden. Wenn der Haken aktiviert wurde, sind ESP und ESM Dateien die nicht ausgewählt wurden für das Spiel unsichtbar und können nicht geladen werden. - + Hide inactive ESPs/ESMs Inaktive ESP / ESM ausblenden - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Für Skyrim kann dies als Alternative zur Archiv Invalidierung verwendet werden. Damit erübrigt sich AI für alle Profile. Für die anderen Spiele ist dies KEIN hinreichender Ersatz für AI! - + Back-date BSAs BSAs zurückdatieren - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -6164,7 +6362,7 @@ Für die anderen Spiele ist dies KEIN hinreichender Ersatz für AI!Lade-Methode - + Select loading mechanism. See help for details. Lade-Mechanismus auswählen. Siehe Hilfe für mehr Details. @@ -6189,17 +6387,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">Proxy DLL</span><span style=" font-size:8pt;"> In diesem Modus ersetzt MO eine der dll Dateien des Spiels mit einer eigenen Version, die MO lädt (und die originale dll natürlich). Dies funktioniert NUR mit Steam Versionen und wurde bisher nur mit Skyrim getestet. Bitte verwenden Sie diesen Modus nur, wenn keine der anderen Varianten funktioniert.</span></p></body></html> - + Steam App ID Steam AppID - + The Steam AppID for your game Die Steam AppID für Ihr Spiel - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -6278,27 +6476,27 @@ p, li { white-space: pre-wrap; } Kennwort - + Select download directory Download-Verzeichnis wählen - + Select mod directory Mod-Verzeichnis wählen - + Select cache directory Cache-Verzeichnis wählen - + Confirm? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? diff --git a/src/organizer_es.qm b/src/organizer_es.qm index 94abcb00..3e128d83 100644 Binary files a/src/organizer_es.qm and b/src/organizer_es.qm differ diff --git a/src/organizer_es.ts b/src/organizer_es.ts index acdff666..ed278075 100644 --- a/src/organizer_es.ts +++ b/src/organizer_es.ts @@ -247,7 +247,7 @@ p, li { white-space: pre-wrap; } - + Information missing, please select "Query Info" from the context menu to re-retrieve. @@ -260,11 +260,6 @@ p, li { white-space: pre-wrap; } Placeholder Marcador de posicion - - - 0 - - KB @@ -313,40 +308,40 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - - - - + + + + Are you sure? Estas seguro? - + This will remove all finished downloads from this list and from disk. Esto limpiara todas las descargas finalizadas del disco y la lista. - + This will remove all installed downloads from this list and from disk. - + Install Instalar - + Query Info - + Remove - + Cancel Cancelar @@ -381,52 +376,57 @@ p, li { white-space: pre-wrap; } - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Delete - + + Un-Hide + + + + Remove from View - + Pause - + Resume - + Delete Installed... - + Delete All... - + Remove Installed... - + Remove All... Quitar todos... @@ -434,60 +434,65 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Estas seguro? - + This will remove all finished downloads from this list and from disk. Esto limpiara todas las descargas finalizadas del disco y la lista. - + This will remove all installed downloads from this list and from disk. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Instalar - + Query Info - + Delete - + + Un-Hide + + + + Remove from View - + Remove Quitar - + Cancel Cancelar @@ -502,32 +507,32 @@ p, li { white-space: pre-wrap; } - + Pause - + Resume - + Delete Installed... - + Delete All... - + Remove Installed... - + Remove All... Quitar todos... @@ -535,73 +540,83 @@ p, li { white-space: pre-wrap; } DownloadManager - + failed to rename "%1" to "%2" - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + failed to download %1: could not open output file: %2 error en la descarga %1: no se puede abrir el fichero de destino: %2 - + + Wrong Game + + + + + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". + + + + failed to delete %1 - + failed to delete meta file for %1 - - - - - - + + + + + + invalid index %1 indice invalido %1 - + Information updated - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 - + Download failed: %1 (%2) @@ -610,27 +625,30 @@ p, li { white-space: pre-wrap; } error borrando el fichero - - - - - - + + - - - - + + + + + + + + + + + invalid index indice invalido - + Please enter the nexus mod id - + Mod ID: @@ -639,7 +657,7 @@ p, li { white-space: pre-wrap; } Fallo la peticion de fichero de Nexus! - + failed to re-open %1 error reabriendo %1 @@ -1049,12 +1067,12 @@ p, li { white-space: pre-wrap; } mo_archive no cargado: "%1" - + Password required Contraseña requerida - + Password Contraseña @@ -1068,18 +1086,18 @@ p, li { white-space: pre-wrap; } - - + + Extracting files Extrayendo ficheros - + failed to open archive Error abriendo el fichero - + File format "%1" not supported Formato de archivo no soportado para "%1" @@ -1096,77 +1114,77 @@ p, li { white-space: pre-wrap; } Confirma - + archive.dll not loaded: "%1" - + failed to create backup - + Mod Name - + Name Nombre - + Invalid name - + The name you entered is invalid, please enter a different one. - + None of the available installer plugins were able to handle that archive - + no error sin error - + 7z.dll not found 7z.dll no se encuentra - + 7z.dll isn't valid 7z.dll no es valido - + archive not found archivo no encontrado - + unsupported archive type formato de fichero no soportado - + internal library error error interno de libreria - + archive invalid archivo invalido - + unknown archive error error desconocido del archivo Error de fichero desconocido @@ -1206,12 +1224,12 @@ p, li { white-space: pre-wrap; } MOApplication - + an error occured: %1 - + an error occured @@ -1283,7 +1301,7 @@ Por favor observa que las prioridades no son guardadas para cada perfil. - + Namefilter @@ -1376,67 +1394,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Fichero - - - Mod - Mod + + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + + Mod + Mod - + Data Datos - + refresh data-directory overview refresca la vista del directorio de datos - + Refresh the overview. This may take a moment. Refresca toda la vista. Esto puede tomar un tiempo. - - - + + + Refresh Recargar - + This is an overview of your data directory as visible to the game (and tools). Esta es una visión general del directorio de datos como visible para el juego (y herramientas). - - + + Filter the above list so that only conflicts are displayed. Filrar la lista superior por conflictos. - + Show only conflicts Monstrar solo los conflictos - + Saves Part. Guardadas - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1447,155 +1464,160 @@ p, li { white-space: pre-wrap; } - + Downloads Descargas - + This is a list of mods you downloaded from Nexus. Double click one to install it. Esta es la lista de los mods que has descargado desde Nexus. Doble Click para instalar. - + Compact - + + Show Hidden + + + + Tool Bar Tool Bar - + Install Mod Instalar Mod - + Install &Mod Instalar &Mod - + Install a new mod from an archive Instalar un nuevo Mod desde un archivo - + Ctrl+M Ctrl+M - + Profiles Perfiles - + &Profiles &Perfiles - + Configure Profiles Configurar los perfiles - + Ctrl+P Ctrl+P - + Executables Ejecutables - + &Executables &Ejecutables - + Configure the executables that can be started through Mod Organizer Configura el ejecutable que sera iniciado desde Mod Orgenizer - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Configuracion - + &Settings &Configuracion - + Configure settings and workarounds Configuraciones y modos - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Buscar en la red de Nexus mas Mods - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Mod Organizer esta actualizado - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1603,445 +1625,502 @@ Right now this has very limited functionality - - + + Help Ayuda - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 Fallo guardando el orden de carga: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Nombre - + Please enter a name for the new profile Por favor introduzca un nombre para el nuevo perfil - + failed to create profile: %1 Fallo al crear el perfil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Descarga en progreso - + There are still downloads in progress, do you really want to quit? Aun hay descargas en progreso, estas seguro que quieres salir? - + failed to read savegame: %1 Fallo al leer la partida guardada: %1 - + Plugin "%1" failed: %2 - + + Plugin error + + + + + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? +(Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) + + + + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - + "%1" not found "%1" no encontrado - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Sin conflictos - + <Edit...> <Editar...> - + + Failed to refresh list of esps: %s + + + + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Instalacion completada - - + + Configure Mod Configurar Mod - - + + This mod contains ini tweaks. Do you want to configure them now? Este mod contiene modificaciones del Ini. Quieres configurarlas ahora? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - - - Description missing + + Too many esps and esms enabled - - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> + + + Description missing - + Choose Mod Seleccione Mod - + Mod Archive Fichero Mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Descarga comenzada - + failed to update mod list: %1 Fallo al actualizar la lista de Mods: %1 - + failed to spawn notepad.exe: %1 Fallo al cargar el Bloc de notas: %1 - + failed to open %1 Fallo al abrir %1 - + failed to change origin name: %1 fallo al cambiar el nombre original del fichero %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + + Continue? + + + + + The versioning scheme decides which version is considered newer than another. +This function will guess the versioning scheme under the assumption that the installed version is outdated. + + + + + Sorry + + + + + I don't know a versioning scheme where %1 is newer than %2. + + + + <All> <Todos> - + <Checked> <Marcado> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: + + + + + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + + Failed to move "%1" from mod "%2" to "%3": %4 + + + + <Unchecked> <Desmarcado> - + <Update> <Actualizacion> - + <No category> - + <Conflicted> - + + <Not Endorsed> + + + + failed to rename mod: %1 fallo al cambiar el nombre al mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Confirma - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2054,371 +2133,391 @@ Please enter a name: Selecciona Prioridad - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instalar Mod... - + Enable all visible Activar todos los visibles - + Disable all visible Desactivar todos los visibles - + Check all for update Buscar Actualizaciones - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Set Category Definir Categoria - + Primary Category - + + Change versioning scheme + + + + + Un-ignore update + + + + + Ignore update + + + + Rename Mod... Cambiar nombre... - + Remove Mod... Quitar Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Informacion... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... Activar Mods faltantes... - - + + failed to remove %1 Fallo eliminando %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 Fallo de escritura en el fichero %1 - + %1 written %1 escrito - + Select binary - + Binary Fichero - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available Disponible actualización - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... Escribir al fichero... - + Do you want to endorse Mod Organizer on %1 now? - + + Remove + + + + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2448,7 +2547,7 @@ Please enter a name: ModInfoBackup - + This is the backup of a mod @@ -2491,48 +2590,47 @@ Please enter a name: Esta es la lista de ficheros INI que incluye el mod. Normalmente son usados para configurar algunos aspectos o parametros del mod. - + Save changes to the file. Grabar cambios al fichero. - + Save changes to the file. This overwrites the original. There is no automatic backup! Grabar cambios al fichero. Esto sobreescribe el original. No se realizan backups! - + Save Guardar - + Images Imagenes - + Images located in the mod. Imagenes incluidas en el mod. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - Esto muestra el listado de fotos (jpg y png) incluidas con el Mod, por ejemplo capturas de pantallas. Pulsa para verlas en grande. + Esto muestra el listado de fotos (jpg y png) incluidas con el Mod, por ejemplo capturas de pantallas. Pulsa para verlas en grande. - - + + Optional ESPs ESPs Opcionales - + List of esps and esms that can not be loaded by the game. Listado de ESPs y ESMs que no se cargaran con el juego. @@ -2551,115 +2649,116 @@ Normalmente son ficheros extras o modificaciones, mira el fich. texto del mod pa Muchos mods no tienen ESPs extras, en estos casos veras una lista vacia. - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> + + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. + + + + Make the selected mod in the lower list unavailable. marca este fichero seleccionado en la lista de abajo no disponible. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. El esp seleccionado (en la lista de abajo) es el que sera colocado en el subdirectorio del mod y sera invisible para el juego. Este no podra ser activado. - + Move a file to the data directory. Error moviendo fichero al directorio de datos. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Esto mueve un esp al directorio esp, por lo que se puede habilitar en la ventana principal. Tenga en cuenta que el ESP sólo se convierte en "disponible", no necesariamente se cargará! Está configurado en la ventana principal de omo. - + ESPs in the data directory and thus visible to the game. ESPs en el directorio de datos y visibles por el juego. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Estos son los archivos mod que se encuentran en el directorio de datos (virtual) de su juego y así será selecteable en la lista de esp en la ventana principal. - + Available ESPs ESPs Disponibles - + Conflicts - + The following conflicted files are provided by this mod - - + + File Fichero - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Categorias - + Primary Category - + Nexus Info Inf. Nexus - + Mod ID ID del MOD - + Mod ID for this mod on Nexus. ID del Mod en Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2673,7 +2772,7 @@ p, li { white-space: pre-wrap; } - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2682,27 +2781,27 @@ p, li { white-space: pre-wrap; } - + Version Version - + Refresh Recargar - + Refresh all information from Nexus. - + Description Descripcion - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2712,12 +2811,12 @@ p, li { white-space: pre-wrap; } - + Endorse - + Notes @@ -2738,8 +2837,9 @@ p, li { white-space: pre-wrap; } Tipo + Name - Nombre + Nombre Size (kB) @@ -2759,17 +2859,17 @@ p, li { white-space: pre-wrap; } Tamaño - + Filetree Contenido - + A directory view of this mod Ficheros que contiene este mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2779,43 +2879,43 @@ p, li { white-space: pre-wrap; } - + Previous - + Next - + Close Cerrar - + File Exists Existe el fichero - + A file with that name exists, please enter a new one Un fichero con ese nombre ya existe, por favor selecciona otro nombre - + failed to move file Error al mover el fichero - + failed to create directory "optional" Error al crear el directorio "optional" - - + + Info requested, please wait Informacion solicitada, por favor espere @@ -2852,23 +2952,23 @@ p, li { white-space: pre-wrap; } &New Folder - - + + Save changes? Grabar cambios? - + Current Version: %1 Version actual: %1 - + No update available Sin actualizacion - + Main Principal @@ -2883,97 +2983,123 @@ p, li { white-space: pre-wrap; } - - + + Save changes to "%1"? - + Update Actualizacion - + Optional Opcional - + Old Antiguo - + Misc Misc - + Unknown Desconocido - + (description incomplete, please visit nexus) - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - - + + failed to rename %1 to %2 - + There already is a visible version of this file. Replace it? - + Un-Hide - + Hide + + + Please enter a name + + + + + + Error + Error + + + + Invalid name. Must be a valid file name + + + + + A tweak by that name exists + + + + + Create Tweak + + request failed peticion fallada - + <a href="%1">Visit on Nexus</a> - - + + Confirm Confirma @@ -2986,28 +3112,28 @@ p, li { white-space: pre-wrap; } Descarga comenzada - + Failed to delete %1 Error borrando %1 - + Are sure you want to delete "%1"? Estas seguro de querer borrar "%1"? - + Are sure you want to delete the selected files? Etas seguro de querer borrar los ficheros seleccionados? - - + + New Folder Nueva Carpeta - + Failed to create "%1" Fallo al crear "%1" @@ -3015,12 +3141,7 @@ p, li { white-space: pre-wrap; } ModInfoOverwrite - - Overwrite - - - - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) @@ -3028,17 +3149,17 @@ p, li { white-space: pre-wrap; } ModInfoRegular - + failed to write %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 no contiene ningun directorio con esp/esm ni externos (textures, meshes, interface, ...) - + Categories: <br> @@ -3066,7 +3187,7 @@ p, li { white-space: pre-wrap; } Comprobacion comenzada - + Confirm Confirma @@ -3087,7 +3208,7 @@ p, li { white-space: pre-wrap; } max - + installed version: %1, newest version: %2 version instalada: %1, nueva version: %2 @@ -3095,11 +3216,6 @@ p, li { white-space: pre-wrap; } %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 no contiene ningun directorio con esp/esm ni externos (textures, meshes, interface, ...) - - - Overwrite - - This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit) @@ -3141,47 +3257,52 @@ p, li { white-space: pre-wrap; } - + invalid - + + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". + + + + Categories: <br> - + Invalid name - + Mod Name - + Installation - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. - + Time this mod was installed @@ -3194,58 +3315,58 @@ p, li { white-space: pre-wrap; } Nombres de los mods - + Version Versión - + Version of the mod (if available) Version del mod (si esta disponible) - + Priority Prioridad - + drag&drop failed: %1 - + Flags - + Category - + Nexus ID - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Prioridad de instalacion de tu mod. Cuanto mas alto sea pisara los mods con menos prioridad. - + Are you sure you want to remove "%1"? Estas seguro de querer borrar "%1"? @@ -3274,12 +3395,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites - + not implemented @@ -3288,11 +3409,16 @@ p, li { white-space: pre-wrap; } NXMAccessManager + Logging into Nexus + + + + timeout - + Please check your password @@ -3342,17 +3468,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response - + invalid response @@ -3959,34 +4085,34 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod Error borrando %1 - + Failed to delete "%1" - - + + Confirm Confirma - + Are sure you want to delete "%1"? Estas seguro de querer borrar "%1"? - + Are sure you want to delete the selected files? Etas seguro de querer borrar los ficheros seleccionados? - - + + New Folder Nueva Carpeta - + Failed to create "%1" Fallo al crear "%1" @@ -3994,70 +4120,85 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod PluginList - + Mod Index - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + + failed to update esp info for file %1 (source id: %2), error: %3 + + + + esp not found: %1 ESP no encontrado: %1 - - + + Confirm Confirma - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - + + Missing Masters + + + + + Enabled Masters + + + + failed to restore load order for %1 @@ -4070,17 +4211,17 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod max - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name Nombre @@ -4089,7 +4230,7 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod Nombres de tus Mods - + Priority Prioridad @@ -4122,22 +4263,28 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - fix - + + Close + Cerrar - + + Fix - + No guided fix @@ -4149,72 +4296,82 @@ p, li { white-space: pre-wrap; } fallo al aplicar las modificaciones al ini - + invalid profile name %1 - + failed to create %1 - + + failed to open temporary file + + + + failed to open "%1" for writing - + + failed to write mod list: %1 + + + + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 prioridad invalida %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) - - - - - + + + + + invalid index %1 indice invalido %1 @@ -4387,37 +4544,61 @@ p, li { white-space: pre-wrap; } Por favor introduzca un nombre para el nuevo perfil - + failed to copy profile: %1 Fallo al copiar perfil: %1 - + + Invalid name + + + + + Invalid profile name + + + + Confirm Confirma - + + Are you sure you want to remove this profile (including local savegames if any)? + + + + + Profile broken + + + + + This profile you're about to delete seems to be broken or the path is invalid. I'm about to delete the following folder: "%1". Proceed? + + + Are you sure you want to remove this profile? - Estas seguro de que quieres borrar este perfil? + Estas seguro de que quieres borrar este perfil? - + Rename Profile - + New Name - + failed to change archive invalidation state: %1 error al cambiar el estado de invalidación de archivo: %1 - + failed to determine if invalidation is active: %1 no se ha podido determinar si la nulidad está activa: %1 @@ -4505,7 +4686,7 @@ p, li { white-space: pre-wrap; } Armas - + invalid 7-zip32.dll: %1 7z.dll no es valido: %1 @@ -4575,12 +4756,12 @@ p, li { white-space: pre-wrap; } Fallo al configurar la carga por proxy-dll - + "%1" is missing "%1" no encontrado - + Permissions required Se requieren permisos @@ -4589,42 +4770,47 @@ p, li { white-space: pre-wrap; } La cuenta de usuario actual no tiene los derechos de acceso necesarios para ejecutar el Mod Organizer. Los cambios necesarios pueden hacerse automáticamente (el directorio de MO se harán escritura para la cuenta de usuario actual). Se le pedirá a ejecutar "mo_helper.exe" con derechos de administrador). - - + + Woops - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 - + An instance of Mod Organizer is already running Ya se está ejecutando una instancia de Mod Organizer - + No game identified in "%1". The directory is required to contain the game binary and its launcher. - - + + Please select the game to manage Por favor seleccione el juego + + + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) + + invalid profile %1 perfil invalido %1 @@ -4634,7 +4820,7 @@ p, li { white-space: pre-wrap; } "%1" no encontrado - + Please use "Help" from the toolbar to get usage instructions to all elements Por favor utilice "Ayuda" en la barra superior para obtener informacion sobre todos los elementos @@ -4647,19 +4833,19 @@ p, li { white-space: pre-wrap; } prioridad invalida %1 - - + + failed to find "%1" fallo al encontrar %1 - - + + <Manage...> <Definir...> - + failed to parse profile %1: %2 no se pudo analizar el perfil % 1: %2 @@ -4672,17 +4858,17 @@ p, li { white-space: pre-wrap; } Esto tomara un momento - + failed to access %1 Fallo al acceder %1 - + failed to set file time %1 Fallo al definir la hora al fihcero %1 - + failed to create %1 Fallo al crear %1 @@ -4721,18 +4907,18 @@ p, li { white-space: pre-wrap; } Ingles - - + + Mod Organizer Mod Organizer - + Script Extender Script Extender - + Proxy DLL Proxy DLL @@ -4793,20 +4979,20 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe no se pudo determinar el nombre de la cuenta - + Failed to save custom categories Error al guardar categorías personalizadas - - - - + + + + invalid index %1 indice invalido %1 - + invalid category id %1 @@ -4899,14 +5085,6 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Cancelar - - QuestionBoxMemory - - - Remember selection - - - SaveGameInfoWidget @@ -5012,9 +5190,9 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - - - + + + Update Actualización @@ -5024,62 +5202,62 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Hay disponible una actualización (versión más reciente: %1), desea instalarlo? - + Download in progress Descarga en progreso - + Download failed: %1 - + Failed to install update: %1 No se pudo instalar la actualización: %1 - + failed to open archive "%1": %2 error al abrir el archivo "%1": %2 - + failed to move outdated files: %1. Please update manually. - + Update installed, Mod Organizer will now be restarted. Actualización instalada, Ahora se reiniciará la Mod Organizer. - + Error Error - + Failed to parse response. Please report this as a bug and include the file mo_interface.log. - + No incremental update available for this version, the complete package needs to be downloaded (%1 kB) - + no file for update found. Please update manually. - + No download server available. Please try again later. - + Failed to retrieve update information: %1 @@ -5095,26 +5273,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - setting for invalid plugin "%1" requested - + Administrative rights required to change this. + Derechos administrativos necesarios para cambiar esto. - - invalid setting "%1" requested for plugin "%2" + + + attempt to store setting for unknown plugin "%1" - Administrative rights required to change this. - Derechos administrativos necesarios para cambiar esto. - - - + Confirm Confirma - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -5141,19 +5315,19 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe El idioma del programa. Esto solo mostrara los idiomas instalados. - + Enforces that inactive ESPs and ESMs are never loaded. Se asegura que no se cargan nunca los ESPs y ESMs inactivos. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. Parece que los juegos ocasionalmente cargan archivos ESP o ESM, incluso si ellos todavía no se ha activado como plugins. No, pero sabe cuáles son las circunstancias, pero informes de usuario implican en algunos casos no deseados. Si esto se comprueba, ESPs ESMs no marcadas en la lista son invisibles para el juego y no se pueden cargar. - + Hide inactive ESPs/ESMs Ocultar ESPs/ESMs inactivos @@ -5211,32 +5385,32 @@ p, li { white-space: pre-wrap; } - + Workarounds Soluciones - + Load Mechanism Mecamismo de carga - + Select loading mechanism. See help for details. Selecciona la forma de cargar. Mira la ayuda para detalles. - + Steam App ID Steam App ID - + The Steam AppID for your game El AppID de tu juego - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -5430,32 +5604,37 @@ p, li { white-space: pre-wrap; } - + Author: - + Version: - + Description: - + Key - + Value - + + Blacklisted Plugins (use <del> to remove): + + + + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5466,17 +5645,17 @@ If you use the Steam version of Oblivion the default will NOT work. In this case - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -5485,36 +5664,36 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Para Skyrim, puede utilizarse en lugar de invalidación de archivo. Debe despedir AI para todos los perfiles. Para los otros juegos no es un sustituto suficiente AI! - + Back-date BSAs Back-date BSAs - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -5523,27 +5702,27 @@ Para los otros juegos no es un sustituto suficiente AI! Estas son soluciones para problemas con Mod Organizer. Normalmente no son necesarios. Por favor, asegúrese de leer el texto de ayuda antes de cambiar cualquier cosa aquí. - + Select download directory - + Select mod directory - + Select cache directory - + Confirm? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? diff --git a/src/organizer_fr.qm b/src/organizer_fr.qm index 4e42eedc..9c8d5052 100644 Binary files a/src/organizer_fr.qm and b/src/organizer_fr.qm differ diff --git a/src/organizer_fr.ts b/src/organizer_fr.ts index ea81eb62..1bf335ce 100644 --- a/src/organizer_fr.ts +++ b/src/organizer_fr.ts @@ -255,7 +255,7 @@ p, li { white-space: pre-wrap; } Terminé - + Information missing, please select "Query Info" from the context menu to re-retrieve. Information manquante, veuillez sélectionner "Demander info" dans le menu contextuel pour récupérer. @@ -268,11 +268,6 @@ p, li { white-space: pre-wrap; } Placeholder Signet - - - 0 - - KB @@ -321,40 +316,40 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - - - - + + + + Are you sure? Êtes-vous certain? - + This will remove all finished downloads from this list and from disk. Ceci supprimera tous les téléchargements complétés de la liste et du disque. - + This will remove all installed downloads from this list and from disk. Ceci supprimera tous les téléchargements installés de cette liste et du disque. - + Install Installer - + Query Info Demander info - + Remove Supprimer - + Cancel Annuler @@ -389,52 +384,57 @@ p, li { white-space: pre-wrap; } Terminé - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Delete - + + Un-Hide + + + + Remove from View - + Pause Interrompre - + Resume Reprendre - + Delete Installed... - + Delete All... - + Remove Installed... Supprimer installé... - + Remove All... Supprimer tout... @@ -442,60 +442,65 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Êtes-vous certain? - + This will remove all finished downloads from this list and from disk. Ceci supprimera tous les téléchargements complétés de la liste et du disque. - + This will remove all installed downloads from this list and from disk. Ceci supprimera tous les téléchargements installés de la liste et du disque. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Installer - + Query Info Demander info - + Delete - + + Un-Hide + + + + Remove from View - + Remove Supprimer - + Cancel Annuler @@ -510,32 +515,32 @@ p, li { white-space: pre-wrap; } - + Pause Interrompre - + Resume Reprendre - + Delete Installed... - + Delete All... - + Remove Installed... Supprimer installé... - + Remove All... Supprimer tout... @@ -543,73 +548,83 @@ p, li { white-space: pre-wrap; } DownloadManager - + failed to rename "%1" to "%2" - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + failed to download %1: could not open output file: %2 impossible de télécharger %1: impossible d'écrire le fichier %2 - + + Wrong Game + + + + + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". + + + + failed to delete %1 impossible de supprimer %1 - + failed to delete meta file for %1 impossible de supprimer le méta fichier pour %1 - - - - - - + + + + + + invalid index %1 index invalide %1 - + Information updated Information mise à jour - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Aucun fichier correspondant trouvé sur Nexus! Peut-être ce fichier n'est-il plus disponible ou a été renommé? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Aucun fichier sur Nexus ne correspond au nom du fichier sélectionné. Veuillez s'il-vous-plaît sélectionner le bon manuellement. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Impossible de demander l'info du fichier sur Nexus: %1 - + Download failed: %1 (%2) Téléchargement échoué: %1 (%2) @@ -618,27 +633,30 @@ p, li { white-space: pre-wrap; } impossible de supprimer le fichier - - - - - - + + - - - - + + + + + + + + + + + invalid index index invalide - + Please enter the nexus mod id Veuillez entre l'ID Nexus du mod - + Mod ID: ID du mod: @@ -655,7 +673,7 @@ p, li { white-space: pre-wrap; } Téléchargement échoué - + failed to re-open %1 impossible d'ouvrir à nouveau %1 @@ -1053,12 +1071,12 @@ p, li { white-space: pre-wrap; } mo_archive.dll non chargé: "%1" - + Password required Mot de passe requis - + Password Mot de passe @@ -1072,13 +1090,13 @@ p, li { white-space: pre-wrap; } - - + + Extracting files Extraction des fichiers - + File format "%1" not supported Format de fichier "%1" non supporté @@ -1095,82 +1113,82 @@ p, li { white-space: pre-wrap; } Confirmer - + archive.dll not loaded: "%1" - + failed to create backup - + Mod Name - + Name Nom - + Invalid name - + The name you entered is invalid, please enter a different one. - + None of the available installer plugins were able to handle that archive - + no error aucune erreur - + 7z.dll not found 7z.dll introuvable - + 7z.dll isn't valid 7z.dll invalide - + archive not found archive introuvable - + failed to open archive impossible d'ouvrir l'archive - + unsupported archive type type d'archive non supporté - + internal library error erreur de bibliothèque interne - + archive invalid archive invalide - + unknown archive error erreur d'archive inconnue @@ -1209,12 +1227,12 @@ p, li { white-space: pre-wrap; } MOApplication - + an error occured: %1 - + an error occured @@ -1290,7 +1308,7 @@ p, li { white-space: pre-wrap; } - + Namefilter @@ -1416,67 +1434,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Fichier - - - Mod - Mod + + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + + Mod + Mod - + Data DATA - + refresh data-directory overview Actualiser la vue d'ensemble du dossier DATA - + Refresh the overview. This may take a moment. Actualiser la vue d'ensemble. Ceci peut demander un moment. - - - + + + Refresh Actualiser - + This is an overview of your data directory as visible to the game (and tools). Ceci est une vue d'ensemble du dossier DATA tel qu'il apparaît pour le jeu (et les outils). - - + + Filter the above list so that only conflicts are displayed. Filtrer la liste ci-dessus pour afficher seulement les conflits. - + Show only conflicts Afficher seulement les conflits - + Saves Sauvegardes - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1493,155 +1510,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Si vous cliquez &quot;Réparer Mods...&quot; dans le menu contextuel, MO tentera d'activer tous les mods, ESPs et ESMs nécessaires pour résoudre le problème. Rien ne sera désactivé!</span></p></body></html> - + Downloads Téléchargements - + This is a list of mods you downloaded from Nexus. Double click one to install it. Ceci est une liste de mods que vous avez téléchargé de Nexus. Double-cliquez en un pour l'installer. - + Compact - + + Show Hidden + + + + Tool Bar Barre d'outils - + Install Mod Installer mod - + Install &Mod Installer &mod - + Install a new mod from an archive Installer un nouveau mod à partir d'une archive - + Ctrl+M Ctrl+M - + Profiles Profils - + &Profiles &Profils - + Configure Profiles Configurer les profils - + Ctrl+P Ctrl+P - + Executables Programmes - + &Executables Programm&es - + Configure the executables that can be started through Mod Organizer Configure les programmes pouvant être lancés via Mod Organizer - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+H - + Settings Réglages - + &Settings Réglage&s - + Configure settings and workarounds Configurer les réglages et solutions de rechange - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Effectuer une recherche sur Nexus pour plus de mods - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Mod Organizer est à jour - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1649,445 +1671,502 @@ Right now this has very limited functionality - - + + Help Aide - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 impossible d'enregistrer l'ordre de chargement: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Nom - + Please enter a name for the new profile Veuillez inscrire un nom pour le nouveau profil - + failed to create profile: %1 impossible de créer le profil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Téléchargements en cours - + There are still downloads in progress, do you really want to quit? Il encore des téléchargements en cours, voulez-vous vraiment quitter? - + failed to read savegame: %1 impossible de lire la sauvegarde: %1 - + Plugin "%1" failed: %2 - + + Plugin error + + + + + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? +(Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) + + + + Failed to start "%1" - + Waiting Attente - + Please press OK once you're logged into steam. Veuillez cliquer OK une fois connecté à steam. - + "%1" not found "%1" introuvable - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Aucun conflit - + <Edit...> <Modifier...> - + + Failed to refresh list of esps: %s + + + + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Installation réussie - - + + Configure Mod Configurer mod - - + + This mod contains ini tweaks. Do you want to configure them now? Ce mod contient des ajustement pour les fichiers ini. Désirez-vous les configurer maintenant? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - - - Description missing + + Too many esps and esms enabled - - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> + + + Description missing - + Choose Mod Choisir mod - + Mod Archive Archive de mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Téléchargement commencé - + failed to update mod list: %1 impossible de mettre à jour la liste de mods: %1 - + failed to spawn notepad.exe: %1 impossible de lancer notepad.exe: %1 - + failed to open %1 impossible d'ouvrir %1 - + failed to change origin name: %1 impossible de changer le nom d'origine: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + + Continue? + + + + + The versioning scheme decides which version is considered newer than another. +This function will guess the versioning scheme under the assumption that the installed version is outdated. + + + + + Sorry + + + + + I don't know a versioning scheme where %1 is newer than %2. + + + + <All> <Tous> - + <Checked> <Cochés> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: + + + + + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + + Failed to move "%1" from mod "%2" to "%3": %4 + + + + <Unchecked> <Décochés> - + <Update> <Rafraichir> - + <No category> - + <Conflicted> - + + <Not Endorsed> + + + + failed to rename mod: %1 impossible de renommer le mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Confirmer - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 Échec de lecture %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2100,371 +2179,391 @@ Please enter a name: Choisir priorité - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Installer mod... - + Enable all visible Activer tous les mods visibles - + Disable all visible Désactiver tous les mods visibles - + Check all for update Vérifier toutes les mises à jour - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Set Category Assigner catégorie - + Primary Category - + + Change versioning scheme + + + + + Un-ignore update + + + + + Ignore update + + + + Rename Mod... Renommer mod... - + Remove Mod... Supprimer mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... Réparer mods... - - + + failed to remove %1 Impossible de supprimer %1 - - + + failed to create %1 impossible de créer %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 impossible d'écrire dans le fichier %1 - + %1 written %1 écrit - + Select binary - + Binary Programme - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available Mise à jour disponible - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... Écriture du fichier... - + Do you want to endorse Mod Organizer on %1 now? - + + Remove + Supprimer + + + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Erreur - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2494,7 +2593,7 @@ Please enter a name: ModInfoBackup - + This is the backup of a mod @@ -2537,57 +2636,55 @@ Please enter a name: Ceci est une liste des fichiers .ini présents dans le mod. Ils sont généralement utilisés pour configurer le comportement du mod lorsqu'il y a des paramètres configurables. - + Save changes to the file. Enregistre les changements au fichier. - + Save changes to the file. This overwrites the original. There is no automatic backup! Enregistrer les changements au fichier. Ceci écrase l'original. Il n'y a pas de copie de sauvegarde automatique! - + Save Enregistrer - + Images Images - + Images located in the mod. Images présentes dans le mod. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ceci est la liste de toutes les images (.jpg et .png) présentes dans le dossier du mod, telles captures d'écran et autres. Cliquez-en une pour une vue aggrandie.</span></p></body></html> - - + + Optional ESPs ESPs optionnels - + List of esps and esms that can not be loaded by the game. Liste des esps et esms ne pouvant pas être chargés par le jeu. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2596,7 +2693,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -2606,103 +2703,116 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">La plupart des mods ne contenant pas d'esps optionnels, il est très probable que cette liste soit vide.</span></p></body></html> - + + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. + + + + + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. + + + + Make the selected mod in the lower list unavailable. Rendre le mod sélectionné dans la liste du bas non-disponible. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. L'ESP sélectionné (dans la liste inférieure) sera poussé dans un sous-dossier du mod et deviendra ainsi "invisible" pour le jeu. Il ne pourra alors plus être activé. - + Move a file to the data directory. Déplacer un fichier vers le dossier DATA. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Ceci déplace un ESP vers le répertoire DATA afin qu'il puisse être activé dans la fenêtre principale. Veuillez noter que l'ESP devient simplement "disponible", il ne sera pas nécessairement chargé. Celà doit être configuré dans la fenêtre principale de MO. - + ESPs in the data directory and thus visible to the game. ESPs dans le dossier DATA et donc visibles par le jeu. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Ce sont les mods qui se trouvent dans le répertoire DATA (virtuel) de votre jeu et qu'il sera donc possible de sélectionner dans la fenêtre principale. - + Available ESPs ESPs disponibles - + Conflicts - + The following conflicted files are provided by this mod - - + + File Fichier - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Catégories - + Primary Category - + Nexus Info Info de Nexus - + Mod ID ID du mod - + Mod ID for this mod on Nexus. ID de ce mod sur Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2720,7 +2830,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ID de ce mod sur Nexus. Rempli automatiquement si vous téléchargez et installez un mod à partir de MO. Sinon, vous pouvez l'inscrire manuellement. Pour connaître le bon ID, trouvez le mod sur Nexus. L'URL ressemblera à ceci: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" color:#000000;">. Dans cet example, 1334 est l'ID que vous cherchez. En passant: Ce lien est celui de Mod Organizer sur le Nexus. Pourquoi ne pas le visiter et lui donner votre aval?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2733,27 +2843,27 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Version du mod installée La bulle contient la version courrante disponible sur Nexus. La version installé n'est réglée que si vous installez le mod avec MO.</span></p></body></html> - + Version Version - + Refresh Actualiser - + Refresh all information from Nexus. - + Description Description - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2779,20 +2889,21 @@ p, li { white-space: pre-wrap; } Type + Name - Nom + Nom Size (kB) Taille (kB) - + Endorse - + Notes @@ -2805,17 +2916,17 @@ p, li { white-space: pre-wrap; } Avez-vous donné votre aval à ce mod? - + Filetree Arborescence - + A directory view of this mod Une vue du dossier de ce mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2830,17 +2941,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Les changements sont immédiatement appliqués sur le disque, alors</span><span style=" font-size:8pt; font-weight:600;"> soyez prudent</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next - + Close Fermer @@ -2866,34 +2977,34 @@ p, li { white-space: pre-wrap; } &Nouveau dossier - - + + Save changes? Enregistrer les changements? - + File Exists Un fichier du même nom existe - + A file with that name exists, please enter a new one Un fichier ainsi nommé existe déjà, veuillez entrer un nouveau nom - + failed to move file impossible de déplacer le fchier - + failed to create directory "optional" Impossible de créer le dossier "optional" - - + + Info requested, please wait Info demandée, veuillez patienter @@ -2903,17 +3014,17 @@ p, li { white-space: pre-wrap; } (description incomplète, veuillez vérifier sur Nexus) - + Current Version: %1 Version courante: %1 - + No update available Aucune mise-à-jour disponible - + Main Principal @@ -2928,97 +3039,123 @@ p, li { white-space: pre-wrap; } - - + + Save changes to "%1"? - + Update Mise-à-jour - + Optional Optionnel - + Old Ancien - + Misc Divers - + Unknown Inconnu - + (description incomplete, please visit nexus) - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - - + + failed to rename %1 to %2 - + There already is a visible version of this file. Replace it? - + Un-Hide - + Hide + + + Please enter a name + + + + + + Error + Erreur + + + + Invalid name. Must be a valid file name + + + + + A tweak by that name exists + + + + + Create Tweak + + request failed la requête à échouée - + <a href="%1">Visit on Nexus</a> <a href="%1">Visiter sur Nexus</a> - - + + Confirm Confirmer @@ -3031,28 +3168,28 @@ p, li { white-space: pre-wrap; } Téléchargement commencé - + Failed to delete %1 impossible d'effacer %1 - + Are sure you want to delete "%1"? Voulez-vous vraiment supprimer "%1"? - + Are sure you want to delete the selected files? Voulez-vous vraiment supprimer les fichiers sélectionnés? - - + + New Folder Nouveau dossier - + Failed to create "%1" Impossible de créer "%1" @@ -3060,12 +3197,7 @@ p, li { white-space: pre-wrap; } ModInfoOverwrite - - Overwrite - - - - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) @@ -3073,17 +3205,17 @@ p, li { white-space: pre-wrap; } ModInfoRegular - + failed to write %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 ne contient ni esp/esm, ni dossier d'éléments de jeu (textures, meshes, interface, ...) - + Categories: <br> @@ -3103,7 +3235,7 @@ p, li { white-space: pre-wrap; } max - + installed version: %1, newest version: %2 Version installée: %1, dernière version: %2 @@ -3111,11 +3243,6 @@ p, li { white-space: pre-wrap; } %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 ne contient ni esp/esm, ni dossier d'éléments de jeu (textures, meshes, interface, ...) - - - Overwrite - - This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit) @@ -3157,47 +3284,52 @@ p, li { white-space: pre-wrap; } - + invalid - + + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". + + + + Categories: <br> - + Invalid name - + Mod Name - + Installation - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. - + Time this mod was installed @@ -3210,63 +3342,63 @@ p, li { white-space: pre-wrap; } Les noms de vos mods - + Version Version - + Version of the mod (if available) Version du mod (si disponible) - + Priority Priorité - + drag&drop failed: %1 - + Flags - + Category - + Nexus ID - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Priorité d'installation de vos mods. Plus elle est ellevée, plus le mod est "important" et écrasera les fichiers des mods de priorité inférieure. - + Confirm Confirmer - + Are you sure you want to remove "%1"? Voulez-vous vraiment supprimer "%1"? @@ -3291,12 +3423,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites - + not implemented @@ -3305,11 +3437,16 @@ p, li { white-space: pre-wrap; } NXMAccessManager + Logging into Nexus + + + + timeout - + Please check your password @@ -3371,17 +3508,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response - + invalid response @@ -4067,34 +4204,34 @@ p, li { white-space: pre-wrap; } &Nouveau dossier - + Failed to delete "%1" - - + + Confirm Confirmer - + Are sure you want to delete "%1"? Voulez-vous vraiment supprimer "%1"? - + Are sure you want to delete the selected files? Voulez-vous vraiment supprimer les fichiers sélectionnés? - - + + New Folder Nouveau dossier - + Failed to create "%1" Impossible de créer "%1" @@ -4102,70 +4239,85 @@ p, li { white-space: pre-wrap; } PluginList - + Mod Index - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + + failed to update esp info for file %1 (source id: %2), error: %3 + + + + esp not found: %1 ESP introuvable: %1 - - + + Confirm Confirmer - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - + + Missing Masters + + + + + Enabled Masters + + + + failed to restore load order for %1 @@ -4178,17 +4330,17 @@ p, li { white-space: pre-wrap; } max - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name Nom @@ -4197,7 +4349,7 @@ p, li { white-space: pre-wrap; } Les noms de vos mods - + Priority Priorité @@ -4226,22 +4378,28 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - fix - + + Close + Fermer - + + Fix - + No guided fix @@ -4253,72 +4411,82 @@ p, li { white-space: pre-wrap; } impossible d'appliquer les ajustements aux fichiers ini - + invalid profile name %1 - + failed to create %1 impossible de créer %1 - + + failed to open temporary file + + + + failed to open "%1" for writing - + + failed to write mod list: %1 + + + + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 priorité invalide %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) - - - - - + + + + + invalid index %1 index invalide %1 @@ -4534,37 +4702,61 @@ p, li { white-space: pre-wrap; } Veuillez inscrire un nom pour le nouveau profil - + failed to copy profile: %1 impossible de copier le profil: %1 - + + Invalid name + + + + + Invalid profile name + + + + Confirm Confirmer - + + Are you sure you want to remove this profile (including local savegames if any)? + + + + + Profile broken + + + + + This profile you're about to delete seems to be broken or the path is invalid. I'm about to delete the following folder: "%1". Proceed? + + + Are you sure you want to remove this profile? - Voulez-vous vraiment supprimer ce profil? + Voulez-vous vraiment supprimer ce profil? - + Rename Profile - + New Name - + failed to change archive invalidation state: %1 impossible de changer l'état d'invalidation des archives: %1 - + failed to determine if invalidation is active: %1 impossible de déterminer si l'invalidation des archives est activée: %1 @@ -4572,20 +4764,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories Impossible d'enregistrer les catégories personalisées - - - - + + + + invalid index %1 index invalide %1 - + invalid category id %1 @@ -4601,7 +4793,7 @@ p, li { white-space: pre-wrap; } impossible de détermine le nom d'usager - + invalid 7-zip32.dll: %1 7-zip32.dll invalide: %1 @@ -4671,12 +4863,12 @@ p, li { white-space: pre-wrap; } Impossible de mettre en place le chargement via DLL par procuration - + "%1" is missing "%1" manquant - + Permissions required Permissions requises @@ -4685,86 +4877,91 @@ p, li { white-space: pre-wrap; } Le compte d'usager actuel n'a pas les accès requis pour lancer Mod Organizer. Les changements nécessaires peuvent être effectués automatiquement (le dossier de MO sera rendu inscriptible pour le compte d'usager actuel). Vous devrez accepter que "mo_helper.exe" soit lancé avec les permissions administrateur. - - + + Woops - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Une copie du Mod Organizer tourne déjà - + No game identified in "%1". The directory is required to contain the game binary and its launcher. - - + + Please select the game to manage Veuillez choisir le jeu à gérer + + + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) + + "%1" not found "%1" introuvable - + Please use "Help" from the toolbar to get usage instructions to all elements Veuillez utiliser l'aide dans la barre d'outil pour obtenir des instructions à propos de tous les éléments - - + + <Manage...> <Gérer...> - + failed to parse profile %1: %2 impossible d'analyser le profil %1: %2 - - + + failed to find "%1" impossible de trouver "%1" - + failed to access %1 impossible d'accéder à %1 - + failed to set file time %1 impossible de changer la date du fichier %1 - + failed to create %1 impossible de créer %1 @@ -4803,12 +5000,12 @@ p, li { white-space: pre-wrap; } Français - + Script Extender Extenseur de script - + Proxy DLL DLL par procuration @@ -4946,14 +5143,6 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Annuler - - QuestionBoxMemory - - - Remember selection - - - SaveGameInfoWidget @@ -5054,9 +5243,9 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - - - + + + Update Mettre à jour @@ -5066,7 +5255,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Une mise à jour est disponible (dernière version: %1), voulez-vous l'installer? - + Download in progress Téléchargement en cours @@ -5080,57 +5269,57 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + Download failed: %1 - + Failed to install update: %1 Impossible d'installer la mise à jour %1 - + failed to open archive "%1": %2 impossible d'ouvrir l'archive "%1": %2 - + failed to move outdated files: %1. Please update manually. - + Update installed, Mod Organizer will now be restarted. Mise à jour complétée, Mod Organizer va maintenant redémarrer. - + Error Erreur - + Failed to parse response. Please report this as a bug and include the file mo_interface.log. - + No incremental update available for this version, the complete package needs to be downloaded (%1 kB) - + no file for update found. Please update manually. - + No download server available. Please try again later. - + Failed to retrieve update information: %1 @@ -5146,26 +5335,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - setting for invalid plugin "%1" requested - + Administrative rights required to change this. + Les droits administrateur sont requis pour changer ceci. - - invalid setting "%1" requested for plugin "%2" + + + attempt to store setting for unknown plugin "%1" - Administrative rights required to change this. - Les droits administrateur sont requis pour changer ceci. - - - + Confirm Confirmer - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -5358,7 +5543,12 @@ p, li { white-space: pre-wrap; } - + + Blacklisted Plugins (use <del> to remove): + + + + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5422,47 +5612,47 @@ p, li { white-space: pre-wrap; } - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds Solutions alternatives - + Steam App ID ID d'application Steam - + The Steam AppID for your game L'AppID Steam de votre jeu - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -5489,12 +5679,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 est l'App ID que vous cherchez.</span></p></body></html> - + Load Mechanism Chargement MO - + Select loading mechanism. See help for details. Choisir la méthode de chargement. Voir l'aide pour les détails. @@ -5519,17 +5709,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">DLL par procuration</span><span style=" font-size:8pt;"> Dans ce mode, MO remplace l'un des DLL du jeu par une version qui charge MO (ainsi que le DLL orginal, bien sur). Ceci fonctionnera SEULEMENT avec les jeux STEAM et n'a été testé qu'avec Skyrim. N'utilisez cette méthode que si les autres ne fonctionnent pas.</span></p></body></html> - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -5538,53 +5728,53 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + Enforces that inactive ESPs and ESMs are never loaded. Garantie que les ESPs et ESMs inactifs ne soient jamais chargés. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. Il semble que les jeux chargent parfois des fichiers ESP ou ESM même s'ils ne sont pas activés. Je n'en connais pas encore les circonstances, mais les rapports des usagers impliquent que dans certains cas, ce comportement est indésirable. Si vous cochez ceci, les ESPs et ESMs qui ne sotn pas cochés seront invisible pour le jeu et ne pourront pas être chargés. - + Hide inactive ESPs/ESMs Cacher les ESPs et ESMs inactifs - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Pour Skyrim, ceci peut être utilisé au lieu de l'invalidation des archives. Ça devrait rendre l'invalidation redondante pour tous les profils. Pour les autres jeux, ceci ne suffit pas à remplacer l'invalidation des archives! - + Back-date BSAs Antidater les BSAs - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -5593,27 +5783,27 @@ Pour les autres jeux, ceci ne suffit pas à remplacer l'invalidation des ar Ici se trouvent des solutions alternatives à certains problèmes rencontrés avec Mod Organizer. Elles ne sont normalement pas nécessaires. Soyez sûr d'avoir lu le texte d'aide avant de modifier quoi que ce soit sur cette page. - + Select download directory - + Select mod directory - + Select cache directory - + Confirm? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? diff --git a/src/organizer_ru.qm b/src/organizer_ru.qm index 5921c2dc..bd861ebb 100644 Binary files a/src/organizer_ru.qm and b/src/organizer_ru.qm differ diff --git a/src/organizer_ru.ts b/src/organizer_ru.ts index 9b7b8101..d377c1e0 100644 --- a/src/organizer_ru.ts +++ b/src/organizer_ru.ts @@ -1,3 +1,4 @@ + @@ -14,22 +15,22 @@ - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок ESP и ESM, которые были активны, когда Ñейв был Ñоздан..</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ESP, правый Ñтолбец Ñодержит мод (или моды), которые могут быть включены, чтобы неактивные ESP / ESM Ñтали активными.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы нажмете ОК, вÑе моды, выбранные в правой колонке будут активированы..</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок ESP и ESM, которые были активны, когда Ñейв был Ñоздан..</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ESP, правый Ñтолбец Ñодержит мод (или моды), которые могут быть включены, чтобы неактивные ESP / ESM Ñтали активными.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы нажмете ОК, вÑе моды, выбранные в правой колонке будут активированы..</span></p></body></html> @@ -72,9 +73,9 @@ p, li { white-space: pre-wrap; } Components of this package. -If there is a component called "00 Core" it is usually required. Options are ordered by priority as set up by the author. +If there is a component called "00 Core" it is usually required. Options are ordered by priority as set up by the author. Компоненты Ñтого пакета. -ЕÑли еÑть компонент, называемый "00 Core", то Ñто обычно необходимо. Опции упорÑдочены по приоритету, уÑтановленному автором. +ЕÑли еÑть компонент, называемый "00 Core", то Ñто обычно необходимо. Опции упорÑдочены по приоритету, уÑтановленному автором. @@ -154,20 +155,20 @@ If there is a component called "00 Core" it is usually required. Options are ord - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can match one or multiple nexus categories to a internal ID. Whenever you download a mod from a Nexus Page, Mod Organizer will try to resolve the category defined on the Nexus to one available in MO.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">To find out a category id used by the nexus, visit the categories list of the nexus page and hover over the links there.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can match one or multiple nexus categories to a internal ID. Whenever you download a mod from a Nexus Page, Mod Organizer will try to resolve the category defined on the Nexus to one available in MO.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">To find out a category id used by the nexus, visit the categories list of the nexus page and hover over the links there.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете задать одну или неÑколько категорий Nexus внутреннему ID. Каждый раз, когда вы загружаете мод Ñо Ñтраницы Nexus, МО поÑтараетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки задать моду категорию, приÑвоенную ему на Nexus.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Чтобы узнать ID категории, иÑпользуемой на Nexus, перейдите в ÑпиÑок категорий Nexus и наведите курÑор мыши на нужную ÑÑылку.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете задать одну или неÑколько категорий Nexus внутреннему ID. Каждый раз, когда вы загружаете мод Ñо Ñтраницы Nexus, МО поÑтараетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки задать моду категорию, приÑвоенную ему на Nexus.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Чтобы узнать ID категории, иÑпользуемой на Nexus, перейдите в ÑпиÑок категорий Nexus и наведите курÑор мыши на нужную ÑÑылку.</span></p></body></html> @@ -199,7 +200,7 @@ p, li { white-space: pre-wrap; } - This feature may not work unless you're logged in with Nexus + This feature may not work unless you're logged in with Nexus Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ не работать, еÑли вход выполнен Ñ Nexus @@ -249,41 +250,46 @@ p, li { white-space: pre-wrap; } Выполнено - - Information missing, please select "Query Info" from the context menu to re-retrieve. - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует, пожалуйÑта, выберите пункт "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" из контекÑтного меню. + + Information missing, please select "Query Info" from the context menu to re-retrieve. + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует, пожалуйÑта, выберите пункт "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" из контекÑтного меню. DownloadListWidget - + Placeholder Заполнитель - - + + KB + + + + + Done - Double Click to install Готово - двойной щелчок Ð´Ð»Ñ ÑƒÑтановки. - + Paused - Double Click to resume Пауза - двойной клик Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ - + Installed - Double Click to re-install УÑтановлено - двойной клик Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑƒÑтановки - + Uninstalled - Double Click to re-install Удалено - двойной клик Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑƒÑтановки @@ -292,12 +298,12 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompact - + Placeholder Заполнитель - + Done Готово @@ -305,120 +311,125 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - + Paused ПриоÑтановлено - + Fetching Info 1 Извлечение информации 1 - + Fetching Info 2 Извлечение информации 2 - + Installed УÑтановлено - + Uninstalled Удалено - + Done Готово - - - - + + + + Are you sure? Ð’Ñ‹ уверены? - + This will remove all finished downloads from this list and from disk. Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will remove all installed downloads from this list and from disk. Это удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will permanently remove all finished downloads from this list (but NOT from disk). Это полноÑтью удалит вÑе завершенные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + This will permanently remove all installed downloads from this list (but NOT from disk). Это полноÑтью удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + Install УÑтановка - + Query Info Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ - + Delete Удалить - + + Un-Hide + Показать + + + Remove from View Скрыть от проÑмотра - + Cancel Отмена - + Pause Пауза - + Remove Удаление - + Resume Возобновить - + Delete Installed... Удалить уÑтановленное... - + Delete All... Удалить вÑе... - + Remove Installed... Отменить уÑтановку - + Remove All... Удалить вÑе @@ -426,100 +437,105 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - + Fetching Info 1 Извлечение информации 1 - + Fetching Info 2 Извлечение информации 2 - - - - + + + + Are you sure? Ð’Ñ‹ уверены? - + This will remove all finished downloads from this list and from disk. Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will remove all installed downloads from this list and from disk. Это удалит вÑе уÑтановленные загрузки из Ñтого лиÑта и Ñ Ð´Ð¸Ñка. - + This will remove all finished downloads from this list (but NOT from disk). Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + This will remove all installed downloads from this list (but NOT from disk). Это удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + Install УÑтановить - + Query Info Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ - + Delete Удалить - + + Un-Hide + Показать + + + Remove from View Скрыть от проÑмотра - + Cancel Отмена - + Pause Пауза - + Remove Удалить - + Resume Возобновить - + Delete Installed... Удалить уÑтановленное... - + Delete All... Удалить вÑе... - + Remove Installed... Удалить уÑтановленные - + Remove All... Удалить вÑе @@ -527,101 +543,116 @@ p, li { white-space: pre-wrap; } DownloadManager - - failed to rename "%1" to "%2" - не удалоÑÑŒ переименовать "%1" в "%2" + + failed to rename "%1" to "%2" + не удалоÑÑŒ переименовать "%1" в "%2" - + Download again? Скачать Ñнова - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем загружен. Ð’Ñ‹ хотите загрузить его Ñнова? У него будет другое имÑ. - + failed to download %1: could not open output file: %2 не удалоÑÑŒ загрузить %1: не удалоÑÑŒ открыть выходной файл: %2 - - - - - - - - - - + + Wrong Game + + + + + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". + + + + + + + + + + + + + + + + + invalid index неверный Ð¸Ð½Ð´ÐµÐºÑ - + failed to delete %1 не удалоÑÑŒ удалить %1 - + failed to delete meta file for %1 не удалоÑÑŒ удалить мета-файл %1 - - - - - + + + + + + invalid index %1 неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - + Please enter the nexus mod id ПожалуйÑта, введите ID мода на Nexus - + Mod ID: ID мода: - + Information updated Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð° - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Ðет ÑоответÑтвующих модов на Nexus! Возможно фал был удален или переименован? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Ðет ÑоответÑтвующих фалов на Nexus. Выберите файл вручную. - + No download server available. Please try again later. Сервер недоÑтупен. Попробуйте позже. - + Failed to request file info from nexus: %1 Ðе удалоÑÑŒ получить информацию о файле: %1 - + Download failed: %1 (%2) Загрузка не удалаÑÑŒ: %1 (%2) - + failed to re-open %1 не удалоÑÑŒ повторно открыть %1 @@ -797,8 +828,8 @@ Right now the only case I know of where this needs to be overwritten is for the - Really remove "%1" from executables? - ДейÑтвительно удалить "%1" иÑполнÑемых? + Really remove "%1" from executables? + ДейÑтвительно удалить "%1" иÑполнÑемых? @@ -877,8 +908,8 @@ Right now the only case I know of where this needs to be overwritten is for the - <a href="#">Link</a> - <a href="#">СÑылка</a> + <a href="#">Link</a> + <a href="#">СÑылка</a> @@ -925,7 +956,7 @@ Right now the only case I know of where this needs to be overwritten is for the - Pick a name for the mod. This is also used as a directory name, so please don't use characters that are illegal in file names. + Pick a name for the mod. This is also used as a directory name, so please don't use characters that are illegal in file names. Выбери Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¼Ð¾Ð´Ð°. Это также иÑпользуетÑÑ Ð² качеÑтве имени каталога, поÑтому, пожалуйÑта, не иÑпользуйте Ñимволы, которые запрещены в именах файлов. @@ -940,16 +971,16 @@ Right now the only case I know of where this needs to be overwritten is for the - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This displays the content of the archive. &lt;data&gt; represents the base directory which will map to the game's data directory. You can change the base directory via the right-click context menu and you can move around files via drag&amp;drop</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This displays the content of the archive. &lt;data&gt; represents the base directory which will map to the game's data directory. You can change the base directory via the right-click context menu and you can move around files via drag&amp;drop</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Отображает Ñодержимое архива. &lt;data&gt; предÑтавлÑет базовый каталог, данные в котором будут ÑопоÑтавлены Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ каталога игры. Ð’Ñ‹ можете изменить базовый каталог нажатием правой кнопки мыши, через контекÑтное меню, а также можете перемещатьÑÑ Ð¿Ð¾ файлам Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ drag&amp;drop</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Отображает Ñодержимое архива. &lt;data&gt; предÑтавлÑет базовый каталог, данные в котором будут ÑопоÑтавлены Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ каталога игры. Ð’Ñ‹ можете изменить базовый каталог нажатием правой кнопки мыши, через контекÑтное меню, а также можете перемещатьÑÑ Ð¿Ð¾ файлам Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ drag&amp;drop</span></p></body></html> @@ -970,104 +1001,104 @@ p, li { white-space: pre-wrap; } InstallationManager - - archive.dll not loaded: "%1" - archive.dll не загружен: "%1" + + archive.dll not loaded: "%1" + archive.dll не загружен: "%1" - + Password required ТребуетÑÑ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ - + Password Пароль - - - + + + Extracting files Извлечение файлов - + failed to create backup не удалоÑÑŒ Ñоздать резервную копию - + Mod Name Ð˜Ð¼Ñ Ð¼Ð¾Ð´Ð° - + Name Ð˜Ð¼Ñ - + Invalid name ÐедопуÑтимое Ð¸Ð¼Ñ - + The name you entered is invalid, please enter a different one. Введенное вами Ð¸Ð¼Ñ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑтимо, пожалуйÑта введите другое. - - File format "%1" not supported - Формат файла "%1" не поддерживаетÑÑ + + File format "%1" not supported + Формат файла "%1" не поддерживаетÑÑ - + None of the available installer plugins were able to handle that archive Ðе один из доÑтупных плагинов-уÑтановщиков не Ñмог проÑмотреть Ñтот архив - + no error ошибки отÑутÑтвуют - + 7z.dll not found 7z.dll не найден - - 7z.dll isn't valid + + 7z.dll isn't valid 7z.dll поврежден - + archive not found архив не найден - + failed to open archive не удалоÑÑŒ открыть архив - + unsupported archive type не поддерживаемый тип архива - + internal library error внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° библиотеки - + archive invalid архив поврежден - + unknown archive error неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° архива @@ -1081,7 +1112,7 @@ p, li { white-space: pre-wrap; } - This dialog should disappear automatically if the application/game is done. Click unlock if it didn't. + This dialog should disappear automatically if the application/game is done. Click unlock if it didn't. Этот диалог должен закрытьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки еÑли игра/приложение запущены. Ðажмите разблокировать, еÑли Ñтого не произошло. @@ -1106,12 +1137,12 @@ p, li { white-space: pre-wrap; } MOApplication - + an error occured: %1 произошла ошибка: %1 - + an error occured произошла ошибка @@ -1136,18 +1167,18 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Create profiles here. Each profile contains its own list of active mods and esps. This way you can quickly switch between setups for different play throughs.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Please note that right now your esp load order is not kept seperate for different profiles.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Create profiles here. Each profile contains its own list of active mods and esps. This way you can quickly switch between setups for different play throughs.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Please note that right now your esp load order is not kept seperate for different profiles.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Создать профили здеÑÑŒ. Каждый профиль включает Ñвой ÑобÑтвенный ÑпиÑок активных модов и esp. Таким образом, вы можете быÑтро переключатьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ уÑтановками Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… прохождений игры.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Обратите внимание, что порÑдок загрузки esp одинаков Ð´Ð»Ñ Ð²Ñех профилей.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Создать профили здеÑÑŒ. Каждый профиль включает Ñвой ÑобÑтвенный ÑпиÑок активных модов и esp. Таким образом, вы можете быÑтро переключатьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ уÑтановками Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… прохождений игры.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Обратите внимание, что порÑдок загрузки esp одинаков Ð´Ð»Ñ Ð²Ñех профилей.</span></p></body></html> @@ -1166,7 +1197,7 @@ p, li { white-space: pre-wrap; } - This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. Это ÑпиÑок уÑтановленных модов. ИÑпользуйте флажки, Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ/Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð¾Ð² и перетаÑкивание модов, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ… порÑдка уÑтановки. @@ -1187,7 +1218,7 @@ p, li { white-space: pre-wrap; } - + Namefilter Фильтр по имени @@ -1198,18 +1229,18 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Choose the program to run. Once you start using ModOrganizer, you should always run your game and tools from here or through shortcuts created here, otherwise mods installed through MO will not be visible.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can add new Tools to this list, but I can't promise tools I haven't tested will work.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Choose the program to run. Once you start using ModOrganizer, you should always run your game and tools from here or through shortcuts created here, otherwise mods installed through MO will not be visible.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can add new Tools to this list, but I can't promise tools I haven't tested will work.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Выберете программу Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка. Как только вы начинаете иÑпользовать ModOrganizer, вы вÑегда должны запуÑкать игры и инÑтрументы из него или через Ñозданные в нем Ñрлыки, в противном Ñлучае, уÑтановленные через MO моды отображатьÑÑ Ð½Ðµ будут.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете добавить новые инÑтрументы в Ñтот ÑпиÑок, но работоÑпоÑобноÑть их вÑех не гарантированна.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Выберете программу Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка. Как только вы начинаете иÑпользовать ModOrganizer, вы вÑегда должны запуÑкать игры и инÑтрументы из него или через Ñозданные в нем Ñрлыки, в противном Ñлучае, уÑтановленные через MO моды отображатьÑÑ Ð½Ðµ будут.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете добавить новые инÑтрументы в Ñтот ÑпиÑок, но работоÑпоÑобноÑть их вÑех не гарантированна.</span></p></body></html> @@ -1218,16 +1249,16 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Run the selected program with ModOrganizer enabled.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Run the selected program with ModOrganizer enabled.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЗапуÑтить выбранную программу Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ ModOrganizer.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЗапуÑтить выбранную программу Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ ModOrganizer.</span></p></body></html> @@ -1241,16 +1272,16 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This creates a start menu shortcut that directly starts the selected program with the MO active.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This creates a start menu shortcut that directly starts the selected program with the MO active.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Создает Ñрлык в меню ПуÑк, который запуÑкает выбранную программу Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼ MO.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Создает Ñрлык в меню ПуÑк, который запуÑкает выбранную программу Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼ MO.</span></p></body></html> @@ -1264,16 +1295,16 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps and esms contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This list contains the esps and esms contained in the active mods. These require their own load order. Use drag&amp;drop to modify this load order. Please note that MO will only save the load order for mods that are active/checked.<br />There is a great tool named &quot;BOSS&quot; to automatically sort these files.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Этот ÑпиÑок Ñодержит esp и esm файлы активных модов. Ð”Ð»Ñ Ð½Ð¸Ñ… требуетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ð¹ порÑдок загрузки. ИÑпользуйте перетаÑкивание Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñдка загрузки. Обратите внимание, что MO Ñохранит порÑдок загрузки только Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸/проверенных модов.<br />СущеÑтвует Ð·Ð°Ð¼ÐµÑ‡Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð°, называющаÑÑÑ &quot;BOSS&quot; , ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки Ñортирует Ñти файлы.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Этот ÑпиÑок Ñодержит esp и esm файлы активных модов. Ð”Ð»Ñ Ð½Ð¸Ñ… требуетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ð¹ порÑдок загрузки. ИÑпользуйте перетаÑкивание Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñдка загрузки. Обратите внимание, что MO Ñохранит порÑдок загрузки только Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸/проверенных модов.<br />СущеÑтвует Ð·Ð°Ð¼ÐµÑ‡Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð°, называющаÑÑÑ &quot;BOSS&quot; , ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки Ñортирует Ñти файлы.</span></p></body></html> @@ -1282,242 +1313,250 @@ p, li { white-space: pre-wrap; } - BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! BSAs checked here are loaded in such a way that your installation order is obeyed properly. - BSA файлы - архивы (ÑопоÑтавимы Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ .zip) которые Ñодержат иÑпользуемые игрой данные (meshes, textures, ...). Как таковые они "конкурируют" Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ð¼Ð¸ файлами в папке Data, поверх которых загружены. + BSA файлы - архивы (ÑопоÑтавимы Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ .zip) которые Ñодержат иÑпользуемые игрой данные (meshes, textures, ...). Как таковые они "конкурируют" Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ð¼Ð¸ файлами в папке Data, поверх которых загружены. По умолчанию, BSA, у которых Ð¸Ð¼Ñ Ñовпадает Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ESP (Ñ‚.е. plugin.esp и plugin.bsa) будут автоматичеÑки загружены и будут иметь приоритет над вÑеми отдельными файлами и уÑтановленный вами Ñлева порÑдок уÑтановки будет проигнорирован! BSA, отмеченные здеÑÑŒ, загружаютÑÑ Ñ‚Ð°Ðº, чтобы порÑдок уÑтановки ÑоблюдалÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ‹Ð¼ образом. - - + + File Файл - - + + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + + + + Mod Мод - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - <html><head/><body><p>Помеченые архивы (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) вÑе еще загружаютÑÑ Ð² Skyrim, но <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">применÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¹</span></a> механизм: Отдельные файлы перезапиÑывают BSAs, вне завиÑимоÑти от приоритета мода/плагина.</p></body></html> + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + <html><head/><body><p>Помеченые архивы (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) вÑе еще загружаютÑÑ Ð² Skyrim, но <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">применÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¹</span></a> механизм: Отдельные файлы перезапиÑывают BSAs, вне завиÑимоÑти от приоритета мода/плагина.</p></body></html> - + Data Данные - + refresh data-directory overview обновить обзор каталога Data - + Refresh the overview. This may take a moment. Обновление обзора. Это может занÑть некоторое времÑ. - - - + + + Refresh Обновить - + This is an overview of your data directory as visible to the game (and tools). Это обзор вашего каталога данных так, как он будет видим игре (и инÑтрументам). - - + + Filter the above list so that only conflicts are displayed. Отфильтровать вышеприведенный ÑпиÑок так, чтобы отображалиÑÑŒ только конфликты. - + Show only conflicts Показать только конфликты - + Saves Ð¡Ð¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of all savegames for this game. Hover over a list entry to get detailed information about the save including a list of esps/esms that were used at the time this save was created but aren't active now.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you click &quot;Fix Mods...&quot; in the context menu, MO will try to activate all mods and esps to fix those missing esps. It will not disable anything!</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of all savegames for this game. Hover over a list entry to get detailed information about the save including a list of esps/esms that were used at the time this save was created but aren't active now.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you click &quot;Fix Mods...&quot; in the context menu, MO will try to activate all mods and esps to fix those missing esps. It will not disable anything!</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">СпиÑок вÑех Ñохранений игры. Ðаведите указатель мыши на Ñлемент ÑпиÑка, чтобы получить подробную информацию о Ñохранении, включающем ÑпиÑок esp/esm, которые иÑпользовалиÑÑŒ во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑохранениÑ, но не активны в наÑтоÑщее времÑ.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы выберете в контекÑтном меню пункт &quot;ИÑправить моды...&quot;, MO попытаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ вÑе моды и esp, чтобы иÑправить Ñти отÑутÑтвующие esp. Это ничего не отключит!</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">СпиÑок вÑех Ñохранений игры. Ðаведите указатель мыши на Ñлемент ÑпиÑка, чтобы получить подробную информацию о Ñохранении, включающем ÑпиÑок esp/esm, которые иÑпользовалиÑÑŒ во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑохранениÑ, но не активны в наÑтоÑщее времÑ.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы выберете в контекÑтном меню пункт &quot;ИÑправить моды...&quot;, MO попытаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ вÑе моды и esp, чтобы иÑправить Ñти отÑутÑтвующие esp. Это ничего не отключит!</span></p></body></html> - + Downloads Загрузки - + This is a list of mods you downloaded from Nexus. Double click one to install it. СпиÑок модов, загруженных Ñ Nexus. Двойной клик Ð´Ð»Ñ ÑƒÑтановки. - + Compact Упаковать - + + Show Hidden + + + + Tool Bar Панель инÑтрументов - + Install Mod УÑтановить мод - + Install &Mod УÑтановить &мод - + Install a new mod from an archive УÑтановить новый мод из архива - + Ctrl+M Ctrl+M - + Profiles Профили - + &Profiles &Профили - + Configure Profiles ÐаÑтройка профилей - + Ctrl+P Ctrl+P - + Executables Программы - + &Executables &Программы - + Configure the executables that can be started through Mod Organizer ÐаÑтройка программ, которые могут быть запущены через Mod Organizer - + Ctrl+E Ctrl+E - - + + Tools ИнÑтрументы - + &Tools &ИнÑтрументы - + Ctrl+I Ctrl+I - + Settings ÐаÑтройки - + &Settings &ÐаÑтройки - + Configure settings and workarounds ÐаÑтройка параметров и ÑпоÑобов обхода - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods ПоиÑк дополнительных модов на Nexus - + Ctrl+N Ctrl+N - - + + Update Обновление - + Mod Organizer is up-to-date Mod Organizer обновлен - - + + No Problems Проблем не обнаружено - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1528,810 +1567,897 @@ Right now this has very limited functionality ПрÑмо ÑÐµÐ¹Ñ‡Ð°Ñ Ñтот функционал Ñильно ограничен - - + + Help Справка - + Ctrl+H Ctrl+H - + Endorse MO Одобрить MO - - + + Endorse Mod Organizer Одобрить Mod Organizer - + Toolbar Панель инÑтрументов - + Desktop Рабочий Ñтол - + Start Menu Меню ПуÑк - + Problems Проблемы - + There are potential problems with your setup ЕÑть возможные проблемы Ñ Ð²Ð°ÑˆÐµÐ¹ уÑтановкой - + Everything seems to be in order КажетÑÑ Ð²ÑÑ‘ в порÑдке - + Help on UI Справка по интерфейÑу - + Documentation Wiki Wiki-Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ - + Report Issue Сообщить о проблеме - + Tutorials Уроки - - failed to save archives order, do you have write access to "%1"? - не удалоÑÑŒ Ñохранить порÑдок архивов, у Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ð´Ð¾Ñтуп на запиÑÑŒ к "%1"? + + failed to save archives order, do you have write access to "%1"? + не удалоÑÑŒ Ñохранить порÑдок архивов, у Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ð´Ð¾Ñтуп на запиÑÑŒ к "%1"? - + failed to save load order: %1 не удалоÑÑŒ Ñохранить порÑдок загрузки: %1 - + Name Ð˜Ð¼Ñ - + Please enter a name for the new profile Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + failed to create profile: %1 не удалоÑÑŒ Ñоздать профиль: %1 - + Show tutorial? Показать урок? - - You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - Ð’Ñ‹ запуÑтили Mod Organizer впервые. Ð’Ñ‹ хотите проÑмотреть уроки по оÑновным возможноÑÑ‚Ñм? Ð’ Ñлучае отказа вы вÑегда можете открыть уроки из меню "Помощь". + + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. + Ð’Ñ‹ запуÑтили Mod Organizer впервые. Ð’Ñ‹ хотите проÑмотреть уроки по оÑновным возможноÑÑ‚Ñм? Ð’ Ñлучае отказа вы вÑегда можете открыть уроки из меню "Помощь". - + Downloads in progress Загрузки в процеÑÑе - + There are still downloads in progress, do you really want to quit? Загрузки вÑÑ‘ ещё в процеÑÑе, вы правда хотите выйти? - + failed to read savegame: %1 не удалоÑÑŒ прочеÑть Ñохранение: %1 - - Plugin "%1" failed: %2 - Плагин "%1" не удалоÑÑŒ: %2 + + Plugin "%1" failed: %2 + Плагин "%1" не удалоÑÑŒ: %2 - - Plugin "%1" failed - Плагин "%1" не удалоÑÑŒ + + Plugin "%1" failed + Плагин "%1" не удалоÑÑŒ - + failed to init plugin %1: %2 не удалоÑÑŒ инициализировать плагин %1: %2 - - Failed to start "%1" - Ðе удалоÑÑŒ запуÑтить "%1" + + Plugin error + - + + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? +(Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) + + + + + Failed to start "%1" + Ðе удалоÑÑŒ запуÑтить "%1" + + + Waiting Ожидание - - Please press OK once you're logged into steam. + + Please press OK once you're logged into steam. Ðажмите OK как только вы войдете в Steam. - - "%1" not found - "%1" не найден + + "%1" not found + "%1" не найден - + Start Steam? ЗапуÑтить Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? ТребуетÑÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ñ‹Ð¹ Steam, Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ запуÑка игры. Должен ли MO попытатьÑÑ Ð·Ð°Ð¿ÑƒÑтить Steam ÑейчаÑ? - + Also in: <br> Также в: <br> - + No conflict Конфликтов нет - + <Edit...> <Правка...> - + + Failed to refresh list of esps: %s + + + + This bsa is enabled in the ini file so it may be required! Этот bsa подключен через ini, так что он может быть необходим! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Этот архив вÑе равно будет загружен, так как еÑть плагин Ñ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÐµÐ½Ð½Ñ‹Ð¼ названием, но его файлы не будут Ñледовать порÑдку уÑтановки! - + Activating Network Proxy Подключение Ñетевого прокÑи - - + + Installation successful УÑтановка завершена - - + + Configure Mod ÐаÑтройка мода - - + + This mod contains ini tweaks. Do you want to configure them now? Этот мод включает наÑтройки ini. Ð’Ñ‹ хотите наÑтроить их ÑейчаÑ? - - - mod "%1" not found - мод "%1" не найден + + + mod "%1" not found + мод "%1" не найден - - + + Installation cancelled УÑтановка отменена - - + + The mod was not installed completely. Мод не был уÑтановлен полноÑтью. - + Some plugins could not be loaded Ðекоторые плагины не могут быть загружены - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> - Следующие плагины не могут быть загружены. Причина может быть в отÑутÑтвующих завиÑимоÑÑ‚ÑÑ… (таких как python) или в уÑтаревшей верÑии:<ul> + Следующие плагины не могут быть загружены. Причина может быть в отÑутÑтвующих завиÑимоÑÑ‚ÑÑ… (таких как python) или в уÑтаревшей верÑии:<ul> + + + + Too many esps and esms enabled + + + + + + Description missing + - + + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: + + + + + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + Choose Mod Выберете мод - + Mod Archive Ðрхив мода - + Start Tutorial? Ðачать обучение? - - You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? + + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? Ð’Ñ‹ ÑобираетеÑÑŒ открыть обучение. По техничеÑким причинам будет невозможно доÑрочно закончить обучение. Продолжить? - - + + Download started Загрузка начата - + failed to update mod list: %1 не удалоÑÑŒ обновить ÑпиÑок модов: %1 - + failed to spawn notepad.exe: %1 не удалоÑÑŒ вызвать notepad.exe: %1 - + failed to open %1 не удалоÑÑŒ открыть %1 - + failed to change origin name: %1 не удалоÑÑŒ изменить оригинальное имÑ: %1 - + + Failed to move "%1" from mod "%2" to "%3": %4 + + + + <Checked> <Подключен> - + <Unchecked> <Отключен> - + <Update> <Обновлен> - + <No category> <Без категории> - + <Conflicted> <Конфликтует> - + + <Not Endorsed> + + + + failed to rename mod: %1 не удалоÑÑŒ переименовать мод: %1 - + Overwrite? ПерезапиÑать? - - This will replace the existing mod "%1". Continue? - Это заменит ÑущеÑтвующий мод "%1". Продолжить? + + This will replace the existing mod "%1". Continue? + Это заменит ÑущеÑтвующий мод "%1". Продолжить? - - failed to remove mod "%1" - не удалоÑÑŒ удалить мод "%1" + + failed to remove mod "%1" + не удалоÑÑŒ удалить мод "%1" - - - - failed to rename "%1" to "%2" - не удалоÑÑŒ переименовать "%1" в "%2" + + + + failed to rename "%1" to "%2" + не удалоÑÑŒ переименовать "%1" в "%2" - - Multiple esps activated, please check that they don't conflict. + + Multiple esps activated, please check that they don't conflict. Подключено неÑколько esp, выберете из них не конфликтующие. - - - + + + Confirm Подтверждение - + Remove the following mods?<br><ul>%1</ul> Удалить Ñледующие моды?<br><ul>%1</ul> - + failed to remove mod: %1 не удалоÑÑŒ удалить мод: %1 - - + + Failed Ðеудача - + Installation file no longer exists УÑтановочный файл больше не ÑущеÑтвует - - Mods installed with old versions of MO can't be reinstalled in this way. + + Mods installed with old versions of MO can't be reinstalled in this way. Моды, уÑтановленные Ñ Ð¸Ñпользованием Ñтарых верÑий MO не могут быть переÑтановленны таким образом. - - + + You need to be logged in with Nexus to endorse Ð’Ñ‹ должны быть авторизированы на Nexus, чтобы одобрÑть. - - + + Extract BSA Извлечь BSA - + This mod contains at least one BSA. Do you want to unpack it? -(This removes the BSA after completion. If you don't know about BSAs, just select no) +(This removes the BSA after completion. If you don't know about BSAs, just select no) Этот мод включает как минимум один BSA. Ð’Ñ‹ хотите раÑпаковать их? (Это удалит BSA поÑле завершениÑ. ЕÑли вы не знаете ничего о BSAs, проÑто откажитеÑÑŒ) - - - + + + failed to read %1: %2 не удалоÑÑŒ прочеÑть %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Ðрхив Ñодержит неверные хеши. Ðекоторые файлы могут быть иÑпорчены. - + Nexus ID for this Mod is unknown Nexus ID Ð´Ð»Ñ Ñтого мода неизвеÑтен - - + + Create Mod... Создать мод... - + This will move all files from overwrite into a new, regular mod. Please enter a name: Это перемеÑтит вÑе файлы от перезапиÑи в новый, отдельный мод. ПожалуйÑта, введите имÑ: - + A mod with this name already exists Мод Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует - + + Continue? + + + + + The versioning scheme decides which version is considered newer than another. +This function will guess the versioning scheme under the assumption that the installed version is outdated. + + + + + Sorry + + + + + I don't know a versioning scheme where %1 is newer than %2. + + + + Really enable all visible mods? ДейÑтвительно подключить вÑе видимые моды? - + Really disable all visible mods? ДейÑтвительно отключить вÑе видимые моды? - + Choose what to export Выберете, что ÑкÑпортировать - + Everything Ð’ÑÑ‘ - + All installed mods are included in the list Ð’Ñе уÑтановленные моды, включенные в ÑпиÑок - + Active Mods Ðктивные моды - + Only active (checked) mods from your current profile are included Включены вÑе активные (подключенные) моды вашего текущего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + Visible Видимые - + All mods visible in the mod list are included Включены вÑе моды, видимые в ÑпиÑке модов - + export failed: %1 ÑкÑпорт не удалÑÑ: %1 - + Install Mod... УÑтановить мод... - + Enable all visible Включить вÑе видимые - + Disable all visible Отключить вÑе видимые - + Check all for update Проверить вÑе на Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ - + Export to csv... ЭкÑпорт в csv... - + Sync to Mods... Синхронизировать Ñ Ð¼Ð¾Ð´Ð°Ð¼Ð¸... - + Restore Backup ВоÑÑтановить из резервной копии - + Remove Backup... Удалить резервную копию... - + Set Category Задать категорию - + Primary Category ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + + Change versioning scheme + + + + + Un-ignore update + + + + + Ignore update + + + + Rename Mod... Переименовать мод... - + Remove Mod... Удалить мод... - + Reinstall Mod ПереуÑтановить мод - + Un-Endorse Отменить одобрение - - + + Endorse Одобрить - - Won't endorse + + Won't endorse Ðе одобрÑть - + Endorsement state unknown Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтен - + Ignore missing data Игнорировать отÑутÑтвующие данные - + Visit on Nexus Перейти на Nexus - + Open in explorer Открыть в проводнике - + Information... ИнформациÑ... - - + + Exception: ИÑключение: - - + + Unknown exception ÐеизвеÑтное иÑключение - + <All> <Ð’Ñе> - + <Multiple> <ÐеÑколько> - + Fix Mods... ИÑправить моды... - - + + failed to remove %1 не удалоÑÑŒ удалить %1 - - + + failed to create %1 не удалоÑÑŒ Ñоздать %1 - - Can't change download directory while downloads are in progress! + + Can't change download directory while downloads are in progress! ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº, когда загрузки ещё не завершены! - + Download failed Загрузка не удалаÑÑŒ - + failed to write to file %1 ошибка запиÑи в файл %1 - + %1 written %1 запиÑан - + Select binary Выбрать иÑполнÑемый файл - + Binary ИÑполнÑемый файл - + Enter Name Введите Ð¸Ð¼Ñ - + Please enter a name for the executable Введите название Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ - + Not an executable Ðе ÑвлÑетÑÑ Ð¸ÑполнÑемым - + This is not a recognized executable. Это неверный иÑполнÑемый файл. - - + + Replace file? Заменить файл? - + There already is a hidden version of this file. Replace it? Уже ÑущеÑтвует ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла. Заменить? - - + + File operation failed ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ не удалаÑÑŒ - - - Failed to remove "%1". Maybe you lack the required file permissions? - Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? + + + Failed to remove "%1". Maybe you lack the required file permissions? + Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? - + There already is a visible version of this file. Replace it? Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - + Update available ДоÑтупно обновление - + Open/Execute Открыть/Выполнить - + Add as Executable Добавить как иÑполнÑемый - + Un-Hide Показать - + Hide Скрыть - + Write To File... ЗапиÑать в файл... - + Do you want to endorse Mod Organizer on %1 now? Ð’Ñ‹ хотите одобрить Mod Organizer на %1 ÑейчаÑ? - + Request to Nexus failed: %1 Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Nexus не удалÑÑ: %1 - - + + login successful уÑпешный вход - + login failed: %1. Trying to download anyway вход не удалÑÑ: %1. ПытаюÑÑŒ загрузить вÑÑ‘ равно - + login failed: %1 войти не удалоÑÑŒ: %1 - + login failed: %1. You need to log-in with Nexus to update MO. войти не удалоÑÑŒ: %1. Вам нужно войти на Nexus, чтобы обновить MO. - + Error Ошибка - + failed to extract %1 (errorcode %2) не удалоÑÑŒ извлечь %1 (код ошибки %2) - + Extract... РаÑпаковка... - + Edit Categories... Изменить категории... - + + Remove + + + + Enable all Включить вÑе - + Disable all Отключить вÑе - + Unlock load order Разблокировать порÑдок загрузки - + Lock load order Заблокировать порÑдок загрузки @@ -2357,7 +2483,7 @@ Please enter a name: ModInfoBackup - + This is the backup of a mod Это Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð¾Ð´Ð° @@ -2386,7 +2512,7 @@ Please enter a name: - + Save Сохранить @@ -2406,272 +2532,283 @@ Please enter a name: Это ÑпиÑок INI - файлов мода. Они иÑпользуютÑÑ Ð´Ð»Ñ ÐºÐ¾Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð¾Ð², еÑли Ñто возможно. - + Save changes to the file. Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файле. - + Save changes to the file. This overwrites the original. There is no automatic backup! Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файле. Это перезапишет ранее Ñозданный. Перед перезапиÑью файла Ñделайте копию. - + Images Изображение - + Images located in the mod. Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð°. - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок вÑех изображений (.jpg и .png) в каталоге мода, таких как Ñкриншоты и Ñ‚.п. Ðажмите на любое, Ð´Ð»Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок вÑех изображений (.jpg и .png) в каталоге мода, таких как Ñкриншоты и Ñ‚.п. Ðажмите на любое, Ð´Ð»Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ.</span></p></body></html> - - + + Optional ESPs Дополнительный ESP - + List of esps and esms that can not be loaded by the game. СпиÑок esp и esm, которые не могут быть загружены игрой. - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">СпиÑок esp и esm, ÑодержащихÑÑ Ð² плагине, которые не могут быть загружены в игру. Они так же не будут отображены в ÑпиÑке esp, в главном окне MO.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Они обычно Ñодержат опциональный функционал, Ñмотрите документацию.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">БольшинÑтво модов не Ñодержат дополнительных esp, поÑтому вы можете увидеть пуÑтой ÑпиÑок</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">СпиÑок esp и esm, ÑодержащихÑÑ Ð² плагине, которые не могут быть загружены в игру. Они так же не будут отображены в ÑпиÑке esp, в главном окне MO.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Они обычно Ñодержат опциональный функционал, Ñмотрите документацию.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">БольшинÑтво модов не Ñодержат дополнительных esp, поÑтому вы можете увидеть пуÑтой ÑпиÑок</span></p></body></html> + + + + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. + + + + + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. + - + Make the selected mod in the lower list unavailable. Сделать выбранный мод недоÑтупным. - - The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. - Выбранный ESP (в нижнем ÑпиÑке) будет перемещены в подкаталог мода и, таким образом, Ñтанут "невидимыми" Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. Затем они больше не будут активированы. + + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. + Выбранный ESP (в нижнем ÑпиÑке) будет перемещены в подкаталог мода и, таким образом, Ñтанут "невидимыми" Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. Затем они больше не будут активированы. - + Move a file to the data directory. ПеремеÑтить файл в каталог Data. - - This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. - Перемещает esp в каталог Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ esp так, что он может быть подключен в главном окне. Обратите внимание, что ESP проÑто ÑтановитÑÑ "доÑтупным", но не будет загружен! Это наÑтраиваетÑÑ Ð² главном окне MO. + + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. + Перемещает esp в каталог Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ esp так, что он может быть подключен в главном окне. Обратите внимание, что ESP проÑто ÑтановитÑÑ "доÑтупным", но не будет загружен! Это наÑтраиваетÑÑ Ð² главном окне MO. - + ESPs in the data directory and thus visible to the game. ESP в каталоге Data и виден Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Это файлы модов которые находÑÑ‚ÑÑ Ð² (виртуальном)каталоге данных вашей игры и могут быть выбираемыми в ÑпиÑке esp, в главном окне. - + Available ESPs ДоÑтупные ESP - + Conflicts Конфликты - + The following conflicted files are provided by this mod Данные конфликты вызваны Ñтим модом. - - + + File Файл - + Overwritten Mods Моды перезапиÑаны - + The following conflicted files are provided by other mods Конфликтные файлы других модов. - + Providing Mod ОбеÑпечение мода - + Non-Conflicted files Ðе конфликтные файлы - + Categories Категории - + Primary Category ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Nexus Info Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Nexus. - + Mod ID ID мода - + Mod ID for this mod on Nexus. ID мода на Nexus. - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod ID for this mod on Nexus. This is filled in automatically if you downloaded and installed the mod from inside MO. Otherwise you can enter it manually. To find the correct id, find the mod on nexus. The URL will look like this: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. In this example, 1334 is the id you're looking for. Besides: The above is the link to Mod Organizer on the Nexus. Why not go there now and endorse?</span></a></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod ID for this mod on Nexus. This is filled in automatically if you downloaded and installed the mod from inside MO. Otherwise you can enter it manually. To find the correct id, find the mod on nexus. The URL will look like this: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. In this example, 1334 is the id you're looking for. Besides: The above is the link to Mod Organizer on the Nexus. Why not go there now and endorse?</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ñтого мода на Nexus. ЗаполнÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, еÑли Ñкачали и уÑтановили мод из МО. Ð’ противном Ñлучае вы можете ввеÑти его вручную. Чтобы найти правильный ID, нужно найти мод на Nexus. URL будет выглÑдеть Ñледующим образом: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. Ð’ Ñтом примере, 1334 - ID, который вы ищете. Кроме того: Выше еÑть ÑÑылка на Mod Organizer на Nexus. Почему бы не перейти по ней и не одобрить?</span></a></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ñтого мода на Nexus. ЗаполнÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, еÑли Ñкачали и уÑтановили мод из МО. Ð’ противном Ñлучае вы можете ввеÑти его вручную. Чтобы найти правильный ID, нужно найти мод на Nexus. URL будет выглÑдеть Ñледующим образом: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. Ð’ Ñтом примере, 1334 - ID, который вы ищете. Кроме того: Выше еÑть ÑÑылка на Mod Organizer на Nexus. Почему бы не перейти по ней и не одобрить?</span></a></p></body></html> - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Installed Version of the Mod. The tooltip will contain the current version available on nexus. The installed version is only set if you installed the mod through MO.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Installed Version of the Mod. The tooltip will contain the current version available on nexus. The installed version is only set if you installed the mod through MO.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¼Ð¾Ð´Ð°. ПодÑказка будет Ñодержать текущую верÑию, доÑтупную на Nexus. УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÑƒÑтановитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли вы уÑтановили мод через МО.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¼Ð¾Ð´Ð°. ПодÑказка будет Ñодержать текущую верÑию, доÑтупную на Nexus. УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÑƒÑтановитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли вы уÑтановили мод через МО.</span></p></body></html> - + Version ВерÑÐ¸Ñ - + Refresh Обновить информацию - + Refresh all information from Nexus. Обновить вÑÑŽ информацию Ñ Nexus - + Description ОпиÑание - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - + Endorse Одобрить - + Notes ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ - + Filetree Файловое древо - + A directory view of this mod Каталог Ñтого мода - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a modifiable directory view of the mod directory. You can move around files using drag &amp; drop and rename them (double click).</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Changes happen immediately on disc, so do</span><span style=" font-size:8pt; font-weight:600;"> be careful</span><span style=" font-size:8pt;">.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a modifiable directory view of the mod directory. You can move around files using drag &amp; drop and rename them (double click).</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Changes happen immediately on disc, so do</span><span style=" font-size:8pt; font-weight:600;"> be careful</span><span style=" font-size:8pt;">.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это обзор модифицируемого каталога папки мода. Ð’Ñ‹ можете перемещать файлы, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¿ÐµÑ€ÐµÑ‚Ð°Ñкивание и переименовывать их двойным кликом.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸ÑходÑÑ‚ непоÑредÑтвенно на диÑке, так что</span><span style=" font-size:8pt; font-weight:600;"> будьте оÑторожныl</span><span style=" font-size:8pt;">.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это обзор модифицируемого каталога папки мода. Ð’Ñ‹ можете перемещать файлы, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¿ÐµÑ€ÐµÑ‚Ð°Ñкивание и переименовывать их двойным кликом.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸ÑходÑÑ‚ непоÑредÑтвенно на диÑке, так что</span><span style=" font-size:8pt; font-weight:600;"> будьте оÑторожныl</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous Предыдущий - + Next Вперед - + Close Закрыть @@ -2706,197 +2843,227 @@ p, li { white-space: pre-wrap; } &ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - - + + Save changes? Сохранить изменениÑ? - - - Save changes to "%1"? - Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² "%1"? + + + Save changes to "%1"? + Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² "%1"? - + File Exists Файл уже ÑущеÑтвует - + A file with that name exists, please enter a new one Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует, укажите другое - + failed to move file не удалоÑÑŒ перемеÑтить файл - - failed to create directory "optional" - не удалоÑÑŒ Ñоздать папку "optional" + + failed to create directory "optional" + не удалоÑÑŒ Ñоздать папку "optional" - - + + Info requested, please wait Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð°, пожалуйÑта, подождите - + Main Главное - + Update Обновление - + Optional Опционально - + Old Старые - + Misc Разное - + Unknown ÐеизвеÑтно - + Current Version: %1 Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ: %1 - + No update available Ðет доÑтупных обновлений - + (description incomplete, please visit nexus) (опиÑание не завершено, Ñмотрите на nexus) - - <a href="%1">Visit on Nexus</a> - <a href="%1">Перейти на Nexus</a> + + <a href="%1">Visit on Nexus</a> + <a href="%1">Перейти на Nexus</a> - + Failed to delete %1 Ðе удалоÑÑŒ удалить %1 - - + + Confirm Подтверждение - - Are sure you want to delete "%1"? - Ð’Ñ‹ уверены, что хотите удалить "%1"? + + Are sure you want to delete "%1"? + Ð’Ñ‹ уверены, что хотите удалить "%1"? - + Are sure you want to delete the selected files? Ð’Ñ‹ уверены, что хотите удалить выбранные файлы? - - + + New Folder ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - - Failed to create "%1" - Ðе удалоÑÑŒ Ñоздать "%1" + + Failed to create "%1" + Ðе удалоÑÑŒ Ñоздать "%1" - - + + Replace file? Заменить файл? - + There already is a hidden version of this file. Replace it? Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - - + + File operation failed Ðе удалаÑÑŒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ - - - Failed to remove "%1". Maybe you lack the required file permissions? - Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? + + + Failed to remove "%1". Maybe you lack the required file permissions? + Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? - - + + failed to rename %1 to %2 не удалоÑÑŒ переименовать %1 в %2 - + There already is a visible version of this file. Replace it? Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - + Un-Hide Показать - + Hide Скрыть + + + Name + Ð˜Ð¼Ñ + + + + Please enter a name + + + + + + Error + Ошибка + + + + Invalid name. Must be a valid file name + + + + + A tweak by that name exists + + + + + Create Tweak + + ModInfoOverwrite - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) Этот пÑевдо-мод Ñодержит файлы из виртуального древа данных, которые были изменены (в Construction Kit и других программах) - Overwrite - Замена + Замена ModInfoRegular - + failed to write %1/meta.ini: %2 не удалоÑÑŒ запиÑать %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 не Ñодержит ни esp/esm, ни папок реÑурÑов (textures, meshes, interface, ...) - + Categories: <br> Категории: <br> @@ -2904,9 +3071,8 @@ p, li { white-space: pre-wrap; } ModList - Overwrite - Замена + Замена @@ -2949,113 +3115,118 @@ p, li { white-space: pre-wrap; } Избыточные - + invalid неверные - + installed version: %1, newest version: %2 уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ: %1, Ð½Ð¾Ð²ÐµÐ¹ÑˆÐ°Ñ Ð²ÐµÑ€ÑиÑ: %2 - + + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". + + + + Categories: <br> Категории: <br> - + Invalid name ÐедопуÑтимое Ð¸Ð¼Ñ - + drag&drop failed: %1 перетаÑкивание не удалоÑÑŒ: %1 - + Confirm Подтверждение - - Are you sure you want to remove "%1"? - Ð’Ñ‹ дейÑтвительно хотите удалить "%1"? + + Are you sure you want to remove "%1"? + Ð’Ñ‹ дейÑтвительно хотите удалить "%1"? - + Flags Флаги - + Mod Name Ð˜Ð¼Ñ Ð¼Ð¾Ð´Ð° - + Version ВерÑÐ¸Ñ - + Priority Приоритет - + Category ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Nexus ID Nexus ID - + Installation УÑтановка - - + + unknown неизвеÑтный - + Name of your mods Ð˜Ð¼Ñ Ð²Ð°ÑˆÐ¸Ñ… модов - + Version of the mod (if available) ВерÑÐ¸Ñ Ð¼Ð¾Ð´Ð° (еÑли доÑтупно) - - Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. + + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Приоритет уÑтановки Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… модов. Файлы модов Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ приоритетом перезапишут файлы модов Ñ Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ приоритетом. - + Category of the mod. ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¼Ð¾Ð´Ð°. - + Id of the mod as used on Nexus. ID мода, иÑпользуемый на Nexus. - + Emblemes to highlight things that might require attention. ВыделÑет подÑветкой вещи, которые могут потребовать вниманиÑ. - + Time this mod was installed ВремÑ, когда мод был уÑтановлен. @@ -3076,12 +3247,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites ЗаменÑет - + not implemented не реализовано @@ -3090,11 +3261,16 @@ p, li { white-space: pre-wrap; } NXMAccessManager + Logging into Nexus + + + + timeout задержка - + Please check your password Проверьте ваш пароль @@ -3102,17 +3278,17 @@ p, li { white-space: pre-wrap; } NexusInterface - - Failed to guess mod id for "%1", please pick the correct one - Ðе удалоÑÑŒ опознать id мода "%1", пожалуйÑта, выберете правильный + + Failed to guess mod id for "%1", please pick the correct one + Ðе удалоÑÑŒ опознать id мода "%1", пожалуйÑта, выберете правильный - + empty response пуÑтой ответ - + invalid response неверный ответ @@ -3150,109 +3326,140 @@ p, li { white-space: pre-wrap; } &ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - - Failed to delete "%1" - Ðе удалоÑÑŒ удалить "%1" + + Failed to delete "%1" + Ðе удалоÑÑŒ удалить "%1" - - + + Confirm Подтверждение - - Are sure you want to delete "%1"? - Ð’Ñ‹ уверены, что хотите удалить "%1"? + + Are sure you want to delete "%1"? + Ð’Ñ‹ уверены, что хотите удалить "%1"? - + Are sure you want to delete the selected files? Ð’Ñ‹ дейÑтвительно хотите удалить выбранные файлы? - - + + New Folder ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - - Failed to create "%1" - Ðе удалоÑÑŒ Ñоздать "%1" + + Failed to create "%1" + Ðе удалоÑÑŒ Ñоздать "%1" PluginList - + Name Ð˜Ð¼Ñ - + Priority Приоритет - + Mod Index Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° - - + + unknown неизвеÑтно - + Name of your mods Имена ваших модов - - Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. + + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. Приоритет загрузки ваших модов. Моды Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ приоритетом перезапишут данные модов Ñ Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ приоритетом. - + The modindex determins the formids of objects originating from this mods. Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° определÑющий id форм объектов, проиÑходÑщих из Ñтих модов. - + + failed to update esp info for file %1 (source id: %2), error: %3 + + + + esp not found: %1 esp не найден: %1 - + + + Confirm + + + + + Really enable all plugins? + + + + + Really disable all plugins? + + + + The file containing locked plugin indices is broken Файл, Ñодержащий индекÑÑ‹ заблокированного плагина, не работает. - - + + failed to open output file: %1 не удалоÑÑŒ открыть выходной файл: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. Ðекоторые из ваших плагинов имеют неверные имена. Эти плагины не могут быть загружены игрой. Смотрите mo_interface.log Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑпиÑка таких плагинов и переименуйте их. - - This plugin can't be disabled (enforced by the game) + + This plugin can't be disabled (enforced by the game) Этот плагин не может быть отключен (грузитÑÑ Ð¸Ð³Ñ€Ð¾Ð¹ принудительно) - + Origin: %1 ИÑточник: %1 - + + Missing Masters + + + + + Enabled Masters + + + + failed to restore load order for %1 не удалоÑÑŒ воÑÑтановить порÑдок загрузки Ð´Ð»Ñ %1 @@ -3266,29 +3473,39 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + + + + Close + Закрыть - fix - иÑправить + иÑправить - + + Fix ИÑправить - + No guided fix Ðе управлÑемое иÑправление @@ -3296,73 +3513,83 @@ p, li { white-space: pre-wrap; } Profile - + invalid profile name %1 неверное Ð¸Ð¼Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ %1 - + failed to create %1 не удалоÑÑŒ Ñоздать %1 - - failed to open "%1" for writing - не удалоÑÑŒ открыть "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи + + failed to open temporary file + + + + + failed to open "%1" for writing + не удалоÑÑŒ открыть "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи - + + failed to write mod list: %1 + + + + failed to update tweaked ini file, wrong settings may be used: %1 не удалоÑÑŒ обновить наÑтроенный ini-файл, вероÑтно иÑпользуютÑÑ Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ñ‹Ðµ наÑтройки: %1 - + failed to create tweaked ini: %1 не удалоÑÑŒ Ñоздать наÑтроенный ini: %1 - - - - - + + + + + invalid index %1 неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - - Overwrite directory couldn't be parsed + + Overwrite directory couldn't be parsed Замена каталога не может быть обработана - + invalid priority %1 неверный приоритет %1 - + failed to parse ini file (%1) не удалоÑÑŒ обработать ini файл (%1) - + failed to parse ini file (%1): %2 не удалоÑÑŒ обработать ini файл (%1): %2 - - - failed to modify "%1" - не удалоÑÑŒ изменить "%1" + + + failed to modify "%1" + не удалоÑÑŒ изменить "%1" - + Delete savegames? Удалить ÑохранениÑ? - - Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) + + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) Ð’Ñ‹ хотите удалить локальные ÑохранениÑ? (При отрицательном выборе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð·ÑÑ‚ÑÑ Ñнова, еÑли повторно включить локальные ÑохранениÑ) @@ -3385,7 +3612,7 @@ p, li { white-space: pre-wrap; } - If checked, the new profile will use the default game settings instead of the "global" settings. Global settings are the settings you configure when running the game launcher directly, without MO. + If checked, the new profile will use the default game settings instead of the "global" settings. Global settings are the settings you configure when running the game launcher directly, without MO. ЕÑли отмечено, новый профиль будет иÑпользовать наÑтройки игры по умолчанию, вмеÑто общих наÑтроек. Общие наÑтройки, Ñто наÑтройки, которые вы уÑтановили, когда запуÑтили лаунчер игры напрÑмую, без MO. @@ -3408,20 +3635,20 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is the list of profiles. Each Profile contains its own list and installation order of enabled mods (from a shared pool), a configuration of enabled esps/esms, a copy of the games ini-file and an optional savegame filter.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Note</span> For technical reasons it's currently not possible to have seperate load-orders for esps. This means you can't load moda.esp before modb.esp in one profile and the other way around in another.</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is the list of profiles. Each Profile contains its own list and installation order of enabled mods (from a shared pool), a configuration of enabled esps/esms, a copy of the games ini-file and an optional savegame filter.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Note</span> For technical reasons it's currently not possible to have seperate load-orders for esps. This means you can't load moda.esp before modb.esp in one profile and the other way around in another.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Это ÑпиÑок профилей. Каждый профиль Ñодержит Ñвой ÑобÑтвенный ÑпиÑок и порÑдок уÑтановки подключенных модов (из общего пула), наÑтройки подключенных esps/esms, копии игровых ini-файлов и опциональный фильтр Ñохранений.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Примечание</span> По техничеÑким причинам невозможно иметь отдельные порÑдки загрузки Ð´Ð»Ñ esp. Это означает, что вы не Ñможете загрузить moda.esp пере modb.esp в одном профиле и иным образом в другом профиле.</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Это ÑпиÑок профилей. Каждый профиль Ñодержит Ñвой ÑобÑтвенный ÑпиÑок и порÑдок уÑтановки подключенных модов (из общего пула), наÑтройки подключенных esps/esms, копии игровых ini-файлов и опциональный фильтр Ñохранений.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Примечание</span> По техничеÑким причинам невозможно иметь отдельные порÑдки загрузки Ð´Ð»Ñ esp. Это означает, что вы не Ñможете загрузить moda.esp пере modb.esp в одном профиле и иным образом в другом профиле.</p></body></html> @@ -3441,22 +3668,22 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The games Oblivion, Fallout 3 and Fallout NV contain a bug which prevents texture and mesh replacers (that is: all modifications to meshes and textures already in game) from working.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Mod Organizer uses a workaround called &quot;BSA redirection&quot; (google is your friend) to fix this issue reliably and without further work. Simply activate and forget.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">With Skyrim this bug seems to be fixed to a degree but whether a mod becomes active still depends on file dates. Therefore, it still makes sense to activate this.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The games Oblivion, Fallout 3 and Fallout NV contain a bug which prevents texture and mesh replacers (that is: all modifications to meshes and textures already in game) from working.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Mod Organizer uses a workaround called &quot;BSA redirection&quot; (google is your friend) to fix this issue reliably and without further work. Simply activate and forget.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">With Skyrim this bug seems to be fixed to a degree but whether a mod becomes active still depends on file dates. Therefore, it still makes sense to activate this.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Игры Oblivion, Fallout 3 и Fallout NV Ñодержат баг, который делает неработоÑпоÑобными текÑтуры и модели реплейÑеров (то еÑть: вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ и текÑтур в игре).</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod Organizer иÑпользует ÑпоÑоб обхода, называемый &quot;BSA redirection&quot; (google в помощь), чтобы решить Ñту проблему надежно и без дальнейшей возни. ПроÑто подключить и забыть.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’ Скайрим, кажетÑÑ, Ñтот баг иÑправлен в извеÑтной Ñтепени, но будет ли мод активным, завиÑит по прежнему от даты модификации файлов. ПоÑтому вÑÑ‘ ещё еÑть ÑмыÑл включить Ñто.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Игры Oblivion, Fallout 3 и Fallout NV Ñодержат баг, который делает неработоÑпоÑобными текÑтуры и модели реплейÑеров (то еÑть: вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ и текÑтур в игре).</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod Organizer иÑпользует ÑпоÑоб обхода, называемый &quot;BSA redirection&quot; (google в помощь), чтобы решить Ñту проблему надежно и без дальнейшей возни. ПроÑто подключить и забыть.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’ Скайрим, кажетÑÑ, Ñтот баг иÑправлен в извеÑтной Ñтепени, но будет ли мод активным, завиÑит по прежнему от даты модификации файлов. ПоÑтому вÑÑ‘ ещё еÑть ÑмыÑл включить Ñто.</span></p></body></html> @@ -3523,7 +3750,7 @@ p, li { white-space: pre-wrap; } - Archive invalidation isn't required for this game. + Archive invalidation isn't required for this game. Ð˜Ð½Ð²Ð°Ð»Ð¸Ð´Ð°Ñ†Ð¸Ñ Ð½Ðµ требуетÑÑ Ð´Ð»Ñ Ñтой игры. @@ -3543,37 +3770,61 @@ p, li { white-space: pre-wrap; } Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + failed to copy profile: %1 не удалоÑÑŒ Ñкопировать профиль: %1 - + + Invalid name + ÐедопуÑтимое Ð¸Ð¼Ñ + + + + Invalid profile name + + + + Confirm Подтверждение - + + Are you sure you want to remove this profile (including local savegames if any)? + + + + + Profile broken + + + + + This profile you're about to delete seems to be broken or the path is invalid. I'm about to delete the following folder: "%1". Proceed? + + + Are you sure you want to remove this profile? - Ð’Ñ‹ дейÑтвительно хотите удалить Ñтот профиль? + Ð’Ñ‹ дейÑтвительно хотите удалить Ñтот профиль? - + Rename Profile Переименовать профиль - + New Name Ðовое Ð¸Ð¼Ñ - + failed to change archive invalidation state: %1 не удалоÑÑŒ изменить режим инвалидации: %1 - + failed to determine if invalidation is active: %1 не удалоÑÑŒ определить активноÑть инвалидации: %1 @@ -3581,42 +3832,42 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories Ðе удалоÑÑŒ Ñохранить пользовательÑкие категории - - - - + + + + invalid index %1 неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - + invalid category id %1 неверный id категории %1 - invalid field name "%1" - неверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ "%1" + invalid field name "%1" + неверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ "%1" - invalid type for "%1" (should be integer) - неверный тип Ð´Ð»Ñ "%1" (должно быть целое) + invalid type for "%1" (should be integer) + неверный тип Ð´Ð»Ñ "%1" (должно быть целое) - invalid type for "%1" (should be string) - неверный тип Ð´Ð»Ñ "%1" (должна быть Ñтрока) + invalid type for "%1" (should be string) + неверный тип Ð´Ð»Ñ "%1" (должна быть Ñтрока) - invalid type for "%1" (should be float) - неверный тип Ð´Ð»Ñ "%1" (должно быть Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ запÑтой) + invalid type for "%1" (should be float) + неверный тип Ð´Ð»Ñ "%1" (должно быть Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ запÑтой) @@ -3625,13 +3876,13 @@ p, li { white-space: pre-wrap; } - field not set "%1" - поле не уÑтановлено "%1" + field not set "%1" + поле не уÑтановлено "%1" - invalid character in field "%1" - неверный Ñимвол в поле "%1" + invalid character in field "%1" + неверный Ñимвол в поле "%1" @@ -3655,7 +3906,7 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ определить Ð¸Ð¼Ñ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð° - + invalid 7-zip32.dll: %1 неверный 7-zip32.dll: %1 @@ -3725,99 +3976,107 @@ p, li { white-space: pre-wrap; } Ðе удалоÑÑŒ уÑтановить загрузку proxy-dll - + Permissions required ТребуютÑÑ Ð¿Ñ€Ð°Ð²Ð° доÑтупа - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). - Текущий аккаунт Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ имеет необходимых прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Mod Organizer. Ðеобходимые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть Ñделаны автоматичеÑки (каталог MO будет уÑтановлен запиÑываемым Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ аккаунта пользователÑ). Вам будет предложено запуÑтить "helper.exe" Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора. + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + Текущий аккаунт Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ имеет необходимых прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Mod Organizer. Ðеобходимые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть Ñделаны автоматичеÑки (каталог MO будет уÑтановлен запиÑываемым Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ аккаунта пользователÑ). Вам будет предложено запуÑтить "helper.exe" Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора. + + + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. + - - + + Woops Ð£Ð¿Ñ - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened Mod Organizer вышел из ÑтроÑ! Ðужно ли Ñоздать диагноÑтичеÑкий файл? ЕÑли вы вышлите файл (%1) по адреÑу sherb@gmx.net, ошибка Ñ Ð½Ð°Ð¼Ð½Ð¾Ð³Ð¾ большей вероÑтноÑтью будет иÑправлена. ПожалуйÑта, добавьте краткое опиÑание Ñвоих дейÑтвий, перед тем, как произошла ошибка - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 ModOrganizer вышел из ÑтроÑ! К Ñожалению не удалоÑÑŒ запиÑать диагноÑтичеÑкий файл: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Другой ÑкземплÑÑ€ Mod Organizer уже запущен - - No game identified in "%1". The directory is required to contain the game binary and its launcher. - Игра не обнаружена в "%1". ТребуетÑÑ, чтобы папка Ñодержала иÑполнÑемые файлы игры. + + No game identified in "%1". The directory is required to contain the game binary and its launcher. + Игра не обнаружена в "%1". ТребуетÑÑ, чтобы папка Ñодержала иÑполнÑемые файлы игры. - - + + Please select the game to manage Выберете игру Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ - - Please use "Help" from the toolbar to get usage instructions to all elements - ИÑпользуйте пункт "Справка" на панели инÑтрументов, чтобы получить инÑтрукции по иÑпользованию вÑех Ñлементов. + + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) + - - + + Please use "Help" from the toolbar to get usage instructions to all elements + ИÑпользуйте пункт "Справка" на панели инÑтрументов, чтобы получить инÑтрукции по иÑпользованию вÑех Ñлементов. + + + + <Manage...> <УправлÑть...> - + failed to parse profile %1: %2 не удалоÑÑŒ обработать профиль %1: %2 - - - failed to find "%1" - не удалоÑÑŒ найти "%1" + + + failed to find "%1" + не удалоÑÑŒ найти "%1" - encoding error, please report this as a bug and include the file mo_interface.log! - ошибка кодированиÑ, пожалуйÑта Ñообщите об Ñтом баге, включив файл mo_interface.log! + ошибка кодированиÑ, пожалуйÑта Ñообщите об Ñтом баге, включив файл mo_interface.log! - + failed to access %1 не удалоÑÑŒ получить доÑтуп к %1 - + failed to set file time %1 не удалоÑÑŒ изменить дату модификации Ð´Ð»Ñ %1 - + failed to create %1 не удалоÑÑŒ Ñоздать %1 - - "%1" is missing - "%1" отÑутÑтвует + + "%1" is missing + "%1" отÑутÑтвует @@ -3843,19 +4102,19 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ открыть %1 - + Script Extender Script Extender - + Proxy DLL Proxy DLL - failed to spawn "%1" - не удалоÑÑŒ вызвать "%1" + failed to spawn "%1" + не удалоÑÑŒ вызвать "%1" @@ -3866,36 +4125,36 @@ p, li { white-space: pre-wrap; } This process requires elevation to run. This is a potential security risk so I highly advice you to investigate if -"%1" +"%1" can be installed to work without elevation. Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe to make changes to the system) Этот процеÑÑ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð² на запуÑк. Это потенциальный риÑк Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти, поÑтому наÑтоÑтельно рекомендуетÑÑ Ð¸Ð·ÑƒÑ‡Ð¸Ñ‚ÑŒ -"%1" +"%1" на возможноÑть уÑтановки без Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð². ЗапуÑтить Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ правами в любом Ñлучае? (будет выведен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾ разрешении ModOrganizer.exe Ñделать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑиÑтеме) - failed to spawn "%1": %2 - не удалоÑÑŒ вызвать "%1": %2 + failed to spawn "%1": %2 + не удалоÑÑŒ вызвать "%1": %2 - "%1" doesn't exist - "%1" не ÑущеÑтвует + "%1" doesn't exist + "%1" не ÑущеÑтвует - failed to inject dll into "%1": %2 - не удалоÑÑŒ подключить dll к "%1": %2 + failed to inject dll into "%1": %2 + не удалоÑÑŒ подключить dll к "%1": %2 - failed to run "%1" - не удалоÑÑŒ запуÑтить "%1" + failed to run "%1" + не удалоÑÑŒ запуÑтить "%1" @@ -3939,9 +4198,8 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe QuestionBoxMemory - Remember selection - Запомнить выбор + Запомнить выбор @@ -4014,8 +4272,8 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - failed to open "%1" for writing - не удалоÑÑŒ открыть "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи + failed to open "%1" for writing + не удалоÑÑŒ открыть "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи @@ -4040,14 +4298,14 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe SelfUpdater - archive.dll not loaded: "%1" - archive.dll не загружен: "%1" + archive.dll not loaded: "%1" + archive.dll не загружен: "%1" - - - + + + Update Обновление @@ -4057,62 +4315,62 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe ДоÑтупно обновление (поÑледнÑÑ Ð²ÐµÑ€ÑиÑ: %1). Ð’Ñ‹ хотите уÑтановить его? - + Download in progress Загрузка в процеÑÑе - + Download failed: %1 Загрузка не удалаÑÑŒ: %1 - + Failed to install update: %1 Ðе удалоÑÑŒ уÑтановить обновление: %1 - - failed to open archive "%1": %2 - не удалоÑÑŒ открыть архив "%1": %2 + + failed to open archive "%1": %2 + не удалоÑÑŒ открыть архив "%1": %2 - + failed to move outdated files: %1. Please update manually. не удалоÑÑŒ перемеÑтить уÑтаревшие файлы: %1. ПожалуйÑта, обновите вручную. - + Update installed, Mod Organizer will now be restarted. Обновление уÑтановлено, Mod Organizer будет перезапущен. - + Error Ошибка - + Failed to parse response. Please report this as a bug and include the file mo_interface.log. Ðе удалоÑÑŒ обработать запроÑ. ПожалуйÑта, Ñообщите об Ñтом баге, включив в Ñообщение файл mo_interface.log. - + No incremental update available for this version, the complete package needs to be downloaded (%1 kB) Ðет дополнительных обновлений Ð´Ð»Ñ Ñтой верÑии, необходимо загрузить полный пакет (%1 kB) - + no file for update found. Please update manually. не найдено файла Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ. ПожалуйÑта, обновите вручную. - + Failed to retrieve update information: %1 Ðе удалоÑÑŒ получить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± обновлении: %1 - + No download server available. Please try again later. Ðет доÑтупных Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ Ñерверов. ПожалуйÑта, попробуйте позже. @@ -4120,22 +4378,26 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - setting for invalid plugin "%1" requested - запрошена наÑтройка Ð´Ð»Ñ Ð½ÐµÐ´ÐµÐ¹Ñтвительного плагина "%1" + setting for invalid plugin "%1" requested + запрошена наÑтройка Ð´Ð»Ñ Ð½ÐµÐ´ÐµÐ¹Ñтвительного плагина "%1" - - invalid setting "%1" requested for plugin "%2" - Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð½Ð°Ñтройка "%1" запрошена Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð° "%2" + invalid setting "%1" requested for plugin "%2" + Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð½Ð°Ñтройка "%1" запрошена Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð° "%2" - + + + attempt to store setting for unknown plugin "%1" + + + + Confirm Подтверждение - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? Изменение каталога Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¾Ð² отразитÑÑ Ð½Ð° вÑех ваших профилÑÑ…. ÐÐµÐ»ÑŒÐ·Ñ Ð±ÑƒÐ´ÐµÑ‚ отменить Ñто, еÑли только вы не Ñохранили резервные копии ваших профилей вручную. Продолжить? @@ -4164,16 +4426,16 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The display language. This will only displaye languages for which you have a translation installed.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The display language. This will only displaye languages for which you have a translation installed.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ИÑпользуемый Ñзык. Будут отображены Ñзыки, Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° которые имеетÑÑ.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ИÑпользуемый Ñзык. Будут отображены Ñзыки, Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° которые имеетÑÑ.</span></p></body></html> @@ -4197,15 +4459,15 @@ p, li { white-space: pre-wrap; } - Decides the amount of data printed to "ModOrganizer.log" - ОпределÑет количеÑтво данных, выводимых в "ModOrganizer.log" + Decides the amount of data printed to "ModOrganizer.log" + ОпределÑет количеÑтво данных, выводимых в "ModOrganizer.log" - Decides the amount of data printed to "ModOrganizer.log". -"Debug" produces very useful information for finding problems. There is usually no noteworthy performance impact but the file may become rather large. If this is a problem you may prefer the "Info" level for regluar use. On the "Error" level the log file usually remains empty. - ОпределÑет количеÑтво данных, выводимых в "ModOrganizer.log". -"Отладка" позволÑет получить очень полезную Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка проблем информацию. ВлиÑÐ½Ð¸Ñ Ð½Ð° производительноÑть не замечено, однако размер лога может быть довольно большим. ЕÑли Ñто проблема, то вы можете предпочеÑть Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ð³Ð¾ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ "ИнформациÑ". Ðа уровне "Ошибка" лог обычно оÑтаетÑÑ Ð¿ÑƒÑтым. + Decides the amount of data printed to "ModOrganizer.log". +"Debug" produces very useful information for finding problems. There is usually no noteworthy performance impact but the file may become rather large. If this is a problem you may prefer the "Info" level for regluar use. On the "Error" level the log file usually remains empty. + ОпределÑет количеÑтво данных, выводимых в "ModOrganizer.log". +"Отладка" позволÑет получить очень полезную Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка проблем информацию. ВлиÑÐ½Ð¸Ñ Ð½Ð° производительноÑть не замечено, однако размер лога может быть довольно большим. ЕÑли Ñто проблема, то вы можете предпочеÑть Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ð³Ð¾ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ "ИнформациÑ". Ðа уровне "Ошибка" лог обычно оÑтаетÑÑ Ð¿ÑƒÑтым. @@ -4245,7 +4507,7 @@ p, li { white-space: pre-wrap; } - Directory where mods are stored. Please note that changing this will break all associations of profiles with mods that don't exist in the new location (with the same name). + Directory where mods are stored. Please note that changing this will break all associations of profiles with mods that don't exist in the new location (with the same name). Каталог, в котором хранÑÑ‚ÑÑ Ð¼Ð¾Ð´Ñ‹. Имейте ввиду, Ñти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ñ€ÑƒÑˆÐ°Ñ‚ вÑе аÑÑоциации профилей Ñ Ð½ÐµÑущеÑтвующими в новом раÑположении модами (Ñ Ñ‚ÐµÐ¼ же именем). @@ -4265,8 +4527,8 @@ p, li { white-space: pre-wrap; } - This will make all dialogs show up again where you checked the "Remember selection"-box. - ЗаÑтавит Ñнова поÑвитьÑÑ Ð²Ñе диалоги, в которых вы ранее отмечали флажок "Запомнить выбор". + This will make all dialogs show up again where you checked the "Remember selection"-box. + ЗаÑтавит Ñнова поÑвитьÑÑ Ð²Ñе диалоги, в которых вы ранее отмечали флажок "Запомнить выбор". @@ -4297,16 +4559,16 @@ p, li { white-space: pre-wrap; } - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Allows automatic log-in when the Nexus-Page for the game is clicked. Please note that the obfuscation with which the password is stored in modorganizer.ini is not very strong. If you're worried someone might steal your password, don't store it here.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Allows automatic log-in when the Nexus-Page for the game is clicked. Please note that the obfuscation with which the password is stored in modorganizer.ini is not very strong. If you're worried someone might steal your password, don't store it here.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ПозволÑет автоматичеÑки входить, кликнув на Nexus-Ñтраницу игры. Обратите внимание, что шифрование Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ пароль хранитÑÑ Ð² файле modorganizer.ini не очень Ñильное. ЕÑли вы беÑпокоитеÑÑŒ, что кто-нибудь может украÑть ваш пароль, не храните его здеÑÑŒ.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ПозволÑет автоматичеÑки входить, кликнув на Nexus-Ñтраницу игры. Обратите внимание, что шифрование Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ пароль хранитÑÑ Ð² файле modorganizer.ini не очень Ñильное. ЕÑли вы беÑпокоитеÑÑŒ, что кто-нибудь может украÑть ваш пароль, не храните его здеÑÑŒ.</span></p></body></html> @@ -4374,198 +4636,203 @@ p, li { white-space: pre-wrap; } Плагины - + Author: Ðвтор: - + Version: ВерÑиÑ: - + Description: ОпиÑание: - + Key Клавиша - + Value Значение - + + Blacklisted Plugins (use <del> to remove): + + + + Workarounds СпоÑобы обхода - + Steam App ID ID Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Steam - + The Steam AppID for your game ID в Steam Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ игры - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Steam App ID is required to directly start some games. For Skyrim, if this is not set or wrong, the &quot;Mod Organizer&quot; load mechanism may not work properly.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The preset for this is the App ID of the &quot;regular&quot; version so in most cases, you should be set.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you think you have a different version (GotY or something), follow these steps to get to the id:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Navigate to the game library in steam</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. right-click on the game you need the id for and choose </span><span style=" font-size:8pt; font-weight:600;">Create desktop shortcut</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. right-click on the newly created shortcut on your desktop and select </span><span style=" font-size:8pt; font-weight:600;">Properties</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. in the URL-field you should see something like this: </span><span style=" font-size:8pt; font-style:italic;">steam://rungameid/22380</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 is the id you're looking for.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The Steam App ID is required to directly start some games. For Skyrim, if this is not set or wrong, the &quot;Mod Organizer&quot; load mechanism may not work properly.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The preset for this is the App ID of the &quot;regular&quot; version so in most cases, you should be set.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you think you have a different version (GotY or something), follow these steps to get to the id:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Navigate to the game library in steam</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. right-click on the game you need the id for and choose </span><span style=" font-size:8pt; font-weight:600;">Create desktop shortcut</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. right-click on the newly created shortcut on your desktop and select </span><span style=" font-size:8pt; font-weight:600;">Properties</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. in the URL-field you should see something like this: </span><span style=" font-size:8pt; font-style:italic;">steam://rungameid/22380</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 is the id you're looking for.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Steam необходим Ð´Ð»Ñ Ð¿Ñ€Ñмого запуÑка некоторых игр. Ð”Ð»Ñ Skyrim, еÑли он не уÑтановлен или неверен, механизм загрузки &quot;Mod Organizer&quot; может работать неправильно.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ПредуÑтановленный ID в большинÑтве Ñлучаев должен быть уÑтановлен.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы думаете, что у Ð²Ð°Ñ Ð´Ñ€ÑƒÐ³Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ (GotY или другое), Ñледуйте Ñледующей инÑтрукции по уÑтановке id:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Перейдите в библиотеку игр Steam.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. Сделайте правый клик по игре, id которой нужен и выберете </span><span style=" font-size:8pt; font-weight:600;">Создать Ñрлык на рабочем Ñтоле</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. Сделайте правый клик на Ñозданном на рабочем Ñтоле Ñрлыке и выберете </span><span style=" font-size:8pt; font-weight:600;">СвойÑтва</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. в поле URL вы должны увидеть что-то вроде: </span><span style=" font-size:8pt; font-style:italic;">steam://rungameid/22380</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 Ñто и еÑть id, который вам нужен.</span></p></body></html> - - - +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Steam необходим Ð´Ð»Ñ Ð¿Ñ€Ñмого запуÑка некоторых игр. Ð”Ð»Ñ Skyrim, еÑли он не уÑтановлен или неверен, механизм загрузки &quot;Mod Organizer&quot; может работать неправильно.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ПредуÑтановленный ID в большинÑтве Ñлучаев должен быть уÑтановлен.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы думаете, что у Ð²Ð°Ñ Ð´Ñ€ÑƒÐ³Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ (GotY или другое), Ñледуйте Ñледующей инÑтрукции по уÑтановке id:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Перейдите в библиотеку игр Steam.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. Сделайте правый клик по игре, id которой нужен и выберете </span><span style=" font-size:8pt; font-weight:600;">Создать Ñрлык на рабочем Ñтоле</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. Сделайте правый клик на Ñозданном на рабочем Ñтоле Ñрлыке и выберете </span><span style=" font-size:8pt; font-weight:600;">СвойÑтва</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. в поле URL вы должны увидеть что-то вроде: </span><span style=" font-size:8pt; font-style:italic;">steam://rungameid/22380</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 Ñто и еÑть id, который вам нужен.</span></p></body></html> + + + Load Mechanism Механизм загрузки - + Select loading mechanism. See help for details. Выберете механизм загрузки. Смотрите Ñправку Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾Ñтей. - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. *Script Extender* In this mode, MO is installed as a Script Extender (obse, fose, nvse, skse) plugin. -*Proxy DLL* In this mode, MO replaces one of the game's dlls with one that loads MO (and the original dll of course). This will ONLY work with Steam games and it has only been tested with Skyrim. Please use this only if the other mechanisms don't work. +*Proxy DLL* In this mode, MO replaces one of the game's dlls with one that loads MO (and the original dll of course). This will ONLY work with Steam games and it has only been tested with Skyrim. Please use this only if the other mechanisms don't work. -If you use the Steam version of Oblivion the default will NOT work. In this case, please install obse and use "Script Extender" as the load mechanism. Also you can then not start Oblivion from MO. Instead, use MO only to set up your mods, then quit and start Oblivion through Steam. +If you use the Steam version of Oblivion the default will NOT work. In this case, please install obse and use "Script Extender" as the load mechanism. Also you can then not start Oblivion from MO. Instead, use MO only to set up your mods, then quit and start Oblivion through Steam. Mod Organizer необходимо подключить dll к игре, чтобы вÑе моды были видны в ней. ЕÑть неÑколько ÑпоÑобов Ñделать Ñто: *Mod Organizer* (по умолчанию) Ð’ Ñтом режиме Mod Organizer Ñам подключает dll. ÐедоÑтатком Ñтого ÑвлÑетÑÑ Ñ‚Ð¾, что вам необходимо вÑегда начинать игру через MO или Ñозданный им Ñрлык. *Script Extender* Ð’ Ñтом режиме, MO уÑтановлен как плагин Script Extender (obse, fose, nvse, skse). *Proxy DLL* Ð’ Ñтом режиме MO заменÑет одну из игровых dll игры Ñвоей, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÑ‚ MO и оригинальную игру. Это работает только Ñ Ð¸Ð³Ñ€Ð°Ð¼Ð¸ Steam и теÑтировалоÑÑŒ только на Skyrim. ИÑпользуйте Ñтот ÑпоÑоб только еÑли другие не работают. -ЕÑли вы иÑпользуете Steam-верÑию Oblivion , ÑпоÑоб по умолчанию не работает. Ð’ Ñтом Ñлучае уÑтановите obse и иÑпользуйте "Script Extender" как механизм загрузки. Также поÑле Ñтого вы не Ñможете запуÑтить Oblivion из MO, вмеÑто Ñтого иÑпользуйте MO только Ð´Ð»Ñ Ð½Ð°Ñтройки модов и запуÑкайте игру через Steam. +ЕÑли вы иÑпользуете Steam-верÑию Oblivion , ÑпоÑоб по умолчанию не работает. Ð’ Ñтом Ñлучае уÑтановите obse и иÑпользуйте "Script Extender" как механизм загрузки. Также поÑле Ñтого вы не Ñможете запуÑтить Oblivion из MO, вмеÑто Ñтого иÑпользуйте MO только Ð´Ð»Ñ Ð½Ð°Ñтройки модов и запуÑкайте игру через Steam. - + NMM Version ВерÑÐ¸Ñ NMM - + The Version of Nexus Mod Manager to impersonate. ВерÑÐ¸Ñ Nexus Mod Manager Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑтавлениÑ. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. -On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. -Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. +On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. +Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. -tl;dr-version: If Nexus-features don't work, insert the current version number of NMM here and try again. +tl;dr-version: If Nexus-features don't work, insert the current version number of NMM here and try again. Mod Organizer иÑпользует API Nexus , Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð°ÐºÐ¸Ñ… возможноÑтей, как проверка обновлений и загрузка файлов. К Ñожалению Ñтот API не был Ñделан официально доÑтупным прочим утилитам, вроде MO, так что нужно предÑтавлÑтьÑÑ ÐºÐ°Ðº Nexus Mod Manager, чтобы получить доÑтуп. Помимо Ñтого Nexus иÑпользует идентификатор верÑий, чтобы блокировать уÑтаревшии верÑии NMM и принудительно заÑтавить пользователей обновитьÑÑ. Это значит, что MO также нужно предÑтавлÑтьÑÑ Ð¿Ð¾Ñледней верÑией NMM, даже еÑли MO не нуждаетÑÑ Ð² обновлении. ПоÑтому вы можете наÑтроить здеÑÑŒ также и верÑию Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸. -Обратите внимание, что MO идентифицирует ÑÐµÐ±Ñ Ð²ÐµÐ±Ñерверу как MO, он не подделывает данные о Ñебе. Он вÑего лишь добавлÑетÑÑ ÐºÐ°Ðº "ÑовмеÑтимаÑ" Ñ NMM верÑиÑ, в поле user agent. +Обратите внимание, что MO идентифицирует ÑÐµÐ±Ñ Ð²ÐµÐ±Ñерверу как MO, он не подделывает данные о Ñебе. Он вÑего лишь добавлÑетÑÑ ÐºÐ°Ðº "ÑовмеÑтимаÑ" Ñ NMM верÑиÑ, в поле user agent. tl;dr-верÑиÑ: ЕÑли возможноÑти Nexus не работают, вÑтавьте здеÑÑŒ текущую верÑию NMM и повторите попытку. - + Enforces that inactive ESPs and ESMs are never loaded. ОбеÑпечивает то, что неактивные ESP и ESM не будут загружены. - - It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. -I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. + + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. +I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. КажетÑÑ, что иногда игры загружают ESP и ESM файлы, даже еÑли они не были не подключены как плагины ОбÑтоÑтельÑтва Ñтого пока не извеÑтны, но отчеты пользователей подразумевают, что Ñто в Ñ€Ñде Ñлучаев нежелательно. ЕÑли Ñтот флажок отмечен, не отмеченные в ÑпиÑке ESP и ESM не будут видимы в ÑпиÑке и не будут загружены. - + Hide inactive ESPs/ESMs Скрыть неактивные ESPs/ESMs - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) ЕÑли отмечено, файлы (Ñ‚.е. esp, esm и bsa) принадлежащие оÑновной игре не Ñмогут быть отключены из интерфейÑа. (по умолчанию: вкл) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. ЕÑли отмечено, файлы (Ñ‚.е. esp, esm и bsa) принадлежащие оÑновной игре не Ñмогут быть отключены из интерфейÑа. (по умолчанию: вкл) Снимите флажок, еÑли вы ÑобираетеÑÑŒ иÑпользовать Mod Organizer Ñ Ñ‚Ð¾Ñ‚Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ конверÑиÑми (как Nehrim) , но будьте оÑторожны, игра может вылететь, еÑли требуемые файлы будут отключены. - + Force-enable game files Принудительно подключить файлы игры - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Ð”Ð»Ñ Ð¡ÐºÐ°Ð¹Ñ€Ð¸Ð¼ Ñто может быть иÑпользовано вмеÑто инвалидации. Это должно Ñделать AI избыточным Ð´Ð»Ñ Ð²Ñех профилей. Ð”Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… игр недоÑтаточно замены Ð´Ð»Ñ AI! - + Back-date BSAs Back-date BSAs - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. Это ÑпоÑобы обхода проблем Ñ Mod Organizer. УбедитеÑÑŒ, что вы прочли Ñправку, перед тем, как делать какие-либо Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð´ÐµÑÑŒ. - + Select download directory Выберете каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº - + Select mod directory Выберете каталог Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¾Ð² - + Select cache directory Выберете каталог Ð´Ð»Ñ ÐºÐµÑˆÐ° - + Confirm? Подтвердить? - - This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? - Это позволить Ñнова отобразить вÑе диалоги, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… вы ранее выбрали флажок "Запомнить выбор". + + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? + Это позволить Ñнова отобразить вÑе диалоги, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… вы ранее выбрали флажок "Запомнить выбор". @@ -4640,7 +4907,7 @@ For the other games this is not a sufficient replacement for AI! - <don't sync> + <don't sync> <не Ñинхронизировать> @@ -4748,8 +5015,8 @@ C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves - Overwrite the file "%1" - ПерезапиÑать файл "%1" + Overwrite the file "%1" + ПерезапиÑать файл "%1" @@ -4762,18 +5029,18 @@ C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves - Copy all save games of character "%1" to the profile? - Скопировать вÑе игры Ñ Ð¿ÐµÑ€Ñонажем "%1" в профиль? + Copy all save games of character "%1" to the profile? + Скопировать вÑе игры Ñ Ð¿ÐµÑ€Ñонажем "%1" в профиль? - Move all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. - ПеремеÑтить вÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÐµÑ€Ñонажем "%1" в общее меÑтораÑположение? Имейте ввиду, что Ñто запутает текущую нумерацию Ñохранений. + Move all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. + ПеремеÑтить вÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÐµÑ€Ñонажем "%1" в общее меÑтораÑположение? Имейте ввиду, что Ñто запутает текущую нумерацию Ñохранений. - Copy all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. - Скопировать вÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÐµÑ€Ñонажем "%1" в общее меÑтораÑположение? Имейте ввиду, что Ñто запутает текущую нумерацию Ñохранений. + Copy all save games of character "%1" to the global location? Please be aware that this will mess up the running number of save games. + Скопировать вÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÐµÑ€Ñонажем "%1" в общее меÑтораÑположение? Имейте ввиду, что Ñто запутает текущую нумерацию Ñохранений. diff --git a/src/organizer_tr.qm b/src/organizer_tr.qm index 1069c0dc..bb7116bf 100644 Binary files a/src/organizer_tr.qm and b/src/organizer_tr.qm differ diff --git a/src/organizer_tr.ts b/src/organizer_tr.ts index 78e719a8..c23ee738 100644 --- a/src/organizer_tr.ts +++ b/src/organizer_tr.ts @@ -256,7 +256,7 @@ p, li { white-space: pre-wrap; } Bitti - + Information missing, please select "Query Info" from the context menu to re-retrieve. Bilgi eksik, lütfen menüden "Bilgi sorgula" yı seçiniz @@ -269,11 +269,6 @@ p, li { white-space: pre-wrap; } Placeholder Yer tutucu - - - 0 - - KB @@ -337,60 +332,65 @@ p, li { white-space: pre-wrap; } Bitti - - - - + + + + Are you sure? Emin misiniz? - + This will remove all finished downloads from this list and from disk. Bu, tüm bitmiÅŸ indirilenleri listeden ve diskten kaldıracaktır. - + This will remove all installed downloads from this list and from disk. Bu, tüm yüklenmiÅŸ indirilenleri listeden ve diskten kaldıracaktır. - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Install Yükle - + Query Info Sorgu Bilgisi - + Delete - + + Un-Hide + + + + Remove from View - + Remove Kaldır - + Cancel İptal et @@ -410,32 +410,32 @@ p, li { white-space: pre-wrap; } - + Pause Duraklat - + Resume Devam et - + Delete Installed... - + Delete All... - + Remove Installed... YüklenmiÅŸleri kaldır... - + Remove All... Hepsini kaldır... @@ -443,60 +443,65 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Emin misiniz? - + This will remove all finished downloads from this list and from disk. Bu, tüm bitmiÅŸ indirilenleri listeden ve diskten kaldıracaktır. - + This will remove all installed downloads from this list and from disk. Bu, tüm bitmiÅŸ yüklenmiÅŸ listeden ve diskten kaldıracaktır. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Yükle - + Query Info Bilgi sorgula - + Delete - + + Un-Hide + + + + Remove from View - + Remove Kaldır - + Cancel İptal et @@ -511,32 +516,32 @@ p, li { white-space: pre-wrap; } - + Pause Duraklat - + Resume Devam et - + Delete Installed... - + Delete All... - + Remove Installed... YüklenmiÅŸleri kaldır - + Remove All... Hepsini kaldır... @@ -544,67 +549,80 @@ p, li { white-space: pre-wrap; } DownloadManager - + failed to rename "%1" to "%2" "%1"yi "%2" olarak yeniden adlandırma baÅŸarılı olamadı. - + Download again? Tekrar indir? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Aynı dosya isminde bir dosya zaten indirilmiÅŸ. Tekrar indirmek istiyor musunuz? Yeni dosya farklı bir isim alacak. - + failed to download %1: could not open output file: %2 %1 indirilemedi : : çıkış dosyası %2 açılamadı - - - - - - + + Wrong Game + + + + + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". + + + + + - - - - + + + + + + + + + + + invalid index geçersiz dizin - + failed to delete %1 %1 silinemedi - + failed to delete meta file for %1 %1'in meta dosyası silinemedi - - - - - - + + + + + + invalid index %1 geçeriz dizin %1 - + Please enter the nexus mod id Lütfen nexus mod kimliÄŸini girin - + Mod ID: Mod kimliÄŸi: @@ -613,38 +631,38 @@ p, li { white-space: pre-wrap; } geçersiz alfabetik dizin %1 - + Information updated bilgi güncellendi - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Nexus'ta uyan bir dosya bulunamadı! Dosya artık mevcut olmayabilir yada yeniden adlandırılmış olabilir! - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Nexus'ta seçili dosyaya isim olarak uyan dosya bulunamadı. Lütfen el ile doÄŸru olanı seçin. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Nexus'tan dosya bilgisi istenilemedi: %1 - + Download failed: %1 (%2) İndirme baÅŸarızı: %1 (%2) - + failed to re-open %1 %1 tekrar açılamadı @@ -1095,12 +1113,12 @@ p, li { white-space: pre-wrap; } mo_archive.dll yüklü deÄŸil: "%1" - + Password required Åžifre gerekli - + Password Åžifre @@ -1122,8 +1140,8 @@ p, li { white-space: pre-wrap; } - - + + Extracting files Dosyalar çıkarılıyor @@ -1158,7 +1176,7 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! yükleme baÅŸarısız (hatakodu %1) - + File format "%1" not supported Dosya formatı "%1" desteklenmiyor. @@ -1167,32 +1185,32 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! ArÅŸiv "%1": %2 açılamadı. - + archive.dll not loaded: "%1" - + failed to create backup - + Mod Name - + Name İsim - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1209,52 +1227,52 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! Lüttfen NCC'yi yükleyiniz. - + None of the available installer plugins were able to handle that archive - + no error hata yok - + 7z.dll not found 7z.dll bulunamadı - + 7z.dll isn't valid 7z.dll geçerli deÄŸil - + archive not found arÅŸiv bulunamadı - + failed to open archive arÅŸiv açılamadı - + unsupported archive type desteklenmeyen arÅŸiv türü - + internal library error içsel kütüphane hatası - + archive invalid arÅŸiv geçersiz - + unknown archive error bilinmeyen arÅŸiv hatası @@ -1293,12 +1311,12 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! MOApplication - + an error occured: %1 - + an error occured @@ -1369,7 +1387,7 @@ p, li { white-space: pre-wrap; } - + Namefilter @@ -1458,67 +1476,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File - - - Mod - Mod + + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + + Mod + Mod - + Data - + refresh data-directory overview - + Refresh the overview. This may take a moment. - - - + + + Refresh - + This is an overview of your data directory as visible to the game (and tools). - - + + Filter the above list so that only conflicts are displayed. - + Show only conflicts - + Saves - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1529,155 +1546,160 @@ p, li { white-space: pre-wrap; } - + Downloads - + This is a list of mods you downloaded from Nexus. Double click one to install it. - + Compact - + + Show Hidden + + + + Tool Bar - + Install Mod - + Install &Mod - + Install a new mod from an archive - + Ctrl+M - + Profiles - + &Profiles - + Configure Profiles - + Ctrl+P - + Executables - + &Executables - + Configure the executables that can be started through Mod Organizer - + Ctrl+E - - + + Tools - + &Tools - + Ctrl+I - + Settings - + &Settings - + Configure settings and workarounds - + Ctrl+S - + Nexus - + Search nexus network for more mods - + Ctrl+N - - + + Update - + Mod Organizer is up-to-date - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1685,814 +1707,891 @@ Right now this has very limited functionality - - + + Help - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 - + failed to save archives order, do you have write access to "%1"? - + Name İsim - + Please enter a name for the new profile - + failed to create profile: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress - + There are still downloads in progress, do you really want to quit? - + failed to read savegame: %1 - + Plugin "%1" failed: %2 - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - + "%1" not found - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict - + <Edit...> - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful - - + + Configure Mod - - + + This mod contains ini tweaks. Do you want to configure them now? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> - - - - + Choose Mod - + Mod Archive - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started - + failed to update mod list: %1 - + failed to spawn notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + <All> - + <Checked> - + Plugin "%1" failed - + failed to init plugin %1: %2 - - + + Plugin error + + + + + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? +(Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) + + + + + Failed to refresh list of esps: %s + + + + + Too many esps and esms enabled + + + + + Description missing - + + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: + + + + + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + + Failed to move "%1" from mod "%2" to "%3": %4 + + + + <Unchecked> - + <Update> - + <No category> - + <Conflicted> - + + <Not Endorsed> + + + + failed to rename mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" "%1"yi "%2" olarak yeniden adlandırma baÅŸarılı olamadı. - - - + + + Confirm Onayla - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 %1: %2 okunamadı - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown - + + Continue? + + + + + The versioning scheme decides which version is considered newer than another. +This function will guess the versioning scheme under the assumption that the installed version is outdated. + + + + + Sorry + + + + + I don't know a versioning scheme where %1 is newer than %2. + + + + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... - + Enable all visible - + Disable all visible - + Check all for update - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Set Category - + Primary Category - + + Change versioning scheme + + + + + Un-ignore update + + + + + Ignore update + + + + Rename Mod... - + Remove Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... - - + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 - + %1 written - + Select binary - + Binary İkili deÄŸer - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... - + Do you want to endorse Mod Organizer on %1 now? - + + Remove + + + + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2526,7 +2625,7 @@ Please enter a name: ModInfoBackup - + This is the backup of a mod @@ -2555,7 +2654,7 @@ Please enter a name: - + Save Kaydet @@ -2575,51 +2674,49 @@ Please enter a name: Moddaki .ini dosyalarının bir listesi. Bunlar genelde, ayarlabilir parametrelerin olduÄŸuÄŸu durumlarda modların davranışlarını ayarlamak için kullanılır. - + Save changes to the file. DeÄŸiÅŸiklikleri dosyaya kaydet. - + Save changes to the file. This overwrites the original. There is no automatic backup! DeÄŸiÅŸiklikleri dosyaya kaydet. Bu orijinal dosyanın üzerine yazar. Otomatik yedekleme yoktur! - + Images Resimler - + Images located in the mod. Modun içinde yer alan resimler - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Bu mod klasöründe yer alan ekran resimleri ve benzeri resimlerin(.jpg ve.png) bir listesidir. Tıklayararak daha büyük görüntü alabilirsiniz</span></p></body></html> - - + + Optional ESPs İsteÄŸe baÄŸlı ESP'ler - + List of esps and esms that can not be loaded by the game. Oyun tarafından yüklenemeyen espler ve esmlerin bir listesi. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2628,7 +2725,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -2638,103 +2735,116 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Pek çok mod isteÄŸe baÄŸlı esp'ler içermez, bu nedenle büyük ihtimalle boÅŸ bir listeye bakıyorsunuz.</span></p></body></html> - + + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. + + + + + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. + + + + Make the selected mod in the lower list unavailable. AÅŸağıdaki listedeki seçili modu kullanılamaz yapar. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. Seçili esp (aÅŸağıdaki listede) modun bir alt klasörüne itilecek ve böylece oyuna "görünmez" olacaktır. Artık aktif hale getirilemez. - + Move a file to the data directory. Dosyayı veri klasörüne taşı. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. - + ESPs in the data directory and thus visible to the game. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. - + Available ESPs - + Conflicts - + The following conflicted files are provided by this mod - - + + File - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Kategoriler - + Primary Category - + Nexus Info - + Mod ID - + Mod ID for this mod on Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2743,7 +2853,7 @@ p, li { white-space: pre-wrap; } - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2752,27 +2862,27 @@ p, li { white-space: pre-wrap; } - + Version Versiyon - + Refresh - + Refresh all information from Nexus. - + Description - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2782,31 +2892,32 @@ p, li { white-space: pre-wrap; } + Name - İsim + İsim - + Endorse - + Notes - + Filetree - + A directory view of this mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2816,17 +2927,17 @@ p, li { white-space: pre-wrap; } - + Previous - + Next Sonraki - + Close Kapat @@ -2861,166 +2972,192 @@ p, li { white-space: pre-wrap; } - - + + Save changes? - + File Exists - + A file with that name exists, please enter a new one - + failed to move file - + failed to create directory "optional" - - + + Info requested, please wait - + (description incomplete, please visit nexus) - + + Please enter a name + + + + + + Error + + + + + Invalid name. Must be a valid file name + + + + + A tweak by that name exists + + + + + Create Tweak + + + + Current Version: %1 - + No update available - + Main - - + + Save changes to "%1"? - + Update - + Optional - + Old - + Misc - + Unknown - + <a href="%1">Visit on Nexus</a> - - + + Confirm Onayla - + Failed to delete %1 - + Are sure you want to delete "%1"? - + Are sure you want to delete the selected files? - - + + New Folder - + Failed to create "%1" - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - - + + failed to rename %1 to %2 - + There already is a visible version of this file. Replace it? - + Un-Hide - + Hide @@ -3028,12 +3165,7 @@ p, li { white-space: pre-wrap; } ModInfoOverwrite - - Overwrite - - - - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) @@ -3041,17 +3173,17 @@ p, li { white-space: pre-wrap; } ModInfoRegular - + failed to write %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory - + Categories: <br> @@ -3059,15 +3191,10 @@ p, li { white-space: pre-wrap; } ModList - + Confirm Onayla - - - Overwrite - - This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit) @@ -3109,27 +3236,27 @@ p, li { white-space: pre-wrap; } - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. - + Categories: <br> - + installed version: %1, newest version: %2 @@ -3138,83 +3265,88 @@ p, li { white-space: pre-wrap; } İsim - + Version Versiyon - + Version of the mod (if available) - + Priority - + invalid - + + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". + + + + Invalid name - + drag&drop failed: %1 - + Flags - + Mod Name - + Category - + Nexus ID - + Installation - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. - + Time this mod was installed - + Are you sure you want to remove "%1"? @@ -3235,12 +3367,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites - + not implemented @@ -3249,11 +3381,16 @@ p, li { white-space: pre-wrap; } NXMAccessManager + Logging into Nexus + + + + timeout - + Please check your password @@ -3261,17 +3398,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response - + invalid response @@ -3309,34 +3446,34 @@ p, li { white-space: pre-wrap; } - + Failed to delete "%1" - - + + Confirm Onayla - + Are sure you want to delete "%1"? - + Are sure you want to delete the selected files? - - + + New Folder - + Failed to create "%1" @@ -3344,90 +3481,105 @@ p, li { white-space: pre-wrap; } PluginList - + Mod Index - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + + failed to update esp info for file %1 (source id: %2), error: %3 + + + + esp not found: %1 - - + + Confirm Onayla - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - + + Missing Masters + + + + + Enabled Masters + + + + failed to restore load order for %1 - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name İsim - + Priority @@ -3444,22 +3596,28 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - fix - + + Close + Kapat - + + Fix - + No guided fix @@ -3467,72 +3625,82 @@ p, li { white-space: pre-wrap; } Profile - + invalid profile name %1 - + failed to create %1 - + + failed to open temporary file + + + + failed to open "%1" for writing - + + failed to write mod list: %1 + + + + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - - - - - + + + + + invalid index %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) @@ -3701,37 +3869,57 @@ p, li { white-space: pre-wrap; } - + failed to copy profile: %1 - + + Invalid name + + + + + Invalid profile name + + + + Confirm Onayla - - Are you sure you want to remove this profile? + + Are you sure you want to remove this profile (including local savegames if any)? - + + Profile broken + + + + + This profile you're about to delete seems to be broken or the path is invalid. I'm about to delete the following folder: "%1". Proceed? + + + + Rename Profile - + New Name - + failed to change archive invalidation state: %1 - + failed to determine if invalidation is active: %1 @@ -3739,20 +3927,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories - - - - + + + + invalid index %1 - + invalid category id %1 @@ -3768,7 +3956,7 @@ p, li { white-space: pre-wrap; } - + invalid 7-zip32.dll: %1 @@ -3838,92 +4026,97 @@ p, li { white-space: pre-wrap; } - + "%1" is missing - + Permissions required - - - Woops + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + + + Woops - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 - - + + Mod Organizer - + An instance of Mod Organizer is already running - + No game identified in "%1". The directory is required to contain the game binary and its launcher. - - + + Please select the game to manage - + + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) + + + + Please use "Help" from the toolbar to get usage instructions to all elements - - + + <Manage...> - + failed to parse profile %1: %2 - - + + failed to find "%1" - + failed to access %1 - + failed to set file time %1 - + failed to create %1 @@ -3951,12 +4144,12 @@ p, li { white-space: pre-wrap; } - + Script Extender - + Proxy DLL @@ -4084,14 +4277,6 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - - QuestionBoxMemory - - - Remember selection - - - SaveGameInfoWidget @@ -4193,9 +4378,9 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - - - + + + Update @@ -4205,62 +4390,62 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + Download in progress - + Download failed: %1 - + Failed to install update: %1 - + failed to open archive "%1": %2 ArÅŸiv "%1": %2 açılamadı. - + failed to move outdated files: %1. Please update manually. - + Update installed, Mod Organizer will now be restarted. - + Error - + Failed to parse response. Please report this as a bug and include the file mo_interface.log. - + No incremental update available for this version, the complete package needs to be downloaded (%1 kB) - + no file for update found. Please update manually. - + No download server available. Please try again later. - + Failed to retrieve update information: %1 @@ -4268,22 +4453,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - setting for invalid plugin "%1" requested - - - - - invalid setting "%1" requested for plugin "%2" + + + attempt to store setting for unknown plugin "%1" - + Confirm Onayla - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -4468,7 +4649,12 @@ p, li { white-space: pre-wrap; } - + + Blacklisted Plugins (use <del> to remove): + + + + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -4524,47 +4710,47 @@ p, li { white-space: pre-wrap; } - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds - + Steam App ID - + The Steam AppID for your game - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -4580,27 +4766,27 @@ p, li { white-space: pre-wrap; } - + Load Mechanism - + Select loading mechanism. See help for details. - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -4609,76 +4795,76 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + Enforces that inactive ESPs and ESMs are never loaded. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. - + Hide inactive ESPs/ESMs - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! - + Back-date BSAs - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. - + Select download directory - + Select mod directory - + Select cache directory - + Confirm? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? diff --git a/src/organizer_zh_CN.qm b/src/organizer_zh_CN.qm index ca363b5c..266fa16b 100644 Binary files a/src/organizer_zh_CN.qm and b/src/organizer_zh_CN.qm differ diff --git a/src/organizer_zh_CN.ts b/src/organizer_zh_CN.ts index 2ca0cc2a..5ef313be 100644 --- a/src/organizer_zh_CN.ts +++ b/src/organizer_zh_CN.ts @@ -255,7 +255,7 @@ p, li { white-space: pre-wrap; } å®Œæˆ - + Information missing, please select "Query Info" from the context menu to re-retrieve. ä¿¡æ¯ä¸¢å¤±ï¼Œè¯·åœ¨å³é”®èœå•里选择“查询信æ¯â€æ¥é‡æ–°æ£€ç´¢ã€‚ @@ -268,11 +268,6 @@ p, li { white-space: pre-wrap; } Placeholder å ä½ç¬¦ - - - 0 - - KB @@ -336,60 +331,65 @@ p, li { white-space: pre-wrap; } å®Œæˆ - - - - + + + + Are you sure? 确定? - + This will remove all finished downloads from this list and from disk. 这将会从列表和ç£ç›˜ä¸­ç§»é™¤æ‰€æœ‰å·²å®Œæˆçš„下载。 - + This will remove all installed downloads from this list and from disk. 这将会从列表和ç£ç›˜ä¸­ç§»é™¤æ‰€æœ‰å·²å®‰è£…的下载项目。 - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Install 安装 - + Query Info æŸ¥è¯¢ä¿¡æ¯ - + Delete - + + Un-Hide + å–æ¶ˆéšè— + + + Remove from View - + Remove 移除 - + Cancel å–æ¶ˆ @@ -409,32 +409,32 @@ p, li { white-space: pre-wrap; } - + Pause æš‚åœ - + Resume ç»§ç»­ - + Delete Installed... - + Delete All... - + Remove Installed... 移除已安装的项目... - + Remove All... 移除所有... @@ -442,60 +442,65 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? 确定? - + This will remove all finished downloads from this list and from disk. 这将会从列表和ç£ç›˜ä¸­ç§»é™¤æ‰€æœ‰å·²å®Œæˆçš„下载。 - + This will remove all installed downloads from this list and from disk. 这将会从列表和ç£ç›˜ä¸­ç§»é™¤æ‰€æœ‰å·²å®‰è£…的下载项目。 - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install 安装 - + Query Info æŸ¥è¯¢ä¿¡æ¯ - + Delete - + + Un-Hide + å–æ¶ˆéšè— + + + Remove from View - + Remove 移除 - + Cancel å–æ¶ˆ @@ -510,32 +515,32 @@ p, li { white-space: pre-wrap; } - + Pause æš‚åœ - + Resume ç»§ç»­ - + Delete Installed... - + Delete All... - + Remove Installed... 移除已安装的项目... - + Remove All... 移除所有... @@ -543,67 +548,80 @@ p, li { white-space: pre-wrap; } DownloadManager - + failed to rename "%1" to "%2" é‡å‘½å "%1 "为 "%2" 时出错 - + Download again? 釿–°ä¸‹è½½ï¼Ÿ - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. 已存在åŒå文件。您确定è¦é‡æ–°ä¸‹è½½ï¼Ÿæ–°æ–‡ä»¶å°†ä½¿ç”¨ä¸åŒçš„æ–‡ä»¶å。 - + failed to download %1: could not open output file: %2 下载 %1 失败: 无法打开输出文件: %2 - - - - - - + + Wrong Game + + + + + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". + + + + + - - - - + + + + + + + + + + + invalid index 无效的索引 - + failed to delete %1 无法删除 %1 - + failed to delete meta file for %1 无法从 %1 中删除 mate 文件 - - - - - - + + + + + + invalid index %1 无效的索引 %1 - + Please enter the nexus mod id 请输入N网 Mod ID - + Mod ID: Mod ID: @@ -612,38 +630,38 @@ p, li { white-space: pre-wrap; } 无效的字顺索引 %1 - + Information updated ä¿¡æ¯å·²æ›´æ–° - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? 无法在N网上找到匹é…的文件ï¼ä¹Ÿè®¸è¿™ä¸ªæ–‡ä»¶å·²ç»ä¸å­˜åœ¨äº†æˆ–是它改å了? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. 所选的文件无法在N网上找到å¯åŒ¹é…的项目,请手动选择正确的一个。 - + No download server available. Please try again later. 没有å¯ç”¨çš„下载æœåŠ¡å™¨ï¼Œè¯·ç¨åŽå†å°è¯•下载。 - + Failed to request file info from nexus: %1 无法从N网上请求文件信æ¯: %1 - + Download failed: %1 (%2) 下载失败: %1 (%2) - + failed to re-open %1 æ— æ³•é‡æ–°æ‰“å¼€ %1 @@ -1092,12 +1110,12 @@ p, li { white-space: pre-wrap; } mo_archive.dll 未加载: "%1" - + Password required 需è¦å¯†ç  - + Password å¯†ç  @@ -1119,8 +1137,8 @@ p, li { white-space: pre-wrap; } - - + + Extracting files 正在解压文件 @@ -1155,7 +1173,7 @@ Note: This installer will not be aware of other installed mods! 安装失败 (é”™è¯¯ä»£ç  %1) - + File format "%1" not supported æš‚ä¸æ”¯æŒæ–‡ä»¶æ ¼å¼: "%1" @@ -1164,32 +1182,32 @@ Note: This installer will not be aware of other installed mods! 无法打开压缩包 "%1": %2 - + archive.dll not loaded: "%1" - + failed to create backup - + Mod Name - + Name åç§° - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1206,52 +1224,52 @@ Note: This installer will not be aware of other installed mods! 请安装 NCC - + None of the available installer plugins were able to handle that archive - + no error 没有错误 - + 7z.dll not found 未找到 7z.dll - + 7z.dll isn't valid 无效的 7z.dll - + archive not found 未找到压缩包 - + failed to open archive 无法打开压缩包 - + unsupported archive type 䏿”¯æŒçš„压缩包类型 - + internal library error 内部库错误 - + archive invalid 无效的压缩包 - + unknown archive error 未知压缩包错误 @@ -1290,12 +1308,12 @@ Note: This installer will not be aware of other installed mods! MOApplication - + an error occured: %1 å‘生错误: %1 - + an error occured å‘生错误 @@ -1371,7 +1389,7 @@ p, li { white-space: pre-wrap; } - + Namefilter @@ -1504,67 +1522,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye 这里勾选的 BSA 将会ä¾ä»Žæ‚¨çš„安装顺åºï¼Œå¹¶ä¸”会自行调整加载顺åºã€‚ - - + + File 文件 - - - Mod - Mod + + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + + Mod + Mod - + Data Data - + refresh data-directory overview 刷新 Data 目录总览 - + Refresh the overview. This may take a moment. 刷新总览,这å¯èƒ½éœ€è¦ä¸€äº›æ—¶é—´ã€‚ - - - + + + Refresh 刷新 - + This is an overview of your data directory as visible to the game (and tools). 这是在游æˆä¸­å¯è§çš„ Data 目录 (和工具) 的总览。 - - + + Filter the above list so that only conflicts are displayed. 过滤上é¢çš„列表,使您åªèƒ½çœ‹åˆ°æœ‰å†²çªçš„æ–‡ä»¶ã€‚ - + Show only conflicts åªæ˜¾ç¤ºå†²çª - + Saves 存档 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1581,155 +1598,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">如果您在å³é”®èœå•ä¸­ç‚¹å‡»â€œä¿®å¤ Modâ€ï¼Œé‚£ä¹ˆ MO 便会å°è¯•激活所有 Mod å’Œ esp æ¥ä¿®å¤é‚£äº›ç¼ºå¤±çš„ esp,它并ä¸ä¼šç¦ç”¨ä»»ä½•东西ï¼</span></p></body></html> - + Downloads 下载 - + This is a list of mods you downloaded from Nexus. Double click one to install it. 这是当å‰å·²ä¸‹è½½çš„ Mod 的列表,åŒå‡»è¿›è¡Œå®‰è£…。 - + Compact 紧凑 - + + Show Hidden + + + + Tool Bar å·¥å…·æ  - + Install Mod 安装 Mod - + Install &Mod 安装 &Mod - + Install a new mod from an archive 通过压缩包æ¥å®‰è£…一个新 Mod - + Ctrl+M Ctrl+M - + Profiles é…置文件 - + &Profiles &é…置文件 - + Configure Profiles 设置é…置文件 - + Ctrl+P Ctrl+P - + Executables 坿‰§è¡Œç¨‹åº - + &Executables &坿‰§è¡Œç¨‹åº - + Configure the executables that can be started through Mod Organizer é…ç½®å¯é€šè¿‡ MO æ¥å¯åŠ¨çš„ç¨‹åº - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings 设置 - + &Settings &设置 - + Configure settings and workarounds é…置设定和解决方案 - + Ctrl+S Ctrl+S - + Nexus N网 - + Search nexus network for more mods æœç´¢Nç½‘ä»¥èŽ·å–æ›´å¤š Mod - + Ctrl+N Ctrl+N - - + + Update æ›´æ–° - + Mod Organizer is up-to-date Mod Organizer 现在是最新版本 - - + + No Problems 没有问题 - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1740,54 +1762,54 @@ Right now this has very limited functionality 当剿­¤åŠŸèƒ½æ‰€èƒ½æä¾›çš„项目éžå¸¸æœ‰é™ - - + + Help 帮助 - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems 问题 - + There are potential problems with your setup 您的安装中存在潜在的问题 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1804,22 +1826,22 @@ Right now this has very limited functionality <li>.Net 未安装或版本过旧。想è¦è¿è¡Œ NCC 您必须先安装 .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­èŽ·å–: <a href="%1">%1</a></li> - + Help on UI 界é¢å¸®åŠ© - + Documentation Wiki 说明文档 (维基) - + Report Issue 报告问题 - + Tutorials @@ -1828,374 +1850,431 @@ Right now this has very limited functionality 无法ä¿å­˜åŠ è½½é¡ºåº - + failed to save load order: %1 无法ä¿å­˜åŠ è½½é¡ºåº: %1 - + failed to save archives order, do you have write access to "%1"? 无法ä¿å­˜æ¡£æ¡ˆé¡ºåºï¼Œæ‚¨ç¡®å®šæ‚¨æœ‰æƒé™æ›´æ”¹ "%1"? - + Name åç§° - + Please enter a name for the new profile - + failed to create profile: %1 无法创建é…置文件: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下载 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨è¿›è¡Œä¸­çš„下载,您确定è¦é€€å‡ºå—? - + failed to read savegame: %1 无法读å–存档: %1 - + Plugin "%1" failed: %2 - + + Plugin error + + + + + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? +(Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) + + + + Failed to start "%1" 无法å¯åЍ "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 当您登录 Steam 时请点击确定。 - + "%1" not found "%1" 未找到 - + Start Steam? å¯åЍ Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¡®åœ°å¯åŠ¨éŠæˆ²ï¼ŒSteam 必须处于è¿è¡Œçжæ€ã€‚MO è¦ç«‹å³å¯åЍ Steam å—? - + Also in: <br> 也在: <br> - + No conflict æ²¡æœ‰å†²çª - + <Edit...> <编辑...> - + + Failed to refresh list of esps: %s + + + + This bsa is enabled in the ini file so it may be required! 该 BSA 已在 Ini 文件中å¯ç”¨ï¼Œå› æ­¤å®ƒå¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此档案还是会被加载,因为存在åŒåæ’件。ä¸è¿‡å®ƒæ‰€åŒ…å«çš„的文件ä¸ä¼šéµå¾ªå®‰è£…顺åºï¼ - + Activating Network Proxy - - + + Installation successful 安装æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 设定文件,您想现在就对它们进行é…ç½®å—? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled å®‰è£…å·²å–æ¶ˆ - - + + The mod was not installed completely. Mod 没有完全安装。 - + Some plugins could not be loaded - - - Description missing + + Too many esps and esms enabled - - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> + + + Description missing - + Choose Mod 选择 Mod - + Mod Archive Mod 压缩包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 开始下载 - + failed to update mod list: %1 无法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 æ— æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 无法打开 %1 - + failed to change origin name: %1 无法更改原始文件å: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + + Continue? + + + + + The versioning scheme decides which version is considered newer than another. +This function will guess the versioning scheme under the assumption that the installed version is outdated. + + + + + Sorry + + + + + I don't know a versioning scheme where %1 is newer than %2. + + + + <All> <全部> - + <Checked> <已勾选> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: + + + + + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + + Failed to move "%1" from mod "%2" to "%3": %4 + + + + <Unchecked> <未勾选> - + <Update> <有更新> - + <No category> <无类别> - + <Conflicted> - + + <Not Endorsed> + + + + failed to rename mod: %1 无法é‡å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm 确认 - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 无法移动 Mod: %1 - - + + Failed 失败 - + Installation file no longer exists 安装文件ä¸å¤å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 旧版 MO 安装的 Mod æ— æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£…。 - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解压 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€ä¸ª BSA。您确定è¦è§£åŽ‹å—? (解压完æˆåŽï¼ŒBSA 文件将会被删除。如果您ä¸äº†è§£ BSA çš„è¯ï¼Œè¯·é€‰æ‹©â€œå¦â€) - - - + + + failed to read %1: %2 æ— æ³•è¯»å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 压缩包 Hash 值错误。部分文件å¯èƒ½å·²ç»æŸå。 - + Nexus ID for this Mod is unknown æ­¤ Mod çš„N网 ID 未知 @@ -2208,371 +2287,391 @@ Please enter a name: 选择优先级 - + Really enable all visible mods? 确定è¦å¯ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Really disable all visible mods? 确定è¦ç¦ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... 安装 Mod... - + Enable all visible å¯ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Check all for update 检查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... - + Set Category 设置类别 - + Primary Category - + + Change versioning scheme + + + + + Un-ignore update + + + + + Ignore update + + + + Rename Mod... é‡å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£… Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N网上æµè§ˆ - + Open in explorer 在资æºç®¡ç†å™¨ä¸­æ‰“å¼€ - + Information... ä¿¡æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + Fix Mods... ä¿®å¤ Mod... - - + + failed to remove %1 无法删除 %1 - - + + failed to create %1 无法创建 %1 - + Can't change download directory while downloads are in progress! 下载文件时ä¸èƒ½ä¿®æ”¹ä¸‹è½½ç›®å½•ï¼ - + Download failed 下载失败 - + failed to write to file %1 无法写入文件 %1 - + %1 written 已写入 %1 - + Select binary é€‰æ‹©å¯æ‰§è¡Œæ–‡ä»¶ - + Binary - + Enter Name 输入åç§° - + Please enter a name for the executable 请为程åºè¾“入一个åç§° - + Not an executable 䏿˜¯å¯æ‰§è¡Œç¨‹åº - + This is not a recognized executable. æ— æ³•è¯†åˆ«çš„å¯æ‰§è¡Œæ–‡ä»¶ - - + + Replace file? æ›¿æ¢æ–‡ä»¶ï¼Ÿ - + There already is a hidden version of this file. Replace it? 已存在åŒå文件,但该文件被éšè—了。确定è¦è¦†ç›–å—? - - + + File operation failed 文件æ“作错误 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 打开/执行 - + Add as Executable æ·»åŠ ä¸ºå¯æ‰§è¡Œæ–‡ä»¶ - + Un-Hide å–æ¶ˆéšè— - + Hide éšè— - + Write To File... 写入文件... - + Do you want to endorse Mod Organizer on %1 now? - + + Remove + 移除 + + + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful 登录æˆåŠŸ - + login failed: %1. Trying to download anyway 登录失败: %1,请å°è¯•使用别的方法下载 - + login failed: %1 无法登录: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登录失败: %1。您需è¦ç™»å½•到N网æ‰èƒ½æ›´æ–° MO - + Error 错误 - + failed to extract %1 (errorcode %2) 无法解压 %1 (é”™è¯¯ä»£ç  %2) - + Extract... 解压... - + Edit Categories... 编辑类别... - + Enable all 全部å¯ç”¨ - + Disable all 全部ç¦ç”¨ @@ -2606,7 +2705,7 @@ Please enter a name: ModInfoBackup - + This is the backup of a mod @@ -2635,7 +2734,7 @@ Please enter a name: - + Save ä¿å­˜ @@ -2655,51 +2754,49 @@ Please enter a name: Mod 目录里包å«çš„ Ini 文件的列表,这些文件通常用æ¥é…ç½® Mod 的行为,如果有å¯è®¾ç½®çš„傿•°çš„è¯ã€‚ - + Save changes to the file. ä¿å­˜æ›´æ”¹åˆ°æ–‡ä»¶ä¸­ã€‚ - + Save changes to the file. This overwrites the original. There is no automatic backup! ä¿å­˜æ›´æ”¹åˆ°æ–‡ä»¶ä¸­ï¼Œè¿™å°†ä¼šè¦†ç›–åŽŸå§‹æ–‡ä»¶ï¼Œå¹¶ä¸”æ²¡æœ‰è‡ªåŠ¨å¤‡ä»½ï¼ - + Images 图片 - + Images located in the mod. ä½äºŽ Mod 中的图片。 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">这里列出了所有在 Mod 目录里的图片 (.jpg å’Œ .png),如截图等。点击其中的一个æ¥èŽ·å¾—è¾ƒå¤§çš„è§†å›¾ã€‚</span></p></body></html> - - + + Optional ESPs å¯é€‰ ESP - + List of esps and esms that can not be loaded by the game. 包å«äº†ä¸ä¼šè¢«æ¸¸æˆè½½å…¥çš„ esp å’Œ esm 的列表。 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2708,7 +2805,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -2719,103 +2816,116 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">大部分 Mod 没有å¯é€‰ esp,因此您正在看的很有å¯èƒ½åªæ˜¯ä¸€ä¸ªç©ºåˆ—表。</span></p></body></html> - + + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. + + + + + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. + + + + Make the selected mod in the lower list unavailable. 使下表中已选的 Mod å˜å¾—ä¸å¯ç”¨ã€‚ - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. 已选的 esp (在下表中) 将会被放入 Mod çš„å­ç›®å½•里,在游æˆé‡Œå°†ä¼šå˜å¾—“ä¸å¯è§â€ï¼Œå¹¶ä¸”之åŽå°±ä¸èƒ½å†è¢«æ¿€æ´»äº†ã€‚ - + Move a file to the data directory. 移动一个文件到 Data 目录。 - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. 移动一个 esp 文件到 esp 目录,这样它就å¯ä»¥åœ¨ä¸»çª—å£ä¸­å¯ç”¨äº†ã€‚请注æ„: ESP åªæ˜¯å˜å¾—“å¯ç”¨â€ï¼Œå®ƒå¹¶ä¸ä¸€å®šä¼šè¢«è½½å…¥ï¼æƒ³è¦è½½å…¥è¯·åœ¨ MO 的主窗å£ä¸­å‹¾é€‰ã€‚ - + ESPs in the data directory and thus visible to the game. ESP 在 Data 目录,因此它在游æˆé‡Œä¼šå˜å¾—å¯è§ã€‚ - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. 这些 Mod 文件ä½äºŽæ‚¨æ¸¸æˆçš„ (虚拟) Data 目录里,因此它们在主窗å£çš„ esp 列表中会å˜å¾—å¯é€‰ã€‚ - + Available ESPs å¯ç”¨ ESP - + Conflicts å†²çª - + The following conflicted files are provided by this mod ä»¥ä¸‹å†²çªæ–‡ä»¶ç”±æ­¤ Mod æä¾› - - + + File 文件 - + Overwritten Mods 覆盖的 Mod - + The following conflicted files are provided by other mods ä»¥ä¸‹å†²çªæ–‡ä»¶ç”±å…¶å®ƒ Mod æä¾› - + Providing Mod æä¾›çš„ Mod - + Non-Conflicted files éžå†²çªæ–‡ä»¶ - + Categories 类别 - + Primary Category - + Nexus Info Nç½‘ä¿¡æ¯ - + Mod ID Mod ID - + Mod ID for this mod on Nexus. N网上此 Mod çš„ ID。 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2828,7 +2938,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">N网上此 Mod çš„ ID,如果您在 MO 中下载并安装了 Mod 它将被自动填写,å¦åˆ™æ‚¨éœ€è¦æ‰‹åŠ¨è¾“å…¥ã€‚è¦æ‰¾åˆ°æ­£ç¡®çš„ ID,在N网找到 Mod。比如,åƒè¿™æ ·çš„链接: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a> 在上é¢çš„例å­ä¸­ï¼Œ1334å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。此外: 上é¢çš„就是 Mod Organizer 在N网的链接,为什么ä¸çŽ°åœ¨å°±åˆ°é‚£é‡ŒåŽ»èµžåŒæˆ‘呢?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2841,27 +2951,27 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Mod 的已安装版本,鼠标æç¤ºå°†æ˜¾ç¤ºN网上的当å‰ç‰ˆæœ¬ï¼Œå·²å®‰è£…的版本å·åªæœ‰åœ¨æ‚¨é€šè¿‡ MO æ¥å®‰è£… Mod 的时候æ‰ä¼šè‡ªåŠ¨å¡«å†™ã€‚</span></p></body></html> - + Version 版本 - + Refresh 刷新 - + Refresh all information from Nexus. - + Description æè¿° - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2887,20 +2997,21 @@ p, li { white-space: pre-wrap; } 类型 + Name - åç§° + åç§° Size (kB) å¤§å° (KB) - + Endorse - + Notes @@ -2913,17 +3024,17 @@ p, li { white-space: pre-wrap; } 您支æŒè¿‡è¿™ä¸ª Mod 了å—? - + Filetree 文件树 - + A directory view of this mod 这个 Mod 的目录视图 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2938,17 +3049,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">所åšçš„æ›´æ”¹å°†ä¼šç«‹å³ä½œç”¨äºŽç£ç›˜ä¸Šçš„æ–‡ä»¶ï¼Œæ‰€ä»¥è¯·</span><span style=" font-size:9pt; font-weight:600;">谨慎æ“作</span><span style=" font-size:9pt;">。</span></p></body></html> - + Previous - + Next 下一步 - + Close 关闭 @@ -2983,8 +3094,8 @@ p, li { white-space: pre-wrap; } &新建文件夹 - - + + Save changes? ä¿å­˜æ›´æ”¹å—? @@ -2993,79 +3104,79 @@ p, li { white-space: pre-wrap; } ä¿å­˜æ›´æ”¹åˆ° "%1"? - + File Exists 文件已存在 - + A file with that name exists, please enter a new one 文件å已存在,请输入其它åç§° - + failed to move file 无法移动文件 - + failed to create directory "optional" 无法创建 "optional" 目录 - - + + Info requested, please wait 请求信æ¯å·²å‘出,请ç¨åŽ - + (description incomplete, please visit nexus) (æè¿°ä¿¡æ¯ä¸å®Œæ•´ï¼Œè¯·è®¿é—®N网) - + Current Version: %1 当å‰ç‰ˆæœ¬: %1 - + No update available 没有å¯ç”¨çš„æ›´æ–° - + Main ä¸»è¦æ–‡ä»¶ - - + + Save changes to "%1"? - + Update æ›´æ–° - + Optional å¯é€‰æ–‡ä»¶ - + Old æ—§æ¡£ - + Misc æ‚项 - + Unknown 未知 @@ -3074,13 +3185,13 @@ p, li { white-space: pre-wrap; } 请求失败: %1 - + <a href="%1">Visit on Nexus</a> <a href="%1">访问N网</a> - - + + Confirm 确认 @@ -3097,85 +3208,110 @@ p, li { white-space: pre-wrap; } 例外: %1 - + Failed to delete %1 无法删除 %1 - + Are sure you want to delete "%1"? 确定è¦åˆ é™¤ "%1" å—? - + Are sure you want to delete the selected files? 确定è¦åˆ é™¤æ‰€é€‰çš„æ–‡ä»¶å—? - - + + New Folder 新建文件夹 - + Failed to create "%1" 无法创建 "%1" - - + + Replace file? æ›¿æ¢æ–‡ä»¶ï¼Ÿ - + There already is a hidden version of this file. Replace it? 已存在åŒå文件,但该文件被éšè—了。确定è¦è¦†ç›–å—? - - + + File operation failed 文件æ“作错误 - - + + Failed to remove "%1". Maybe you lack the required file permissions? 无法移除 "%1"。也许您需è¦è¶³å¤Ÿçš„æ–‡ä»¶æƒé™ï¼Ÿ - - + + failed to rename %1 to %2 无法é‡å‘½å %1 为 %2 - + There already is a visible version of this file. Replace it? 已存在åŒå文件。确定è¦è¦†ç›–å—? - + Un-Hide å–æ¶ˆéšè— - + Hide éšè— + + + Please enter a name + + + + + + Error + 错误 + + + + Invalid name. Must be a valid file name + + + + + A tweak by that name exists + + + + + Create Tweak + + ModInfoOverwrite - Overwrite - 覆盖 + 覆盖 - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) æ­¤è™šæ‹Ÿå®‰è£…åŒ…å†…åŒ…å«æ¥è‡ªè™šæ‹Ÿ Data 树的文件,但文件å‘生了å˜åŒ– (例: 被CK修改了) @@ -3183,17 +3319,17 @@ p, li { white-space: pre-wrap; } ModInfoRegular - + failed to write %1/meta.ini: %2 无法写入 %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 ä¸­æœªåŒ…å« esp 或 esm 和有效的目录 (textures, meshes, interface, ...) - + Categories: <br> ç§ç±»: <br> @@ -3201,7 +3337,7 @@ p, li { white-space: pre-wrap; } ModList - + Confirm 确认 @@ -3218,9 +3354,8 @@ p, li { white-space: pre-wrap; } 无效的行索引 %1 - Overwrite - 覆盖 + 覆盖 @@ -3271,17 +3406,17 @@ p, li { white-space: pre-wrap; } 最高值 - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. @@ -3290,7 +3425,7 @@ p, li { white-space: pre-wrap; } %1 ä¸­æœªåŒ…å« esp 或 esm 和有效的目录 (textures, meshes, interface, ...) - + Categories: <br> ç§ç±»: <br> @@ -3299,7 +3434,7 @@ p, li { white-space: pre-wrap; } æ­¤è™šæ‹Ÿå®‰è£…åŒ…å†…åŒ…å«æ¥è‡ªè™šæ‹Ÿ Data 树的文件,但文件å‘生了å˜åŒ– (例: 被CK修改了) - + installed version: %1, newest version: %2 当å‰ç‰ˆæœ¬: %1,最新版本: %2 @@ -3312,83 +3447,88 @@ p, li { white-space: pre-wrap; } Mod åç§° - + Version 版本 - + Version of the mod (if available) Mod 版本 (如果å¯ç”¨) - + Priority 优先级 - + invalid - + + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". + + + + Invalid name - + drag&drop failed: %1 - + Flags - + Mod Name - + Category - + Nexus ID - + Installation - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Mod 的安装优先级。越高就表示越“é‡è¦â€ï¼Œä»Žè€Œè¦†ç›–掉低优先级的 Mod 文件。 - + Time this mod was installed - + Are you sure you want to remove "%1"? 确定è¦ç§»é™¤ "%1" å—? @@ -3424,12 +3564,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites 覆盖 - + not implemented 未实现 @@ -3438,11 +3578,16 @@ p, li { white-space: pre-wrap; } NXMAccessManager + Logging into Nexus + + + + timeout è¶…æ—¶ - + Please check your password è¯·æ£€æŸ¥æ‚¨çš„å¯†ç  @@ -3492,17 +3637,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response 未å“应 - + invalid response 无效的å“应 @@ -4429,34 +4574,34 @@ Right now this has very limited functionality &新建文件夹 - + Failed to delete "%1" 无法删除 "%1" - - + + Confirm 确认 - + Are sure you want to delete "%1"? 确定è¦åˆ é™¤ "%1" å—? - + Are sure you want to delete the selected files? 确定è¦åˆ é™¤æ‰€é€‰çš„æ–‡ä»¶å—? - - + + New Folder 新建文件夹 - + Failed to create "%1" 无法创建 "%1" @@ -4468,70 +4613,85 @@ Right now this has very limited functionality ESP 文件没有找到: %1 - + Mod Index - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + + failed to update esp info for file %1 (source id: %2), error: %3 + + + + esp not found: %1 - - + + Confirm 确认 - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 无法打开输出文件: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. 您的一些æ’ä»¶å称无效ï¼è¿™äº›æ’件无法被游æˆè½½å…¥ã€‚请查看 mo_interface.log æ¥ç¡®è®¤é‚£äº›å—å½±å“çš„æ’ä»¶å¹¶é‡å‘½å它们。 - + + Missing Masters + + + + + Enabled Masters + + + + failed to restore load order for %1 @@ -4544,17 +4704,17 @@ Right now this has very limited functionality 最高值 - + This plugin can't be disabled (enforced by the game) 这个æ’ä»¶ä¸èƒ½è¢«ç¦ç”¨ (ç”±æ¸¸æˆæ‰§è¡Œ) - + Origin: %1 隶属于: %1 - + Name åç§° @@ -4563,7 +4723,7 @@ Right now this has very limited functionality Mod åç§° - + Priority 优先级 @@ -4592,22 +4752,28 @@ Right now this has very limited functionality <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - fix - + + Close + 关闭 - + + Fix - + No guided fix @@ -4619,72 +4785,82 @@ p, li { white-space: pre-wrap; } 无法应用 Ini 设定 - + invalid profile name %1 - + failed to create %1 无法创建 %1 - + + failed to open temporary file + + + + failed to open "%1" for writing - + + failed to write mod list: %1 + + + + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - - - - - + + + + + invalid index %1 无效的索引 %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 无效的优先级 %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 æ— æ³•è§£æž Ini 文件 (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) @@ -4900,37 +5076,61 @@ p, li { white-space: pre-wrap; } 请输入é…置文件的åç§° - + failed to copy profile: %1 无法å¤åˆ¶é…置文件: %1 - + + Invalid name + + + + + Invalid profile name + + + + Confirm 确认 - + + Are you sure you want to remove this profile (including local savegames if any)? + + + + + Profile broken + + + + + This profile you're about to delete seems to be broken or the path is invalid. I'm about to delete the following folder: "%1". Proceed? + + + Are you sure you want to remove this profile? - 确定è¦ç§»é™¤è¿™ä¸ªé…ç½®å—? + 确定è¦ç§»é™¤è¿™ä¸ªé…ç½®å—? - + Rename Profile - + New Name - + failed to change archive invalidation state: %1 æ— æ³•æ”¹å˜æ¡£æ¡ˆæ— æ•ˆåŒ–状æ€: %1 - + failed to determine if invalidation is active: %1 无法确定无效化是å¦è¢«æ¿€æ´»: %1 @@ -4938,20 +5138,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories 无法ä¿å­˜è‡ªå®šä¹‰ç±»åˆ« - - - - + + + + invalid index %1 无效的索引 %1 - + invalid category id %1 无效的类别 %1 @@ -4967,7 +5167,7 @@ p, li { white-space: pre-wrap; } æ— æ³•ç¡®è®¤å¸æˆ·åç§° - + invalid 7-zip32.dll: %1 无效的 7-zip32.dll: %1 @@ -5037,12 +5237,12 @@ p, li { white-space: pre-wrap; } 无法设置代ç†DLL加载 - + "%1" is missing "%1" 缺失 - + Permissions required éœ€è¦æƒé™ @@ -5051,8 +5251,8 @@ p, li { white-space: pre-wrap; } 当å‰çš„ç”¨æˆ·å¸æˆ·æ²¡æœ‰è¿è¡Œ Mod Organizer 所需的访问æƒé™ï¼Œå¿…è¦çš„修改将会自动进行 (MO 的目录将会为当å‰ç”¨æˆ·å¸æˆ·è€Œå˜å¾—å¯å†™),您将被请求使用管ç†å‘˜æƒé™æ‰§è¡Œ "mo_helper.exe"。 - - + + Woops 糟糕 @@ -5061,61 +5261,66 @@ p, li { white-space: pre-wrap; } Mod Organizer 崩溃了ï¼è¦ç”Ÿæˆè¯Šæ–­æ–‡ä»¶å—?如果您å‘é€è¿™ä¸ªæ–‡ä»¶åˆ°æˆ‘的邮箱 (sherb@gmx.net) 里的è¯ï¼Œè¿™ä¸ª Bug 会很有å¯èƒ½è¢«ä¿®å¤ã€‚ - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 Mod Organizer 崩溃了ï¼é—憾的是,我无法生æˆè¯Šæ–­æ–‡ä»¶: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Mod Organizer 的一个实例正在è¿è¡Œ - + No game identified in "%1". The directory is required to contain the game binary and its launcher. "%1" 中未检测到游æˆã€‚请确ä¿è¯¥è·¯å¾„ä¸­åŒ…å«æ¸¸æˆæ‰§è¡Œç¨‹åºä»¥åŠå¯¹åº”çš„ Launcher 文件。 - - + + Please select the game to manage 请选择想è¦ç®¡ç†çš„æ¸¸æˆ - + + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) + + + + Please use "Help" from the toolbar to get usage instructions to all elements 请使用工具æ ä¸Šçš„â€œå¸®åŠ©â€æ¥èŽ·å¾—æ‰€æœ‰å…ƒç´ çš„ä½¿ç”¨è¯´æ˜Ž - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 无法解æžé…置文件 %1: %2 - - + + failed to find "%1" 未能找到 "%1" @@ -5124,17 +5329,17 @@ p, li { white-space: pre-wrap; } ç¼–ç é”™è¯¯ï¼Œè¯·å‘作者汇报此 Bug 并且附上 mo_interface.log æ–‡ä»¶ï¼ - + failed to access %1 无法访问 %1 - + failed to set file time %1 无法设置文件时间 %1 - + failed to create %1 无法创建 %1 @@ -5170,12 +5375,12 @@ p, li { white-space: pre-wrap; } 无法打开 %1 - + Script Extender 脚本拓展 - + Proxy DLL 代ç†DLL @@ -5318,9 +5523,8 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe QuestionBoxMemory - Remember selection - è®°ä½æˆ‘的选择 + è®°ä½æˆ‘的选择 @@ -5428,9 +5632,9 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - - - + + + Update æ›´æ–° @@ -5440,57 +5644,57 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 有å¯ç”¨çš„æ›´æ–° (最新版本: %1),您想è¦å®‰è£…它å—? - + Download in progress 正在下载 - + Download failed: %1 下载失败: %1 - + Failed to install update: %1 无法安装更新: %1 - + failed to open archive "%1": %2 无法打开压缩包 "%1": %2 - + failed to move outdated files: %1. Please update manually. - + Update installed, Mod Organizer will now be restarted. 更新完æˆï¼ŒMod Organizer çŽ°åœ¨å°†é‡æ–°å¯åŠ¨ã€‚ - + Error 错误 - + Failed to parse response. Please report this as a bug and include the file mo_interface.log. è§£æžå“应时å‘生错误。请回报此 Bug 并附上 mo_interface.logï¼ - + No incremental update available for this version, the complete package needs to be downloaded (%1 kB) 没有å¯ç”¨äºŽæ­¤ç‰ˆæœ¬çš„æ›´æ–°æ–‡ä»¶ï¼Œéœ€è¦ä¸‹è½½å®Œæ•´çš„安装包 (%1 KB) - + no file for update found. Please update manually. - + No download server available. Please try again later. 没有å¯ç”¨çš„下载æœåŠ¡å™¨ï¼Œè¯·ç¨åŽå†å°è¯•下载。 @@ -5499,7 +5703,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 未找到更新文件 - + Failed to retrieve update information: %1 无法检索更新信æ¯: %1 @@ -5507,26 +5711,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - setting for invalid plugin "%1" requested - + Administrative rights required to change this. + 需è¦ç®¡ç†å‘˜çš„æƒé™æ¥æ›´æ”¹è¿™ä¸ªã€‚ - - invalid setting "%1" requested for plugin "%2" + + + attempt to store setting for unknown plugin "%1" - Administrative rights required to change this. - 需è¦ç®¡ç†å‘˜çš„æƒé™æ¥æ›´æ”¹è¿™ä¸ªã€‚ - - - + Confirm 确认 - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? 修改 Mod ç›®å½•å°†ä¼šå½±å“æ‚¨çš„é…ç½®ï¼æ–°ç›®å½•中ä¸å­˜åœ¨ (或者åç§°ä¸åŒ) çš„ Mod 将在所有é…ç½®ä¸­è¢«ç¦æ­¢æŽ‰ã€‚æ­¤æ“作无法撤销,所以执行此æ“作å‰å»ºè®®å…ˆå¤‡ä»½ä¸‹è‡ªå·±çš„é…ç½®ã€‚ç«‹å³æ‰§è¡Œï¼Ÿ @@ -5715,7 +5915,12 @@ p, li { white-space: pre-wrap; } - + + Blacklisted Plugins (use <del> to remove): + + + + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5811,47 +6016,47 @@ p, li { white-space: pre-wrap; } - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds 解决方案 - + Steam App ID Steam App ID - + The Steam AppID for your game 您游æˆçš„ Steam AppID - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -5878,12 +6083,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">其中 22380 å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。</span></p></body></html> - + Load Mechanism 加载机制 - + Select loading mechanism. See help for details. 选择加载机制,使用帮助查看更多细节。 @@ -5908,17 +6113,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt; font-weight:600;">代ç†DLL</span><span style=" font-size:9pt;"> åœ¨è¿™ç§æ¨¡å¼ä¸‹ï¼ŒMO 将替æ¢ä¸€ä¸ªæ¸¸æˆçš„ dll æ¥åŠ è½½ MO (当然原æ¥çš„ dll),这仅适用于 Steam 版本的游æˆï¼Œå¹¶ä¸”åªåœ¨ Skyrim 上åšè¿‡æµ‹è¯•。请åªåœ¨å…¶å®ƒåŠ è½½æœºåˆ¶ä¸èƒ½å·¥ä½œçš„æƒ…况下æ‰ä½¿ç”¨å®ƒã€‚</span></p></body></html> - + NMM Version NMM 版本 - + The Version of Nexus Mod Manager to impersonate. æƒ³è¦æ¨¡æ‹Ÿçš„ NMM 版本å·ã€‚ - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -5931,7 +6136,7 @@ tl;dr-version: If Nexus-features don't work, insert the current version num å˜æ›´ç‰ˆæœ¬å·: 如果Nç½‘åŠŸèƒ½ä¸æ­£å¸¸äº†ï¼Œé‚£ä¹ˆè¯·åœ¨è¿™é‡Œè¾“å…¥ NMM 的当å‰ç‰ˆæœ¬å·å¹¶é‡è¯•一下。 - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -5944,48 +6149,48 @@ tl;dr-version: If Nexus-features don't work, insert the current version num 例如: 0.33.1 - + Enforces that inactive ESPs and ESMs are never loaded. 强制执行,未激活的 ESP å’Œ ESM å°†ä¸ä¼šè¢«åŠ è½½ã€‚ - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. 看æ¥ï¼Œæ¸¸æˆå¶å°”ä¼šåŠ è½½ä¸€äº›æ²¡æœ‰è¢«æ¿€æ´»æˆæ’ä»¶çš„ ESP 或 ESM 文件。 我还尚ä¸çŸ¥é“它在什么情况下会这样,但是有用户报告说它在æŸäº›æƒ…况下是很ä¸å¿…è¦çš„。如果这个选项被选中,那么在列表中没有被勾选的 ESP å’Œ ESM å°†ä¸ä¼šåœ¨æ¸¸æˆä¸­å‡ºçŽ°ï¼Œå¹¶ä¸”ä¹Ÿä¸ä¼šè¢«è½½å…¥ã€‚ - + Hide inactive ESPs/ESMs éšè—未激活的 ESP 或 ESM - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! 对于天际,这个å¯ä»¥ç”¨æ¥å–代档案无效化,它将会使档案无效化对所有é…置都å˜å¾—多余。 但是对于其它游æˆï¼Œè¿™å¹¶ä¸æ˜¯ä¸€ä¸ªå¾ˆå¥½çš„æ›¿ä»£å“ï¼ - + Back-date BSAs é‡ç½® BSA 文件修改日期 @@ -5994,27 +6199,27 @@ For the other games this is not a sufficient replacement for AI! 这些是 Mod Organizer 的问题解决方案。它们通常是ä¸å¿…修改的,请确ä¿åœ¨æ‚¨å˜æ›´äº†è¿™é‡Œçš„任何东西之å‰å·²ç»è¯»è¿‡äº†å¸®åŠ©æ–‡æ¡£ã€‚ - + Select download directory 选择下载目录 - + Select mod directory 选择 Mod 目录 - + Select cache directory 选择缓存目录 - + Confirm? 确认? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? æ­¤æ“作将导致之å‰å‹¾é€‰çš„â€œè®°ä½æˆ‘的选项â€è¯¢é—®çª—å£å†æ¬¡å‡ºçŽ°ï¼Œç¡®å®šè¦é‡ç½®å¯¹è¯æ¡†ï¼Ÿ diff --git a/src/organizer_zh_TW.qm b/src/organizer_zh_TW.qm index 73a06572..8cbe75e4 100644 Binary files a/src/organizer_zh_TW.qm and b/src/organizer_zh_TW.qm differ diff --git a/src/organizer_zh_TW.ts b/src/organizer_zh_TW.ts index c6868f95..70b41e50 100644 --- a/src/organizer_zh_TW.ts +++ b/src/organizer_zh_TW.ts @@ -255,7 +255,7 @@ p, li { white-space: pre-wrap; } å®Œæˆ - + Information missing, please select "Query Info" from the context menu to re-retrieve. 訊æ¯ä¸Ÿå¤±ï¼Œè«‹åœ¨å³éµèœå–®è£¡é¸æ“‡â€œæŸ¥è©¢è¨Šæ¯â€ä¾†é‡æ–°æª¢ç´¢ã€‚ @@ -268,11 +268,6 @@ p, li { white-space: pre-wrap; } Placeholder å ä½ç¬¦ - - - 0 - - KB @@ -336,60 +331,65 @@ p, li { white-space: pre-wrap; } å®Œæˆ - - - - + + + + Are you sure? 確定? - + This will remove all finished downloads from this list and from disk. 這將會從列表和ç£ç¢Ÿä¸­ç§»é™¤æ‰€æœ‰å·²å®Œæˆçš„下載。 - + This will remove all installed downloads from this list and from disk. 這將會從列表和ç£ç¢Ÿä¸­ç§»é™¤æ‰€æœ‰å·²å®‰è£çš„下載項目。 - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Install å®‰è£ - + Query Info æŸ¥è©¢è¨Šæ¯ - + Delete - + + Un-Hide + å–æ¶ˆéš±è— + + + Remove from View - + Remove 移除 - + Cancel å–æ¶ˆ @@ -409,32 +409,32 @@ p, li { white-space: pre-wrap; } - + Pause æš«åœ - + Resume 繼續 - + Delete Installed... - + Delete All... - + Remove Installed... 移除已安è£çš„é …ç›®... - + Remove All... 移除所有... @@ -442,60 +442,65 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? 確定? - + This will remove all finished downloads from this list and from disk. 這將會從列表和ç£ç¢Ÿä¸­ç§»é™¤æ‰€æœ‰å·²å®Œæˆçš„下載。 - + This will remove all installed downloads from this list and from disk. 這將會從列表和ç£ç¢Ÿä¸­ç§»é™¤æ‰€æœ‰å·²å®‰è£çš„下載項目。 - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install å®‰è£ - + Query Info æŸ¥è©¢è¨Šæ¯ - + Delete - + + Un-Hide + å–æ¶ˆéš±è— + + + Remove from View - + Remove 移除 - + Cancel å–æ¶ˆ @@ -510,32 +515,32 @@ p, li { white-space: pre-wrap; } - + Pause æš«åœ - + Resume 繼續 - + Delete Installed... - + Delete All... - + Remove Installed... 移除已安è£çš„é …ç›®... - + Remove All... 移除所有... @@ -543,67 +548,80 @@ p, li { white-space: pre-wrap; } DownloadManager - + failed to rename "%1" to "%2" 釿–°å‘½å "%1 "為 "%2" 時出錯 - + Download again? 釿–°ä¸‹è¼‰ï¼Ÿ - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. 已存在åŒå檔案。您確定è¦é‡æ–°ä¸‹è¼‰ï¼Ÿæ–°æª”案將使用ä¸åŒçš„æª”案å。 - + failed to download %1: could not open output file: %2 下載 %1 失敗: 無法開啟輸出檔案: %2 - - - - - - + + Wrong Game + + + + + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". + + + + + - - - - + + + + + + + + + + + invalid index 無效的索引 - + failed to delete %1 無法刪除 %1 - + failed to delete meta file for %1 無法從 %1 中刪除 mate 檔案 - - - - - - + + + + + + invalid index %1 無效的索引 %1 - + Please enter the nexus mod id 請輸入Nç¶² Mod ID - + Mod ID: Mod ID: @@ -612,38 +630,38 @@ p, li { white-space: pre-wrap; } 無效的字順索引 %1 - + Information updated 訊æ¯å·²æ›´æ–° - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? 無法在N網上找到匹é…的檔案ï¼ä¹Ÿè¨±é€™å€‹æª”案已經ä¸å­˜åœ¨äº†æˆ–是它改å了? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. 所é¸çš„æª”案無法在N網上找到å¯åŒ¹é…çš„é …ç›®ï¼Œè«‹æ‰‹å‹•é¸æ“‡æ­£ç¢ºçš„一個。 - + No download server available. Please try again later. 沒有å¯ç”¨çš„下載伺æœå™¨ï¼Œè«‹ç¨å¾Œå†å˜—試下載。 - + Failed to request file info from nexus: %1 無法在N網上請求檔案訊æ¯: %1 - + Download failed: %1 (%2) 下載失敗: %1 (%2) - + failed to re-open %1 ç„¡æ³•é‡æ–°é–‹å•Ÿ %1 @@ -1092,12 +1110,12 @@ p, li { white-space: pre-wrap; } mo_archive.dll 未加載: "%1" - + Password required 需è¦å¯†ç¢¼ - + Password 密碼 @@ -1119,8 +1137,8 @@ p, li { white-space: pre-wrap; } - - + + Extracting files 正在解壓檔案 @@ -1155,7 +1173,7 @@ Note: This installer will not be aware of other installed mods! 安è£å¤±æ•— (錯誤代碼 %1) - + File format "%1" not supported æš«ä¸æ”¯æŒæª”案格å¼: "%1" @@ -1164,32 +1182,32 @@ Note: This installer will not be aware of other installed mods! 無法開啟壓縮包 "%1": %2 - + archive.dll not loaded: "%1" - + failed to create backup - + Mod Name - + Name å稱 - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1206,52 +1224,52 @@ Note: This installer will not be aware of other installed mods! è«‹å®‰è£ NCC - + None of the available installer plugins were able to handle that archive - + no error 沒有錯誤 - + 7z.dll not found 未找到 7z.dll - + 7z.dll isn't valid 無效的 7z.dll - + archive not found 未找到壓縮包 - + failed to open archive 無法開啟壓縮包 - + unsupported archive type 䏿”¯æŒçš„壓縮包類型 - + internal library error 內部庫錯誤 - + archive invalid 無效的壓縮包 - + unknown archive error 未知壓縮包錯誤 @@ -1290,12 +1308,12 @@ Note: This installer will not be aware of other installed mods! MOApplication - + an error occured: %1 發生錯誤: %1 - + an error occured 發生錯誤 @@ -1371,7 +1389,7 @@ p, li { white-space: pre-wrap; } - + Namefilter @@ -1504,67 +1522,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye 這裡勾é¸çš„ BSA 將會ä¾å¾žæ‚¨çš„安è£é †åºï¼Œä¸¦ä¸”會自行調整加載順åºã€‚ - - + + File 檔案 - - - Mod - Mod + + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> + - - <html><head/><body><p>Marked Archives (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + + Mod + Mod - + Data Data - + refresh data-directory overview 釿–°æ•´ç† Data 目錄總覽 - + Refresh the overview. This may take a moment. 釿–°æ•´ç†ç¸½è¦½ï¼Œé€™å¯èƒ½éœ€è¦ä¸€äº›æ™‚間。 - - - + + + Refresh 釿–°æ•´ç† - + This is an overview of your data directory as visible to the game (and tools). é€™æ˜¯åœ¨éŠæˆ²ä¸­å¯è¦‹çš„ Data 目錄 (和工具) 的總覽。 - - + + Filter the above list so that only conflicts are displayed. éŽæ¿¾ä¸Šé¢çš„列表,使您åªèƒ½çœ‹åˆ°æœ‰è¡çªçš„æª”案。 - + Show only conflicts åªé¡¯ç¤ºè¡çª - + Saves 存檔 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1581,155 +1598,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">如果您在å³éµèœå–®ä¸­é»žæ“Šâ€œä¿®å¾© Modâ€ï¼Œé‚£éº¼ MO 便會嘗試激活所有 Mod å’Œ esp 來修復那些缺失的 espï¼Œå®ƒä¸¦ä¸æœƒç¦ç”¨ä»»ä½•æ±è¥¿ï¼</span></p></body></html> - + Downloads 下載 - + This is a list of mods you downloaded from Nexus. Double click one to install it. 這是當å‰å·²ä¸‹è¼‰çš„ Mod 的列表,雙擊進行安è£ã€‚ - + Compact 緊湊 - + + Show Hidden + + + + Tool Bar 工具欄 - + Install Mod å®‰è£ Mod - + Install &Mod å®‰è£ &Mod - + Install a new mod from an archive 通éŽå£“縮包來安è£ä¸€å€‹æ–° Mod - + Ctrl+M Ctrl+M - + Profiles é…置檔案 - + &Profiles &é…置檔案 - + Configure Profiles 設定é…置檔案 - + Ctrl+P Ctrl+P - + Executables å¯åŸ·è¡Œç¨‹å¼ - + &Executables &å¯åŸ·è¡Œç¨‹å¼ - + Configure the executables that can be started through Mod Organizer é…ç½®å¯é€šéŽ MO ä¾†å•Ÿå‹•çš„ç¨‹å¼ - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings 設定 - + &Settings &設定 - + Configure settings and workarounds é…置設定和解決方案 - + Ctrl+S Ctrl+S - + Nexus Nç¶² - + Search nexus network for more mods æœå°‹N網以ç²å–更多 Mod - + Ctrl+N Ctrl+N - - + + Update æ›´æ–° - + Mod Organizer is up-to-date Mod Organizer ç¾åœ¨æ˜¯æœ€æ–°ç‰ˆæœ¬ - - + + No Problems 沒有å•題 - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1740,54 +1762,54 @@ Right now this has very limited functionality ç•¶å‰æ­¤åŠŸèƒ½æ‰€èƒ½æä¾›çš„é …ç›®éžå¸¸æœ‰é™ - - + + Help 幫助 - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems å•題 - + There are potential problems with your setup 您的安è£ä¸­å­˜åœ¨æ½›åœ¨çš„å•題 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1804,22 +1826,22 @@ Right now this has very limited functionality <li>.Net æœªå®‰è£æˆ–版本éŽèˆŠã€‚想è¦é‹è¡Œ NCC æ‚¨å¿…é ˆå…ˆå®‰è£ .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­ç²å–: <a href="%1">%1</a></li> - + Help on UI 介é¢å¹«åŠ© - + Documentation Wiki 說明文檔 (維基) - + Report Issue 報告å•題 - + Tutorials @@ -1828,374 +1850,431 @@ Right now this has very limited functionality ç„¡æ³•å„²å­˜åŠ è¼‰é †åº - + failed to save load order: %1 無法儲存加載順åº: %1 - + failed to save archives order, do you have write access to "%1"? 無法儲存檔案順åºï¼Œæ‚¨ç¢ºå®šæ‚¨æœ‰æ¬Šé™æ›´æ”¹ "%1"? - + Name å稱 - + Please enter a name for the new profile - + failed to create profile: %1 無法建立é…置檔案: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下載 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨é€²è¡Œä¸­çš„下載,您確定è¦é€€å‡ºå—Žï¼Ÿ - + failed to read savegame: %1 無法讀å–存檔: %1 - + Plugin "%1" failed: %2 - + + Plugin error + + + + + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? +(Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) + + + + Failed to start "%1" 無法啟動 "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 當您登入 Steam 時請點擊確定。 - + "%1" not found "%1" 未找到 - + Start Steam? 啟動 Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¢ºåœ°å•Ÿå‹•éŠæˆ²ï¼ŒSteam 必須處於é‹è¡Œç‹€æ…‹ï¼ŒMO è¦ç«‹å³å•Ÿå‹• Steam 嗎? - + Also in: <br> 也在: <br> - + No conflict 沒有è¡çª - + <Edit...> <編輯...> - + + Failed to refresh list of esps: %s + + + + This bsa is enabled in the ini file so it may be required! 該 BSA 已在 Ini 檔案中啟用,因此它å¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此檔案還是會被加載,因為存在åŒåæ’件。ä¸éŽå®ƒæ‰€åŒ…å«çš„çš„æª”æ¡ˆä¸æœƒéµå¾ªå®‰è£é †åºï¼ - + Activating Network Proxy - - + + Installation successful å®‰è£æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 設定檔案,您想ç¾åœ¨å°±å°å®ƒå€‘進行é…置嗎? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled 安è£å·²å–消 - - + + The mod was not installed completely. Mod 沒有完全安è£ã€‚ - + Some plugins could not be loaded - - - Description missing + + Too many esps and esms enabled - - The following Plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:<ul> + + + Description missing - + Choose Mod 鏿“‡ Mod - + Mod Archive Mod 壓縮包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 開始下載 - + failed to update mod list: %1 無法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 ç„¡æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 無法開啟 %1 - + failed to change origin name: %1 無法更改原始檔案å: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + + Continue? + + + + + The versioning scheme decides which version is considered newer than another. +This function will guess the versioning scheme under the assumption that the installed version is outdated. + + + + + Sorry + + + + + I don't know a versioning scheme where %1 is newer than %2. + + + + <All> <全部> - + <Checked> <已勾é¸> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: + + + + + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + + Failed to move "%1" from mod "%2" to "%3": %4 + + + + <Unchecked> <未勾é¸> - + <Update> <有更新> - + <No category> <無類別> - + <Conflicted> - + + <Not Endorsed> + + + + failed to rename mod: %1 ç„¡æ³•é‡æ–°å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm ç¢ºèª - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 無法移動 Mod: %1 - - + + Failed 失敗 - + Installation file no longer exists å®‰è£æª”案ä¸è¤‡å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 舊版 MO 安è£çš„ Mod ç„¡æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£ã€‚ - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解壓 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€å€‹ BSA。您確定è¦è§£å£“嗎? (解壓完æˆå¾Œï¼ŒBSA 檔案將會被刪除。如果您ä¸çž­è§£ BSA çš„è©±ï¼Œè«‹é¸æ“‡â€œå¦â€) - - - + + + failed to read %1: %2 ç„¡æ³•è®€å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 壓縮包 Hash 值錯誤。部分檔案å¯èƒ½å·²ç¶“æå£žã€‚ - + Nexus ID for this Mod is unknown æ­¤ Mod çš„Nç¶² ID 未知 @@ -2208,371 +2287,391 @@ Please enter a name: 鏿“‡å„ªå…ˆç´š - + Really enable all visible mods? 確定è¦å•Ÿç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Really disable all visible mods? 確定è¦ç¦ç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... å®‰è£ Mod... - + Enable all visible 啟用所有å¯è¦‹é …ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è¦‹é …ç›® - + Check all for update 檢查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... - + Set Category 設定類別 - + Primary Category - + + Change versioning scheme + + + + + Un-ignore update + + + + + Ignore update + + + + Rename Mod... 釿–°å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£ Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N網上æµè¦½ - + Open in explorer 在檔案總管中開啟 - + Information... 訊æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + Fix Mods... 修復 Mod... - - + + failed to remove %1 無法刪除 %1 - - + + failed to create %1 無法建立 %1 - + Can't change download directory while downloads are in progress! 下載檔案時ä¸èƒ½ä¿®æ”¹ä¸‹è¼‰ç›®éŒ„ï¼ - + Download failed 下載失敗 - + failed to write to file %1 無法寫入檔案 %1 - + %1 written 已寫入 %1 - + Select binary 鏿“‡å¯åŸ·è¡Œæª”案 - + Binary - + Enter Name 輸入å稱 - + Please enter a name for the executable 請為程å¼è¼¸å…¥ä¸€å€‹å稱 - + Not an executable 䏿˜¯å¯åŸ·è¡Œç¨‹å¼ - + This is not a recognized executable. 無法識別的å¯åŸ·è¡Œæª”案 - - + + Replace file? å–代檔案? - + There already is a hidden version of this file. Replace it? 已存在åŒå檔案,但該檔案被隱è—了。確定è¦è¦†è“‹å—Žï¼Ÿ - - + + File operation failed 檔案æ“作錯誤 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 開啟/執行 - + Add as Executable 添加為å¯åŸ·è¡Œæª”案 - + Un-Hide å–æ¶ˆéš±è— - + Hide éš±è— - + Write To File... 寫入檔案... - + Do you want to endorse Mod Organizer on %1 now? - + + Remove + 移除 + + + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful 登入æˆåŠŸ - + login failed: %1. Trying to download anyway 登入失敗: %1,請嘗試使用別的方法下載 - + login failed: %1 無法登入: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登入失敗: %1。您需è¦ç™»å…¥åˆ°Nç¶²æ‰èƒ½æ›´æ–° MO - + Error 錯誤 - + failed to extract %1 (errorcode %2) 無法解壓 %1 (錯誤代碼 %2) - + Extract... 解壓... - + Edit Categories... 編輯類別... - + Enable all 全部啟用 - + Disable all 全部ç¦ç”¨ @@ -2606,7 +2705,7 @@ Please enter a name: ModInfoBackup - + This is the backup of a mod @@ -2635,7 +2734,7 @@ Please enter a name: - + Save 儲存 @@ -2655,51 +2754,49 @@ Please enter a name: Mod 目錄裡包å«çš„ Ini 檔案的列表,這些檔案通常用來é…ç½® Mod 的行為,如果有å¯è¨­å®šçš„åƒæ•¸çš„話。 - + Save changes to the file. 儲存更改到檔案中。 - + Save changes to the file. This overwrites the original. There is no automatic backup! å„²å­˜æ›´æ”¹åˆ°æª”æ¡ˆä¸­ï¼Œé€™å°‡æœƒè¦†è“‹åŽŸå§‹æª”æ¡ˆï¼Œä¸¦ä¸”æ²’æœ‰è‡ªå‹•å‚™ä»½ï¼ - + Images 圖片 - + Images located in the mod. 使–¼ Mod 中的圖片。 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">這裡列出了所有在 Mod 目錄裡的圖片 (.jpg å’Œ .png),如截圖等。點擊其中的一個來ç²å¾—較大的視圖。</span></p></body></html> - - + + Optional ESPs å¯é¸ ESP - + List of esps and esms that can not be loaded by the game. 包å«äº†ä¸æœƒè¢«éŠæˆ²è¼‰å…¥çš„ esp å’Œ esm 的列表。 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2708,7 +2805,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">They usually contain optional functionality, see the readme.</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Most mods do not have optional esps, so chances are good you are looking at an empty list.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -2719,103 +2816,116 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">大部分 Mod 沒有å¯é¸ esp,因此您正在看的很有å¯èƒ½åªæ˜¯ä¸€å€‹ç©ºåˆ—表。</span></p></body></html> - + + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. + + + + + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. +They usually contain optional functionality, see the readme. + +Most mods do not have optional esps, so chances are good you are looking at an empty list. + + + + Make the selected mod in the lower list unavailable. 使下表中已é¸çš„ Mod 變得ä¸å¯ç”¨ã€‚ - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. å·²é¸çš„ esp (在下表中) 將會被放入 Mod çš„å­ç›®éŒ„è£¡ï¼Œåœ¨éŠæˆ²è£¡å°‡æœƒè®Šå¾—“ä¸å¯è¦‹â€ï¼Œä¸¦ä¸”之後就ä¸èƒ½å†è¢«æ¿€æ´»äº†ã€‚ - + Move a file to the data directory. 移動一個檔案到 Data 目錄。 - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. 移動一個 esp 檔案到 esp 目錄,這樣它就å¯ä»¥åœ¨ä¸»çª—å£ä¸­å•Ÿç”¨äº†ã€‚請注æ„: ESP åªæ˜¯è®Šå¾—“å¯ç”¨â€ï¼Œå®ƒå¹¶ä¸ä¸€å®šæœƒè¢«è¼‰å…¥ï¼æƒ³è¦è½½å…¥è¯·åœ¨ MO 的主窗å£ä¸­å‹¾é¸ã€‚ - + ESPs in the data directory and thus visible to the game. ESP 在 Data 目錄,因此它在游戲裡會變得å¯è¦‹ã€‚ - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. 這些 Mod æª”æ¡ˆä½æ–¼æ‚¨æ¸¸æˆ²çš„ (虛擬) Data 目錄裡,因此它們在主窗å£çš„ esp 列表中會變得å¯é¸ã€‚ - + Available ESPs å¯ç”¨ ESP - + Conflicts è¡çª - + The following conflicted files are provided by this mod 以下è¡çªæª”案由此 Mod æä¾› - - + + File 檔案 - + Overwritten Mods 覆蓋的 Mod - + The following conflicted files are provided by other mods 以下è¡çªæª”案由其它 Mod æä¾› - + Providing Mod æä¾›çš„ Mod - + Non-Conflicted files éžè¡çªæª”案 - + Categories 類別 - + Primary Category - + Nexus Info Nç¶²è¨Šæ¯ - + Mod ID Mod ID - + Mod ID for this mod on Nexus. N網上此 Mod çš„ ID。 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2828,7 +2938,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">N網上此 Mod çš„ ID,如果您在 MO 中下載並安è£äº† Mod 它將被自動填寫,å¦å‰‡æ‚¨éœ€è¦æ‰‹å‹•è¼¸å…¥ã€‚è¦æ‰¾åˆ°æ­£ç¢ºçš„ ID,在N網找到 Mod。比如,åƒé€™æ¨£çš„連çµ: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a> 在上é¢çš„例å­ä¸­ï¼Œ1334å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。此外: 上é¢çš„就是 Mod Organizer 在N網的連çµï¼Œç‚ºä»€éº¼ä¸ç¾åœ¨å°±åˆ°é‚£è£¡åŽ»è´ŠåŒæˆ‘呢?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2841,27 +2951,27 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Mod 的已安è£ç‰ˆæœ¬ï¼Œæ»‘é¼ æç¤ºå°‡é¡¯ç¤ºN網上的當å‰ç‰ˆæœ¬ï¼Œå·²å®‰è£çš„ç‰ˆæœ¬è™Ÿåªæœ‰åœ¨æ‚¨é€šéŽ MO ä¾†å®‰è£ Mod çš„æ™‚å€™æ‰æœƒè‡ªå‹•填寫。</span></p></body></html> - + Version 版本 - + Refresh 釿–°æ•´ç† - + Refresh all information from Nexus. - + Description æè¿° - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2887,20 +2997,21 @@ p, li { white-space: pre-wrap; } 類型 + Name - å稱 + å稱 Size (kB) å¤§å° (KB) - + Endorse - + Notes @@ -2913,17 +3024,17 @@ p, li { white-space: pre-wrap; } 您支æŒéŽé€™å€‹ Mod 了嗎? - + Filetree 檔案樹 - + A directory view of this mod 這個 Mod 的目錄視圖 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2938,17 +3049,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">所åšçš„æ›´æ”¹å°‡æœƒç«‹å³ä½œç”¨æ–¼ç£ç¢Ÿä¸Šçš„æª”案,所以請</span><span style=" font-size:9pt; font-weight:600;">謹慎æ“作</span><span style=" font-size:9pt;">。</span></p></body></html> - + Previous - + Next 下一步 - + Close 關閉 @@ -2983,8 +3094,8 @@ p, li { white-space: pre-wrap; } &新增資料夾 - - + + Save changes? 儲存更改嗎? @@ -2993,79 +3104,79 @@ p, li { white-space: pre-wrap; } 儲存更改到 "%1"? - + File Exists 檔案已存在 - + A file with that name exists, please enter a new one 檔案å已存在,請輸入其它å稱 - + failed to move file 無法移動檔案 - + failed to create directory "optional" 無法建立 "optional" 目錄 - - + + Info requested, please wait 請求訊æ¯å·²ç™¼å‡ºï¼Œè«‹ç¨å¾Œ - + (description incomplete, please visit nexus) (æè¿°è¨Šæ¯ä¸å®Œæ•´ï¼Œè«‹è¨ªå•Nç¶²) - + Current Version: %1 ç•¶å‰ç‰ˆæœ¬: %1 - + No update available 沒有å¯ç”¨çš„æ›´æ–° - + Main ä¸»è¦æª”案 - - + + Save changes to "%1"? - + Update æ›´æ–° - + Optional å¯é¸æª”案 - + Old 舊檔 - + Misc 雜項 - + Unknown 未知 @@ -3074,13 +3185,13 @@ p, li { white-space: pre-wrap; } 請求失敗: %1 - + <a href="%1">Visit on Nexus</a> <a href="%1">訪å•Nç¶²</a> - - + + Confirm ç¢ºèª @@ -3097,85 +3208,110 @@ p, li { white-space: pre-wrap; } 例外: %1 - + Failed to delete %1 無法刪除 %1 - + Are sure you want to delete "%1"? 確定è¦åˆªé™¤ "%1" 嗎? - + Are sure you want to delete the selected files? 確定è¦åˆªé™¤æ‰€é¸çš„æª”案嗎? - - + + New Folder 新增資料夾 - + Failed to create "%1" 無法建立 "%1" - - + + Replace file? å–代檔案? - + There already is a hidden version of this file. Replace it? 已存在åŒå檔案,但該檔案被隱è—了。確定è¦è¦†è“‹å—Žï¼Ÿ - - + + File operation failed 檔案æ“作錯誤 - - + + Failed to remove "%1". Maybe you lack the required file permissions? 無法移除 "%1"。也許您需è¦è¶³å¤ çš„æª”案權é™ï¼Ÿ - - + + failed to rename %1 to %2 ç„¡æ³•é‡æ–°å‘½å %1 為 %2 - + There already is a visible version of this file. Replace it? 已存在åŒå檔案。確定è¦è¦†è“‹å—Žï¼Ÿ - + Un-Hide å–æ¶ˆéš±è— - + Hide éš±è— + + + Please enter a name + + + + + + Error + 錯誤 + + + + Invalid name. Must be a valid file name + + + + + A tweak by that name exists + + + + + Create Tweak + + ModInfoOverwrite - Overwrite - 覆蓋 + 覆蓋 - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) 此虛擬安è£åŒ…內包å«ä¾†è‡ªè™›æ“¬ Data 樹的檔案,但檔案發生了變化 (例: 被CK修改了) @@ -3183,17 +3319,17 @@ p, li { white-space: pre-wrap; } ModInfoRegular - + failed to write %1/meta.ini: %2 無法寫入 %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 ä¸­æœªåŒ…å« esp 或 esm 和有效的目錄 (textures, meshes, interface, ...) - + Categories: <br> 種類: <br> @@ -3201,7 +3337,7 @@ p, li { white-space: pre-wrap; } ModList - + Confirm ç¢ºèª @@ -3218,9 +3354,8 @@ p, li { white-space: pre-wrap; } 無效的行索引 %1 - Overwrite - 覆蓋 + 覆蓋 @@ -3271,17 +3406,17 @@ p, li { white-space: pre-wrap; } 最高值 - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. @@ -3290,7 +3425,7 @@ p, li { white-space: pre-wrap; } %1 ä¸­æœªåŒ…å« esp 或 esm 和有效的目錄 (textures, meshes, interface, ...) - + Categories: <br> 種類: <br> @@ -3299,7 +3434,7 @@ p, li { white-space: pre-wrap; } 此虛擬安è£åŒ…內包å«ä¾†è‡ªè™›æ“¬ Data 樹的檔案,但檔案發生了變化 (例: 被CK修改了) - + installed version: %1, newest version: %2 ç•¶å‰ç‰ˆæœ¬: %1,最新版本: %2 @@ -3312,83 +3447,88 @@ p, li { white-space: pre-wrap; } Mod å稱 - + Version 版本 - + Version of the mod (if available) Mod 版本 (如果å¯ç”¨) - + Priority 優先級 - + invalid - + + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". + + + + Invalid name - + drag&drop failed: %1 - + Flags - + Mod Name - + Category - + Nexus ID - + Installation - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Mod 的安è£å„ªå…ˆç´šã€‚越高就表示越“é‡è¦â€ï¼Œå¾žè€Œè¦†è“‹æŽ‰ä½Žå„ªå…ˆç´šçš„ Mod 檔案。 - + Time this mod was installed - + Are you sure you want to remove "%1"? 確定è¦ç§»é™¤ "%1" å—? @@ -3424,12 +3564,12 @@ p, li { white-space: pre-wrap; } MyFileSystemModel - + Overwrites 覆蓋 - + not implemented æœªå¯¦ç¾ @@ -3438,11 +3578,16 @@ p, li { white-space: pre-wrap; } NXMAccessManager + Logging into Nexus + + + + timeout 超時 - + Please check your password 請檢查您的密碼 @@ -3492,17 +3637,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response 未回應 - + invalid response 無效的回應 @@ -4429,34 +4574,34 @@ Right now this has very limited functionality &新增資料夾 - + Failed to delete "%1" 無法刪除 "%1" - - + + Confirm ç¢ºèª - + Are sure you want to delete "%1"? 確定è¦åˆªé™¤ "%1" 嗎? - + Are sure you want to delete the selected files? 確定è¦åˆªé™¤æ‰€é¸çš„æª”案嗎? - - + + New Folder 新增資料夾 - + Failed to create "%1" 無法建立 "%1" @@ -4468,70 +4613,85 @@ Right now this has very limited functionality ESP 檔案沒有找到: %1 - + Mod Index - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + + failed to update esp info for file %1 (source id: %2), error: %3 + + + + esp not found: %1 - - + + Confirm ç¢ºèª - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 無法開啟輸出檔案: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. 您的一些æ’ä»¶å稱無效ï¼é€™äº›æ’ä»¶ç„¡æ³•è¢«éŠæˆ²è¼‰å…¥ã€‚請查看 mo_interface.log 來確èªé‚£äº›å—影響的æ’件䏦釿–°å‘½å它們。 - + + Missing Masters + + + + + Enabled Masters + + + + failed to restore load order for %1 @@ -4544,17 +4704,17 @@ Right now this has very limited functionality 最高值 - + This plugin can't be disabled (enforced by the game) 這個æ’ä»¶ä¸èƒ½è¢«ç¦ç”¨ (ç”±éŠæˆ²åŸ·è¡Œ) - + Origin: %1 隸屬於: %1 - + Name å稱 @@ -4563,7 +4723,7 @@ Right now this has very limited functionality Mod å稱 - + Priority 優先級 @@ -4592,22 +4752,28 @@ Right now this has very limited functionality <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - - fix - + + Close + 關閉 - + + Fix - + No guided fix @@ -4619,72 +4785,82 @@ p, li { white-space: pre-wrap; } 無法套用 Ini 設定 - + invalid profile name %1 - + failed to create %1 無法建立 %1 - + + failed to open temporary file + + + + failed to open "%1" for writing - + + failed to write mod list: %1 + + + + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - - - - - + + + + + invalid index %1 無效的索引 %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 無效的優先級 %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 ç„¡æ³•è§£æž Ini 檔案 (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) @@ -4900,37 +5076,61 @@ p, li { white-space: pre-wrap; } 請輸入é…置檔案的å稱 - + failed to copy profile: %1 無法複製é…置檔案: %1 - + + Invalid name + + + + + Invalid profile name + + + + Confirm ç¢ºèª - + + Are you sure you want to remove this profile (including local savegames if any)? + + + + + Profile broken + + + + + This profile you're about to delete seems to be broken or the path is invalid. I'm about to delete the following folder: "%1". Proceed? + + + Are you sure you want to remove this profile? - 確定è¦ç§»é™¤é€™å€‹é…置嗎? + 確定è¦ç§»é™¤é€™å€‹é…置嗎? - + Rename Profile - + New Name - + failed to change archive invalidation state: %1 無法改變檔案無效化狀態: %1 - + failed to determine if invalidation is active: %1 無法確定無效化是å¦è¢«æ¿€æ´»: %1 @@ -4938,20 +5138,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories 無法儲存自定義類別 - - - - + + + + invalid index %1 無效的索引 %1 - + invalid category id %1 無效的類別 %1 @@ -4967,7 +5167,7 @@ p, li { white-space: pre-wrap; } 無法確èªå¸³æˆ¶å稱 - + invalid 7-zip32.dll: %1 無效的 7-zip32.dll: %1 @@ -5037,12 +5237,12 @@ p, li { white-space: pre-wrap; } 無法設定代ç†DLL加載 - + "%1" is missing "%1" 缺失 - + Permissions required éœ€è¦æ¬Šé™ @@ -5051,8 +5251,8 @@ p, li { white-space: pre-wrap; } ç•¶å‰çš„用戶帳戶沒有é‹è¡Œ Mod Organizer æ‰€éœ€çš„è¨ªå•æ¬Šé™ï¼Œå¿…è¦çš„修改將會自動進行 (MO 的目錄將會為當å‰ç”¨æˆ¶å¸³æˆ¶è€Œè®Šå¾—å¯å¯«),您將被請求使用管ç†å“¡æ¬Šé™åŸ·è¡Œ "mo_helper.exe"。 - - + + Woops 糟糕 @@ -5061,61 +5261,66 @@ p, li { white-space: pre-wrap; } Mod Organizer 崩潰了ï¼è¦ç”Ÿæˆè¨ºæ–·æª”案嗎?如果您發é€é€™å€‹æª”案到我的郵箱 (sherb@gmx.net) 裡的話,這個 Bug 會很有å¯èƒ½è¢«ä¿®å¾©ã€‚ - - The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights). + + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 Mod Organizer 崩潰了ï¼éºæ†¾çš„æ˜¯ï¼Œæˆ‘無法生æˆè¨ºæ–·æª”案: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Mod Organizer 的一個實例正在é‹è¡Œ - + No game identified in "%1". The directory is required to contain the game binary and its launcher. "%1" ä¸­æœªæª¢æ¸¬åˆ°éŠæˆ²ã€‚請確ä¿è©²è·¯å¾‘中包å«éŠæˆ²åŸ·è¡Œç¨‹å¼ä»¥åŠå°æ‡‰çš„ Launcher 檔案。 - - + + Please select the game to manage è«‹é¸æ“‡æƒ³è¦ç®¡ç†çš„éŠæˆ² - + + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) + + + + Please use "Help" from the toolbar to get usage instructions to all elements 請使用工具列上的“幫助â€ä¾†ç²å¾—所有元素的使用說明 - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 無法解æžé…置檔案 %1: %2 - - + + failed to find "%1" 未能找到 "%1" @@ -5124,17 +5329,17 @@ p, li { white-space: pre-wrap; } 編碼錯誤,請å‘作者彙報此 Bug 並且附上 mo_interface.log æª”æ¡ˆï¼ - + failed to access %1 ç„¡æ³•è¨ªå• %1 - + failed to set file time %1 無法設定檔案時間 %1 - + failed to create %1 無法建立 %1 @@ -5170,12 +5375,12 @@ p, li { white-space: pre-wrap; } 無法開啟 %1 - + Script Extender 腳本拓展 - + Proxy DLL 代ç†DLL @@ -5318,9 +5523,8 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe QuestionBoxMemory - Remember selection - è¨˜ä½æˆ‘çš„é¸æ“‡ + è¨˜ä½æˆ‘çš„é¸æ“‡ @@ -5428,9 +5632,9 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - - - + + + Update æ›´æ–° @@ -5440,57 +5644,57 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 有å¯ç”¨çš„æ›´æ–° (最新版本: %1),您想è¦å®‰è£å®ƒå—Žï¼Ÿ - + Download in progress 正在下載 - + Download failed: %1 下載失敗: %1 - + Failed to install update: %1 ç„¡æ³•å®‰è£æ›´æ–°: %1 - + failed to open archive "%1": %2 無法開啟壓縮包 "%1": %2 - + failed to move outdated files: %1. Please update manually. - + Update installed, Mod Organizer will now be restarted. 更新完æˆï¼ŒMod Organizer ç¾åœ¨å°‡é‡æ–°å•Ÿå‹•。 - + Error 錯誤 - + Failed to parse response. Please report this as a bug and include the file mo_interface.log. è§£æžå›žæ‡‰æ™‚發生錯誤。請回報此 Bug 並附上 mo_interface.logï¼ - + No incremental update available for this version, the complete package needs to be downloaded (%1 kB) 沒有å¯ç”¨äºŽæ­¤ç‰ˆæœ¬çš„æ›´æ–°æª”案,需è¦ä¸‹è¼‰å®Œæ•´çš„安è£åŒ… (%1 KB) - + no file for update found. Please update manually. - + No download server available. Please try again later. 沒有å¯ç”¨çš„下載伺æœå™¨ï¼Œè«‹ç¨å¾Œå†å˜—試下載。 @@ -5499,7 +5703,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 未找到更新檔案 - + Failed to retrieve update information: %1 無法檢索更新信æ¯: %1 @@ -5507,26 +5711,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - setting for invalid plugin "%1" requested - + Administrative rights required to change this. + 需è¦ç®¡ç†å“¡çš„æ¬Šé™ä¾†æ›´æ”¹é€™å€‹ã€‚ - - invalid setting "%1" requested for plugin "%2" + + + attempt to store setting for unknown plugin "%1" - Administrative rights required to change this. - 需è¦ç®¡ç†å“¡çš„æ¬Šé™ä¾†æ›´æ”¹é€™å€‹ã€‚ - - - + Confirm ç¢ºèª - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? 修改 Mod 目錄將會影響您的é…ç½®ï¼æ–°ç›®éŒ„中ä¸å­˜åœ¨ (或者å稱ä¸åŒ) çš„ Mod 將在所有é…ç½®ä¸­è¢«ç¦æ­¢æŽ‰ã€‚æ­¤æ“作無法撤銷,所以執行此æ“作å‰å»ºè­°å…ˆå‚™ä»½ä¸‹è‡ªå·±çš„é…置。立å³åŸ·è¡Œï¼Ÿ @@ -5715,7 +5915,12 @@ p, li { white-space: pre-wrap; } - + + Blacklisted Plugins (use <del> to remove): + + + + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5811,47 +6016,47 @@ p, li { white-space: pre-wrap; } - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds 解決方案 - + Steam App ID Steam App ID - + The Steam AppID for your game æ‚¨éŠæˆ²çš„ Steam AppID - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -5878,12 +6083,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">其中 22380 å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。</span></p></body></html> - + Load Mechanism 加載機制 - + Select loading mechanism. See help for details. 鏿“‡åŠ è¼‰æ©Ÿåˆ¶ï¼Œä½¿ç”¨å¹«åŠ©æŸ¥çœ‹æ›´å¤šç´°ç¯€ã€‚ @@ -5908,17 +6113,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt; font-weight:600;">代ç†DLL</span><span style=" font-size:9pt;"> 在這種模å¼ä¸‹ï¼ŒMO 將替æ›ä¸€å€‹éŠæˆ²çš„ dll 來加載 MO (當然原來的 dll),這僅é©ç”¨äºŽ Steam ç‰ˆæœ¬çš„éŠæˆ²ï¼Œä¸¦ä¸”åªåœ¨ Skyrim 上åšéŽæ¸¬è©¦ã€‚è«‹åªåœ¨å…¶å®ƒåŠ è¼‰æ©Ÿåˆ¶ä¸èƒ½å·¥ä½œçš„æƒ…æ³ä¸‹æ‰ä½¿ç”¨å®ƒã€‚</span></p></body></html> - + NMM Version NMM 版本 - + The Version of Nexus Mod Manager to impersonate. æƒ³è¦æ¨¡æ“¬çš„ NMM 版本號。 - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -5931,7 +6136,7 @@ tl;dr-version: If Nexus-features don't work, insert the current version num 變更版本號: 如果Nç¶²åŠŸèƒ½ä¸æ­£å¸¸äº†ï¼Œé‚£éº¼è«‹åœ¨é€™è£¡è¼¸å…¥ NMM 的當å‰ç‰ˆæœ¬è™Ÿä¸¦é‡è©¦ä¸€ä¸‹ã€‚ - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -5944,48 +6149,48 @@ tl;dr-version: If Nexus-features don't work, insert the current version num 例如: 0.33.1 - + Enforces that inactive ESPs and ESMs are never loaded. 強制執行,未激活的 ESP å’Œ ESM 將䏿œƒè¢«åŠ è¼‰ã€‚ - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. çœ‹ä¾†ï¼ŒéŠæˆ²å¶çˆ¾æœƒåŠ è¼‰ä¸€äº›æ²’æœ‰è¢«æ¿€æ´»æˆæ’ä»¶çš„ ESP 或 ESM 檔案。 我還尚ä¸çŸ¥é“它在什麼情æ³ä¸‹æœƒé€™æ¨£ï¼Œä½†æ˜¯æœ‰ç”¨æˆ¶å ±å‘Šèªªå®ƒåœ¨æŸäº›æƒ…æ³ä¸‹æ˜¯å¾ˆä¸å¿…è¦çš„。如果這個é¸é …被é¸ä¸­ï¼Œé‚£éº¼åœ¨åˆ—表中沒有被勾é¸çš„ ESP å’Œ ESM 將䏿œƒåœ¨éŠæˆ²ä¸­å‡ºç¾ï¼Œä¸¦ä¸”ä¹Ÿä¸æœƒè¢«è¼‰å…¥ã€‚ - + Hide inactive ESPs/ESMs éš±è—æœªæ¿€æ´»çš„ ESP 或 ESM - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! å°æ–¼å¤©éš›ï¼Œé€™å€‹å¯ä»¥ç”¨ä¾†å–ä»£æª”æ¡ˆç„¡æ•ˆåŒ–ï¼Œå®ƒå°‡æœƒä½¿æ¡£æ¡ˆæ— æ•ˆåŒ–å°æ‰€æœ‰é…置都變得多余。 ä½†æ˜¯å°æ–¼å…¶å®ƒéŠæˆ²ï¼Œé€™ä¸¦ä¸æ˜¯ä¸€å€‹å¾ˆå¥½çš„æ›¿ä»£å“ï¼ - + Back-date BSAs é‡ç½® BSA 檔案修改日期 @@ -5994,27 +6199,27 @@ For the other games this is not a sufficient replacement for AI! 這些是 Mod Organizer çš„å•題解決方案。它們通常是ä¸å¿…修改的,請確ä¿åœ¨æ‚¨è®Šæ›´äº†é€™è£¡çš„任何æ±è¥¿ä¹‹å‰å·²ç¶“讀éŽäº†å¹«åŠ©æ–‡æª”ã€‚ - + Select download directory 鏿“‡ä¸‹è¼‰ç›®éŒ„ - + Select mod directory 鏿“‡ Mod 目錄 - + Select cache directory 鏿“‡ç·©å­˜ç›®éŒ„ - + Confirm? 確èªï¼Ÿ - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? æ­¤æ“作將導致之å‰å‹¾é¸çš„â€œè¨˜ä½æˆ‘çš„é¸é …â€è©¢å•è¦–çª—å†æ¬¡å‡ºç¾ï¼Œç¢ºå®šè¦é‡ç½®å°è©±æ–¹å¡Šï¼Ÿ -- cgit v1.3.1 From f1515193ca82c229a712f067f61f1c26e9b83400 Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 27 Nov 2013 20:25:24 +0100 Subject: - plugins can now be localized too - fixes to the installer script - extended build scripts to fetch translations from pootle server automatically --- src/mainwindow.cpp | 63 ++++---- src/mainwindow.h | 9 +- src/organizer.pro | 7 +- src/organizer_cs.ts | 407 ++++++++++++++++++++++++------------------------- src/organizer_de.ts | 407 ++++++++++++++++++++++++------------------------- src/organizer_es.ts | 407 ++++++++++++++++++++++++------------------------- src/organizer_fr.ts | 407 ++++++++++++++++++++++++------------------------- src/organizer_ru.ts | 407 ++++++++++++++++++++++++------------------------- src/organizer_tr.ts | 407 ++++++++++++++++++++++++------------------------- src/organizer_zh_CN.ts | 407 ++++++++++++++++++++++++------------------------- src/organizer_zh_TW.ts | 407 ++++++++++++++++++++++++------------------------- src/settings.h | 5 + 12 files changed, 1655 insertions(+), 1685 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 31ee1ae7..5c487e7a 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -144,8 +144,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget m_DirectoryStructure(new DirectoryEntry(L"data", NULL, 0)), m_ModList(this), m_ModListGroupingProxy(NULL), m_ModListSortProxy(NULL), m_PluginList(this), m_OldExecutableIndex(-1), m_GamePath(ToQString(GameInfo::instance().getGameDirectory())), - m_DownloadManager(NexusInterface::instance(), this), - m_InstallationManager(this), m_Translator(NULL), m_TranslatorQt(NULL), + m_DownloadManager(NexusInterface::instance(), this), m_InstallationManager(this), m_Updater(NexusInterface::instance(), this), m_CategoryFactory(CategoryFactory::instance()), m_CurrentProfile(NULL), m_AskForNexusPW(false), m_LoginAttempted(false), m_ArchivesInit(false), m_ContextItem(NULL), m_ContextAction(NULL), m_CurrentSaveView(NULL), @@ -975,7 +974,7 @@ void MainWindow::registerPluginTool(IPluginTool *tool) } -bool MainWindow::registerPlugin(QObject *plugin) +bool MainWindow::registerPlugin(QObject *plugin, const QString &fileName) { { // generic treatment for all plugins IPlugin *pluginObj = qobject_cast(plugin); @@ -983,6 +982,7 @@ bool MainWindow::registerPlugin(QObject *plugin) qDebug("not an IPlugin"); return false; } + plugin->setProperty("filename", fileName); m_Settings.registerPlugin(pluginObj); } @@ -1017,7 +1017,7 @@ bool MainWindow::registerPlugin(QObject *plugin) try { QObject *proxiedPlugin = proxy->instantiate(pluginName); if (proxiedPlugin != NULL) { - if (registerPlugin(proxiedPlugin)) { + if (registerPlugin(proxiedPlugin, pluginName)) { qDebug("loaded plugin \"%s\"", QDir::toNativeSeparators(pluginName).toUtf8().constData()); } else { qWarning("plugin \"%s\" failed to load", pluginName.toUtf8().constData()); @@ -1052,7 +1052,7 @@ void MainWindow::loadPlugins() m_Settings.clearPlugins(); foreach (QObject *plugin, QPluginLoader::staticInstances()) { - registerPlugin(plugin); + registerPlugin(plugin, ""); } QFile loadCheck(QCoreApplication::applicationDirPath() + "/plugin_loadcheck.tmp"); @@ -1095,7 +1095,7 @@ void MainWindow::loadPlugins() qCritical("failed to load plugin %s: %s", pluginName.toUtf8().constData(), pluginLoader.errorString().toUtf8().constData()); } else { - if (registerPlugin(pluginLoader.instance())) { + if (registerPlugin(pluginLoader.instance(), pluginName)) { qDebug("loaded plugin \"%s\"", QDir::toNativeSeparators(pluginName).toUtf8().constData()); } else { m_UnloadedPlugins.push_back(pluginName); @@ -3998,35 +3998,40 @@ void MainWindow::downloadRequested(QNetworkReply *reply, int modID, const QStrin } -void MainWindow::languageChange(const QString &newLanguage) +QTranslator *MainWindow::installTranslator(const QString &name) { - if (m_Translator != NULL) { - QCoreApplication::removeTranslator(m_Translator); - delete m_Translator; - m_Translator = NULL; + QTranslator *translator = new QTranslator(this); + QString fileName = name + "_" + m_CurrentLanguage; + if (!translator->load(fileName, qApp->applicationDirPath() + "/translations")) { + qWarning("localization file %s not found", qPrintable(fileName)); } - if (m_TranslatorQt != NULL) { - QCoreApplication::removeTranslator(m_TranslatorQt); - delete m_TranslatorQt; - m_TranslatorQt = NULL; + qApp->installTranslator(translator); + return translator; +} + + +void MainWindow::languageChange(const QString &newLanguage) +{ + foreach (QTranslator *trans, m_Translators) { + qApp->removeTranslator(trans); } + m_Translators.clear(); - if (newLanguage != "en_US") { - // add our own translations - m_Translator = new QTranslator(this); - QString locFile = ToQString(AppConfig::translationPrefix()) + "_" + newLanguage; - if (!m_Translator->load(locFile, QCoreApplication::applicationDirPath() + "/translations")) { - qDebug("localization %s not found", locFile.toUtf8().constData()); - } - QCoreApplication::installTranslator(m_Translator); + m_CurrentLanguage = newLanguage; - // also add the translations for qt default strings - m_TranslatorQt = new QTranslator(this); - locFile = QString("qt_") + newLanguage; - if (!m_TranslatorQt->load(locFile, QCoreApplication::applicationDirPath() + "/translations")) { - qDebug("localization %s not found", locFile.toUtf8().constData()); + if (newLanguage != "en_US") { + installTranslator("qt"); + installTranslator(ToQString(AppConfig::translationPrefix())); + foreach(IPlugin *plugin, m_Settings.plugins()) { + QObject *pluginObj = dynamic_cast(plugin); + if (pluginObj != NULL) { + QVariant fileNameVariant = pluginObj->property("filename"); + if (fileNameVariant.isValid()) { + QString fileName = QFileInfo(fileNameVariant.toString()).baseName(); + m_Translators.push_back(installTranslator(fileName)); + } + } } - QCoreApplication::installTranslator(m_TranslatorQt); } ui->retranslateUi(this); ui->profileBox->setItemText(0, QObject::tr("")); diff --git a/src/mainwindow.h b/src/mainwindow.h index dfd2e571..5a8278f9 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -197,7 +197,7 @@ private: void actionToToolButton(QAction *&sourceAction); bool verifyPlugin(MOBase::IPlugin *plugin); void registerPluginTool(MOBase::IPluginTool *tool); - bool registerPlugin(QObject *pluginObj); + bool registerPlugin(QObject *pluginObj, const QString &fileName); void updateToolBar(); void activateSelectedProfile(); @@ -272,6 +272,7 @@ private: static void setupNetworkProxy(bool activate); void activateProxy(bool activate); + QTranslator *installTranslator(const QString &name); private: @@ -318,9 +319,6 @@ private: DownloadManager m_DownloadManager; InstallationManager m_InstallationManager; - QTranslator *m_Translator; - QTranslator *m_TranslatorQt; - SelfUpdater m_Updater; CategoryFactory &m_CategoryFactory; @@ -352,6 +350,9 @@ private: SignalAboutToRunApplication m_AboutToRun; + QString m_CurrentLanguage; + std::vector m_Translators; + private slots: void showMessage(const QString &message); diff --git a/src/organizer.pro b/src/organizer.pro index f4be6f80..30454ea8 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -207,13 +207,12 @@ CONFIG += embed_manifest_exe # QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'highestAvailable\' uiAccess=\'false\'\" TRANSLATIONS = organizer_de.ts \ - organizer_es.ts \ - organizer_fr.ts \ - organizer_zh_TW.ts \ + organizer_es.ts \ + organizer_fr.ts \ + organizer_zh_TW.ts \ organizer_zh_CN.ts \ organizer_cs.ts \ organizer_tr.ts \ - organizer_en.ts \ organizer_ru.ts !isEmpty(TRANSLATIONS) { diff --git a/src/organizer_cs.ts b/src/organizer_cs.ts index 10c5f555..59f8b52b 100644 --- a/src/organizer_cs.ts +++ b/src/organizer_cs.ts @@ -267,11 +267,6 @@ p, li { white-space: pre-wrap; } Placeholder #Placeholder - - - KB - - @@ -1563,8 +1558,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh ZnovunaÄíst @@ -1744,7 +1739,7 @@ p, li { white-space: pre-wrap; } - + Update @@ -1755,7 +1750,7 @@ p, li { white-space: pre-wrap; } - + No Problems Žádné problémy @@ -1788,7 +1783,7 @@ V souÄasnosti má omezenou funkcionalitu - + Endorse Mod Organizer @@ -1808,17 +1803,17 @@ V souÄasnosti má omezenou funkcionalitu - + Problems Problémy - + There are potential problems with your setup Existují potenciální problémy s programem - + Everything seems to be in order VÅ¡echno se jeví v pořádku @@ -1835,22 +1830,22 @@ V souÄasnosti má omezenou funkcionalitu <li>dotNet není nainstalován nebo je neaktuální. Tohle vyžaduje NCC. NajdÄ›te ho zde: <a href="%1">%1</a></li> - + Help on UI Pomoc s programem - + Documentation Wiki Dokumentace wiki - + Report Issue Nahlásit chybu - + Tutorials @@ -1859,431 +1854,431 @@ V souÄasnosti má omezenou funkcionalitu poÅ™adí naÄtení se nezdaÅ™ilo uložit - + failed to save load order: %1 zlyhalo uložení poÅ™adí naÄtení: %1 - + failed to save archives order, do you have write access to "%1"? zlyhal zápis poÅ™adí archivů, máte administrátorsky povoleno zapisovat na "%1"? - + Name Jméno - + Please enter a name for the new profile Prosím zadej jméno pro nový profil - + failed to create profile: %1 Zlyhalo vytvoÅ™ení profilu: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Probíhá stahování - + There are still downloads in progress, do you really want to quit? Pořád probíhá stahování, urÄitÄ› chcete skonÄit (zruší stahování)? - + failed to read savegame: %1 nezdaÅ™ilo se naÄíst pozici: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" Zlyhal start "%1" - + Waiting ÄŒekání - + Please press OK once you're logged into steam. Stiskni OK až budeÅ¡ pÅ™ihlášen do Steamu. - + "%1" not found "%1" nenalezeno - + Start Steam? Spustit Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam by mÄ›l běžet aby se podaÅ™ilo spustit hru. Má se MO pokusit spustit steam teÄ? - + Also in: <br> Také v: <br> - + No conflict Žádné konflikty - + <Edit...> <Edit...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! Tenhle BSA soubor je aktivován v ini souboru, tak zÅ™ejmÄ› je vyžadován! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Tento archív se stejnÄ› naÄte, protože existuje plugin se stejným jménem ale jeho soubory nebudou zodpovídat poÅ™adí nainstalování! - + Activating Network Proxy - - + + Installation successful Instalace úspěšná - - + + Configure Mod Konfigurace Modu - - + + This mod contains ini tweaks. Do you want to configure them now? Tenhle mod obsahuje ini úpravy. Chcete je nastavovat teÄ? - - + + mod "%1" not found mod "%1" nenalezen - - + + Installation cancelled Instalace zruÅ¡ena - - + + The mod was not installed completely. Tento mod se nenainstaloval úplne. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + Choose Mod Vyber Mod - + Mod Archive Archív Modu - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Stahování zaÄalo - + failed to update mod list: %1 nezdaÅ™ilo se aktualizovat seznam modů: %1 - + failed to spawn notepad.exe: %1 zlyhalo otevÅ™ení notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 NezdaÅ™ilo se zmÄ›nit původní jméno: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <VÅ¡echny> - + <Checked> <Aktivované> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <Neaktivované> - + <Update> <Aktualizace> - + <No category> <Bez kategorie> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 NezdaÅ™ilo se pÅ™ejmenovat mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" NezdaÅ™ilo se pÅ™ejmenovat "%1" na "%2" - - - + + + Confirm Potvrdit - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 NezdaÅ™ilo se odstranit mod: %1 - - + + Failed Zlyhání - + Installation file no longer exists InstalaÄní soubor již neexistuje - + Mods installed with old versions of MO can't be reinstalled in this way. Mody nainstalovány staršími verzemi MO nemůžou být pÅ™einstalovány tímto spůsobem. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA Extrakce BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Tento mod obsahuje alespoň jeden BSA soubor. Chcete rozpakovat i jeho obsah? (BSA se po úspěšném rozpakování odstrání. Pokud nevíte, co je BSA, zvolte možnost Ne) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Tento archiv má neplatné identifikaÄní souÄty. Nekteré soubory mohou být poÅ¡kozeny. - + Nexus ID for this Mod is unknown Nexus ID pro tento Mod není známo @@ -2296,391 +2291,391 @@ This function will guess the versioning scheme under the assumption that the ins Zvol Prioritu - + Really enable all visible mods? Opravdu aktivovat vÅ¡echny zobrazené mody? - + Really disable all visible mods? Opravdu deaktivovat vÅ¡echny zobrazené mody? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instaluj Mod... - + Enable all visible Aktivuj vÅ¡echny v seznamu - + Disable all visible Deaktivuj vÅ¡echny v seznamu - + Check all for update Skontroluj vÅ¡echny pro aktualizaci - + Export to csv... - + Sync to Mods... Synchronizuj s Mody... - + Restore Backup - + Remove Backup... - + Set Category OznaÄ Kategorii - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... PÅ™ejmenuj Mod... - + Remove Mod... Odstranit Mod... - + Reinstall Mod PÅ™einstaluj Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus NavÅ¡tiv na Nexusu - + Open in explorer OtevÅ™i v prohlížeÄi - + Information... Informace... - - + + Exception: Výnimky: - - + + Unknown exception Neznámá výnimka - + <Multiple> - + Fix Mods... Oprav Mody... - - + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! Není možné zmÄ›nit cíl pro stahování když probíhá stahování! - + Download failed Stahování zlyhalo - + failed to write to file %1 NezdaÅ™il se zápis do souboru %1 - + %1 written %1 zapsáno - + Select binary Vyber binární soubor - + Binary Soubor - + Enter Name Zadej jméno - + Please enter a name for the executable Prosím zadej jméno pro spouÅ¡tÄ›ní - + Not an executable Není spustitelný - + This is not a recognized executable. Tenhle soubor není rozpoznán jako spustitelný. - - + + Replace file? Nahradit soubor? - + There already is a hidden version of this file. Replace it? Už existuje skrytá verze tohto souboru. Nahradit? - - + + File operation failed Operace se souborem zlyhala - - + + Failed to remove "%1". Maybe you lack the required file permissions? NepodaÅ™ilo se odstranit "%1". Možná nejsou k dispozici požadována práva? - + There already is a visible version of this file. Replace it? Už existuje viditelná verze tohto souboru. Nahradit? - + Update available Aktualizace k dispozici - + Open/Execute Otevřít/Spustit - + Add as Executable PÅ™idat SpouÅ¡tení - + Un-Hide Odekrýt - + Hide Skrýt - + Write To File... Zápis do souboru... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway pÅ™ihlášení zlyhalo: %1. Pokouším se beztak stahovat - + login failed: %1 pÅ™ihlášení zlyhalo: %1 - + login failed: %1. You need to log-in with Nexus to update MO. pÅ™ihlášení zlyhalo: %1. Na aktualizaci MO je potÅ™ebné pÅ™ihlášení k Nexusu. - + Error Chyba - + failed to extract %1 (errorcode %2) zlyhala extrakce %1 (errorcode %2) - + Extract... Extrakce... - + Edit Categories... Editovat Kategorie... - + Enable all - + Disable all @@ -5349,18 +5344,18 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements Prosím použijte "Pomoc" z panelu nástrojú pro instrukce ke vÅ¡em elementům - - + + <Manage...> <Manage...> - + failed to parse profile %1: %2 NezdaÅ™ilo se rozebrat profil %1: %2 diff --git a/src/organizer_de.ts b/src/organizer_de.ts index 68af9c3a..a80d3156 100644 --- a/src/organizer_de.ts +++ b/src/organizer_de.ts @@ -267,11 +267,6 @@ p, li { white-space: pre-wrap; } Placeholder Platzhalter - - - KB - - @@ -1567,8 +1562,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh Neu laden @@ -1748,7 +1743,7 @@ p, li { white-space: pre-wrap; } - + Update Aktualisierung @@ -1759,7 +1754,7 @@ p, li { white-space: pre-wrap; } - + No Problems Keine Probleme @@ -1790,7 +1785,7 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. - + Endorse Mod Organizer @@ -1810,17 +1805,17 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. - + Problems Probleme - + There are potential problems with your setup Es bestehen möglicherweise Probleme mit Ihrer Konfiguration - + Everything seems to be in order Alles in bester Ordnung @@ -1837,22 +1832,22 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. <li>dotNet ist nicht installiert oder veraltet. Dies wird benötigt um NCC nutzen zu können. Laden Sie die korrekte Version von <a href="%1">%1</a> herunter</li> - + Help on UI Hilfe zur Oberfläche - + Documentation Wiki Wiki Dokumentation - + Report Issue Fehler melden - + Tutorials @@ -1861,431 +1856,431 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Ladereihenfolge konnte nicht gespeichert werden - + failed to save load order: %1 Reihenfolge konnt nicht gespeichert werden: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Name - + Please enter a name for the new profile Bitte geben Sie einen Namen für das neue Profil an - + failed to create profile: %1 Erstellen des Profils fehlgeschlagen: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Download in Bearbeitung - + There are still downloads in progress, do you really want to quit? Es gibt noch unfertige Downloads, wollen Sie wirklich das Programm beenden? - + failed to read savegame: %1 Spielstand konnte nicht gelesen werden: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting Warte - + Please press OK once you're logged into steam. Bitte drücken sie OK sobald sie bei Steam angemeldet sind. - + "%1" not found "%1" nicht gefunden - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam muss laufen um das Spiel korrekt zu starten. Soll MO versuchen Steam zu starten? - + Also in: <br> Auch in: <br> - + No conflict Keine Konflikte - + <Edit...> <Bearbeiten...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! Dieses Archiv ist in der ini Konfiguration gelistet, daher ist es möglicherweise erforderlich! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Dieses Archiv wird vom Spiel geladen werden da ein Plugin mit dem selben Namen aktiv ist aber die enthaltenen Dateien werden sich nicht an Ihre Installations-Reihenfolge halten! - + Activating Network Proxy - - + + Installation successful Installation erfolgreich - - + + Configure Mod Mod konfigurieren - - + + This mod contains ini tweaks. Do you want to configure them now? Diese Mod enthält Anpassungen für die Ini datei. Wollen Sie diese nun konfigurieren? - - + + mod "%1" not found mod "%1" nicht gefunden - - + + Installation cancelled Installation abgebrochen - - + + The mod was not installed completely. Die mod wurde nicht erfolgreich installiert. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + Choose Mod Mod wählen - + Mod Archive Mod Archiv - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Download gestartet - + failed to update mod list: %1 Aktualisieren der Modliste fehlgeschlagen: %1 - + failed to spawn notepad.exe: %1 notepad.exe konnte nicht aufgerufen werden: %1 - + failed to open %1 %1 konnte nicht geöffnet werden - + failed to change origin name: %1 konnte den Namen der Dateiquelle nicht ändern: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Alle> - + <Checked> <Markierte> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <Nicht markierte> - + <Update> <Update> - + <No category> <Ohne Kategorie> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 konnte die Mod nicht umbenennen: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Bestätigen - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 konnte die mod nicht entfernen: %1 - - + + Failed Fehlgeschlagen - + Installation file no longer exists Installationsdatei existiert nicht mehr - + Mods installed with old versions of MO can't be reinstalled in this way. Mods die mit alten Versionen von MO installiert wurden können nicht auf diese Weise neu-installiert werden. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA BSA extrahieren - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Diese mod enthält mindestens eine BSA datei. Soll sie entpackt werden? (Das BSA wird danach gelöscht. Wenn Sie nicht wissen was BSAs sind wählen Sie am besten \"nein\") - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Dieses Archiv enthält ungültige Prüfsummen. Einige Dateien sind evtl. defekt. - + Nexus ID for this Mod is unknown Nexus ID für diese Mod unbekannt @@ -2298,391 +2293,391 @@ This function will guess the versioning scheme under the assumption that the ins Priorität wählen - + Really enable all visible mods? Alle angezeigten Mods aktivieren? - + Really disable all visible mods? Alle angezeigten Mods deaktivieren? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Mod installieren... - + Enable all visible Alle sichtbaren aktvieren - + Disable all visible Alle sichtbaren deaktvieren - + Check all for update Alle auf Aktualisierungen überprüfen - + Export to csv... - + Sync to Mods... Mods synchronisieren... - + Restore Backup - + Remove Backup... - + Set Category Kategorie festlegen - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Mod umbenennen... - + Remove Mod... Mod entfernen... - + Reinstall Mod Mod neu installieren - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus Auf Nexus besuchen - + Open in explorer In Explorer öffnen - + Information... Informationen... - - + + Exception: Ausnahme: - - + + Unknown exception Unbekannte Ausnahme - + <Multiple> - + Fix Mods... Mods reparieren... - - + + failed to remove %1 %1 konnte nicht entfernt werden - - + + failed to create %1 %1 konnte nicht erstellt werden - + Can't change download directory while downloads are in progress! Das download verzeichnis kann nicht geändert werden solange Downloads laufen! - + Download failed Download fehlgeschlagen - + failed to write to file %1 Speichern in Datei "%1" fehlgeschlagen - + %1 written "%1" gespeichert - + Select binary Binary wählen - + Binary Ausführbare Datei - + Enter Name Namen eingeben - + Please enter a name for the executable Bitte geben Sie einen Namen für die Anwendungsdatei ein - + Not an executable Datei ist nicht ausführbar - + This is not a recognized executable. - - + + Replace file? Datei ersetzen? - + There already is a hidden version of this file. Replace it? Es existiert bereits eine versteckte Variante von dieser Datei. Soll diese ersetzt werden? - - + + File operation failed Dateioperation fehlgeschlagen - - + + Failed to remove "%1". Maybe you lack the required file permissions? Konnte "%1" nicht löschen. Fehlen Ihnen evtl. die nötigen Berechtigungen? - + There already is a visible version of this file. Replace it? Es existiert bereits eine sichtbare Variante dieser Datei. Soll diese ersetzt werden? - + Update available Aktualisierung verfügbar - + Open/Execute Öffnen/Ausführen - + Add as Executable Als Anwendung hinzufügen - + Un-Hide Sichtbar machen - + Hide Verstecken - + Write To File... In Datei speichern... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway login fehlgeschlagen: %1. Der Download scheitert vermutlich - + login failed: %1 login fehlgeschlagen: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Fehler - + failed to extract %1 (errorcode %2) konnte "%1" nicht extrahieren (fehlercode %2) - + Extract... Extrahieren... - + Edit Categories... - + Enable all - + Disable all @@ -5454,7 +5449,7 @@ p, li { white-space: pre-wrap; } "%1" nicht gefunden - + Please use "Help" from the toolbar to get usage instructions to all elements Bitte verwenden Sie die "Hilfe" Funktion um Hinweise zu Nutzung aller Elemete zu bekommen @@ -5473,13 +5468,13 @@ p, li { white-space: pre-wrap; } Konnte "%1" nicht finden - - + + <Manage...> <Verwalten...> - + failed to parse profile %1: %2 Konnte Profil %1 nicht verarbeiten: %2 diff --git a/src/organizer_es.ts b/src/organizer_es.ts index ed278075..ba096644 100644 --- a/src/organizer_es.ts +++ b/src/organizer_es.ts @@ -260,11 +260,6 @@ p, li { white-space: pre-wrap; } Placeholder Marcador de posicion - - - KB - - @@ -1426,8 +1421,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh Recargar @@ -1601,7 +1596,7 @@ p, li { white-space: pre-wrap; } - + Update @@ -1612,7 +1607,7 @@ p, li { white-space: pre-wrap; } - + No Problems @@ -1642,7 +1637,7 @@ Right now this has very limited functionality - + Endorse Mod Organizer @@ -1662,465 +1657,465 @@ Right now this has very limited functionality - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 Fallo guardando el orden de carga: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Nombre - + Please enter a name for the new profile Por favor introduzca un nombre para el nuevo perfil - + failed to create profile: %1 Fallo al crear el perfil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Descarga en progreso - + There are still downloads in progress, do you really want to quit? Aun hay descargas en progreso, estas seguro que quieres salir? - + failed to read savegame: %1 Fallo al leer la partida guardada: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - + "%1" not found "%1" no encontrado - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Sin conflictos - + <Edit...> <Editar...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Instalacion completada - - + + Configure Mod Configurar Mod - - + + This mod contains ini tweaks. Do you want to configure them now? Este mod contiene modificaciones del Ini. Quieres configurarlas ahora? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + Choose Mod Seleccione Mod - + Mod Archive Fichero Mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Descarga comenzada - + failed to update mod list: %1 Fallo al actualizar la lista de Mods: %1 - + failed to spawn notepad.exe: %1 Fallo al cargar el Bloc de notas: %1 - + failed to open %1 Fallo al abrir %1 - + failed to change origin name: %1 fallo al cambiar el nombre original del fichero %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Todos> - + <Checked> <Marcado> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <Desmarcado> - + <Update> <Actualizacion> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 fallo al cambiar el nombre al mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Confirma - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2133,391 +2128,391 @@ This function will guess the versioning scheme under the assumption that the ins Selecciona Prioridad - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instalar Mod... - + Enable all visible Activar todos los visibles - + Disable all visible Desactivar todos los visibles - + Check all for update Buscar Actualizaciones - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Set Category Definir Categoria - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Cambiar nombre... - + Remove Mod... Quitar Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Informacion... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... Activar Mods faltantes... - - + + failed to remove %1 Fallo eliminando %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 Fallo de escritura en el fichero %1 - + %1 written %1 escrito - + Select binary - + Binary Fichero - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available Disponible actualización - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... Escribir al fichero... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -4820,7 +4815,7 @@ p, li { white-space: pre-wrap; } "%1" no encontrado - + Please use "Help" from the toolbar to get usage instructions to all elements Por favor utilice "Ayuda" en la barra superior para obtener informacion sobre todos los elementos @@ -4839,13 +4834,13 @@ p, li { white-space: pre-wrap; } fallo al encontrar %1 - - + + <Manage...> <Definir...> - + failed to parse profile %1: %2 no se pudo analizar el perfil % 1: %2 diff --git a/src/organizer_fr.ts b/src/organizer_fr.ts index 1bf335ce..58c871d7 100644 --- a/src/organizer_fr.ts +++ b/src/organizer_fr.ts @@ -268,11 +268,6 @@ p, li { white-space: pre-wrap; } Placeholder Signet - - - KB - - @@ -1466,8 +1461,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh Actualiser @@ -1647,7 +1642,7 @@ p, li { white-space: pre-wrap; } - + Update @@ -1658,7 +1653,7 @@ p, li { white-space: pre-wrap; } - + No Problems @@ -1688,7 +1683,7 @@ Right now this has very limited functionality - + Endorse Mod Organizer @@ -1708,465 +1703,465 @@ Right now this has very limited functionality - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 impossible d'enregistrer l'ordre de chargement: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Nom - + Please enter a name for the new profile Veuillez inscrire un nom pour le nouveau profil - + failed to create profile: %1 impossible de créer le profil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Téléchargements en cours - + There are still downloads in progress, do you really want to quit? Il encore des téléchargements en cours, voulez-vous vraiment quitter? - + failed to read savegame: %1 impossible de lire la sauvegarde: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting Attente - + Please press OK once you're logged into steam. Veuillez cliquer OK une fois connecté à steam. - + "%1" not found "%1" introuvable - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Aucun conflit - + <Edit...> <Modifier...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Installation réussie - - + + Configure Mod Configurer mod - - + + This mod contains ini tweaks. Do you want to configure them now? Ce mod contient des ajustement pour les fichiers ini. Désirez-vous les configurer maintenant? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + Choose Mod Choisir mod - + Mod Archive Archive de mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Téléchargement commencé - + failed to update mod list: %1 impossible de mettre à jour la liste de mods: %1 - + failed to spawn notepad.exe: %1 impossible de lancer notepad.exe: %1 - + failed to open %1 impossible d'ouvrir %1 - + failed to change origin name: %1 impossible de changer le nom d'origine: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Tous> - + <Checked> <Cochés> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <Décochés> - + <Update> <Rafraichir> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 impossible de renommer le mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Confirmer - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 Échec de lecture %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2179,391 +2174,391 @@ This function will guess the versioning scheme under the assumption that the ins Choisir priorité - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Installer mod... - + Enable all visible Activer tous les mods visibles - + Disable all visible Désactiver tous les mods visibles - + Check all for update Vérifier toutes les mises à jour - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Set Category Assigner catégorie - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Renommer mod... - + Remove Mod... Supprimer mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... Réparer mods... - - + + failed to remove %1 Impossible de supprimer %1 - - + + failed to create %1 impossible de créer %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 impossible d'écrire dans le fichier %1 - + %1 written %1 écrit - + Select binary - + Binary Programme - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available Mise à jour disponible - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... Écriture du fichier... - + Do you want to endorse Mod Organizer on %1 now? - + Remove Supprimer - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Erreur - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -4929,18 +4924,18 @@ p, li { white-space: pre-wrap; } "%1" introuvable - + Please use "Help" from the toolbar to get usage instructions to all elements Veuillez utiliser l'aide dans la barre d'outil pour obtenir des instructions à propos de tous les éléments - - + + <Manage...> <Gérer...> - + failed to parse profile %1: %2 impossible d'analyser le profil %1: %2 diff --git a/src/organizer_ru.ts b/src/organizer_ru.ts index d377c1e0..f7518508 100644 --- a/src/organizer_ru.ts +++ b/src/organizer_ru.ts @@ -263,11 +263,6 @@ p, li { white-space: pre-wrap; } Placeholder Заполнитель - - - KB - - @@ -1359,8 +1354,8 @@ BSA, отмеченные здеÑÑŒ, загружаютÑÑ Ñ‚Ð°Ðº, чтобы - - + + Refresh Обновить @@ -1540,7 +1535,7 @@ p, li { white-space: pre-wrap; } - + Update Обновление @@ -1551,7 +1546,7 @@ p, li { white-space: pre-wrap; } - + No Problems Проблем не обнаружено @@ -1584,7 +1579,7 @@ Right now this has very limited functionality - + Endorse Mod Organizer Одобрить Mod Organizer @@ -1604,219 +1599,219 @@ Right now this has very limited functionality Меню ПуÑк - + Problems Проблемы - + There are potential problems with your setup ЕÑть возможные проблемы Ñ Ð²Ð°ÑˆÐµÐ¹ уÑтановкой - + Everything seems to be in order КажетÑÑ Ð²ÑÑ‘ в порÑдке - + Help on UI Справка по интерфейÑу - + Documentation Wiki Wiki-Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ - + Report Issue Сообщить о проблеме - + Tutorials Уроки - + failed to save archives order, do you have write access to "%1"? не удалоÑÑŒ Ñохранить порÑдок архивов, у Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ð´Ð¾Ñтуп на запиÑÑŒ к "%1"? - + failed to save load order: %1 не удалоÑÑŒ Ñохранить порÑдок загрузки: %1 - + Name Ð˜Ð¼Ñ - + Please enter a name for the new profile Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + failed to create profile: %1 не удалоÑÑŒ Ñоздать профиль: %1 - + Show tutorial? Показать урок? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. Ð’Ñ‹ запуÑтили Mod Organizer впервые. Ð’Ñ‹ хотите проÑмотреть уроки по оÑновным возможноÑÑ‚Ñм? Ð’ Ñлучае отказа вы вÑегда можете открыть уроки из меню "Помощь". - + Downloads in progress Загрузки в процеÑÑе - + There are still downloads in progress, do you really want to quit? Загрузки вÑÑ‘ ещё в процеÑÑе, вы правда хотите выйти? - + failed to read savegame: %1 не удалоÑÑŒ прочеÑть Ñохранение: %1 - + Plugin "%1" failed: %2 Плагин "%1" не удалоÑÑŒ: %2 - + Plugin "%1" failed Плагин "%1" не удалоÑÑŒ - + failed to init plugin %1: %2 не удалоÑÑŒ инициализировать плагин %1: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" Ðе удалоÑÑŒ запуÑтить "%1" - + Waiting Ожидание - + Please press OK once you're logged into steam. Ðажмите OK как только вы войдете в Steam. - + "%1" not found "%1" не найден - + Start Steam? ЗапуÑтить Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? ТребуетÑÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ñ‹Ð¹ Steam, Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ запуÑка игры. Должен ли MO попытатьÑÑ Ð·Ð°Ð¿ÑƒÑтить Steam ÑейчаÑ? - + Also in: <br> Также в: <br> - + No conflict Конфликтов нет - + <Edit...> <Правка...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! Этот bsa подключен через ini, так что он может быть необходим! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Этот архив вÑе равно будет загружен, так как еÑть плагин Ñ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÐµÐ½Ð½Ñ‹Ð¼ названием, но его файлы не будут Ñледовать порÑдку уÑтановки! - + Activating Network Proxy Подключение Ñетевого прокÑи - - + + Installation successful УÑтановка завершена - - + + Configure Mod ÐаÑтройка мода - - + + This mod contains ini tweaks. Do you want to configure them now? Этот мод включает наÑтройки ini. Ð’Ñ‹ хотите наÑтроить их ÑейчаÑ? - - + + mod "%1" not found мод "%1" не найден - - + + Installation cancelled УÑтановка отменена - - + + The mod was not installed completely. Мод не был уÑтановлен полноÑтью. - + Some plugins could not be loaded Ðекоторые плагины не могут быть загружены @@ -1825,639 +1820,639 @@ Right now this has very limited functionality Следующие плагины не могут быть загружены. Причина может быть в отÑутÑтвующих завиÑимоÑÑ‚ÑÑ… (таких как python) или в уÑтаревшей верÑии:<ul> - + Too many esps and esms enabled - - + + Description missing - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Выберете мод - + Mod Archive Ðрхив мода - + Start Tutorial? Ðачать обучение? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? Ð’Ñ‹ ÑобираетеÑÑŒ открыть обучение. По техничеÑким причинам будет невозможно доÑрочно закончить обучение. Продолжить? - - + + Download started Загрузка начата - + failed to update mod list: %1 не удалоÑÑŒ обновить ÑпиÑок модов: %1 - + failed to spawn notepad.exe: %1 не удалоÑÑŒ вызвать notepad.exe: %1 - + failed to open %1 не удалоÑÑŒ открыть %1 - + failed to change origin name: %1 не удалоÑÑŒ изменить оригинальное имÑ: %1 - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Checked> <Подключен> - + <Unchecked> <Отключен> - + <Update> <Обновлен> - + <No category> <Без категории> - + <Conflicted> <Конфликтует> - + <Not Endorsed> - + failed to rename mod: %1 не удалоÑÑŒ переименовать мод: %1 - + Overwrite? ПерезапиÑать? - + This will replace the existing mod "%1". Continue? Это заменит ÑущеÑтвующий мод "%1". Продолжить? - + failed to remove mod "%1" не удалоÑÑŒ удалить мод "%1" - - - + + + failed to rename "%1" to "%2" не удалоÑÑŒ переименовать "%1" в "%2" - + Multiple esps activated, please check that they don't conflict. Подключено неÑколько esp, выберете из них не конфликтующие. - - - + + + Confirm Подтверждение - + Remove the following mods?<br><ul>%1</ul> Удалить Ñледующие моды?<br><ul>%1</ul> - + failed to remove mod: %1 не удалоÑÑŒ удалить мод: %1 - - + + Failed Ðеудача - + Installation file no longer exists УÑтановочный файл больше не ÑущеÑтвует - + Mods installed with old versions of MO can't be reinstalled in this way. Моды, уÑтановленные Ñ Ð¸Ñпользованием Ñтарых верÑий MO не могут быть переÑтановленны таким образом. - - + + You need to be logged in with Nexus to endorse Ð’Ñ‹ должны быть авторизированы на Nexus, чтобы одобрÑть. - - + + Extract BSA Извлечь BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Этот мод включает как минимум один BSA. Ð’Ñ‹ хотите раÑпаковать их? (Это удалит BSA поÑле завершениÑ. ЕÑли вы не знаете ничего о BSAs, проÑто откажитеÑÑŒ) - - - + + + failed to read %1: %2 не удалоÑÑŒ прочеÑть %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Ðрхив Ñодержит неверные хеши. Ðекоторые файлы могут быть иÑпорчены. - + Nexus ID for this Mod is unknown Nexus ID Ð´Ð»Ñ Ñтого мода неизвеÑтен - - + + Create Mod... Создать мод... - + This will move all files from overwrite into a new, regular mod. Please enter a name: Это перемеÑтит вÑе файлы от перезапиÑи в новый, отдельный мод. ПожалуйÑта, введите имÑ: - + A mod with this name already exists Мод Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? ДейÑтвительно подключить вÑе видимые моды? - + Really disable all visible mods? ДейÑтвительно отключить вÑе видимые моды? - + Choose what to export Выберете, что ÑкÑпортировать - + Everything Ð’ÑÑ‘ - + All installed mods are included in the list Ð’Ñе уÑтановленные моды, включенные в ÑпиÑок - + Active Mods Ðктивные моды - + Only active (checked) mods from your current profile are included Включены вÑе активные (подключенные) моды вашего текущего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + Visible Видимые - + All mods visible in the mod list are included Включены вÑе моды, видимые в ÑпиÑке модов - + export failed: %1 ÑкÑпорт не удалÑÑ: %1 - + Install Mod... УÑтановить мод... - + Enable all visible Включить вÑе видимые - + Disable all visible Отключить вÑе видимые - + Check all for update Проверить вÑе на Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ - + Export to csv... ЭкÑпорт в csv... - + Sync to Mods... Синхронизировать Ñ Ð¼Ð¾Ð´Ð°Ð¼Ð¸... - + Restore Backup ВоÑÑтановить из резервной копии - + Remove Backup... Удалить резервную копию... - + Set Category Задать категорию - + Primary Category ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Переименовать мод... - + Remove Mod... Удалить мод... - + Reinstall Mod ПереуÑтановить мод - + Un-Endorse Отменить одобрение - - + + Endorse Одобрить - + Won't endorse Ðе одобрÑть - + Endorsement state unknown Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтен - + Ignore missing data Игнорировать отÑутÑтвующие данные - + Visit on Nexus Перейти на Nexus - + Open in explorer Открыть в проводнике - + Information... ИнформациÑ... - - + + Exception: ИÑключение: - - + + Unknown exception ÐеизвеÑтное иÑключение - + <All> <Ð’Ñе> - + <Multiple> <ÐеÑколько> - + Fix Mods... ИÑправить моды... - - + + failed to remove %1 не удалоÑÑŒ удалить %1 - - + + failed to create %1 не удалоÑÑŒ Ñоздать %1 - + Can't change download directory while downloads are in progress! ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº, когда загрузки ещё не завершены! - + Download failed Загрузка не удалаÑÑŒ - + failed to write to file %1 ошибка запиÑи в файл %1 - + %1 written %1 запиÑан - + Select binary Выбрать иÑполнÑемый файл - + Binary ИÑполнÑемый файл - + Enter Name Введите Ð¸Ð¼Ñ - + Please enter a name for the executable Введите название Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ - + Not an executable Ðе ÑвлÑетÑÑ Ð¸ÑполнÑемым - + This is not a recognized executable. Это неверный иÑполнÑемый файл. - - + + Replace file? Заменить файл? - + There already is a hidden version of this file. Replace it? Уже ÑущеÑтвует ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла. Заменить? - - + + File operation failed ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ не удалаÑÑŒ - - + + Failed to remove "%1". Maybe you lack the required file permissions? Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? - + There already is a visible version of this file. Replace it? Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - + Update available ДоÑтупно обновление - + Open/Execute Открыть/Выполнить - + Add as Executable Добавить как иÑполнÑемый - + Un-Hide Показать - + Hide Скрыть - + Write To File... ЗапиÑать в файл... - + Do you want to endorse Mod Organizer on %1 now? Ð’Ñ‹ хотите одобрить Mod Organizer на %1 ÑейчаÑ? - + Request to Nexus failed: %1 Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Nexus не удалÑÑ: %1 - - + + login successful уÑпешный вход - + login failed: %1. Trying to download anyway вход не удалÑÑ: %1. ПытаюÑÑŒ загрузить вÑÑ‘ равно - + login failed: %1 войти не удалоÑÑŒ: %1 - + login failed: %1. You need to log-in with Nexus to update MO. войти не удалоÑÑŒ: %1. Вам нужно войти на Nexus, чтобы обновить MO. - + Error Ошибка - + failed to extract %1 (errorcode %2) не удалоÑÑŒ извлечь %1 (код ошибки %2) - + Extract... РаÑпаковка... - + Edit Categories... Изменить категории... - + Remove - + Enable all Включить вÑе - + Disable all Отключить вÑе - + Unlock load order Разблокировать порÑдок загрузки - + Lock load order Заблокировать порÑдок загрузки @@ -4033,18 +4028,18 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements ИÑпользуйте пункт "Справка" на панели инÑтрументов, чтобы получить инÑтрукции по иÑпользованию вÑех Ñлементов. - - + + <Manage...> <УправлÑть...> - + failed to parse profile %1: %2 не удалоÑÑŒ обработать профиль %1: %2 diff --git a/src/organizer_tr.ts b/src/organizer_tr.ts index c23ee738..92e0b7b9 100644 --- a/src/organizer_tr.ts +++ b/src/organizer_tr.ts @@ -269,11 +269,6 @@ p, li { white-space: pre-wrap; } Placeholder Yer tutucu - - - KB - - @@ -1508,8 +1503,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh @@ -1683,7 +1678,7 @@ p, li { white-space: pre-wrap; } - + Update @@ -1694,7 +1689,7 @@ p, li { white-space: pre-wrap; } - + No Problems @@ -1724,7 +1719,7 @@ Right now this has very limited functionality - + Endorse Mod Organizer @@ -1744,854 +1739,854 @@ Right now this has very limited functionality - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 - + failed to save archives order, do you have write access to "%1"? - + Name İsim - + Please enter a name for the new profile - + failed to create profile: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress - + There are still downloads in progress, do you really want to quit? - + failed to read savegame: %1 - + Plugin "%1" failed: %2 - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - + "%1" not found - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict - + <Edit...> - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful - - + + Configure Mod - - + + This mod contains ini tweaks. Do you want to configure them now? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Choose Mod - + Mod Archive - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started - + failed to update mod list: %1 - + failed to spawn notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + <All> - + <Checked> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to refresh list of esps: %s - + Too many esps and esms enabled - - + + Description missing - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> - + <Update> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" "%1"yi "%2" olarak yeniden adlandırma baÅŸarılı olamadı. - - - + + + Confirm Onayla - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 %1: %2 okunamadı - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... - + Enable all visible - + Disable all visible - + Check all for update - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Set Category - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... - + Remove Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... - - + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 - + %1 written - + Select binary - + Binary İkili deÄŸer - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -4084,18 +4079,18 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements - - + + <Manage...> - + failed to parse profile %1: %2 diff --git a/src/organizer_zh_CN.ts b/src/organizer_zh_CN.ts index 5ef313be..74918970 100644 --- a/src/organizer_zh_CN.ts +++ b/src/organizer_zh_CN.ts @@ -268,11 +268,6 @@ p, li { white-space: pre-wrap; } Placeholder å ä½ç¬¦ - - - KB - - @@ -1554,8 +1549,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh 刷新 @@ -1735,7 +1730,7 @@ p, li { white-space: pre-wrap; } - + Update æ›´æ–° @@ -1746,7 +1741,7 @@ p, li { white-space: pre-wrap; } - + No Problems 没有问题 @@ -1779,7 +1774,7 @@ Right now this has very limited functionality - + Endorse Mod Organizer @@ -1799,17 +1794,17 @@ Right now this has very limited functionality - + Problems 问题 - + There are potential problems with your setup 您的安装中存在潜在的问题 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1826,22 +1821,22 @@ Right now this has very limited functionality <li>.Net 未安装或版本过旧。想è¦è¿è¡Œ NCC 您必须先安装 .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­èŽ·å–: <a href="%1">%1</a></li> - + Help on UI 界é¢å¸®åŠ© - + Documentation Wiki 说明文档 (维基) - + Report Issue 报告问题 - + Tutorials @@ -1850,431 +1845,431 @@ Right now this has very limited functionality 无法ä¿å­˜åŠ è½½é¡ºåº - + failed to save load order: %1 无法ä¿å­˜åŠ è½½é¡ºåº: %1 - + failed to save archives order, do you have write access to "%1"? 无法ä¿å­˜æ¡£æ¡ˆé¡ºåºï¼Œæ‚¨ç¡®å®šæ‚¨æœ‰æƒé™æ›´æ”¹ "%1"? - + Name åç§° - + Please enter a name for the new profile - + failed to create profile: %1 无法创建é…置文件: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下载 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨è¿›è¡Œä¸­çš„下载,您确定è¦é€€å‡ºå—? - + failed to read savegame: %1 无法读å–存档: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" 无法å¯åЍ "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 当您登录 Steam 时请点击确定。 - + "%1" not found "%1" 未找到 - + Start Steam? å¯åЍ Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¡®åœ°å¯åŠ¨éŠæˆ²ï¼ŒSteam 必须处于è¿è¡Œçжæ€ã€‚MO è¦ç«‹å³å¯åЍ Steam å—? - + Also in: <br> 也在: <br> - + No conflict æ²¡æœ‰å†²çª - + <Edit...> <编辑...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! 该 BSA 已在 Ini 文件中å¯ç”¨ï¼Œå› æ­¤å®ƒå¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此档案还是会被加载,因为存在åŒåæ’件。ä¸è¿‡å®ƒæ‰€åŒ…å«çš„的文件ä¸ä¼šéµå¾ªå®‰è£…顺åºï¼ - + Activating Network Proxy - - + + Installation successful 安装æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 设定文件,您想现在就对它们进行é…ç½®å—? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled å®‰è£…å·²å–æ¶ˆ - - + + The mod was not installed completely. Mod 没有完全安装。 - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + Choose Mod 选择 Mod - + Mod Archive Mod 压缩包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 开始下载 - + failed to update mod list: %1 无法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 æ— æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 无法打开 %1 - + failed to change origin name: %1 无法更改原始文件å: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <全部> - + <Checked> <已勾选> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <未勾选> - + <Update> <有更新> - + <No category> <无类别> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 无法é‡å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm 确认 - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 无法移动 Mod: %1 - - + + Failed 失败 - + Installation file no longer exists 安装文件ä¸å¤å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 旧版 MO 安装的 Mod æ— æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£…。 - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解压 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€ä¸ª BSA。您确定è¦è§£åŽ‹å—? (解压完æˆåŽï¼ŒBSA 文件将会被删除。如果您ä¸äº†è§£ BSA çš„è¯ï¼Œè¯·é€‰æ‹©â€œå¦â€) - - - + + + failed to read %1: %2 æ— æ³•è¯»å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 压缩包 Hash 值错误。部分文件å¯èƒ½å·²ç»æŸå。 - + Nexus ID for this Mod is unknown æ­¤ Mod çš„N网 ID 未知 @@ -2287,391 +2282,391 @@ This function will guess the versioning scheme under the assumption that the ins 选择优先级 - + Really enable all visible mods? 确定è¦å¯ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Really disable all visible mods? 确定è¦ç¦ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... 安装 Mod... - + Enable all visible å¯ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Check all for update 检查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... - + Set Category 设置类别 - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... é‡å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£… Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N网上æµè§ˆ - + Open in explorer 在资æºç®¡ç†å™¨ä¸­æ‰“å¼€ - + Information... ä¿¡æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + Fix Mods... ä¿®å¤ Mod... - - + + failed to remove %1 无法删除 %1 - - + + failed to create %1 无法创建 %1 - + Can't change download directory while downloads are in progress! 下载文件时ä¸èƒ½ä¿®æ”¹ä¸‹è½½ç›®å½•ï¼ - + Download failed 下载失败 - + failed to write to file %1 无法写入文件 %1 - + %1 written 已写入 %1 - + Select binary é€‰æ‹©å¯æ‰§è¡Œæ–‡ä»¶ - + Binary - + Enter Name 输入åç§° - + Please enter a name for the executable 请为程åºè¾“入一个åç§° - + Not an executable 䏿˜¯å¯æ‰§è¡Œç¨‹åº - + This is not a recognized executable. æ— æ³•è¯†åˆ«çš„å¯æ‰§è¡Œæ–‡ä»¶ - - + + Replace file? æ›¿æ¢æ–‡ä»¶ï¼Ÿ - + There already is a hidden version of this file. Replace it? 已存在åŒå文件,但该文件被éšè—了。确定è¦è¦†ç›–å—? - - + + File operation failed 文件æ“作错误 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 打开/执行 - + Add as Executable æ·»åŠ ä¸ºå¯æ‰§è¡Œæ–‡ä»¶ - + Un-Hide å–æ¶ˆéšè— - + Hide éšè— - + Write To File... 写入文件... - + Do you want to endorse Mod Organizer on %1 now? - + Remove 移除 - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful 登录æˆåŠŸ - + login failed: %1. Trying to download anyway 登录失败: %1,请å°è¯•使用别的方法下载 - + login failed: %1 无法登录: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登录失败: %1。您需è¦ç™»å½•到N网æ‰èƒ½æ›´æ–° MO - + Error 错误 - + failed to extract %1 (errorcode %2) 无法解压 %1 (é”™è¯¯ä»£ç  %2) - + Extract... 解压... - + Edit Categories... 编辑类别... - + Enable all 全部å¯ç”¨ - + Disable all 全部ç¦ç”¨ @@ -5303,18 +5298,18 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements 请使用工具æ ä¸Šçš„â€œå¸®åŠ©â€æ¥èŽ·å¾—æ‰€æœ‰å…ƒç´ çš„ä½¿ç”¨è¯´æ˜Ž - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 无法解æžé…置文件 %1: %2 diff --git a/src/organizer_zh_TW.ts b/src/organizer_zh_TW.ts index 70b41e50..76e0d658 100644 --- a/src/organizer_zh_TW.ts +++ b/src/organizer_zh_TW.ts @@ -268,11 +268,6 @@ p, li { white-space: pre-wrap; } Placeholder å ä½ç¬¦ - - - KB - - @@ -1554,8 +1549,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh 釿–°æ•´ç† @@ -1735,7 +1730,7 @@ p, li { white-space: pre-wrap; } - + Update æ›´æ–° @@ -1746,7 +1741,7 @@ p, li { white-space: pre-wrap; } - + No Problems 沒有å•題 @@ -1779,7 +1774,7 @@ Right now this has very limited functionality - + Endorse Mod Organizer @@ -1799,17 +1794,17 @@ Right now this has very limited functionality - + Problems å•題 - + There are potential problems with your setup 您的安è£ä¸­å­˜åœ¨æ½›åœ¨çš„å•題 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1826,22 +1821,22 @@ Right now this has very limited functionality <li>.Net æœªå®‰è£æˆ–版本éŽèˆŠã€‚想è¦é‹è¡Œ NCC æ‚¨å¿…é ˆå…ˆå®‰è£ .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­ç²å–: <a href="%1">%1</a></li> - + Help on UI 介é¢å¹«åŠ© - + Documentation Wiki 說明文檔 (維基) - + Report Issue 報告å•題 - + Tutorials @@ -1850,431 +1845,431 @@ Right now this has very limited functionality ç„¡æ³•å„²å­˜åŠ è¼‰é †åº - + failed to save load order: %1 無法儲存加載順åº: %1 - + failed to save archives order, do you have write access to "%1"? 無法儲存檔案順åºï¼Œæ‚¨ç¢ºå®šæ‚¨æœ‰æ¬Šé™æ›´æ”¹ "%1"? - + Name å稱 - + Please enter a name for the new profile - + failed to create profile: %1 無法建立é…置檔案: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下載 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨é€²è¡Œä¸­çš„下載,您確定è¦é€€å‡ºå—Žï¼Ÿ - + failed to read savegame: %1 無法讀å–存檔: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" 無法啟動 "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 當您登入 Steam 時請點擊確定。 - + "%1" not found "%1" 未找到 - + Start Steam? 啟動 Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¢ºåœ°å•Ÿå‹•éŠæˆ²ï¼ŒSteam 必須處於é‹è¡Œç‹€æ…‹ï¼ŒMO è¦ç«‹å³å•Ÿå‹• Steam 嗎? - + Also in: <br> 也在: <br> - + No conflict 沒有è¡çª - + <Edit...> <編輯...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! 該 BSA 已在 Ini 檔案中啟用,因此它å¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此檔案還是會被加載,因為存在åŒåæ’件。ä¸éŽå®ƒæ‰€åŒ…å«çš„çš„æª”æ¡ˆä¸æœƒéµå¾ªå®‰è£é †åºï¼ - + Activating Network Proxy - - + + Installation successful å®‰è£æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 設定檔案,您想ç¾åœ¨å°±å°å®ƒå€‘進行é…置嗎? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled 安è£å·²å–消 - - + + The mod was not installed completely. Mod 沒有完全安è£ã€‚ - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + Choose Mod 鏿“‡ Mod - + Mod Archive Mod 壓縮包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 開始下載 - + failed to update mod list: %1 無法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 ç„¡æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 無法開啟 %1 - + failed to change origin name: %1 無法更改原始檔案å: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <全部> - + <Checked> <已勾é¸> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <未勾é¸> - + <Update> <有更新> - + <No category> <無類別> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 ç„¡æ³•é‡æ–°å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm ç¢ºèª - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 無法移動 Mod: %1 - - + + Failed 失敗 - + Installation file no longer exists å®‰è£æª”案ä¸è¤‡å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 舊版 MO 安è£çš„ Mod ç„¡æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£ã€‚ - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解壓 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€å€‹ BSA。您確定è¦è§£å£“嗎? (解壓完æˆå¾Œï¼ŒBSA 檔案將會被刪除。如果您ä¸çž­è§£ BSA çš„è©±ï¼Œè«‹é¸æ“‡â€œå¦â€) - - - + + + failed to read %1: %2 ç„¡æ³•è®€å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 壓縮包 Hash 值錯誤。部分檔案å¯èƒ½å·²ç¶“æå£žã€‚ - + Nexus ID for this Mod is unknown æ­¤ Mod çš„Nç¶² ID 未知 @@ -2287,391 +2282,391 @@ This function will guess the versioning scheme under the assumption that the ins 鏿“‡å„ªå…ˆç´š - + Really enable all visible mods? 確定è¦å•Ÿç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Really disable all visible mods? 確定è¦ç¦ç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... å®‰è£ Mod... - + Enable all visible 啟用所有å¯è¦‹é …ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è¦‹é …ç›® - + Check all for update 檢查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... - + Set Category 設定類別 - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... 釿–°å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£ Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N網上æµè¦½ - + Open in explorer 在檔案總管中開啟 - + Information... 訊æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + Fix Mods... 修復 Mod... - - + + failed to remove %1 無法刪除 %1 - - + + failed to create %1 無法建立 %1 - + Can't change download directory while downloads are in progress! 下載檔案時ä¸èƒ½ä¿®æ”¹ä¸‹è¼‰ç›®éŒ„ï¼ - + Download failed 下載失敗 - + failed to write to file %1 無法寫入檔案 %1 - + %1 written 已寫入 %1 - + Select binary 鏿“‡å¯åŸ·è¡Œæª”案 - + Binary - + Enter Name 輸入å稱 - + Please enter a name for the executable 請為程å¼è¼¸å…¥ä¸€å€‹å稱 - + Not an executable 䏿˜¯å¯åŸ·è¡Œç¨‹å¼ - + This is not a recognized executable. 無法識別的å¯åŸ·è¡Œæª”案 - - + + Replace file? å–代檔案? - + There already is a hidden version of this file. Replace it? 已存在åŒå檔案,但該檔案被隱è—了。確定è¦è¦†è“‹å—Žï¼Ÿ - - + + File operation failed 檔案æ“作錯誤 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 開啟/執行 - + Add as Executable 添加為å¯åŸ·è¡Œæª”案 - + Un-Hide å–æ¶ˆéš±è— - + Hide éš±è— - + Write To File... 寫入檔案... - + Do you want to endorse Mod Organizer on %1 now? - + Remove 移除 - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + login successful 登入æˆåŠŸ - + login failed: %1. Trying to download anyway 登入失敗: %1,請嘗試使用別的方法下載 - + login failed: %1 無法登入: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登入失敗: %1。您需è¦ç™»å…¥åˆ°Nç¶²æ‰èƒ½æ›´æ–° MO - + Error 錯誤 - + failed to extract %1 (errorcode %2) 無法解壓 %1 (錯誤代碼 %2) - + Extract... 解壓... - + Edit Categories... 編輯類別... - + Enable all 全部啟用 - + Disable all 全部ç¦ç”¨ @@ -5303,18 +5298,18 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements 請使用工具列上的“幫助â€ä¾†ç²å¾—所有元素的使用說明 - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 無法解æžé…置檔案 %1: %2 diff --git a/src/settings.h b/src/settings.h index 51ee6b92..abffc94b 100644 --- a/src/settings.h +++ b/src/settings.h @@ -251,6 +251,11 @@ public: */ bool pluginBlacklisted(const QString &fileName) const; + /** + * @return all loaded MO plugins + */ + std::vector plugins() const { return m_Plugins; } + private: QString obfuscate(const QString &password) const; -- cgit v1.3.1 From daf4ae44faee3e641a743cc9f4e0c56f016faad4 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 1 Dec 2013 23:50:24 +0100 Subject: - added second context menu for changing categories that applies only changes to the selected mods instead of replacing the existing set of categories (thanks to Ross!) - bugfix: category filtering didn't work correctly when grouping was also active --- src/mainwindow.cpp | 109 ++++++++++++++++++++++++++++++++++++++++------- src/mainwindow.h | 22 ++++++++-- src/modlistsortproxy.cpp | 24 +++++++++-- src/modlistsortproxy.h | 9 +--- 4 files changed, 134 insertions(+), 30 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 31ee1ae7..d5330017 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3309,7 +3309,7 @@ void MainWindow::on_modList_doubleClicked(const QModelIndex &index) } } -bool MainWindow::addCategories(QMenu *menu, int targetID) +bool MainWindow::populateMenuCategories(QMenu *menu, int targetID) { ModInfo::Ptr modInfo = ModInfo::getByIndex(m_ContextRow); const std::set &categories = modInfo->getCategories(); @@ -3338,7 +3338,7 @@ bool MainWindow::addCategories(QMenu *menu, int targetID) targetMenu->addAction(checkableAction.take()); if (m_CategoryFactory.hasChildren(i)) { - if (addCategories(targetMenu, m_CategoryFactory.getCategoryID(i)) || enabled) { + if (populateMenuCategories(targetMenu, m_CategoryFactory.getCategoryID(i)) || enabled) { targetMenu->setIcon(QIcon(":/MO/gui/resources/check.png")); } } @@ -3347,12 +3347,12 @@ bool MainWindow::addCategories(QMenu *menu, int targetID) return childEnabled; } -void MainWindow::saveCategoriesFromMenu(QMenu *menu, int modRow) +void MainWindow::replaceCategoriesFromMenu(QMenu *menu, int modRow) { ModInfo::Ptr modInfo = ModInfo::getByIndex(modRow); foreach (QAction* action, menu->actions()) { if (action->menu() != NULL) { - saveCategoriesFromMenu(action->menu(), modRow); + replaceCategoriesFromMenu(action->menu(), modRow); } else { QWidgetAction *widgetAction = qobject_cast(action); if (widgetAction != NULL) { @@ -3363,8 +3363,35 @@ void MainWindow::saveCategoriesFromMenu(QMenu *menu, int modRow) } } -void MainWindow::saveCategories() +void MainWindow::addRemoveCategoriesFromMenu(QMenu *menu, int modRow) { + if (m_ContextRow != -1 && m_ContextRow != modRow) { + ModInfo::Ptr editedModInfo = ModInfo::getByIndex(m_ContextRow); + foreach (QAction* action, menu->actions()) { + if (action->menu() != NULL) { + addRemoveCategoriesFromMenu(action->menu(), modRow); + } else { + QWidgetAction *widgetAction = qobject_cast(action); + if (widgetAction != NULL) { + QCheckBox *checkbox = qobject_cast(widgetAction->defaultWidget()); + int categoryId = widgetAction->data().toInt(); + bool checkedBefore = editedModInfo->categorySet(categoryId); + bool checkedAfter = checkbox->isChecked(); + + if (checkedBefore != checkedAfter) { // only update if the category was changed on the edited mod + ModInfo::Ptr currentModInfo = ModInfo::getByIndex(modRow); + currentModInfo->setCategory(categoryId, checkedAfter); + } + } + } + } + } else { + //This block shouldn't be reached, but if it is then fall back to replace (context row is invalid or replacing edited mod) + replaceCategoriesFromMenu(menu, modRow); + } +} + +void MainWindow::addRemoveCategories_MenuHandler() { QMenu *menu = qobject_cast(sender()); if (menu == NULL) { qCritical("not a menu?"); @@ -3383,11 +3410,58 @@ void MainWindow::saveCategories() selectedMods.append(temp.data().toString()); if (temp.row() < min) min = temp.row(); if (temp.row() > max) max = temp.row(); - saveCategoriesFromMenu(menu, mapToModel(&m_ModList, selected.at(i)).row()); + // save the currently selected mod for last... then we can use it as a pattern for what is changing... + int modRow = m_ModListSortProxy->mapToSource(selected.at(i)).row(); + if (modRow != m_ContextRow) { + addRemoveCategoriesFromMenu(menu,modRow); + } } - //m_ModList.notifyChange(min, max); + //come back to the currently selected mod, after the others have been set + replaceCategoriesFromMenu(menu, m_ContextRow); + + m_ModList.notifyChange(-1); + + // find mods by their name because indices are invalidated + QAbstractItemModel *model = ui->modList->model(); + Q_FOREACH(const QString &mod, selectedMods) { + QModelIndexList matches = model->match(model->index(0, 0), Qt::DisplayRole, mod, 1, + Qt::MatchFixedString | Qt::MatchCaseSensitive | Qt::MatchRecursive); + if (matches.size() > 0) { + ui->modList->selectionModel()->select(matches.at(0), QItemSelectionModel::Select | QItemSelectionModel::Rows); + } + } + } else { + //For single mod selections, just do a replace + replaceCategoriesFromMenu(menu, m_ContextRow); + m_ModList.notifyChange(m_ContextRow); + } + + refreshFilters(); +} + +void MainWindow::replaceCategories_MenuHandler() { + QMenu *menu = qobject_cast(sender()); + if (menu == NULL) { + qCritical("not a menu?"); + return; + } + + QModelIndexList selected = ui->modList->selectionModel()->selectedRows(); + + if (selected.size() > 0) { + int min = INT_MAX; + int max = INT_MIN; + + QStringList selectedMods; + for (int i = 0; i < selected.size(); ++i) { + QModelIndex temp = mapToModel(&m_ModList, selected.at(i)); + selectedMods.append(temp.data().toString()); + if (temp.row() < min) min = temp.row(); + if (temp.row() > max) max = temp.row(); + replaceCategoriesFromMenu(menu, mapToModel(&m_ModList, selected.at(i)).row()); + } + m_ModList.notifyChange(-1); -// refreshModList(); // find mods by their name because indices are invalidated QAbstractItemModel *model = ui->modList->model(); @@ -3399,7 +3473,8 @@ void MainWindow::saveCategories() } } } else { - saveCategoriesFromMenu(menu, m_ContextRow); + //For single mod selections, just do a replace + replaceCategoriesFromMenu(menu, m_ContextRow); m_ModList.notifyChange(m_ContextRow); } @@ -3567,7 +3642,7 @@ void MainWindow::exportModListCSV() bool enabled = m_CurrentProfile->modEnabled(i); if ((selection.getChoiceData().toInt() == 1) && !enabled) { continue; - } else if ((selection.getChoiceData().toInt() == 2) && !m_ModListSortProxy->filterMatches(info, enabled)) { + } else if ((selection.getChoiceData().toInt() == 2) && !m_ModListSortProxy->filterMatchesMod(info, enabled)) { continue; } std::vector flags = info->getFlags(); @@ -3633,11 +3708,15 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) menu.addAction(tr("Restore Backup"), this, SLOT(restoreBackup_clicked())); menu.addAction(tr("Remove Backup..."), this, SLOT(removeMod_clicked())); } else { - // Set categories is a separate menu connected to a push button. This way it doesn't simply close every time you hover the mouse outside - QMenu *addCategoryMenu = new QMenu(tr("Set Category")); - addCategories(addCategoryMenu, 0); - connect(addCategoryMenu, SIGNAL(aboutToHide()), this, SLOT(saveCategories())); - addMenuAsPushButton(&menu, addCategoryMenu); + QMenu *addRemoveCategoriesMenu = new QMenu(tr("Add/Remove Categories")); + populateMenuCategories(addRemoveCategoriesMenu, 0); + connect(addRemoveCategoriesMenu, SIGNAL(aboutToHide()), this, SLOT(addRemoveCategories_MenuHandler())); + addMenuAsPushButton(&menu, addRemoveCategoriesMenu); + + QMenu *replaceCategoriesMenu = new QMenu(tr("Replace Categories")); + populateMenuCategories(replaceCategoriesMenu, 0); + connect(replaceCategoriesMenu, SIGNAL(aboutToHide()), this, SLOT(replaceCategories_MenuHandler())); + addMenuAsPushButton(&menu, replaceCategoriesMenu); QMenu *primaryCategoryMenu = new QMenu(tr("Primary Category")); connect(primaryCategoryMenu, SIGNAL(aboutToShow()), this, SLOT(addPrimaryCategoryCandidates())); diff --git a/src/mainwindow.h b/src/mainwindow.h index dfd2e571..27a56812 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -230,9 +230,23 @@ private: void refreshFilters(); - void saveCategoriesFromMenu(QMenu *menu, int modRow); + /** + * Sets category selections from menu; for multiple mods, this will only apply + * the changes made in the menu (which is the delta between the current menu selection and the reference mod) + * @param menu the menu after editing by the user + * @param modRow index of the mod to edit + */ + void addRemoveCategoriesFromMenu(QMenu *menu, int modRow); + + /** + * Sets category selections from menu; for multiple mods, this will completely + * replace the current set of categories on each selected with those selected in the menu + * @param menu the menu after editing by the user + * @param modRow index of the mod to edit + */ + void replaceCategoriesFromMenu(QMenu *menu, int modRow); - bool addCategories(QMenu *menu, int targetID); + bool populateMenuCategories(QMenu *menu, int targetID); void updateDownloadListDelegate(); @@ -431,7 +445,9 @@ private slots: void originModified(int originID); - void saveCategories(); + void addRemoveCategories_MenuHandler(); + void replaceCategories_MenuHandler(); + void savePrimaryCategory(); void addPrimaryCategoryCandidates(); diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp index 888ecdb8..4d767230 100644 --- a/src/modlistsortproxy.cpp +++ b/src/modlistsortproxy.cpp @@ -220,7 +220,7 @@ bool ModListSortProxy::hasConflictFlag(const std::vector &flags) } -bool ModListSortProxy::filterMatches(ModInfo::Ptr info, bool enabled) const +bool ModListSortProxy::filterMatchesMod(ModInfo::Ptr info, bool enabled) const { if (!m_CurrentFilter.isEmpty() && !info->name().contains(m_CurrentFilter, Qt::CaseInsensitive)) { @@ -258,7 +258,7 @@ bool ModListSortProxy::filterMatches(ModInfo::Ptr info, bool enabled) const } -bool ModListSortProxy::filterAcceptsRow(int row, const QModelIndex&) const +bool ModListSortProxy::filterAcceptsRow(int row, const QModelIndex &parent) const { if (m_Profile == NULL) { return false; @@ -268,9 +268,25 @@ bool ModListSortProxy::filterAcceptsRow(int row, const QModelIndex&) const qWarning("invalid row idx %d", row); return false; } - bool modEnabled = m_Profile->modEnabled(row); - return filterMatches(ModInfo::getByIndex(row), modEnabled); + QModelIndex idx = sourceModel()->index(row, 0, parent); + if (!idx.isValid()) { + qDebug("invalid index"); + return false; + } + if (idx.isValid() && sourceModel()->hasChildren(idx)) { + for (int i = 0; i < sourceModel()->rowCount(idx); ++i) { + if (filterAcceptsRow(i, idx)) { + return true; + } + } + + return false; + } else { + bool modEnabled = idx.sibling(row, 0).data(Qt::CheckStateRole).toInt() == Qt::Checked; + unsigned int index = idx.data(Qt::UserRole + 1).toInt(); + return filterMatchesMod(ModInfo::getByIndex(index), modEnabled); + } } diff --git a/src/modlistsortproxy.h b/src/modlistsortproxy.h index dd968b9e..3e18ea4e 100644 --- a/src/modlistsortproxy.h +++ b/src/modlistsortproxy.h @@ -52,14 +52,7 @@ public: **/ void disableAllVisible(); - bool filterMatches(ModInfo::Ptr info, bool enabled) const; - -/* - virtual int rowCount( const QModelIndex & parent = QModelIndex() ) const { - int rc = QSortFilterProxyModel::rowCount(parent); - qDebug() << parent << " - " << rc; - return rc; - }*/ + bool filterMatchesMod(ModInfo::Ptr info, bool enabled) const; virtual bool hasChildren ( const QModelIndex & parent = QModelIndex() ) const { return rowCount(parent) > 0; -- cgit v1.3.1 From 469cc2d945afebb1291a825339642b5e95f0e223 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 7 Dec 2013 12:48:18 +0100 Subject: - download manager now saves the file times on nexus, for potential later use in version check - nexus interface now supports 301 redirects - now using the new nexus url format - bugfix: "visit on nexus" used an outdated url scheme and thus caused unnecessary redirection --- src/downloadmanager.cpp | 26 ++++++++++++++++--- src/downloadmanager.h | 5 ++++ src/mainwindow.cpp | 2 +- src/nexusinterface.cpp | 59 ++++++++++++++++++++++++++------------------ src/nexusinterface.h | 7 +++--- src/shared/fallout3info.cpp | 4 +-- src/shared/fallout3info.h | 1 + src/shared/falloutnvinfo.cpp | 4 +-- src/shared/falloutnvinfo.h | 1 + src/shared/gameinfo.h | 1 + src/shared/oblivioninfo.cpp | 4 +-- src/shared/oblivioninfo.h | 1 + src/shared/skyriminfo.cpp | 4 +-- src/shared/skyriminfo.h | 1 + 14 files changed, 80 insertions(+), 40 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 779b052c..48484d24 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -153,7 +153,8 @@ QString DownloadManager::DownloadInfo::currentURL() DownloadManager::DownloadManager(NexusInterface *nexusInterface, QObject *parent) - : IDownloadManager(parent), m_NexusInterface(nexusInterface), m_DirWatcher(), m_ShowHidden(false) + : IDownloadManager(parent), m_NexusInterface(nexusInterface), m_DirWatcher(), m_ShowHidden(false), + m_DateExpression("/Date\\((\\d+)\\)/") { connect(&m_DirWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(directoryChanged(QString))); } @@ -851,7 +852,6 @@ void DownloadManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) setState(info, STATE_PAUSED); } else { if (bytesTotal > info->m_TotalSize) { - qDebug("file size %s: %lld", qPrintable(info->m_FileName), bytesTotal); info->m_TotalSize = bytesTotal; } int oldProgress = info->m_Progress; @@ -883,6 +883,7 @@ void DownloadManager::createMetaFile(DownloadInfo *info) metaFile.setValue("name", info->m_NexusInfo.m_Name); metaFile.setValue("modName", info->m_NexusInfo.m_ModName); metaFile.setValue("version", info->m_NexusInfo.m_Version); + metaFile.setValue("fileTime", info->m_NexusInfo.m_FileTime); metaFile.setValue("fileCategory", info->m_NexusInfo.m_FileCategory); metaFile.setValue("newestVersion", info->m_NexusInfo.m_NewestVersion); metaFile.setValue("category", info->m_NexusInfo.m_Category); @@ -914,11 +915,9 @@ void DownloadManager::nxmDescriptionAvailable(int, QVariant userData, QVariant r DownloadInfo *info = downloadInfoByID(userData.toInt()); if (info == NULL) return; - info->m_NexusInfo.m_Category = result["category_id"].toInt(); info->m_NexusInfo.m_ModName = result["name"].toString().trimmed(); info->m_NexusInfo.m_NewestVersion = result["version"].toString(); - if (info->m_FileID != 0) { setState(info, STATE_READY); } else { @@ -927,6 +926,17 @@ void DownloadManager::nxmDescriptionAvailable(int, QVariant userData, QVariant r } +QDateTime DownloadManager::matchDate(const QString &timeString) +{ + if (m_DateExpression.exactMatch(timeString)) { + return QDateTime::fromMSecsSinceEpoch(m_DateExpression.cap(1).toLongLong()); + } else { + qWarning("date not matched: %s", qPrintable(timeString)); + return QDateTime::currentDateTime(); + } +} + + void DownloadManager::nxmFilesAvailable(int, QVariant userData, QVariant resultData, int requestID) { std::set::iterator idIter = m_RequestIDs.find(requestID); @@ -960,7 +970,11 @@ void DownloadManager::nxmFilesAvailable(int, QVariant userData, QVariant resultD (fileNameVariant == info->m_FileName) || (fileNameVariant == alternativeLocalName)) { info->m_NexusInfo.m_Name = fileInfo["name"].toString(); info->m_NexusInfo.m_Version = fileInfo["version"].toString(); + if (info->m_NexusInfo.m_Version.isEmpty()) { + info->m_NexusInfo.m_Version = info->m_NexusInfo.m_NewestVersion; + } info->m_NexusInfo.m_FileCategory = fileInfo["category_id"].toInt(); + info->m_NexusInfo.m_FileTime = matchDate(fileInfo["date"].toString()); info->m_FileID = fileInfo["id"].toInt(); found = true; break; @@ -1014,7 +1028,11 @@ void DownloadManager::nxmFileInfoAvailable(int modID, int fileID, QVariant userD info.m_Name = result["name"].toString(); info.m_Version = result["version"].toString(); + if (info.m_Version.isEmpty()) { + info.m_Version = info.m_NewestVersion; + } info.m_FileName = result["uri"].toString(); + info.m_FileTime = matchDate(result["date"].toString()); if (userData.isValid()) { m_RequestIDs.insert(m_NexusInterface->requestDownloadURL(modID, fileID, this, qVariantFromValue(info), userData.toString())); diff --git a/src/downloadmanager.h b/src/downloadmanager.h index e82ea064..099e6084 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -46,6 +46,7 @@ struct NexusInfo { QString m_NewestVersion; QString m_FileName; QVariantList m_DownloadMap; + QDateTime m_FileTime; bool m_Set; }; Q_DECLARE_METATYPE(NexusInfo) @@ -437,6 +438,8 @@ private: DownloadInfo *downloadInfoByID(unsigned int id); + QDateTime matchDate(const QString &timeString); + private: static const int AUTOMATIC_RETRIES = 3; @@ -458,6 +461,8 @@ private: bool m_ShowHidden; + QRegExp m_DateExpression; + }; #endif // DOWNLOADMANAGER_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d5330017..cca10279 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3214,7 +3214,7 @@ void MainWindow::visitOnNexus_clicked() { int modID = m_ModList.data(m_ModList.index(m_ContextRow, 0), Qt::UserRole).toInt(); if (modID > 0) { - nexusLinkActivated(QString("%1/downloads/file.php?id=%2").arg(ToQString(GameInfo::instance().getNexusPage())).arg(modID)); + nexusLinkActivated(QString("%1/mods/%2").arg(ToQString(GameInfo::instance().getNexusPage())).arg(modID)); } else { MessageDialog::showMessage(tr("Nexus ID for this Mod is unknown"), this); } diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index 6a4ae046..6b5cf19c 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -380,29 +380,33 @@ void NexusInterface::nextRequest() info.m_Timeout->setInterval(60000); QString url; - switch (info.m_Type) { - case NXMRequestInfo::TYPE_DESCRIPTION: { - url = QString("%1/Mods/%2/").arg(info.m_URL).arg(info.m_ModID); - } break; - case NXMRequestInfo::TYPE_FILES: { - url = QString("%1/Files/indexfrommod/%2/").arg(info.m_URL).arg(info.m_ModID); - } break; - case NXMRequestInfo::TYPE_FILEINFO: { - url = QString("%1/Files/%2/").arg(info.m_URL).arg(info.m_FileID); - } break; - case NXMRequestInfo::TYPE_DOWNLOADURL: { - url = QString("%1/Files/download/%2").arg(info.m_URL).arg(info.m_FileID); - } break; - case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: { - url = QString("%1/Mods/toggleendorsement/%2?lvote=%3").arg(info.m_URL).arg(info.m_ModID).arg(!info.m_Endorse); - } break; - case NXMRequestInfo::TYPE_GETUPDATES: { - QString modIDList = VectorJoin(info.m_ModIDList, ","); - modIDList = "[" + modIDList + "]"; - url = QString("%1/Mods/GetUpdates?ModList=%2").arg(info.m_URL).arg(modIDList); - } break; + if (!info.m_Reroute) { + switch (info.m_Type) { + case NXMRequestInfo::TYPE_DESCRIPTION: { + url = QString("%1/Mods/%2/").arg(info.m_URL).arg(info.m_ModID); + } break; + case NXMRequestInfo::TYPE_FILES: { + url = QString("%1/Files/indexfrommod/%2/").arg(info.m_URL).arg(info.m_ModID); + } break; + case NXMRequestInfo::TYPE_FILEINFO: { + url = QString("%1/Files/%2/").arg(info.m_URL).arg(info.m_FileID); + } break; + case NXMRequestInfo::TYPE_DOWNLOADURL: { + url = QString("%1/Files/download/%2").arg(info.m_URL).arg(info.m_FileID); + } break; + case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: { + url = QString("%1/Mods/toggleendorsement/%2?lvote=%3").arg(info.m_URL).arg(info.m_ModID).arg(!info.m_Endorse); + } break; + case NXMRequestInfo::TYPE_GETUPDATES: { + QString modIDList = VectorJoin(info.m_ModIDList, ","); + modIDList = "[" + modIDList + "]"; + url = QString("%1/Mods/GetUpdates?ModList=%2").arg(info.m_URL).arg(modIDList); + } break; + } + url.append(QString("?game_id=%1").arg(GameInfo::instance().getNexusGameID())); + } else { + url = info.m_URL; } - QNetworkRequest request(url); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/xml"); request.setRawHeader("User-Agent", @@ -433,13 +437,21 @@ void NexusInterface::requestFinished(std::list::iterator iter) qWarning("request failed: %s", reply->errorString().toUtf8().constData()); emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, reply->errorString()); } else { + int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + if (statusCode == 301) { + // redirect request, return request to queue + iter->m_URL = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toString(); + iter->m_Reroute = true; + m_RequestQueue.enqueue(*iter); + nextRequest(); + return; + } QByteArray data = reply->readAll(); if (data.isNull() || data.isEmpty() || (strcmp(data.constData(), "null") == 0)) { QString nexusError(reply->rawHeader("NexusErrorInfo")); if (nexusError.length() == 0) { nexusError = tr("empty response"); } - emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, nexusError); } else { bool ok; @@ -509,7 +521,6 @@ void NexusInterface::requestTimeout() qWarning("invalid sender type"); return; } - qWarning("request timeout"); for (std::list::iterator iter = m_ActiveRequest.begin(); iter != m_ActiveRequest.end(); ++iter) { if (iter->m_Timeout == timer) { // this abort causes a "request failed" which cleans up the rest diff --git a/src/nexusinterface.h b/src/nexusinterface.h index da5fe02a..e7a01b0f 100644 --- a/src/nexusinterface.h +++ b/src/nexusinterface.h @@ -270,18 +270,19 @@ private: QVariant m_UserData; QTimer *m_Timeout; QString m_URL; + bool m_Reroute; int m_ID; int m_Endorse; NXMRequestInfo(int modID, Type type, QVariant userData, const QString &url) : m_ModID(modID), m_FileID(0), m_Reply(NULL), m_Type(type), m_UserData(userData), - m_Timeout(NULL), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} + m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} NXMRequestInfo(std::vector modIDList, Type type, QVariant userData, const QString &url) : m_ModID(-1), m_ModIDList(modIDList), m_FileID(0), m_Reply(NULL), m_Type(type), m_UserData(userData), - m_Timeout(NULL), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} + m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} NXMRequestInfo(int modID, int fileID, Type type, QVariant userData, const QString &url) : m_ModID(modID), m_FileID(fileID), m_Reply(NULL), m_Type(type), m_UserData(userData), - m_Timeout(NULL), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} + m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} private: static QAtomicInt s_NextID; diff --git a/src/shared/fallout3info.cpp b/src/shared/fallout3info.cpp index c673fa1b..864a67be 100644 --- a/src/shared/fallout3info.cpp +++ b/src/shared/fallout3info.cpp @@ -155,13 +155,13 @@ std::wstring Fallout3Info::getSEName() std::wstring Fallout3Info::getNexusPage() { - return L"http://fallout3.nexusmods.com"; + return L"http://www.nexusmods.com/fallout3"; } std::wstring Fallout3Info::getNexusInfoUrlStatic() { - return L"http://fallout3.nexusmods.com"; + return L"http://www.nexusmods.com/fallout3"; } diff --git a/src/shared/fallout3info.h b/src/shared/fallout3info.h index 0fa97d41..4bcb9d37 100644 --- a/src/shared/fallout3info.h +++ b/src/shared/fallout3info.h @@ -76,6 +76,7 @@ public: virtual std::wstring getNexusInfoUrl() { return Fallout3Info::getNexusInfoUrlStatic(); } static int getNexusModIDStatic(); virtual int getNexusModID() { return Fallout3Info::getNexusModIDStatic(); } + virtual int getNexusGameID() { return 120; } virtual void createProfile(const std::wstring &directory, bool useDefaults); virtual void repairProfile(const std::wstring &directory); diff --git a/src/shared/falloutnvinfo.cpp b/src/shared/falloutnvinfo.cpp index 7d7f0098..8df9607d 100644 --- a/src/shared/falloutnvinfo.cpp +++ b/src/shared/falloutnvinfo.cpp @@ -209,13 +209,13 @@ std::wstring FalloutNVInfo::getSEName() std::wstring FalloutNVInfo::getNexusPage() { - return L"http://newvegas.nexusmods.com"; + return L"http://www.nexusmods.com/newvegas"; } std::wstring FalloutNVInfo::getNexusInfoUrlStatic() { - return L"http://newvegas.nexusmods.com"; + return L"http://www.nexusmods.com/newvegas"; } diff --git a/src/shared/falloutnvinfo.h b/src/shared/falloutnvinfo.h index 3960c951..e25d2e02 100644 --- a/src/shared/falloutnvinfo.h +++ b/src/shared/falloutnvinfo.h @@ -77,6 +77,7 @@ public: virtual std::wstring getNexusInfoUrl() { return FalloutNVInfo::getNexusInfoUrlStatic(); } static int getNexusModIDStatic(); virtual int getNexusModID() { return FalloutNVInfo::getNexusModIDStatic(); } + virtual int getNexusGameID() { return 130; } virtual void createProfile(const std::wstring &directory, bool useDefaults); virtual void repairProfile(const std::wstring &directory); diff --git a/src/shared/gameinfo.h b/src/shared/gameinfo.h index 0221dd1b..d517fc1b 100644 --- a/src/shared/gameinfo.h +++ b/src/shared/gameinfo.h @@ -145,6 +145,7 @@ public: virtual std::wstring getNexusPage() = 0; virtual std::wstring getNexusInfoUrl() = 0; virtual int getNexusModID() = 0; + virtual int getNexusGameID() = 0; // clone relevant files to the specified directory virtual void createProfile(const std::wstring &directory, bool useDefaults) = 0; diff --git a/src/shared/oblivioninfo.cpp b/src/shared/oblivioninfo.cpp index b3e65e59..1438de0a 100644 --- a/src/shared/oblivioninfo.cpp +++ b/src/shared/oblivioninfo.cpp @@ -191,13 +191,13 @@ std::wstring OblivionInfo::getSEName() std::wstring OblivionInfo::getNexusPage() { - return L"http://oblivion.nexusmods.com"; + return L"http://www.nexusmods.com/oblivion"; } std::wstring OblivionInfo::getNexusInfoUrlStatic() { - return L"http://oblivion.nexusmods.com"; + return L"http://www.nexusmods.com/oblivion"; } diff --git a/src/shared/oblivioninfo.h b/src/shared/oblivioninfo.h index 6a9f56ca..dfa53575 100644 --- a/src/shared/oblivioninfo.h +++ b/src/shared/oblivioninfo.h @@ -73,6 +73,7 @@ public: virtual std::wstring getNexusInfoUrl() { return OblivionInfo::getNexusInfoUrlStatic(); } static int getNexusModIDStatic(); virtual int getNexusModID() { return OblivionInfo::getNexusModIDStatic(); } + virtual int getNexusGameID() { return 101; } virtual void createProfile(const std::wstring &directory, bool useDefaults); virtual void repairProfile(const std::wstring &directory); diff --git a/src/shared/skyriminfo.cpp b/src/shared/skyriminfo.cpp index 0a0dd98d..a8b9a433 100644 --- a/src/shared/skyriminfo.cpp +++ b/src/shared/skyriminfo.cpp @@ -183,13 +183,13 @@ std::wstring SkyrimInfo::getSEName() std::wstring SkyrimInfo::getNexusPage() { - return L"http://skyrim.nexusmods.com"; + return L"http://www.nexusmods.com/skyrim"; } std::wstring SkyrimInfo::getNexusInfoUrlStatic() { - return L"http://skyrim.nexusmods.com"; + return L"http://www.nexusmods.com/skyrim"; } diff --git a/src/shared/skyriminfo.h b/src/shared/skyriminfo.h index ae5ab81f..7da523a1 100644 --- a/src/shared/skyriminfo.h +++ b/src/shared/skyriminfo.h @@ -81,6 +81,7 @@ public: virtual std::wstring getNexusInfoUrl() { return SkyrimInfo::getNexusInfoUrlStatic(); } static int getNexusModIDStatic(); virtual int getNexusModID() { return SkyrimInfo::getNexusModIDStatic(); } + virtual int getNexusGameID() { return 110; } virtual void createProfile(const std::wstring &directory, bool useDefaults); virtual void repairProfile(const std::wstring &directory); -- cgit v1.3.1 From 6e1e8c37ebe1de745eccd6a238d5947e2d01b104 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 7 Dec 2013 14:23:51 +0100 Subject: minor text changes --- src/mainwindow.cpp | 2 +- src/modinfodialog.ui | 3 +-- src/problemsdialog.ui | 4 ++-- src/transfersavesdialog.ui | 4 ++-- 4 files changed, 6 insertions(+), 7 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cca10279..9fd41d7f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3257,7 +3257,7 @@ void MainWindow::createModFromOverwrite() bool ok; name.update(QInputDialog::getText(this, tr("Create Mod..."), tr("This will move all files from overwrite into a new, regular mod.\n" - "Please enter a name: "), QLineEdit::Normal, "", &ok), + "Please enter a name:"), QLineEdit::Normal, "", &ok), GUESS_USER); if (!ok) { return; diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui index 0e9e45d8..7b95e011 100644 --- a/src/modinfodialog.ui +++ b/src/modinfodialog.ui @@ -667,8 +667,7 @@ p, li { white-space: pre-wrap; } <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> Qt::TextBrowserInteraction diff --git a/src/problemsdialog.ui b/src/problemsdialog.ui index d3a0d959..99c3f3aa 100644 --- a/src/problemsdialog.ui +++ b/src/problemsdialog.ui @@ -49,8 +49,8 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> diff --git a/src/transfersavesdialog.ui b/src/transfersavesdialog.ui index 7cd1c4b5..1fcad54d 100644 --- a/src/transfersavesdialog.ui +++ b/src/transfersavesdialog.ui @@ -11,7 +11,7 @@ - Dialog + Transfer Savegames @@ -35,7 +35,7 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves -- cgit v1.3.1 From b32457a7d2af4aeb095308c7f358a7a398ad849e Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 7 Dec 2013 16:07:28 +0100 Subject: - minor text fixes - versions without a subminor version are now displayed without it (1.1 instead of 1.1.0) - version compares now prefer the decimal comparison over the traditional --- src/mainwindow.cpp | 6 +++--- src/mainwindow.h | 2 +- src/mainwindow.ui | 57 ++++++------------------------------------------------ src/version.rc | 4 ++-- 4 files changed, 12 insertions(+), 57 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 5c487e7a..59666a20 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3998,7 +3998,7 @@ void MainWindow::downloadRequested(QNetworkReply *reply, int modID, const QStrin } -QTranslator *MainWindow::installTranslator(const QString &name) +void MainWindow::installTranslator(const QString &name) { QTranslator *translator = new QTranslator(this); QString fileName = name + "_" + m_CurrentLanguage; @@ -4006,7 +4006,7 @@ QTranslator *MainWindow::installTranslator(const QString &name) qWarning("localization file %s not found", qPrintable(fileName)); } qApp->installTranslator(translator); - return translator; + m_Translators.push_back(translator); } @@ -4028,7 +4028,7 @@ void MainWindow::languageChange(const QString &newLanguage) QVariant fileNameVariant = pluginObj->property("filename"); if (fileNameVariant.isValid()) { QString fileName = QFileInfo(fileNameVariant.toString()).baseName(); - m_Translators.push_back(installTranslator(fileName)); + installTranslator(fileName); } } } diff --git a/src/mainwindow.h b/src/mainwindow.h index 5a8278f9..197ac73c 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -272,7 +272,7 @@ private: static void setupNetworkProxy(bool activate); void activateProxy(bool activate); - QTranslator *installTranslator(const QString &name); + void installTranslator(const QString &name); private: diff --git a/src/mainwindow.ui b/src/mainwindow.ui index bc7dc212..73ca868e 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -31,16 +31,7 @@ 4 - - 6 - - - 6 - - - 6 - - + 6 @@ -586,7 +577,7 @@ p, li { white-space: pre-wrap; } QTabWidget::Rounded - 0 + 1 @@ -730,16 +721,7 @@ p, li { white-space: pre-wrap; } Archives - - 6 - - - 6 - - - 6 - - + 6 @@ -819,16 +801,7 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data - - 6 - - - 6 - - - 6 - - + 6 @@ -898,16 +871,7 @@ BSAs checked here are loaded in such a way that your installation order is obeye Saves - - 6 - - - 6 - - - 6 - - + 6 @@ -936,16 +900,7 @@ p, li { white-space: pre-wrap; } Downloads - - 2 - - - 2 - - - 2 - - + 2 diff --git a/src/version.rc b/src/version.rc index ab144909..b91dce85 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,8,0 -#define VER_FILEVERSION_STR "1,0,8,0\0" +#define VER_FILEVERSION 1,0,10,0 +#define VER_FILEVERSION_STR "1,0,10,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From e71c37df37dea1e4eb8b5e87027fc7f5f81bef56 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 7 Dec 2013 16:54:08 +0100 Subject: - bugfix: drag&drop on archive list didn't always work properly --- src/mainwindow.cpp | 6 ++++-- src/mainwindow.ui | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 59666a20..102c798e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -207,6 +207,8 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget } ui->espList->installEventFilter(&m_PluginList); + ui->bsaList->setLocalMoveOnly(true); + resizeLists(initSettings.contains("mod_list_state"), initSettings.contains("plugin_list_state")); QMenu *linkMenu = new QMenu(this); @@ -1790,8 +1792,8 @@ void MainWindow::refreshBSAList() QTreeWidgetItem *newItem = new QTreeWidgetItem(strings); newItem->setData(0, Qt::UserRole, index); newItem->setData(1, Qt::UserRole, origin); -// newItem->setFlags(newItem->flags() & ~Qt::ItemIsDropEnabled | Qt::ItemIsUserCheckable); - newItem->setFlags(newItem->flags() | Qt::ItemIsUserCheckable); + newItem->setFlags(newItem->flags() & ~Qt::ItemIsDropEnabled | Qt::ItemIsUserCheckable); +// newItem->setFlags(newItem->flags() | Qt::ItemIsUserCheckable); newItem->setCheckState(0, (index != -1) ? Qt::Checked : Qt::Unchecked); if (m_Settings.forceEnableCoreFiles() && m_DefaultArchives.contains(filename)) { newItem->setCheckState(0, Qt::Checked); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 73ca868e..5c89a7e0 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -577,7 +577,7 @@ p, li { white-space: pre-wrap; } QTabWidget::Rounded - 1 + 0 -- cgit v1.3.1 From ff78c6a014f8342024c3b271dbfca5ea0b4573f7 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 7 Dec 2013 17:41:45 +0100 Subject: - bugfix: extracting bsas did not work with non-ascii characters in the mod name - another attempt to switch branches... --- src/mainwindow.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 3eefffa9..b435cda0 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3168,7 +3168,6 @@ void MainWindow::testExtractBSA(int modIndex) foreach (QFileInfo archiveInfo, archives) { BSA::Archive archive; - BSA::EErrorCode result = archive.read(archiveInfo.absoluteFilePath().toLocal8Bit().constData()); if ((result != BSA::ERROR_NONE) && (result != BSA::ERROR_INVALIDHASHES)) { reportError(tr("failed to read %1: %2").arg(archiveInfo.fileName()).arg(result)); @@ -3180,7 +3179,7 @@ void MainWindow::testExtractBSA(int modIndex) progress.setValue(0); progress.show(); - archive.extractAll(modInfo->absolutePath().toUtf8().constData(), + archive.extractAll(modInfo->absolutePath().toLocal8Bit().constData(), boost::bind(&MainWindow::extractProgress, this, boost::ref(progress), _1, _2)); if (result == BSA::ERROR_INVALIDHASHES) { @@ -4745,7 +4744,7 @@ void MainWindow::extractBSATriggered() progress.setMaximum(100); progress.setValue(0); progress.show(); - archive.extractAll(QDir::toNativeSeparators(targetFolder).toUtf8().constData(), + archive.extractAll(QDir::toNativeSeparators(targetFolder).toLocal8Bit().constData(), boost::bind(&MainWindow::extractProgress, this, boost::ref(progress), _1, _2)); if (result == BSA::ERROR_INVALIDHASHES) { reportError(tr("This archive contains invalid hashes. Some files may be broken.")); -- cgit v1.3.1 From 9ee90a35dc3ebdbc76b18cbeb72995345ee37052 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 8 Dec 2013 14:16:25 +0100 Subject: - MO now applies a minimum to the nmm-compatibility field. - bugfix: "visit on nexus" directed the browser to the servers meant for nmm - bugfix: url for "check all for updates" and "enorse/unendorse" were not constructed correctly --- src/mainwindow.cpp | 2 +- src/nexusinterface.cpp | 5 ++++- src/settings.cpp | 13 +++++++++---- src/shared/fallout3info.cpp | 8 ++++++-- src/shared/fallout3info.h | 2 +- src/shared/falloutnvinfo.cpp | 8 ++++++-- src/shared/falloutnvinfo.h | 2 +- src/shared/gameinfo.h | 2 +- src/shared/oblivioninfo.cpp | 8 ++++++-- src/shared/oblivioninfo.h | 2 +- src/shared/skyriminfo.cpp | 8 ++++++-- src/shared/skyriminfo.h | 2 +- src/version.rc | 4 ++-- 13 files changed, 45 insertions(+), 21 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b435cda0..17f2de09 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3215,7 +3215,7 @@ void MainWindow::visitOnNexus_clicked() { int modID = m_ModList.data(m_ModList.index(m_ContextRow, 0), Qt::UserRole).toInt(); if (modID > 0) { - nexusLinkActivated(QString("%1/mods/%2").arg(ToQString(GameInfo::instance().getNexusPage())).arg(modID)); + nexusLinkActivated(QString("%1/mods/%2").arg(ToQString(GameInfo::instance().getNexusPage(false))).arg(modID)); } else { MessageDialog::showMessage(tr("Nexus ID for this Mod is unknown"), this); } diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index 6b5cf19c..309915aa 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -381,6 +381,7 @@ void NexusInterface::nextRequest() QString url; if (!info.m_Reroute) { + bool hasParams = false; switch (info.m_Type) { case NXMRequestInfo::TYPE_DESCRIPTION: { url = QString("%1/Mods/%2/").arg(info.m_URL).arg(info.m_ModID); @@ -396,14 +397,16 @@ void NexusInterface::nextRequest() } break; case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: { url = QString("%1/Mods/toggleendorsement/%2?lvote=%3").arg(info.m_URL).arg(info.m_ModID).arg(!info.m_Endorse); + hasParams = true; } break; case NXMRequestInfo::TYPE_GETUPDATES: { QString modIDList = VectorJoin(info.m_ModIDList, ","); modIDList = "[" + modIDList + "]"; url = QString("%1/Mods/GetUpdates?ModList=%2").arg(info.m_URL).arg(modIDList); + hasParams = true; } break; } - url.append(QString("?game_id=%1").arg(GameInfo::instance().getNexusGameID())); + url.append(QString("%1game_id=%2").arg(hasParams ? '&' : '?').arg(GameInfo::instance().getNexusGameID())); } else { url = info.m_URL; } diff --git a/src/settings.cpp b/src/settings.cpp index 144049aa..8086672a 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -214,7 +214,12 @@ QString Settings::getModDirectory() const QString Settings::getNMMVersion() const { - return m_Settings.value("Settings/nmm_version", "0.34.0").toString(); + static const QString MIN_NMM_VERSION = "0.46.0"; + QString result = m_Settings.value("Settings/nmm_version", MIN_NMM_VERSION).toString(); + if (VersionInfo(result) < VersionInfo(MIN_NMM_VERSION)) { + result = MIN_NMM_VERSION; + } + return result; } bool Settings::getNexusLogin(QString &username, QString &password) const @@ -583,9 +588,9 @@ void Settings::query(QWidget *parent) downloadDirEdit->setText(getDownloadDirectory()); modDirEdit->setText(getModDirectory()); cacheDirEdit->setText(getCacheDirectory()); - offlineBox->setChecked(m_Settings.value("Settings/offline_mode", false).toBool()); - proxyBox->setChecked(m_Settings.value("Settings/use_proxy", false).toBool()); - nmmVersionEdit->setText(m_Settings.value("Settings/nmm_version", "0.33.1").toString()); + offlineBox->setChecked(offlineMode()); + proxyBox->setChecked(useProxy()); + nmmVersionEdit->setText(getNMMVersion()); logLevelBox->setCurrentIndex(logLevel()); // display plugin settings diff --git a/src/shared/fallout3info.cpp b/src/shared/fallout3info.cpp index cc90d6fa..1808d1d9 100644 --- a/src/shared/fallout3info.cpp +++ b/src/shared/fallout3info.cpp @@ -153,9 +153,13 @@ std::wstring Fallout3Info::getSEName() } -std::wstring Fallout3Info::getNexusPage() +std::wstring Fallout3Info::getNexusPage(bool nmmScheme) { - return L"http://nmm.nexusmods.com/fallout3"; + if (nmmScheme) { + return L"http://nmm.nexusmods.com/fallout3"; + } else { + return L"http://www.nexusmods.com/fallout3"; + } } diff --git a/src/shared/fallout3info.h b/src/shared/fallout3info.h index 4bcb9d37..9575103b 100644 --- a/src/shared/fallout3info.h +++ b/src/shared/fallout3info.h @@ -71,7 +71,7 @@ public: virtual std::wstring getSEName(); - virtual std::wstring getNexusPage(); + virtual std::wstring getNexusPage(bool nmmScheme = true); static std::wstring getNexusInfoUrlStatic(); virtual std::wstring getNexusInfoUrl() { return Fallout3Info::getNexusInfoUrlStatic(); } static int getNexusModIDStatic(); diff --git a/src/shared/falloutnvinfo.cpp b/src/shared/falloutnvinfo.cpp index abff9323..e7e747e2 100644 --- a/src/shared/falloutnvinfo.cpp +++ b/src/shared/falloutnvinfo.cpp @@ -207,9 +207,13 @@ std::wstring FalloutNVInfo::getSEName() } -std::wstring FalloutNVInfo::getNexusPage() +std::wstring FalloutNVInfo::getNexusPage(bool nmmScheme) { - return L"http://nmm.nexusmods.com/newvegas"; + if (nmmScheme) { + return L"http://nmm.nexusmods.com/newvegas"; + } else { + return L"http://www.nexusmods.com/newvegas"; + } } diff --git a/src/shared/falloutnvinfo.h b/src/shared/falloutnvinfo.h index e25d2e02..8767fdb0 100644 --- a/src/shared/falloutnvinfo.h +++ b/src/shared/falloutnvinfo.h @@ -72,7 +72,7 @@ public: virtual std::wstring getSEName(); - virtual std::wstring getNexusPage(); + virtual std::wstring getNexusPage(bool nmmScheme = true); static std::wstring getNexusInfoUrlStatic(); virtual std::wstring getNexusInfoUrl() { return FalloutNVInfo::getNexusInfoUrlStatic(); } static int getNexusModIDStatic(); diff --git a/src/shared/gameinfo.h b/src/shared/gameinfo.h index d517fc1b..10775e6c 100644 --- a/src/shared/gameinfo.h +++ b/src/shared/gameinfo.h @@ -142,7 +142,7 @@ public: virtual std::wstring getSEName() = 0; - virtual std::wstring getNexusPage() = 0; + virtual std::wstring getNexusPage(bool nmmScheme = true) = 0; virtual std::wstring getNexusInfoUrl() = 0; virtual int getNexusModID() = 0; virtual int getNexusGameID() = 0; diff --git a/src/shared/oblivioninfo.cpp b/src/shared/oblivioninfo.cpp index c84f8b88..d8daa0f7 100644 --- a/src/shared/oblivioninfo.cpp +++ b/src/shared/oblivioninfo.cpp @@ -189,9 +189,13 @@ std::wstring OblivionInfo::getSEName() } -std::wstring OblivionInfo::getNexusPage() +std::wstring OblivionInfo::getNexusPage(bool nmmScheme) { - return L"http://nmm.nexusmods.com/oblivion"; + if (nmmScheme) { + return L"http://nmm.nexusmods.com/oblivion"; + } else { + return L"http://www.nexusmods.com/oblivion"; + } } diff --git a/src/shared/oblivioninfo.h b/src/shared/oblivioninfo.h index dfa53575..ba27aa40 100644 --- a/src/shared/oblivioninfo.h +++ b/src/shared/oblivioninfo.h @@ -68,7 +68,7 @@ public: virtual std::wstring getSEName(); - virtual std::wstring getNexusPage(); + virtual std::wstring getNexusPage(bool nmmScheme = true); static std::wstring getNexusInfoUrlStatic(); virtual std::wstring getNexusInfoUrl() { return OblivionInfo::getNexusInfoUrlStatic(); } static int getNexusModIDStatic(); diff --git a/src/shared/skyriminfo.cpp b/src/shared/skyriminfo.cpp index 38b2cf37..1620bcc3 100644 --- a/src/shared/skyriminfo.cpp +++ b/src/shared/skyriminfo.cpp @@ -181,9 +181,13 @@ std::wstring SkyrimInfo::getSEName() } -std::wstring SkyrimInfo::getNexusPage() +std::wstring SkyrimInfo::getNexusPage(bool nmmScheme) { - return L"http://nmm.nexusmods.com/skyrim"; + if (nmmScheme) { + return L"http://nmm.nexusmods.com/skyrim"; + } else { + return L"http://www.nexusmods.com/skyrim"; + } } diff --git a/src/shared/skyriminfo.h b/src/shared/skyriminfo.h index 7da523a1..438beb41 100644 --- a/src/shared/skyriminfo.h +++ b/src/shared/skyriminfo.h @@ -75,7 +75,7 @@ public: virtual std::wstring getSEName(); - virtual std::wstring getNexusPage(); + virtual std::wstring getNexusPage(bool nmmScheme = true); static std::wstring getNexusInfoUrlStatic(); virtual std::wstring getNexusInfoUrl() { return SkyrimInfo::getNexusInfoUrlStatic(); } diff --git a/src/version.rc b/src/version.rc index b91dce85..811ee7ca 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,10,0 -#define VER_FILEVERSION_STR "1,0,10,0\0" +#define VER_FILEVERSION 1,0,11,0 +#define VER_FILEVERSION_STR "1,0,11,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 14ac234daf1680b0685f6bea3e74aa09dfcf38ef Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 14 Dec 2013 13:23:13 +0100 Subject: - plugin list now highlights plugins with attached ini files - bugfix: opening nexus through the globe icon used the nmm.nexusmods.com url --- src/mainwindow.cpp | 2 +- src/pluginlist.cpp | 23 +++++++++++++++++------ src/pluginlist.h | 4 ++-- src/resources.qrc | 1 + src/resources/mail-attachment.png | Bin 0 -> 649 bytes src/shared/directoryentry.cpp | 4 ++-- src/shared/directoryentry.h | 9 ++++----- src/shared/util.cpp | 3 --- 8 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 src/resources/mail-attachment.png (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 17f2de09..3a543e0b 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4031,7 +4031,7 @@ void MainWindow::on_actionNexus_triggered() ::ShellExecuteW(NULL, L"open", nxmPath.c_str(), (std::wstring(L"reg ") + GameInfo::instance().getGameShortName() + L" \"" + executable + L"\"").c_str(), NULL, SW_SHOWNORMAL); - ::ShellExecuteW(NULL, L"open", GameInfo::instance().getNexusPage().c_str(), NULL, NULL, SW_SHOWNORMAL); + ::ShellExecuteW(NULL, L"open", GameInfo::instance().getNexusPage(false).c_str(), NULL, NULL, SW_SHOWNORMAL); ui->tabWidget->setCurrentIndex(4); } diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 8eeed76e..20d4d357 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -146,7 +146,11 @@ void PluginList::refresh(const QString &profileName, const DirectoryEntry &baseD bool archive = false; try { FilesOrigin &origin = baseDirectory.getOriginByID(current->getOrigin(archive)); - m_ESPs.push_back(ESPInfo(filename, forceEnabled, current->getFileTime(), ToQString(origin.getName()), ToQString(current->getFullPath()))); + + QString iniPath = QFileInfo(filename).baseName() + ".ini"; + bool hasIni = baseDirectory.findFile(ToWString(iniPath)).get() != NULL; + + m_ESPs.push_back(ESPInfo(filename, forceEnabled, current->getFileTime(), ToQString(origin.getName()), ToQString(current->getFullPath()), hasIni)); } catch (const std::exception &e) { reportError(tr("failed to update esp info for file %1 (source id: %2), error: %3").arg(filename).arg(current->getOrigin(archive)).arg(e.what())); } @@ -724,7 +728,9 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const return QIcon(":/MO/gui/warning"); } else if (m_LockedOrder.find(m_ESPs[index].m_Name.toLower()) != m_LockedOrder.end()) { return QIcon(":/MO/gui/locked"); - } else if (m_ESPs[index].m_IsDummy && m_ESPs[index].m_Enabled) { + } else if (m_ESPs[index].m_HasIni) { + return QIcon(":/MO/gui/attachment"); + } else if (m_ESPs[index].m_IsDummy && m_ESPs[index].m_Enabled && !m_ESPs[index].m_HasIni) { return QIcon(":/MO/gui/edit_clear"); } else { return QVariant(); @@ -759,7 +765,10 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const m_ESPs[index].m_MasterUnset.begin(), m_ESPs[index].m_MasterUnset.end(), std::inserter(enabledMasters, enabledMasters.end())); text += "
        " + tr("Enabled Masters") + ": " + SetJoin(enabledMasters, ", "); - if (m_ESPs[index].m_IsDummy) { + if (m_ESPs[index].m_HasIni) { + text += "
        There is an ini file connected to this esp. Its settings will be added to your game settings, overwriting " + "in case of conflicts."; + } else if (m_ESPs[index].m_IsDummy) { text += "
        This file is a dummy! It exists only so the bsa with the same name gets loaded. With MO you don't need this: " "If you enable the archive with the same name in the \"Archive\" tab you can disable this plugin."; } @@ -1021,9 +1030,11 @@ bool PluginList::eventFilter(QObject *obj, QEvent *event) } -PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled, FILETIME time, const QString &originName, const QString &fullPath) - : m_Name(name), m_Enabled(enabled), m_ForceEnabled(enabled), m_Removed(false), m_Priority(0), - m_LoadOrder(-1), m_Time(time), m_OriginName(originName) +PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled, FILETIME time, + const QString &originName, const QString &fullPath, + bool hasIni) + : m_Name(name), m_Enabled(enabled), m_ForceEnabled(enabled), m_Removed(false), + m_Priority(0), m_LoadOrder(-1), m_Time(time), m_OriginName(originName), m_HasIni(hasIni) { try { ESP::File file(ToWString(fullPath)); diff --git a/src/pluginlist.h b/src/pluginlist.h index 2f1a3f5f..64c914df 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -131,7 +131,6 @@ public: */ int enabledCount() const; - QString getName(int index) const { return m_ESPs.at(index).m_Name; } int getPriority(int index) const { return m_ESPs.at(index).m_Priority; } bool isESPLocked(int index) const; @@ -193,7 +192,7 @@ private: struct ESPInfo { - ESPInfo(const QString &name, bool enabled, FILETIME time, const QString &originName, const QString &fullPath); + ESPInfo(const QString &name, bool enabled, FILETIME time, const QString &originName, const QString &fullPath, bool hasIni); QString m_Name; QString m_FullPath; bool m_Enabled; @@ -205,6 +204,7 @@ private: QString m_OriginName; bool m_IsMaster; bool m_IsDummy; + bool m_HasIni; std::set m_Masters; mutable std::set m_MasterUnset; }; diff --git a/src/resources.qrc b/src/resources.qrc index 3f27e2cc..1582a3f2 100644 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -51,5 +51,6 @@ resources/accessories-text-editor.png resources/x-office-calendar.png resources/dialog-warning_16.png + resources/mail-attachment.png diff --git a/src/resources/mail-attachment.png b/src/resources/mail-attachment.png new file mode 100644 index 00000000..529bb7f5 Binary files /dev/null and b/src/resources/mail-attachment.png differ diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp index 685e14a9..a232ea19 100644 --- a/src/shared/directoryentry.cpp +++ b/src/shared/directoryentry.cpp @@ -759,7 +759,7 @@ DirectoryEntry *DirectoryEntry::findSubDirectoryRecursive(const std::wstring &pa } -const FileEntry::Ptr DirectoryEntry::findFile(const std::wstring &name) +const FileEntry::Ptr DirectoryEntry::findFile(const std::wstring &name) const { auto iter = m_Files.find(name); if (iter != m_Files.end()) { @@ -840,7 +840,7 @@ FileEntry::Ptr FileRegister::createFile(const std::wstring &name, DirectoryEntry } -FileEntry::Ptr FileRegister::getFile(FileEntry::Index index) +FileEntry::Ptr FileRegister::getFile(FileEntry::Index index) const { auto iter = m_Files.find(index); if (iter != m_Files.end()) { diff --git a/src/shared/directoryentry.h b/src/shared/directoryentry.h index 1ad9816c..22f00a74 100644 --- a/src/shared/directoryentry.h +++ b/src/shared/directoryentry.h @@ -168,7 +168,7 @@ public: bool indexValid(FileEntry::Index index) const; FileEntry::Ptr createFile(const std::wstring &name, DirectoryEntry *parent); - FileEntry::Ptr getFile(FileEntry::Index index); + FileEntry::Ptr getFile(FileEntry::Index index) const; void removeFile(FileEntry::Index index); void removeOrigin(FileEntry::Index index, int originID); @@ -233,11 +233,10 @@ public: * @param name name of the file * @return fileentry object for the file or NULL if no file matches */ - const FileEntry::Ptr findFile(const std::wstring &name); + const FileEntry::Ptr findFile(const std::wstring &name) const; - /** search through this directory and all subdirectories for a file by the specified name. - if directory is not NULL, the referenced variable will be set to true if the path refers to a directory. - the returned pointer is NULL in that case */ + /** search through this directory and all subdirectories for a file by the specified name (relative path). + if directory is not NULL, the referenced variable will be set to the path containing the file */ const FileEntry::Ptr searchFile(const std::wstring &path, const DirectoryEntry **directory) const; void insertFile(const std::wstring &filePath, FilesOrigin &origin, FILETIME fileTime); diff --git a/src/shared/util.cpp b/src/shared/util.cpp index 4378e03c..22657e6c 100644 --- a/src/shared/util.cpp +++ b/src/shared/util.cpp @@ -69,7 +69,6 @@ std::string ToString(const std::wstring &source, bool utf8) ::WideCharToMultiByte(CP_UTF8, 0, source.c_str(), -1, buffer, MAX_PATH, NULL, NULL); } else { ::WideCharToMultiByte(GetACP(), 0, source.c_str(), -1, buffer, MAX_PATH, NULL, NULL); -// wcstombs(buffer, source.c_str(), MAX_PATH); } return std::string(buffer); } @@ -80,9 +79,7 @@ std::wstring ToWString(const std::string &source, bool utf8) if (utf8) { ::MultiByteToWideChar(CP_UTF8, 0, source.c_str(), -1, buffer, MAX_PATH); } else { - // codepage encoding ::MultiByteToWideChar(GetACP(), 0, source.c_str(), -1, buffer, MAX_PATH); -// mbstowcs(buffer, source.c_str(), MAX_PATH); } return std::wstring(buffer); } -- cgit v1.3.1 From 35c9fe3e98cd4a81b114b0d9acb24727465d94b3 Mon Sep 17 00:00:00 2001 From: Tannin Date: Thu, 19 Dec 2013 19:40:59 +0100 Subject: - bugfix: archive.dll could cause a crash, attempting to close an archive that failed to open - bugfix: upon changing categories the mappings of deleted categories wasn't cleaned up which could cause an error message - bugfix: the number of esps/esms that can be loaded is actually 255 not 256 since the save game counts too - bugfix: "visit on nexus" from the modinfo dialog also lead to the wrong url --- src/categories.cpp | 1 + src/mainwindow.cpp | 4 ++-- src/modinfodialog.cpp | 2 +- src/modlist.cpp | 3 ++- src/version.rc | 4 ++-- 5 files changed, 8 insertions(+), 6 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/categories.cpp b/src/categories.cpp index c084c238..27720829 100644 --- a/src/categories.cpp +++ b/src/categories.cpp @@ -103,6 +103,7 @@ CategoryFactory &CategoryFactory::instance() void CategoryFactory::reset() { m_Categories.clear(); + m_IDMap.clear(); addCategory(0, "None", MakeVector(2, 28, 87), 0); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 3a543e0b..b9300d00 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2203,7 +2203,7 @@ std::vector MainWindow::activeProblems() const if (m_UnloadedPlugins.size() != 0) { problems.push_back(PROBLEM_PLUGINSNOTLOADED); } - if (m_PluginList.enabledCount() > 256) { + if (m_PluginList.enabledCount() > 255) { problems.push_back(PROBLEM_TOOMANYPLUGINS); } return problems; @@ -2236,7 +2236,7 @@ QString MainWindow::fullDescription(unsigned int key) const return result; } break; case PROBLEM_TOOMANYPLUGINS: { - return tr("The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or " + return tr("The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or " "merge some plugins into one. You can find a guide here: http://wiki.step-project.com/Guide:Merging_Plugins"); } break; default: { diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 521eea24..1da050ed 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -631,7 +631,7 @@ void ModInfoDialog::on_visitNexusLabel_linkActivated(const QString &link) void ModInfoDialog::linkClicked(const QUrl &url) { - if (url.toString().startsWith(ToQString(GameInfo::instance().getNexusPage()))) { + if (url.toString().startsWith(ToQString(GameInfo::instance().getNexusPage(false)))) { this->close(); emit nexusLinkActivated(url.toString()); } else { diff --git a/src/modlist.cpp b/src/modlist.cpp index b35d6ad2..7f09654d 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -171,7 +171,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const CategoryFactory &categoryFactory = CategoryFactory::instance(); if (categoryFactory.categoryExists(category)) { try { - return categoryFactory.getCategoryName(categoryFactory.getCategoryIndex(category)); + int categoryIdx = categoryFactory.getCategoryIndex(category); + return categoryFactory.getCategoryName(categoryIdx); } catch (const std::exception &e) { qCritical("failed to retrieve category name: %s", e.what()); return QString(); diff --git a/src/version.rc b/src/version.rc index 811ee7ca..35ac56a4 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,11,0 -#define VER_FILEVERSION_STR "1,0,11,0\0" +#define VER_FILEVERSION 1,0,12,0 +#define VER_FILEVERSION_STR "1,0,12,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From d029e97724711ee7974f6ddb2460c215ad39f561 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 3 Jan 2014 18:40:46 +0100 Subject: - hook dll now monitors all mod directories, not only overwrite - dialog for changing executables now warns if changes will be lost - main window is now locked before activating pre-start hooks - better responsiveness while main window is locked (or should be) --- src/editexecutablesdialog.cpp | 133 ++++-- src/editexecutablesdialog.h | 16 +- src/editexecutablesdialog.ui | 65 ++- src/mainwindow.cpp | 16 +- src/organizer.pro | 33 +- src/organizer_cs.ts | 922 +++++++++++++++++++++-------------------- src/organizer_de.ts | 928 +++++++++++++++++++++-------------------- src/organizer_es.ts | 922 +++++++++++++++++++++-------------------- src/organizer_fr.ts | 922 +++++++++++++++++++++-------------------- src/organizer_ru.ts | 936 ++++++++++++++++++++++-------------------- src/organizer_tr.ts | 924 +++++++++++++++++++++-------------------- src/organizer_zh_CN.ts | 928 +++++++++++++++++++++-------------------- src/organizer_zh_TW.ts | 928 +++++++++++++++++++++-------------------- src/version.rc | 4 +- 14 files changed, 3944 insertions(+), 3733 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/editexecutablesdialog.cpp b/src/editexecutablesdialog.cpp index e0d1994d..13223b68 100644 --- a/src/editexecutablesdialog.cpp +++ b/src/editexecutablesdialog.cpp @@ -30,7 +30,7 @@ using namespace MOShared; EditExecutablesDialog::EditExecutablesDialog(const ExecutablesList &executablesList, QWidget *parent) : TutorableDialog("EditExecutables", parent), - ui(new Ui::EditExecutablesDialog), m_ExecutablesList(executablesList) + ui(new Ui::EditExecutablesDialog), m_CurrentItem(NULL), m_ExecutablesList(executablesList) { ui->setupUi(this); @@ -68,21 +68,15 @@ void EditExecutablesDialog::refreshExecutablesWidget() executablesWidget->addItem(newItem); } - QPushButton *addButton = findChild("addButton"); - QPushButton *removeButton = findChild("removeButton"); - - addButton->setEnabled(false); - removeButton->setEnabled(false); + ui->addButton->setEnabled(false); + ui->removeButton->setEnabled(false); } void EditExecutablesDialog::on_binaryEdit_textChanged(const QString &arg1) { - QPushButton *addButton = findChild("addButton"); -// QPushButton *removeButton = findChild("removeButton"); - QFileInfo fileInfo(arg1); - addButton->setEnabled(fileInfo.exists() && fileInfo.isFile()); + ui->addButton->setEnabled(fileInfo.exists() && fileInfo.isFile()); } void EditExecutablesDialog::resetInput() @@ -91,23 +85,35 @@ void EditExecutablesDialog::resetInput() ui->titleEdit->setText(""); ui->workingDirEdit->clear(); ui->argumentsEdit->setText(""); + ui->appIDOverwriteEdit->clear(); + ui->overwriteAppIDBox->setChecked(false); ui->closeCheckBox->setChecked(false); + m_CurrentItem = NULL; } -void EditExecutablesDialog::on_addButton_clicked() +void EditExecutablesDialog::saveExecutable() { - QLineEdit *titleEdit = findChild("titleEdit"); - QLineEdit *binaryEdit = findChild("binaryEdit"); - QLineEdit *argumentsEdit = findChild("argumentsEdit"); - QLineEdit *workingDirEdit = findChild("workingDirEdit"); - QCheckBox *closeCheckBox = findChild("closeCheckBox"); - - m_ExecutablesList.addExecutable(titleEdit->text(), QDir::fromNativeSeparators(binaryEdit->text()), - argumentsEdit->text(), QDir::fromNativeSeparators(workingDirEdit->text()), - (closeCheckBox->checkState() == Qt::Checked) ? DEFAULT_CLOSE : DEFAULT_STAY, + m_ExecutablesList.addExecutable(ui->titleEdit->text(), QDir::fromNativeSeparators(ui->binaryEdit->text()), + ui->argumentsEdit->text(), QDir::fromNativeSeparators(ui->workingDirEdit->text()), + (ui->closeCheckBox->checkState() == Qt::Checked) ? DEFAULT_CLOSE : DEFAULT_STAY, ui->overwriteAppIDBox->isChecked() ? ui->appIDOverwriteEdit->text() : "", true, false); +} + + +void EditExecutablesDialog::delayedRefresh() +{ + int index = ui->executablesListBox->currentIndex().row(); + resetInput(); + refreshExecutablesWidget(); + ui->executablesListBox->setCurrentRow(index); +} + + +void EditExecutablesDialog::on_addButton_clicked() +{ + saveExecutable(); resetInput(); refreshExecutablesWidget(); @@ -196,37 +202,88 @@ void EditExecutablesDialog::on_titleEdit_textChanged(const QString &arg1) } } -void EditExecutablesDialog::on_executablesListBox_itemClicked(QListWidgetItem *item) + +bool EditExecutablesDialog::executableChanged() { - QLineEdit *titleEdit = findChild("titleEdit"); - QLineEdit *binaryEdit = findChild("binaryEdit"); - QLineEdit *argumentsEdit = findChild("argumentsEdit"); - QLineEdit *workingDirEdit = findChild("workingDirEdit"); - QPushButton *removeButton = findChild("removeButton"); - QCheckBox *closeCheckBox = findChild("closeCheckBox"); + if (m_CurrentItem != NULL) { + const Executable &selectedExecutable = m_CurrentItem->data(Qt::UserRole).value(); + + return selectedExecutable.m_Arguments != ui->argumentsEdit->text() + || selectedExecutable.m_SteamAppID != ui->appIDOverwriteEdit->text() + || selectedExecutable.m_WorkingDirectory != QDir::fromNativeSeparators(ui->workingDirEdit->text()) + || selectedExecutable.m_BinaryInfo.absoluteFilePath() != QDir::fromNativeSeparators(ui->binaryEdit->text()) + || (selectedExecutable.m_CloseMO == DEFAULT_CLOSE) != ui->closeCheckBox->isChecked(); + } else { + return false; + } +} + + +void EditExecutablesDialog::on_executablesListBox_currentItemChanged(QListWidgetItem *current, QListWidgetItem*) +{ + if (current == NULL) { + resetInput(); + return; + } + + if (executableChanged()) { + QMessageBox::StandardButton res = QMessageBox::question(this, tr("Save Changes?"), + tr("You made changes to the current executable, do you want to save them?"), + QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); + if (res == QMessageBox::Cancel) { + return; + } else if (res == QMessageBox::Yes) { + // this invalidates the item passed as a a parameter + saveExecutable(); + + QTimer::singleShot(50, this, SLOT(delayedRefresh())); + return; + } + } - const Executable &selectedExecutable = item->data(Qt::UserRole).value(); + m_CurrentItem = current; - titleEdit->setText(selectedExecutable.m_Title); - binaryEdit->setText(QDir::toNativeSeparators(selectedExecutable.m_BinaryInfo.absoluteFilePath())); - argumentsEdit->setText(selectedExecutable.m_Arguments); - workingDirEdit->setText(QDir::toNativeSeparators(selectedExecutable.m_WorkingDirectory)); - closeCheckBox->setChecked(selectedExecutable.m_CloseMO == DEFAULT_CLOSE); + const Executable &selectedExecutable = current->data(Qt::UserRole).value(); + + ui->titleEdit->setText(selectedExecutable.m_Title); + ui->binaryEdit->setText(QDir::toNativeSeparators(selectedExecutable.m_BinaryInfo.absoluteFilePath())); + ui->argumentsEdit->setText(selectedExecutable.m_Arguments); + ui->workingDirEdit->setText(QDir::toNativeSeparators(selectedExecutable.m_WorkingDirectory)); + ui->closeCheckBox->setChecked(selectedExecutable.m_CloseMO == DEFAULT_CLOSE); if (selectedExecutable.m_CloseMO == NEVER_CLOSE) { - closeCheckBox->setEnabled(false); - closeCheckBox->setToolTip(tr("MO must be kept running or this application will not work correctly.")); + ui->closeCheckBox->setEnabled(false); + ui->closeCheckBox->setToolTip(tr("MO must be kept running or this application will not work correctly.")); } else { - closeCheckBox->setEnabled(true); - closeCheckBox->setToolTip(tr("If checked, MO will be closed once the specified executable is run.")); + ui->closeCheckBox->setEnabled(true); + ui->closeCheckBox->setToolTip(tr("If checked, MO will be closed once the specified executable is run.")); } - removeButton->setEnabled(selectedExecutable.m_Custom); + ui->removeButton->setEnabled(selectedExecutable.m_Custom); ui->overwriteAppIDBox->setChecked(selectedExecutable.m_SteamAppID != 0); if (selectedExecutable.m_SteamAppID != 0) { ui->appIDOverwriteEdit->setText(selectedExecutable.m_SteamAppID); + } else { + ui->appIDOverwriteEdit->clear(); } } + void EditExecutablesDialog::on_overwriteAppIDBox_toggled(bool checked) { ui->appIDOverwriteEdit->setEnabled(checked); } + +void EditExecutablesDialog::on_closeButton_clicked() +{ + if (executableChanged()) { + QMessageBox::StandardButton res = QMessageBox::question(this, tr("Save Changes?"), + tr("You made changes to the current executable, do you want to save them?"), + QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); + if (res == QMessageBox::Cancel) { + return; + } else if (res == QMessageBox::Yes) { + saveExecutable(); + } + } + this->accept(); +} + diff --git a/src/editexecutablesdialog.h b/src/editexecutablesdialog.h index da26b177..a90cbc59 100644 --- a/src/editexecutablesdialog.h +++ b/src/editexecutablesdialog.h @@ -22,6 +22,7 @@ along with Mod Organizer. If not, see . #include "tutorabledialog.h" #include +#include #include "executableslist.h" namespace Ui { @@ -54,6 +55,7 @@ public: **/ ExecutablesList getExecutablesList() const; + void saveExecutable(); private slots: void on_binaryEdit_textChanged(const QString &arg1); @@ -66,21 +68,31 @@ private slots: void on_titleEdit_textChanged(const QString &arg1); - void on_executablesListBox_itemClicked(QListWidgetItem *item); - void on_overwriteAppIDBox_toggled(bool checked); void on_browseDirButton_clicked(); + void on_closeButton_clicked(); + + void on_executablesListBox_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous); + + void delayedRefresh(); + private: void resetInput(); void refreshExecutablesWidget(); + bool executableChanged(); + private: Ui::EditExecutablesDialog *ui; + + QListWidgetItem *m_CurrentItem; + ExecutablesList m_ExecutablesList; + }; #endif // EDITEXECUTABLESDIALOG_H diff --git a/src/editexecutablesdialog.ui b/src/editexecutablesdialog.ui index b417452a..4f0462db 100644 --- a/src/editexecutablesdialog.ui +++ b/src/editexecutablesdialog.ui @@ -213,50 +213,31 @@ Right now the only case I know of where this needs to be overwritten is for the
        - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Close + + + +
        - - - buttonBox - accepted() - EditExecutablesDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - EditExecutablesDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - + diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b9300d00..77e4cb3b 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -100,6 +100,7 @@ along with Mod Organizer. If not, see . #include #include #include +#include #ifdef TEST_MODELS @@ -1287,10 +1288,11 @@ HANDLE MainWindow::spawnBinaryDirect(const QFileInfo &binary, const QString &arg } while (m_RefreshProgress->isVisible()) { - ::Sleep(1000); + ::Sleep(100); QCoreApplication::processEvents(); } + // TODO: should also pass arguments if (m_AboutToRun(binary.absoluteFilePath())) { return startBinary(binary, arguments, profileName, m_Settings.logLevel(), currentDirectory, true); } else { @@ -1321,10 +1323,15 @@ void MainWindow::spawnProgram(const QString &fileName, const QString &argumentsA } */ + void MainWindow::spawnBinary(const QFileInfo &binary, const QString &arguments, const QDir ¤tDirectory, bool closeAfterStart, const QString &steamAppID) { storeSettings(); + LockedDialog *dialog = new LockedDialog(this); + dialog->show(); + ON_BLOCK_EXIT([&] () { dialog->hide(); dialog->deleteLater(); }); + HANDLE processHandle = spawnBinaryDirect(binary, arguments, m_CurrentProfile->getName(), currentDirectory, steamAppID); if (processHandle != INVALID_HANDLE_VALUE) { if (closeAfterStart) { @@ -1332,12 +1339,9 @@ void MainWindow::spawnBinary(const QFileInfo &binary, const QString &arguments, } else { this->setEnabled(false); - LockedDialog *dialog = new LockedDialog(this); - dialog->show(); - QCoreApplication::processEvents(); - while ((::WaitForSingleObject(processHandle, 1000) == WAIT_TIMEOUT) && + while ((::WaitForSingleObject(processHandle, 100) == WAIT_TIMEOUT) && !dialog->unlockClicked()) { // keep processing events so the app doesn't appear dead QCoreApplication::processEvents(); @@ -1348,8 +1352,6 @@ void MainWindow::spawnBinary(const QFileInfo &binary, const QString &arguments, if (GameInfo::instance().getLoadOrderMechanism() == GameInfo::TYPE_FILETIME) { QFile::remove(m_CurrentProfile->getLoadOrderFileName()); } - dialog->hide(); - dialog->deleteLater(); } } } diff --git a/src/organizer.pro b/src/organizer.pro index 30454ea8..5988056e 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -213,24 +213,25 @@ TRANSLATIONS = organizer_de.ts \ organizer_zh_CN.ts \ organizer_cs.ts \ organizer_tr.ts \ + organizer_en.ts \ organizer_ru.ts -!isEmpty(TRANSLATIONS) { - isEmpty(QMAKE_LRELEASE) { - win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease.exe - else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease - } - - isEmpty(TS_DIR):TS_DIR = Translations - - TSQM.name = lrelease ${QMAKE_FILE_IN} - TSQM.input = TRANSLATIONS - TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm - TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} - TSQM.CONFIG = no_link - QMAKE_EXTRA_COMPILERS += TSQM - PRE_TARGETDEPS += compiler_TSQM_make_all -} else:message(No translation files in project) +#!isEmpty(TRANSLATIONS) { +# isEmpty(QMAKE_LRELEASE) { +# win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease.exe +# else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease +# } +# +# isEmpty(TS_DIR):TS_DIR = Translations +# +# TSQM.name = lrelease ${QMAKE_FILE_IN} +# TSQM.input = TRANSLATIONS +# TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm +# TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} +# TSQM.CONFIG = no_link +# QMAKE_EXTRA_COMPILERS += TSQM +# PRE_TARGETDEPS += compiler_TSQM_make_all +#} else:message(No translation files in project) LIBS += -lmo_shared -luibase -lshell32 -lole32 -luser32 -ladvapi32 -lgdi32 -lPsapi -lVersion -lbsatk -lshlwapi diff --git a/src/organizer_cs.ts b/src/organizer_cs.ts index 59f8b52b..f78313bd 100644 --- a/src/organizer_cs.ts +++ b/src/organizer_cs.ts @@ -547,75 +547,75 @@ p, li { white-space: pre-wrap; } NezdaÅ™ilo se pÅ™ejmenovat "%1" na "%2" - + Download again? Stáhnout znovu? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Soubor se stejným jménem už byl stáhnutý. Chcete ho stáhnout znovu? Nový soubor bude pojmenován jinak. - + failed to download %1: could not open output file: %2 Stahování zlyhalo %1: nemožno otevřít výslední soubor: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + invalid index neplatný index - + failed to delete %1 odstránÄ›ní zlyhalo %1 - + failed to delete meta file for %1 odstránÄ›ní meta souboru zlyhalo pro %1 - - - - - - + + + + + + invalid index %1 neplatný index %1 - + Please enter the nexus mod id Prosím zadej Nexus mod ID - + Mod ID: Mod ID: @@ -624,38 +624,38 @@ p, li { white-space: pre-wrap; } neplatný alfabetický index %1 - + Information updated Info aktualizované - + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Žádný pÅ™islouchající soubor nenalezen na Nexusu! Možná už není k dispozici nebo byl pÅ™ejmenovaný? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Žádný soubor na Nexusu nezodpovedá pÅ™esnému jménu. Zvolte ruÄne ten správný. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Zlyhalo získání info z Nexusu %1 - + Download failed: %1 (%2) Stahování zlyhalo: %1 (%2) - + failed to re-open %1 zlyhalo znovu-otevÅ™ení %1 @@ -1130,7 +1130,7 @@ p, li { white-space: pre-wrap; } - + Extracting files Rozbalují se soubory @@ -1163,7 +1163,7 @@ p, li { white-space: pre-wrap; } instalace zlyhala (errorcode %1) - + File format "%1" not supported Formát souboru "%1" nepodporován @@ -1194,22 +1194,22 @@ p, li { white-space: pre-wrap; } - + Mod Name - + Name Jméno - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1228,52 +1228,52 @@ Poznámka: Instalátor nerozpoznává už nainstalované mody! Prosím nainstalujte doplnÄ›k NCC - + None of the available installer plugins were able to handle that archive - + no error žádná chyba - + 7z.dll not found 7z.dll nenalezeno - + 7z.dll isn't valid 7z.dll je neplatný - + archive not found archív nenalezen - + failed to open archive nemožno otevřít archív - + unsupported archive type nepodporovaný typ archívu - + internal library error chyba internal library - + archive invalid archív je neplatný - + unknown archive error neznáma chyba archívu @@ -1325,23 +1325,23 @@ Poznámka: Instalátor nerozpoznává už nainstalované mody! MainWindow - - + + Categories Kategorie - + Profile Profil - + Pick a module collection Vyber kolekci modulů - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1356,44 +1356,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Prosím mÄ›jte na pamÄ›ti, že v souÄasnosti poradí esp se neukladá pro různé profily.</span></p></body></html> - + Refresh list ZnovunaÄíst seznam - + Refresh list. This is usually not necessary unless you modified data outside the program. Obnoví seznam. Tohle obvykle není zapotÅ™ebí, jedine že by jste mÄ›nili obsah dat mimo program MO. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter Filter - + No groups - + Nexus IDs Nexus ID - - - + + + Namefilter @@ -1402,12 +1402,12 @@ p, li { white-space: pre-wrap; } Start - + Pick a program to run. Vyber program na spuÅ¡tÄ›ní. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1422,12 +1422,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">MůžeÅ¡ pÅ™idávat různé nástroje, ale neruÄím, že ty které jsem netestoval poběží správnÄ›.</span></p></body></html> - + Run program Spustit program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1440,17 +1440,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Spusti vybraný program s nastavením ModOrganizeru.</span></p></body></html> - + Run Spustit - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1463,7 +1463,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Tohle vytvoří odkaz v menu Start, který přímo bude spouÅ¡tÄ›t zvolený program pÅ™es MO.</span></p></body></html> - + Shortcut @@ -1488,12 +1488,12 @@ p, li { white-space: pre-wrap; } Uložit - + List of available esp/esm files Seznam dostupných esp/esm souborů - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1510,12 +1510,12 @@ p, li { white-space: pre-wrap; } DÅ®LEŽITÉ: Můžete mÄ›nit poÅ™adí BSA souborů tady, ale soubory modů ako takých má vyšší prioritu a pÅ™epíše konflikty, které by vznikly zde! - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. Seznam BS archivů, které jsou k dispozici. Archivy, které jsou zde neni oznaÄeny nebudou naÄteny do hry. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1526,66 +1526,66 @@ By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp BSAs checked here are loaded in such a way that your installation order is obeyed properly. - - + + File Soubor - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Data - + refresh data-directory overview znovunaÄti data - + Refresh the overview. This may take a moment. Obnov náhled. Tohle může chvíli trvat. - - - + + + Refresh ZnovunaÄíst - + This is an overview of your data directory as visible to the game (and tools). Tohle je náhled tvé data struktury, kterou naÄte hra (i nástroje). - - + + Filter the above list so that only conflicts are displayed. PÅ™efiltruje seznam nahoÅ™e tak, že budou zobrazeny pouze konflikty. - + Show only conflicts Ukaž jenom konflikty - + Saves Uložené pozice - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1602,160 +1602,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Pokud kliknete &quot;Fixni Mody...&quot; v kontext menu, MO se pokusí aktivovat vÅ¡echny mody a esp soubory, které byli v pozici používány. Nic se vÅ¡ak nevypne!</span></p></body></html> - + Downloads Stáhnuté - + This is a list of mods you downloaded from Nexus. Double click one to install it. Tohle je seznam modů, které jsi stánul z Nexusu. Dvojklik nainstaluje mod. - + Compact Kompaktní - + Show Hidden - + Tool Bar Panel nástrojú - + Install Mod Instaluj mod - + Install &Mod Instaluj &Mod - + Install a new mod from an archive Instaluj nový mod z archívu - + Ctrl+M Ctrl+M - + Profiles Profily - + &Profiles &Profily - + Configure Profiles Nastav profily - + Ctrl+P Ctrl+P - + Executables SpouÅ¡tÄ›ní - + &Executables &SpouÅ¡tÄ›ní - + Configure the executables that can be started through Mod Organizer Konfigurace spouÅ¡tÄ›ní, které lze použít pro naÄtení modů z MO - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Nastavení - + &Settings &Nastavení - + Configure settings and workarounds Konfigurace a nastavení programu a různých Å™eÅ¡ení - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Prohledat mody na nexusu - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Verze Mod Organizer u je aktuální - - + + No Problems Žádné problémy - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1766,54 +1766,54 @@ Right now this has very limited functionality V souÄasnosti má omezenou funkcionalitu - - + + Help Pomoc - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems Problémy - + There are potential problems with your setup Existují potenciální problémy s programem - + Everything seems to be in order VÅ¡echno se jeví v pořádku @@ -1830,22 +1830,22 @@ V souÄasnosti má omezenou funkcionalitu <li>dotNet není nainstalován nebo je neaktuální. Tohle vyžaduje NCC. NajdÄ›te ho zde: <a href="%1">%1</a></li> - + Help on UI Pomoc s programem - + Documentation Wiki Dokumentace wiki - + Report Issue Nahlásit chybu - + Tutorials @@ -1854,431 +1854,425 @@ V souÄasnosti má omezenou funkcionalitu poÅ™adí naÄtení se nezdaÅ™ilo uložit - + failed to save load order: %1 zlyhalo uložení poÅ™adí naÄtení: %1 - + failed to save archives order, do you have write access to "%1"? zlyhal zápis poÅ™adí archivů, máte administrátorsky povoleno zapisovat na "%1"? - + Name Jméno - + Please enter a name for the new profile Prosím zadej jméno pro nový profil - + failed to create profile: %1 Zlyhalo vytvoÅ™ení profilu: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Probíhá stahování - + There are still downloads in progress, do you really want to quit? Pořád probíhá stahování, urÄitÄ› chcete skonÄit (zruší stahování)? - + failed to read savegame: %1 nezdaÅ™ilo se naÄíst pozici: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" Zlyhal start "%1" - + Waiting ÄŒekání - + Please press OK once you're logged into steam. Stiskni OK až budeÅ¡ pÅ™ihlášen do Steamu. - + "%1" not found "%1" nenalezeno - + Start Steam? Spustit Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam by mÄ›l běžet aby se podaÅ™ilo spustit hru. Má se MO pokusit spustit steam teÄ? - + Also in: <br> Také v: <br> - + No conflict Žádné konflikty - + <Edit...> <Edit...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! Tenhle BSA soubor je aktivován v ini souboru, tak zÅ™ejmÄ› je vyžadován! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Tento archív se stejnÄ› naÄte, protože existuje plugin se stejným jménem ale jeho soubory nebudou zodpovídat poÅ™adí nainstalování! - + Activating Network Proxy - - + + Installation successful Instalace úspěšná - - + + Configure Mod Konfigurace Modu - - + + This mod contains ini tweaks. Do you want to configure them now? Tenhle mod obsahuje ini úpravy. Chcete je nastavovat teÄ? - - + + mod "%1" not found mod "%1" nenalezen - - + + Installation cancelled Instalace zruÅ¡ena - - + + The mod was not installed completely. Tento mod se nenainstaloval úplne. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + Choose Mod Vyber Mod - + Mod Archive Archív Modu - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Stahování zaÄalo - + failed to update mod list: %1 nezdaÅ™ilo se aktualizovat seznam modů: %1 - + failed to spawn notepad.exe: %1 zlyhalo otevÅ™ení notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 NezdaÅ™ilo se zmÄ›nit původní jméno: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <VÅ¡echny> - + <Checked> <Aktivované> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - - - - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <Neaktivované> - + <Update> <Aktualizace> - + <No category> <Bez kategorie> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 NezdaÅ™ilo se pÅ™ejmenovat mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" NezdaÅ™ilo se pÅ™ejmenovat "%1" na "%2" - - - + + + Confirm Potvrdit - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 NezdaÅ™ilo se odstranit mod: %1 - + Failed Zlyhání - + Installation file no longer exists InstalaÄní soubor již neexistuje - + Mods installed with old versions of MO can't be reinstalled in this way. Mody nainstalovány staršími verzemi MO nemůžou být pÅ™einstalovány tímto spůsobem. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA Extrakce BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Tento mod obsahuje alespoň jeden BSA soubor. Chcete rozpakovat i jeho obsah? (BSA se po úspěšném rozpakování odstrání. Pokud nevíte, co je BSA, zvolte možnost Ne) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Tento archiv má neplatné identifikaÄní souÄty. Nekteré soubory mohou být poÅ¡kozeny. - + Nexus ID for this Mod is unknown Nexus ID pro tento Mod není známo @@ -2291,391 +2285,406 @@ This function will guess the versioning scheme under the assumption that the ins Zvol Prioritu - + Really enable all visible mods? Opravdu aktivovat vÅ¡echny zobrazené mody? - + Really disable all visible mods? Opravdu deaktivovat vÅ¡echny zobrazené mody? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instaluj Mod... - + Enable all visible Aktivuj vÅ¡echny v seznamu - + Disable all visible Deaktivuj vÅ¡echny v seznamu - + Check all for update Skontroluj vÅ¡echny pro aktualizaci - + Export to csv... - + Sync to Mods... Synchronizuj s Mody... - + Restore Backup - + Remove Backup... - Set Category - OznaÄ Kategorii + OznaÄ Kategorii - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... PÅ™ejmenuj Mod... - + Remove Mod... Odstranit Mod... - + Reinstall Mod PÅ™einstaluj Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus NavÅ¡tiv na Nexusu - + Open in explorer OtevÅ™i v prohlížeÄi - + Information... Informace... - - + + Exception: Výnimky: - - + + Unknown exception Neznámá výnimka - + <Multiple> - + Fix Mods... Oprav Mody... - - + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! Není možné zmÄ›nit cíl pro stahování když probíhá stahování! - + Download failed Stahování zlyhalo - + failed to write to file %1 NezdaÅ™il se zápis do souboru %1 - + %1 written %1 zapsáno - + Select binary Vyber binární soubor - + Binary Soubor - + Enter Name Zadej jméno - + Please enter a name for the executable Prosím zadej jméno pro spouÅ¡tÄ›ní - + Not an executable Není spustitelný - + This is not a recognized executable. Tenhle soubor není rozpoznán jako spustitelný. - - + + Replace file? Nahradit soubor? - + There already is a hidden version of this file. Replace it? Už existuje skrytá verze tohto souboru. Nahradit? - - + + File operation failed Operace se souborem zlyhala - - + + Failed to remove "%1". Maybe you lack the required file permissions? NepodaÅ™ilo se odstranit "%1". Možná nejsou k dispozici požadována práva? - + There already is a visible version of this file. Replace it? Už existuje viditelná verze tohto souboru. Nahradit? - + Update available Aktualizace k dispozici - + Open/Execute Otevřít/Spustit - + Add as Executable PÅ™idat SpouÅ¡tení - + Un-Hide Odekrýt - + Hide Skrýt - + Write To File... Zápis do souboru... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + + + + + Add/Remove Categories + + + + + Replace Categories + + + + + login successful - + login failed: %1. Trying to download anyway pÅ™ihlášení zlyhalo: %1. Pokouším se beztak stahovat - + login failed: %1 pÅ™ihlášení zlyhalo: %1 - + login failed: %1. You need to log-in with Nexus to update MO. pÅ™ihlášení zlyhalo: %1. Na aktualizaci MO je potÅ™ebné pÅ™ihlášení k Nexusu. - + Error Chyba - + failed to extract %1 (errorcode %2) zlyhala extrakce %1 (errorcode %2) - + Extract... Extrakce... - + Edit Categories... Editovat Kategorie... - + Enable all - + Disable all @@ -2709,7 +2718,7 @@ This function will guess the versioning scheme under the assumption that the ins ModInfoBackup - + This is the backup of a mod @@ -2790,13 +2799,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Tohle je seznam vÅ¡ech obrázků (.jpg a.png) obsažených v modu, jako naříklad screenshoty. Kliknutím na jeden ho zvÄ›tšíš.</span></p></body></html> - - + + Optional ESPs Volitelné ESP - + List of esps and esms that can not be loaded by the game. Seznam souborů .esp a .esm, které nebudou naÄteni do hry. @@ -2824,7 +2833,7 @@ p, li { white-space: pre-wrap; } - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2832,103 +2841,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. Znepřístupni oznaÄený mod v seznamu dolů. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. OznaÄený soubor esp (v seznamu dolů) bude pÅ™emístÄ›n do podadresáře modu a tak se stane "neviditelným" pro hru. V takovem stavu se nedá aktivovat. - + Move a file to the data directory. PÅ™esuň soubor mezi Data. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. PÅ™esune soubor esp do adresáře, kde má být, aby mohl být aktivován. Prosím berte na vÄ›domí, že tato akce jenom soubor "zpÅ™istupní", nedÄ›lá ho automaticky aktivním. To se pak aktivuje v hlavním oknu mezi esp. - + ESPs in the data directory and thus visible to the game. ESP soubory mezi Data a tedy přístupné pro hru. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Tady jsou soubory modu, které se nacházejí ve (virtuálním) data adresáři hry a proto je bude možné aktivovat v seznamu esp v hlavním oknÄ›. - + Available ESPs ESP k dispozici - + Conflicts Konflikty - + The following conflicted files are provided by this mod Konfliktní soubory, které budou pÅ™ebity tímhle modem - - + + File Soubor - + Overwritten Mods PÅ™epsané mody - + The following conflicted files are provided by other mods Konfliktní soubory, které další mody pÅ™ebijou - + Providing Mod Mod původu - + Non-Conflicted files Nekonfliktní soubory - + Categories Kategorie - + Primary Category - + Nexus Info Nexus Info - + Mod ID Mod ID - + Mod ID for this mod on Nexus. Mod ID tohodle modu na Nexusu. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2941,7 +2950,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod ID pro tenhle mod na Nexusu. Vyplňuje se automaticky pokud ste soubor i stáhli i nainstalovali přímo skrz MO. Jinak ho můžete zadat ruÄne. Správne ID naleznete u modu na Nexusu. Adresa bude vypadat takhle: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. V takovem případe 1334 je Mod ID. Mimo jiné odkaz je přímo na Mod Organizer tak proÄ rovnou nejít zadat Endorse?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2954,33 +2963,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Nainstalovaná verze modu. Bublina ukáže Äíslo nejaktuálnÄ›jší verzi modu na Nexusu. Číslo verze se nastaví samo jenom pokud byl mod nainstalován skrz MO.</span></p></body></html> - + Version Verze - + Refresh ZnovunaÄíst - + Refresh all information from Nexus. - + Description Popis - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> @@ -3009,12 +3017,12 @@ p, li { white-space: pre-wrap; } Velikost (kB) - + Endorse - + Notes @@ -3027,17 +3035,17 @@ p, li { white-space: pre-wrap; } Už jste tenhle mod endorsovali? - + Filetree Struktura souborů - + A directory view of this mod Zložkový náhled na mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3052,17 +3060,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Zmeny se okamžite dejí pÅ™imo na disku, takže</span><span style=" font-size:8pt; font-weight:600;">buÄte opatrní</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next Další - + Close Zavřít @@ -3319,7 +3327,7 @@ p, li { white-space: pre-wrap; } PÅ™epsat - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) Tenhle kvázi mod obsahuje soubory, které byli vytvoÅ™eny nebo zmÄ›nÄ›ny bÄ›hem spuÅ¡tení, tzn. ve virtuálním Data stromÄ› (ku příkladu Construction Kit je sem vytváří') @@ -3332,12 +3340,12 @@ p, li { white-space: pre-wrap; } zlyhal zápis %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 neobsahuje žádné esp/esm ani jiné použitelné struktury (textures, meshes, interface,...) - + Categories: <br> Kategorie: <br> @@ -3345,7 +3353,7 @@ p, li { white-space: pre-wrap; } ModList - + Confirm Potvrdit @@ -3414,17 +3422,17 @@ p, li { white-space: pre-wrap; } max - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. @@ -3433,7 +3441,7 @@ p, li { white-space: pre-wrap; } %1 neobsahuje žádné esp/esm ani jiné použitelné struktury (textures, meshes, interface,...) - + Categories: <br> Kategorie: <br> @@ -3442,7 +3450,7 @@ p, li { white-space: pre-wrap; } Tenhle kvázi mod obsahuje soubory, které byli vytvoÅ™eny nebo zmÄ›nÄ›ny bÄ›hem spuÅ¡tení, tzn. ve virtuálním Data stromÄ› (ku příkladu Construction Kit je sem vytváří') - + installed version: %1, newest version: %2 nainstalovaná verze: %1, nejnovjší verze: %2 @@ -3455,88 +3463,88 @@ p, li { white-space: pre-wrap; } Jména vaÅ¡ich modů - + Version Verze - + Version of the mod (if available) Verze modu (pokud je k dispozici) - + Priority Priorita - + invalid - + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". - + Invalid name - + drag&drop failed: %1 - + Flags - + Mod Name - + Category - + Nexus ID - + Installation - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Priorita aplikace modu. Čím vÄ›tší, tím "důležitÄ›jší" je mod a proto může pÅ™ebít mody s nižší prioritou. - + Time this mod was installed - + Are you sure you want to remove "%1"? UrÄitÄ› chcete odstranit "%1"? @@ -3650,12 +3658,12 @@ p, li { white-space: pre-wrap; } - + empty response prázdná odozva - + invalid response neplatná odozva @@ -4680,59 +4688,59 @@ V souÄasnosti má omezenou funkcionalitu - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - - + + Confirm Potvrdit - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 zlyhalo otevÅ™ení výstupního souboru: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. NÄ›které vaÅ¡e pluginy mají neplatné názvy! Tyhle pluginy nemůžou být naÄteny hrou. Prosím nahlédnÄ›te do souboru mo_interface.log pro kompletní seznam pluginů a pÅ™ejmenujte je. - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4745,12 +4753,12 @@ V souÄasnosti má omezenou funkcionalitu max - + This plugin can't be disabled (enforced by the game) Tenhle plugin nemůže být deaktivován (vyžaduje to hra) - + Origin: %1 Původní mod: %1 @@ -4793,12 +4801,12 @@ V souÄasnosti má omezenou funkcionalitu <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -5179,20 +5187,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories NezdaÅ™ilo se uložit uživatelské kategorie - - - - + + + + invalid index %1 neplatný index %1 - + invalid category id %1 neplatné id kategorie %1 @@ -5318,7 +5326,7 @@ p, li { white-space: pre-wrap; } - + Mod Organizer Mod Organizer @@ -5344,23 +5352,23 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements Prosím použijte "Pomoc" z panelu nástrojú pro instrukce ke vÅ¡em elementům - - + + <Manage...> <Manage...> - + failed to parse profile %1: %2 NezdaÅ™ilo se rozebrat profil %1: %2 - + failed to find "%1" NepodaÅ™ilo sa najít "%1" @@ -5370,12 +5378,12 @@ p, li { white-space: pre-wrap; } Chyba kódování, prosím nahlaste tuto chybu a poskytnÄ›te záznamový soubor mo_interface.log! - + failed to access %1 zlyhal přístup k %1 - + failed to set file time %1 nepodaÅ™ilo se nastavit Äas souboru %1 @@ -5416,12 +5424,12 @@ p, li { white-space: pre-wrap; } nepodaÅ™ilo se otevřít %1 - + Script Extender Skript Extender - + Proxy DLL Proxy DLL @@ -5735,7 +5743,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + No download server available. Please try again later. @@ -5744,7 +5752,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Nenalezen soubor pro aktualizaci - + Failed to retrieve update information: %1 NepodaÅ™ilo se získat informace o aktualizaci: %1 @@ -5756,18 +5764,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Administrátorské práva jsou požadovány na tuhle zmÄ›nu. - - + + attempt to store setting for unknown plugin "%1" - + Confirm Potvrdit - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? Zmena adresáře modu zmÄ›ní vÅ¡echny tvoje profily! Nenalezené mody (nebo pÅ™ejmenované) v nové lokaci budou deaktivovány ve vÅ¡ech profilech. Není možnosÅ¥ návratu pokud si nezazálohujete profily ruÄnÄ›. PokraÄovat? @@ -6382,7 +6390,7 @@ Pro ostatné hry tohle není dostateÄná náhrada Invalidace Archívu! TransferSavesDialog - Dialog + Transfer Savegames @@ -6403,8 +6411,16 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves + This is a list of characters in the global location. + +On Windows Vista/Windows 7: + C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +On Windows XP: + C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + diff --git a/src/organizer_de.ts b/src/organizer_de.ts index a80d3156..3d227137 100644 --- a/src/organizer_de.ts +++ b/src/organizer_de.ts @@ -542,12 +542,12 @@ p, li { white-space: pre-wrap; } DownloadManager - - - - - - + + + + + + invalid index %1 ungültiger index %1 @@ -556,30 +556,30 @@ p, li { white-space: pre-wrap; } Löschen der Datei ist fehlgeschlagen - + failed to delete %1 konnte %1 nicht löschen - + failed to delete meta file for %1 konnte meta-informationen für %1 nicht löschen - - - - - - - - - - - - - - + + + + + + + + + + + + + + invalid index ungültiger Index @@ -589,32 +589,32 @@ p, li { white-space: pre-wrap; } - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - + Please enter the nexus mod id Bitte gib die Nexus Mod ID ein - + Mod ID: Mod ID: @@ -623,33 +623,33 @@ p, li { white-space: pre-wrap; } ungültiger alphabetischer index %1 - + Information updated Informationen aktualisiert - + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Keine passende Datei auf Nexus gefunden! Ist die Datei vielleicht nicht mehr verfügbar? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Keine Datei mit diesem Namen auf Nexus gefunden. Bitte wähle die passende händisch aus. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Konnte Datei-Informationen nicht von Nexus abrufen: %1 - + Download failed: %1 (%2) Download fehlgeschlagen: %1 (%2) @@ -658,7 +658,7 @@ p, li { white-space: pre-wrap; } Abfrage von Dateiinformationen von Nexus fehlgeschlagen! - + failed to re-open %1 Öffnen von %1 fehlgeschlagen @@ -667,7 +667,7 @@ p, li { white-space: pre-wrap; } konnte Antwort von Nexus nicht interpretieren - + failed to download %1: could not open output file: %2 Download von %1 fehlgeschlagen: Konnte Ausgabedatei %2 nicht öffnen @@ -1143,17 +1143,17 @@ p, li { white-space: pre-wrap; } - + Extracting files Extrahiere Dateien - + failed to open archive Öffnen des Archivs fehlgeschlagen - + File format "%1" not supported Dateiformat "%1" wird nicht unterstützt @@ -1212,22 +1212,22 @@ p, li { white-space: pre-wrap; } - + Mod Name - + Name Name - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1240,47 +1240,47 @@ p, li { white-space: pre-wrap; } Dieses Archive enthält einen geskripteten Installer. Um diesen zu nutzen wird das Optionale Paket "NCC" und die .net Runtime benötigt. Willst du jetzt mit einer manuellen Installation fortfahren? - + None of the available installer plugins were able to handle that archive - + no error Kein Fehler - + 7z.dll not found 7z.dll nicht gefunden - + 7z.dll isn't valid 7z.dll ist ungültig - + archive not found Archiv nicht gefunden - + unsupported archive type Archivtyp wird nicht unterstützt - + internal library error Interner Fehler in der Bibliothek - + archive invalid Ungültiges Archiv - + unknown archive error Unbekannter Fehler im Archiv @@ -1332,23 +1332,23 @@ p, li { white-space: pre-wrap; } MainWindow - - + + Categories Kategorien - + Profile Profil - + Pick a module collection Wähle eine Modul-Kollektion - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1363,44 +1363,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Beachten Sie, dass derzeit die ESP Ladefolge nicht getrennt für verschiedene Profile gespeichert wird.</span></p></body></html> - + Refresh list Liste aktualisieren - + Refresh list. This is usually not necessary unless you modified data outside the program. Liste aktualisieren. Dies ist normalerweise nicht notwendig, es sei denn Sie haben Daten außerhalb von MO verändert. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter Filter - + No groups - + Nexus IDs Nexus IDs - - - + + + Namefilter @@ -1409,12 +1409,12 @@ p, li { white-space: pre-wrap; } Ausführen - + Pick a program to run. Wähle das auszuführende Programm. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1429,12 +1429,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Sie können weitere Programme dieser Liste hinzufügen, aber ich kann nicht garantieren, dass von mir nicht getestete Anwendungen vollständig funktionieren..</span></p></body></html> - + Run program Ausführen - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1447,17 +1447,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Das ausgewählte Programm durch Mod Organiser ausführen.</span></p></body></html> - + Run Starten - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1470,7 +1470,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Erstellt einen Eintrag im Startmenü, der direkt das gewählte Programm durch Mod Organsier ausführt.</span></p></body></html> - + Shortcut @@ -1495,12 +1495,12 @@ p, li { white-space: pre-wrap; } Speichern - + List of available esp/esm files Liste der verfügbaren ESP / ESM Dateien - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1517,12 +1517,12 @@ p, li { white-space: pre-wrap; } WICHTIG: Sie können die Ladereihenfolge der BSAs hier ändern aber die Installationsreihenfolge hat Vorrang vor der Reihenfolge hier! - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. Liste der BS Archive. Archive die hier nicht markiert sind werden nicht von MO verwaltet und beachten daher nicht die gewählte Installationsreihenfolge. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1530,66 +1530,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Datei - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Data - + refresh data-directory overview Data-Verzeichnis übersicht neu laden - + Refresh the overview. This may take a moment. Lädt die Übersicht neu. Dies kann einen Augenblick dauern. - - - + + + Refresh Neu laden - + This is an overview of your data directory as visible to the game (and tools). Dies ist eine Übersicht des "data"-verzeichnisses so wie es das Spiel zu sehen bekommt. - - + + Filter the above list so that only conflicts are displayed. Obere Liste filtern um nur Konflikte anzuzeigen. - + Show only conflicts Nur Konflikte anzeigen - + Saves Spielstände - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1606,160 +1606,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Wenn Sie im Kontextmenü auf &quot;Mods reparieren...&quot; klicken, wird Mod Organiser versuchen die entsprechenden Mods und ESPs zu aktivieren. Es werden dabei kein Eintrag deaktiviert!</span></p></body></html> - + Downloads Downloads - + This is a list of mods you downloaded from Nexus. Double click one to install it. Dies ist eine Liste der Mods die von Nexus heruntergeladen wurden. Doppelklicken Sie um zu installieren. - + Compact Kompakt - + Show Hidden - + Tool Bar Werkzeugleiste - + Install Mod Mod installieren - + Install &Mod &Mod installieren - + Install a new mod from an archive Installiert eine Mod aus einem Archiv - + Ctrl+M Ctrl+M - + Profiles Profile - + &Profiles &Profile - + Configure Profiles Profile konfigurieren - + Ctrl+P Ctrl+P - + Executables Programme - + &Executables Programm&e - + Configure the executables that can be started through Mod Organizer Konfigurieren der Programme die von Mod Organiser gestartet werden können - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Einstellungen - + &Settings Ein&stellungen - + Configure settings and workarounds Einstellungen und Workarounds verwalten - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Durchsuche die passende Seite des Nexus-Netzwerks nach weiteren Mods - + Ctrl+N Ctrl+N - - + + Update Aktualisierung - + Mod Organizer is up-to-date Mod Organizer ist auf dem neuesten Stand - - + + No Problems Keine Probleme - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1768,54 +1768,54 @@ Right now this has very limited functionality Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. - - + + Help Hilfe - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems Probleme - + There are potential problems with your setup Es bestehen möglicherweise Probleme mit Ihrer Konfiguration - + Everything seems to be in order Alles in bester Ordnung @@ -1832,22 +1832,22 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. <li>dotNet ist nicht installiert oder veraltet. Dies wird benötigt um NCC nutzen zu können. Laden Sie die korrekte Version von <a href="%1">%1</a> herunter</li> - + Help on UI Hilfe zur Oberfläche - + Documentation Wiki Wiki Dokumentation - + Report Issue Fehler melden - + Tutorials @@ -1856,431 +1856,425 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Ladereihenfolge konnte nicht gespeichert werden - + failed to save load order: %1 Reihenfolge konnt nicht gespeichert werden: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Name - + Please enter a name for the new profile Bitte geben Sie einen Namen für das neue Profil an - + failed to create profile: %1 Erstellen des Profils fehlgeschlagen: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Download in Bearbeitung - + There are still downloads in progress, do you really want to quit? Es gibt noch unfertige Downloads, wollen Sie wirklich das Programm beenden? - + failed to read savegame: %1 Spielstand konnte nicht gelesen werden: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting Warte - + Please press OK once you're logged into steam. Bitte drücken sie OK sobald sie bei Steam angemeldet sind. - + "%1" not found "%1" nicht gefunden - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam muss laufen um das Spiel korrekt zu starten. Soll MO versuchen Steam zu starten? - + Also in: <br> Auch in: <br> - + No conflict Keine Konflikte - + <Edit...> <Bearbeiten...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! Dieses Archiv ist in der ini Konfiguration gelistet, daher ist es möglicherweise erforderlich! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Dieses Archiv wird vom Spiel geladen werden da ein Plugin mit dem selben Namen aktiv ist aber die enthaltenen Dateien werden sich nicht an Ihre Installations-Reihenfolge halten! - + Activating Network Proxy - - + + Installation successful Installation erfolgreich - - + + Configure Mod Mod konfigurieren - - + + This mod contains ini tweaks. Do you want to configure them now? Diese Mod enthält Anpassungen für die Ini datei. Wollen Sie diese nun konfigurieren? - - + + mod "%1" not found mod "%1" nicht gefunden - - + + Installation cancelled Installation abgebrochen - - + + The mod was not installed completely. Die mod wurde nicht erfolgreich installiert. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + Choose Mod Mod wählen - + Mod Archive Mod Archiv - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Download gestartet - + failed to update mod list: %1 Aktualisieren der Modliste fehlgeschlagen: %1 - + failed to spawn notepad.exe: %1 notepad.exe konnte nicht aufgerufen werden: %1 - + failed to open %1 %1 konnte nicht geöffnet werden - + failed to change origin name: %1 konnte den Namen der Dateiquelle nicht ändern: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Alle> - + <Checked> <Markierte> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - - - - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <Nicht markierte> - + <Update> <Update> - + <No category> <Ohne Kategorie> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 konnte die Mod nicht umbenennen: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Bestätigen - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 konnte die mod nicht entfernen: %1 - + Failed Fehlgeschlagen - + Installation file no longer exists Installationsdatei existiert nicht mehr - + Mods installed with old versions of MO can't be reinstalled in this way. Mods die mit alten Versionen von MO installiert wurden können nicht auf diese Weise neu-installiert werden. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA BSA extrahieren - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Diese mod enthält mindestens eine BSA datei. Soll sie entpackt werden? (Das BSA wird danach gelöscht. Wenn Sie nicht wissen was BSAs sind wählen Sie am besten \"nein\") - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Dieses Archiv enthält ungültige Prüfsummen. Einige Dateien sind evtl. defekt. - + Nexus ID for this Mod is unknown Nexus ID für diese Mod unbekannt @@ -2293,391 +2287,406 @@ This function will guess the versioning scheme under the assumption that the ins Priorität wählen - + Really enable all visible mods? Alle angezeigten Mods aktivieren? - + Really disable all visible mods? Alle angezeigten Mods deaktivieren? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Mod installieren... - + Enable all visible Alle sichtbaren aktvieren - + Disable all visible Alle sichtbaren deaktvieren - + Check all for update Alle auf Aktualisierungen überprüfen - + Export to csv... - + Sync to Mods... Mods synchronisieren... - + Restore Backup - + Remove Backup... - Set Category - Kategorie festlegen + Kategorie festlegen - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Mod umbenennen... - + Remove Mod... Mod entfernen... - + Reinstall Mod Mod neu installieren - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus Auf Nexus besuchen - + Open in explorer In Explorer öffnen - + Information... Informationen... - - + + Exception: Ausnahme: - - + + Unknown exception Unbekannte Ausnahme - + <Multiple> - + Fix Mods... Mods reparieren... - - + + failed to remove %1 %1 konnte nicht entfernt werden - - + + failed to create %1 %1 konnte nicht erstellt werden - + Can't change download directory while downloads are in progress! Das download verzeichnis kann nicht geändert werden solange Downloads laufen! - + Download failed Download fehlgeschlagen - + failed to write to file %1 Speichern in Datei "%1" fehlgeschlagen - + %1 written "%1" gespeichert - + Select binary Binary wählen - + Binary Ausführbare Datei - + Enter Name Namen eingeben - + Please enter a name for the executable Bitte geben Sie einen Namen für die Anwendungsdatei ein - + Not an executable Datei ist nicht ausführbar - + This is not a recognized executable. - - + + Replace file? Datei ersetzen? - + There already is a hidden version of this file. Replace it? Es existiert bereits eine versteckte Variante von dieser Datei. Soll diese ersetzt werden? - - + + File operation failed Dateioperation fehlgeschlagen - - + + Failed to remove "%1". Maybe you lack the required file permissions? Konnte "%1" nicht löschen. Fehlen Ihnen evtl. die nötigen Berechtigungen? - + There already is a visible version of this file. Replace it? Es existiert bereits eine sichtbare Variante dieser Datei. Soll diese ersetzt werden? - + Update available Aktualisierung verfügbar - + Open/Execute Öffnen/Ausführen - + Add as Executable Als Anwendung hinzufügen - + Un-Hide Sichtbar machen - + Hide Verstecken - + Write To File... In Datei speichern... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + + + + + Add/Remove Categories + + + + + Replace Categories + + + + + login successful - + login failed: %1. Trying to download anyway login fehlgeschlagen: %1. Der Download scheitert vermutlich - + login failed: %1 login fehlgeschlagen: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Fehler - + failed to extract %1 (errorcode %2) konnte "%1" nicht extrahieren (fehlercode %2) - + Extract... Extrahieren... - + Edit Categories... - + Enable all - + Disable all @@ -2707,7 +2716,7 @@ This function will guess the versioning scheme under the assumption that the ins ModInfoBackup - + This is the backup of a mod @@ -2788,13 +2797,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Listet alle Bilder (*.jpg, *.png) im Modverzeichnis auf, bspw. Screenshots. Klicken für eine größere Ansicht.</span></p></body></html> - - + + Optional ESPs Optionale ESPs - + List of esps and esms that can not be loaded by the game. Liste mit ESP und ESM Dateien die vom Spiel nicht geladen werden können. @@ -2822,7 +2831,7 @@ p, li { white-space: pre-wrap; } - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2830,103 +2839,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. Den unten ausgewählten Mod als nicht verfügbar markieren. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. Die in der unteren Liste ausgewählte ESP wird in ein Unterverzeichnis des Mods verschoben und so für das Spiel unsichtbar. Sie kann nicht mehr im Spiel aktiviert werden. - + Move a file to the data directory. Datei in das Datenverzeichnis verschieben. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Verschiebt ein ESP in das ESP Verzeichnis damit es im Hauptfenster aktiviert werden kann. Bitte beachten Sie, dass das ESP nur "verfügbar" wird, es wird nicht zwangsläufig geladen! Das Laden der ESP wird im Hauptfenster von MO eingestellt. - + ESPs in the data directory and thus visible to the game. ESPs im Datenverzeichnis und für das Spiel sichtbar. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Dies Mod Dateien sind im (virtuellen) Datenverzeichnis des Spiels und somit in der ESP Liste des Hauptfenster auswählbar. - + Available ESPs Verfügbare ESPs - + Conflicts Konflikte - + The following conflicted files are provided by this mod Die folgenden konfliktbehafteten Dateien werden von dieser Mod bereitgestellt - - + + File Datei - + Overwritten Mods Überschriebene Mods - + The following conflicted files are provided by other mods Die folgenden konfliktbehafteten Dateien werden von anderen Mods bereitgestellt - + Providing Mod Bereitstellende Mod - + Non-Conflicted files Konfliktfreie Dateien - + Categories Kategorien - + Primary Category - + Nexus Info Nexus Info - + Mod ID Mod ID - + Mod ID for this mod on Nexus. ID dieser mod auf Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2944,7 +2953,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ModID für den Mod auf Nexus. Um die korrekte Id zu finden, einfach den Mod auf Nexus aufrufen. Die URL sieht so aus:<a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" color:#000000;">. In diesem Beispiel ist 1334 die gesuchte Id. Zufällig ist das genau der Link zu Mod Organiser im Nexus. Warum nicht einfach mal anklicken und ein Endorsement hinzufügen?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2957,33 +2966,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Installierte Version des Mods. Der Tooltip zeigt die auf Nexus verfügbare Version. Die installierte Versionsnummer kann nur angezeigt werden wenn der Mod durch MO installiert wurde.</span></p></body></html> - + Version Version - + Refresh Neu laden - + Refresh all information from Nexus. - + Description Beschreibung - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> @@ -2991,12 +2999,12 @@ p, li { white-space: pre-wrap; } about:blank - + Endorse - + Notes @@ -3038,17 +3046,17 @@ p, li { white-space: pre-wrap; } Schon ein "endorsement" vergeben? - + Filetree Verzeichnisbaum - + A directory view of this mod Verzeichnisansicht des Mods - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3063,17 +3071,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Veränderungen werden sofort auf der Platte ausgeführt, also</span><span style=" font-size:8pt; font-weight:600;"> vorsichtig sein!</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next Weiter - + Close Schliessen @@ -3333,7 +3341,7 @@ p, li { white-space: pre-wrap; } Overwrite - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) Diese Pseudo-Mod enthält Dateien des virtuellen Verzeichnisses die modifiziert wurden (z.B. durch den Construction Kit) @@ -3346,12 +3354,12 @@ p, li { white-space: pre-wrap; } konnte %1/meta.ini nicht schreiben: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 enthält keine esp / esm Dateien und keine Resourcen (Texturen, Netze, Oberfläche...) - + Categories: <br> Kategorien: <br> @@ -3367,7 +3375,7 @@ p, li { white-space: pre-wrap; } aÜberprüfung gestartet - + Confirm Bestätigen @@ -3392,7 +3400,7 @@ p, li { white-space: pre-wrap; } Max - + installed version: %1, newest version: %2 installierte Version: %1, neueste Version: %2 @@ -3453,52 +3461,52 @@ p, li { white-space: pre-wrap; } - + invalid - + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". - + Categories: <br> Kategorien: <br> - + Invalid name - + Mod Name - + Installation - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. - + Time this mod was installed @@ -3515,59 +3523,59 @@ p, li { white-space: pre-wrap; } Namen Ihrer Mods - + Version Version - + Version of the mod (if available) Version des Mod (wenn verfügbar) - + Priority Priorität - + drag&drop failed: %1 - + Flags - + Category - + Nexus ID - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority Installations-Priorität Ihres Mods. Je höher, desto wichtiger ist dieser Mod und überschreibt damit Dateien von Mods mit niedrigerer Priorität. - + Are you sure you want to remove "%1"? Bist du sicher dass du "%1" löschen willst? @@ -3721,12 +3729,12 @@ p, li { white-space: pre-wrap; } - + empty response leere Antwort - + invalid response ungültige Antwort @@ -4777,59 +4785,59 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP nicht gefunden: %1 - - + + Confirm Bestätigen - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 konnte die Ausgabedatei nicht öffnen: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. Einige Ihrer Plugins haben ungültige Namen! Diese Plugins können nicht vom Spiel geladen werden. Die Datei mo_interface.log enthält eine Liste der betroffenen Plugins. Bitte benennen Sie diese um. - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4842,12 +4850,12 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. max - + This plugin can't be disabled (enforced by the game) Dieses Plugin kann nicht deaktiviert werden (vom Spiel benötigt) - + Origin: %1 Ursprung: %1 @@ -4892,12 +4900,12 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -5449,7 +5457,7 @@ p, li { white-space: pre-wrap; } "%1" nicht gefunden - + Please use "Help" from the toolbar to get usage instructions to all elements Bitte verwenden Sie die "Hilfe" Funktion um Hinweise zu Nutzung aller Elemete zu bekommen @@ -5462,19 +5470,19 @@ p, li { white-space: pre-wrap; } Ungültige Priorität %1 - + failed to find "%1" Konnte "%1" nicht finden - - + + <Manage...> <Verwalten...> - + failed to parse profile %1: %2 Konnte Profil %1 nicht verarbeiten: %2 @@ -5483,12 +5491,12 @@ p, li { white-space: pre-wrap; } Kodierungsfehler! Bitte melden Sie dies als Bug und fügen Sie die Datei mo_interface.log bei! - + failed to access %1 Auf %1 konnte nicht zugegriffen werden - + failed to set file time %1 Konnte Dateizeit nicht setzen %1 @@ -5650,17 +5658,17 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + Mod Organizer Mod Organizer - + Script Extender Script Extender - + Proxy DLL Proxy DLL @@ -5676,20 +5684,20 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe konnte den Accountnamen nicht bestimmen - + Failed to save custom categories Konnte die modifizierten Kategorien nicht speichern - - - - + + + + invalid index %1 ungültiger index %1 - + invalid category id %1 ungültige Kategorie %1 @@ -5949,7 +5957,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + No download server available. Please try again later. @@ -5958,7 +5966,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe kein Update gefunden - + Failed to retrieve update information: %1 Konnte update informationen nicht abrufen: %1 @@ -5978,18 +5986,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Admistratorrechte sind erforderlich um dies zu ändern. - - + + attempt to store setting for unknown plugin "%1" - + Confirm Bestätigen - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -6621,9 +6629,13 @@ p, li { white-space: pre-wrap; } TransferSavesDialog - Dialog - Dialog + Dialog + + + + Transfer Savegames + @@ -6643,8 +6655,16 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves + This is a list of characters in the global location. + +On Windows Vista/Windows 7: + C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +On Windows XP: + C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + diff --git a/src/organizer_es.ts b/src/organizer_es.ts index ba096644..bb1543ce 100644 --- a/src/organizer_es.ts +++ b/src/organizer_es.ts @@ -540,78 +540,78 @@ p, li { white-space: pre-wrap; } - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + failed to download %1: could not open output file: %2 error en la descarga %1: no se puede abrir el fichero de destino: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - + failed to delete %1 - + failed to delete meta file for %1 - - - - - - + + + + + + invalid index %1 indice invalido %1 - + Information updated - + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 - + Download failed: %1 (%2) @@ -620,30 +620,30 @@ p, li { white-space: pre-wrap; } error borrando el fichero - - - - - - - - - - - - - - + + + + + + + + + + + + + + invalid index indice invalido - + Please enter the nexus mod id - + Mod ID: @@ -652,7 +652,7 @@ p, li { white-space: pre-wrap; } Fallo la peticion de fichero de Nexus! - + failed to re-open %1 error reabriendo %1 @@ -1082,17 +1082,17 @@ p, li { white-space: pre-wrap; } - + Extracting files Extrayendo ficheros - + failed to open archive Error abriendo el fichero - + File format "%1" not supported Formato de archivo no soportado para "%1" @@ -1119,67 +1119,67 @@ p, li { white-space: pre-wrap; } - + Mod Name - + Name Nombre - + Invalid name - + The name you entered is invalid, please enter a different one. - + None of the available installer plugins were able to handle that archive - + no error sin error - + 7z.dll not found 7z.dll no se encuentra - + 7z.dll isn't valid 7z.dll no es valido - + archive not found archivo no encontrado - + unsupported archive type formato de fichero no soportado - + internal library error error interno de libreria - + archive invalid archivo invalido - + unknown archive error error desconocido del archivo Error de fichero desconocido @@ -1232,23 +1232,23 @@ p, li { white-space: pre-wrap; } MainWindow - - + + Categories Categorias - + Profile Perfil - + Pick a module collection Selecciona un perfil para cargarlo - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1259,44 +1259,44 @@ p, li { white-space: pre-wrap; } Por favor observa que las prioridades no son guardadas para cada perfil. - + Refresh list Recargar lista - + Refresh list. This is usually not necessary unless you modified data outside the program. Recargar lista. Esto es normalmente no necesario, a no ser que hayas modificado algo desde fuera del programa. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter Filtro - + No groups - + Nexus IDs Nexus IDs - - - + + + Namefilter @@ -1305,12 +1305,12 @@ Por favor observa que las prioridades no son guardadas para cada perfil.Iniciar - + Pick a program to run. Selecciona el programa a iniciar. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1320,12 +1320,12 @@ p, li { white-space: pre-wrap; } - + Run program Iniciar el programa - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1334,17 +1334,17 @@ p, li { white-space: pre-wrap; } Iniciar el programa seleccionado con ModOrganizer activado. - + Run Iniciar - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1353,7 +1353,7 @@ p, li { white-space: pre-wrap; } - + Shortcut @@ -1362,12 +1362,12 @@ p, li { white-space: pre-wrap; } Guardar la lista de prioridades de carga. - + List of available esp/esm files Listado de ficheros esp/esm disponibles - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1376,12 +1376,12 @@ p, li { white-space: pre-wrap; } - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1389,66 +1389,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Fichero - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Datos - + refresh data-directory overview refresca la vista del directorio de datos - + Refresh the overview. This may take a moment. Refresca toda la vista. Esto puede tomar un tiempo. - - - + + + Refresh Recargar - + This is an overview of your data directory as visible to the game (and tools). Esta es una visión general del directorio de datos como visible para el juego (y herramientas). - - + + Filter the above list so that only conflicts are displayed. Filrar la lista superior por conflictos. - + Show only conflicts Monstrar solo los conflictos - + Saves Part. Guardadas - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1459,160 +1459,160 @@ p, li { white-space: pre-wrap; } - + Downloads Descargas - + This is a list of mods you downloaded from Nexus. Double click one to install it. Esta es la lista de los mods que has descargado desde Nexus. Doble Click para instalar. - + Compact - + Show Hidden - + Tool Bar Tool Bar - + Install Mod Instalar Mod - + Install &Mod Instalar &Mod - + Install a new mod from an archive Instalar un nuevo Mod desde un archivo - + Ctrl+M Ctrl+M - + Profiles Perfiles - + &Profiles &Perfiles - + Configure Profiles Configurar los perfiles - + Ctrl+P Ctrl+P - + Executables Ejecutables - + &Executables &Ejecutables - + Configure the executables that can be started through Mod Organizer Configura el ejecutable que sera iniciado desde Mod Orgenizer - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Configuracion - + &Settings &Configuracion - + Configure settings and workarounds Configuraciones y modos - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Buscar en la red de Nexus mas Mods - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Mod Organizer esta actualizado - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1620,502 +1620,496 @@ Right now this has very limited functionality - - + + Help Ayuda - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 Fallo guardando el orden de carga: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Nombre - + Please enter a name for the new profile Por favor introduzca un nombre para el nuevo perfil - + failed to create profile: %1 Fallo al crear el perfil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Descarga en progreso - + There are still downloads in progress, do you really want to quit? Aun hay descargas en progreso, estas seguro que quieres salir? - + failed to read savegame: %1 Fallo al leer la partida guardada: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - + "%1" not found "%1" no encontrado - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Sin conflictos - + <Edit...> <Editar...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Instalacion completada - - + + Configure Mod Configurar Mod - - + + This mod contains ini tweaks. Do you want to configure them now? Este mod contiene modificaciones del Ini. Quieres configurarlas ahora? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + Choose Mod Seleccione Mod - + Mod Archive Fichero Mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Descarga comenzada - + failed to update mod list: %1 Fallo al actualizar la lista de Mods: %1 - + failed to spawn notepad.exe: %1 Fallo al cargar el Bloc de notas: %1 - + failed to open %1 Fallo al abrir %1 - + failed to change origin name: %1 fallo al cambiar el nombre original del fichero %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Todos> - + <Checked> <Marcado> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - - - - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <Desmarcado> - + <Update> <Actualizacion> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 fallo al cambiar el nombre al mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Confirma - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2128,391 +2122,406 @@ This function will guess the versioning scheme under the assumption that the ins Selecciona Prioridad - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instalar Mod... - + Enable all visible Activar todos los visibles - + Disable all visible Desactivar todos los visibles - + Check all for update Buscar Actualizaciones - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - Set Category - Definir Categoria + Definir Categoria - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Cambiar nombre... - + Remove Mod... Quitar Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Informacion... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... Activar Mods faltantes... - - + + failed to remove %1 Fallo eliminando %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 Fallo de escritura en el fichero %1 - + %1 written %1 escrito - + Select binary - + Binary Fichero - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available Disponible actualización - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... Escribir al fichero... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + + + + + Add/Remove Categories + + + + + Replace Categories + + + + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2542,7 +2551,7 @@ This function will guess the versioning scheme under the assumption that the ins ModInfoBackup - + This is the backup of a mod @@ -2619,13 +2628,13 @@ p, li { white-space: pre-wrap; } Esto muestra el listado de fotos (jpg y png) incluidas con el Mod, por ejemplo capturas de pantallas. Pulsa para verlas en grande. - - + + Optional ESPs ESPs Opcionales - + List of esps and esms that can not be loaded by the game. Listado de ESPs y ESMs que no se cargaran con el juego. @@ -2649,7 +2658,7 @@ Muchos mods no tienen ESPs extras, en estos casos veras una lista vacia. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2657,103 +2666,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. marca este fichero seleccionado en la lista de abajo no disponible. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. El esp seleccionado (en la lista de abajo) es el que sera colocado en el subdirectorio del mod y sera invisible para el juego. Este no podra ser activado. - + Move a file to the data directory. Error moviendo fichero al directorio de datos. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Esto mueve un esp al directorio esp, por lo que se puede habilitar en la ventana principal. Tenga en cuenta que el ESP sólo se convierte en "disponible", no necesariamente se cargará! Está configurado en la ventana principal de omo. - + ESPs in the data directory and thus visible to the game. ESPs en el directorio de datos y visibles por el juego. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Estos son los archivos mod que se encuentran en el directorio de datos (virtual) de su juego y así será selecteable en la lista de esp en la ventana principal. - + Available ESPs ESPs Disponibles - + Conflicts - + The following conflicted files are provided by this mod - - + + File Fichero - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Categorias - + Primary Category - + Nexus Info Inf. Nexus - + Mod ID ID del MOD - + Mod ID for this mod on Nexus. ID del Mod en Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2767,7 +2776,7 @@ p, li { white-space: pre-wrap; } - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2776,42 +2785,41 @@ p, li { white-space: pre-wrap; } - + Version Version - + Refresh Recargar - + Refresh all information from Nexus. - + Description Descripcion - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - + Endorse - + Notes @@ -2854,17 +2862,17 @@ p, li { white-space: pre-wrap; } Tamaño - + Filetree Contenido - + A directory view of this mod Ficheros que contiene este mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2874,17 +2882,17 @@ p, li { white-space: pre-wrap; } - + Previous - + Next - + Close Cerrar @@ -3136,7 +3144,7 @@ p, li { white-space: pre-wrap; } ModInfoOverwrite - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) @@ -3149,12 +3157,12 @@ p, li { white-space: pre-wrap; } - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 no contiene ningun directorio con esp/esm ni externos (textures, meshes, interface, ...) - + Categories: <br> @@ -3182,7 +3190,7 @@ p, li { white-space: pre-wrap; } Comprobacion comenzada - + Confirm Confirma @@ -3203,7 +3211,7 @@ p, li { white-space: pre-wrap; } max - + installed version: %1, newest version: %2 version instalada: %1, nueva version: %2 @@ -3252,52 +3260,52 @@ p, li { white-space: pre-wrap; } - + invalid - + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". - + Categories: <br> - + Invalid name - + Mod Name - + Installation - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. - + Time this mod was installed @@ -3310,58 +3318,58 @@ p, li { white-space: pre-wrap; } Nombres de los mods - + Version Versión - + Version of the mod (if available) Version del mod (si esta disponible) - + Priority Prioridad - + drag&drop failed: %1 - + Flags - + Category - + Nexus ID - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Prioridad de instalacion de tu mod. Cuanto mas alto sea pisara los mods con menos prioridad. - + Are you sure you want to remove "%1"? Estas seguro de querer borrar "%1"? @@ -3468,12 +3476,12 @@ p, li { white-space: pre-wrap; } - + empty response - + invalid response @@ -4141,59 +4149,59 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP no encontrado: %1 - - + + Confirm Confirma - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4206,12 +4214,12 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod max - + This plugin can't be disabled (enforced by the game) - + Origin: %1 @@ -4258,12 +4266,12 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -4815,7 +4823,7 @@ p, li { white-space: pre-wrap; } "%1" no encontrado - + Please use "Help" from the toolbar to get usage instructions to all elements Por favor utilice "Ayuda" en la barra superior para obtener informacion sobre todos los elementos @@ -4828,19 +4836,19 @@ p, li { white-space: pre-wrap; } prioridad invalida %1 - + failed to find "%1" fallo al encontrar %1 - - + + <Manage...> <Definir...> - + failed to parse profile %1: %2 no se pudo analizar el perfil % 1: %2 @@ -4853,12 +4861,12 @@ p, li { white-space: pre-wrap; } Esto tomara un momento - + failed to access %1 Fallo al acceder %1 - + failed to set file time %1 Fallo al definir la hora al fihcero %1 @@ -4903,17 +4911,17 @@ p, li { white-space: pre-wrap; } - + Mod Organizer Mod Organizer - + Script Extender Script Extender - + Proxy DLL Proxy DLL @@ -4974,20 +4982,20 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe no se pudo determinar el nombre de la cuenta - + Failed to save custom categories Error al guardar categorías personalizadas - - - - + + + + invalid index %1 indice invalido %1 - + invalid category id %1 @@ -5247,12 +5255,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + No download server available. Please try again later. - + Failed to retrieve update information: %1 @@ -5272,18 +5280,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Derechos administrativos necesarios para cambiar esto. - - + + attempt to store setting for unknown plugin "%1" - + Confirm Confirma - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -5843,7 +5851,7 @@ Para los otros juegos no es un sustituto suficiente AI! TransferSavesDialog - Dialog + Transfer Savegames @@ -5864,8 +5872,16 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves + This is a list of characters in the global location. + +On Windows Vista/Windows 7: + C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +On Windows XP: + C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + diff --git a/src/organizer_fr.ts b/src/organizer_fr.ts index 58c871d7..2ddc1097 100644 --- a/src/organizer_fr.ts +++ b/src/organizer_fr.ts @@ -548,78 +548,78 @@ p, li { white-space: pre-wrap; } - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + failed to download %1: could not open output file: %2 impossible de télécharger %1: impossible d'écrire le fichier %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - + failed to delete %1 impossible de supprimer %1 - + failed to delete meta file for %1 impossible de supprimer le méta fichier pour %1 - - - - - - + + + + + + invalid index %1 index invalide %1 - + Information updated Information mise à jour - + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Aucun fichier correspondant trouvé sur Nexus! Peut-être ce fichier n'est-il plus disponible ou a été renommé? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Aucun fichier sur Nexus ne correspond au nom du fichier sélectionné. Veuillez s'il-vous-plaît sélectionner le bon manuellement. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Impossible de demander l'info du fichier sur Nexus: %1 - + Download failed: %1 (%2) Téléchargement échoué: %1 (%2) @@ -628,30 +628,30 @@ p, li { white-space: pre-wrap; } impossible de supprimer le fichier - - - - - - - - - - - - - - + + + + + + + + + + + + + + invalid index index invalide - + Please enter the nexus mod id Veuillez entre l'ID Nexus du mod - + Mod ID: ID du mod: @@ -668,7 +668,7 @@ p, li { white-space: pre-wrap; } Téléchargement échoué - + failed to re-open %1 impossible d'ouvrir à nouveau %1 @@ -1086,12 +1086,12 @@ p, li { white-space: pre-wrap; } - + Extracting files Extraction des fichiers - + File format "%1" not supported Format de fichier "%1" non supporté @@ -1118,72 +1118,72 @@ p, li { white-space: pre-wrap; } - + Mod Name - + Name Nom - + Invalid name - + The name you entered is invalid, please enter a different one. - + None of the available installer plugins were able to handle that archive - + no error aucune erreur - + 7z.dll not found 7z.dll introuvable - + 7z.dll isn't valid 7z.dll invalide - + archive not found archive introuvable - + failed to open archive impossible d'ouvrir l'archive - + unsupported archive type type d'archive non supporté - + internal library error erreur de bibliothèque interne - + archive invalid archive invalide - + unknown archive error erreur d'archive inconnue @@ -1235,23 +1235,23 @@ p, li { white-space: pre-wrap; } MainWindow - - + + Categories Catégories - + Profile Profil - + Pick a module collection Choisissez un profil - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1266,44 +1266,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Veuillez noter que pour l'instant, l'ordre de chargement des ESPs est commun à tous les profils.</span></p></body></html> - + Refresh list Actualiser la liste - + Refresh list. This is usually not necessary unless you modified data outside the program. Actualiser la liste. Normalement inutile à moins que vous n'ayez modifié des données à l'extérieur du programme. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter Flitre - + No groups - + Nexus IDs IDs Nexus - - - + + + Namefilter @@ -1312,12 +1312,12 @@ p, li { white-space: pre-wrap; } Lancement - + Pick a program to run. Choisissez un programme à lancer. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1332,12 +1332,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Vous pouvez ajouter d'autres outils à la liste, mais je ne peut garantir que les outils que je n'ai pas testé fonctionneront.</span></p></body></html> - + Run program Lancer le programme - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1350,17 +1350,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Exécuter le programme sélectionné avec ModOrganizer actif.</span></p></body></html> - + Run Lancer - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1373,7 +1373,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Crée un raccourci dans le menu Démarrer qui lance directement le programme sélectionné avec MO actif.</span></p></body></html> - + Shortcut @@ -1398,12 +1398,12 @@ p, li { white-space: pre-wrap; } Enregistrer - + List of available esp/esm files Liste des fichiers ESP/ESM disponibles - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1416,12 +1416,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Cette liste contient tous les ESPs et ESMs contenus dans les mods actifs. Ceux-ci requièrent leur propre ordre de chargement. Utilisez le glisser-déposer pour modifier cet ordre. Veuillez noter que MO enregistre l'ordre de chargement seulement pour les mods actif/cochés.<br />Il y a un excellent outil nommé &quot;BOSS&quot; qui classe automatiquement ces fichiers.</span></p></body></html> - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1429,66 +1429,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Fichier - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data DATA - + refresh data-directory overview Actualiser la vue d'ensemble du dossier DATA - + Refresh the overview. This may take a moment. Actualiser la vue d'ensemble. Ceci peut demander un moment. - - - + + + Refresh Actualiser - + This is an overview of your data directory as visible to the game (and tools). Ceci est une vue d'ensemble du dossier DATA tel qu'il apparaît pour le jeu (et les outils). - - + + Filter the above list so that only conflicts are displayed. Filtrer la liste ci-dessus pour afficher seulement les conflits. - + Show only conflicts Afficher seulement les conflits - + Saves Sauvegardes - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1505,160 +1505,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Si vous cliquez &quot;Réparer Mods...&quot; dans le menu contextuel, MO tentera d'activer tous les mods, ESPs et ESMs nécessaires pour résoudre le problème. Rien ne sera désactivé!</span></p></body></html> - + Downloads Téléchargements - + This is a list of mods you downloaded from Nexus. Double click one to install it. Ceci est une liste de mods que vous avez téléchargé de Nexus. Double-cliquez en un pour l'installer. - + Compact - + Show Hidden - + Tool Bar Barre d'outils - + Install Mod Installer mod - + Install &Mod Installer &mod - + Install a new mod from an archive Installer un nouveau mod à partir d'une archive - + Ctrl+M Ctrl+M - + Profiles Profils - + &Profiles &Profils - + Configure Profiles Configurer les profils - + Ctrl+P Ctrl+P - + Executables Programmes - + &Executables Programm&es - + Configure the executables that can be started through Mod Organizer Configure les programmes pouvant être lancés via Mod Organizer - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+H - + Settings Réglages - + &Settings Réglage&s - + Configure settings and workarounds Configurer les réglages et solutions de rechange - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Effectuer une recherche sur Nexus pour plus de mods - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Mod Organizer est à jour - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1666,502 +1666,496 @@ Right now this has very limited functionality - - + + Help Aide - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 impossible d'enregistrer l'ordre de chargement: %1 - + failed to save archives order, do you have write access to "%1"? - + Name Nom - + Please enter a name for the new profile Veuillez inscrire un nom pour le nouveau profil - + failed to create profile: %1 impossible de créer le profil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Téléchargements en cours - + There are still downloads in progress, do you really want to quit? Il encore des téléchargements en cours, voulez-vous vraiment quitter? - + failed to read savegame: %1 impossible de lire la sauvegarde: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting Attente - + Please press OK once you're logged into steam. Veuillez cliquer OK une fois connecté à steam. - + "%1" not found "%1" introuvable - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Aucun conflit - + <Edit...> <Modifier...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Installation réussie - - + + Configure Mod Configurer mod - - + + This mod contains ini tweaks. Do you want to configure them now? Ce mod contient des ajustement pour les fichiers ini. Désirez-vous les configurer maintenant? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + Choose Mod Choisir mod - + Mod Archive Archive de mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Téléchargement commencé - + failed to update mod list: %1 impossible de mettre à jour la liste de mods: %1 - + failed to spawn notepad.exe: %1 impossible de lancer notepad.exe: %1 - + failed to open %1 impossible d'ouvrir %1 - + failed to change origin name: %1 impossible de changer le nom d'origine: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Tous> - + <Checked> <Cochés> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - - - - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <Décochés> - + <Update> <Rafraichir> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 impossible de renommer le mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm Confirmer - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 Échec de lecture %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2174,391 +2168,406 @@ This function will guess the versioning scheme under the assumption that the ins Choisir priorité - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Installer mod... - + Enable all visible Activer tous les mods visibles - + Disable all visible Désactiver tous les mods visibles - + Check all for update Vérifier toutes les mises à jour - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - Set Category - Assigner catégorie + Assigner catégorie - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Renommer mod... - + Remove Mod... Supprimer mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... Réparer mods... - - + + failed to remove %1 Impossible de supprimer %1 - - + + failed to create %1 impossible de créer %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 impossible d'écrire dans le fichier %1 - + %1 written %1 écrit - + Select binary - + Binary Programme - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available Mise à jour disponible - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... Écriture du fichier... - + Do you want to endorse Mod Organizer on %1 now? - + Remove Supprimer - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + + + + + Add/Remove Categories + + + + + Replace Categories + + + + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Erreur - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2588,7 +2597,7 @@ This function will guess the versioning scheme under the assumption that the ins ModInfoBackup - + This is the backup of a mod @@ -2669,13 +2678,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ceci est la liste de toutes les images (.jpg et .png) présentes dans le dossier du mod, telles captures d'écran et autres. Cliquez-en une pour une vue aggrandie.</span></p></body></html> - - + + Optional ESPs ESPs optionnels - + List of esps and esms that can not be loaded by the game. Liste des esps et esms ne pouvant pas être chargés par le jeu. @@ -2703,7 +2712,7 @@ p, li { white-space: pre-wrap; } - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2711,103 +2720,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. Rendre le mod sélectionné dans la liste du bas non-disponible. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. L'ESP sélectionné (dans la liste inférieure) sera poussé dans un sous-dossier du mod et deviendra ainsi "invisible" pour le jeu. Il ne pourra alors plus être activé. - + Move a file to the data directory. Déplacer un fichier vers le dossier DATA. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Ceci déplace un ESP vers le répertoire DATA afin qu'il puisse être activé dans la fenêtre principale. Veuillez noter que l'ESP devient simplement "disponible", il ne sera pas nécessairement chargé. Celà doit être configuré dans la fenêtre principale de MO. - + ESPs in the data directory and thus visible to the game. ESPs dans le dossier DATA et donc visibles par le jeu. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Ce sont les mods qui se trouvent dans le répertoire DATA (virtuel) de votre jeu et qu'il sera donc possible de sélectionner dans la fenêtre principale. - + Available ESPs ESPs disponibles - + Conflicts - + The following conflicted files are provided by this mod - - + + File Fichier - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Catégories - + Primary Category - + Nexus Info Info de Nexus - + Mod ID ID du mod - + Mod ID for this mod on Nexus. ID de ce mod sur Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2825,7 +2834,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ID de ce mod sur Nexus. Rempli automatiquement si vous téléchargez et installez un mod à partir de MO. Sinon, vous pouvez l'inscrire manuellement. Pour connaître le bon ID, trouvez le mod sur Nexus. L'URL ressemblera à ceci: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" color:#000000;">. Dans cet example, 1334 est l'ID que vous cherchez. En passant: Ce lien est celui de Mod Organizer sur le Nexus. Pourquoi ne pas le visiter et lui donner votre aval?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2838,33 +2847,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Version du mod installée La bulle contient la version courrante disponible sur Nexus. La version installé n'est réglée que si vous installez le mod avec MO.</span></p></body></html> - + Version Version - + Refresh Actualiser - + Refresh all information from Nexus. - + Description Description - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> @@ -2893,12 +2901,12 @@ p, li { white-space: pre-wrap; } Taille (kB) - + Endorse - + Notes @@ -2911,17 +2919,17 @@ p, li { white-space: pre-wrap; } Avez-vous donné votre aval à ce mod? - + Filetree Arborescence - + A directory view of this mod Une vue du dossier de ce mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2936,17 +2944,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Les changements sont immédiatement appliqués sur le disque, alors</span><span style=" font-size:8pt; font-weight:600;"> soyez prudent</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next - + Close Fermer @@ -3192,7 +3200,7 @@ p, li { white-space: pre-wrap; } ModInfoOverwrite - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) @@ -3205,12 +3213,12 @@ p, li { white-space: pre-wrap; } - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 ne contient ni esp/esm, ni dossier d'éléments de jeu (textures, meshes, interface, ...) - + Categories: <br> @@ -3230,7 +3238,7 @@ p, li { white-space: pre-wrap; } max - + installed version: %1, newest version: %2 Version installée: %1, dernière version: %2 @@ -3279,52 +3287,52 @@ p, li { white-space: pre-wrap; } - + invalid - + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". - + Categories: <br> - + Invalid name - + Mod Name - + Installation - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. - + Time this mod was installed @@ -3337,63 +3345,63 @@ p, li { white-space: pre-wrap; } Les noms de vos mods - + Version Version - + Version of the mod (if available) Version du mod (si disponible) - + Priority Priorité - + drag&drop failed: %1 - + Flags - + Category - + Nexus ID - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Priorité d'installation de vos mods. Plus elle est ellevée, plus le mod est "important" et écrasera les fichiers des mods de priorité inférieure. - + Confirm Confirmer - + Are you sure you want to remove "%1"? Voulez-vous vraiment supprimer "%1"? @@ -3508,12 +3516,12 @@ p, li { white-space: pre-wrap; } - + empty response - + invalid response @@ -4260,59 +4268,59 @@ p, li { white-space: pre-wrap; } - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP introuvable: %1 - - + + Confirm Confirmer - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4325,12 +4333,12 @@ p, li { white-space: pre-wrap; } max - + This plugin can't be disabled (enforced by the game) - + Origin: %1 @@ -4373,12 +4381,12 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -4759,20 +4767,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories Impossible d'enregistrer les catégories personalisées - - - - + + + + invalid index %1 index invalide %1 - + invalid category id %1 @@ -4894,7 +4902,7 @@ p, li { white-space: pre-wrap; } - + Mod Organizer Mod Organizer @@ -4924,34 +4932,34 @@ p, li { white-space: pre-wrap; } "%1" introuvable - + Please use "Help" from the toolbar to get usage instructions to all elements Veuillez utiliser l'aide dans la barre d'outil pour obtenir des instructions à propos de tous les éléments - - + + <Manage...> <Gérer...> - + failed to parse profile %1: %2 impossible d'analyser le profil %1: %2 - + failed to find "%1" impossible de trouver "%1" - + failed to access %1 impossible d'accéder à %1 - + failed to set file time %1 impossible de changer la date du fichier %1 @@ -4995,12 +5003,12 @@ p, li { white-space: pre-wrap; } Français - + Script Extender Extenseur de script - + Proxy DLL DLL par procuration @@ -5309,12 +5317,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + No download server available. Please try again later. - + Failed to retrieve update information: %1 @@ -5334,18 +5342,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Les droits administrateur sont requis pour changer ceci. - - + + attempt to store setting for unknown plugin "%1" - + Confirm Confirmer - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -5924,7 +5932,7 @@ Pour les autres jeux, ceci ne suffit pas à remplacer l'invalidation des ar TransferSavesDialog - Dialog + Transfer Savegames @@ -5945,8 +5953,16 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves + This is a list of characters in the global location. + +On Windows Vista/Windows 7: + C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +On Windows XP: + C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + diff --git a/src/organizer_ru.ts b/src/organizer_ru.ts index f7518508..b94688b0 100644 --- a/src/organizer_ru.ts +++ b/src/organizer_ru.ts @@ -543,111 +543,111 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ переименовать "%1" в "%2" - + Download again? Скачать Ñнова - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем загружен. Ð’Ñ‹ хотите загрузить его Ñнова? У него будет другое имÑ. - + failed to download %1: could not open output file: %2 не удалоÑÑŒ загрузить %1: не удалоÑÑŒ открыть выходной файл: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + invalid index неверный Ð¸Ð½Ð´ÐµÐºÑ - + failed to delete %1 не удалоÑÑŒ удалить %1 - + failed to delete meta file for %1 не удалоÑÑŒ удалить мета-файл %1 - - - - - - + + + + + + invalid index %1 неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - + Please enter the nexus mod id ПожалуйÑта, введите ID мода на Nexus - + Mod ID: ID мода: - + Information updated Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð° - + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Ðет ÑоответÑтвующих модов на Nexus! Возможно фал был удален или переименован? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Ðет ÑоответÑтвующих фалов на Nexus. Выберите файл вручную. - + No download server available. Please try again later. Сервер недоÑтупен. Попробуйте позже. - + Failed to request file info from nexus: %1 Ðе удалоÑÑŒ получить информацию о файле: %1 - + Download failed: %1 (%2) Загрузка не удалаÑÑŒ: %1 (%2) - + failed to re-open %1 не удалоÑÑŒ повторно открыть %1 @@ -1013,7 +1013,7 @@ p, li { white-space: pre-wrap; } - + Extracting files Извлечение файлов @@ -1023,77 +1023,77 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ Ñоздать резервную копию - + Mod Name Ð˜Ð¼Ñ Ð¼Ð¾Ð´Ð° - + Name Ð˜Ð¼Ñ - + Invalid name ÐедопуÑтимое Ð¸Ð¼Ñ - + The name you entered is invalid, please enter a different one. Введенное вами Ð¸Ð¼Ñ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑтимо, пожалуйÑта введите другое. - + File format "%1" not supported Формат файла "%1" не поддерживаетÑÑ - + None of the available installer plugins were able to handle that archive Ðе один из доÑтупных плагинов-уÑтановщиков не Ñмог проÑмотреть Ñтот архив - + no error ошибки отÑутÑтвуют - + 7z.dll not found 7z.dll не найден - + 7z.dll isn't valid 7z.dll поврежден - + archive not found архив не найден - + failed to open archive не удалоÑÑŒ открыть архив - + unsupported archive type не поддерживаемый тип архива - + internal library error внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° библиотеки - + archive invalid архив поврежден - + unknown archive error неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° архива @@ -1145,23 +1145,23 @@ p, li { white-space: pre-wrap; } MainWindow - - + + Categories Категории - + Profile Профиль - + Pick a module collection Выберете набор модулей - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1176,54 +1176,54 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Обратите внимание, что порÑдок загрузки esp одинаков Ð´Ð»Ñ Ð²Ñех профилей.</span></p></body></html> - + Refresh list Обновить ÑпиÑок - + Refresh list. This is usually not necessary unless you modified data outside the program. Обновить ÑпиÑок. Обычно в Ñтом нет необходимоÑти, пока вы не измените данные вне программы. - + List of available mods. СпиÑок доÑтупных модов. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. Это ÑпиÑок уÑтановленных модов. ИÑпользуйте флажки, Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ/Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð¾Ð² и перетаÑкивание модов, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ… порÑдка уÑтановки. - + Filter Фильтр - + No groups Без группировки - + Nexus IDs Nexus IDs - - - + + + Namefilter Фильтр по имени - + Pick a program to run. Выберете программу Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1238,12 +1238,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете добавить новые инÑтрументы в Ñтот ÑпиÑок, но работоÑпоÑобноÑть их вÑех не гарантированна.</span></p></body></html> - + Run program ЗапуÑтить программу - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1256,17 +1256,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЗапуÑтить выбранную программу Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ ModOrganizer.</span></p></body></html> - + Run ЗапуÑтить - + Create a shortcut in your start menu or on the desktop to the specified program Создать Ñрлык Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð¹ программы, в меню ПуÑк или на рабочем Ñтоле. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1279,17 +1279,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Создает Ñрлык в меню ПуÑк, который запуÑкает выбранную программу Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼ MO.</span></p></body></html> - + Shortcut Ярлык - + List of available esp/esm files СпиÑок доÑтупных esp/esm файлов - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1302,12 +1302,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Этот ÑпиÑок Ñодержит esp и esm файлы активных модов. Ð”Ð»Ñ Ð½Ð¸Ñ… требуетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ð¹ порÑдок загрузки. ИÑпользуйте перетаÑкивание Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñдка загрузки. Обратите внимание, что MO Ñохранит порÑдок загрузки только Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸/проверенных модов.<br />СущеÑтвует Ð·Ð°Ð¼ÐµÑ‡Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð°, называющаÑÑÑ &quot;BOSS&quot; , ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки Ñортирует Ñти файлы.</span></p></body></html> - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. СпиÑок доÑтупных BSA. Они не отмечены здеÑÑŒ, не управлÑÑŽÑ‚ÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ MO и игнорируют порÑдок уÑтановки. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1318,18 +1318,18 @@ BSAs checked here are loaded in such a way that your installation order is obeye BSA, отмеченные здеÑÑŒ, загружаютÑÑ Ñ‚Ð°Ðº, чтобы порÑдок уÑтановки ÑоблюдалÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ‹Ð¼ образом. - - + + File Файл - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Мод @@ -1338,50 +1338,50 @@ BSA, отмеченные здеÑÑŒ, загружаютÑÑ Ñ‚Ð°Ðº, чтобы <html><head/><body><p>Помеченые архивы (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) вÑе еще загружаютÑÑ Ð² Skyrim, но <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">применÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¹</span></a> механизм: Отдельные файлы перезапиÑывают BSAs, вне завиÑимоÑти от приоритета мода/плагина.</p></body></html> - + Data Данные - + refresh data-directory overview обновить обзор каталога Data - + Refresh the overview. This may take a moment. Обновление обзора. Это может занÑть некоторое времÑ. - - - + + + Refresh Обновить - + This is an overview of your data directory as visible to the game (and tools). Это обзор вашего каталога данных так, как он будет видим игре (и инÑтрументам). - - + + Filter the above list so that only conflicts are displayed. Отфильтровать вышеприведенный ÑпиÑок так, чтобы отображалиÑÑŒ только конфликты. - + Show only conflicts Показать только конфликты - + Saves Ð¡Ð¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1398,160 +1398,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы выберете в контекÑтном меню пункт &quot;ИÑправить моды...&quot;, MO попытаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ вÑе моды и esp, чтобы иÑправить Ñти отÑутÑтвующие esp. Это ничего не отключит!</span></p></body></html> - + Downloads Загрузки - + This is a list of mods you downloaded from Nexus. Double click one to install it. СпиÑок модов, загруженных Ñ Nexus. Двойной клик Ð´Ð»Ñ ÑƒÑтановки. - + Compact Упаковать - + Show Hidden - + Tool Bar Панель инÑтрументов - + Install Mod УÑтановить мод - + Install &Mod УÑтановить &мод - + Install a new mod from an archive УÑтановить новый мод из архива - + Ctrl+M Ctrl+M - + Profiles Профили - + &Profiles &Профили - + Configure Profiles ÐаÑтройка профилей - + Ctrl+P Ctrl+P - + Executables Программы - + &Executables &Программы - + Configure the executables that can be started through Mod Organizer ÐаÑтройка программ, которые могут быть запущены через Mod Organizer - + Ctrl+E Ctrl+E - - + + Tools ИнÑтрументы - + &Tools &ИнÑтрументы - + Ctrl+I Ctrl+I - + Settings ÐаÑтройки - + &Settings &ÐаÑтройки - + Configure settings and workarounds ÐаÑтройка параметров и ÑпоÑобов обхода - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods ПоиÑк дополнительных модов на Nexus - + Ctrl+N Ctrl+N - - + + Update Обновление - + Mod Organizer is up-to-date Mod Organizer обновлен - - + + No Problems Проблем не обнаружено - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1562,256 +1562,256 @@ Right now this has very limited functionality ПрÑмо ÑÐµÐ¹Ñ‡Ð°Ñ Ñтот функционал Ñильно ограничен - - + + Help Справка - + Ctrl+H Ctrl+H - + Endorse MO Одобрить MO - - + + Endorse Mod Organizer Одобрить Mod Organizer - + Toolbar Панель инÑтрументов - + Desktop Рабочий Ñтол - + Start Menu Меню ПуÑк - + Problems Проблемы - + There are potential problems with your setup ЕÑть возможные проблемы Ñ Ð²Ð°ÑˆÐµÐ¹ уÑтановкой - + Everything seems to be in order КажетÑÑ Ð²ÑÑ‘ в порÑдке - + Help on UI Справка по интерфейÑу - + Documentation Wiki Wiki-Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ - + Report Issue Сообщить о проблеме - + Tutorials Уроки - + failed to save archives order, do you have write access to "%1"? не удалоÑÑŒ Ñохранить порÑдок архивов, у Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ð´Ð¾Ñтуп на запиÑÑŒ к "%1"? - + failed to save load order: %1 не удалоÑÑŒ Ñохранить порÑдок загрузки: %1 - + Name Ð˜Ð¼Ñ - + Please enter a name for the new profile Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + failed to create profile: %1 не удалоÑÑŒ Ñоздать профиль: %1 - + Show tutorial? Показать урок? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. Ð’Ñ‹ запуÑтили Mod Organizer впервые. Ð’Ñ‹ хотите проÑмотреть уроки по оÑновным возможноÑÑ‚Ñм? Ð’ Ñлучае отказа вы вÑегда можете открыть уроки из меню "Помощь". - + Downloads in progress Загрузки в процеÑÑе - + There are still downloads in progress, do you really want to quit? Загрузки вÑÑ‘ ещё в процеÑÑе, вы правда хотите выйти? - + failed to read savegame: %1 не удалоÑÑŒ прочеÑть Ñохранение: %1 - + Plugin "%1" failed: %2 Плагин "%1" не удалоÑÑŒ: %2 - + Plugin "%1" failed Плагин "%1" не удалоÑÑŒ - + failed to init plugin %1: %2 не удалоÑÑŒ инициализировать плагин %1: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" Ðе удалоÑÑŒ запуÑтить "%1" - + Waiting Ожидание - + Please press OK once you're logged into steam. Ðажмите OK как только вы войдете в Steam. - + "%1" not found "%1" не найден - + Start Steam? ЗапуÑтить Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? ТребуетÑÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ñ‹Ð¹ Steam, Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ запуÑка игры. Должен ли MO попытатьÑÑ Ð·Ð°Ð¿ÑƒÑтить Steam ÑейчаÑ? - + Also in: <br> Также в: <br> - + No conflict Конфликтов нет - + <Edit...> <Правка...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! Этот bsa подключен через ini, так что он может быть необходим! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Этот архив вÑе равно будет загружен, так как еÑть плагин Ñ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÐµÐ½Ð½Ñ‹Ð¼ названием, но его файлы не будут Ñледовать порÑдку уÑтановки! - + Activating Network Proxy Подключение Ñетевого прокÑи - - + + Installation successful УÑтановка завершена - - + + Configure Mod ÐаÑтройка мода - - + + This mod contains ini tweaks. Do you want to configure them now? Этот мод включает наÑтройки ini. Ð’Ñ‹ хотите наÑтроить их ÑейчаÑ? - - + + mod "%1" not found мод "%1" не найден - - + + Installation cancelled УÑтановка отменена - - + + The mod was not installed completely. Мод не был уÑтановлен полноÑтью. - + Some plugins could not be loaded Ðекоторые плагины не могут быть загружены @@ -1820,639 +1820,653 @@ Right now this has very limited functionality Следующие плагины не могут быть загружены. Причина может быть в отÑутÑтвующих завиÑимоÑÑ‚ÑÑ… (таких как python) или в уÑтаревшей верÑии:<ul> - + Too many esps and esms enabled - - + + Description missing - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - - - - + Choose Mod Выберете мод - + Mod Archive Ðрхив мода - + Start Tutorial? Ðачать обучение? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? Ð’Ñ‹ ÑобираетеÑÑŒ открыть обучение. По техничеÑким причинам будет невозможно доÑрочно закончить обучение. Продолжить? - - + + Download started Загрузка начата - + failed to update mod list: %1 не удалоÑÑŒ обновить ÑпиÑок модов: %1 - + failed to spawn notepad.exe: %1 не удалоÑÑŒ вызвать notepad.exe: %1 - + failed to open %1 не удалоÑÑŒ открыть %1 - + failed to change origin name: %1 не удалоÑÑŒ изменить оригинальное имÑ: %1 - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Checked> <Подключен> - + <Unchecked> <Отключен> - + <Update> <Обновлен> - + <No category> <Без категории> - + <Conflicted> <Конфликтует> - + <Not Endorsed> - + failed to rename mod: %1 не удалоÑÑŒ переименовать мод: %1 - + Overwrite? ПерезапиÑать? - + This will replace the existing mod "%1". Continue? Это заменит ÑущеÑтвующий мод "%1". Продолжить? - + failed to remove mod "%1" не удалоÑÑŒ удалить мод "%1" - - - + + + failed to rename "%1" to "%2" не удалоÑÑŒ переименовать "%1" в "%2" - + Multiple esps activated, please check that they don't conflict. Подключено неÑколько esp, выберете из них не конфликтующие. - - - + + + Confirm Подтверждение - + Remove the following mods?<br><ul>%1</ul> Удалить Ñледующие моды?<br><ul>%1</ul> - + failed to remove mod: %1 не удалоÑÑŒ удалить мод: %1 - + Failed Ðеудача - + Installation file no longer exists УÑтановочный файл больше не ÑущеÑтвует - + Mods installed with old versions of MO can't be reinstalled in this way. Моды, уÑтановленные Ñ Ð¸Ñпользованием Ñтарых верÑий MO не могут быть переÑтановленны таким образом. - - + + You need to be logged in with Nexus to endorse Ð’Ñ‹ должны быть авторизированы на Nexus, чтобы одобрÑть. - - + + Extract BSA Извлечь BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Этот мод включает как минимум один BSA. Ð’Ñ‹ хотите раÑпаковать их? (Это удалит BSA поÑле завершениÑ. ЕÑли вы не знаете ничего о BSAs, проÑто откажитеÑÑŒ) - - - + + + failed to read %1: %2 не удалоÑÑŒ прочеÑть %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Ðрхив Ñодержит неверные хеши. Ðекоторые файлы могут быть иÑпорчены. - + Nexus ID for this Mod is unknown Nexus ID Ð´Ð»Ñ Ñтого мода неизвеÑтен - - + + Create Mod... Создать мод... - This will move all files from overwrite into a new, regular mod. Please enter a name: - Это перемеÑтит вÑе файлы от перезапиÑи в новый, отдельный мод. + Это перемеÑтит вÑе файлы от перезапиÑи в новый, отдельный мод. ПожалуйÑта, введите имÑ: - + A mod with this name already exists Мод Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? ДейÑтвительно подключить вÑе видимые моды? - + Really disable all visible mods? ДейÑтвительно отключить вÑе видимые моды? - + Choose what to export Выберете, что ÑкÑпортировать - + Everything Ð’ÑÑ‘ - + All installed mods are included in the list Ð’Ñе уÑтановленные моды, включенные в ÑпиÑок - + Active Mods Ðктивные моды - + Only active (checked) mods from your current profile are included Включены вÑе активные (подключенные) моды вашего текущего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + Visible Видимые - + All mods visible in the mod list are included Включены вÑе моды, видимые в ÑпиÑке модов - + export failed: %1 ÑкÑпорт не удалÑÑ: %1 - + Install Mod... УÑтановить мод... - + Enable all visible Включить вÑе видимые - + Disable all visible Отключить вÑе видимые - + Check all for update Проверить вÑе на Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ - + Export to csv... ЭкÑпорт в csv... - + Sync to Mods... Синхронизировать Ñ Ð¼Ð¾Ð´Ð°Ð¼Ð¸... - + Restore Backup ВоÑÑтановить из резервной копии - + Remove Backup... Удалить резервную копию... - Set Category - Задать категорию + Задать категорию - + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + + + + + Add/Remove Categories + + + + + Replace Categories + + + + Primary Category ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Переименовать мод... - + Remove Mod... Удалить мод... - + Reinstall Mod ПереуÑтановить мод - + Un-Endorse Отменить одобрение - - + + Endorse Одобрить - + Won't endorse Ðе одобрÑть - + Endorsement state unknown Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтен - + Ignore missing data Игнорировать отÑутÑтвующие данные - + Visit on Nexus Перейти на Nexus - + Open in explorer Открыть в проводнике - + Information... ИнформациÑ... - - + + Exception: ИÑключение: - - + + Unknown exception ÐеизвеÑтное иÑключение - + <All> <Ð’Ñе> - + <Multiple> <ÐеÑколько> - + Fix Mods... ИÑправить моды... - - + + failed to remove %1 не удалоÑÑŒ удалить %1 - - + + failed to create %1 не удалоÑÑŒ Ñоздать %1 - + Can't change download directory while downloads are in progress! ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº, когда загрузки ещё не завершены! - + Download failed Загрузка не удалаÑÑŒ - + failed to write to file %1 ошибка запиÑи в файл %1 - + %1 written %1 запиÑан - + Select binary Выбрать иÑполнÑемый файл - + Binary ИÑполнÑемый файл - + Enter Name Введите Ð¸Ð¼Ñ - + Please enter a name for the executable Введите название Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ - + Not an executable Ðе ÑвлÑетÑÑ Ð¸ÑполнÑемым - + This is not a recognized executable. Это неверный иÑполнÑемый файл. - - + + Replace file? Заменить файл? - + There already is a hidden version of this file. Replace it? Уже ÑущеÑтвует ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла. Заменить? - - + + File operation failed ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ не удалаÑÑŒ - - + + Failed to remove "%1". Maybe you lack the required file permissions? Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? - + There already is a visible version of this file. Replace it? Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - + Update available ДоÑтупно обновление - + Open/Execute Открыть/Выполнить - + Add as Executable Добавить как иÑполнÑемый - + Un-Hide Показать - + Hide Скрыть - + Write To File... ЗапиÑать в файл... - + Do you want to endorse Mod Organizer on %1 now? Ð’Ñ‹ хотите одобрить Mod Organizer на %1 ÑейчаÑ? - + Request to Nexus failed: %1 Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Nexus не удалÑÑ: %1 - - + + login successful уÑпешный вход - + login failed: %1. Trying to download anyway вход не удалÑÑ: %1. ПытаюÑÑŒ загрузить вÑÑ‘ равно - + login failed: %1 войти не удалоÑÑŒ: %1 - + login failed: %1. You need to log-in with Nexus to update MO. войти не удалоÑÑŒ: %1. Вам нужно войти на Nexus, чтобы обновить MO. - + Error Ошибка - + failed to extract %1 (errorcode %2) не удалоÑÑŒ извлечь %1 (код ошибки %2) - + Extract... РаÑпаковка... - + Edit Categories... Изменить категории... - + Remove - + Enable all Включить вÑе - + Disable all Отключить вÑе - + Unlock load order Разблокировать порÑдок загрузки - + Lock load order Заблокировать порÑдок загрузки @@ -2478,7 +2492,7 @@ This function will guess the versioning scheme under the assumption that the ins ModInfoBackup - + This is the backup of a mod Это Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð¾Ð´Ð° @@ -2559,13 +2573,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок вÑех изображений (.jpg и .png) в каталоге мода, таких как Ñкриншоты и Ñ‚.п. Ðажмите на любое, Ð´Ð»Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ.</span></p></body></html> - - + + Optional ESPs Дополнительный ESP - + List of esps and esms that can not be loaded by the game. СпиÑок esp и esm, которые не могут быть загружены игрой. @@ -2593,7 +2607,7 @@ p, li { white-space: pre-wrap; } - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2601,103 +2615,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. Сделать выбранный мод недоÑтупным. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. Выбранный ESP (в нижнем ÑпиÑке) будет перемещены в подкаталог мода и, таким образом, Ñтанут "невидимыми" Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. Затем они больше не будут активированы. - + Move a file to the data directory. ПеремеÑтить файл в каталог Data. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Перемещает esp в каталог Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ esp так, что он может быть подключен в главном окне. Обратите внимание, что ESP проÑто ÑтановитÑÑ "доÑтупным", но не будет загружен! Это наÑтраиваетÑÑ Ð² главном окне MO. - + ESPs in the data directory and thus visible to the game. ESP в каталоге Data и виден Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Это файлы модов которые находÑÑ‚ÑÑ Ð² (виртуальном)каталоге данных вашей игры и могут быть выбираемыми в ÑпиÑке esp, в главном окне. - + Available ESPs ДоÑтупные ESP - + Conflicts Конфликты - + The following conflicted files are provided by this mod Данные конфликты вызваны Ñтим модом. - - + + File Файл - + Overwritten Mods Моды перезапиÑаны - + The following conflicted files are provided by other mods Конфликтные файлы других модов. - + Providing Mod ОбеÑпечение мода - + Non-Conflicted files Ðе конфликтные файлы - + Categories Категории - + Primary Category ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Nexus Info Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Nexus. - + Mod ID ID мода - + Mod ID for this mod on Nexus. ID мода на Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2710,7 +2724,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ñтого мода на Nexus. ЗаполнÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, еÑли Ñкачали и уÑтановили мод из МО. Ð’ противном Ñлучае вы можете ввеÑти его вручную. Чтобы найти правильный ID, нужно найти мод на Nexus. URL будет выглÑдеть Ñледующим образом: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. Ð’ Ñтом примере, 1334 - ID, который вы ищете. Кроме того: Выше еÑть ÑÑылка на Mod Organizer на Nexus. Почему бы не перейти по ней и не одобрить?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2723,34 +2737,46 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¼Ð¾Ð´Ð°. ПодÑказка будет Ñодержать текущую верÑию, доÑтупную на Nexus. УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÑƒÑтановитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли вы уÑтановили мод через МО.</span></p></body></html> - + Version ВерÑÐ¸Ñ - + Refresh Обновить информацию - + Refresh all information from Nexus. Обновить вÑÑŽ информацию Ñ Nexus - + Description ОпиÑание - + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -2758,27 +2784,27 @@ p, li { white-space: pre-wrap; } <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - + Endorse Одобрить - + Notes ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ - + Filetree Файловое древо - + A directory view of this mod Каталог Ñтого мода - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2793,17 +2819,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸ÑходÑÑ‚ непоÑредÑтвенно на диÑке, так что</span><span style=" font-size:8pt; font-weight:600;"> будьте оÑторожныl</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous Предыдущий - + Next Вперед - + Close Закрыть @@ -3036,7 +3062,7 @@ p, li { white-space: pre-wrap; } ModInfoOverwrite - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) Этот пÑевдо-мод Ñодержит файлы из виртуального древа данных, которые были изменены (в Construction Kit и других программах) @@ -3053,12 +3079,12 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ запиÑать %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 не Ñодержит ни esp/esm, ни папок реÑурÑов (textures, meshes, interface, ...) - + Categories: <br> Категории: <br> @@ -3110,118 +3136,118 @@ p, li { white-space: pre-wrap; } Избыточные - + invalid неверные - + installed version: %1, newest version: %2 уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ: %1, Ð½Ð¾Ð²ÐµÐ¹ÑˆÐ°Ñ Ð²ÐµÑ€ÑиÑ: %2 - + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". - + Categories: <br> Категории: <br> - + Invalid name ÐедопуÑтимое Ð¸Ð¼Ñ - + drag&drop failed: %1 перетаÑкивание не удалоÑÑŒ: %1 - + Confirm Подтверждение - + Are you sure you want to remove "%1"? Ð’Ñ‹ дейÑтвительно хотите удалить "%1"? - + Flags Флаги - + Mod Name Ð˜Ð¼Ñ Ð¼Ð¾Ð´Ð° - + Version ВерÑÐ¸Ñ - + Priority Приоритет - + Category ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Nexus ID Nexus ID - + Installation УÑтановка - - + + unknown неизвеÑтный - + Name of your mods Ð˜Ð¼Ñ Ð²Ð°ÑˆÐ¸Ñ… модов - + Version of the mod (if available) ВерÑÐ¸Ñ Ð¼Ð¾Ð´Ð° (еÑли доÑтупно) - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Приоритет уÑтановки Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… модов. Файлы модов Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ приоритетом перезапишут файлы модов Ñ Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ приоритетом. - + Category of the mod. ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¼Ð¾Ð´Ð°. - + Id of the mod as used on Nexus. ID мода, иÑпользуемый на Nexus. - + Emblemes to highlight things that might require attention. ВыделÑет подÑветкой вещи, которые могут потребовать вниманиÑ. - + Time this mod was installed ВремÑ, когда мод был уÑтановлен. @@ -3278,12 +3304,12 @@ p, li { white-space: pre-wrap; } Ðе удалоÑÑŒ опознать id мода "%1", пожалуйÑта, выберете правильный - + empty response пуÑтой ответ - + invalid response неверный ответ @@ -3392,69 +3418,69 @@ p, li { white-space: pre-wrap; } Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° определÑющий id форм объектов, проиÑходÑщих из Ñтих модов. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 esp не найден: %1 - - + + Confirm - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken Файл, Ñодержащий индекÑÑ‹ заблокированного плагина, не работает. - - + + failed to open output file: %1 не удалоÑÑŒ открыть выходной файл: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. Ðекоторые из ваших плагинов имеют неверные имена. Эти плагины не могут быть загружены игрой. Смотрите mo_interface.log Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑпиÑка таких плагинов и переименуйте их. - + This plugin can't be disabled (enforced by the game) Этот плагин не может быть отключен (грузитÑÑ Ð¸Ð³Ñ€Ð¾Ð¹ принудительно) - + Origin: %1 ИÑточник: %1 - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 не удалоÑÑŒ воÑÑтановить порÑдок загрузки Ð´Ð»Ñ %1 @@ -3471,12 +3497,12 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> @@ -3827,20 +3853,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories Ðе удалоÑÑŒ Ñохранить пользовательÑкие категории - - - - + + + + invalid index %1 неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - + invalid category id %1 неверный id категории %1 @@ -4002,7 +4028,7 @@ p, li { white-space: pre-wrap; } - + Mod Organizer Mod Organizer @@ -4028,23 +4054,23 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements ИÑпользуйте пункт "Справка" на панели инÑтрументов, чтобы получить инÑтрукции по иÑпользованию вÑех Ñлементов. - - + + <Manage...> <УправлÑть...> - + failed to parse profile %1: %2 не удалоÑÑŒ обработать профиль %1: %2 - + failed to find "%1" не удалоÑÑŒ найти "%1" @@ -4054,12 +4080,12 @@ p, li { white-space: pre-wrap; } ошибка кодированиÑ, пожалуйÑта Ñообщите об Ñтом баге, включив файл mo_interface.log! - + failed to access %1 не удалоÑÑŒ получить доÑтуп к %1 - + failed to set file time %1 не удалоÑÑŒ изменить дату модификации Ð´Ð»Ñ %1 @@ -4097,12 +4123,12 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ открыть %1 - + Script Extender Script Extender - + Proxy DLL Proxy DLL @@ -4360,12 +4386,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe не найдено файла Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ. ПожалуйÑта, обновите вручную. - + Failed to retrieve update information: %1 Ðе удалоÑÑŒ получить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± обновлении: %1 - + No download server available. Please try again later. Ðет доÑтупных Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ Ñерверов. ПожалуйÑта, попробуйте позже. @@ -4381,18 +4407,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð½Ð°Ñтройка "%1" запрошена Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð° "%2" - - + + attempt to store setting for unknown plugin "%1" - + Confirm Подтверждение - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? Изменение каталога Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¾Ð² отразитÑÑ Ð½Ð° вÑех ваших профилÑÑ…. ÐÐµÐ»ÑŒÐ·Ñ Ð±ÑƒÐ´ÐµÑ‚ отменить Ñто, еÑли только вы не Ñохранили резервные копии ваших профилей вручную. Продолжить? @@ -4919,9 +4945,13 @@ For the other games this is not a sufficient replacement for AI! TransferSavesDialog - Dialog - Диалог + Диалог + + + + Transfer Savegames + @@ -4941,9 +4971,17 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves - СпиÑок перÑонажей в общем меÑтораÑположении. + This is a list of characters in the global location. + +On Windows Vista/Windows 7: + C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +On Windows XP: + C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + + СпиÑок перÑонажей в общем меÑтораÑположении. Ðа Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves diff --git a/src/organizer_tr.ts b/src/organizer_tr.ts index 92e0b7b9..5d21e51e 100644 --- a/src/organizer_tr.ts +++ b/src/organizer_tr.ts @@ -549,75 +549,75 @@ p, li { white-space: pre-wrap; } "%1"yi "%2" olarak yeniden adlandırma baÅŸarılı olamadı. - + Download again? Tekrar indir? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Aynı dosya isminde bir dosya zaten indirilmiÅŸ. Tekrar indirmek istiyor musunuz? Yeni dosya farklı bir isim alacak. - + failed to download %1: could not open output file: %2 %1 indirilemedi : : çıkış dosyası %2 açılamadı - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + invalid index geçersiz dizin - + failed to delete %1 %1 silinemedi - + failed to delete meta file for %1 %1'in meta dosyası silinemedi - - - - - - + + + + + + invalid index %1 geçeriz dizin %1 - + Please enter the nexus mod id Lütfen nexus mod kimliÄŸini girin - + Mod ID: Mod kimliÄŸi: @@ -626,38 +626,38 @@ p, li { white-space: pre-wrap; } geçersiz alfabetik dizin %1 - + Information updated bilgi güncellendi - + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Nexus'ta uyan bir dosya bulunamadı! Dosya artık mevcut olmayabilir yada yeniden adlandırılmış olabilir! - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Nexus'ta seçili dosyaya isim olarak uyan dosya bulunamadı. Lütfen el ile doÄŸru olanı seçin. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Nexus'tan dosya bilgisi istenilemedi: %1 - + Download failed: %1 (%2) İndirme baÅŸarızı: %1 (%2) - + failed to re-open %1 %1 tekrar açılamadı @@ -1136,7 +1136,7 @@ p, li { white-space: pre-wrap; } - + Extracting files Dosyalar çıkarılıyor @@ -1171,7 +1171,7 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! yükleme baÅŸarısız (hatakodu %1) - + File format "%1" not supported Dosya formatı "%1" desteklenmiyor. @@ -1190,22 +1190,22 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! - + Mod Name - + Name İsim - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1222,52 +1222,52 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! Lüttfen NCC'yi yükleyiniz. - + None of the available installer plugins were able to handle that archive - + no error hata yok - + 7z.dll not found 7z.dll bulunamadı - + 7z.dll isn't valid 7z.dll geçerli deÄŸil - + archive not found arÅŸiv bulunamadı - + failed to open archive arÅŸiv açılamadı - + unsupported archive type desteklenmeyen arÅŸiv türü - + internal library error içsel kütüphane hatası - + archive invalid arÅŸiv geçersiz - + unknown archive error bilinmeyen arÅŸiv hatası @@ -1319,23 +1319,23 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! MainWindow - - + + Categories Kategoriler - + Profile - + Pick a module collection - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1345,54 +1345,54 @@ p, li { white-space: pre-wrap; } - + Refresh list - + Refresh list. This is usually not necessary unless you modified data outside the program. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter - + No groups - + Nexus IDs Nexus kimliÄŸi - - - + + + Namefilter - + Pick a program to run. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1402,12 +1402,12 @@ p, li { white-space: pre-wrap; } - + Run program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1416,17 +1416,17 @@ p, li { white-space: pre-wrap; } - + Run - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1435,7 +1435,7 @@ p, li { white-space: pre-wrap; } - + Shortcut @@ -1444,12 +1444,12 @@ p, li { white-space: pre-wrap; } Kaydet - + List of available esp/esm files - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1458,12 +1458,12 @@ p, li { white-space: pre-wrap; } - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1471,66 +1471,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data - + refresh data-directory overview - + Refresh the overview. This may take a moment. - - - + + + Refresh - + This is an overview of your data directory as visible to the game (and tools). - - + + Filter the above list so that only conflicts are displayed. - + Show only conflicts - + Saves - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1541,160 +1541,160 @@ p, li { white-space: pre-wrap; } - + Downloads - + This is a list of mods you downloaded from Nexus. Double click one to install it. - + Compact - + Show Hidden - + Tool Bar - + Install Mod - + Install &Mod - + Install a new mod from an archive - + Ctrl+M - + Profiles - + &Profiles - + Configure Profiles - + Ctrl+P - + Executables - + &Executables - + Configure the executables that can be started through Mod Organizer - + Ctrl+E - - + + Tools - + &Tools - + Ctrl+I - + Settings - + &Settings - + Configure settings and workarounds - + Ctrl+S - + Nexus - + Search nexus network for more mods - + Ctrl+N - - + + Update - + Mod Organizer is up-to-date - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1702,891 +1702,896 @@ Right now this has very limited functionality - - + + Help - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 - + failed to save archives order, do you have write access to "%1"? - + Name İsim - + Please enter a name for the new profile - + failed to create profile: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress - + There are still downloads in progress, do you really want to quit? - + failed to read savegame: %1 - + Plugin "%1" failed: %2 - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - + "%1" not found - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict - + <Edit...> - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful - - + + Configure Mod - - + + This mod contains ini tweaks. Do you want to configure them now? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + Choose Mod - + Mod Archive - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started - + failed to update mod list: %1 - + failed to spawn notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - + A mod with this name already exists - + <All> - + <Checked> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to refresh list of esps: %s - + Too many esps and esms enabled - - + + Description missing - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - - - - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> - + <Update> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" "%1"yi "%2" olarak yeniden adlandırma baÅŸarılı olamadı. - - - + + + Confirm Onayla - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 %1: %2 okunamadı - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown - + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + + + + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... - + Enable all visible - + Disable all visible - + Check all for update - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - - Set Category - - - - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... - + Remove Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Fix Mods... - - + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 - + %1 written - + Select binary - + Binary İkili deÄŸer - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available - + Open/Execute - + Add as Executable - + Un-Hide - + Hide - + Write To File... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + Add/Remove Categories + + + + + Replace Categories + + + + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2620,7 +2625,7 @@ This function will guess the versioning scheme under the assumption that the ins ModInfoBackup - + This is the backup of a mod @@ -2701,13 +2706,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Bu mod klasöründe yer alan ekran resimleri ve benzeri resimlerin(.jpg ve.png) bir listesidir. Tıklayararak daha büyük görüntü alabilirsiniz</span></p></body></html> - - + + Optional ESPs İsteÄŸe baÄŸlı ESP'ler - + List of esps and esms that can not be loaded by the game. Oyun tarafından yüklenemeyen espler ve esmlerin bir listesi. @@ -2735,7 +2740,7 @@ p, li { white-space: pre-wrap; } - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2743,103 +2748,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. AÅŸağıdaki listedeki seçili modu kullanılamaz yapar. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. Seçili esp (aÅŸağıdaki listede) modun bir alt klasörüne itilecek ve böylece oyuna "görünmez" olacaktır. Artık aktif hale getirilemez. - + Move a file to the data directory. Dosyayı veri klasörüne taşı. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. - + ESPs in the data directory and thus visible to the game. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. - + Available ESPs - + Conflicts - + The following conflicted files are provided by this mod - - + + File - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Kategoriler - + Primary Category - + Nexus Info - + Mod ID - + Mod ID for this mod on Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2848,7 +2853,7 @@ p, li { white-space: pre-wrap; } - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2857,33 +2862,32 @@ p, li { white-space: pre-wrap; } - + Version Versiyon - + Refresh - + Refresh all information from Nexus. - + Description - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> @@ -2892,27 +2896,27 @@ p, li { white-space: pre-wrap; } İsim - + Endorse - + Notes - + Filetree - + A directory view of this mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2922,17 +2926,17 @@ p, li { white-space: pre-wrap; } - + Previous - + Next Sonraki - + Close Kapat @@ -3160,7 +3164,7 @@ p, li { white-space: pre-wrap; } ModInfoOverwrite - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) @@ -3173,12 +3177,12 @@ p, li { white-space: pre-wrap; } - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory - + Categories: <br> @@ -3186,7 +3190,7 @@ p, li { white-space: pre-wrap; } ModList - + Confirm Onayla @@ -3231,27 +3235,27 @@ p, li { white-space: pre-wrap; } - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. - + Categories: <br> - + installed version: %1, newest version: %2 @@ -3260,88 +3264,88 @@ p, li { white-space: pre-wrap; } İsim - + Version Versiyon - + Version of the mod (if available) - + Priority - + invalid - + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". - + Invalid name - + drag&drop failed: %1 - + Flags - + Mod Name - + Category - + Nexus ID - + Installation - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. - + Time this mod was installed - + Are you sure you want to remove "%1"? @@ -3398,12 +3402,12 @@ p, li { white-space: pre-wrap; } - + empty response - + invalid response @@ -3502,69 +3506,69 @@ p, li { white-space: pre-wrap; } - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - - + + Confirm Onayla - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 - + This plugin can't be disabled (enforced by the game) - + Origin: %1 @@ -3591,12 +3595,12 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -3922,20 +3926,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories - - - - + + + + invalid index %1 - + invalid category id %1 @@ -4053,7 +4057,7 @@ p, li { white-space: pre-wrap; } - + Mod Organizer @@ -4079,34 +4083,34 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements - - + + <Manage...> - + failed to parse profile %1: %2 - + failed to find "%1" - + failed to access %1 - + failed to set file time %1 @@ -4139,12 +4143,12 @@ p, li { white-space: pre-wrap; } - + Script Extender - + Proxy DLL @@ -4435,12 +4439,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + No download server available. Please try again later. - + Failed to retrieve update information: %1 @@ -4448,18 +4452,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - + + attempt to store setting for unknown plugin "%1" - + Confirm Onayla - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -4954,7 +4958,7 @@ For the other games this is not a sufficient replacement for AI! TransferSavesDialog - Dialog + Transfer Savegames @@ -4975,8 +4979,16 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves + This is a list of characters in the global location. + +On Windows Vista/Windows 7: + C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +On Windows XP: + C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + diff --git a/src/organizer_zh_CN.ts b/src/organizer_zh_CN.ts index 74918970..e715f9d9 100644 --- a/src/organizer_zh_CN.ts +++ b/src/organizer_zh_CN.ts @@ -548,75 +548,75 @@ p, li { white-space: pre-wrap; } é‡å‘½å "%1 "为 "%2" 时出错 - + Download again? 釿–°ä¸‹è½½ï¼Ÿ - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. 已存在åŒå文件。您确定è¦é‡æ–°ä¸‹è½½ï¼Ÿæ–°æ–‡ä»¶å°†ä½¿ç”¨ä¸åŒçš„æ–‡ä»¶å。 - + failed to download %1: could not open output file: %2 下载 %1 失败: 无法打开输出文件: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + invalid index 无效的索引 - + failed to delete %1 无法删除 %1 - + failed to delete meta file for %1 无法从 %1 中删除 mate 文件 - - - - - - + + + + + + invalid index %1 无效的索引 %1 - + Please enter the nexus mod id 请输入N网 Mod ID - + Mod ID: Mod ID: @@ -625,38 +625,38 @@ p, li { white-space: pre-wrap; } 无效的字顺索引 %1 - + Information updated ä¿¡æ¯å·²æ›´æ–° - + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? 无法在N网上找到匹é…的文件ï¼ä¹Ÿè®¸è¿™ä¸ªæ–‡ä»¶å·²ç»ä¸å­˜åœ¨äº†æˆ–是它改å了? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. 所选的文件无法在N网上找到å¯åŒ¹é…的项目,请手动选择正确的一个。 - + No download server available. Please try again later. 没有å¯ç”¨çš„下载æœåŠ¡å™¨ï¼Œè¯·ç¨åŽå†å°è¯•下载。 - + Failed to request file info from nexus: %1 无法从N网上请求文件信æ¯: %1 - + Download failed: %1 (%2) 下载失败: %1 (%2) - + failed to re-open %1 æ— æ³•é‡æ–°æ‰“å¼€ %1 @@ -1133,7 +1133,7 @@ p, li { white-space: pre-wrap; } - + Extracting files 正在解压文件 @@ -1168,7 +1168,7 @@ Note: This installer will not be aware of other installed mods! 安装失败 (é”™è¯¯ä»£ç  %1) - + File format "%1" not supported æš‚ä¸æ”¯æŒæ–‡ä»¶æ ¼å¼: "%1" @@ -1187,22 +1187,22 @@ Note: This installer will not be aware of other installed mods! - + Mod Name - + Name åç§° - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1219,52 +1219,52 @@ Note: This installer will not be aware of other installed mods! 请安装 NCC - + None of the available installer plugins were able to handle that archive - + no error 没有错误 - + 7z.dll not found 未找到 7z.dll - + 7z.dll isn't valid 无效的 7z.dll - + archive not found 未找到压缩包 - + failed to open archive 无法打开压缩包 - + unsupported archive type 䏿”¯æŒçš„压缩包类型 - + internal library error 内部库错误 - + archive invalid 无效的压缩包 - + unknown archive error 未知压缩包错误 @@ -1316,23 +1316,23 @@ Note: This installer will not be aware of other installed mods! MainWindow - - + + Categories - + Profile é…置文件 - + Pick a module collection 选择一个é…置文件 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1347,44 +1347,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">请注æ„: 当剿‚¨çš„é…置文件的 esp 加载顺åºå¹¶ä¸æ˜¯åˆ†å¼€ä¿å­˜çš„。</span></p></body></html> - + Refresh list 刷新列表 - + Refresh list. This is usually not necessary unless you modified data outside the program. åˆ·æ–°åˆ—è¡¨ï¼Œè¿™é€šå¸¸ä¸æ˜¯å¿…é¡»çš„ï¼Œé™¤éžæ‚¨åœ¨ç¨‹åºä¹‹å¤–修改了文件的数æ®ã€‚ - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter 过滤器 - + No groups - + Nexus IDs N网 ID - - - + + + Namefilter @@ -1393,12 +1393,12 @@ p, li { white-space: pre-wrap; } 开始 - + Pick a program to run. 选择è¦è¿è¡Œçš„程åºã€‚ - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1413,12 +1413,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">您å¯ä»¥æ·»åŠ æ–°çš„å·¥å…·åˆ°æ­¤åˆ—è¡¨ä¸­ï¼Œä½†æˆ‘ä¸èƒ½ä¿è¯ä¸€äº›æˆ‘没有测试过的工具能够正常工作。</span></p></body></html> - + Run program è¿è¡Œç¨‹åº - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1431,17 +1431,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">在 Mod Organizer å¯ç”¨çš„状æ€ä¸‹è¿è¡ŒæŒ‡å®šçš„程åºã€‚</span></p></body></html> - + Run è¿è¡Œ - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1454,7 +1454,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">创建一个开始èœå•å¿«æ·æ–¹å¼ï¼Œä½¿æ‚¨å¯ä»¥ç›´æŽ¥åœ¨ MO 激活状æ€ä¸‹è¿è¡ŒæŒ‡å®šçš„程åºã€‚</span></p></body></html> - + Shortcut @@ -1479,12 +1479,12 @@ p, li { white-space: pre-wrap; } ä¿å­˜ - + List of available esp/esm files å¯ç”¨ esp 或 esm 文件的列表 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1501,12 +1501,12 @@ p, li { white-space: pre-wrap; } é‡è¦: 您å¯ä»¥åœ¨è¿™é‡Œæ›´æ”¹ BSA 的顺åºï¼Œä¸è¿‡ Mod 的安装顺åºä¼šä¼˜å…ˆäºŽè¿™é‡Œçš„è®¾ç½®ï¼ - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. å¯ç”¨ BSA 文件的列表。未勾选的项目ä¸ä¼šè¢« MO 管ç†å¹¶ä¸”会忽略安装顺åºã€‚ - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1517,66 +1517,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye 这里勾选的 BSA 将会ä¾ä»Žæ‚¨çš„安装顺åºï¼Œå¹¶ä¸”会自行调整加载顺åºã€‚ - - + + File 文件 - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Data - + refresh data-directory overview 刷新 Data 目录总览 - + Refresh the overview. This may take a moment. 刷新总览,这å¯èƒ½éœ€è¦ä¸€äº›æ—¶é—´ã€‚ - - - + + + Refresh 刷新 - + This is an overview of your data directory as visible to the game (and tools). 这是在游æˆä¸­å¯è§çš„ Data 目录 (和工具) 的总览。 - - + + Filter the above list so that only conflicts are displayed. 过滤上é¢çš„列表,使您åªèƒ½çœ‹åˆ°æœ‰å†²çªçš„æ–‡ä»¶ã€‚ - + Show only conflicts åªæ˜¾ç¤ºå†²çª - + Saves 存档 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1593,160 +1593,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">如果您在å³é”®èœå•ä¸­ç‚¹å‡»â€œä¿®å¤ Modâ€ï¼Œé‚£ä¹ˆ MO 便会å°è¯•激活所有 Mod å’Œ esp æ¥ä¿®å¤é‚£äº›ç¼ºå¤±çš„ esp,它并ä¸ä¼šç¦ç”¨ä»»ä½•东西ï¼</span></p></body></html> - + Downloads 下载 - + This is a list of mods you downloaded from Nexus. Double click one to install it. 这是当å‰å·²ä¸‹è½½çš„ Mod 的列表,åŒå‡»è¿›è¡Œå®‰è£…。 - + Compact 紧凑 - + Show Hidden - + Tool Bar å·¥å…·æ  - + Install Mod 安装 Mod - + Install &Mod 安装 &Mod - + Install a new mod from an archive 通过压缩包æ¥å®‰è£…一个新 Mod - + Ctrl+M Ctrl+M - + Profiles é…置文件 - + &Profiles &é…置文件 - + Configure Profiles 设置é…置文件 - + Ctrl+P Ctrl+P - + Executables 坿‰§è¡Œç¨‹åº - + &Executables &坿‰§è¡Œç¨‹åº - + Configure the executables that can be started through Mod Organizer é…ç½®å¯é€šè¿‡ MO æ¥å¯åŠ¨çš„ç¨‹åº - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings 设置 - + &Settings &设置 - + Configure settings and workarounds é…置设定和解决方案 - + Ctrl+S Ctrl+S - + Nexus N网 - + Search nexus network for more mods æœç´¢Nç½‘ä»¥èŽ·å–æ›´å¤š Mod - + Ctrl+N Ctrl+N - - + + Update æ›´æ–° - + Mod Organizer is up-to-date Mod Organizer 现在是最新版本 - - + + No Problems 没有问题 - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1757,54 +1757,54 @@ Right now this has very limited functionality 当剿­¤åŠŸèƒ½æ‰€èƒ½æä¾›çš„项目éžå¸¸æœ‰é™ - - + + Help 帮助 - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems 问题 - + There are potential problems with your setup 您的安装中存在潜在的问题 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1821,22 +1821,22 @@ Right now this has very limited functionality <li>.Net 未安装或版本过旧。想è¦è¿è¡Œ NCC 您必须先安装 .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­èŽ·å–: <a href="%1">%1</a></li> - + Help on UI 界é¢å¸®åŠ© - + Documentation Wiki 说明文档 (维基) - + Report Issue 报告问题 - + Tutorials @@ -1845,431 +1845,425 @@ Right now this has very limited functionality 无法ä¿å­˜åŠ è½½é¡ºåº - + failed to save load order: %1 无法ä¿å­˜åŠ è½½é¡ºåº: %1 - + failed to save archives order, do you have write access to "%1"? 无法ä¿å­˜æ¡£æ¡ˆé¡ºåºï¼Œæ‚¨ç¡®å®šæ‚¨æœ‰æƒé™æ›´æ”¹ "%1"? - + Name åç§° - + Please enter a name for the new profile - + failed to create profile: %1 无法创建é…置文件: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下载 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨è¿›è¡Œä¸­çš„下载,您确定è¦é€€å‡ºå—? - + failed to read savegame: %1 无法读å–存档: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" 无法å¯åЍ "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 当您登录 Steam 时请点击确定。 - + "%1" not found "%1" 未找到 - + Start Steam? å¯åЍ Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¡®åœ°å¯åŠ¨éŠæˆ²ï¼ŒSteam 必须处于è¿è¡Œçжæ€ã€‚MO è¦ç«‹å³å¯åЍ Steam å—? - + Also in: <br> 也在: <br> - + No conflict æ²¡æœ‰å†²çª - + <Edit...> <编辑...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! 该 BSA 已在 Ini 文件中å¯ç”¨ï¼Œå› æ­¤å®ƒå¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此档案还是会被加载,因为存在åŒåæ’件。ä¸è¿‡å®ƒæ‰€åŒ…å«çš„的文件ä¸ä¼šéµå¾ªå®‰è£…顺åºï¼ - + Activating Network Proxy - - + + Installation successful 安装æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 设定文件,您想现在就对它们进行é…ç½®å—? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled å®‰è£…å·²å–æ¶ˆ - - + + The mod was not installed completely. Mod 没有完全安装。 - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + Choose Mod 选择 Mod - + Mod Archive Mod 压缩包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 开始下载 - + failed to update mod list: %1 无法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 æ— æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 无法打开 %1 - + failed to change origin name: %1 无法更改原始文件å: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <全部> - + <Checked> <已勾选> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - - - - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <未勾选> - + <Update> <有更新> - + <No category> <无类别> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 无法é‡å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm 确认 - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 无法移动 Mod: %1 - + Failed 失败 - + Installation file no longer exists 安装文件ä¸å¤å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 旧版 MO 安装的 Mod æ— æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£…。 - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解压 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€ä¸ª BSA。您确定è¦è§£åŽ‹å—? (解压完æˆåŽï¼ŒBSA 文件将会被删除。如果您ä¸äº†è§£ BSA çš„è¯ï¼Œè¯·é€‰æ‹©â€œå¦â€) - - - + + + failed to read %1: %2 æ— æ³•è¯»å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 压缩包 Hash 值错误。部分文件å¯èƒ½å·²ç»æŸå。 - + Nexus ID for this Mod is unknown æ­¤ Mod çš„N网 ID 未知 @@ -2282,391 +2276,406 @@ This function will guess the versioning scheme under the assumption that the ins 选择优先级 - + Really enable all visible mods? 确定è¦å¯ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Really disable all visible mods? 确定è¦ç¦ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... 安装 Mod... - + Enable all visible å¯ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Check all for update 检查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... - Set Category - 设置类别 + 设置类别 - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... é‡å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£… Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N网上æµè§ˆ - + Open in explorer 在资æºç®¡ç†å™¨ä¸­æ‰“å¼€ - + Information... ä¿¡æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + Fix Mods... ä¿®å¤ Mod... - - + + failed to remove %1 无法删除 %1 - - + + failed to create %1 无法创建 %1 - + Can't change download directory while downloads are in progress! 下载文件时ä¸èƒ½ä¿®æ”¹ä¸‹è½½ç›®å½•ï¼ - + Download failed 下载失败 - + failed to write to file %1 无法写入文件 %1 - + %1 written 已写入 %1 - + Select binary é€‰æ‹©å¯æ‰§è¡Œæ–‡ä»¶ - + Binary - + Enter Name 输入åç§° - + Please enter a name for the executable 请为程åºè¾“入一个åç§° - + Not an executable 䏿˜¯å¯æ‰§è¡Œç¨‹åº - + This is not a recognized executable. æ— æ³•è¯†åˆ«çš„å¯æ‰§è¡Œæ–‡ä»¶ - - + + Replace file? æ›¿æ¢æ–‡ä»¶ï¼Ÿ - + There already is a hidden version of this file. Replace it? 已存在åŒå文件,但该文件被éšè—了。确定è¦è¦†ç›–å—? - - + + File operation failed 文件æ“作错误 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 打开/执行 - + Add as Executable æ·»åŠ ä¸ºå¯æ‰§è¡Œæ–‡ä»¶ - + Un-Hide å–æ¶ˆéšè— - + Hide éšè— - + Write To File... 写入文件... - + Do you want to endorse Mod Organizer on %1 now? - + Remove 移除 - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + + + + + Add/Remove Categories + + + + + Replace Categories + + + + + login successful 登录æˆåŠŸ - + login failed: %1. Trying to download anyway 登录失败: %1,请å°è¯•使用别的方法下载 - + login failed: %1 无法登录: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登录失败: %1。您需è¦ç™»å½•到N网æ‰èƒ½æ›´æ–° MO - + Error 错误 - + failed to extract %1 (errorcode %2) 无法解压 %1 (é”™è¯¯ä»£ç  %2) - + Extract... 解压... - + Edit Categories... 编辑类别... - + Enable all 全部å¯ç”¨ - + Disable all 全部ç¦ç”¨ @@ -2700,7 +2709,7 @@ This function will guess the versioning scheme under the assumption that the ins ModInfoBackup - + This is the backup of a mod @@ -2781,13 +2790,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">这里列出了所有在 Mod 目录里的图片 (.jpg å’Œ .png),如截图等。点击其中的一个æ¥èŽ·å¾—è¾ƒå¤§çš„è§†å›¾ã€‚</span></p></body></html> - - + + Optional ESPs å¯é€‰ ESP - + List of esps and esms that can not be loaded by the game. 包å«äº†ä¸ä¼šè¢«æ¸¸æˆè½½å…¥çš„ esp å’Œ esm 的列表。 @@ -2816,7 +2825,7 @@ p, li { white-space: pre-wrap; } - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2824,103 +2833,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. 使下表中已选的 Mod å˜å¾—ä¸å¯ç”¨ã€‚ - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. 已选的 esp (在下表中) 将会被放入 Mod çš„å­ç›®å½•里,在游æˆé‡Œå°†ä¼šå˜å¾—“ä¸å¯è§â€ï¼Œå¹¶ä¸”之åŽå°±ä¸èƒ½å†è¢«æ¿€æ´»äº†ã€‚ - + Move a file to the data directory. 移动一个文件到 Data 目录。 - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. 移动一个 esp 文件到 esp 目录,这样它就å¯ä»¥åœ¨ä¸»çª—å£ä¸­å¯ç”¨äº†ã€‚请注æ„: ESP åªæ˜¯å˜å¾—“å¯ç”¨â€ï¼Œå®ƒå¹¶ä¸ä¸€å®šä¼šè¢«è½½å…¥ï¼æƒ³è¦è½½å…¥è¯·åœ¨ MO 的主窗å£ä¸­å‹¾é€‰ã€‚ - + ESPs in the data directory and thus visible to the game. ESP 在 Data 目录,因此它在游æˆé‡Œä¼šå˜å¾—å¯è§ã€‚ - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. 这些 Mod 文件ä½äºŽæ‚¨æ¸¸æˆçš„ (虚拟) Data 目录里,因此它们在主窗å£çš„ esp 列表中会å˜å¾—å¯é€‰ã€‚ - + Available ESPs å¯ç”¨ ESP - + Conflicts å†²çª - + The following conflicted files are provided by this mod ä»¥ä¸‹å†²çªæ–‡ä»¶ç”±æ­¤ Mod æä¾› - - + + File 文件 - + Overwritten Mods 覆盖的 Mod - + The following conflicted files are provided by other mods ä»¥ä¸‹å†²çªæ–‡ä»¶ç”±å…¶å®ƒ Mod æä¾› - + Providing Mod æä¾›çš„ Mod - + Non-Conflicted files éžå†²çªæ–‡ä»¶ - + Categories 类别 - + Primary Category - + Nexus Info Nç½‘ä¿¡æ¯ - + Mod ID Mod ID - + Mod ID for this mod on Nexus. N网上此 Mod çš„ ID。 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2933,7 +2942,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">N网上此 Mod çš„ ID,如果您在 MO 中下载并安装了 Mod 它将被自动填写,å¦åˆ™æ‚¨éœ€è¦æ‰‹åŠ¨è¾“å…¥ã€‚è¦æ‰¾åˆ°æ­£ç¡®çš„ ID,在N网找到 Mod。比如,åƒè¿™æ ·çš„链接: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a> 在上é¢çš„例å­ä¸­ï¼Œ1334å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。此外: 上é¢çš„就是 Mod Organizer 在N网的链接,为什么ä¸çŽ°åœ¨å°±åˆ°é‚£é‡ŒåŽ»èµžåŒæˆ‘呢?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2946,33 +2955,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Mod 的已安装版本,鼠标æç¤ºå°†æ˜¾ç¤ºN网上的当å‰ç‰ˆæœ¬ï¼Œå·²å®‰è£…的版本å·åªæœ‰åœ¨æ‚¨é€šè¿‡ MO æ¥å®‰è£… Mod 的时候æ‰ä¼šè‡ªåŠ¨å¡«å†™ã€‚</span></p></body></html> - + Version 版本 - + Refresh 刷新 - + Refresh all information from Nexus. - + Description æè¿° - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> @@ -3001,12 +3009,12 @@ p, li { white-space: pre-wrap; } å¤§å° (KB) - + Endorse - + Notes @@ -3019,17 +3027,17 @@ p, li { white-space: pre-wrap; } 您支æŒè¿‡è¿™ä¸ª Mod 了å—? - + Filetree 文件树 - + A directory view of this mod 这个 Mod 的目录视图 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3044,17 +3052,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">所åšçš„æ›´æ”¹å°†ä¼šç«‹å³ä½œç”¨äºŽç£ç›˜ä¸Šçš„æ–‡ä»¶ï¼Œæ‰€ä»¥è¯·</span><span style=" font-size:9pt; font-weight:600;">谨慎æ“作</span><span style=" font-size:9pt;">。</span></p></body></html> - + Previous - + Next 下一步 - + Close 关闭 @@ -3306,7 +3314,7 @@ p, li { white-space: pre-wrap; } 覆盖 - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) æ­¤è™šæ‹Ÿå®‰è£…åŒ…å†…åŒ…å«æ¥è‡ªè™šæ‹Ÿ Data 树的文件,但文件å‘生了å˜åŒ– (例: 被CK修改了) @@ -3319,12 +3327,12 @@ p, li { white-space: pre-wrap; } 无法写入 %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 ä¸­æœªåŒ…å« esp 或 esm 和有效的目录 (textures, meshes, interface, ...) - + Categories: <br> ç§ç±»: <br> @@ -3332,7 +3340,7 @@ p, li { white-space: pre-wrap; } ModList - + Confirm 确认 @@ -3401,17 +3409,17 @@ p, li { white-space: pre-wrap; } 最高值 - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. @@ -3420,7 +3428,7 @@ p, li { white-space: pre-wrap; } %1 ä¸­æœªåŒ…å« esp 或 esm 和有效的目录 (textures, meshes, interface, ...) - + Categories: <br> ç§ç±»: <br> @@ -3429,7 +3437,7 @@ p, li { white-space: pre-wrap; } æ­¤è™šæ‹Ÿå®‰è£…åŒ…å†…åŒ…å«æ¥è‡ªè™šæ‹Ÿ Data 树的文件,但文件å‘生了å˜åŒ– (例: 被CK修改了) - + installed version: %1, newest version: %2 当å‰ç‰ˆæœ¬: %1,最新版本: %2 @@ -3442,88 +3450,88 @@ p, li { white-space: pre-wrap; } Mod åç§° - + Version 版本 - + Version of the mod (if available) Mod 版本 (如果å¯ç”¨) - + Priority 优先级 - + invalid - + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". - + Invalid name - + drag&drop failed: %1 - + Flags - + Mod Name - + Category - + Nexus ID - + Installation - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Mod 的安装优先级。越高就表示越“é‡è¦â€ï¼Œä»Žè€Œè¦†ç›–掉低优先级的 Mod 文件。 - + Time this mod was installed - + Are you sure you want to remove "%1"? 确定è¦ç§»é™¤ "%1" å—? @@ -3637,12 +3645,12 @@ p, li { white-space: pre-wrap; } - + empty response 未å“应 - + invalid response 无效的å“应 @@ -4634,59 +4642,59 @@ Right now this has very limited functionality - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - - + + Confirm 确认 - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 无法打开输出文件: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. 您的一些æ’ä»¶å称无效ï¼è¿™äº›æ’件无法被游æˆè½½å…¥ã€‚请查看 mo_interface.log æ¥ç¡®è®¤é‚£äº›å—å½±å“çš„æ’ä»¶å¹¶é‡å‘½å它们。 - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4699,12 +4707,12 @@ Right now this has very limited functionality 最高值 - + This plugin can't be disabled (enforced by the game) 这个æ’ä»¶ä¸èƒ½è¢«ç¦ç”¨ (ç”±æ¸¸æˆæ‰§è¡Œ) - + Origin: %1 隶属于: %1 @@ -4747,12 +4755,12 @@ Right now this has very limited functionality <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -5133,20 +5141,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories 无法ä¿å­˜è‡ªå®šä¹‰ç±»åˆ« - - - - + + + + invalid index %1 无效的索引 %1 - + invalid category id %1 无效的类别 %1 @@ -5272,7 +5280,7 @@ p, li { white-space: pre-wrap; } - + Mod Organizer Mod Organizer @@ -5298,23 +5306,23 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements 请使用工具æ ä¸Šçš„â€œå¸®åŠ©â€æ¥èŽ·å¾—æ‰€æœ‰å…ƒç´ çš„ä½¿ç”¨è¯´æ˜Ž - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 无法解æžé…置文件 %1: %2 - + failed to find "%1" 未能找到 "%1" @@ -5324,12 +5332,12 @@ p, li { white-space: pre-wrap; } ç¼–ç é”™è¯¯ï¼Œè¯·å‘作者汇报此 Bug 并且附上 mo_interface.log æ–‡ä»¶ï¼ - + failed to access %1 无法访问 %1 - + failed to set file time %1 无法设置文件时间 %1 @@ -5370,12 +5378,12 @@ p, li { white-space: pre-wrap; } 无法打开 %1 - + Script Extender 脚本拓展 - + Proxy DLL 代ç†DLL @@ -5689,7 +5697,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + No download server available. Please try again later. 没有å¯ç”¨çš„下载æœåŠ¡å™¨ï¼Œè¯·ç¨åŽå†å°è¯•下载。 @@ -5698,7 +5706,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 未找到更新文件 - + Failed to retrieve update information: %1 无法检索更新信æ¯: %1 @@ -5710,18 +5718,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 需è¦ç®¡ç†å‘˜çš„æƒé™æ¥æ›´æ”¹è¿™ä¸ªã€‚ - - + + attempt to store setting for unknown plugin "%1" - + Confirm 确认 - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? 修改 Mod ç›®å½•å°†ä¼šå½±å“æ‚¨çš„é…ç½®ï¼æ–°ç›®å½•中ä¸å­˜åœ¨ (或者åç§°ä¸åŒ) çš„ Mod 将在所有é…ç½®ä¸­è¢«ç¦æ­¢æŽ‰ã€‚æ­¤æ“作无法撤销,所以执行此æ“作å‰å»ºè®®å…ˆå¤‡ä»½ä¸‹è‡ªå·±çš„é…ç½®ã€‚ç«‹å³æ‰§è¡Œï¼Ÿ @@ -6339,9 +6347,13 @@ For the other games this is not a sufficient replacement for AI! TransferSavesDialog - Dialog - å¯¹è¯æ¡† + å¯¹è¯æ¡† + + + + Transfer Savegames + @@ -6361,8 +6373,16 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves + This is a list of characters in the global location. + +On Windows Vista/Windows 7: + C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +On Windows XP: + C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + diff --git a/src/organizer_zh_TW.ts b/src/organizer_zh_TW.ts index 76e0d658..722f8d2c 100644 --- a/src/organizer_zh_TW.ts +++ b/src/organizer_zh_TW.ts @@ -548,75 +548,75 @@ p, li { white-space: pre-wrap; } 釿–°å‘½å "%1 "為 "%2" 時出錯 - + Download again? 釿–°ä¸‹è¼‰ï¼Ÿ - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. 已存在åŒå檔案。您確定è¦é‡æ–°ä¸‹è¼‰ï¼Ÿæ–°æª”案將使用ä¸åŒçš„æª”案å。 - + failed to download %1: could not open output file: %2 下載 %1 失敗: 無法開啟輸出檔案: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + invalid index 無效的索引 - + failed to delete %1 無法刪除 %1 - + failed to delete meta file for %1 無法從 %1 中刪除 mate 檔案 - - - - - - + + + + + + invalid index %1 無效的索引 %1 - + Please enter the nexus mod id 請輸入Nç¶² Mod ID - + Mod ID: Mod ID: @@ -625,38 +625,38 @@ p, li { white-space: pre-wrap; } 無效的字順索引 %1 - + Information updated 訊æ¯å·²æ›´æ–° - + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? 無法在N網上找到匹é…的檔案ï¼ä¹Ÿè¨±é€™å€‹æª”案已經ä¸å­˜åœ¨äº†æˆ–是它改å了? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. 所é¸çš„æª”案無法在N網上找到å¯åŒ¹é…çš„é …ç›®ï¼Œè«‹æ‰‹å‹•é¸æ“‡æ­£ç¢ºçš„一個。 - + No download server available. Please try again later. 沒有å¯ç”¨çš„下載伺æœå™¨ï¼Œè«‹ç¨å¾Œå†å˜—試下載。 - + Failed to request file info from nexus: %1 無法在N網上請求檔案訊æ¯: %1 - + Download failed: %1 (%2) 下載失敗: %1 (%2) - + failed to re-open %1 ç„¡æ³•é‡æ–°é–‹å•Ÿ %1 @@ -1133,7 +1133,7 @@ p, li { white-space: pre-wrap; } - + Extracting files 正在解壓檔案 @@ -1168,7 +1168,7 @@ Note: This installer will not be aware of other installed mods! 安è£å¤±æ•— (錯誤代碼 %1) - + File format "%1" not supported æš«ä¸æ”¯æŒæª”案格å¼: "%1" @@ -1187,22 +1187,22 @@ Note: This installer will not be aware of other installed mods! - + Mod Name - + Name å稱 - + Invalid name - + The name you entered is invalid, please enter a different one. @@ -1219,52 +1219,52 @@ Note: This installer will not be aware of other installed mods! è«‹å®‰è£ NCC - + None of the available installer plugins were able to handle that archive - + no error 沒有錯誤 - + 7z.dll not found 未找到 7z.dll - + 7z.dll isn't valid 無效的 7z.dll - + archive not found 未找到壓縮包 - + failed to open archive 無法開啟壓縮包 - + unsupported archive type 䏿”¯æŒçš„壓縮包類型 - + internal library error 內部庫錯誤 - + archive invalid 無效的壓縮包 - + unknown archive error 未知壓縮包錯誤 @@ -1316,23 +1316,23 @@ Note: This installer will not be aware of other installed mods! MainWindow - - + + Categories - + Profile é…置檔案 - + Pick a module collection 鏿“‡ä¸€å€‹é…置檔案 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1347,44 +1347,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">請注æ„: ç•¶å‰æ‚¨çš„é…置檔案的 esp 加載順åºä¸¦ä¸æ˜¯åˆ†é–‹å„²å­˜çš„。</span></p></body></html> - + Refresh list 釿–°æ•´ç†åˆ—表 - + Refresh list. This is usually not necessary unless you modified data outside the program. 釿–°æ•´ç†åˆ—è¡¨ï¼Œé€™é€šå¸¸ä¸æ˜¯å¿…é ˆçš„ï¼Œé™¤éžæ‚¨åœ¨ç¨‹å¼ä¹‹å¤–修改了檔案的數據。 - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter éŽæ¿¾å™¨ - + No groups - + Nexus IDs Nç¶² ID - - - + + + Namefilter @@ -1393,12 +1393,12 @@ p, li { white-space: pre-wrap; } é–‹å§‹ - + Pick a program to run. 鏿“‡è¦é‹è¡Œçš„程å¼ã€‚ - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1413,12 +1413,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">您å¯ä»¥æ·»åŠ æ–°çš„å·¥å…·åˆ°æ­¤åˆ—è¡¨ä¸­ï¼Œä½†æˆ‘ä¸èƒ½ä¿è­‰ä¸€äº›æˆ‘沒有測試éŽçš„工具能够正常工作。</span></p></body></html> - + Run program é‹è¡Œç¨‹å¼ - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1431,17 +1431,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">在 Mod Organizer 啟用的狀態下é‹è¡ŒæŒ‡å®šçš„程å¼ã€‚</span></p></body></html> - + Run é‹è¡Œ - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1454,7 +1454,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">建立一個開始èœå–®æ·å¾‘,使您å¯ä»¥ç›´æŽ¥åœ¨ MO 激活狀態下é‹è¡ŒæŒ‡å®šçš„程å¼ã€‚</span></p></body></html> - + Shortcut @@ -1479,12 +1479,12 @@ p, li { white-space: pre-wrap; } 儲存 - + List of available esp/esm files å¯ç”¨ esp 或 esm 檔案的列表 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1501,12 +1501,12 @@ p, li { white-space: pre-wrap; } é‡è¦: 您å¯ä»¥åœ¨é€™è£¡æ›´æ”¹ BSA 的順åºï¼Œä¸éŽ Mod 的安è£é †åºæœƒå„ªå…ˆæ–¼é€™è£¡çš„è¨­å®šï¼ - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. å¯ç”¨ BSA 檔案的列表。未勾é¸çš„é …ç›®ä¸æœƒè¢« MO 管ç†ä¸¦ä¸”會忽略安è£é †åºã€‚ - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1517,66 +1517,66 @@ BSAs checked here are loaded in such a way that your installation order is obeye 這裡勾é¸çš„ BSA 將會ä¾å¾žæ‚¨çš„安è£é †åºï¼Œä¸¦ä¸”會自行調整加載順åºã€‚ - - + + File 檔案 - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Data - + refresh data-directory overview 釿–°æ•´ç† Data 目錄總覽 - + Refresh the overview. This may take a moment. 釿–°æ•´ç†ç¸½è¦½ï¼Œé€™å¯èƒ½éœ€è¦ä¸€äº›æ™‚間。 - - - + + + Refresh 釿–°æ•´ç† - + This is an overview of your data directory as visible to the game (and tools). é€™æ˜¯åœ¨éŠæˆ²ä¸­å¯è¦‹çš„ Data 目錄 (和工具) 的總覽。 - - + + Filter the above list so that only conflicts are displayed. éŽæ¿¾ä¸Šé¢çš„列表,使您åªèƒ½çœ‹åˆ°æœ‰è¡çªçš„æª”案。 - + Show only conflicts åªé¡¯ç¤ºè¡çª - + Saves 存檔 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1593,160 +1593,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">如果您在å³éµèœå–®ä¸­é»žæ“Šâ€œä¿®å¾© Modâ€ï¼Œé‚£éº¼ MO 便會嘗試激活所有 Mod å’Œ esp 來修復那些缺失的 espï¼Œå®ƒä¸¦ä¸æœƒç¦ç”¨ä»»ä½•æ±è¥¿ï¼</span></p></body></html> - + Downloads 下載 - + This is a list of mods you downloaded from Nexus. Double click one to install it. 這是當å‰å·²ä¸‹è¼‰çš„ Mod 的列表,雙擊進行安è£ã€‚ - + Compact 緊湊 - + Show Hidden - + Tool Bar 工具欄 - + Install Mod å®‰è£ Mod - + Install &Mod å®‰è£ &Mod - + Install a new mod from an archive 通éŽå£“縮包來安è£ä¸€å€‹æ–° Mod - + Ctrl+M Ctrl+M - + Profiles é…置檔案 - + &Profiles &é…置檔案 - + Configure Profiles 設定é…置檔案 - + Ctrl+P Ctrl+P - + Executables å¯åŸ·è¡Œç¨‹å¼ - + &Executables &å¯åŸ·è¡Œç¨‹å¼ - + Configure the executables that can be started through Mod Organizer é…ç½®å¯é€šéŽ MO ä¾†å•Ÿå‹•çš„ç¨‹å¼ - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings 設定 - + &Settings &設定 - + Configure settings and workarounds é…置設定和解決方案 - + Ctrl+S Ctrl+S - + Nexus Nç¶² - + Search nexus network for more mods æœå°‹N網以ç²å–更多 Mod - + Ctrl+N Ctrl+N - - + + Update æ›´æ–° - + Mod Organizer is up-to-date Mod Organizer ç¾åœ¨æ˜¯æœ€æ–°ç‰ˆæœ¬ - - + + No Problems 沒有å•題 - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1757,54 +1757,54 @@ Right now this has very limited functionality ç•¶å‰æ­¤åŠŸèƒ½æ‰€èƒ½æä¾›çš„é …ç›®éžå¸¸æœ‰é™ - - + + Help 幫助 - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems å•題 - + There are potential problems with your setup 您的安è£ä¸­å­˜åœ¨æ½›åœ¨çš„å•題 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1821,22 +1821,22 @@ Right now this has very limited functionality <li>.Net æœªå®‰è£æˆ–版本éŽèˆŠã€‚想è¦é‹è¡Œ NCC æ‚¨å¿…é ˆå…ˆå®‰è£ .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­ç²å–: <a href="%1">%1</a></li> - + Help on UI 介é¢å¹«åŠ© - + Documentation Wiki 說明文檔 (維基) - + Report Issue 報告å•題 - + Tutorials @@ -1845,431 +1845,425 @@ Right now this has very limited functionality ç„¡æ³•å„²å­˜åŠ è¼‰é †åº - + failed to save load order: %1 無法儲存加載順åº: %1 - + failed to save archives order, do you have write access to "%1"? 無法儲存檔案順åºï¼Œæ‚¨ç¢ºå®šæ‚¨æœ‰æ¬Šé™æ›´æ”¹ "%1"? - + Name å稱 - + Please enter a name for the new profile - + failed to create profile: %1 無法建立é…置檔案: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下載 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨é€²è¡Œä¸­çš„下載,您確定è¦é€€å‡ºå—Žï¼Ÿ - + failed to read savegame: %1 無法讀å–存檔: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" 無法啟動 "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 當您登入 Steam 時請點擊確定。 - + "%1" not found "%1" 未找到 - + Start Steam? 啟動 Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¢ºåœ°å•Ÿå‹•éŠæˆ²ï¼ŒSteam 必須處於é‹è¡Œç‹€æ…‹ï¼ŒMO è¦ç«‹å³å•Ÿå‹• Steam 嗎? - + Also in: <br> 也在: <br> - + No conflict 沒有è¡çª - + <Edit...> <編輯...> - + Failed to refresh list of esps: %s - + This bsa is enabled in the ini file so it may be required! 該 BSA 已在 Ini 檔案中啟用,因此它å¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此檔案還是會被加載,因為存在åŒåæ’件。ä¸éŽå®ƒæ‰€åŒ…å«çš„çš„æª”æ¡ˆä¸æœƒéµå¾ªå®‰è£é †åºï¼ - + Activating Network Proxy - - + + Installation successful å®‰è£æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 設定檔案,您想ç¾åœ¨å°±å°å®ƒå€‘進行é…置嗎? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled 安è£å·²å–消 - - + + The mod was not installed completely. Mod 沒有完全安è£ã€‚ - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> + + + + Choose Mod 鏿“‡ Mod - + Mod Archive Mod 壓縮包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 開始下載 - + failed to update mod list: %1 無法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 ç„¡æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 無法開啟 %1 - + failed to change origin name: %1 無法更改原始檔案å: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - - This will move all files from overwrite into a new, regular mod. -Please enter a name: - - - - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <全部> - + <Checked> <已勾é¸> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - The game doesn't allow more than 256 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - - - - + Failed to move "%1" from mod "%2" to "%3": %4 - + <Unchecked> <未勾é¸> - + <Update> <有更新> - + <No category> <無類別> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 ç„¡æ³•é‡æ–°å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + Confirm ç¢ºèª - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 無法移動 Mod: %1 - + Failed 失敗 - + Installation file no longer exists å®‰è£æª”案ä¸è¤‡å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 舊版 MO 安è£çš„ Mod ç„¡æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£ã€‚ - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解壓 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€å€‹ BSA。您確定è¦è§£å£“嗎? (解壓完æˆå¾Œï¼ŒBSA 檔案將會被刪除。如果您ä¸çž­è§£ BSA çš„è©±ï¼Œè«‹é¸æ“‡â€œå¦â€) - - - + + + failed to read %1: %2 ç„¡æ³•è®€å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 壓縮包 Hash 值錯誤。部分檔案å¯èƒ½å·²ç¶“æå£žã€‚ - + Nexus ID for this Mod is unknown æ­¤ Mod çš„Nç¶² ID 未知 @@ -2282,391 +2276,406 @@ This function will guess the versioning scheme under the assumption that the ins 鏿“‡å„ªå…ˆç´š - + Really enable all visible mods? 確定è¦å•Ÿç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Really disable all visible mods? 確定è¦ç¦ç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... å®‰è£ Mod... - + Enable all visible 啟用所有å¯è¦‹é …ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è¦‹é …ç›® - + Check all for update 檢查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... - Set Category - 設定類別 + 設定類別 - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... 釿–°å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£ Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N網上æµè¦½ - + Open in explorer 在檔案總管中開啟 - + Information... 訊æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + Fix Mods... 修復 Mod... - - + + failed to remove %1 無法刪除 %1 - - + + failed to create %1 無法建立 %1 - + Can't change download directory while downloads are in progress! 下載檔案時ä¸èƒ½ä¿®æ”¹ä¸‹è¼‰ç›®éŒ„ï¼ - + Download failed 下載失敗 - + failed to write to file %1 無法寫入檔案 %1 - + %1 written 已寫入 %1 - + Select binary 鏿“‡å¯åŸ·è¡Œæª”案 - + Binary - + Enter Name 輸入å稱 - + Please enter a name for the executable 請為程å¼è¼¸å…¥ä¸€å€‹å稱 - + Not an executable 䏿˜¯å¯åŸ·è¡Œç¨‹å¼ - + This is not a recognized executable. 無法識別的å¯åŸ·è¡Œæª”案 - - + + Replace file? å–代檔案? - + There already is a hidden version of this file. Replace it? 已存在åŒå檔案,但該檔案被隱è—了。確定è¦è¦†è“‹å—Žï¼Ÿ - - + + File operation failed 檔案æ“作錯誤 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 開啟/執行 - + Add as Executable 添加為å¯åŸ·è¡Œæª”案 - + Un-Hide å–æ¶ˆéš±è— - + Hide éš±è— - + Write To File... 寫入檔案... - + Do you want to endorse Mod Organizer on %1 now? - + Remove 移除 - + Unlock load order - + Lock load order - + Request to Nexus failed: %1 - - + + This will move all files from overwrite into a new, regular mod. +Please enter a name: + + + + + Add/Remove Categories + + + + + Replace Categories + + + + + login successful 登入æˆåŠŸ - + login failed: %1. Trying to download anyway 登入失敗: %1,請嘗試使用別的方法下載 - + login failed: %1 無法登入: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登入失敗: %1。您需è¦ç™»å…¥åˆ°Nç¶²æ‰èƒ½æ›´æ–° MO - + Error 錯誤 - + failed to extract %1 (errorcode %2) 無法解壓 %1 (錯誤代碼 %2) - + Extract... 解壓... - + Edit Categories... 編輯類別... - + Enable all 全部啟用 - + Disable all 全部ç¦ç”¨ @@ -2700,7 +2709,7 @@ This function will guess the versioning scheme under the assumption that the ins ModInfoBackup - + This is the backup of a mod @@ -2781,13 +2790,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">這裡列出了所有在 Mod 目錄裡的圖片 (.jpg å’Œ .png),如截圖等。點擊其中的一個來ç²å¾—較大的視圖。</span></p></body></html> - - + + Optional ESPs å¯é¸ ESP - + List of esps and esms that can not be loaded by the game. 包å«äº†ä¸æœƒè¢«éŠæˆ²è¼‰å…¥çš„ esp å’Œ esm 的列表。 @@ -2816,7 +2825,7 @@ p, li { white-space: pre-wrap; } - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2824,103 +2833,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. 使下表中已é¸çš„ Mod 變得ä¸å¯ç”¨ã€‚ - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. å·²é¸çš„ esp (在下表中) 將會被放入 Mod çš„å­ç›®éŒ„è£¡ï¼Œåœ¨éŠæˆ²è£¡å°‡æœƒè®Šå¾—“ä¸å¯è¦‹â€ï¼Œä¸¦ä¸”之後就ä¸èƒ½å†è¢«æ¿€æ´»äº†ã€‚ - + Move a file to the data directory. 移動一個檔案到 Data 目錄。 - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. 移動一個 esp 檔案到 esp 目錄,這樣它就å¯ä»¥åœ¨ä¸»çª—å£ä¸­å•Ÿç”¨äº†ã€‚請注æ„: ESP åªæ˜¯è®Šå¾—“å¯ç”¨â€ï¼Œå®ƒå¹¶ä¸ä¸€å®šæœƒè¢«è¼‰å…¥ï¼æƒ³è¦è½½å…¥è¯·åœ¨ MO 的主窗å£ä¸­å‹¾é¸ã€‚ - + ESPs in the data directory and thus visible to the game. ESP 在 Data 目錄,因此它在游戲裡會變得å¯è¦‹ã€‚ - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. 這些 Mod æª”æ¡ˆä½æ–¼æ‚¨æ¸¸æˆ²çš„ (虛擬) Data 目錄裡,因此它們在主窗å£çš„ esp 列表中會變得å¯é¸ã€‚ - + Available ESPs å¯ç”¨ ESP - + Conflicts è¡çª - + The following conflicted files are provided by this mod 以下è¡çªæª”案由此 Mod æä¾› - - + + File 檔案 - + Overwritten Mods 覆蓋的 Mod - + The following conflicted files are provided by other mods 以下è¡çªæª”案由其它 Mod æä¾› - + Providing Mod æä¾›çš„ Mod - + Non-Conflicted files éžè¡çªæª”案 - + Categories 類別 - + Primary Category - + Nexus Info Nç¶²è¨Šæ¯ - + Mod ID Mod ID - + Mod ID for this mod on Nexus. N網上此 Mod çš„ ID。 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2933,7 +2942,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">N網上此 Mod çš„ ID,如果您在 MO 中下載並安è£äº† Mod 它將被自動填寫,å¦å‰‡æ‚¨éœ€è¦æ‰‹å‹•è¼¸å…¥ã€‚è¦æ‰¾åˆ°æ­£ç¢ºçš„ ID,在N網找到 Mod。比如,åƒé€™æ¨£çš„連çµ: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a> 在上é¢çš„例å­ä¸­ï¼Œ1334å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。此外: 上é¢çš„就是 Mod Organizer 在N網的連çµï¼Œç‚ºä»€éº¼ä¸ç¾åœ¨å°±åˆ°é‚£è£¡åŽ»è´ŠåŒæˆ‘呢?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2946,33 +2955,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Mod 的已安è£ç‰ˆæœ¬ï¼Œæ»‘é¼ æç¤ºå°‡é¡¯ç¤ºN網上的當å‰ç‰ˆæœ¬ï¼Œå·²å®‰è£çš„ç‰ˆæœ¬è™Ÿåªæœ‰åœ¨æ‚¨é€šéŽ MO ä¾†å®‰è£ Mod çš„æ™‚å€™æ‰æœƒè‡ªå‹•填寫。</span></p></body></html> - + Version 版本 - + Refresh 釿–°æ•´ç† - + Refresh all information from Nexus. - + Description æè¿° - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> @@ -3001,12 +3009,12 @@ p, li { white-space: pre-wrap; } å¤§å° (KB) - + Endorse - + Notes @@ -3019,17 +3027,17 @@ p, li { white-space: pre-wrap; } 您支æŒéŽé€™å€‹ Mod 了嗎? - + Filetree 檔案樹 - + A directory view of this mod 這個 Mod 的目錄視圖 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3044,17 +3052,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">所åšçš„æ›´æ”¹å°‡æœƒç«‹å³ä½œç”¨æ–¼ç£ç¢Ÿä¸Šçš„æª”案,所以請</span><span style=" font-size:9pt; font-weight:600;">謹慎æ“作</span><span style=" font-size:9pt;">。</span></p></body></html> - + Previous - + Next 下一步 - + Close 關閉 @@ -3306,7 +3314,7 @@ p, li { white-space: pre-wrap; } 覆蓋 - + This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit) 此虛擬安è£åŒ…內包å«ä¾†è‡ªè™›æ“¬ Data 樹的檔案,但檔案發生了變化 (例: 被CK修改了) @@ -3319,12 +3327,12 @@ p, li { white-space: pre-wrap; } 無法寫入 %1/meta.ini: %2 - + %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory %1 ä¸­æœªåŒ…å« esp 或 esm 和有效的目錄 (textures, meshes, interface, ...) - + Categories: <br> 種類: <br> @@ -3332,7 +3340,7 @@ p, li { white-space: pre-wrap; } ModList - + Confirm ç¢ºèª @@ -3401,17 +3409,17 @@ p, li { white-space: pre-wrap; } 最高值 - + Category of the mod. - + Id of the mod as used on Nexus. - + Emblemes to highlight things that might require attention. @@ -3420,7 +3428,7 @@ p, li { white-space: pre-wrap; } %1 ä¸­æœªåŒ…å« esp 或 esm 和有效的目錄 (textures, meshes, interface, ...) - + Categories: <br> 種類: <br> @@ -3429,7 +3437,7 @@ p, li { white-space: pre-wrap; } 此虛擬安è£åŒ…內包å«ä¾†è‡ªè™›æ“¬ Data 樹的檔案,但檔案發生了變化 (例: 被CK修改了) - + installed version: %1, newest version: %2 ç•¶å‰ç‰ˆæœ¬: %1,最新版本: %2 @@ -3442,88 +3450,88 @@ p, li { white-space: pre-wrap; } Mod å稱 - + Version 版本 - + Version of the mod (if available) Mod 版本 (如果å¯ç”¨) - + Priority 優先級 - + invalid - + The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade". - + Invalid name - + drag&drop failed: %1 - + Flags - + Mod Name - + Category - + Nexus ID - + Installation - - + + unknown - + Name of your mods - + Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority. Mod 的安è£å„ªå…ˆç´šã€‚越高就表示越“é‡è¦â€ï¼Œå¾žè€Œè¦†è“‹æŽ‰ä½Žå„ªå…ˆç´šçš„ Mod 檔案。 - + Time this mod was installed - + Are you sure you want to remove "%1"? 確定è¦ç§»é™¤ "%1" å—? @@ -3637,12 +3645,12 @@ p, li { white-space: pre-wrap; } - + empty response 未回應 - + invalid response 無效的回應 @@ -4634,59 +4642,59 @@ Right now this has very limited functionality - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - - + + Confirm ç¢ºèª - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - + + failed to open output file: %1 無法開啟輸出檔案: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. 您的一些æ’ä»¶å稱無效ï¼é€™äº›æ’ä»¶ç„¡æ³•è¢«éŠæˆ²è¼‰å…¥ã€‚請查看 mo_interface.log 來確èªé‚£äº›å—影響的æ’件䏦釿–°å‘½å它們。 - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4699,12 +4707,12 @@ Right now this has very limited functionality 最高值 - + This plugin can't be disabled (enforced by the game) 這個æ’ä»¶ä¸èƒ½è¢«ç¦ç”¨ (ç”±éŠæˆ²åŸ·è¡Œ) - + Origin: %1 隸屬於: %1 @@ -4747,12 +4755,12 @@ Right now this has very limited functionality <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -5133,20 +5141,20 @@ p, li { white-space: pre-wrap; } QObject - + Failed to save custom categories 無法儲存自定義類別 - - - - + + + + invalid index %1 無效的索引 %1 - + invalid category id %1 無效的類別 %1 @@ -5272,7 +5280,7 @@ p, li { white-space: pre-wrap; } - + Mod Organizer Mod Organizer @@ -5298,23 +5306,23 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements 請使用工具列上的“幫助â€ä¾†ç²å¾—所有元素的使用說明 - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 無法解æžé…置檔案 %1: %2 - + failed to find "%1" 未能找到 "%1" @@ -5324,12 +5332,12 @@ p, li { white-space: pre-wrap; } 編碼錯誤,請å‘作者彙報此 Bug 並且附上 mo_interface.log æª”æ¡ˆï¼ - + failed to access %1 ç„¡æ³•è¨ªå• %1 - + failed to set file time %1 無法設定檔案時間 %1 @@ -5370,12 +5378,12 @@ p, li { white-space: pre-wrap; } 無法開啟 %1 - + Script Extender 腳本拓展 - + Proxy DLL 代ç†DLL @@ -5689,7 +5697,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + No download server available. Please try again later. 沒有å¯ç”¨çš„下載伺æœå™¨ï¼Œè«‹ç¨å¾Œå†å˜—試下載。 @@ -5698,7 +5706,7 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 未找到更新檔案 - + Failed to retrieve update information: %1 無法檢索更新信æ¯: %1 @@ -5710,18 +5718,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 需è¦ç®¡ç†å“¡çš„æ¬Šé™ä¾†æ›´æ”¹é€™å€‹ã€‚ - - + + attempt to store setting for unknown plugin "%1" - + Confirm ç¢ºèª - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? 修改 Mod 目錄將會影響您的é…ç½®ï¼æ–°ç›®éŒ„中ä¸å­˜åœ¨ (或者å稱ä¸åŒ) çš„ Mod 將在所有é…ç½®ä¸­è¢«ç¦æ­¢æŽ‰ã€‚æ­¤æ“作無法撤銷,所以執行此æ“作å‰å»ºè­°å…ˆå‚™ä»½ä¸‹è‡ªå·±çš„é…置。立å³åŸ·è¡Œï¼Ÿ @@ -6339,9 +6347,13 @@ For the other games this is not a sufficient replacement for AI! TransferSavesDialog - Dialog - å°è©±æ–¹å¡Š + å°è©±æ–¹å¡Š + + + + Transfer Savegames + @@ -6361,8 +6373,16 @@ On Windows Vista/Windows 7: C:\Users\[UserName]\Documents\My Games\Skyrim\Saves On Windows XP: - C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + C:\Documents and Settings\[UserName]\My Documents\My Games\Skyrim\Saves + This is a list of characters in the global location. + +On Windows Vista/Windows 7: + C:\Users\[UserName]\Documents\My Games\Skyrim\Saves + +On Windows XP: + C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves + diff --git a/src/version.rc b/src/version.rc index 35ac56a4..83c59d21 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,12,0 -#define VER_FILEVERSION_STR "1,0,12,0\0" +#define VER_FILEVERSION 1,0,13,0 +#define VER_FILEVERSION_STR "1,0,13,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 4dc3538a7d14dd0f1aaa2e6c172745b63e251c86 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 4 Jan 2014 15:57:14 +0100 Subject: - nxmhandler will now ask before registering itself - downloads from nexus are now displayed before file information is retrieved - logging from the ui is now a bit more informative - download list now scrolls to bottom automatically --- src/downloadlist.cpp | 19 ++-- src/downloadlistsortproxy.cpp | 22 +++-- src/downloadlistwidget.cpp | 179 +++++++++++++++++++++----------------- src/downloadlistwidget.h | 3 + src/downloadlistwidgetcompact.cpp | 148 ++++++++++++++++++------------- src/downloadlistwidgetcompact.h | 2 + src/downloadmanager.cpp | 49 ++++++++++- src/downloadmanager.h | 25 ++++++ src/logbuffer.cpp | 15 +++- src/logbuffer.h | 2 + src/mainwindow.cpp | 12 ++- src/messagedialog.cpp | 1 + src/settings.cpp | 9 ++ src/settings.h | 7 ++ src/settingsdialog.cpp | 6 ++ src/settingsdialog.h | 2 + src/settingsdialog.ui | 44 +++++++--- 17 files changed, 368 insertions(+), 177 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/downloadlist.cpp b/src/downloadlist.cpp index fe021a27..d280cdb6 100644 --- a/src/downloadlist.cpp +++ b/src/downloadlist.cpp @@ -34,9 +34,10 @@ DownloadList::DownloadList(DownloadManager *manager, QObject *parent) int DownloadList::rowCount(const QModelIndex&) const { - return m_Manager->numTotalDownloads(); + return m_Manager->numTotalDownloads() + m_Manager->numPendingDownloads(); } + int DownloadList::columnCount(const QModelIndex&) const { return 3; @@ -75,14 +76,18 @@ QVariant DownloadList::data(const QModelIndex &index, int role) const if (role == Qt::DisplayRole) { return index.row(); } else if (role == Qt::ToolTipRole) { - QString text = m_Manager->getFileName(index.row()) + "\n"; - if (m_Manager->isInfoIncomplete(index.row())) { - text += tr("Information missing, please select \"Query Info\" from the context menu to re-retrieve."); + if (index.row() < m_Manager->numTotalDownloads()) { + QString text = m_Manager->getFileName(index.row()) + "\n"; + if (m_Manager->isInfoIncomplete(index.row())) { + text += tr("Information missing, please select \"Query Info\" from the context menu to re-retrieve."); + } else { + NexusInfo info = m_Manager->getNexusInfo(index.row()); + text += QString("%1 (ID %2) %3").arg(info.m_ModName).arg(m_Manager->getModID(index.row())).arg(info.m_Version); + } + return text; } else { - NexusInfo info = m_Manager->getNexusInfo(index.row()); - text += QString("%1 (ID %2) %3").arg(info.m_ModName).arg(m_Manager->getModID(index.row())).arg(info.m_Version); + return tr("pending download"); } - return text; } else { return QVariant(); } diff --git a/src/downloadlistsortproxy.cpp b/src/downloadlistsortproxy.cpp index fc743574..7abe8579 100644 --- a/src/downloadlistsortproxy.cpp +++ b/src/downloadlistsortproxy.cpp @@ -37,13 +37,16 @@ bool DownloadListSortProxy::lessThan(const QModelIndex &left, { int leftIndex = sourceModel()->data(left).toInt(); int rightIndex = sourceModel()->data(right).toInt(); - - if (left.column() == DownloadList::COL_NAME) { - return m_Manager->getFileName(leftIndex).compare(m_Manager->getFileName(rightIndex), Qt::CaseInsensitive) < 0; - } else if (left.column() == DownloadList::COL_FILETIME) { - return m_Manager->getFileTime(leftIndex) < m_Manager->getFileTime(rightIndex); - } else if (left.column() == DownloadList::COL_STATUS) { - return m_Manager->getState(leftIndex) < m_Manager->getState(rightIndex); + if (leftIndex < m_Manager->numTotalDownloads()) { + if (left.column() == DownloadList::COL_NAME) { + return m_Manager->getFileName(leftIndex).compare(m_Manager->getFileName(rightIndex), Qt::CaseInsensitive) < 0; + } else if (left.column() == DownloadList::COL_FILETIME) { + return m_Manager->getFileTime(leftIndex) < m_Manager->getFileTime(rightIndex); + } else if (left.column() == DownloadList::COL_STATUS) { + return m_Manager->getState(leftIndex) < m_Manager->getState(rightIndex); + } else { + return leftIndex < rightIndex; + } } else { return leftIndex < rightIndex; } @@ -54,6 +57,9 @@ bool DownloadListSortProxy::filterAcceptsRow(int source_row, const QModelIndex&) { if (m_CurrentFilter.length() == 0) { return true; + } else if (source_row < m_Manager->numTotalDownloads()) { + return m_Manager->getFileName(source_row).contains(m_CurrentFilter, Qt::CaseInsensitive); + } else { + return false; } - return m_Manager->getFileName(source_row).contains(m_CurrentFilter, Qt::CaseInsensitive); } diff --git a/src/downloadlistwidget.cpp b/src/downloadlistwidget.cpp index b4d40799..68dd2adf 100644 --- a/src/downloadlistwidget.cpp +++ b/src/downloadlistwidget.cpp @@ -82,80 +82,100 @@ void DownloadListWidgetDelegate::drawCache(QPainter *painter, const QStyleOption } -void DownloadListWidgetDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +void DownloadListWidgetDelegate::paintPendingDownload(int downloadIndex) const { - try { - auto iter = m_Cache.find(index.row()); - if (iter != m_Cache.end()) { - drawCache(painter, option, *iter); - return; - } - - m_ItemWidget->resize(QSize(m_View->columnWidth(0) + m_View->columnWidth(1) + m_View->columnWidth(2), option.rect.height())); + std::pair nexusids = m_Manager->getPendingDownload(downloadIndex); + m_NameLabel->setText(tr("< mod %1 file %2 >").arg(nexusids.first).arg(nexusids.second)); + m_SizeLabel->setText("???"); + m_InstallLabel->setVisible(true); + m_InstallLabel->setText(tr("Pending")); + m_Progress->setVisible(false); +} - int downloadIndex = index.data().toInt(); - QString name = m_Manager->getFileName(downloadIndex); - if (name.length() > 53) { - name.truncate(50); - name.append("..."); - } - m_NameLabel->setText(name); - m_SizeLabel->setText(QString::number(m_Manager->getFileSize(downloadIndex) / 1024)); - DownloadManager::DownloadState state = m_Manager->getState(downloadIndex); - if ((state == DownloadManager::STATE_PAUSED) || (state == DownloadManager::STATE_ERROR)) { - QPalette labelPalette; - m_InstallLabel->setVisible(true); - m_Progress->setVisible(false); +void DownloadListWidgetDelegate::paintRegularDownload(int downloadIndex) const +{ + QString name = m_Manager->getFileName(downloadIndex); + if (name.length() > 53) { + name.truncate(50); + name.append("..."); + } + m_NameLabel->setText(name); + m_SizeLabel->setText(QString::number(m_Manager->getFileSize(downloadIndex) / 1024)); + DownloadManager::DownloadState state = m_Manager->getState(downloadIndex); + if ((state == DownloadManager::STATE_PAUSED) || (state == DownloadManager::STATE_ERROR)) { + QPalette labelPalette; + m_InstallLabel->setVisible(true); + m_Progress->setVisible(false); #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) - m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Paused - Double Click to resume", 0)); + m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Paused - Double Click to resume", 0)); #else - m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Paused - Double Click to resume", 0, QApplication::UnicodeUTF8)); + m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Paused - Double Click to resume", 0, QApplication::UnicodeUTF8)); #endif - labelPalette.setColor(QPalette::WindowText, Qt::darkRed); - m_InstallLabel->setPalette(labelPalette); - } else if (state == DownloadManager::STATE_FETCHINGMODINFO) { - m_InstallLabel->setText(tr("Fetching Info 1")); - m_Progress->setVisible(false); - } else if (state == DownloadManager::STATE_FETCHINGFILEINFO) { - m_InstallLabel->setText(tr("Fetching Info 2")); - m_Progress->setVisible(false); - } else if (state >= DownloadManager::STATE_READY) { - QPalette labelPalette; - m_InstallLabel->setVisible(true); - m_Progress->setVisible(false); - if (state == DownloadManager::STATE_INSTALLED) { - // the tr-macro doesn't work here, maybe because the translation is actually associated with DownloadListWidget instead - // of DownloadListWidgetDelegate? + labelPalette.setColor(QPalette::WindowText, Qt::darkRed); + m_InstallLabel->setPalette(labelPalette); + } else if (state == DownloadManager::STATE_FETCHINGMODINFO) { + m_InstallLabel->setText(tr("Fetching Info 1")); + m_Progress->setVisible(false); + } else if (state == DownloadManager::STATE_FETCHINGFILEINFO) { + m_InstallLabel->setText(tr("Fetching Info 2")); + m_Progress->setVisible(false); + } else if (state >= DownloadManager::STATE_READY) { + QPalette labelPalette; + m_InstallLabel->setVisible(true); + m_Progress->setVisible(false); + if (state == DownloadManager::STATE_INSTALLED) { + // the tr-macro doesn't work here, maybe because the translation is actually associated with DownloadListWidget instead + // of DownloadListWidgetDelegate? #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) - m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Installed - Double Click to re-install", 0)); + m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Installed - Double Click to re-install", 0)); #else - m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Installed - Double Click to re-install", 0, QApplication::UnicodeUTF8)); + m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Installed - Double Click to re-install", 0, QApplication::UnicodeUTF8)); #endif - labelPalette.setColor(QPalette::WindowText, Qt::darkGray); - } else if (state == DownloadManager::STATE_UNINSTALLED) { + labelPalette.setColor(QPalette::WindowText, Qt::darkGray); + } else if (state == DownloadManager::STATE_UNINSTALLED) { #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) - m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Uninstalled - Double Click to re-install", 0)); + m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Uninstalled - Double Click to re-install", 0)); #else - m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Uninstalled - Double Click to re-install", 0, QApplication::UnicodeUTF8)); + m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Uninstalled - Double Click to re-install", 0, QApplication::UnicodeUTF8)); #endif - labelPalette.setColor(QPalette::WindowText, Qt::lightGray); - } else { + labelPalette.setColor(QPalette::WindowText, Qt::lightGray); + } else { #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) - m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Done - Double Click to install", 0)); + m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Done - Double Click to install", 0)); #else - m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Done - Double Click to install", 0, QApplication::UnicodeUTF8)); + m_InstallLabel->setText(QApplication::translate("DownloadListWidget", "Done - Double Click to install", 0, QApplication::UnicodeUTF8)); #endif - labelPalette.setColor(QPalette::WindowText, Qt::darkGreen); - } - m_InstallLabel->setPalette(labelPalette); - if (m_Manager->isInfoIncomplete(downloadIndex)) { - m_NameLabel->setText(" " + m_NameLabel->text()); - } + labelPalette.setColor(QPalette::WindowText, Qt::darkGreen); + } + m_InstallLabel->setPalette(labelPalette); + if (m_Manager->isInfoIncomplete(downloadIndex)) { + m_NameLabel->setText(" " + m_NameLabel->text()); + } + } else { + m_InstallLabel->setVisible(false); + m_Progress->setVisible(true); + m_Progress->setValue(m_Manager->getProgress(downloadIndex)); + } +} + +void DownloadListWidgetDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + try { + auto iter = m_Cache.find(index.row()); + if (iter != m_Cache.end()) { + drawCache(painter, option, *iter); + return; + } + + m_ItemWidget->resize(QSize(m_View->columnWidth(0) + m_View->columnWidth(1) + m_View->columnWidth(2), option.rect.height())); + + int downloadIndex = index.data().toInt(); + + if (downloadIndex >= m_Manager->numTotalDownloads()) { + paintPendingDownload(downloadIndex - m_Manager->numTotalDownloads()); } else { - m_InstallLabel->setVisible(false); - m_Progress->setVisible(true); - m_Progress->setValue(m_Manager->getProgress(downloadIndex)); + paintRegularDownload(downloadIndex); } #pragma message("caching disabled because changes in the list (including resorting) doesn't work correctly") @@ -280,29 +300,32 @@ bool DownloadListWidgetDelegate::editorEvent(QEvent *event, QAbstractItemModel * QMouseEvent *mouseEvent = static_cast(event); if (mouseEvent->button() == Qt::RightButton) { QMenu menu(m_View); + bool hidden = false; m_ContextRow = qobject_cast(model)->mapToSource(index).row(); - DownloadManager::DownloadState state = m_Manager->getState(m_ContextRow); - bool hidden = m_Manager->isHidden(m_ContextRow); - if (state >= DownloadManager::STATE_READY) { - menu.addAction(tr("Install"), this, SLOT(issueInstall())); - if (m_Manager->isInfoIncomplete(m_ContextRow)) { - menu.addAction(tr("Query Info"), this, SLOT(issueQueryInfo())); + if (m_ContextRow < m_Manager->numTotalDownloads()) { + DownloadManager::DownloadState state = m_Manager->getState(m_ContextRow); + hidden = m_Manager->isHidden(m_ContextRow); + if (state >= DownloadManager::STATE_READY) { + menu.addAction(tr("Install"), this, SLOT(issueInstall())); + if (m_Manager->isInfoIncomplete(m_ContextRow)) { + menu.addAction(tr("Query Info"), this, SLOT(issueQueryInfo())); + } + menu.addAction(tr("Delete"), this, SLOT(issueDelete())); + if (hidden) { + menu.addAction(tr("Un-Hide"), this, SLOT(issueRestoreToView())); + } else { + menu.addAction(tr("Remove from View"), this, SLOT(issueRemoveFromView())); + } + } else if (state == DownloadManager::STATE_DOWNLOADING){ + menu.addAction(tr("Cancel"), this, SLOT(issueCancel())); + menu.addAction(tr("Pause"), this, SLOT(issuePause())); + } else if ((state == DownloadManager::STATE_PAUSED) || (state == DownloadManager::STATE_ERROR)) { + menu.addAction(tr("Remove"), this, SLOT(issueDelete())); + menu.addAction(tr("Resume"), this, SLOT(issueResume())); } - menu.addAction(tr("Delete"), this, SLOT(issueDelete())); - if (hidden) { - menu.addAction(tr("Un-Hide"), this, SLOT(issueRestoreToView())); - } else { - menu.addAction(tr("Remove from View"), this, SLOT(issueRemoveFromView())); - } - } else if (state == DownloadManager::STATE_DOWNLOADING){ - menu.addAction(tr("Cancel"), this, SLOT(issueCancel())); - menu.addAction(tr("Pause"), this, SLOT(issuePause())); - } else if ((state == DownloadManager::STATE_PAUSED) || (state == DownloadManager::STATE_ERROR)) { - menu.addAction(tr("Remove"), this, SLOT(issueDelete())); - menu.addAction(tr("Resume"), this, SLOT(issueResume())); - } - menu.addSeparator(); + menu.addSeparator(); + } menu.addAction(tr("Delete Installed..."), this, SLOT(issueDeleteCompleted())); menu.addAction(tr("Delete All..."), this, SLOT(issueDeleteAll())); if (!hidden) { diff --git a/src/downloadlistwidget.h b/src/downloadlistwidget.h index f5bfdbaa..80c4430a 100644 --- a/src/downloadlistwidget.h +++ b/src/downloadlistwidget.h @@ -60,6 +60,9 @@ public: virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; + void paintPendingDownload(int downloadIndex) const; + void paintRegularDownload(int downloadIndex) const; + signals: void installDownload(int index); diff --git a/src/downloadlistwidgetcompact.cpp b/src/downloadlistwidgetcompact.cpp index d2a71dd5..e2fbcd24 100644 --- a/src/downloadlistwidgetcompact.cpp +++ b/src/downloadlistwidgetcompact.cpp @@ -82,6 +82,66 @@ void DownloadListWidgetCompactDelegate::drawCache(QPainter *painter, const QStyl } +void DownloadListWidgetCompactDelegate::paintPendingDownload(int downloadIndex) const +{ + std::pair nexusids = m_Manager->getPendingDownload(downloadIndex); + m_NameLabel->setText(tr("< mod %1 file %2 >").arg(nexusids.first).arg(nexusids.second)); + if (m_SizeLabel != NULL) { + m_SizeLabel->setText("???"); + } + m_DoneLabel->setVisible(true); + m_DoneLabel->setText(tr("Pending")); + m_Progress->setVisible(false); +} + + +void DownloadListWidgetCompactDelegate::paintRegularDownload(int downloadIndex) const +{ + QString name = m_Manager->getFileName(downloadIndex); + if (name.length() > 53) { + name.truncate(50); + name.append("..."); + } + m_NameLabel->setText(name); + + DownloadManager::DownloadState state = m_Manager->getState(downloadIndex); + + if ((m_SizeLabel != NULL) && (state >= DownloadManager::STATE_READY)) { + m_SizeLabel->setText(QString::number(m_Manager->getFileSize(downloadIndex) / 1048576)); + } + + if ((state == DownloadManager::STATE_PAUSED) || (state == DownloadManager::STATE_ERROR)) { + m_DoneLabel->setVisible(true); + m_Progress->setVisible(false); + m_DoneLabel->setText(tr("Paused")); + m_DoneLabel->setForegroundRole(QPalette::Link); + } else if (state == DownloadManager::STATE_FETCHINGMODINFO) { + m_DoneLabel->setText(tr("Fetching Info 1")); + } else if (state == DownloadManager::STATE_FETCHINGFILEINFO) { + m_DoneLabel->setText(tr("Fetching Info 2")); + } else if (state >= DownloadManager::STATE_READY) { + m_DoneLabel->setVisible(true); + m_Progress->setVisible(false); + if (state == DownloadManager::STATE_INSTALLED) { + m_DoneLabel->setText(tr("Installed")); + m_DoneLabel->setForegroundRole(QPalette::Mid); + } else if (state == DownloadManager::STATE_UNINSTALLED) { + m_DoneLabel->setText(tr("Uninstalled")); + m_DoneLabel->setForegroundRole(QPalette::Dark); + } else { + m_DoneLabel->setText(tr("Done")); + m_DoneLabel->setForegroundRole(QPalette::WindowText); + } + if (m_Manager->isInfoIncomplete(downloadIndex)) { + m_NameLabel->setText(" " + m_NameLabel->text()); + } + } else { + m_DoneLabel->setVisible(false); + m_Progress->setVisible(true); + m_Progress->setValue(m_Manager->getProgress(downloadIndex)); + } +} + void DownloadListWidgetCompactDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { #pragma message("This is quite costy - room for optimization?") @@ -100,49 +160,10 @@ void DownloadListWidgetCompactDelegate::paint(QPainter *painter, const QStyleOpt } int downloadIndex = index.data().toInt(); - - QString name = m_Manager->getFileName(downloadIndex); - if (name.length() > 53) { - name.truncate(50); - name.append("..."); - } - m_NameLabel->setText(name); - - DownloadManager::DownloadState state = m_Manager->getState(downloadIndex); - - if ((m_SizeLabel != NULL) && (state >= DownloadManager::STATE_READY)) { - m_SizeLabel->setText(QString::number(m_Manager->getFileSize(downloadIndex) / 1048576)); - } - - if ((state == DownloadManager::STATE_PAUSED) || (state == DownloadManager::STATE_ERROR)) { - m_DoneLabel->setVisible(true); - m_Progress->setVisible(false); - m_DoneLabel->setText(tr("Paused")); - m_DoneLabel->setForegroundRole(QPalette::Link); - } else if (state == DownloadManager::STATE_FETCHINGMODINFO) { - m_DoneLabel->setText(tr("Fetching Info 1")); - } else if (state == DownloadManager::STATE_FETCHINGFILEINFO) { - m_DoneLabel->setText(tr("Fetching Info 2")); - } else if (state >= DownloadManager::STATE_READY) { - m_DoneLabel->setVisible(true); - m_Progress->setVisible(false); - if (state == DownloadManager::STATE_INSTALLED) { - m_DoneLabel->setText(tr("Installed")); - m_DoneLabel->setForegroundRole(QPalette::Mid); - } else if (state == DownloadManager::STATE_UNINSTALLED) { - m_DoneLabel->setText(tr("Uninstalled")); - m_DoneLabel->setForegroundRole(QPalette::Dark); - } else { - m_DoneLabel->setText(tr("Done")); - m_DoneLabel->setForegroundRole(QPalette::WindowText); - } - if (m_Manager->isInfoIncomplete(downloadIndex)) { - m_NameLabel->setText(" " + m_NameLabel->text()); - } + if (downloadIndex >= m_Manager->numTotalDownloads()) { + paintPendingDownload(downloadIndex - m_Manager->numTotalDownloads()); } else { - m_DoneLabel->setVisible(false); - m_Progress->setVisible(true); - m_Progress->setValue(m_Manager->getProgress(downloadIndex)); + paintRegularDownload(downloadIndex); } #pragma message("caching disabled because changes in the list (including resorting) doesn't work correctly") @@ -268,29 +289,32 @@ bool DownloadListWidgetCompactDelegate::editorEvent(QEvent *event, QAbstractItem QMouseEvent *mouseEvent = static_cast(event); if (mouseEvent->button() == Qt::RightButton) { QMenu menu; + bool hidden = false; m_ContextIndex = qobject_cast(model)->mapToSource(index); - DownloadManager::DownloadState state = m_Manager->getState(m_ContextIndex.row()); - bool hidden = m_Manager->isHidden(m_ContextIndex.row()); - if (state >= DownloadManager::STATE_READY) { - menu.addAction(tr("Install"), this, SLOT(issueInstall())); - if (m_Manager->isInfoIncomplete(m_ContextIndex.row())) { - menu.addAction(tr("Query Info"), this, SLOT(issueQueryInfo())); - } - menu.addAction(tr("Delete"), this, SLOT(issueDelete())); - if (hidden) { - menu.addAction(tr("Un-Hide"), this, SLOT(issueRestoreToView())); - } else { - menu.addAction(tr("Remove from View"), this, SLOT(issueRemoveFromView())); + if (m_ContextIndex.row() < m_Manager->numTotalDownloads()) { + DownloadManager::DownloadState state = m_Manager->getState(m_ContextIndex.row()); + hidden = m_Manager->isHidden(m_ContextIndex.row()); + if (state >= DownloadManager::STATE_READY) { + menu.addAction(tr("Install"), this, SLOT(issueInstall())); + if (m_Manager->isInfoIncomplete(m_ContextIndex.row())) { + menu.addAction(tr("Query Info"), this, SLOT(issueQueryInfo())); + } + menu.addAction(tr("Delete"), this, SLOT(issueDelete())); + if (hidden) { + menu.addAction(tr("Un-Hide"), this, SLOT(issueRestoreToView())); + } else { + menu.addAction(tr("Remove from View"), this, SLOT(issueRemoveFromView())); + } + } else if (state == DownloadManager::STATE_DOWNLOADING){ + menu.addAction(tr("Cancel"), this, SLOT(issueCancel())); + menu.addAction(tr("Pause"), this, SLOT(issuePause())); + } else if ((state == DownloadManager::STATE_PAUSED) || (state == DownloadManager::STATE_ERROR)) { + menu.addAction(tr("Remove"), this, SLOT(issueDelete())); + menu.addAction(tr("Resume"), this, SLOT(issueResume())); } - } else if (state == DownloadManager::STATE_DOWNLOADING){ - menu.addAction(tr("Cancel"), this, SLOT(issueCancel())); - menu.addAction(tr("Pause"), this, SLOT(issuePause())); - } else if ((state == DownloadManager::STATE_PAUSED) || (state == DownloadManager::STATE_ERROR)) { - menu.addAction(tr("Remove"), this, SLOT(issueDelete())); - menu.addAction(tr("Resume"), this, SLOT(issueResume())); - } - menu.addSeparator(); + menu.addSeparator(); + } menu.addAction(tr("Delete Installed..."), this, SLOT(issueDeleteCompleted())); menu.addAction(tr("Delete All..."), this, SLOT(issueDeleteAll())); if (!hidden) { diff --git a/src/downloadlistwidgetcompact.h b/src/downloadlistwidgetcompact.h index 05d00b9d..4d7f40de 100644 --- a/src/downloadlistwidgetcompact.h +++ b/src/downloadlistwidgetcompact.h @@ -78,6 +78,8 @@ protected: private: void drawCache(QPainter *painter, const QStyleOptionViewItem &option, const QPixmap &cache) const; + void paintPendingDownload(int downloadIndex) const; + void paintRegularDownload(int downloadIndex) const; private slots: diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 48484d24..61c5113c 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -323,6 +323,7 @@ bool DownloadManager::addDownload(QNetworkReply *reply, const QStringList &URLs, (QMessageBox::question(NULL, tr("Download again?"), tr("A file with the same name has already been downloaded. " "Do you want to download it again? The new file will receive a different name."), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No)) { + removePending(modID, fileID); delete newDownload; return false; } @@ -331,11 +332,24 @@ bool DownloadManager::addDownload(QNetworkReply *reply, const QStringList &URLs, startDownload(reply, newDownload, false); - emit update(-1); +// emit update(-1); return true; } +void DownloadManager::removePending(int modID, int fileID) +{ + emit aboutToUpdate(); + for (auto iter = m_PendingDownloads.begin(); iter != m_PendingDownloads.end(); ++iter) { + if ((iter->first == modID) && (iter->second == fileID)) { + m_PendingDownloads.erase(iter); + break; + } + } + emit update(-1); +} + + void DownloadManager::startDownload(QNetworkReply *reply, DownloadInfo *newDownload, bool resume) { newDownload->m_Reply = reply; @@ -365,11 +379,14 @@ void DownloadManager::startDownload(QNetworkReply *reply, DownloadInfo *newDownl if (!resume) { newDownload->m_PreResumeSize = newDownload->m_Output.size(); + removePending(newDownload->m_ModID, newDownload->m_FileID); + emit aboutToUpdate(); m_ActiveDownloads.append(newDownload); emit update(-1); + emit downloadAdded(); } } @@ -379,14 +396,21 @@ void DownloadManager::addNXMDownload(const QString &url) NXMUrl nxmInfo(url); QString managedGame = ToQString(MOShared::GameInfo::instance().getGameShortName()); - + qDebug("add nxm download", qPrintable(url)); if (nxmInfo.game().compare(managedGame, Qt::CaseInsensitive) != 0) { + qDebug("download requested for wrong game (game: %s, url: %s)", qPrintable(managedGame), qPrintable(nxmInfo.game())); QMessageBox::information(NULL, tr("Wrong Game"), tr("The download link is for a mod for \"%1\" but this instance of MO " "has been set up for \"%2\".").arg(nxmInfo.game()).arg(managedGame), QMessageBox::Ok); return; } - m_RequestIDs.insert(m_NexusInterface->requestFileInfo(nxmInfo.getModId(), nxmInfo.getFileId(), this, QVariant())); + emit aboutToUpdate(); + + m_PendingDownloads.append(std::make_pair(nxmInfo.modId(), nxmInfo.fileId())); + + emit update(-1); + emit downloadAdded(); + m_RequestIDs.insert(m_NexusInterface->requestFileInfo(nxmInfo.modId(), nxmInfo.fileId(), this, QVariant())); } @@ -628,6 +652,19 @@ int DownloadManager::numTotalDownloads() const return m_ActiveDownloads.size(); } +int DownloadManager::numPendingDownloads() const +{ + return m_PendingDownloads.size(); +} + +std::pair DownloadManager::getPendingDownload(int index) +{ + if ((index < 0) || (index >= m_PendingDownloads.size())) { + throw MyException(tr("invalid index")); + } + + return m_PendingDownloads.at(index); +} QString DownloadManager::getFilePath(int index) const { @@ -1025,8 +1062,8 @@ void DownloadManager::nxmFileInfoAvailable(int modID, int fileID, QVariant userD NexusInfo info; QVariantMap result = resultData.toMap(); - info.m_Name = result["name"].toString(); + qDebug("file info received for %s", qPrintable(info.m_Name)); info.m_Version = result["version"].toString(); if (info.m_Version.isEmpty()) { info.m_Version = info.m_NewestVersion; @@ -1121,9 +1158,12 @@ void DownloadManager::nxmDownloadURLsAvailable(int modID, int fileID, QVariant u m_RequestIDs.erase(idIter); } + qDebug("download urls received (modid %d, fileid %d)", modID, fileID); + NexusInfo info = userData.value(); QVariantList resultList = resultData.toList(); if (resultList.length() == 0) { + removePending(modID, fileID); emit showMessage(tr("No download server available. Please try again later.")); return; } @@ -1282,3 +1322,4 @@ void DownloadManager::directoryChanged(const QString&) { refreshList(); } + diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 099e6084..62396666 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -205,6 +205,19 @@ public: **/ int numTotalDownloads() const; + /** + * @brief retrieve number of pending downloads (nexus downloads for which we don't know the name and url yet) + * @return number of pending downloads + */ + int numPendingDownloads() const; + + /** + * @brief retrieve the info of a pending download + * @param index index of the pending download (index in the range [0, numPendingDownloads()[) + * @return pair of modid, fileid + */ + std::pair getPendingDownload(int index); + /** * @brief retrieve the full path to the download specified by index * @@ -357,6 +370,11 @@ signals: */ void downloadSpeed(const QString &serverName, int bytesPerSecond); + /** + * @brief emitted whenever a new download is added to the list + */ + void downloadAdded(); + public slots: /** @@ -440,6 +458,8 @@ private: QDateTime matchDate(const QString &timeString); + void removePending(int modID, int fileID); + private: static const int AUTOMATIC_RETRIES = 3; @@ -447,6 +467,9 @@ private: private: NexusInterface *m_NexusInterface; + + QVector > m_PendingDownloads; + QVector m_ActiveDownloads; QString m_OutputDirectory; @@ -465,4 +488,6 @@ private: }; + + #endif // DOWNLOADMANAGER_H diff --git a/src/logbuffer.cpp b/src/logbuffer.cpp index a3b6f1b5..f930cf10 100644 --- a/src/logbuffer.cpp +++ b/src/logbuffer.cpp @@ -112,13 +112,26 @@ void LogBuffer::log(QtMsgType type, const QMessageLogContext &context, const QSt #else + +char LogBuffer::msgTypeID(QtMsgType type) +{ + switch (type) { + case QtDebugMsg: return 'D'; + case QtWarningMsg: return 'W'; + case QtCriticalMsg: return 'C'; + case QtFatalMsg: return 'F'; + } +} + +#include + void LogBuffer::log(QtMsgType type, const char *message) { QMutexLocker guard(&s_Mutex); if (!s_Instance.isNull()) { s_Instance->logMessage(type, message); } - fprintf(stdout, "%s\n", message); + fprintf(stdout, "[%c] %s: %s\n", msgTypeID(type), qPrintable(QTime::currentTime().toString()), message); fflush(stdout); } diff --git a/src/logbuffer.h b/src/logbuffer.h index de5e887f..68753996 100644 --- a/src/logbuffer.h +++ b/src/logbuffer.h @@ -60,6 +60,8 @@ private: void write() const; + static char msgTypeID(QtMsgType type); + private: static QScopedPointer s_Instance; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 3a543e0b..ee7ee139 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -230,9 +230,9 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget ui->savegameList->installEventFilter(this); ui->savegameList->setMouseTracking(true); - connect(&m_DownloadManager, SIGNAL(showMessage(QString)), this, SLOT(showMessage(QString))); connect(&m_DownloadManager, SIGNAL(downloadSpeed(QString,int)), this, SLOT(downloadSpeed(QString,int))); + connect(&m_DownloadManager, SIGNAL(downloadAdded()), ui->downloadView, SLOT(scrollToBottom())); connect(ui->savegameList, SIGNAL(itemEntered(QListWidgetItem*)), this, SLOT(saveSelectionChanged(QListWidgetItem*))); @@ -780,6 +780,8 @@ void MainWindow::showEvent(QShowEvent *event) ui->groupCombo->setCurrentIndex(grouping); allowListResize(); + + m_Settings.registerAsNXMHandler(false); } @@ -4024,15 +4026,10 @@ void MainWindow::on_actionSettings_triggered() NexusInterface::instance()->setNMMVersion(m_Settings.getNMMVersion()); } + void MainWindow::on_actionNexus_triggered() { - std::wstring nxmPath = ToWString(QApplication::applicationDirPath() + "/nxmhandler.exe"); - std::wstring executable = ToWString(QApplication::applicationFilePath()); - ::ShellExecuteW(NULL, L"open", nxmPath.c_str(), - (std::wstring(L"reg ") + GameInfo::instance().getGameShortName() + L" \"" + executable + L"\"").c_str(), NULL, SW_SHOWNORMAL); - ::ShellExecuteW(NULL, L"open", GameInfo::instance().getNexusPage(false).c_str(), NULL, NULL, SW_SHOWNORMAL); - ui->tabWidget->setCurrentIndex(4); } @@ -4052,6 +4049,7 @@ void MainWindow::linkClicked(const QString &url) void MainWindow::downloadRequestedNXM(const QString &url) { QString username, password; + qDebug("download requested: %s", qPrintable(url)); if (!m_LoginAttempted && !NexusInterface::instance()->getAccessManager()->loggedIn() && (m_Settings.getNexusLogin(username, password) || diff --git a/src/messagedialog.cpp b/src/messagedialog.cpp index 4a1ef0d6..8cef1b7c 100644 --- a/src/messagedialog.cpp +++ b/src/messagedialog.cpp @@ -81,6 +81,7 @@ void MessageDialog::resizeEvent(QResizeEvent *event) void MessageDialog::showMessage(const QString &text, QWidget *reference) { + qDebug("%s", qPrintable(text)); if (reference != NULL) { MessageDialog *dialog = new MessageDialog(text, reference); dialog->show(); diff --git a/src/settings.cpp b/src/settings.cpp index 8086672a..895094f7 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -102,6 +102,15 @@ bool Settings::pluginBlacklisted(const QString &fileName) const return m_PluginBlacklist.contains(fileName); } +void Settings::registerAsNXMHandler(bool force) +{ + std::wstring nxmPath = ToWString(QCoreApplication::applicationDirPath() + "/nxmhandler.exe"); + std::wstring executable = ToWString(QCoreApplication::applicationFilePath()); + std::wstring mode = force ? L"forcereg" : L"reg"; + ::ShellExecuteW(NULL, L"open", nxmPath.c_str(), + (mode + L" " + GameInfo::instance().getGameShortName() + L" \"" + executable + L"\"").c_str(), NULL, SW_SHOWNORMAL); +} + void Settings::registerPlugin(IPlugin *plugin) { m_Plugins.push_back(plugin); diff --git a/src/settings.h b/src/settings.h index abffc94b..81174440 100644 --- a/src/settings.h +++ b/src/settings.h @@ -256,6 +256,13 @@ public: */ std::vector plugins() const { return m_Plugins; } + /** + * @brief register MO as the handler for nxm links + * @param force set to true to enforce the registration dialog to show up, + * even if the user said earlier not to + */ + void registerAsNXMHandler(bool force); + private: QString obfuscate(const QString &password) const; diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index c8908ddb..bf1f95dc 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -29,6 +29,7 @@ along with Mod Organizer. If not, see . #include #define WIN32_LEAN_AND_MEAN #include +#include "settings.h" using namespace MOBase; @@ -165,3 +166,8 @@ void SettingsDialog::deleteBlacklistItem() { ui->pluginBlacklist->takeItem(ui->pluginBlacklist->currentIndex().row()); } + +void SettingsDialog::on_associateButton_clicked() +{ + Settings::instance().registerAsNXMHandler(true); +} diff --git a/src/settingsdialog.h b/src/settingsdialog.h index 718574a0..0bd9fd23 100644 --- a/src/settingsdialog.h +++ b/src/settingsdialog.h @@ -75,6 +75,8 @@ private slots: void deleteBlacklistItem(); + void on_associateButton_clicked(); + private: Ui::SettingsDialog *ui; }; diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index 39d49a39..bda6726c 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -275,32 +275,29 @@ p, li { white-space: pre-wrap; }
        - - - QFormLayout::AllNonFixedFieldsGrow - - + + Username - + false - + Password - + false @@ -342,13 +339,40 @@ p, li { white-space: pre-wrap; } - + + + + + Associate with "Download with manager" links + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 4 + - Known Servers (Dynamically updated every download) + Known Servers (updated on download) -- cgit v1.3.1 From db09b806b9e765b5cb49a9a80f74a4440fff3027 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 5 Jan 2014 18:50:56 +0100 Subject: - Mod Organizer can now display most image types (including dds) and txt files from the data tree, presenting a comparison of variants in case of overwritten files --- src/mainwindow.cpp | 46 ++++++++++++++++++ src/mainwindow.h | 4 ++ src/modinfodialog.cpp | 15 ++---- src/organizer.pro | 13 ++++-- src/previewdialog.cpp | 57 +++++++++++++++++++++++ src/previewdialog.h | 36 ++++++++++++++ src/previewdialog.ui | 90 +++++++++++++++++++++++++++++++++++ src/previewgenerator.cpp | 111 ++++++++++++++++++++++++++++++++++++++++++++ src/previewgenerator.h | 51 ++++++++++++++++++++ src/shared/directoryentry.h | 1 + 10 files changed, 408 insertions(+), 16 deletions(-) create mode 100644 src/previewdialog.cpp create mode 100644 src/previewdialog.h create mode 100644 src/previewdialog.ui create mode 100644 src/previewgenerator.cpp create mode 100644 src/previewgenerator.h (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 1f1d5f95..80465fb9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -55,6 +55,7 @@ along with Mod Organizer. If not, see . #include "gameinfoimpl.h" #include "savetextasdialog.h" #include "problemsdialog.h" +#include "previewdialog.h" #include #include #include @@ -4372,6 +4373,44 @@ void MainWindow::unhideFile() } } +void MainWindow::previewDataFile() +{ + QString fileName = QDir::fromNativeSeparators(m_ContextItem->data(0, Qt::UserRole).toString()); + + // what we have is an absolute path to the file in its actual location (for the primary origin) + // what we want is the path relative to the virtual data directory + + // crude: we search for the next slash after the base mod directory to skip everything up to the data-relative directory + int offset = m_Settings.getModDirectory().size() + 1; + offset = fileName.indexOf("/", offset); + fileName = fileName.mid(offset + 1); + + const FileEntry::Ptr file = m_DirectoryStructure->searchFile(ToWString(fileName), NULL); + + if (file.get() == NULL) { + reportError(tr("file not found: %1").arg(fileName)); + return; + } + + // set up preview dialog + PreviewDialog preview(fileName); + auto addFunc = [&] (int originId) { + FilesOrigin &origin = m_DirectoryStructure->getOriginByID(originId); + QString filePath = QDir::fromNativeSeparators(ToQString(origin.getPath())) + "/" + fileName; + if (QFile::exists(filePath)) { + // it's very possible the file doesn't exist, because it's inside an archive. we don't support that + preview.addVariant(ToQString(origin.getName()), m_PreviewGenerator.genPreview(filePath)); + } + }; + + addFunc(file->getOrigin()); + foreach (int i, file->getAlternatives()) { + addFunc(i); + } + if (preview.numVariants() > 0) { + preview.exec(); + } +} void MainWindow::openDataFile() { @@ -4439,6 +4478,12 @@ void MainWindow::on_dataTree_customContextMenuRequested(const QPoint &pos) if ((m_ContextItem != NULL) && (m_ContextItem->childCount() == 0)) { menu.addAction(tr("Open/Execute"), this, SLOT(openDataFile())); menu.addAction(tr("Add as Executable"), this, SLOT(addAsExecutable())); + + QString fileName = m_ContextItem->text(0); + if (m_PreviewGenerator.previewSupported(QFileInfo(fileName).completeSuffix())) { + menu.addAction(tr("Preview"), this, SLOT(previewDataFile())); + } + // offer to hide/unhide file, but not for files from archives if (!m_ContextItem->data(0, Qt::UserRole + 1).toBool()) { if (m_ContextItem->text(0).endsWith(ModInfo::s_HiddenExt)) { @@ -4447,6 +4492,7 @@ void MainWindow::on_dataTree_customContextMenuRequested(const QPoint &pos) menu.addAction(tr("Hide"), this, SLOT(hideFile())); } } + menu.addSeparator(); } menu.addAction(tr("Write To File..."), this, SLOT(writeDataToFile())); diff --git a/src/mainwindow.h b/src/mainwindow.h index 31fbeef3..21c121fb 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -48,6 +48,7 @@ along with Mod Organizer. If not, see . #include "pluginlistsortproxy.h" #include "tutorialcontrol.h" #include "savegameinfowidgetgamebryo.h" +#include "previewgenerator.h" #include #include #include @@ -367,6 +368,8 @@ private: QString m_CurrentLanguage; std::vector m_Translators; + PreviewGenerator m_PreviewGenerator; + private slots: void showMessage(const QString &message); @@ -398,6 +401,7 @@ private slots: void writeDataToFile(); void openDataFile(); void addAsExecutable(); + void previewDataFile(); void hideFile(); void unhideFile(); diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 1da050ed..674e7165 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -398,19 +398,10 @@ void ModInfoDialog::on_textFileList_currentItemChanged(QListWidgetItem *current, void ModInfoDialog::openTextFile(const QString &fileName) { - QFile textFile(fileName); - textFile.open(QIODevice::ReadOnly); - QByteArray buffer = textFile.readAll(); - QTextCodec *codec = QTextCodec::codecForUtfText(buffer, m_UTF8Codec); - QString text = codec->toUnicode(buffer); - if (codec->fromUnicode(text) != buffer) { - qDebug("conversion failed assuming local encoding"); - codec = QTextCodec::codecForLocale(); - text = codec->toUnicode(buffer); - } - ui->textFileView->setText(text); + QString encoding; + ui->textFileView->setText(MOBase::readFileText(fileName, &encoding)); ui->textFileView->setProperty("currentFile", fileName); - ui->textFileView->setProperty("encoding", codec->name()); + ui->textFileView->setProperty("encoding", encoding); ui->saveTXTButton->setEnabled(false); } diff --git a/src/organizer.pro b/src/organizer.pro index 5988056e..07feb326 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -7,7 +7,7 @@ contains(QT_VERSION, "^5.*") { QT += core gui widgets network declarative script xml sql xmlpatterns } else { - QT += core gui network xml declarative script sql xmlpatterns + QT += core gui network xml declarative script sql xmlpatterns opengl } TARGET = ModOrganizer @@ -78,7 +78,9 @@ SOURCES += \ ../esptk/record.cpp \ ../esptk/espfile.cpp \ ../esptk/subrecord.cpp \ - noeditdelegate.cpp + noeditdelegate.cpp \ + previewgenerator.cpp \ + previewdialog.cpp HEADERS += \ transfersavesdialog.h \ @@ -145,7 +147,9 @@ HEADERS += \ ../esptk/espfile.h \ ../esptk/subrecord.h \ ../esptk/espexceptions.h \ - noeditdelegate.h + noeditdelegate.h \ + previewgenerator.h \ + previewdialog.h FORMS += \ transfersavesdialog.ui \ @@ -174,7 +178,8 @@ FORMS += \ activatemodsdialog.ui \ profileinputdialog.ui \ savetextasdialog.ui \ - problemsdialog.ui + problemsdialog.ui \ + previewdialog.ui INCLUDEPATH += ../shared ../archive ../uibase ../bsatk ../esptk "$(BOOSTPATH)" diff --git a/src/previewdialog.cpp b/src/previewdialog.cpp new file mode 100644 index 00000000..de33cdd0 --- /dev/null +++ b/src/previewdialog.cpp @@ -0,0 +1,57 @@ +#include "previewdialog.h" +#include "ui_previewdialog.h" +#include + +PreviewDialog::PreviewDialog(const QString &fileName, QWidget *parent) : + QDialog(parent), + ui(new Ui::PreviewDialog) +{ + ui->setupUi(this); + ui->nameLabel->setText(QFileInfo(fileName).fileName()); + ui->nextButton->setEnabled(false); + ui->previousButton->setEnabled(false); +} + +PreviewDialog::~PreviewDialog() +{ + delete ui; +} + +void PreviewDialog::addVariant(const QString &modName, QWidget *widget) +{ + widget->setProperty("modName", modName); + ui->variantsStack->addWidget(widget); + if (ui->variantsStack->count() > 1) { + ui->nextButton->setEnabled(true); + ui->previousButton->setEnabled(true); + } +} + +int PreviewDialog::numVariants() const +{ + return ui->variantsStack->count(); +} + +void PreviewDialog::on_variantsStack_currentChanged(int index) +{ + ui->modLabel->setText(ui->variantsStack->widget(index)->property("modName").toString()); +} + +void PreviewDialog::on_closeButton_clicked() +{ + this->accept(); +} + +void PreviewDialog::on_previousButton_clicked() +{ + int i = ui->variantsStack->currentIndex() - 1; + if (i < 0) { + i = ui->variantsStack->count() - 1; + } + ui->variantsStack->setCurrentIndex(i); +} + +void PreviewDialog::on_nextButton_clicked() +{ + ui->variantsStack->setCurrentIndex((ui->variantsStack->currentIndex() + 1) % ui->variantsStack->count()); +} diff --git a/src/previewdialog.h b/src/previewdialog.h new file mode 100644 index 00000000..0011bc50 --- /dev/null +++ b/src/previewdialog.h @@ -0,0 +1,36 @@ +#ifndef PREVIEWDIALOG_H +#define PREVIEWDIALOG_H + +#include + +namespace Ui { +class PreviewDialog; +} + +class PreviewDialog : public QDialog +{ + Q_OBJECT + +public: + explicit PreviewDialog(const QString &fileName, QWidget *parent = 0); + ~PreviewDialog(); + + void addVariant(const QString &modName, QWidget *widget); + int numVariants() const; + +private slots: + + void on_variantsStack_currentChanged(int arg1); + + void on_closeButton_clicked(); + + void on_previousButton_clicked(); + + void on_nextButton_clicked(); + +private: + + Ui::PreviewDialog *ui; +}; + +#endif // PREVIEWDIALOG_H diff --git a/src/previewdialog.ui b/src/previewdialog.ui new file mode 100644 index 00000000..e2dc824a --- /dev/null +++ b/src/previewdialog.ui @@ -0,0 +1,90 @@ + + + PreviewDialog + + + + 0 + 0 + 736 + 583 + + + + Preview + + + + + + + + + + + + + + + + + + + + + + + + + + :/MO/gui/previous:/MO/gui/previous + + + + + + + + + + + :/MO/gui/next:/MO/gui/next + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Close + + + + + + + + + + + + diff --git a/src/previewgenerator.cpp b/src/previewgenerator.cpp new file mode 100644 index 00000000..5b0a44d8 --- /dev/null +++ b/src/previewgenerator.cpp @@ -0,0 +1,111 @@ +/* +Copyright (C) 2014 Sebastian Herbord. All rights reserved. + +This file is part of Mod Organizer. + +Mod Organizer is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Mod Organizer is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Mod Organizer. If not, see . +*/ + +#include "previewgenerator.h" +#include +#include +#include +#include +#include +#include +#include + +PreviewGenerator::PreviewGenerator() +{ + // set up image reader to be used for all image types qt (the current installation) supports + auto imageReader = std::bind(&PreviewGenerator::genImagePreview, this, std::placeholders::_1); + + foreach (const QByteArray &fileType, QImageReader::supportedImageFormats()) { + m_PreviewGenerators[QString(fileType).toLower()] = imageReader; + } + + m_PreviewGenerators["txt"] + = std::bind(&PreviewGenerator::genTxtPreview, this, std::placeholders::_1); + + m_PreviewGenerators["dds"] + = std::bind(&PreviewGenerator::genDDSPreview, this, std::placeholders::_1); + + QDesktopWidget desk; + m_MaxSize = desk.screenGeometry().size() * 0.8; +} + +bool PreviewGenerator::previewSupported(const QString &fileExtension) const +{ + return m_PreviewGenerators.find(fileExtension.toLower()) != m_PreviewGenerators.end(); +} + +QWidget *PreviewGenerator::genPreview(const QString &fileName) const +{ + auto iter = m_PreviewGenerators.find(QFileInfo(fileName).completeSuffix().toLower()); + if (iter != m_PreviewGenerators.end()) { + return iter->second(fileName); + } else { + return nullptr; + } +} + +QWidget *PreviewGenerator::genImagePreview(const QString &fileName) const +{ + QLabel *label = new QLabel(); + label->setPixmap(QPixmap(fileName)); + return label; +} + +QWidget *PreviewGenerator::genTxtPreview(const QString &fileName) const +{ + QTextEdit *edit = new QTextEdit(); + edit->setText(MOBase::readFileText(fileName)); + edit->setReadOnly(true); + return edit; +} + +QWidget *PreviewGenerator::genDDSPreview(const QString &fileName) const +{ + QGLWidget glWidget; + glWidget.makeCurrent(); + + GLuint texture = glWidget.bindTexture(fileName); + if (!texture) + return nullptr; + + // Determine the size of the DDS image + GLint width, height; + glBindTexture(GL_TEXTURE_2D, texture); + glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); + glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); + + if (width == 0 || height == 0) + return nullptr; + + QGLPixelBuffer pbuffer(QSize(width, height), glWidget.format(), &glWidget); + if (!pbuffer.makeCurrent()) + return nullptr; + + pbuffer.drawTexture(QRectF(-1, -1, 2, 2), texture); + + QLabel *label = new QLabel(); + QImage image = pbuffer.toImage(); + if ((image.size().width() > m_MaxSize.width()) || + (image.size().height() > m_MaxSize.height())) { + image = image.scaled(m_MaxSize, Qt::KeepAspectRatio); + } + + label->setPixmap(QPixmap::fromImage(image)); + return label; +} diff --git a/src/previewgenerator.h b/src/previewgenerator.h new file mode 100644 index 00000000..4648e27e --- /dev/null +++ b/src/previewgenerator.h @@ -0,0 +1,51 @@ +/* +Copyright (C) 2014 Sebastian Herbord. All rights reserved. + +This file is part of Mod Organizer. + +Mod Organizer is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Mod Organizer is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Mod Organizer. If not, see . +*/ + +#ifndef PREVIEWGENERATOR_H +#define PREVIEWGENERATOR_H + +#include +#include +#include +#include + +class PreviewGenerator +{ +public: + PreviewGenerator(); + + bool previewSupported(const QString &fileExtension) const; + + QWidget *genPreview(const QString &fileName) const; + +private: + + QWidget *genImagePreview(const QString &fileName) const; + QWidget *genTxtPreview(const QString &fileName) const; + QWidget *genDDSPreview(const QString &fileName) const; + +private: + + std::map > m_PreviewGenerators; + + QSize m_MaxSize; + +}; + +#endif // PREVIEWGENERATOR_H diff --git a/src/shared/directoryentry.h b/src/shared/directoryentry.h index 22f00a74..ad5d179b 100644 --- a/src/shared/directoryentry.h +++ b/src/shared/directoryentry.h @@ -71,6 +71,7 @@ public: const std::vector &getAlternatives() const { return m_Alternatives; } const std::wstring &getName() const { return m_Name; } + int getOrigin() const { return m_Origin; } int getOrigin(bool &archive) const { archive = (m_Archive.length() != 0); return m_Origin; } const std::wstring &getArchive() const { return m_Archive; } bool isFromArchive() const { return m_Archive.length() != 0; } -- cgit v1.3.1 From a083a2d3b6506ab95d3b18ab0ffa7751750e0249 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 13 Jan 2014 19:32:54 +0100 Subject: - implemented hook for NtQueryDirectoryFile - saves list is now automatically updated on FS changes - optimization: data tree widget is no longer filled completely at once but one directory at a time - bugfix: pending downloads were not removed from list after a failed nxm request - bugfix: there was still a nmm.nexusmods.com link - bugfix: the text "alpha" in version strings wasn't interpreted correctly --- src/downloadmanager.cpp | 6 ++-- src/logbuffer.cpp | 2 +- src/mainwindow.cpp | 67 +++++++++++++++++++++++++++++++++++++++------ src/mainwindow.h | 5 ++++ src/modinfodialog.cpp | 2 +- src/organizer.pro | 10 ++++++- src/shared/directoryentry.h | 2 ++ 7 files changed, 81 insertions(+), 13 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index f0f4ba2d..fdc825f1 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -429,7 +429,7 @@ void DownloadManager::addNXMDownload(const QString &url) emit update(-1); emit downloadAdded(); - m_RequestIDs.insert(m_NexusInterface->requestFileInfo(nxmInfo.modId(), nxmInfo.fileId(), this, QVariant())); + m_RequestIDs.insert(m_NexusInterface->requestFileInfo(nxmInfo.modId(), nxmInfo.fileId(), this, nxmInfo.fileId())); } @@ -1201,7 +1201,7 @@ void DownloadManager::nxmDownloadURLsAvailable(int modID, int fileID, QVariant u } -void DownloadManager::nxmRequestFailed(int modID, QVariant, int requestID, const QString &errorString) +void DownloadManager::nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString) { std::set::iterator idIter = m_RequestIDs.find(requestID); if (idIter == m_RequestIDs.end()) { @@ -1225,6 +1225,8 @@ void DownloadManager::nxmRequestFailed(int modID, QVariant, int requestID, const break; } } + + removePending(modID, userData.toInt()); emit showMessage(tr("Failed to request file info from nexus: %1").arg(errorString)); } diff --git a/src/logbuffer.cpp b/src/logbuffer.cpp index f930cf10..6f3f640f 100644 --- a/src/logbuffer.cpp +++ b/src/logbuffer.cpp @@ -131,7 +131,7 @@ void LogBuffer::log(QtMsgType type, const char *message) if (!s_Instance.isNull()) { s_Instance->logMessage(type, message); } - fprintf(stdout, "[%c] %s: %s\n", msgTypeID(type), qPrintable(QTime::currentTime().toString()), message); + fprintf(stdout, "%s [%c] %s\n", qPrintable(QTime::currentTime().toString()), msgTypeID(type), message); fflush(stdout); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 80465fb9..139db3f0 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -256,13 +256,16 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget connect(&m_PluginList, SIGNAL(saveTimer()), this, SLOT(savePluginList())); connect(ui->bsaList, SIGNAL(itemsMoved()), this, SLOT(bsaList_itemMoved())); - connect(ui->bsaWarning, SIGNAL(linkActivated(QString)), this, SLOT(linkClicked(QString))); + connect(ui->dataTree, SIGNAL(itemExpanded(QTreeWidgetItem*)), this, SLOT(expandDataTreeItem(QTreeWidgetItem*))); + connect(&m_DirectoryRefresher, SIGNAL(refreshed()), this, SLOT(directory_refreshed())); connect(&m_DirectoryRefresher, SIGNAL(progress(int)), this, SLOT(refresher_progress(int))); connect(&m_DirectoryRefresher, SIGNAL(error(QString)), this, SLOT(showError(QString))); + connect(&m_SavesWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(refreshSavesIfOpen())); + connect(&m_Settings, SIGNAL(languageChanged(QString)), this, SLOT(languageChange(QString))); connect(&m_Settings, SIGNAL(styleChanged(QString)), this, SIGNAL(styleChanged(QString))); @@ -1526,21 +1529,52 @@ void MainWindow::updateTo(QTreeWidgetItem *subTree, const std::wstring &director std::vector::const_iterator current, end; directoryEntry.getSubDirectories(current, end); for (; current != end; ++current) { - QStringList columns(ToQString((*current)->getName())); + QString pathName = ToQString((*current)->getName()); + QStringList columns(pathName); columns.append(""); - QTreeWidgetItem *directoryChild = new QTreeWidgetItem(columns); - updateTo(directoryChild, temp.str(), **current, conflictsOnly); - if (directoryChild->childCount() != 0) { + if (!(*current)->isEmpty()) { + QTreeWidgetItem *directoryChild = new QTreeWidgetItem(columns); + QTreeWidgetItem *onDemandLoad = new QTreeWidgetItem(QStringList()); + onDemandLoad->setData(0, Qt::UserRole + 0, "__loaded_on_demand__"); + onDemandLoad->setData(0, Qt::UserRole + 1, ToQString(temp.str())); + onDemandLoad->setData(0, Qt::UserRole + 2, conflictsOnly); + directoryChild->addChild(onDemandLoad); subTree->addChild(directoryChild); - } else { - delete directoryChild; +/* updateTo(directoryChild, temp.str(), **current, conflictsOnly); + if (directoryChild->childCount() != 0) { + subTree->addChild(directoryChild); + } else { + delete directoryChild; + }*/ } } } + subTree->sortChildren(0, Qt::AscendingOrder); } +void MainWindow::expandDataTreeItem(QTreeWidgetItem *item) +{ + if ((item->childCount() == 1) && (item->child(0)->data(0, Qt::UserRole).toString() == "__loaded_on_demand__")) { + // read the data we need from the sub-item, then dispose of it + QTreeWidgetItem *onDemandDataItem = item->child(0); + std::wstring path = ToWString(onDemandDataItem->data(0, Qt::UserRole + 1).toString()); + bool conflictsOnly = onDemandDataItem->data(0, Qt::UserRole + 2).toBool(); + item->removeChild(onDemandDataItem); + + std::wstring virtualPath = (path + L"\\").substr(6) + ToWString(item->text(0)); + DirectoryEntry *dir = m_DirectoryStructure->findSubDirectoryRecursive(virtualPath); + if (dir != NULL) { + updateTo(item, path, *dir, conflictsOnly); + } else { + qWarning("failed to update view of %ls", path.c_str()); + } + + } +} + + bool MainWindow::refreshProfiles(bool selectProfile) { QComboBox* profileBox = findChild("profileBox"); @@ -1665,6 +1699,14 @@ void MainWindow::refreshDataTree() } +void MainWindow::refreshSavesIfOpen() +{ + if (ui->tabWidget->currentIndex() == 3) { + refreshSaveList(); + } +} + + void MainWindow::refreshSaveList() { ui->savegameList->clear(); @@ -1680,6 +1722,8 @@ void MainWindow::refreshSaveList() savesDir.setPath(QDir::fromNativeSeparators(ToQString(GameInfo::instance().getDocumentsDir() + L"\\" + path))); } + m_SavesWatcher.addPath(savesDir.absolutePath()); + QStringList filters; filters << ToQString(GameInfo::instance().getSaveGameExtension()); savesDir.setNameFilters(filters); @@ -4399,7 +4443,12 @@ void MainWindow::previewDataFile() QString filePath = QDir::fromNativeSeparators(ToQString(origin.getPath())) + "/" + fileName; if (QFile::exists(filePath)) { // it's very possible the file doesn't exist, because it's inside an archive. we don't support that - preview.addVariant(ToQString(origin.getName()), m_PreviewGenerator.genPreview(filePath)); + QWidget *wid = m_PreviewGenerator.genPreview(filePath); + if (wid == NULL) { + reportError(tr("failed to generate preview for %1").arg(filePath)); + } else { + preview.addVariant(ToQString(origin.getName()), wid); + } } }; @@ -4409,6 +4458,8 @@ void MainWindow::previewDataFile() } if (preview.numVariants() > 0) { preview.exec(); + } else { + QMessageBox::information(this, tr("Sorry"), tr("Sorry, can't preview anything. This function currently does not support extracting from bsas.")); } } diff --git a/src/mainwindow.h b/src/mainwindow.h index 21c121fb..59bee7bb 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -370,6 +370,8 @@ private: PreviewGenerator m_PreviewGenerator; + QFileSystemWatcher m_SavesWatcher; + private slots: void showMessage(const QString &message); @@ -523,6 +525,9 @@ private slots: void ignoreUpdate(); void unignoreUpdate(); + void refreshSavesIfOpen(); + void expandDataTreeItem(QTreeWidgetItem *item); + private slots: // ui slots // actions void on_actionAdd_Profile_triggered(); diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 674e7165..7f221bdc 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -766,7 +766,7 @@ void ModInfoDialog::activateNexusTab() QLineEdit *modIDEdit = findChild("modIDEdit"); int modID = modIDEdit->text().toInt(); if (modID != 0) { - QString nexusLink = QString("%1/downloads/file.php?id=%2").arg(ToQString(GameInfo::instance().getNexusPage())).arg(modID); + QString nexusLink = QString("%1/downloads/file.php?id=%2").arg(ToQString(GameInfo::instance().getNexusPage(false))).arg(modID); QLabel *visitNexusLabel = findChild("visitNexusLabel"); visitNexusLabel->setText(tr("Visit on Nexus").arg(nexusLink)); visitNexusLabel->setToolTip(nexusLink); diff --git a/src/organizer.pro b/src/organizer.pro index 07feb326..25384e69 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -80,7 +80,15 @@ SOURCES += \ ../esptk/subrecord.cpp \ noeditdelegate.cpp \ previewgenerator.cpp \ - previewdialog.cpp + previewdialog.cpp \ + gl/gltexloaders.cpp \ + gl/dds/dds_api.cpp \ + gl/dds/Image.cpp \ + gl/dds/DirectDrawSurface.cpp \ + gl/dds/Stream.cpp \ + gl/dds/BlockDXT.cpp \ + gl/dds/ColorBlock.cpp + HEADERS += \ transfersavesdialog.h \ diff --git a/src/shared/directoryentry.h b/src/shared/directoryentry.h index ad5d179b..15af5e9e 100644 --- a/src/shared/directoryentry.h +++ b/src/shared/directoryentry.h @@ -205,6 +205,8 @@ public: void clear(); bool isPopulated() const { return m_Populated; } + bool isEmpty() const { return (m_Files.size() == 0) && (m_SubDirectories.size() == 0); } + const DirectoryEntry *getParent() const { return m_Parent; } // add files to this directory (and subdirectories) from the specified origin. That origin may exist or not -- cgit v1.3.1 From 6ed82866b07414e91dfe0c47ee5f580bfd4fe479 Mon Sep 17 00:00:00 2001 From: Tannin Date: Tue, 14 Jan 2014 21:16:36 +0100 Subject: - moved code for file previews to plugins --- .hgignore | 7 +++++ src/mainwindow.cpp | 6 ++++ src/organizer.pro | 9 +----- src/pluginlist.cpp | 5 +++- src/previewgenerator.cpp | 76 +++++++----------------------------------------- src/previewgenerator.h | 6 ++-- src/version.rc | 4 +-- 7 files changed, 34 insertions(+), 79 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/.hgignore b/.hgignore index a74e95aa..0e3fc185 100644 --- a/.hgignore +++ b/.hgignore @@ -13,3 +13,10 @@ source - Copy/* ModOrganizer-build-* pdbs/* source/NCC/BossDummy.x/* +*.ts +staging_prepare/* +staging_trans/* +tools/python_zip/* +Makefile +syntax: regexp +Makefile\.(Debug|Release) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 139db3f0..76bff3a0 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1017,6 +1017,12 @@ bool MainWindow::registerPlugin(QObject *plugin, const QString &fileName) return true; } } + { // preview plugins + IPluginPreview *preview = qobject_cast(plugin); + if (verifyPlugin(preview)) { + m_PreviewGenerator.registerPlugin(preview); + } + } { // proxy plugins IPluginProxy *proxy = qobject_cast(plugin); if (verifyPlugin(proxy)) { diff --git a/src/organizer.pro b/src/organizer.pro index 25384e69..dd745edb 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -80,14 +80,7 @@ SOURCES += \ ../esptk/subrecord.cpp \ noeditdelegate.cpp \ previewgenerator.cpp \ - previewdialog.cpp \ - gl/gltexloaders.cpp \ - gl/dds/dds_api.cpp \ - gl/dds/Image.cpp \ - gl/dds/DirectDrawSurface.cpp \ - gl/dds/Stream.cpp \ - gl/dds/BlockDXT.cpp \ - gl/dds/ColorBlock.cpp + previewdialog.cpp HEADERS += \ diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 20d4d357..a0045ab3 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -312,6 +312,7 @@ bool PluginList::readLoadOrder(const QString &fileName) void PluginList::readEnabledFrom(const QString &fileName) { +qDebug("read enabled from %s", qPrintable(fileName)); for (std::vector::iterator iter = m_ESPs.begin(); iter != m_ESPs.end(); ++iter) { if (!iter->m_ForceEnabled) { iter->m_Enabled = false; @@ -389,7 +390,7 @@ void PluginList::writePlugins(const QString &fileName, bool writeUnchecked) cons file.write(textCodec->fromUnicode("# This file was automatically generated by Mod Organizer.\r\n")); bool invalidFileNames = false; - + int writtenCount = 0; for (size_t i = 0; i < m_ESPs.size(); ++i) { int priority = m_ESPsByPriority[i]; if ((m_ESPs[priority].m_Enabled || writeUnchecked) && !m_ESPs[priority].m_Removed) { @@ -401,6 +402,7 @@ void PluginList::writePlugins(const QString &fileName, bool writeUnchecked) cons file.write(textCodec->fromUnicode(m_ESPs[priority].m_Name)); } file.write("\r\n"); + ++writtenCount; } } file.close(); @@ -783,6 +785,7 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const bool PluginList::setData(const QModelIndex &modIndex, const QVariant &value, int role) { if (role == Qt::CheckStateRole) { +qDebug("uncheck plugin"); m_ESPs[modIndex.row()].m_Enabled = value.toInt() == Qt::Checked; emit dataChanged(modIndex, modIndex); diff --git a/src/previewgenerator.cpp b/src/previewgenerator.cpp index 5b0a44d8..764d016d 100644 --- a/src/previewgenerator.cpp +++ b/src/previewgenerator.cpp @@ -22,90 +22,34 @@ along with Mod Organizer. If not, see . #include #include #include -#include #include #include PreviewGenerator::PreviewGenerator() { - // set up image reader to be used for all image types qt (the current installation) supports - auto imageReader = std::bind(&PreviewGenerator::genImagePreview, this, std::placeholders::_1); - - foreach (const QByteArray &fileType, QImageReader::supportedImageFormats()) { - m_PreviewGenerators[QString(fileType).toLower()] = imageReader; - } - - m_PreviewGenerators["txt"] - = std::bind(&PreviewGenerator::genTxtPreview, this, std::placeholders::_1); - - m_PreviewGenerators["dds"] - = std::bind(&PreviewGenerator::genDDSPreview, this, std::placeholders::_1); QDesktopWidget desk; m_MaxSize = desk.screenGeometry().size() * 0.8; } -bool PreviewGenerator::previewSupported(const QString &fileExtension) const +void PreviewGenerator::registerPlugin(MOBase::IPluginPreview *plugin) { - return m_PreviewGenerators.find(fileExtension.toLower()) != m_PreviewGenerators.end(); -} - -QWidget *PreviewGenerator::genPreview(const QString &fileName) const -{ - auto iter = m_PreviewGenerators.find(QFileInfo(fileName).completeSuffix().toLower()); - if (iter != m_PreviewGenerators.end()) { - return iter->second(fileName); - } else { - return nullptr; + foreach (const QString &extension, plugin->supportedExtensions()) { + m_PreviewPlugins.insert(std::make_pair(extension, plugin)); } } -QWidget *PreviewGenerator::genImagePreview(const QString &fileName) const -{ - QLabel *label = new QLabel(); - label->setPixmap(QPixmap(fileName)); - return label; -} - -QWidget *PreviewGenerator::genTxtPreview(const QString &fileName) const +bool PreviewGenerator::previewSupported(const QString &fileExtension) const { - QTextEdit *edit = new QTextEdit(); - edit->setText(MOBase::readFileText(fileName)); - edit->setReadOnly(true); - return edit; + return m_PreviewPlugins.find(fileExtension.toLower()) != m_PreviewPlugins.end(); } -QWidget *PreviewGenerator::genDDSPreview(const QString &fileName) const +QWidget *PreviewGenerator::genPreview(const QString &fileName) const { - QGLWidget glWidget; - glWidget.makeCurrent(); - - GLuint texture = glWidget.bindTexture(fileName); - if (!texture) - return nullptr; - - // Determine the size of the DDS image - GLint width, height; - glBindTexture(GL_TEXTURE_2D, texture); - glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); - glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); - - if (width == 0 || height == 0) - return nullptr; - - QGLPixelBuffer pbuffer(QSize(width, height), glWidget.format(), &glWidget); - if (!pbuffer.makeCurrent()) + auto iter = m_PreviewPlugins.find(QFileInfo(fileName).completeSuffix().toLower()); + if (iter != m_PreviewPlugins.end()) { + return iter->second->genFilePreview(fileName, m_MaxSize); + } else { return nullptr; - - pbuffer.drawTexture(QRectF(-1, -1, 2, 2), texture); - - QLabel *label = new QLabel(); - QImage image = pbuffer.toImage(); - if ((image.size().width() > m_MaxSize.width()) || - (image.size().height() > m_MaxSize.height())) { - image = image.scaled(m_MaxSize, Qt::KeepAspectRatio); } - - label->setPixmap(QPixmap::fromImage(image)); - return label; } diff --git a/src/previewgenerator.h b/src/previewgenerator.h index 4648e27e..e872b06b 100644 --- a/src/previewgenerator.h +++ b/src/previewgenerator.h @@ -24,12 +24,15 @@ along with Mod Organizer. If not, see . #include #include #include +#include class PreviewGenerator { public: PreviewGenerator(); + void registerPlugin(MOBase::IPluginPreview *plugin); + bool previewSupported(const QString &fileExtension) const; QWidget *genPreview(const QString &fileName) const; @@ -38,11 +41,10 @@ private: QWidget *genImagePreview(const QString &fileName) const; QWidget *genTxtPreview(const QString &fileName) const; - QWidget *genDDSPreview(const QString &fileName) const; private: - std::map > m_PreviewGenerators; + std::map m_PreviewPlugins; QSize m_MaxSize; diff --git a/src/version.rc b/src/version.rc index 83c59d21..1beee814 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,0,13,0 -#define VER_FILEVERSION_STR "1,0,13,0\0" +#define VER_FILEVERSION 1,1,0,0 +#define VER_FILEVERSION_STR "1,1,0,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 40d20ab294ad7afd4b5747b306e45d0f8712a386 Mon Sep 17 00:00:00 2001 From: Tannin Date: Thu, 16 Jan 2014 20:43:42 +0100 Subject: - added an about dialog - updated json library --- src/aboutdialog.cpp | 82 +++ src/aboutdialog.h | 69 ++ src/aboutdialog.ui | 295 +++++++++ src/downloadmanager.cpp | 1 - src/json.cpp | 1110 +++++++++++++++----------------- src/json.h | 298 +++------ src/logbuffer.cpp | 1 + src/mainwindow.cpp | 9 + src/mainwindow.h | 1 + src/modinfodialog.cpp | 3 - src/modlist.cpp | 2 +- src/nexusinterface.cpp | 5 +- src/organizer.pro | 16 +- src/resources/emblem-favorite - 64.png | Bin 0 -> 3710 bytes 14 files changed, 1087 insertions(+), 805 deletions(-) create mode 100644 src/aboutdialog.cpp create mode 100644 src/aboutdialog.h create mode 100644 src/aboutdialog.ui create mode 100644 src/resources/emblem-favorite - 64.png (limited to 'src/mainwindow.cpp') diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp new file mode 100644 index 00000000..94e4e54c --- /dev/null +++ b/src/aboutdialog.cpp @@ -0,0 +1,82 @@ +/* +Copyright (C) 2014 Sebastian Herbord. All rights reserved. + +This file is part of Mod Organizer. + +Mod Organizer is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Mod Organizer is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Mod Organizer. If not, see . +*/ + + +#include "aboutdialog.h" +#include "ui_aboutdialog.h" +#include + + +AboutDialog::AboutDialog(const QString &version, QWidget *parent) + : QDialog(parent) + , ui(new Ui::AboutDialog) +{ + ui->setupUi(this); + + m_LicenseFiles[LICENSE_LGPL3] = "lgpl-3.0.txt"; + m_LicenseFiles[LICENSE_GPL3] = "gpl-3.0.txt"; + m_LicenseFiles[LICENSE_BSD3] = "bsd3.txt"; + m_LicenseFiles[LICENSE_BOOST] = "boost.txt"; + m_LicenseFiles[LICENSE_CCBY3] = "by-sa3.txt"; + m_LicenseFiles[LICENSE_ZLIB] = "zlib.txt"; + + addLicense("Qt 4.8.5", LICENSE_LGPL3); + addLicense("Qt Json", LICENSE_GPL3); + addLicense("Boost Library", LICENSE_BOOST); + addLicense("Tango Icon Theme", LICENSE_NONE); + addLicense("RRZE Icon Set", LICENSE_CCBY3); + addLicense("7-zip", LICENSE_LGPL3); + addLicense("ZLib", LICENSE_ZLIB); + addLicense("NIF File Format Library", LICENSE_BSD3); + + ui->nameLabel->setText(QString("%1 %2").arg(ui->nameLabel->text()).arg(version)); +#ifdef HGID + ui->revisionLabel->setText(ui->revisionLabel->text() + " " + HGID); +#else + ui->revisionLabel->setText(ui->revisionLabel->text() + " unknown"); +#endif +} + + +AboutDialog::~AboutDialog() +{ + delete ui; +} + + +void AboutDialog::addLicense(const QString &name, Licenses license) +{ + QListWidgetItem *item = new QListWidgetItem(name); + item->setData(Qt::UserRole, license); + ui->creditsList->addItem(item); +} + + +void AboutDialog::on_creditsList_currentItemChanged(QListWidgetItem *current, QListWidgetItem*) +{ + auto iter = m_LicenseFiles.find(current->data(Qt::UserRole).toInt()); + if (iter != m_LicenseFiles.end()) { + QString filePath = qApp->applicationDirPath() + "/license/" + iter->second; +qDebug("%s", qPrintable(filePath)); + QString text = MOBase::readFileText(filePath); + ui->licenseText->setText(text); + } else { + ui->licenseText->setText(tr("No license")); + } +} diff --git a/src/aboutdialog.h b/src/aboutdialog.h new file mode 100644 index 00000000..9c0901a8 --- /dev/null +++ b/src/aboutdialog.h @@ -0,0 +1,69 @@ +#ifndef ABOUTDIALOG_H +/* +Copyright (C) 2014 Sebastian Herbord. All rights reserved. + +This file is part of Mod Organizer. + +Mod Organizer is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Mod Organizer is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Mod Organizer. If not, see . +*/ + + +#define ABOUTDIALOG_H + +#include +#include +#include +#include +#include + +namespace Ui { + class AboutDialog; +} + +class AboutDialog : public QDialog +{ + Q_OBJECT + +public: + explicit AboutDialog(const QString &version, QWidget *parent = 0); + ~AboutDialog(); + +private: + + enum Licenses { + LICENSE_NONE, + LICENSE_LGPL3, + LICENSE_GPL3, + LICENSE_BSD3, + LICENSE_BOOST, + LICENSE_CCBY3, + LICENSE_ZLIB + }; + +private: + + void addLicense(const QString &name, Licenses license); + +private slots: + void on_creditsList_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous); + +private: + + Ui::AboutDialog *ui; + + std::map m_LicenseFiles; + +}; + +#endif // ABOUTDIALOG_H diff --git a/src/aboutdialog.ui b/src/aboutdialog.ui new file mode 100644 index 00000000..985700db --- /dev/null +++ b/src/aboutdialog.ui @@ -0,0 +1,295 @@ + + + AboutDialog + + + + 0 + 0 + 508 + 335 + + + + About + + + + + + + + + + + + + :/MO/gui/mo_icon.ico + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + 0 + + + + About + + + + + + Mod Organizer + + + + + + + Revision: + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Copyright 2011-2014 Sebastian Herbord + + + + + + + <html><head/><body><p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p><p>See the GNU General Public License for more details.</p></body></html> + + + true + + + + + + + + Used Software + + + + + + + + + + + + + Credits + + + + + + Translators + + + + + + QAbstractItemView::NoSelection + + + + pndrev (German) + + + + + DaWul (Spanish) + + + + + Fiama (Spanish) + + + + + Alyndiar (French) + + + + + Jlkawaii (French) + + + + + Rigoletto (French) + + + + + Scythe1912 (Chinese) + + + + + yc0620shen (Chinese) + + + + + miraclefreak (Czech) + + + + + tokcdk (Russian) + + + + + + + + + + + Others + + + + + + QAbstractItemView::NoSelection + + + + blacksol + + + + + DoubleYou + + + + + deathneko11 + + + + + Bridger + + + + + GSDFan + + + + + Uhuru + + + + + Wolverine2710 + + + + + z929669 + + + + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Close + + + + + + + + + + + + + closeButton + clicked() + AboutDialog + accept() + + + 460 + 313 + + + 253 + 167 + + + + + diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index fdc825f1..dd320f70 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -37,7 +37,6 @@ along with Mod Organizer. If not, see . #include -using QtJson::Json; using namespace MOBase; diff --git a/src/json.cpp b/src/json.cpp index 7bfaed39..ca2d728f 100644 --- a/src/json.cpp +++ b/src/json.cpp @@ -1,588 +1,522 @@ -/* Copyright 2011 Eeli Reilin. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO - * EVENT SHALL EELI REILIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation - * are those of the authors and should not be interpreted as representing - * official policies, either expressed or implied, of Eeli Reilin. - */ - -/** - * \file json.cpp - */ - -#include "json.h" -#include - -namespace QtJson -{ - - -static QString sanitizeString(QString str) -{ - str.replace(QLatin1String("\\"), QLatin1String("\\\\")); - str.replace(QLatin1String("\""), QLatin1String("\\\"")); - str.replace(QLatin1String("\b"), QLatin1String("\\b")); - str.replace(QLatin1String("\f"), QLatin1String("\\f")); - str.replace(QLatin1String("\n"), QLatin1String("\\n")); - str.replace(QLatin1String("\r"), QLatin1String("\\r")); - str.replace(QLatin1String("\t"), QLatin1String("\\t")); - return QString(QLatin1String("\"%1\"")).arg(str); -} - -static QByteArray join(const QList &list, const QByteArray &sep) -{ - QByteArray res; - Q_FOREACH(const QByteArray &i, list) - { - if(!res.isEmpty()) - { - res += sep; - } - res += i; - } - return res; -} - -/** - * parse - */ -QVariant Json::parse(const QString &json) -{ - bool success = true; - return Json::parse(json, success); -} - -/** - * parse - */ -QVariant Json::parse(const QString &json, bool &success) -{ - success = true; - - //Return an empty QVariant if the JSON data is either null or empty - if(!json.isNull() || !json.isEmpty()) - { - QString data = json; - //We'll start from index 0 - int index = 0; - - //Parse the first value - QVariant value = Json::parseValue(data, index, success); - - //Return the parsed value - return value; - } - else - { - //Return the empty QVariant - return QVariant(); - } -} - -QByteArray Json::serialize(const QVariant &data) -{ - bool success = true; - return Json::serialize(data, success); -} - -QByteArray Json::serialize(const QVariant &data, bool &success) -{ - QByteArray str; - success = true; - - if(!data.isValid()) // invalid or null? - { - str = "null"; - } - else if((data.type() == QVariant::List) || (data.type() == QVariant::StringList)) // variant is a list? - { - QList values; - const QVariantList list = data.toList(); - Q_FOREACH(const QVariant& v, list) - { - QByteArray serializedValue = serialize(v); - if(serializedValue.isNull()) - { - success = false; - break; - } - values << serializedValue; - } - - str = "[ " + join( values, ", " ) + " ]"; - } - else if(data.type() == QVariant::Map) // variant is a map? - { - const QVariantMap vmap = data.toMap(); - QMapIterator it( vmap ); - str = "{ "; - QList pairs; - while(it.hasNext()) - { - it.next(); - QByteArray serializedValue = serialize(it.value()); - if(serializedValue.isNull()) - { - success = false; - break; - } - pairs << sanitizeString(it.key()).toUtf8() + " : " + serializedValue; - } - str += join(pairs, ", "); - str += " }"; - } - else if((data.type() == QVariant::String) || (data.type() == QVariant::ByteArray)) // a string or a byte array? - { - str = sanitizeString(data.toString()).toUtf8(); - } - else if(data.type() == QVariant::Double) // double? - { - str = QByteArray::number(data.toDouble()); - if(!str.contains(".") && ! str.contains("e")) - { - str += ".0"; - } - } - else if (data.type() == QVariant::Bool) // boolean value? - { - str = data.toBool() ? "true" : "false"; - } - else if (data.type() == QVariant::ULongLong) // large unsigned number? - { - str = QByteArray::number(data.value()); - } - else if ( data.canConvert() ) // any signed number? - { - str = QByteArray::number(data.value()); - } - else if (data.canConvert()) - { - str = sanitizeString(QString::number(data.value())).toUtf8(); - } - else if (data.canConvert()) // can value be converted to string? - { - // this will catch QDate, QDateTime, QUrl, ... - str = sanitizeString(data.toString()).toUtf8(); - } - else - { - success = false; - } - if (success) - { - return str; - } - else - { - return QByteArray(); - } -} - -/** - * parseValue - */ -QVariant Json::parseValue(const QString &json, int &index, bool &success) -{ - //Determine what kind of data we should parse by - //checking out the upcoming token - switch(Json::lookAhead(json, index)) - { - case JsonTokenString: - return Json::parseString(json, index, success); - case JsonTokenNumber: - return Json::parseNumber(json, index); - case JsonTokenCurlyOpen: - return Json::parseObject(json, index, success); - case JsonTokenSquaredOpen: - return Json::parseArray(json, index, success); - case JsonTokenTrue: - Json::nextToken(json, index); - return QVariant(true); - case JsonTokenFalse: - Json::nextToken(json, index); - return QVariant(false); - case JsonTokenNull: - Json::nextToken(json, index); - return QVariant(); - case JsonTokenNone: - break; - } - - //If there were no tokens, flag the failure and return an empty QVariant - success = false; - return QVariant(); -} - -/** - * parseObject - */ -QVariant Json::parseObject(const QString &json, int &index, bool &success) -{ - QVariantMap map; - int token; - - //Get rid of the whitespace and increment index - Json::nextToken(json, index); - - //Loop through all of the key/value pairs of the object - bool done = false; - while(!done) - { - //Get the upcoming token - token = Json::lookAhead(json, index); - - if(token == JsonTokenNone) - { - success = false; - return QVariantMap(); - } - else if(token == JsonTokenComma) - { - Json::nextToken(json, index); - } - else if(token == JsonTokenCurlyClose) - { - Json::nextToken(json, index); - return map; - } - else - { - //Parse the key/value pair's name - QString name = Json::parseString(json, index, success).toString(); - - if(!success) - { - return QVariantMap(); - } - - //Get the next token - token = Json::nextToken(json, index); - - //If the next token is not a colon, flag the failure - //return an empty QVariant - if(token != JsonTokenColon) - { - success = false; - return QVariant(QVariantMap()); - } - - //Parse the key/value pair's value - QVariant value = Json::parseValue(json, index, success); - - if(!success) - { - return QVariantMap(); - } - - //Assign the value to the key in the map - map[name] = value; - } - } - - //Return the map successfully - return QVariant(map); -} - -/** - * parseArray - */ -QVariant Json::parseArray(const QString &json, int &index, bool &success) -{ - QVariantList list; - - Json::nextToken(json, index); - - bool done = false; - while(!done) - { - int token = Json::lookAhead(json, index); - - if(token == JsonTokenNone) - { - success = false; - return QVariantList(); - } - else if(token == JsonTokenComma) - { - Json::nextToken(json, index); - } - else if(token == JsonTokenSquaredClose) - { - Json::nextToken(json, index); - break; - } - else - { - QVariant value = Json::parseValue(json, index, success); - - if(!success) - { - return QVariantList(); - } - - list.push_back(value); - } - } - - return QVariant(list); -} - -/** - * parseString - */ -QVariant Json::parseString(const QString &json, int &index, bool &success) -{ - QString s; - QChar c; - - Json::eatWhitespace(json, index); - - c = json[index++]; - - bool complete = false; - while(!complete) - { - if(index == json.size()) - { - break; - } - - c = json[index++]; - - if(c == '\"') - { - complete = true; - break; - } - else if(c == '\\') - { - if(index == json.size()) - { - break; - } - - c = json[index++]; - - if(c == '\"') - { - s.append('\"'); - } - else if(c == '\\') - { - s.append('\\'); - } - else if(c == '/') - { - s.append('/'); - } - else if(c == 'b') - { - s.append('\b'); - } - else if(c == 'f') - { - s.append('\f'); - } - else if(c == 'n') - { - s.append('\n'); - } - else if(c == 'r') - { - s.append('\r'); - } - else if(c == 't') - { - s.append('\t'); - } - else if(c == 'u') - { - int remainingLength = json.size() - index; - - if(remainingLength >= 4) - { - QString unicodeStr = json.mid(index, 4); - - int symbol = unicodeStr.toInt(0, 16); - - s.append(QChar(symbol)); - - index += 4; - } - else - { - break; - } - } - } - else - { - s.append(c); - } - } - - if(!complete) - { - success = false; - return QVariant(); - } - - return QVariant(s); -} - -/** - * parseNumber - */ -QVariant Json::parseNumber(const QString &json, int &index) -{ - Json::eatWhitespace(json, index); - - int lastIndex = Json::lastIndexOfNumber(json, index); - int charLength = (lastIndex - index) + 1; - QString numberStr; - - numberStr = json.mid(index, charLength); - - index = lastIndex + 1; - - if (numberStr.contains('.')) { - return QVariant(numberStr.toDouble(NULL)); - } else if (numberStr.startsWith('-')) { - return QVariant(numberStr.toLongLong(NULL)); - } else { - return QVariant(numberStr.toULongLong(NULL)); - } -} - -/** - * lastIndexOfNumber - */ -int Json::lastIndexOfNumber(const QString &json, int index) -{ - int lastIndex; - - for(lastIndex = index; lastIndex < json.size(); lastIndex++) - { - if(QString("0123456789+-.eE").indexOf(json[lastIndex]) == -1) - { - break; - } - } - - return lastIndex -1; -} - -/** - * eatWhitespace - */ -void Json::eatWhitespace(const QString &json, int &index) -{ - for(; index < json.size(); index++) - { - if(QString(" \t\n\r").indexOf(json[index]) == -1) - { - break; - } - } -} - -/** - * lookAhead - */ -int Json::lookAhead(const QString &json, int index) -{ - int saveIndex = index; - return Json::nextToken(json, saveIndex); -} - -/** - * nextToken - */ -int Json::nextToken(const QString &json, int &index) -{ - Json::eatWhitespace(json, index); - - if(index == json.size()) - { - return JsonTokenNone; - } - - QChar c = json[index]; - index++; - switch(c.toLatin1()) - { - case '{': return JsonTokenCurlyOpen; - case '}': return JsonTokenCurlyClose; - case '[': return JsonTokenSquaredOpen; - case ']': return JsonTokenSquaredClose; - case ',': return JsonTokenComma; - case '"': return JsonTokenString; - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - case '-': return JsonTokenNumber; - case ':': return JsonTokenColon; - } - - index--; - - int remainingLength = json.size() - index; - - //True - if(remainingLength >= 4) - { - if (json[index] == 't' && json[index + 1] == 'r' && - json[index + 2] == 'u' && json[index + 3] == 'e') - { - index += 4; - return JsonTokenTrue; - } - } - - //False - if (remainingLength >= 5) - { - if (json[index] == 'f' && json[index + 1] == 'a' && - json[index + 2] == 'l' && json[index + 3] == 's' && - json[index + 4] == 'e') - { - index += 5; - return JsonTokenFalse; - } - } - - //Null - if (remainingLength >= 4) - { - if (json[index] == 'n' && json[index + 1] == 'u' && - json[index + 2] == 'l' && json[index + 3] == 'l') - { - index += 4; - return JsonTokenNull; - } - } - - return JsonTokenNone; -} - - -} //end namespace +/** + * QtJson - A simple class for parsing JSON data into a QVariant hierarchies and vice-versa. + * Copyright (C) 2011 Eeli Reilin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file json.cpp + */ + +#include "json.h" + +namespace QtJson { + static QString sanitizeString(QString str); + static QByteArray join(const QList &list, const QByteArray &sep); + static QVariant parseValue(const QString &json, int &index, bool &success); + static QVariant parseObject(const QString &json, int &index, bool &success); + static QVariant parseArray(const QString &json, int &index, bool &success); + static QVariant parseString(const QString &json, int &index, bool &success); + static QVariant parseNumber(const QString &json, int &index); + static int lastIndexOfNumber(const QString &json, int index); + static void eatWhitespace(const QString &json, int &index); + static int lookAhead(const QString &json, int index); + static int nextToken(const QString &json, int &index); + + template + QByteArray serializeMap(const T &map, bool &success) { + QByteArray str = "{ "; + QList pairs; + for (typename T::const_iterator it = map.begin(), itend = map.end(); it != itend; ++it) { + QByteArray serializedValue = serialize(it.value()); + if (serializedValue.isNull()) { + success = false; + break; + } + pairs << sanitizeString(it.key()).toUtf8() + " : " + serializedValue; + } + + str += join(pairs, ", "); + str += " }"; + return str; + } + + + /** + * parse + */ + QVariant parse(const QString &json) { + bool success = true; + return parse(json, success); + } + + /** + * parse + */ + QVariant parse(const QString &json, bool &success) { + success = true; + + // Return an empty QVariant if the JSON data is either null or empty + if (!json.isNull() || !json.isEmpty()) { + QString data = json; + // We'll start from index 0 + int index = 0; + + // Parse the first value + QVariant value = parseValue(data, index, success); + + // Return the parsed value + return value; + } else { + // Return the empty QVariant + return QVariant(); + } + } + + QByteArray serialize(const QVariant &data) { + bool success = true; + return serialize(data, success); + } + + QByteArray serialize(const QVariant &data, bool &success) { + QByteArray str; + success = true; + + if (!data.isValid()) { // invalid or null? + str = "null"; + } else if ((data.type() == QVariant::List) || + (data.type() == QVariant::StringList)) { // variant is a list? + QList values; + const QVariantList list = data.toList(); + Q_FOREACH(const QVariant& v, list) { + QByteArray serializedValue = serialize(v); + if (serializedValue.isNull()) { + success = false; + break; + } + values << serializedValue; + } + + str = "[ " + join( values, ", " ) + " ]"; + } else if (data.type() == QVariant::Hash) { // variant is a hash? + str = serializeMap<>(data.toHash(), success); + } else if (data.type() == QVariant::Map) { // variant is a map? + str = serializeMap<>(data.toMap(), success); + } else if ((data.type() == QVariant::String) || + (data.type() == QVariant::ByteArray)) {// a string or a byte array? + str = sanitizeString(data.toString()).toUtf8(); + } else if (data.type() == QVariant::Double) { // double? + double value = data.toDouble(); + if ((value - value) == 0.0) { + str = QByteArray::number(value, 'g'); + if (!str.contains(".") && ! str.contains("e")) { + str += ".0"; + } + } else { + success = false; + } + } else if (data.type() == QVariant::Bool) { // boolean value? + str = data.toBool() ? "true" : "false"; + } else if (data.type() == QVariant::ULongLong) { // large unsigned number? + str = QByteArray::number(data.value()); + } else if (data.canConvert()) { // any signed number? + str = QByteArray::number(data.value()); + } else if (data.canConvert()) { //TODO: this code is never executed + str = QString::number(data.value()).toUtf8(); + } else if (data.canConvert()) { // can value be converted to string? + // this will catch QDate, QDateTime, QUrl, ... + str = sanitizeString(data.toString()).toUtf8(); + } else { + success = false; + } + + if (success) { + return str; + } else { + return QByteArray(); + } + } + + QString serializeStr(const QVariant &data) { + return QString::fromUtf8(serialize(data)); + } + + QString serializeStr(const QVariant &data, bool &success) { + return QString::fromUtf8(serialize(data, success)); + } + + + /** + * \enum JsonToken + */ + enum JsonToken { + JsonTokenNone = 0, + JsonTokenCurlyOpen = 1, + JsonTokenCurlyClose = 2, + JsonTokenSquaredOpen = 3, + JsonTokenSquaredClose = 4, + JsonTokenColon = 5, + JsonTokenComma = 6, + JsonTokenString = 7, + JsonTokenNumber = 8, + JsonTokenTrue = 9, + JsonTokenFalse = 10, + JsonTokenNull = 11 + }; + + static QString sanitizeString(QString str) { + str.replace(QLatin1String("\\"), QLatin1String("\\\\")); + str.replace(QLatin1String("\""), QLatin1String("\\\"")); + str.replace(QLatin1String("\b"), QLatin1String("\\b")); + str.replace(QLatin1String("\f"), QLatin1String("\\f")); + str.replace(QLatin1String("\n"), QLatin1String("\\n")); + str.replace(QLatin1String("\r"), QLatin1String("\\r")); + str.replace(QLatin1String("\t"), QLatin1String("\\t")); + return QString(QLatin1String("\"%1\"")).arg(str); + } + + static QByteArray join(const QList &list, const QByteArray &sep) { + QByteArray res; + Q_FOREACH(const QByteArray &i, list) { + if (!res.isEmpty()) { + res += sep; + } + res += i; + } + return res; + } + + /** + * parseValue + */ + static QVariant parseValue(const QString &json, int &index, bool &success) { + // Determine what kind of data we should parse by + // checking out the upcoming token + switch(lookAhead(json, index)) { + case JsonTokenString: + return parseString(json, index, success); + case JsonTokenNumber: + return parseNumber(json, index); + case JsonTokenCurlyOpen: + return parseObject(json, index, success); + case JsonTokenSquaredOpen: + return parseArray(json, index, success); + case JsonTokenTrue: + nextToken(json, index); + return QVariant(true); + case JsonTokenFalse: + nextToken(json, index); + return QVariant(false); + case JsonTokenNull: + nextToken(json, index); + return QVariant(); + case JsonTokenNone: + break; + } + + // If there were no tokens, flag the failure and return an empty QVariant + success = false; + return QVariant(); + } + + /** + * parseObject + */ + static QVariant parseObject(const QString &json, int &index, bool &success) { + QVariantMap map; + int token; + + // Get rid of the whitespace and increment index + nextToken(json, index); + + // Loop through all of the key/value pairs of the object + bool done = false; + while (!done) { + // Get the upcoming token + token = lookAhead(json, index); + + if (token == JsonTokenNone) { + success = false; + return QVariantMap(); + } else if (token == JsonTokenComma) { + nextToken(json, index); + } else if (token == JsonTokenCurlyClose) { + nextToken(json, index); + return map; + } else { + // Parse the key/value pair's name + QString name = parseString(json, index, success).toString(); + + if (!success) { + return QVariantMap(); + } + + // Get the next token + token = nextToken(json, index); + + // If the next token is not a colon, flag the failure + // return an empty QVariant + if (token != JsonTokenColon) { + success = false; + return QVariant(QVariantMap()); + } + + // Parse the key/value pair's value + QVariant value = parseValue(json, index, success); + + if (!success) { + return QVariantMap(); + } + + // Assign the value to the key in the map + map[name] = value; + } + } + + // Return the map successfully + return QVariant(map); + } + + /** + * parseArray + */ + static QVariant parseArray(const QString &json, int &index, bool &success) { + QVariantList list; + + nextToken(json, index); + + bool done = false; + while(!done) { + int token = lookAhead(json, index); + + if (token == JsonTokenNone) { + success = false; + return QVariantList(); + } else if (token == JsonTokenComma) { + nextToken(json, index); + } else if (token == JsonTokenSquaredClose) { + nextToken(json, index); + break; + } else { + QVariant value = parseValue(json, index, success); + if (!success) { + return QVariantList(); + } + list.push_back(value); + } + } + + return QVariant(list); + } + + /** + * parseString + */ + static QVariant parseString(const QString &json, int &index, bool &success) { + QString s; + QChar c; + + eatWhitespace(json, index); + + c = json[index++]; + + bool complete = false; + while(!complete) { + if (index == json.size()) { + break; + } + + c = json[index++]; + + if (c == '\"') { + complete = true; + break; + } else if (c == '\\') { + if (index == json.size()) { + break; + } + + c = json[index++]; + + if (c == '\"') { + s.append('\"'); + } else if (c == '\\') { + s.append('\\'); + } else if (c == '/') { + s.append('/'); + } else if (c == 'b') { + s.append('\b'); + } else if (c == 'f') { + s.append('\f'); + } else if (c == 'n') { + s.append('\n'); + } else if (c == 'r') { + s.append('\r'); + } else if (c == 't') { + s.append('\t'); + } else if (c == 'u') { + int remainingLength = json.size() - index; + if (remainingLength >= 4) { + QString unicodeStr = json.mid(index, 4); + + int symbol = unicodeStr.toInt(0, 16); + + s.append(QChar(symbol)); + + index += 4; + } else { + break; + } + } + } else { + s.append(c); + } + } + + if (!complete) { + success = false; + return QVariant(); + } + + return QVariant(s); + } + + /** + * parseNumber + */ + static QVariant parseNumber(const QString &json, int &index) { + eatWhitespace(json, index); + + int lastIndex = lastIndexOfNumber(json, index); + int charLength = (lastIndex - index) + 1; + QString numberStr; + + numberStr = json.mid(index, charLength); + + index = lastIndex + 1; + bool ok; + + if (numberStr.contains('.')) { + return QVariant(numberStr.toDouble(NULL)); + } else if (numberStr.startsWith('-')) { + int i = numberStr.toInt(&ok); + if (!ok) { + qlonglong ll = numberStr.toLongLong(&ok); + return ok ? ll : QVariant(numberStr); + } + return i; + } else { + uint u = numberStr.toUInt(&ok); + if (!ok) { + qulonglong ull = numberStr.toULongLong(&ok); + return ok ? ull : QVariant(numberStr); + } + return u; + } + } + + /** + * lastIndexOfNumber + */ + static int lastIndexOfNumber(const QString &json, int index) { + int lastIndex; + + for(lastIndex = index; lastIndex < json.size(); lastIndex++) { + if (QString("0123456789+-.eE").indexOf(json[lastIndex]) == -1) { + break; + } + } + + return lastIndex -1; + } + + /** + * eatWhitespace + */ + static void eatWhitespace(const QString &json, int &index) { + for(; index < json.size(); index++) { + if (QString(" \t\n\r").indexOf(json[index]) == -1) { + break; + } + } + } + + /** + * lookAhead + */ + static int lookAhead(const QString &json, int index) { + int saveIndex = index; + return nextToken(json, saveIndex); + } + + /** + * nextToken + */ + static int nextToken(const QString &json, int &index) { + eatWhitespace(json, index); + + if (index == json.size()) { + return JsonTokenNone; + } + + QChar c = json[index]; + index++; + switch(c.toLatin1()) { + case '{': return JsonTokenCurlyOpen; + case '}': return JsonTokenCurlyClose; + case '[': return JsonTokenSquaredOpen; + case ']': return JsonTokenSquaredClose; + case ',': return JsonTokenComma; + case '"': return JsonTokenString; + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + case '-': return JsonTokenNumber; + case ':': return JsonTokenColon; + } + index--; // ^ WTF? + + int remainingLength = json.size() - index; + + // True + if (remainingLength >= 4) { + if (json[index] == 't' && json[index + 1] == 'r' && + json[index + 2] == 'u' && json[index + 3] == 'e') { + index += 4; + return JsonTokenTrue; + } + } + + // False + if (remainingLength >= 5) { + if (json[index] == 'f' && json[index + 1] == 'a' && + json[index + 2] == 'l' && json[index + 3] == 's' && + json[index + 4] == 'e') { + index += 5; + return JsonTokenFalse; + } + } + + // Null + if (remainingLength >= 4) { + if (json[index] == 'n' && json[index + 1] == 'u' && + json[index + 2] == 'l' && json[index + 3] == 'l') { + index += 4; + return JsonTokenNull; + } + } + + return JsonTokenNone; + } +} //end namespace diff --git a/src/json.h b/src/json.h index d2cfa9a8..a61f6c85 100644 --- a/src/json.h +++ b/src/json.h @@ -1,204 +1,94 @@ -/* Copyright 2011 Eeli Reilin. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO - * EVENT SHALL EELI REILIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation - * are those of the authors and should not be interpreted as representing - * official policies, either expressed or implied, of Eeli Reilin. - */ - -/** - * \file json.h - */ - -#ifndef JSON_H -#define JSON_H - -#include -#include - -namespace QtJson -{ - -/** - * \enum JsonToken - */ -enum JsonToken -{ - JsonTokenNone = 0, - JsonTokenCurlyOpen = 1, - JsonTokenCurlyClose = 2, - JsonTokenSquaredOpen = 3, - JsonTokenSquaredClose = 4, - JsonTokenColon = 5, - JsonTokenComma = 6, - JsonTokenString = 7, - JsonTokenNumber = 8, - JsonTokenTrue = 9, - JsonTokenFalse = 10, - JsonTokenNull = 11 -}; - -/** - * \class Json - * \brief A JSON data parser - * - * Json parses a JSON data into a QVariant hierarchy. - */ -class Json -{ - public: - /** - * Parse a JSON string - * - * \param json The JSON data - */ - static QVariant parse(const QString &json); - - /** - * Parse a JSON string - * - * \param json The JSON data - * \param success The success of the parsing - */ - static QVariant parse(const QString &json, bool &success); - - /** - * This method generates a textual JSON representation - * - * \param data The JSON data generated by the parser. - * \param success The success of the serialization - */ - static QByteArray serialize(const QVariant &data); - - /** - * This method generates a textual JSON representation - * - * \param data The JSON data generated by the parser. - * \param success The success of the serialization - * - * \return QByteArray Textual JSON representation - */ - static QByteArray serialize(const QVariant &data, bool &success); - - private: - /** - * Parses a value starting from index - * - * \param json The JSON data - * \param index The start index - * \param success The success of the parse process - * - * \return QVariant The parsed value - */ - static QVariant parseValue(const QString &json, int &index, - bool &success); - - /** - * Parses an object starting from index - * - * \param json The JSON data - * \param index The start index - * \param success The success of the object parse - * - * \return QVariant The parsed object map - */ - static QVariant parseObject(const QString &json, int &index, - bool &success); - - /** - * Parses an array starting from index - * - * \param json The JSON data - * \param index The starting index - * \param success The success of the array parse - * - * \return QVariant The parsed variant array - */ - static QVariant parseArray(const QString &json, int &index, - bool &success); - - /** - * Parses a string starting from index - * - * \param json The JSON data - * \param index The starting index - * \param success The success of the string parse - * - * \return QVariant The parsed string - */ - static QVariant parseString(const QString &json, int &index, - bool &success); - - /** - * Parses a number starting from index - * - * \param json The JSON data - * \param index The starting index - * - * \return QVariant The parsed number - */ - static QVariant parseNumber(const QString &json, int &index); - - /** - * Get the last index of a number starting from index - * - * \param json The JSON data - * \param index The starting index - * - * \return The last index of the number - */ - static int lastIndexOfNumber(const QString &json, int index); - - /** - * Skip unwanted whitespace symbols starting from index - * - * \param json The JSON data - * \param index The start index - */ - static void eatWhitespace(const QString &json, int &index); - - /** - * Check what token lies ahead - * - * \param json The JSON data - * \param index The starting index - * - * \return int The upcoming token - */ - static int lookAhead(const QString &json, int index); - - /** - * Get the next JSON token - * - * \param json The JSON data - * \param index The starting index - * - * \return int The next JSON token - */ - static int nextToken(const QString &json, int &index); -}; - - -} //end namespace - -#endif //JSON_H +/** + * QtJson - A simple class for parsing JSON data into a QVariant hierarchies and vice-versa. + * Copyright (C) 2011 Eeli Reilin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file json.h + */ + +#ifndef JSON_H +#define JSON_H + +#include +#include + + +/** + * \namespace QtJson + * \brief A JSON data parser + * + * Json parses a JSON data into a QVariant hierarchy. + */ +namespace QtJson { + typedef QVariantMap JsonObject; + typedef QVariantList JsonArray; + + /** + * Parse a JSON string + * + * \param json The JSON data + */ + QVariant parse(const QString &json); + + /** + * Parse a JSON string + * + * \param json The JSON data + * \param success The success of the parsing + */ + QVariant parse(const QString &json, bool &success); + + /** + * This method generates a textual JSON representation + * + * \param data The JSON data generated by the parser. + * + * \return QByteArray Textual JSON representation in UTF-8 + */ + QByteArray serialize(const QVariant &data); + + /** + * This method generates a textual JSON representation + * + * \param data The JSON data generated by the parser. + * \param success The success of the serialization + * + * \return QByteArray Textual JSON representation in UTF-8 + */ + QByteArray serialize(const QVariant &data, bool &success); + + /** + * This method generates a textual JSON representation + * + * \param data The JSON data generated by the parser. + * + * \return QString Textual JSON representation + */ + QString serializeStr(const QVariant &data); + + /** + * This method generates a textual JSON representation + * + * \param data The JSON data generated by the parser. + * \param success The success of the serialization + * + * \return QString Textual JSON representation + */ + QString serializeStr(const QVariant &data, bool &success); +} + +#endif //JSON_H diff --git a/src/logbuffer.cpp b/src/logbuffer.cpp index 6f3f640f..4f72e551 100644 --- a/src/logbuffer.cpp +++ b/src/logbuffer.cpp @@ -120,6 +120,7 @@ char LogBuffer::msgTypeID(QtMsgType type) case QtWarningMsg: return 'W'; case QtCriticalMsg: return 'C'; case QtFatalMsg: return 'F'; + default: return '?'; } } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 76bff3a0..14e27e76 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -56,6 +56,7 @@ along with Mod Organizer. If not, see . #include "savetextasdialog.h" #include "problemsdialog.h" #include "previewdialog.h" +#include "aboutdialog.h" #include #include #include @@ -547,6 +548,12 @@ bool MainWindow::checkForProblems() return false; } +void MainWindow::about() +{ + AboutDialog dialog(m_Updater.getVersion().displayString(), this); + dialog.exec(); +} + void MainWindow::createHelpWidget() { @@ -604,6 +611,8 @@ void MainWindow::createHelpWidget() } buttonMenu->addMenu(tutorialMenu); + buttonMenu->addAction(tr("About"), this, SLOT(about())); + buttonMenu->addAction(tr("About Qt"), qApp, SLOT(aboutQt())); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 59bee7bb..e7b3f7e1 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -527,6 +527,7 @@ private slots: void refreshSavesIfOpen(); void expandDataTreeItem(QTreeWidgetItem *item); + void about(); private slots: // ui slots // actions diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 7f221bdc..3657d48a 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -22,7 +22,6 @@ along with Mod Organizer. If not, see . #include "report.h" #include "utility.h" -#include "json.h" #include "messagedialog.h" #include "bbcode.h" #include "questionboxmemory.h" @@ -41,8 +40,6 @@ along with Mod Organizer. If not, see . #include -using QtJson::Json; - using namespace MOBase; using namespace MOShared; diff --git a/src/modlist.cpp b/src/modlist.cpp index 7f09654d..e2cb7cf0 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -305,7 +305,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const return QString(); } } else if (column == COL_VERSION) { - QString text = tr("installed version: %1, newest version: %2").arg(modInfo->getVersion().displayString()).arg(modInfo->getNewestVersion().displayString()); + QString text = tr("installed version: \"%1\", newest version: \"%2\"").arg(modInfo->getVersion().displayString()).arg(modInfo->getNewestVersion().displayString()); if (modInfo->downgradeAvailable()) { text += "
        " + tr("The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn " "(i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. " diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index 309915aa..6b87822a 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -20,14 +20,13 @@ along with Mod Organizer. If not, see . #include "nexusinterface.h" #include "nxmaccessmanager.h" #include "utility.h" -#include "json.h" +#include #include "selectiondialog.h" #include #include #include #include -using QtJson::Json; using namespace MOBase; using namespace MOShared; @@ -458,7 +457,7 @@ void NexusInterface::requestFinished(std::list::iterator iter) emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, nexusError); } else { bool ok; - QVariant result = Json::parse(data, ok); + QVariant result = QtJson::parse(data, ok); if (result.isValid() && ok) { switch (iter->m_Type) { case NXMRequestInfo::TYPE_DESCRIPTION: { diff --git a/src/organizer.pro b/src/organizer.pro index dd745edb..fd72dea3 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -47,7 +47,6 @@ SOURCES += \ logbuffer.cpp \ lockeddialog.cpp \ loadmechanism.cpp \ - json.cpp \ installationmanager.cpp \ helper.cpp \ filedialogmemory.cpp \ @@ -80,7 +79,9 @@ SOURCES += \ ../esptk/subrecord.cpp \ noeditdelegate.cpp \ previewgenerator.cpp \ - previewdialog.cpp + previewdialog.cpp \ + aboutdialog.cpp \ + json.cpp HEADERS += \ @@ -116,7 +117,6 @@ HEADERS += \ logbuffer.h \ lockeddialog.h \ loadmechanism.h \ - json.h \ installationmanager.h \ helper.h \ filedialogmemory.h \ @@ -150,7 +150,9 @@ HEADERS += \ ../esptk/espexceptions.h \ noeditdelegate.h \ previewgenerator.h \ - previewdialog.h + previewdialog.h \ + aboutdialog.h \ + json.h FORMS += \ transfersavesdialog.ui \ @@ -180,7 +182,8 @@ FORMS += \ profileinputdialog.ui \ savetextasdialog.ui \ problemsdialog.ui \ - previewdialog.ui + previewdialog.ui \ + aboutdialog.ui INCLUDEPATH += ../shared ../archive ../uibase ../bsatk ../esptk "$(BOOSTPATH)" @@ -246,6 +249,9 @@ DEFINES += UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS NOMINMAX DEFINES += BOOST_DISABLE_ASSERTS NDEBUG #DEFINES += QMLJSDEBUGGER +HGID = $$system(hg id -i) +DEFINES += HGID=\\\"$${HGID}\\\" + SRCDIR = $$PWD SRCDIR ~= s,/,$$QMAKE_DIR_SEP,g OUTDIR ~= s,/,$$QMAKE_DIR_SEP,g diff --git a/src/resources/emblem-favorite - 64.png b/src/resources/emblem-favorite - 64.png new file mode 100644 index 00000000..97b507ed Binary files /dev/null and b/src/resources/emblem-favorite - 64.png differ -- cgit v1.3.1 From e69210b3a78c4a6c63086d84e6bdb2c3b47d8944 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 18 Jan 2014 19:51:58 +0100 Subject: - when a download server returns a text file, it's assumed to be an error and the text displayed as an error - save games can now be deleted from inside MO - bugfix: removing the pending download entry failed if the download-url request failed - bugfix: download manager didn't stop automatically resuming failed downloads under certain circumstances - bugfix: uninstalled downloads were treated as not-finished when refreshing the download list - bugfix: updating the filesystem watcher on the saves directory didn't work correctly --- src/aboutdialog.cpp | 1 - src/downloadmanager.cpp | 33 ++++++++++++++++----------------- src/downloadmanager.h | 2 +- src/mainwindow.cpp | 23 ++++++++++++++++++++++- src/mainwindow.h | 3 ++- src/modinfo.cpp | 4 ++-- src/modinfo.h | 2 +- src/nexusinterface.cpp | 34 +++++++++++++++++----------------- src/nexusinterface.h | 8 ++++---- src/pluginlist.cpp | 1 - src/selfupdater.cpp | 2 +- src/selfupdater.h | 2 +- 12 files changed, 67 insertions(+), 48 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp index 94e4e54c..c7f95640 100644 --- a/src/aboutdialog.cpp +++ b/src/aboutdialog.cpp @@ -73,7 +73,6 @@ void AboutDialog::on_creditsList_currentItemChanged(QListWidgetItem *current, QL auto iter = m_LicenseFiles.find(current->data(Qt::UserRole).toInt()); if (iter != m_LicenseFiles.end()) { QString filePath = qApp->applicationDirPath() + "/license/" + iter->second; -qDebug("%s", qPrintable(filePath)); QString text = MOBase::readFileText(filePath); ui->licenseText->setText(text); } else { diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index dd320f70..31d8bcec 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -26,15 +26,16 @@ along with Mod Organizer. If not, see . #include "utility.h" #include "json.h" #include "selectiondialog.h" +#include #include #include #include #include #include -#include -#include #include #include +#include +#include using namespace MOBase; @@ -246,7 +247,7 @@ void DownloadManager::refreshList() // remove finished downloads for (QVector::iterator Iter = m_ActiveDownloads.begin(); Iter != m_ActiveDownloads.end();) { - if (((*Iter)->m_State == STATE_READY) || ((*Iter)->m_State == STATE_INSTALLED)) { + if (((*Iter)->m_State == STATE_READY) || ((*Iter)->m_State == STATE_INSTALLED) || ((*Iter)->m_State == STATE_UNINSTALLED)) { delete *Iter; Iter = m_ActiveDownloads.erase(Iter); } else { @@ -414,7 +415,7 @@ void DownloadManager::addNXMDownload(const QString &url) NXMUrl nxmInfo(url); QString managedGame = ToQString(MOShared::GameInfo::instance().getGameShortName()); - qDebug("add nxm download", qPrintable(url)); + qDebug("add nxm download: %s", qPrintable(url)); if (nxmInfo.game().compare(managedGame, Qt::CaseInsensitive) != 0) { qDebug("download requested for wrong game (game: %s, url: %s)", qPrintable(managedGame), qPrintable(nxmInfo.game())); QMessageBox::information(NULL, tr("Wrong Game"), tr("The download link is for a mod for \"%1\" but this instance of MO " @@ -1089,11 +1090,7 @@ void DownloadManager::nxmFileInfoAvailable(int modID, int fileID, QVariant userD info.m_FileName = result["uri"].toString(); info.m_FileTime = matchDate(result["date"].toString()); - if (userData.isValid()) { - m_RequestIDs.insert(m_NexusInterface->requestDownloadURL(modID, fileID, this, qVariantFromValue(info), userData.toString())); - } else { - m_RequestIDs.insert(m_NexusInterface->requestDownloadURL(modID, fileID, this, qVariantFromValue(info))); - } + m_RequestIDs.insert(m_NexusInterface->requestDownloadURL(modID, fileID, this, QVariant::fromValue(info))); } @@ -1176,8 +1173,6 @@ void DownloadManager::nxmDownloadURLsAvailable(int modID, int fileID, QVariant u m_RequestIDs.erase(idIter); } - qDebug("download urls received (modid %d, fileid %d)", modID, fileID); - NexusInfo info = userData.value(); QVariantList resultList = resultData.toList(); if (resultList.length() == 0) { @@ -1200,7 +1195,7 @@ void DownloadManager::nxmDownloadURLsAvailable(int modID, int fileID, QVariant u } -void DownloadManager::nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString) +void DownloadManager::nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorString) { std::set::iterator idIter = m_RequestIDs.find(requestID); if (idIter == m_RequestIDs.end()) { @@ -1225,7 +1220,7 @@ void DownloadManager::nxmRequestFailed(int modID, QVariant userData, int request } } - removePending(modID, userData.toInt()); + removePending(modID, fileID); emit showMessage(tr("Failed to request file info from nexus: %1").arg(errorString)); } @@ -1243,14 +1238,18 @@ void DownloadManager::downloadFinished() TaskProgressManager::instance().forgetMe(info->m_TaskProgressId); bool error = false; - if ((info->m_State != STATE_CANCELING) && (info->m_State != STATE_PAUSING)) { + bool textData = reply->header(QNetworkRequest::ContentTypeHeader).toString().startsWith("text", Qt::CaseInsensitive); if ((info->m_Output.size() == 0) || ((reply->error() != QNetworkReply::NoError) && (reply->error() != QNetworkReply::OperationCanceledError)) || - reply->header(QNetworkRequest::ContentTypeHeader).toString().startsWith("text", Qt::CaseInsensitive)) { + textData) { if (info->m_Tries == 0) { - emit showMessage(tr("Download failed: %1 (%2)").arg(reply->errorString()).arg(reply->error())); + if (textData && (reply->error() == QNetworkReply::NoError)) { + emit showMessage(tr("Download failed. Server reported: %1").arg(readFileText(info->m_Output.fileName()))); + } else { + emit showMessage(tr("Download failed: %1 (%2)").arg(reply->errorString()).arg(reply->error())); + } } error = true; setState(info, STATE_PAUSING); @@ -1310,7 +1309,7 @@ void DownloadManager::downloadFinished() if ((info->m_Tries > 0) && error) { --info->m_Tries; - resumeDownload(index); + resumeDownloadInt(index); } } else { qWarning("no download index %d", index); diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 62396666..80b99ad2 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -412,7 +412,7 @@ public slots: void nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID); - void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString); + void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorString); private slots: diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 14e27e76..582bc283 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -66,6 +66,7 @@ along with Mod Organizer. If not, see . #include #include #include +#include #include #include #include @@ -1737,6 +1738,9 @@ void MainWindow::refreshSaveList() savesDir.setPath(QDir::fromNativeSeparators(ToQString(GameInfo::instance().getDocumentsDir() + L"\\" + path))); } + if (m_SavesWatcher.directories().length() > 0) { + m_SavesWatcher.removePaths(m_SavesWatcher.directories()); + } m_SavesWatcher.addPath(savesDir.absolutePath()); QStringList filters; @@ -3868,6 +3872,22 @@ void MainWindow::on_categoriesList_itemSelectionChanged() } +void MainWindow::deleteSavegame_clicked() +{ + QListWidgetItem *selectedItem = ui->savegameList->item(m_SelectedSaveGame); + if (selectedItem == NULL) { + return; + } + + QString fileName = selectedItem->data(Qt::UserRole).toString(); + + if (QMessageBox::question(this, tr("Confirm"), tr("Really delete \"%1\"?").arg(selectedItem->text()), + QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { + shellDelete(QStringList() << fileName); + } +} + + void MainWindow::fixMods_clicked() { QListWidgetItem *selectedItem = ui->savegameList->item(m_SelectedSaveGame); @@ -3973,6 +3993,7 @@ void MainWindow::on_savegameList_customContextMenuRequested(const QPoint &pos) QMenu menu; menu.addAction(tr("Fix Mods..."), this, SLOT(fixMods_clicked())); + menu.addAction(tr("Delete"), this, SLOT(deleteSavegame_clicked())); menu.exec(ui->savegameList->mapToGlobal(pos)); } @@ -4721,7 +4742,7 @@ void MainWindow::nxmDownloadURLs(int, int, QVariant, QVariant resultData, int) } -void MainWindow::nxmRequestFailed(int modID, QVariant, int, const QString &errorString) +void MainWindow::nxmRequestFailed(int modID, int, QVariant, int, const QString &errorString) { if (modID == -1) { // must be the update-check that failed diff --git a/src/mainwindow.h b/src/mainwindow.h index e7b3f7e1..c01ce767 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -398,6 +398,7 @@ private slots: void openExplorer_clicked(); void information_clicked(); // savegame context menu + void deleteSavegame_clicked(); void fixMods_clicked(); // data-tree context menu void writeDataToFile(); @@ -464,7 +465,7 @@ private slots: void nxmUpdatesAvailable(const std::vector &modIDs, QVariant userData, QVariant resultData, int requestID); // void nxmEndorsementToggled(int, QVariant, QVariant resultData, int); void nxmDownloadURLs(int modID, int fileID, QVariant userData, QVariant resultData, int requestID); - void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString); + void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorString); void editCategories(); diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 6569f897..85612b32 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -345,7 +345,7 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc connect(&m_NexusBridge, SIGNAL(descriptionAvailable(int,QVariant,QVariant)), this, SLOT(nxmDescriptionAvailable(int,QVariant,QVariant))); connect(&m_NexusBridge, SIGNAL(endorsementToggled(int,QVariant,QVariant)), this, SLOT(nxmEndorsementToggled(int,QVariant,QVariant))); - connect(&m_NexusBridge, SIGNAL(requestFailed(int,QVariant,QString)), this, SLOT(nxmRequestFailed(int,QVariant,QString))); + connect(&m_NexusBridge, SIGNAL(requestFailed(int,int,QVariant,QString)), this, SLOT(nxmRequestFailed(int,int,QVariant,QString))); } @@ -439,7 +439,7 @@ void ModInfoRegular::nxmEndorsementToggled(int, QVariant, QVariant resultData) } -void ModInfoRegular::nxmRequestFailed(int, QVariant userData, const QString &errorMessage) +void ModInfoRegular::nxmRequestFailed(int, int, QVariant userData, const QString &errorMessage) { QString fullMessage = errorMessage; if (userData.canConvert() && (userData.toInt() == 1)) { diff --git a/src/modinfo.h b/src/modinfo.h index 677d8a82..83654c7e 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -762,7 +762,7 @@ private slots: void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData); void nxmEndorsementToggled(int, QVariant userData, QVariant resultData); - void nxmRequestFailed(int modID, QVariant userData, const QString &errorMessage); + void nxmRequestFailed(int modID, int fileID, QVariant userData, const QString &errorMessage); private: diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index 6b87822a..64dd6272 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -128,12 +128,12 @@ void NexusBridge::nxmEndorsementToggled(int modID, QVariant userData, QVariant r } } -void NexusBridge::nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorMessage) +void NexusBridge::nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorMessage) { std::set::iterator iter = m_RequestIDs.find(requestID); if (iter != m_RequestIDs.end()) { m_RequestIDs.erase(iter); - emit requestFailed(modID, userData, errorMessage); + emit requestFailed(modID, fileID, userData, errorMessage); } } @@ -257,8 +257,8 @@ int NexusInterface::requestDescription(int modID, QObject *receiver, QVariant us connect(this, SIGNAL(nxmDescriptionAvailable(int,QVariant,QVariant,int)), receiver, SLOT(nxmDescriptionAvailable(int,QVariant,QVariant,int)), Qt::UniqueConnection); - connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)), - receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)), + receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection); nextRequest(); return requestInfo.m_ID; @@ -273,8 +273,8 @@ int NexusInterface::requestUpdates(const std::vector &modIDs, QObject *rece connect(this, SIGNAL(nxmUpdatesAvailable(std::vector,QVariant,QVariant,int)), receiver, SLOT(nxmUpdatesAvailable(std::vector,QVariant,QVariant,int)), Qt::UniqueConnection); - connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)), - receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)), + receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection); nextRequest(); return requestInfo.m_ID; @@ -307,8 +307,8 @@ int NexusInterface::requestFiles(int modID, QObject *receiver, QVariant userData connect(this, SIGNAL(nxmFilesAvailable(int,QVariant,QVariant,int)), receiver, SLOT(nxmFilesAvailable(int,QVariant,QVariant,int)), Qt::UniqueConnection); - connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)), - receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)), + receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection); // QTimer::singleShot(1000, this, SLOT(fakeFiles())); // static int fID = 42; @@ -327,8 +327,8 @@ int NexusInterface::requestFileInfo(int modID, int fileID, QObject *receiver, QV connect(this, SIGNAL(nxmFileInfoAvailable(int,int,QVariant,QVariant,int)), receiver, SLOT(nxmFileInfoAvailable(int,int,QVariant,QVariant,int)), Qt::UniqueConnection); - connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)), - receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)), + receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection); nextRequest(); return requestInfo.m_ID; @@ -343,8 +343,8 @@ int NexusInterface::requestDownloadURL(int modID, int fileID, QObject *receiver, connect(this, SIGNAL(nxmDownloadURLsAvailable(int,int,QVariant,QVariant,int)), receiver, SLOT(nxmDownloadURLsAvailable(int,int,QVariant,QVariant,int)), Qt::UniqueConnection); - connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)), - receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)), + receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection); nextRequest(); return requestInfo.m_ID; @@ -360,8 +360,8 @@ int NexusInterface::requestToggleEndorsement(int modID, bool endorse, QObject *r connect(this, SIGNAL(nxmEndorsementToggled(int,QVariant,QVariant,int)), receiver, SLOT(nxmEndorsementToggled(int,QVariant,QVariant,int)), Qt::UniqueConnection); - connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)), - receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)), + receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection); nextRequest(); return requestInfo.m_ID; @@ -437,7 +437,7 @@ void NexusInterface::requestFinished(std::list::iterator iter) if (reply->error() != QNetworkReply::NoError) { qWarning("request failed: %s", reply->errorString().toUtf8().constData()); - emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, reply->errorString()); + emit nxmRequestFailed(iter->m_ModID, iter->m_FileID, iter->m_UserData, iter->m_ID, reply->errorString()); } else { int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); if (statusCode == 301) { @@ -454,7 +454,7 @@ void NexusInterface::requestFinished(std::list::iterator iter) if (nexusError.length() == 0) { nexusError = tr("empty response"); } - emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, nexusError); + emit nxmRequestFailed(iter->m_ModID, iter->m_FileID, iter->m_UserData, iter->m_ID, nexusError); } else { bool ok; QVariant result = QtJson::parse(data, ok); @@ -480,7 +480,7 @@ void NexusInterface::requestFinished(std::list::iterator iter) } break; } } else { - emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, tr("invalid response")); + emit nxmRequestFailed(iter->m_ModID, iter->m_FileID, iter->m_UserData, iter->m_ID, tr("invalid response")); } } } diff --git a/src/nexusinterface.h b/src/nexusinterface.h index e7a01b0f..7b709e1c 100644 --- a/src/nexusinterface.h +++ b/src/nexusinterface.h @@ -105,7 +105,7 @@ public slots: void nxmFileInfoAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID); void nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID); void nxmEndorsementToggled(int modID, QVariant userData, QVariant resultData, int requestID); - void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorMessage); + void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorMessage); private: @@ -240,7 +240,7 @@ signals: void nxmFileInfoAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID); void nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID); void nxmEndorsementToggled(int modID, QVariant userData, QVariant resultData, int requestID); - void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString); + void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorString); private slots: @@ -276,13 +276,13 @@ private: NXMRequestInfo(int modID, Type type, QVariant userData, const QString &url) : m_ModID(modID), m_FileID(0), m_Reply(NULL), m_Type(type), m_UserData(userData), - m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} + m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} NXMRequestInfo(std::vector modIDList, Type type, QVariant userData, const QString &url) : m_ModID(-1), m_ModIDList(modIDList), m_FileID(0), m_Reply(NULL), m_Type(type), m_UserData(userData), m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} NXMRequestInfo(int modID, int fileID, Type type, QVariant userData, const QString &url) : m_ModID(modID), m_FileID(fileID), m_Reply(NULL), m_Type(type), m_UserData(userData), - m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} + m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} private: static QAtomicInt s_NextID; diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index a0045ab3..85137390 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -312,7 +312,6 @@ bool PluginList::readLoadOrder(const QString &fileName) void PluginList::readEnabledFrom(const QString &fileName) { -qDebug("read enabled from %s", qPrintable(fileName)); for (std::vector::iterator iter = m_ESPs.begin(); iter != m_ESPs.end(); ++iter) { if (!iter->m_ForceEnabled) { iter->m_Enabled = false; diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index 2a9ca893..3a0db83f 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -428,7 +428,7 @@ void SelfUpdater::nxmFilesAvailable(int, QVariant userData, QVariant resultData, } -void SelfUpdater::nxmRequestFailed(int, QVariant, int requestID, const QString &errorMessage) +void SelfUpdater::nxmRequestFailed(int, int, QVariant, int requestID, const QString &errorMessage) { if (requestID == m_UpdateRequestID) { m_UpdateRequestID = -1; diff --git a/src/selfupdater.h b/src/selfupdater.h index 2c4c1ecd..14f7e90a 100644 --- a/src/selfupdater.h +++ b/src/selfupdater.h @@ -87,7 +87,7 @@ public slots: void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData, int requestID); void nxmFilesAvailable(int modID, QVariant userData, QVariant resultData, int requestID); - void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorMessage); + void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorMessage); void nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID); signals: -- cgit v1.3.1 From e597823337c858f2985c615ee5147f47567991ee Mon Sep 17 00:00:00 2001 From: Tannin Date: Thu, 23 Jan 2014 00:05:46 +0100 Subject: - boss integration - plugin list can now also display multiple flags for a file (like the mod list) - changed some compiler&linker settings to produce smaller binaries --- src/ModOrganizer.pro | 3 +- src/aboutdialog.cpp | 2 + src/icondelegate.cpp | 30 +-- src/icondelegate.h | 5 +- src/lockeddialog.cpp | 104 ++++++----- src/lockeddialog.h | 96 +++++----- src/logbuffer.cpp | 3 +- src/main.cpp | 5 +- src/mainwindow.cpp | 26 ++- src/mainwindow.h | 1 + src/mainwindow.ui | 82 +++++++-- src/modflagicondelegate.cpp | 50 +++++ src/modflagicondelegate.h | 18 ++ src/organizer.pro | 32 ++-- src/pdll.h | 402 +++++++++++++++++++++++++++++++++++++++++ src/pluginflagicondelegate.cpp | 24 +++ src/pluginflagicondelegate.h | 17 ++ src/pluginlist.cpp | 270 +++++++++++++++++++++++---- src/pluginlist.h | 95 +++++++++- src/pluginlistsortproxy.cpp | 5 - src/profile.cpp | 34 +--- src/resources.qrc | 2 +- src/safewritefile.cpp | 48 +++++ src/safewritefile.h | 51 ++++++ 24 files changed, 1179 insertions(+), 226 deletions(-) create mode 100644 src/modflagicondelegate.cpp create mode 100644 src/modflagicondelegate.h create mode 100644 src/pdll.h create mode 100644 src/pluginflagicondelegate.cpp create mode 100644 src/pluginflagicondelegate.h create mode 100644 src/safewritefile.cpp create mode 100644 src/safewritefile.h (limited to 'src/mainwindow.cpp') diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro index dbf6ab6e..05b05855 100644 --- a/src/ModOrganizer.pro +++ b/src/ModOrganizer.pro @@ -13,11 +13,12 @@ SUBDIRS = bsatk \ nxmhandler \ BossDummy \ pythonRunner \ + boss_modified \ esptk plugins.depends = pythonRunner hookdll.depends = shared -organizer.depends = shared uibase plugins +organizer.depends = shared uibase plugins boss_modified CONFIG(debug, debug|release) { DESTDIR = outputd diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp index c7f95640..a8f9b4db 100644 --- a/src/aboutdialog.cpp +++ b/src/aboutdialog.cpp @@ -44,6 +44,8 @@ AboutDialog::AboutDialog(const QString &version, QWidget *parent) addLicense("7-zip", LICENSE_LGPL3); addLicense("ZLib", LICENSE_ZLIB); addLicense("NIF File Format Library", LICENSE_BSD3); + addLicense("BOSS (modified)", LICENSE_GPL3); + addLicense("Alphanum Algorithm", LICENSE_ZLIB); ui->nameLabel->setText(QString("%1 %2").arg(ui->nameLabel->text()).arg(version)); #ifdef HGID diff --git a/src/icondelegate.cpp b/src/icondelegate.cpp index 2540e1d5..048b09f9 100644 --- a/src/icondelegate.cpp +++ b/src/icondelegate.cpp @@ -29,38 +29,17 @@ IconDelegate::IconDelegate(QObject *parent) } -QIcon IconDelegate::getFlagIcon(ModInfo::EFlag flag) const -{ - switch (flag) { - case ModInfo::FLAG_BACKUP: return QIcon(":/MO/gui/emblem_backup"); - case ModInfo::FLAG_INVALID: return QIcon(":/MO/gui/emblem_problem"); - case ModInfo::FLAG_NOTENDORSED: return QIcon(":/MO/gui/emblem_notendorsed"); - case ModInfo::FLAG_NOTES: return QIcon(":/MO/gui/emblem_notes"); - case ModInfo::FLAG_CONFLICT_OVERWRITE: return QIcon(":/MO/gui/emblem_conflict_overwrite"); - case ModInfo::FLAG_CONFLICT_OVERWRITTEN: return QIcon(":/MO/gui/emblem_conflict_overwritten"); - case ModInfo::FLAG_CONFLICT_MIXED: return QIcon(":/MO/gui/emblem_conflict_mixed"); - case ModInfo::FLAG_CONFLICT_REDUNDANT: return QIcon(":MO/gui/emblem_conflict_redundant"); - default: return QIcon(); - } -} - - void IconDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { QStyledItemDelegate::paint(painter, option, index); - QVariant modid = index.data(Qt::UserRole + 1); - if (!modid.isValid()) { - return; - } - ModInfo::Ptr info = ModInfo::getByIndex(modid.toInt()); - std::vector flags = info->getFlags(); + + QList icons = getIcons(index); int x = 4; painter->save(); painter->translate(option.rect.topLeft()); - for (auto iter = flags.begin(); iter != flags.end(); ++iter) { - QIcon temp = getFlagIcon(*iter); - painter->drawPixmap(x, 2, 16, 16, temp.pixmap(QSize(16, 16))); + for (auto iter = icons.begin(); iter != icons.end(); ++iter) { + painter->drawPixmap(x, 2, 16, 16, iter->pixmap(QSize(16, 16))); x += 20; } @@ -70,6 +49,7 @@ void IconDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, QSize IconDelegate::sizeHint(const QStyleOptionViewItem&, const QModelIndex &modelIndex) const { + int count = getNumIcons(modelIndex); unsigned int index = modelIndex.data(Qt::UserRole + 1).toInt(); if (index < ModInfo::getNumMods()) { ModInfo::Ptr info = ModInfo::getByIndex(index); diff --git a/src/icondelegate.h b/src/icondelegate.h index dd9f9dfc..cf292443 100644 --- a/src/icondelegate.h +++ b/src/icondelegate.h @@ -34,13 +34,16 @@ public: virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; + signals: public slots: private: - QIcon getFlagIcon(ModInfo::EFlag flag) const; + virtual QList getIcons(const QModelIndex &index) const = 0; + virtual size_t getNumIcons(const QModelIndex &index) const = 0; + private: diff --git a/src/lockeddialog.cpp b/src/lockeddialog.cpp index 4c19c615..065d9270 100644 --- a/src/lockeddialog.cpp +++ b/src/lockeddialog.cpp @@ -17,51 +17,59 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ -#include "lockeddialog.h" -#include "ui_lockeddialog.h" -#include - - -LockedDialog::LockedDialog(QWidget *parent) : - QDialog(parent), - ui(new Ui::LockedDialog), m_UnlockClicked(false) -{ - ui->setupUi(this); - - this->setWindowFlags(this->windowFlags() | Qt::ToolTip | Qt::FramelessWindowHint); - - if (parent != NULL) { - QPoint position = parent->mapToGlobal(QPoint(parent->width() / 2, parent->height() / 2)); - position.rx() -= this->width() / 2; - position.ry() -= this->height() / 2; - move(position); - } -} - -LockedDialog::~LockedDialog() -{ - delete ui; -} - - -void LockedDialog::setProcessName(const QString &name) -{ - ui->processLabel->setText(name); -} - - -void LockedDialog::resizeEvent(QResizeEvent *event) -{ - QWidget *par = parentWidget(); - if (par != NULL) { - QPoint position = par->mapToGlobal(QPoint(par->width() / 2, par->height() / 2)); - position.rx() -= event->size().width() / 2; - position.ry() -= event->size().height() / 2; - move(position); - } -} - -void LockedDialog::on_unlockButton_clicked() -{ - m_UnlockClicked = true; -} +#include "lockeddialog.h" +#include "ui_lockeddialog.h" +#include + + +LockedDialog::LockedDialog(QWidget *parent, const QString &text, bool unlockButton) + : QDialog(parent) + , ui(new Ui::LockedDialog) + , m_UnlockClicked(false) +{ + ui->setupUi(this); + + this->setWindowFlags(this->windowFlags() | Qt::ToolTip | Qt::FramelessWindowHint); + + if (parent != NULL) { + QPoint position = parent->mapToGlobal(QPoint(parent->width() / 2, parent->height() / 2)); + position.rx() -= this->width() / 2; + position.ry() -= this->height() / 2; + move(position); + } + + if (text.length() > 0) { + ui->label->setText(text); + } + if (!unlockButton) { + ui->unlockButton->hide(); + } +} + +LockedDialog::~LockedDialog() +{ + delete ui; +} + + +void LockedDialog::setProcessName(const QString &name) +{ + ui->processLabel->setText(name); +} + + +void LockedDialog::resizeEvent(QResizeEvent *event) +{ + QWidget *par = parentWidget(); + if (par != NULL) { + QPoint position = par->mapToGlobal(QPoint(par->width() / 2, par->height() / 2)); + position.rx() -= event->size().width() / 2; + position.ry() -= event->size().height() / 2; + move(position); + } +} + +void LockedDialog::on_unlockButton_clicked() +{ + m_UnlockClicked = true; +} diff --git a/src/lockeddialog.h b/src/lockeddialog.h index 5be398bc..0f3b29b0 100644 --- a/src/lockeddialog.h +++ b/src/lockeddialog.h @@ -17,51 +17,51 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ -#ifndef LOCKEDDIALOG_H -#define LOCKEDDIALOG_H - -#include - -namespace Ui { - class LockedDialog; -} - -/** - * a small borderless dialog displayed while the Mod Organizer UI is locked - * The dialog contains only a label and a button to force the UI to be unlocked - * - * The UI gets locked while running external applications since they may modify the - * data on which Mod Organizer works. After the UI is unlocked (manually or after the - * external application closed) MO will refresh all of its data sources - **/ -class LockedDialog : public QDialog -{ - Q_OBJECT - -public: - explicit LockedDialog(QWidget *parent = 0); - ~LockedDialog(); - - /** - * @brief see if the user clicked the unlock-button - * - * @return true if the user clicked the unlock button - **/ - bool unlockClicked() const { return m_UnlockClicked; } - - void setProcessName(const QString &name); - -protected: - - virtual void resizeEvent(QResizeEvent *event); - -private slots: - - void on_unlockButton_clicked(); - -private: - Ui::LockedDialog *ui; - bool m_UnlockClicked; -}; - -#endif // LOCKEDDIALOG_H +#ifndef LOCKEDDIALOG_H +#define LOCKEDDIALOG_H + +#include + +namespace Ui { + class LockedDialog; +} + +/** + * a small borderless dialog displayed while the Mod Organizer UI is locked + * The dialog contains only a label and a button to force the UI to be unlocked + * + * The UI gets locked while running external applications since they may modify the + * data on which Mod Organizer works. After the UI is unlocked (manually or after the + * external application closed) MO will refresh all of its data sources + **/ +class LockedDialog : public QDialog +{ + Q_OBJECT + +public: + explicit LockedDialog(QWidget *parent = 0, const QString &text = "", bool unlockButton = true); + ~LockedDialog(); + + /** + * @brief see if the user clicked the unlock-button + * + * @return true if the user clicked the unlock button + **/ + bool unlockClicked() const { return m_UnlockClicked; } + + void setProcessName(const QString &name); + +protected: + + virtual void resizeEvent(QResizeEvent *event); + +private slots: + + void on_unlockButton_clicked(); + +private: + Ui::LockedDialog *ui; + bool m_UnlockClicked; +}; + +#endif // LOCKEDDIALOG_H diff --git a/src/logbuffer.cpp b/src/logbuffer.cpp index 4f72e551..689d2b55 100644 --- a/src/logbuffer.cpp +++ b/src/logbuffer.cpp @@ -21,6 +21,7 @@ along with Mod Organizer. If not, see . #include "report.h" #include #include +#include #include QScopedPointer LogBuffer::s_Instance; @@ -124,8 +125,6 @@ char LogBuffer::msgTypeID(QtMsgType type) } } -#include - void LogBuffer::log(QtMsgType type, const char *message) { QMutexLocker guard(&s_Mutex); diff --git a/src/main.cpp b/src/main.cpp index 8b74ba83..05d68ec7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -119,7 +119,8 @@ bool bootstrap() QDir::fromNativeSeparators(ToQString(gameInfo.getDownloadDir())), QDir::fromNativeSeparators(ToQString(gameInfo.getOverwriteDir())), QDir::fromNativeSeparators(ToQString(gameInfo.getLogDir())), - QDir::fromNativeSeparators(ToQString(gameInfo.getTutorialDir())) + QDir::fromNativeSeparators(ToQString(gameInfo.getTutorialDir())), + QDir::fromNativeSeparators(ToQString(gameInfo.getOrganizerDirectory()) + "/boss") }; static const int NUM_DIRECTORIES = sizeof(dirNames) / sizeof(QString); @@ -284,7 +285,7 @@ int main(int argc, char *argv[]) SetUnhandledExceptionFilter(MyUnhandledExceptionFilter); - LogBuffer::init(20, QtDebugMsg, application.applicationDirPath() + "/logs/mo_interface.log"); + LogBuffer::init(200, QtDebugMsg, application.applicationDirPath() + "/logs/mo_interface.log"); qDebug("Working directory: %s", qPrintable(QDir::toNativeSeparators(QDir::currentPath()))); qDebug("MO at: %s", qPrintable(QDir::toNativeSeparators(application.applicationDirPath()))); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 582bc283..0f98989c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -48,7 +48,8 @@ along with Mod Organizer. If not, see . #include "filedialogmemory.h" #include "questionboxmemory.h" #include "tutorialmanager.h" -#include "icondelegate.h" +#include "modflagicondelegate.h" +#include "pluginflagicondelegate.h" #include "credentialsdialog.h" #include "selectiondialog.h" #include "csvbuilder.h" @@ -104,6 +105,7 @@ along with Mod Organizer. If not, see . #include #include #include +#include #ifdef TEST_MODELS @@ -186,7 +188,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget ui->modList->setModel(m_ModListSortProxy); ui->modList->sortByColumn(ModList::COL_PRIORITY, Qt::AscendingOrder); - ui->modList->setItemDelegateForColumn(ModList::COL_FLAGS, new IconDelegate(ui->modList)); + ui->modList->setItemDelegateForColumn(ModList::COL_FLAGS, new ModFlagIconDelegate(ui->modList)); //ui->modList->setAcceptDrops(true); ui->modList->header()->installEventFilter(&m_ModList); if (initSettings.contains("mod_list_state")) { @@ -206,6 +208,7 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget ui->espList->setModel(m_PluginListSortProxy); ui->espList->sortByColumn(PluginList::COL_PRIORITY, Qt::AscendingOrder); + ui->espList->setItemDelegateForColumn(PluginList::COL_FLAGS, new PluginFlagIconDelegate(ui->espList)); if (initSettings.contains("plugin_list_state")) { ui->espList->header()->restoreState(initSettings.value("plugin_list_state").toByteArray()); } @@ -1314,6 +1317,8 @@ HANDLE MainWindow::spawnBinaryDirect(const QFileInfo &binary, const QString &arg QCoreApplication::processEvents(); } + m_CurrentProfile->writeModlistNow(true); + // TODO: should also pass arguments if (m_AboutToRun(binary.absoluteFilePath())) { return startBinary(binary, arguments, profileName, m_Settings.logLevel(), currentDirectory, true); @@ -1778,7 +1783,7 @@ void MainWindow::refreshESPList() m_CurrentProfile->getLoadOrderFileName(), m_CurrentProfile->getLockedOrderFileName()); } catch (const std::exception &e) { - reportError(tr("Failed to refresh list of esps: %s").arg(e.what())); + reportError(tr("Failed to refresh list of esps: %1").arg(e.what())); } } @@ -5123,3 +5128,18 @@ void MainWindow::on_showHiddenBox_toggled(bool checked) m_DownloadManager.setShowHidden(checked); } +void MainWindow::on_bossButton_clicked() +{ + try { + LockedDialog dialog(this, tr("BOSS working"), false); + dialog.show(); + qApp->processEvents(); + m_PluginList.bossSort(); + + savePluginList(); + dialog.hide(); + } catch (const std::exception &e) { + reportError(tr("failed to run boss: %1").arg(e.what())); + ui->bossButton->setEnabled(false); + } +} diff --git a/src/mainwindow.h b/src/mainwindow.h index c01ce767..b247b924 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -564,6 +564,7 @@ private slots: // ui slots void on_linkButton_pressed(); void on_showHiddenBox_toggled(bool checked); void on_bsaList_itemChanged(QTreeWidgetItem *item, int column); + void on_bossButton_clicked(); }; #endif // MAINWINDOW_H diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 5c89a7e0..f3bb425c 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -31,7 +31,16 @@ 4 - + + 6 + + + 6 + + + 6 + + 6 @@ -705,14 +714,25 @@ p, li { white-space: pre-wrap; } - - - - - - Namefilter - - + + + + + + + + Namefilter + + + + + + + Sort + + + +
        @@ -721,7 +741,16 @@ p, li { white-space: pre-wrap; } Archives - + + 6 + + + 6 + + + 6 + + 6 @@ -801,7 +830,16 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data - + + 6 + + + 6 + + + 6 + + 6 @@ -871,7 +909,16 @@ BSAs checked here are loaded in such a way that your installation order is obeye Saves - + + 6 + + + 6 + + + 6 + + 6 @@ -900,7 +947,16 @@ p, li { white-space: pre-wrap; } Downloads - + + 2 + + + 2 + + + 2 + + 2 diff --git a/src/modflagicondelegate.cpp b/src/modflagicondelegate.cpp new file mode 100644 index 00000000..db69eb52 --- /dev/null +++ b/src/modflagicondelegate.cpp @@ -0,0 +1,50 @@ +#include "modflagicondelegate.h" +#include + + +ModFlagIconDelegate::ModFlagIconDelegate(QObject *parent) + : IconDelegate(parent) +{ +} + +QList ModFlagIconDelegate::getIcons(const QModelIndex &index) const +{ + QList result; + QVariant modid = index.data(Qt::UserRole + 1); + if (modid.isValid()) { + ModInfo::Ptr info = ModInfo::getByIndex(modid.toInt()); + std::vector flags = info->getFlags(); + + for (auto iter = flags.begin(); iter != flags.end(); ++iter) { + result.append(getFlagIcon(*iter)); + } + } + return result; +} + +QIcon ModFlagIconDelegate::getFlagIcon(ModInfo::EFlag flag) const +{ + switch (flag) { + case ModInfo::FLAG_BACKUP: return QIcon(":/MO/gui/emblem_backup"); + case ModInfo::FLAG_INVALID: return QIcon(":/MO/gui/emblem_problem"); + case ModInfo::FLAG_NOTENDORSED: return QIcon(":/MO/gui/emblem_notendorsed"); + case ModInfo::FLAG_NOTES: return QIcon(":/MO/gui/emblem_notes"); + case ModInfo::FLAG_CONFLICT_OVERWRITE: return QIcon(":/MO/gui/emblem_conflict_overwrite"); + case ModInfo::FLAG_CONFLICT_OVERWRITTEN: return QIcon(":/MO/gui/emblem_conflict_overwritten"); + case ModInfo::FLAG_CONFLICT_MIXED: return QIcon(":/MO/gui/emblem_conflict_mixed"); + case ModInfo::FLAG_CONFLICT_REDUNDANT: return QIcon(":MO/gui/emblem_conflict_redundant"); + default: return QIcon(); + } +} + +size_t ModFlagIconDelegate::getNumIcons(const QModelIndex &index) const +{ + unsigned int modIdx = index.data(Qt::UserRole + 1).toInt(); + if (modIdx < ModInfo::getNumMods()) { + ModInfo::Ptr info = ModInfo::getByIndex(modIdx); + return info->getFlags().size(); + } else { + return 0; + } +} + diff --git a/src/modflagicondelegate.h b/src/modflagicondelegate.h new file mode 100644 index 00000000..800e2741 --- /dev/null +++ b/src/modflagicondelegate.h @@ -0,0 +1,18 @@ +#ifndef MODFLAGICONDELEGATE_H +#define MODFLAGICONDELEGATE_H + +#include "icondelegate.h" + +class ModFlagIconDelegate : public IconDelegate +{ +public: + explicit ModFlagIconDelegate(QObject *parent = 0); +private: + virtual QList getIcons(const QModelIndex &index) const; + virtual size_t getNumIcons(const QModelIndex &index) const; + + QIcon getFlagIcon(ModInfo::EFlag flag) const; + +}; + +#endif // MODFLAGICONDELEGATE_H diff --git a/src/organizer.pro b/src/organizer.pro index fd72dea3..9a9d0da3 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -81,7 +81,10 @@ SOURCES += \ previewgenerator.cpp \ previewdialog.cpp \ aboutdialog.cpp \ - json.cpp + json.cpp \ + safewritefile.cpp \ + modflagicondelegate.cpp \ + pluginflagicondelegate.cpp HEADERS += \ @@ -152,7 +155,11 @@ HEADERS += \ previewgenerator.h \ previewdialog.h \ aboutdialog.h \ - json.h + json.h \ + safewritefile.h\ + pdll.h \ + modflagicondelegate.h \ + pluginflagicondelegate.h FORMS += \ transfersavesdialog.ui \ @@ -185,24 +192,28 @@ FORMS += \ previewdialog.ui \ aboutdialog.ui -INCLUDEPATH += ../shared ../archive ../uibase ../bsatk ../esptk "$(BOOSTPATH)" +INCLUDEPATH += ../shared ../archive ../uibase ../bsatk ../esptk ../boss_modified/boss-api "$(BOOSTPATH)" LIBS += -L"$(BOOSTPATH)/stage/lib" CONFIG(debug, debug|release) { OUTDIR = $$OUT_PWD/debug DSTDIR = $$PWD/../../outputd - LIBS += -L$$OUT_PWD/../shared/debug -L$$OUT_PWD/../bsatk/debug - LIBS += -L$$OUT_PWD/../uibase/debug - LIBS += -lDbgHelp + LIBS += -L$$OUT_PWD/../shared/debug + LIBS += -L$$OUT_PWD/../bsatk/debug + LIBS += -L$$OUT_PWD/../uibase/debug + LIBS += -L$$OUT_PWD/../boss_modified/debug + LIBS += -lDbgHelp } else { OUTDIR = $$OUT_PWD/release DSTDIR = $$PWD/../../output - LIBS += -L$$OUT_PWD/../shared/release -L$$OUT_PWD/../bsatk/release + LIBS += -L$$OUT_PWD/../shared/release + LIBS += -L$$OUT_PWD/../bsatk/release LIBS += -L$$OUT_PWD/../uibase/release - QMAKE_CXXFLAGS += /Zi + LIBS += -L$$OUT_PWD/../boss_modified/release + QMAKE_CXXFLAGS += /Zi /GL # QMAKE_CXXFLAGS -= -O2 - QMAKE_LFLAGS += /DEBUG + QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF } #QMAKE_CXXFLAGS_WARN_ON -= -W3 @@ -299,9 +310,6 @@ OTHER_FILES += \ tutorials/tutorial_window_installer.js \ tutorials/tutorials_installdialog.qml -INCLUDEPATH += "$(ZLIBPATH)" "$(ZLIBPATH)/build" "$(BOOSTPATH)" -LIBS += -L"$(ZLIBPATH)/build" -lzlibstatic - # leak detection with vld #INCLUDEPATH += "E:/Visual Leak Detector/include" diff --git a/src/pdll.h b/src/pdll.h new file mode 100644 index 00000000..6e1d06f3 --- /dev/null +++ b/src/pdll.h @@ -0,0 +1,402 @@ +//////////////////////////////////////////////////////////////////////////////////////////////////// +// Class: PDll // +// Authors: MicHael Galkovsky // +// Date: April 14, 1998 // +// Company: Pervasive Software // +// Purpose: Base class to wrap dynamic use of dll // +////////////////////////////////////////////////////////////////////////////////////////////// + +#if !defined (_PDLL_H_) +#define _PDLL_H_ + +#include +#include + +#include +#include +#include + + +#define FUNC_LOADED 3456 + +//function declarations according to the number of parameters +//define the type +//declare a variable of that type +//declare a member function by the same name as the dll function +//check for dll handle +//if this is the first call to the function then try to load it +//if not then if the function was loaded successfully make a call to it +//otherwise return a NULL cast to the return parameter. + +#define DECLARE_FUNCTION0(CallType, retVal, FuncName) \ + typedef retVal (CallType* TYPE_##FuncName)(); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName; \ + retVal FuncName() \ + { \ + if (m_dllHandle) \ + { \ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(); \ + else \ + return (retVal)NULL; \ + } \ + else \ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION1(CallType,retVal, FuncName, Param1) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName;\ + retVal FuncName(Param1 p1) \ + { \ + if (m_dllHandle) \ + { \ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1); \ + else \ + return (retVal)NULL; \ + } \ + else \ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION2(CallType,retVal, FuncName, Param1, Param2) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1, Param2); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName;\ + retVal FuncName (Param1 p1, Param2 p2) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2); \ + else \ + return (retVal)NULL; \ + } \ + else\ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION3(CallType,retVal, FuncName, Param1, Param2, Param3) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1, Param2, Param3); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName;\ + retVal FuncName (Param1 p1, Param2 p2, Param3 p3) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED; \ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2, p3);\ + else \ + return (retVal)NULL; \ + } \ + else\ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION4(CallType,retVal, FuncName, Param1, Param2, Param3, Param4) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1, Param2, Param3, Param4); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName;\ + retVal FuncName (Param1 p1, Param2 p2, Param3 p3, Param4 p4) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2, p3, p4);\ + else \ + return (retVal)NULL; \ + } \ + else\ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION5(CallType,retVal, FuncName, Param1, Param2, Param3, Param4, Param5) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1, Param2, Param3, Param4, Param5); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName; \ + retVal FuncName (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2, p3, p4, p5);\ + else \ + return (retVal)NULL; \ + } \ + else\ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION6(CallType,retVal, FuncName, Param1, Param2, Param3, Param4, Param5, Param6) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1, Param2, Param3, Param4, Param5, Param6); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName;\ + retVal FuncName (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2, p3, p4, p5, p6);\ + else \ + return (retVal)NULL; \ + } \ + else\ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION7(CallType,retVal, FuncName, Param1, Param2, Param3, Param4, Param5, Param6, Param7) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1, Param2, Param3, Param4, Param5, Param6, Param7); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName;\ + retVal FuncName (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2, p3, p4, p5, p6, p7);\ + else \ + return (retVal)NULL; \ + } \ + else\ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION8(CallType,retVal, FuncName, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName;\ + retVal FuncName (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2, p3, p4, p5, p6, p7, p8);\ + else \ + return (retVal)NULL; \ + }\ + else\ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION9(CallType,retVal, FuncName, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) \ + typedef retVal (CallType* TYPE_##FuncName)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName; \ + retVal FuncName (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_NAME != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2, p3, p4, p5, p6, p7, p8, p9);\ + else \ + return (retVal)NULL; \ + }\ + else\ + return (retVal)NULL; \ + } + +#define DECLARE_FUNCTION10(CallType,retVal, FuncName, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) \ + typedef retVal (CallType* TYPE_##FuncName)FuncName(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10); \ + TYPE_##FuncName m_##FuncName; \ + short m_is##FuncName;\ + retVal FuncName (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) \ + {\ + if (m_dllHandle)\ + {\ + if (FUNC_LOADED != m_is##FuncName) \ + {\ + m_##FuncName = NULL; \ + m_##FuncName = (TYPE_##FuncName)GetProcAddress(m_dllHandle, #FuncName); \ + m_is##FuncName = FUNC_LOADED;\ + }\ + if (NULL != m_##FuncName) \ + return m_##FuncName(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);\ + else \ + return (retVal)NULL; \ + }\ + else \ + return (retVal)NULL;\ + } + +//declare constructors and LoadFunctions +#define DECLARE_CLASS(ClassName) \ + public: \ + ClassName (LPCTSTR name){LoadDll(name);} \ + ClassName () {PDLL();} + +class PDLL +{ +protected: + HINSTANCE m_dllHandle; +private: + LPTSTR m_dllName; + int m_refCount; + +public: + + PDLL() + { + m_dllHandle = NULL; + m_dllName = NULL; + m_refCount = 0; + } + + //A NULL here means the name has already been set + void LoadDll(LPCTSTR name, bool showMsg = true) + { + if (name) + SetDllName(name); + + //try to load + m_dllHandle = LoadLibrary(m_dllName); + + if (m_dllHandle == NULL && showMsg) + { + std::ostringstream message; + message << "failed to load dll: " << ::GetLastError(); + throw std::runtime_error(message.str().c_str()); + } + } + + bool SetDllName(LPCTSTR newName) + { + bool retVal = false; + + //we allow name resets only if the current DLL handle is invalid + //once they've hooked into a DLL, the name cannot be changed + if (!m_dllHandle) + { + if (m_dllName) + { + delete []m_dllName; + m_dllName = NULL; + } + + //They may be setting this null (e.g., uninitialize) + if (newName) + { + m_dllName = new TCHAR[_tcslen(newName) + 1]; + _tcscpy(m_dllName, newName); + } + retVal = true; + } + return retVal; + } + + virtual bool Initialize(short showMsg = 1) + { + + bool retVal = false; + + //Add one to our internal reference counter + m_refCount++; + + if (m_refCount == 1 && m_dllName) //if this is first time, load the DLL + { + //we are assuming the name is already set + LoadDll(NULL, showMsg); + retVal = (m_dllHandle != NULL); + } + return retVal; + } + + virtual void Uninitialize(void) + { + //If we're already completely unintialized, early exit + if (!m_refCount) + return; + //if this is the last time this instance has been unitialized, + //then do a full uninitialization + m_refCount--; + + if (m_refCount < 1) + { + if (m_dllHandle) + { + FreeLibrary(m_dllHandle); + m_dllHandle = NULL; + } + + SetDllName(NULL); //clear out the name & free memory + } + } + + virtual ~PDLL() + { + //force this to be a true uninitialize + m_refCount = 1; + Uninitialize(); + + //free name + if (m_dllName) + { + delete [] m_dllName; + m_dllName = NULL; + } + } + +}; +#endif diff --git a/src/pluginflagicondelegate.cpp b/src/pluginflagicondelegate.cpp new file mode 100644 index 00000000..6c0bb29e --- /dev/null +++ b/src/pluginflagicondelegate.cpp @@ -0,0 +1,24 @@ +#include "pluginflagicondelegate.h" +#include "pluginlist.h" +#include + + +PluginFlagIconDelegate::PluginFlagIconDelegate(QObject *parent) + : IconDelegate(parent) +{ +} + +QList PluginFlagIconDelegate::getIcons(const QModelIndex &index) const +{ + QList result; + foreach (const QVariant &var, index.data(Qt::UserRole + 1).toList()) { + result.append(var.value()); + } + return result; +} + +size_t PluginFlagIconDelegate::getNumIcons(const QModelIndex &index) const +{ + return index.data(Qt::UserRole + 1).toList().count(); +} + diff --git a/src/pluginflagicondelegate.h b/src/pluginflagicondelegate.h new file mode 100644 index 00000000..554e968b --- /dev/null +++ b/src/pluginflagicondelegate.h @@ -0,0 +1,17 @@ +#ifndef PLUGINFLAGICONDELEGATE_H +#define PLUGINFLAGICONDELEGATE_H + +#include "icondelegate.h" + +class PluginFlagIconDelegate : public IconDelegate +{ +public: + PluginFlagIconDelegate(QObject *parent = NULL); + + // IconDelegate interface +private: + virtual QList getIcons(const QModelIndex &index) const; + virtual size_t getNumIcons(const QModelIndex &index) const; +}; + +#endif // PLUGINFLAGICONDELEGATE_H diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 85137390..c2e14182 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -20,8 +20,10 @@ along with Mod Organizer. If not, see . #include "pluginlist.h" #include "report.h" #include "inject.h" -#include #include "settings.h" +#include "safewritefile.h" +#include "scopeguard.h" +#include #include #include #include @@ -39,7 +41,6 @@ along with Mod Organizer. If not, see . #include #include -#include #include #include #include @@ -74,8 +75,10 @@ bool ByDate(const PluginList::ESPInfo& LHS, const PluginList::ESPInfo& RHS) { } PluginList::PluginList(QObject *parent) - : QAbstractTableModel(parent), - m_FontMetrics(QFont()), m_SaveTimer(this) + : QAbstractTableModel(parent) + , m_FontMetrics(QFont()) + , m_SaveTimer(this) + , m_BOSS(NULL) { m_SaveTimer.setSingleShot(true); connect(&m_SaveTimer, SIGNAL(timeout()), this, SIGNAL(saveTimer())); @@ -92,6 +95,12 @@ PluginList::PluginList(QObject *parent) PluginList::~PluginList() { + if (m_BOSS != NULL) { + m_BOSS->DestroyBossDb(m_BOSSDB); + m_BOSS->CleanUpAPI(); + delete m_BOSS; + m_BOSS = NULL; + } } @@ -101,6 +110,7 @@ QString PluginList::getColumnName(int column) case COL_NAME: return tr("Name"); case COL_PRIORITY: return tr("Priority"); case COL_MODINDEX: return tr("Mod Index"); + case COL_FLAGS: return tr("Flags"); default: return tr("unknown"); } } @@ -205,7 +215,7 @@ void PluginList::refresh(const QString &profileName, const DirectoryEntry &baseD emit layoutChanged(); refreshLoadOrder(); - emit dataChanged(this->index(0, 0), this->index(m_ESPs.size(), 1)); + emit dataChanged(this->index(0, 0), this->index(m_ESPs.size(), columnCount())); m_Refreshed(); } @@ -375,18 +385,16 @@ void PluginList::readLockedOrderFrom(const QString &fileName) } + void PluginList::writePlugins(const QString &fileName, bool writeUnchecked) const { - QFile file(fileName); - if (!file.open(QIODevice::WriteOnly)) { - throw MyException(tr("failed to open output file: %1").arg(fileName)); - } + SafeWriteFile file(fileName); QTextCodec *textCodec = writeUnchecked ? m_Utf8Codec : m_LocalCodec; - file.resize(0); + file->resize(0); - file.write(textCodec->fromUnicode("# This file was automatically generated by Mod Organizer.\r\n")); + file->write(textCodec->fromUnicode("# This file was automatically generated by Mod Organizer.\r\n")); bool invalidFileNames = false; int writtenCount = 0; @@ -398,36 +406,34 @@ void PluginList::writePlugins(const QString &fileName, bool writeUnchecked) cons invalidFileNames = true; qCritical("invalid plugin name %s", m_ESPs[priority].m_Name.toUtf8().constData()); } else { - file.write(textCodec->fromUnicode(m_ESPs[priority].m_Name)); + file->write(textCodec->fromUnicode(m_ESPs[priority].m_Name)); } - file.write("\r\n"); + file->write("\r\n"); ++writtenCount; } } - file.close(); if (invalidFileNames) { reportError(tr("Some of your plugins have invalid names! These plugins can not be loaded by the game. " "Please see mo_interface.log for a list of affected plugins and rename them.")); } + file.commit(); + qDebug("%s saved", QDir::toNativeSeparators(fileName).toUtf8().constData()); } void PluginList::writeLockedOrder(const QString &fileName) const { - QFile file(fileName); - if (!file.open(QIODevice::WriteOnly)) { - throw MyException(tr("failed to open output file: %1").arg(fileName)); - } + SafeWriteFile file(fileName); - file.resize(0); - file.write(QString("# This file was automatically generated by Mod Organizer.\r\n").toUtf8()); + file->resize(0); + file->write(QString("# This file was automatically generated by Mod Organizer.\r\n").toUtf8()); for (auto iter = m_LockedOrder.begin(); iter != m_LockedOrder.end(); ++iter) { - file.write(QString("%1|%2\r\n").arg(iter->first).arg(iter->second).toUtf8()); + file->write(QString("%1|%2\r\n").arg(iter->first).arg(iter->second).toUtf8()); } - file.close(); + file.commit(); } @@ -590,6 +596,175 @@ void PluginList::refreshLoadOrder() emit layoutChanged(); } + +class boss_exception : public std::runtime_error { +public: + boss_exception(const std::string &message) : std::runtime_error(message) {} +}; + +#define THROW_BOSS_ERROR(obj) \ + uint8_t *message; \ + obj->GetLastErrorDetails(&message); \ + throw boss_exception(std::string(reinterpret_cast(message))); + +#define U8(text) reinterpret_cast(text) + + +void outputBossLog(const QString &filename) +{ + QFile file(filename); + if (file.open(QIODevice::ReadOnly)) { + while (!file.atEnd()) { + QByteArray line = file.readLine().trimmed(); + if (line.length() < 1) + continue; + + int endFirstWord = line.indexOf(':'); + if (endFirstWord < 0) { + endFirstWord = 0; + } + QString firstWord = line.mid(0, endFirstWord); + if (firstWord == "DEBUG") { + qDebug("(boss) %s", line.mid(endFirstWord + 2).constData()); + } else { + qWarning("(boss) %s", line.mid(endFirstWord + 2).constData()); + } + } + } + file.resize(0); +} + + +void PluginList::initBoss() +{ + m_BOSS = new BossDLL(TEXT("dlls\\boss.dll")); + + if (!m_BOSS->IsCompatibleVersion(2,1,1)) { + throw MyException(tr("BOSS dll incompatible")); + } + uint8_t *versionString; + if (m_BOSS->GetVersionString(&versionString) != BossDLL::RESULT_OK) { + THROW_BOSS_ERROR(m_BOSS) + } + qDebug("using boss version %s", versionString); + + m_TempFile.open(); m_TempFile.close(); // yeah, stupid, but open is required to generate the name + m_BOSS->SetLoggerOutput(m_TempFile.fileName().toLocal8Bit().constData(), 4); + + if (m_BOSS->CreateBossDb(&m_BOSSDB, BossDLL::SKYRIM, NULL) != BossDLL::RESULT_OK) { + uint8_t *message; + m_BOSS->GetLastErrorDetails(&message); + std::string messageCopy(reinterpret_cast(message)); + delete m_BOSS; + m_BOSS = NULL; + throw boss_exception(messageCopy); + } + qApp->processEvents(); + + QString masterlistName = QDir::toNativeSeparators(qApp->applicationDirPath() + "/boss/masterlist.txt"); + + uint32_t res = m_BOSS->UpdateMasterlist(m_BOSSDB, U8(masterlistName.toUtf8().constData())); + qApp->processEvents(); + if (res == BossDLL::RESULT_OK) { + qDebug("boss masterlist updated"); + } else if (res == BossDLL::RESULT_NO_UPDATE_NECESSARY) { + qDebug("boss masterlist already up-to-date"); + } else { + THROW_BOSS_ERROR(m_BOSS) + } + if (m_BOSS->Load(m_BOSSDB, + U8(masterlistName.toUtf8().constData()), + U8(QDir::toNativeSeparators(qApp->applicationDirPath() + "/boss/userlist.txt").toUtf8().constData())) != BossDLL::RESULT_OK) { + THROW_BOSS_ERROR(m_BOSS) + } +} + +void PluginList::convertPluginListForBoss(boost::ptr_vector &inputPlugins, std::vector &activePlugins) +{ + foreach (int idx, m_ESPsByPriority) { + QString fileName = m_ESPs[idx].m_Name; + QByteArray name = fileName.toUtf8(); + + uint8_t *nameU8 = new uint8_t[name.length() + 1]; + memcpy(nameU8, name.constData(), name.length() + 1); + if (m_ESPs[idx].m_Enabled) { + activePlugins.push_back(nameU8); + } + inputPlugins.push_back(nameU8); + } + if (m_BOSS->SetActivePluginsDumb(m_BOSSDB, &activePlugins[0], activePlugins.size()) != BossDLL::RESULT_OK) { + THROW_BOSS_ERROR(m_BOSS) + } +} + +void PluginList::applyBOSSSorting(uint8_t **pluginList, size_t size, int &priority, bool recognized, const char *extension) +{ + for (size_t i= 0; i < size; ++i) { + QString name = QString::fromUtf8(reinterpret_cast(pluginList[i])).toLower(); + if (name.endsWith(extension)) { + auto iter = m_ESPsByName.find(name); + if (iter == m_ESPsByName.end()) { + throw MyException("boss returned invalid data"); + } + BossMessage *message; + size_t numMessages = 0; + m_BOSS->GetPluginMessages(m_BOSSDB, pluginList[i], &message, &numMessages); + m_ESPs[iter->second].m_BOSSMessages.clear(); + for (size_t im = 0; im < numMessages; ++im) { + m_ESPs[iter->second].m_BOSSMessages.append(QString::fromUtf8(reinterpret_cast(message[im].message))); + } + m_ESPs[iter->second].m_Priority = priority++; + m_ESPs[iter->second].m_BOSSUnrecognized = !recognized; + } + } +} + +void PluginList::bossSort() +{ + if (m_BOSS == NULL) { + // first run, check boss compatibility and update + initBoss(); + } + + // create a boss-compatible representation of our current mod list. + boost::ptr_vector inputPlugins; + std::vector activePlugins; + convertPluginListForBoss(inputPlugins, activePlugins); + + // sort mods in-memory + uint8_t **sortedPlugins; + uint8_t **unrecognizedPlugins; + size_t sizeSorted, sizeUnrecognized; + + if (m_BOSS->SortCustomMods(m_BOSSDB, + inputPlugins.c_array(), inputPlugins.size(), + &sortedPlugins, &sizeSorted, + &unrecognizedPlugins, &sizeUnrecognized) != BossDLL::RESULT_OK) { + THROW_BOSS_ERROR(m_BOSS) + } + + // output the log from boss to our own log to make it visible + outputBossLog(m_TempFile.fileName()); + + qDebug("%d sorted, %d unrecognized", sizeSorted, sizeUnrecognized); + + emit layoutAboutToBeChanged(); + + int priority = 0; + applyBOSSSorting(sortedPlugins, sizeSorted, priority, true, "esm"); + applyBOSSSorting(unrecognizedPlugins, sizeUnrecognized, priority, false, "esm"); + applyBOSSSorting(sortedPlugins, sizeSorted, priority, true, "esp"); + applyBOSSSorting(unrecognizedPlugins, sizeUnrecognized, priority, false, "esp"); + + // inform view of the changed data + updateIndices(); + emit layoutChanged(); + syncLoadOrder(); + + emit dataChanged(this->index(0, 0), this->index(m_ESPs.size(), columnCount())); + m_Refreshed(); +} + IPluginList::PluginState PluginList::state(const QString &name) const { auto iter = m_ESPsByName.find(name.toLower()); @@ -670,7 +845,7 @@ int PluginList::rowCount(const QModelIndex &parent) const int PluginList::columnCount(const QModelIndex &) const { - return 3; + return COL_LASTCOLUMN + 1; } @@ -724,18 +899,6 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const return QVariant(); } break; } - } else if ((role == Qt::DecorationRole) && (modelIndex.column() == 0)) { - if (m_ESPs[index].m_MasterUnset.size() > 0) { - return QIcon(":/MO/gui/warning"); - } else if (m_LockedOrder.find(m_ESPs[index].m_Name.toLower()) != m_LockedOrder.end()) { - return QIcon(":/MO/gui/locked"); - } else if (m_ESPs[index].m_HasIni) { - return QIcon(":/MO/gui/attachment"); - } else if (m_ESPs[index].m_IsDummy && m_ESPs[index].m_Enabled && !m_ESPs[index].m_HasIni) { - return QIcon(":/MO/gui/edit_clear"); - } else { - return QVariant(); - } } else if ((role == Qt::CheckStateRole) && (modelIndex.column() == 0)) { return m_ESPs[index].m_Enabled ? Qt::Checked : Qt::Unchecked; } else if (role == Qt::FontRole) { @@ -754,8 +917,15 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const return QVariant(Qt::AlignHCenter | Qt::AlignVCenter); } } else if (role == Qt::ToolTipRole) { + QString toolTip; + if (!m_ESPs[index].m_BOSSMessages.isEmpty()) { + toolTip += m_ESPs[index].m_BOSSMessages.join("
        ") + "

        "; + } + if (m_ESPs[index].m_BOSSUnrecognized) { + toolTip += "Not recognized by BOSS
        "; + } if (m_ESPs[index].m_ForceEnabled) { - return tr("This plugin can't be disabled (enforced by the game)"); + toolTip += tr("This plugin can't be disabled (enforced by the game)"); } else { QString text = tr("Origin: %1").arg(m_ESPs[index].m_OriginName); if (m_ESPs[index].m_MasterUnset.size() > 0) { @@ -773,8 +943,30 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const text += "
        This file is a dummy! It exists only so the bsa with the same name gets loaded. With MO you don't need this: " "If you enable the archive with the same name in the \"Archive\" tab you can disable this plugin."; } - return text; + toolTip += text; + } + return toolTip; + } else if (role == Qt::UserRole + 1) { + QVariantList result; + if (m_ESPs[index].m_MasterUnset.size() > 0) { + result.append(QIcon(":/MO/gui/warning")); + } + if (m_LockedOrder.find(m_ESPs[index].m_Name.toLower()) != m_LockedOrder.end()) { + result.append(QIcon(":/MO/gui/locked")); } + if (!m_ESPs[index].m_BOSSMessages.isEmpty()) { + result.append(QIcon(":/MO/gui/information")); + } + if (m_ESPs[index].m_BOSSUnrecognized) { + result.append(QIcon(":/MO/gui/help")); + } + if (m_ESPs[index].m_HasIni) { + result.append(QIcon(":/MO/gui/attachment")); + } + if (m_ESPs[index].m_IsDummy && m_ESPs[index].m_Enabled && !m_ESPs[index].m_HasIni) { + result.append(QIcon(":/MO/gui/edit_clear")); + } + return result; } else { return QVariant(); } @@ -784,7 +976,6 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const bool PluginList::setData(const QModelIndex &modIndex, const QVariant &value, int role) { if (role == Qt::CheckStateRole) { -qDebug("uncheck plugin"); m_ESPs[modIndex.row()].m_Enabled = value.toInt() == Qt::Checked; emit dataChanged(modIndex, modIndex); @@ -1036,7 +1227,8 @@ PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled, FILETIME time, const QString &originName, const QString &fullPath, bool hasIni) : m_Name(name), m_Enabled(enabled), m_ForceEnabled(enabled), m_Removed(false), - m_Priority(0), m_LoadOrder(-1), m_Time(time), m_OriginName(originName), m_HasIni(hasIni) + m_Priority(0), m_LoadOrder(-1), m_Time(time), m_OriginName(originName), m_HasIni(hasIni), + m_BOSSUnrecognized(false) { try { ESP::File file(ToWString(fullPath)); diff --git a/src/pluginlist.h b/src/pluginlist.h index 64c914df..bb7428d0 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -25,8 +25,12 @@ along with Mod Organizer. If not, see . #include #include #include +#include #include +#include #include +#include +#include /** @@ -40,6 +44,7 @@ public: enum EColumn { COL_NAME, + COL_FLAGS, COL_PRIORITY, COL_MODINDEX, @@ -143,6 +148,8 @@ public: void refreshLoadOrder(); + void bossSort(); + public: virtual PluginState state(const QString &name) const; virtual int priority(const QString &name) const; @@ -162,6 +169,7 @@ public: // implementation of the QAbstractTableModel interface virtual Qt::DropActions supportedDropActions() const { return Qt::MoveAction; } virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); + void applyBOSSSorting(uint8_t **pluginList, size_t size, int &priority, bool recognized, const char *extension); public slots: /** @@ -194,7 +202,6 @@ private: ESPInfo(const QString &name, bool enabled, FILETIME time, const QString &originName, const QString &fullPath, bool hasIni); QString m_Name; - QString m_FullPath; bool m_Enabled; bool m_ForceEnabled; bool m_Removed; @@ -207,12 +214,91 @@ private: bool m_HasIni; std::set m_Masters; mutable std::set m_MasterUnset; + QStringList m_BOSSMessages; + bool m_BOSSUnrecognized; }; friend bool ByName(const ESPInfo& LHS, const ESPInfo& RHS); friend bool ByDate(const ESPInfo& LHS, const ESPInfo& RHS); friend bool ByPriority(const ESPInfo& LHS, const ESPInfo& RHS); + + class BossDLL : public PDLL { + DECLARE_CLASS(BossDLL) + + DECLARE_FUNCTION3(__cdecl, uint32_t, CreateBossDb, boss_db*, const uint32_t, const uint8_t*) + DECLARE_FUNCTION1(__cdecl, void, DestroyBossDb, boss_db) + DECLARE_FUNCTION0(__cdecl, void, CleanUpAPI) + + DECLARE_FUNCTION7(__cdecl, uint32_t, SortCustomMods, boss_db, uint8_t**, size_t, uint8_t***, size_t*, uint8_t***, size_t*) + DECLARE_FUNCTION3(__cdecl, uint32_t, SetActivePluginsDumb, boss_db, uint8_t**, const size_t) + + DECLARE_FUNCTION3(__cdecl, uint32_t, GetActivePluginsDumb , boss_db, uint8_t***, size_t*) + + DECLARE_FUNCTION2(__cdecl, uint32_t, UpdateMasterlist, boss_db, const uint8_t*) + DECLARE_FUNCTION3(__cdecl, uint32_t, Load, boss_db, const uint8_t*, const uint8_t*) + + DECLARE_FUNCTION2(__cdecl, void, SetLoggerOutput, const char*, uint8_t) + DECLARE_FUNCTION1(__cdecl, uint32_t, GetLastErrorDetails, uint8_t**) + + DECLARE_FUNCTION1(__cdecl, uint32_t, GetVersionString, uint8_t**) + DECLARE_FUNCTION3(__cdecl, bool, IsCompatibleVersion, const uint32_t, const uint32_t, const uint32_t) + + DECLARE_FUNCTION4(__cdecl, uint32_t, GetPluginMessages, boss_db, const uint8_t*, BossMessage**, size_t*) + + enum ResultCode { + RESULT_OK = 0, + RESULT_NO_MASTER_FILE = 1, + RESULT_FILE_READ_FAIL = 2, + RESULT_FILE_WRITE_FAIL = 3, + RESULT_FILE_NOT_UTF8 = 4, + RESULT_FILE_NOT_FOUND = 5, + RESULT_FILE_PARSE_FAIL = 6, + RESULT_CONDITION_EVAL_FAIL = 7, + RESULT_REGEX_EVAL_FAIL = 8, + RESULT_NO_GAME_DETECTED = 9, + RESULT_ENCODING_CONVERSION_FAIL = 10, + RESULT_FIND_ONLINE_MASTERLIST_REVISION_FAIL = 11, + RESULT_FIND_ONLINE_MASTERLIST_DATE_FAIL = 12, + RESULT_READ_UPDATE_FILE_LIST_FAIL = 13, + RESULT_FILE_CRC_MISMATCH = 14, + RESULT_FS_FILE_MOD_TIME_READ_FAIL = 15, + RESULT_FS_FILE_MOD_TIME_WRITE_FAIL = 16, + RESULT_FS_FILE_RENAME_FAIL = 17, + RESULT_FS_FILE_DELETE_FAIL = 18, + RESULT_FS_CREATE_DIRECTORY_FAIL = 19, + RESULT_FS_ITER_DIRECTORY_FAIL = 20, + RESULT_CURL_INIT_FAIL = 21, + RESULT_CURL_SET_ERRBUFF_FAIL = 22, + RESULT_CURL_SET_OPTION_FAIL = 23, + RESULT_CURL_SET_PROXY_FAIL = 24, + RESULT_CURL_SET_PROXY_TYPE_FAIL = 25, + RESULT_CURL_SET_PROXY_AUTH_FAIL = 26, + RESULT_CURL_SET_PROXY_AUTH_TYPE_FAIL = 27, + RESULT_CURL_PERFORM_FAIL = 28, + RESULT_CURL_USER_CANCEL = 29, + RESULT_GUI_WINDOW_INIT_FAIL = 30, + RESULT_NO_UPDATE_NECESSARY = 31, + RESULT_LO_MISMATCH = 32, + RESULT_NO_MEM = 33, + RESULT_INVALID_ARGS = 34, + RESULT_NETWORK_FAIL = 35, + RESULT_NO_INTERNET_CONNECTION = 36, + RESULT_NO_TAG_MAP = 37, + RESULT_PLUGINS_FULL = 38, + RESULT_PLUGIN_BEFORE_MASTER = 39, + RESULT_INVALID_SYNTAX = 40 + }; + + enum GameIDs { + AUTODETECT = 0, + OBLIVION = 1, + SKYRIM = 3, + FALLOUT3 = 4, + FALLOUTNV = 5 + }; + }; + private: void syncLoadOrder(); @@ -230,6 +316,9 @@ private: void testMasters(); + void initBoss(); + void convertPluginListForBoss(boost::ptr_vector &inputPlugins, std::vector &activePlugins); + private: std::vector m_ESPs; @@ -253,6 +342,10 @@ private: SignalRefreshed m_Refreshed; + BossDLL *m_BOSS; + boss_db m_BOSSDB; + QTemporaryFile m_TempFile; + }; #endif // PLUGINLIST_H diff --git a/src/pluginlistsortproxy.cpp b/src/pluginlistsortproxy.cpp index 5bff24f5..8412fa27 100644 --- a/src/pluginlistsortproxy.cpp +++ b/src/pluginlistsortproxy.cpp @@ -125,11 +125,6 @@ bool PluginListSortProxy::lessThan(const QModelIndex &left, return plugins->getPriority(left.row()) < plugins->getPriority(right.row()); } break; default: { - static bool first = true; - if (first) { - qCritical("invalid sort column %d", left.column()); - first = false; - } return plugins->getPriority(left.row()) < plugins->getPriority(right.row()); } break; } diff --git a/src/profile.cpp b/src/profile.cpp index e075a4e6..c1f1025e 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -23,6 +23,7 @@ along with Mod Organizer. If not, see . #include "windows_error.h" #include "dummybsa.h" #include "modinfo.h" +#include "safewritefile.h" #include #include #include @@ -149,15 +150,10 @@ void Profile::writeModlistNow(bool onlyOnTimer) const #pragma message("right now, this is doing unnecessary saves. Need a flag that says that mod priority, enabled-state or name of a mod has changed") try { - QTemporaryFile file; - - if (!file.open()) { - reportError(tr("failed to open temporary file")); - return; - } + QString fileName = getModlistFileName(); + SafeWriteFile file(fileName); - file.resize(0); - file.write(QString("# This file was automatically generated by Mod Organizer.\r\n").toUtf8()); + file->write(QString("# This file was automatically generated by Mod Organizer.\r\n").toUtf8()); if (m_ModStatus.empty()) { return; } @@ -169,29 +165,17 @@ void Profile::writeModlistNow(bool onlyOnTimer) const ModInfo::Ptr modInfo = ModInfo::getByIndex(index); if (modInfo->getFixedPriority() == INT_MIN) { if (m_ModStatus[index].m_Enabled) { - file.write("+"); + file->write("+"); } else { - file.write("-"); + file->write("-"); } - file.write(modInfo->name().toUtf8()); - file.write("\r\n"); + file->write(modInfo->name().toUtf8()); + file->write("\r\n"); } } } - file.close(); - - - QString fileName = getModlistFileName(); - - if (QFile::exists(fileName)) { - shellDeleteQuiet(fileName); - } - - if (!file.copy(fileName)) { - reportError(tr("failed to open \"%1\" for writing").arg(fileName)); - return; - } + file.commit(); qDebug("%s saved", QDir::toNativeSeparators(fileName).toUtf8().constData()); } catch (const std::exception &e) { diff --git a/src/resources.qrc b/src/resources.qrc index 1582a3f2..73921f64 100644 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -18,7 +18,7 @@ resources/contact-new.png resources/preferences-system.png resources/application-x-executable.png - resources/dialog-information.png + resources/dialog-information.png resources/emblem-readonly.png resources/go-next_16.png resources/go-previous_16.png diff --git a/src/safewritefile.cpp b/src/safewritefile.cpp new file mode 100644 index 00000000..6df8c2b8 --- /dev/null +++ b/src/safewritefile.cpp @@ -0,0 +1,48 @@ +/* +Copyright (C) 2014 Sebastian Herbord. All rights reserved. + +This file is part of Mod Organizer. + +Mod Organizer is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Mod Organizer is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Mod Organizer. If not, see . +*/ + + +#include "safewritefile.h" +#include + + +using namespace MOBase; + + +SafeWriteFile::SafeWriteFile(const QString &fileName) +: m_FileName(fileName) +{ + if (!m_TempFile.open()) { + throw MyException(QObject::tr("failed to open temporary file")); + } +} + + +QFile *SafeWriteFile::operator->() { + Q_ASSERT(m_TempFile.isOpen()); + return &m_TempFile; +} + + +void SafeWriteFile::commit() { + shellDeleteQuiet(m_FileName); + m_TempFile.rename(m_FileName); + m_TempFile.setAutoRemove(false); + m_TempFile.close(); +} diff --git a/src/safewritefile.h b/src/safewritefile.h new file mode 100644 index 00000000..56bd7744 --- /dev/null +++ b/src/safewritefile.h @@ -0,0 +1,51 @@ +/* +Copyright (C) 2014 Sebastian Herbord. All rights reserved. + +This file is part of Mod Organizer. + +Mod Organizer is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Mod Organizer is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Mod Organizer. If not, see . +*/ + + +#ifndef SAFEWRITEFILE_H +#define SAFEWRITEFILE_H + + +#include +#include +#include + +/** + * @brief a wrapper for QFile that ensures the file is only actually (over-)written if writing was successful + */ +class SafeWriteFile { +public: + SafeWriteFile(const QString &fileName); + + QFile *operator->(); + + void commit(); + +private: + QString m_FileName; + QTemporaryFile m_TempFile; +}; + + +#endif // SAFEWRITEFILE_H + + + + + -- cgit v1.3.1 From ccd5d1294f08f4bf6852ef543454b52022134e31 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 27 Jan 2014 21:31:10 +0100 Subject: - bugfix: accessing profile without loading one when starting an app through the commandline - bugfix: locked-dialog was disabled --- src/mainwindow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 0f98989c..ce4471a6 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1317,7 +1317,9 @@ HANDLE MainWindow::spawnBinaryDirect(const QFileInfo &binary, const QString &arg QCoreApplication::processEvents(); } - m_CurrentProfile->writeModlistNow(true); + if (m_CurrentProfile != nullptr) { + m_CurrentProfile->writeModlistNow(true); + } // TODO: should also pass arguments if (m_AboutToRun(binary.absoluteFilePath())) { @@ -1365,6 +1367,8 @@ void MainWindow::spawnBinary(const QFileInfo &binary, const QString &arguments, close(); } else { this->setEnabled(false); + // re-enable the locked dialog because what'd be the point otherwise? + dialog->setEnabled(true); QCoreApplication::processEvents(); -- cgit v1.3.1 From af50eedbe275062eda933ccc200be66a9d3ee94d Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 29 Jan 2014 00:23:16 +0100 Subject: - bugfix: dds preview or transparent textures looked odd - bugfix: lazy loaded data tree deleted the placeholder --- src/mainwindow.cpp | 11 +++++++++-- src/mainwindow.h | 3 +++ src/version.rc | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index ce4471a6..ce2c02b6 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1578,6 +1578,13 @@ void MainWindow::updateTo(QTreeWidgetItem *subTree, const std::wstring &director subTree->sortChildren(0, Qt::AscendingOrder); } +void MainWindow::delayedRemove() +{ + foreach (QTreeWidgetItem *item, m_RemoveWidget) { + item->removeChild(item->child(0)); + } + m_RemoveWidget.clear(); +} void MainWindow::expandDataTreeItem(QTreeWidgetItem *item) { @@ -1586,7 +1593,6 @@ void MainWindow::expandDataTreeItem(QTreeWidgetItem *item) QTreeWidgetItem *onDemandDataItem = item->child(0); std::wstring path = ToWString(onDemandDataItem->data(0, Qt::UserRole + 1).toString()); bool conflictsOnly = onDemandDataItem->data(0, Qt::UserRole + 2).toBool(); - item->removeChild(onDemandDataItem); std::wstring virtualPath = (path + L"\\").substr(6) + ToWString(item->text(0)); DirectoryEntry *dir = m_DirectoryStructure->findSubDirectoryRecursive(virtualPath); @@ -1595,7 +1601,8 @@ void MainWindow::expandDataTreeItem(QTreeWidgetItem *item) } else { qWarning("failed to update view of %ls", path.c_str()); } - + m_RemoveWidget.push_back(item); + QTimer::singleShot(5, this, SLOT(delayedRemove())); } } diff --git a/src/mainwindow.h b/src/mainwindow.h index b247b924..527db8b3 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -372,6 +372,8 @@ private: QFileSystemWatcher m_SavesWatcher; + std::vector m_RemoveWidget; + private slots: void showMessage(const QString &message); @@ -529,6 +531,7 @@ private slots: void refreshSavesIfOpen(); void expandDataTreeItem(QTreeWidgetItem *item); void about(); + void delayedRemove(); private slots: // ui slots // actions diff --git a/src/version.rc b/src/version.rc index 1beee814..14b2781f 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,1,0,0 -#define VER_FILEVERSION_STR "1,1,0,0\0" +#define VER_FILEVERSION 1,1,1,0 +#define VER_FILEVERSION_STR "1,1,1,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 48c944c737a0e277c3ac85c10008031f39cbc04c Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 29 Jan 2014 21:06:55 +0100 Subject: - bugfix: elevation dialog didn't offer a "yes" option - bugfix: python plugins crashed the application when trying to create a nexus bridge - bugfix: python plugins couldn't register for failed requests correctly --- src/mainwindow.cpp | 12 ++++++------ src/spawn.cpp | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index ce2c02b6..cc7fbb09 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1046,9 +1046,9 @@ bool MainWindow::registerPlugin(QObject *plugin, const QString &fileName) QObject *proxiedPlugin = proxy->instantiate(pluginName); if (proxiedPlugin != NULL) { if (registerPlugin(proxiedPlugin, pluginName)) { - qDebug("loaded plugin \"%s\"", QDir::toNativeSeparators(pluginName).toUtf8().constData()); + qDebug("loaded plugin \"%s\"", qPrintable(pluginName)); } else { - qWarning("plugin \"%s\" failed to load", pluginName.toUtf8().constData()); + qWarning("plugin \"%s\" failed to load", qPrintable(pluginName)); } } } catch (const std::exception &e) { @@ -1121,13 +1121,13 @@ void MainWindow::loadPlugins() if (pluginLoader.instance() == NULL) { m_UnloadedPlugins.push_back(pluginName); qCritical("failed to load plugin %s: %s", - pluginName.toUtf8().constData(), pluginLoader.errorString().toUtf8().constData()); + qPrintable(pluginName), qPrintable(pluginLoader.errorString())); } else { if (registerPlugin(pluginLoader.instance(), pluginName)) { - qDebug("loaded plugin \"%s\"", QDir::toNativeSeparators(pluginName).toUtf8().constData()); + qDebug("loaded plugin \"%s\"", qPrintable(pluginName)); } else { m_UnloadedPlugins.push_back(pluginName); - qWarning("plugin \"%s\" failed to load", pluginName.toUtf8().constData()); + qWarning("plugin \"%s\" failed to load", qPrintable(pluginName)); } } } @@ -1289,7 +1289,7 @@ HANDLE MainWindow::spawnBinaryDirect(const QFileInfo &binary, const QString &arg storeSettings(); if (!binary.exists()) { - reportError(tr("\"%1\" not found").arg(binary.fileName())); + reportError(tr("Executable \"%1\" not found").arg(binary.fileName())); return INVALID_HANDLE_VALUE; } diff --git a/src/spawn.cpp b/src/spawn.cpp index 5639a78c..b1c5e963 100644 --- a/src/spawn.cpp +++ b/src/spawn.cpp @@ -117,9 +117,10 @@ HANDLE startBinary(const QFileInfo &binary, const QString &arguments, const QStr "can be installed to work without elevation.\n\n" "Start elevated anyway? " "(you will be asked if you want to allow ModOrganizer.exe to make changes to the system)").arg( - QDir::toNativeSeparators(binary.absoluteFilePath()))) == QMessageBox::Yes) { + QDir::toNativeSeparators(binary.absoluteFilePath())), + QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { ::ShellExecuteW(NULL, L"runas", ToWString(QCoreApplication::applicationFilePath()).c_str(), - (binaryName + L" " + ToWString(arguments)).c_str(), currentDirectoryName.c_str(), SW_SHOWNORMAL); + (std::wstring(L"\"") + binaryName + L"\" " + ToWString(arguments)).c_str(), currentDirectoryName.c_str(), SW_SHOWNORMAL); return INVALID_HANDLE_VALUE; } else { return INVALID_HANDLE_VALUE; -- cgit v1.3.1 From 48704877ca1dc44b9215ec834e93f34fd953b2fb Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 2 Feb 2014 00:09:03 +0100 Subject: - bugfix: upon moving files between mods, an attempt was made to access origins for both, even if one (or both) mods weren't active - bugfix: plugin-list should now deal with nested "layoutAboutToBeChanged" calls gracefully. May be the reason of a bug. --- src/mainwindow.cpp | 20 ++++++++++++-------- src/pluginlist.cpp | 17 +++++++++-------- src/pluginlist.h | 38 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 57 insertions(+), 18 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cc7fbb09..88806cfd 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2849,17 +2849,21 @@ void MainWindow::fileMoved(const QString &filePath, const QString &oldOriginName const FileEntry::Ptr filePtr = m_DirectoryStructure->findFile(ToWString(filePath)); if (filePtr.get() != NULL) { try { - FilesOrigin &oldOrigin = m_DirectoryStructure->getOriginByName(ToWString(oldOriginName)); - FilesOrigin &newOrigin = m_DirectoryStructure->getOriginByName(ToWString(newOriginName)); + if (m_DirectoryStructure->originExists(ToWString(newOriginName))) { + FilesOrigin &newOrigin = m_DirectoryStructure->getOriginByName(ToWString(newOriginName)); - QString fullNewPath = ToQString(newOrigin.getPath()) + "\\" + filePath; - WIN32_FIND_DATAW findData; - ::FindFirstFileW(ToWString(fullNewPath).c_str(), &findData); + QString fullNewPath = ToQString(newOrigin.getPath()) + "\\" + filePath; + WIN32_FIND_DATAW findData; + ::FindFirstFileW(ToWString(fullNewPath).c_str(), &findData); - filePtr->addOrigin(newOrigin.getID(), findData.ftCreationTime, L""); - filePtr->removeOrigin(oldOrigin.getID()); + filePtr->addOrigin(newOrigin.getID(), findData.ftCreationTime, L""); + } + if (m_DirectoryStructure->originExists(ToWString(oldOriginName))) { + FilesOrigin &oldOrigin = m_DirectoryStructure->getOriginByName(ToWString(oldOriginName)); + filePtr->removeOrigin(oldOrigin.getID()); + } } catch (const std::exception &e) { - reportError(tr("Failed to move \"%1\" from mod \"%2\" to \"%3\": %4").arg(filePath).arg(oldOriginName).arg(newOriginName).arg(e.what())); + reportError(tr("failed to move \"%1\" from mod \"%2\" to \"%3\": %4").arg(filePath).arg(oldOriginName).arg(newOriginName).arg(e.what())); } } else { // this is probably not an error, the specified path is likely a directory diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index e04b8bb0..f5e0f1eb 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -132,7 +132,8 @@ void PluginList::refresh(const QString &profileName, const DirectoryEntry &baseD const QString &pluginsFile, const QString &loadOrderFile, const QString &lockedOrderFile) { - emit layoutAboutToBeChanged(); + ChangeBracket layoutChange(this); + m_ESPsByName.clear(); m_ESPsByPriority.clear(); m_ESPs.clear(); @@ -213,7 +214,8 @@ void PluginList::refresh(const QString &profileName, const DirectoryEntry &baseD readLockedOrderFrom(lockedOrderFile); - emit layoutChanged(); + layoutChange.finish(); + refreshLoadOrder(); emit dataChanged(this->index(0, 0), this->index(m_ESPs.size(), columnCount())); @@ -557,7 +559,7 @@ void PluginList::syncLoadOrder() void PluginList::refreshLoadOrder() { - emit layoutAboutToBeChanged(); + ChangeBracket layoutChange(this); syncLoadOrder(); // set priorities according to locked load order std::map lockedLoadOrder; @@ -593,7 +595,6 @@ void PluginList::refreshLoadOrder() } } } - emit layoutChanged(); } @@ -748,7 +749,7 @@ void PluginList::bossSort() qDebug("%d sorted, %d unrecognized", sizeSorted, sizeUnrecognized); - emit layoutAboutToBeChanged(); + ChangeBracket layoutChange(this); int priority = 0; applyBOSSSorting(sortedPlugins, sizeSorted, priority, true, "esm"); @@ -758,7 +759,7 @@ void PluginList::bossSort() // inform view of the changed data updateIndices(); - emit layoutChanged(); + layoutChange.finish(); syncLoadOrder(); emit dataChanged(this->index(0, 0), this->index(m_ESPs.size(), columnCount())); @@ -1089,7 +1090,7 @@ void PluginList::setPluginPriority(int row, int &newPriority) void PluginList::changePluginPriority(std::vector rows, int newPriority) { - emit layoutAboutToBeChanged(); + ChangeBracket layoutChange(this); // sort rows to insert by their old priority (ascending) and insert them move them in that order const std::vector &esp = m_ESPs; std::sort(rows.begin(), rows.end(), @@ -1111,7 +1112,7 @@ void PluginList::changePluginPriority(std::vector rows, int newPriority) setPluginPriority(*iter, newPriority); } - emit layoutChanged(); + layoutChange.finish(); refreshLoadOrder(); startSaveTime(); diff --git a/src/pluginlist.h b/src/pluginlist.h index f8c69e11..95f90e09 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -33,13 +33,46 @@ along with Mod Organizer. If not, see . #include + +template +class ChangeBracket { +public: + ChangeBracket(C *model) + : m_Model(nullptr) + { + QVariant var = model->property("__aboutToChange"); + bool aboutToChange = var.isValid() && var.toBool(); + if (!aboutToChange) { + model->layoutAboutToBeChanged(); + model->setProperty("__aboutToChange", true); + m_Model = model; + } + } + ~ChangeBracket() { + finish(); + } + + void finish() { + if (m_Model != nullptr) { + m_Model->layoutChanged(); + m_Model->setProperty("__aboutToChange", false); + m_Model = nullptr; + } + } + +private: + C *m_Model; +}; + + + /** * @brief model representing the plugins (.esp/.esm) in the current virtual data folder **/ class PluginList : public QAbstractTableModel, public MOBase::IPluginList { Q_OBJECT - + friend class ChangeBracket; public: enum EColumn { @@ -225,7 +258,6 @@ private: friend bool ByDate(const ESPInfo& LHS, const ESPInfo& RHS); friend bool ByPriority(const ESPInfo& LHS, const ESPInfo& RHS); - class BossDLL : public PDLL { DECLARE_CLASS(BossDLL) @@ -353,4 +385,6 @@ private: }; + + #endif // PLUGINLIST_H -- cgit v1.3.1 From 7722a9b6df0d9172256bae2b393d28347543ecda Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 2 Feb 2014 14:26:24 +0100 Subject: - main window is now actually disabled while integrated boss is running - bugfix: integrated boss sorting couldn't recognize plugins specified via regular expression --- src/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 88806cfd..90eb6bce 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -5146,6 +5146,8 @@ void MainWindow::on_showHiddenBox_toggled(bool checked) void MainWindow::on_bossButton_clicked() { try { + this->setEnabled(false); + ON_BLOCK_EXIT([&] () { this->setEnabled(true); }); LockedDialog dialog(this, tr("BOSS working"), false); dialog.show(); qApp->processEvents(); -- cgit v1.3.1 From 76fbe6effef7c2e787c1801741d4eb0a156128ce Mon Sep 17 00:00:00 2001 From: Tannin Date: Tue, 4 Feb 2014 19:55:27 +0100 Subject: - tabs in the mod info dialog can now be moved around by the user --- src/mainwindow.cpp | 3 +++ src/modinfodialog.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++++++---- src/modinfodialog.h | 8 +++++++ src/modinfodialog.ui | 11 +++++---- 4 files changed, 76 insertions(+), 8 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 90eb6bce..b6a744aa 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3160,7 +3160,10 @@ void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index, connect(&dialog, SIGNAL(endorseMod(ModInfo::Ptr)), this, SLOT(endorseMod(ModInfo::Ptr))); dialog.openTab(tab); + dialog.restoreTabState(m_Settings.directInterface().value("mod_info_tabs").toByteArray()); dialog.exec(); + m_Settings.directInterface().setValue("mod_info_tabs", dialog.saveTabState()); + modInfo->saveMeta(); emit modInfoDisplayed(); m_ModList.modInfoChanged(modInfo); diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 3657d48a..117b2726 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -69,7 +69,6 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo ui->setupUi(this); this->setWindowTitle(modInfo->name()); this->setWindowModality(Qt::WindowModal); - m_UTF8Codec = QTextCodec::codecForName("utf-8"); QListWidget *textFileList = findChild("textFileList"); @@ -143,7 +142,6 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo QTabWidget *tabWidget = findChild("tabWidget"); tabWidget->setTabEnabled(TAB_TEXTFILES, textFileList->count() != 0); - //tabWidget->setTabEnabled(TAB_INIFILES, (iniFileList->count() != 0) || (iniTweaksList->count() != 0)); tabWidget->setTabEnabled(TAB_IMAGES, thumbnailArea->count() != 0); tabWidget->setTabEnabled(TAB_ESPS, (inactiveESPList->count() != 0) || (activeESPList->count() != 0)); tabWidget->setTabEnabled(TAB_CONFLICTS, m_Origin != NULL); @@ -168,6 +166,63 @@ ModInfoDialog::~ModInfoDialog() } +int ModInfoDialog::tabIndex(const QString &tabId) +{ + for (int i = 0; i < ui->tabWidget->count(); ++i) { + if (ui->tabWidget->widget(i)->objectName() == tabId) { + return i; + } + } + return -1; +} + + +void ModInfoDialog::restoreTabState(const QByteArray &state) +{ + QDataStream stream(state); + int count = 0; + stream >> count; + + QStringList tabIds; + + // first, only determine the new mapping + for (int newPos = 0; newPos < count; ++newPos) { + QString tabId; + stream >> tabId; + tabIds.append(tabId); + int oldPos = tabIndex(tabId); + if (oldPos != -1) { + m_RealTabPos[newPos] = oldPos; + } else { + m_RealTabPos[newPos] = newPos; + } + } + // then actually move the tabs + QTabBar *tabBar = ui->tabWidget->findChild("qt_tabwidget_tabbar"); // magic name = bad + ui->tabWidget->blockSignals(true); + for (int newPos = 0; newPos < count; ++newPos) { + QString tabId = tabIds.at(newPos); + int oldPos = tabIndex(tabId); + tabBar->moveTab(oldPos, newPos); + } + ui->tabWidget->blockSignals(false); +} + + +QByteArray ModInfoDialog::saveTabState() const +{ + QByteArray result; + QDataStream stream(&result, QIODevice::WriteOnly); + stream << ui->tabWidget->count(); + for (int i = 0; i < ui->tabWidget->count(); ++i) { + stream << ui->tabWidget->widget(i)->objectName(); + + } + + return result; +} + + void ModInfoDialog::refreshLists() { int numNonConflicting = 0; @@ -331,7 +386,6 @@ void ModInfoDialog::openTab(int tab) } } - void ModInfoDialog::thumbnailClicked(const QString &fileName) { QLabel *imageLabel = findChild("imageLabel"); @@ -784,7 +838,7 @@ void ModInfoDialog::activateNexusTab() void ModInfoDialog::on_tabWidget_currentChanged(int index) { - if (index == TAB_NEXUS) { + if (m_RealTabPos[index] == TAB_NEXUS) { activateNexusTab(); } } diff --git a/src/modinfodialog.h b/src/modinfodialog.h index b33b743e..edfe59cf 100644 --- a/src/modinfodialog.h +++ b/src/modinfodialog.h @@ -100,6 +100,10 @@ public: **/ void openTab(int tab); + void restoreTabState(const QByteArray &state); + + QByteArray saveTabState() const; + signals: void thumbnailClickedSignal(const QString &filename); @@ -142,6 +146,8 @@ private: void addCheckedCategories(QTreeWidgetItem *tree); void refreshPrimaryCategoriesBox(); + int tabIndex(const QString &tabId); + private slots: void hideConflictFile(); @@ -221,6 +227,8 @@ private: MOShared::FilesOrigin *m_Origin; QTextCodec *m_UTF8Codec; + std::map m_RealTabPos; + }; #endif // MODINFODIALOG_H diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui index 7b95e011..1d357f70 100644 --- a/src/modinfodialog.ui +++ b/src/modinfodialog.ui @@ -22,6 +22,9 @@ 0 + + true + Textfiles @@ -209,7 +212,7 @@ 0 0 - 668 + 676 126
        @@ -546,7 +549,7 @@ Most mods do not have optional esps, so chances are good you are looking at an e
        - + :/MO/gui/resources/internet-web-browser.png:/MO/gui/resources/internet-web-browser.png @@ -666,8 +669,8 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html>
        Qt::TextBrowserInteraction -- cgit v1.3.1 From 7aadb476376db1d23ad333abb439639552bb6e19 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 7 Feb 2014 21:05:48 +0100 Subject: - archives.txt is now written using the "safe"-write mechanism - added the whole boss fork to the repository - bugfix: boss db is now always re-initialised because otherwise there might have been differing results between runs - bugfix: locked load order was ignored by integrated boss - bugfix: archive list wasn't written back on all changes that affected it - bugfix: CreateFile-hook didn't reroute files created with OPEN_ALWAYS to overwrite directory - bugfix: NtQueryDirectoryFile-hook didn't return the correct status code when searching for a file that doesn't exist --- src/mainwindow.cpp | 35 +- src/organizer_cs.ts | 1428 ++++++++++++++++++++++++++--------------------- src/organizer_de.ts | 1428 ++++++++++++++++++++++++++--------------------- src/organizer_es.ts | 1432 ++++++++++++++++++++++++++--------------------- src/organizer_fr.ts | 1426 ++++++++++++++++++++++++++--------------------- src/organizer_ru.ts | 1436 +++++++++++++++++++++++++++--------------------- src/organizer_tr.ts | 1432 ++++++++++++++++++++++++++--------------------- src/organizer_zh_CN.ts | 1428 ++++++++++++++++++++++++++--------------------- src/organizer_zh_TW.ts | 1428 ++++++++++++++++++++++++++--------------------- src/pluginlist.cpp | 136 +++-- src/pluginlist.h | 7 +- src/version.rc | 4 +- 12 files changed, 6512 insertions(+), 5108 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b6a744aa..d83d4d06 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -58,6 +58,7 @@ along with Mod Organizer. If not, see . #include "problemsdialog.h" #include "previewdialog.h" #include "aboutdialog.h" +#include "safewritefile.h" #include #include #include @@ -623,22 +624,18 @@ void MainWindow::createHelpWidget() void MainWindow::saveArchiveList() { if (m_ArchivesInit) { - QFile archiveFile(m_CurrentProfile->getArchivesFileName()); - if (archiveFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) { - for (int i = 0; i < ui->bsaList->topLevelItemCount(); ++i) { - QTreeWidgetItem *tlItem = ui->bsaList->topLevelItem(i); - for (int j = 0; j < tlItem->childCount(); ++j) { - QTreeWidgetItem *item = tlItem->child(j); - if (item->checkState(0) == Qt::Checked) { - archiveFile.write(item->text(0).toUtf8().append("\r\n")); - } + SafeWriteFile archiveFile(m_CurrentProfile->getArchivesFileName()); + for (int i = 0; i < ui->bsaList->topLevelItemCount(); ++i) { + QTreeWidgetItem *tlItem = ui->bsaList->topLevelItem(i); + for (int j = 0; j < tlItem->childCount(); ++j) { + QTreeWidgetItem *item = tlItem->child(j); + if (item->checkState(0) == Qt::Checked) { + archiveFile->write(item->text(0).toUtf8().append("\r\n")); } } - } else { - reportError(tr("failed to save archives order, do you have write access " - "to \"%1\"?").arg(m_CurrentProfile->getArchivesFileName())); } - archiveFile.close(); + archiveFile.commit(); + qDebug("%s saved", qPrintable(QDir::toNativeSeparators(m_CurrentProfile->getArchivesFileName()))); } else { qWarning("archive list not initialised"); } @@ -701,18 +698,13 @@ bool MainWindow::saveCurrentLists() return false; } - // save plugin list try { savePluginList(); + saveArchiveList(); } catch (const std::exception &e) { reportError(tr("failed to save load order: %1").arg(e.what())); } - // save only if the file doesn't exist at all, changes made in the ui are saved immediately - if (!QFile::exists(m_CurrentProfile->getArchivesFileName())) { - saveArchiveList(); - } - return true; } @@ -2709,6 +2701,8 @@ void MainWindow::modorder_changed() m_DirectoryStructure->getOriginByName(ToWString(modInfo->name())).setPriority(priority); } } + refreshBSAList(); + saveArchiveList(); m_DirectoryStructure->getFileRegister()->sortOrigins(); } @@ -3003,8 +2997,9 @@ void MainWindow::modlistChanged(const QModelIndex &index, int role) MessageDialog::showMessage(tr("Multiple esps activated, please check that they don't conflict."), this); } m_PluginList.refreshLoadOrder(); - // immediately save plugin list + // immediately save affected lists savePluginList(); + saveArchiveList(); } } } diff --git a/src/organizer_cs.ts b/src/organizer_cs.ts index f78313bd..08f8d70e 100644 --- a/src/organizer_cs.ts +++ b/src/organizer_cs.ts @@ -1,6 +1,50 @@ + + AboutDialog + + + + About + + + + + Revision: + + + + + Used Software + + + + + Credits + + + + + Translators + + + + + Others + + + + + Close + + + + + No license + + + ActivateModsDialog @@ -239,25 +283,30 @@ p, li { white-space: pre-wrap; } DownloadList - + Name Jméno - + Filetime ÄŒas stáhnutí - + Done Hotovo - + Information missing, please select "Query Info" from the context menu to re-retrieve. Info chybí, oznaÄte "Získat Info" z kontextového menu pro pokus naÄtení z Nexusu. + + + pending download + + DownloadListWidget @@ -310,125 +359,135 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - + Installed Nainstalované - + Uninstalled - + Done Hotovo - - - - + + + + Are you sure? Jsi si jistý? - + This will remove all finished downloads from this list and from disk. Tímto vymažeÅ¡ vÅ¡echny dokonÄené stáhnutí se seznamu i z disku. - + This will remove all installed downloads from this list and from disk. Tímto vymažeÅ¡ jenom nainstalované stáhnutí se seznamu i z disku. - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Install Instaluj - + Query Info Získej Info - + Delete - + Un-Hide Odekrýt - + Remove from View - + Remove Odstranit - + Cancel ZruÅ¡it - + + < mod %1 file %2 > + + + + + Pending + + + + Paused - + Fetching Info 1 - + Fetching Info 2 - + Pause Pauza - + Resume PokraÄuj - + Delete Installed... - + Delete All... - + Remove Installed... Odstraň už nainstalované... - + Remove All... Odstraň vÅ¡echny... @@ -436,68 +495,78 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Jsi si jistý? - + This will remove all finished downloads from this list and from disk. Tímto vymažeÅ¡ vÅ¡echny dokonÄené stáhnutí se seznamu i z disku. - + This will remove all installed downloads from this list and from disk. Tímto vymažeÅ¡ jenom nainstalované stáhnutí se seznamu i z disku. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Instaluj - + Query Info Získej Info - + Delete - + Un-Hide Odekrýt - + Remove from View - + Remove OdstraniÅ¥ - + Cancel ZruÅ¡it + + + < mod %1 file %2 > + + + + + Pending + + Fetching Info 1 @@ -509,32 +578,32 @@ p, li { white-space: pre-wrap; } - + Pause Pauza - + Resume PokraÄuj - + Delete Installed... - + Delete All... - + Remove Installed... Odstranit už nainstalované... - + Remove All... Odstranit vÅ¡echny... @@ -547,75 +616,76 @@ p, li { white-space: pre-wrap; } NezdaÅ™ilo se pÅ™ejmenovat "%1" na "%2" - + Download again? Stáhnout znovu? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Soubor se stejným jménem už byl stáhnutý. Chcete ho stáhnout znovu? Nový soubor bude pojmenován jinak. - + failed to download %1: could not open output file: %2 Stahování zlyhalo %1: nemožno otevřít výslední soubor: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + + invalid index neplatný index - + failed to delete %1 odstránÄ›ní zlyhalo %1 - + failed to delete meta file for %1 odstránÄ›ní meta souboru zlyhalo pro %1 - - - - - - + + + + + + invalid index %1 neplatný index %1 - + Please enter the nexus mod id Prosím zadej Nexus mod ID - + Mod ID: Mod ID: @@ -624,38 +694,43 @@ p, li { white-space: pre-wrap; } neplatný alfabetický index %1 - + Information updated Info aktualizované - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Žádný pÅ™islouchající soubor nenalezen na Nexusu! Možná už není k dispozici nebo byl pÅ™ejmenovaný? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Žádný soubor na Nexusu nezodpovedá pÅ™esnému jménu. Zvolte ruÄne ten správný. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Zlyhalo získání info z Nexusu %1 - + + Download failed. Server reported: %1 + + + + Download failed: %1 (%2) Stahování zlyhalo: %1 (%2) - + failed to re-open %1 zlyhalo znovu-otevÅ™ení %1 @@ -765,7 +840,7 @@ Každá hra/aplikace distribuovaná skrz Steammá unikátní ID. MO potÅ™ebuje v - + If checked, MO will be closed once the specified executable is run. Pokud je zaÅ¡krtnuté, MO se ukonÄí hned po spuÅ¡tÄ›ní SpouÅ¡tÄ›Äe. @@ -782,7 +857,7 @@ Každá hra/aplikace distribuovaná skrz Steammá unikátní ID. MO potÅ™ebuje v - + Add PÅ™idat @@ -798,47 +873,64 @@ Každá hra/aplikace distribuovaná skrz Steammá unikátní ID. MO potÅ™ebuje v Odstranit - + + Close + + + + Select a binary Vyber binární soubor - + Executable (%1) SpuÅ¡tÄ›ní (%1) - + Java (32-bit) required - + MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - + Select a directory Vyber Zložku - + Confirm Potvrdit - + Really remove "%1" from executables? Opravdu odstranit "%1" ze seznamu SpouÅ¡tÄ›ní? - + Modify Ulož - + + + Save Changes? + + + + + + You made changes to the current executable, do you want to save them? + + + + MO must be kept running or this application will not work correctly. MO musí bežet, aby tahle aplikace pracovala správnÄ›. @@ -1296,7 +1388,7 @@ Poznámka: Instalátor nerozpoznává už nainstalované mody! MO je uzamÄený pokud aplikace/hra běží. - + Unlock Odemkni @@ -1304,7 +1396,7 @@ Poznámka: Instalátor nerozpoznává už nainstalované mody! LogBuffer - + failed to write log to %1: %2 nezdaÅ™il se zápis do logu %1: %2 @@ -1325,23 +1417,23 @@ Poznámka: Instalátor nerozpoznává už nainstalované mody! MainWindow - - + + Categories Kategorie - + Profile Profil - + Pick a module collection Vyber kolekci modulů - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1356,44 +1448,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Prosím mÄ›jte na pamÄ›ti, že v souÄasnosti poradí esp se neukladá pro různé profily.</span></p></body></html> - + Refresh list ZnovunaÄíst seznam - + Refresh list. This is usually not necessary unless you modified data outside the program. Obnoví seznam. Tohle obvykle není zapotÅ™ebí, jedine že by jste mÄ›nili obsah dat mimo program MO. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter Filter - + No groups - + Nexus IDs Nexus ID - - - + + + Namefilter @@ -1402,12 +1494,12 @@ p, li { white-space: pre-wrap; } Start - + Pick a program to run. Vyber program na spuÅ¡tÄ›ní. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1422,12 +1514,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">MůžeÅ¡ pÅ™idávat různé nástroje, ale neruÄím, že ty které jsem netestoval poběží správnÄ›.</span></p></body></html> - + Run program Spustit program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1440,17 +1532,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Spusti vybraný program s nastavením ModOrganizeru.</span></p></body></html> - + Run Spustit - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1463,7 +1555,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Tohle vytvoří odkaz v menu Start, který přímo bude spouÅ¡tÄ›t zvolený program pÅ™es MO.</span></p></body></html> - + Shortcut @@ -1488,12 +1580,12 @@ p, li { white-space: pre-wrap; } Uložit - + List of available esp/esm files Seznam dostupných esp/esm souborů - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1510,12 +1602,12 @@ p, li { white-space: pre-wrap; } DÅ®LEŽITÉ: Můžete mÄ›nit poÅ™adí BSA souborů tady, ale soubory modů ako takých má vyšší prioritu a pÅ™epíše konflikty, které by vznikly zde! - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. Seznam BS archivů, které jsou k dispozici. Archivy, které jsou zde neni oznaÄeny nebudou naÄteny do hry. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1526,66 +1618,71 @@ By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp BSAs checked here are loaded in such a way that your installation order is obeyed properly. - - + + File Soubor - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Data - + + Sort + + + + refresh data-directory overview znovunaÄti data - + Refresh the overview. This may take a moment. Obnov náhled. Tohle může chvíli trvat. - - - + + + Refresh ZnovunaÄíst - + This is an overview of your data directory as visible to the game (and tools). Tohle je náhled tvé data struktury, kterou naÄte hra (i nástroje). - - + + Filter the above list so that only conflicts are displayed. PÅ™efiltruje seznam nahoÅ™e tak, že budou zobrazeny pouze konflikty. - + Show only conflicts Ukaž jenom konflikty - + Saves Uložené pozice - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1602,160 +1699,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Pokud kliknete &quot;Fixni Mody...&quot; v kontext menu, MO se pokusí aktivovat vÅ¡echny mody a esp soubory, které byli v pozici používány. Nic se vÅ¡ak nevypne!</span></p></body></html> - + Downloads Stáhnuté - + This is a list of mods you downloaded from Nexus. Double click one to install it. Tohle je seznam modů, které jsi stánul z Nexusu. Dvojklik nainstaluje mod. - + Compact Kompaktní - + Show Hidden - + Tool Bar Panel nástrojú - + Install Mod Instaluj mod - + Install &Mod Instaluj &Mod - + Install a new mod from an archive Instaluj nový mod z archívu - + Ctrl+M Ctrl+M - + Profiles Profily - + &Profiles &Profily - + Configure Profiles Nastav profily - + Ctrl+P Ctrl+P - + Executables SpouÅ¡tÄ›ní - + &Executables &SpouÅ¡tÄ›ní - + Configure the executables that can be started through Mod Organizer Konfigurace spouÅ¡tÄ›ní, které lze použít pro naÄtení modů z MO - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Nastavení - + &Settings &Nastavení - + Configure settings and workarounds Konfigurace a nastavení programu a různých Å™eÅ¡ení - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Prohledat mody na nexusu - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Verze Mod Organizer u je aktuální - - + + No Problems Žádné problémy - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1766,54 +1863,54 @@ Right now this has very limited functionality V souÄasnosti má omezenou funkcionalitu - - + + Help Pomoc - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems Problémy - + There are potential problems with your setup Existují potenciální problémy s programem - + Everything seems to be in order VÅ¡echno se jeví v pořádku @@ -1830,22 +1927,22 @@ V souÄasnosti má omezenou funkcionalitu <li>dotNet není nainstalován nebo je neaktuální. Tohle vyžaduje NCC. NajdÄ›te ho zde: <a href="%1">%1</a></li> - + Help on UI Pomoc s programem - + Documentation Wiki Dokumentace wiki - + Report Issue Nahlásit chybu - + Tutorials @@ -1854,425 +1951,426 @@ V souÄasnosti má omezenou funkcionalitu poÅ™adí naÄtení se nezdaÅ™ilo uložit - + failed to save load order: %1 zlyhalo uložení poÅ™adí naÄtení: %1 - + failed to save archives order, do you have write access to "%1"? zlyhal zápis poÅ™adí archivů, máte administrátorsky povoleno zapisovat na "%1"? - + + About + + + + + About Qt + + + + Name Jméno - + Please enter a name for the new profile Prosím zadej jméno pro nový profil - + failed to create profile: %1 Zlyhalo vytvoÅ™ení profilu: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Probíhá stahování - + There are still downloads in progress, do you really want to quit? Pořád probíhá stahování, urÄitÄ› chcete skonÄit (zruší stahování)? - + failed to read savegame: %1 nezdaÅ™ilo se naÄíst pozici: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" Zlyhal start "%1" - + Waiting ÄŒekání - + Please press OK once you're logged into steam. Stiskni OK až budeÅ¡ pÅ™ihlášen do Steamu. - "%1" not found - "%1" nenalezeno + "%1" nenalezeno - + Start Steam? Spustit Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam by mÄ›l běžet aby se podaÅ™ilo spustit hru. Má se MO pokusit spustit steam teÄ? - + Also in: <br> Také v: <br> - + No conflict Žádné konflikty - + <Edit...> <Edit...> - - Failed to refresh list of esps: %s - - - - + This bsa is enabled in the ini file so it may be required! Tenhle BSA soubor je aktivován v ini souboru, tak zÅ™ejmÄ› je vyžadován! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Tento archív se stejnÄ› naÄte, protože existuje plugin se stejným jménem ale jeho soubory nebudou zodpovídat poÅ™adí nainstalování! - + Activating Network Proxy - - + + Installation successful Instalace úspěšná - - + + Configure Mod Konfigurace Modu - - + + This mod contains ini tweaks. Do you want to configure them now? Tenhle mod obsahuje ini úpravy. Chcete je nastavovat teÄ? - - + + mod "%1" not found mod "%1" nenalezen - - + + Installation cancelled Instalace zruÅ¡ena - - + + The mod was not installed completely. Tento mod se nenainstaloval úplne. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Vyber Mod - + Mod Archive Archív Modu - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Stahování zaÄalo - + failed to update mod list: %1 nezdaÅ™ilo se aktualizovat seznam modů: %1 - + failed to spawn notepad.exe: %1 zlyhalo otevÅ™ení notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 NezdaÅ™ilo se zmÄ›nit původní jméno: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <VÅ¡echny> - + <Checked> <Aktivované> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - Failed to move "%1" from mod "%2" to "%3": %4 - - - - + <Unchecked> <Neaktivované> - + <Update> <Aktualizace> - + <No category> <Bez kategorie> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 NezdaÅ™ilo se pÅ™ejmenovat mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" NezdaÅ™ilo se pÅ™ejmenovat "%1" na "%2" - - - + + + + Confirm Potvrdit - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 NezdaÅ™ilo se odstranit mod: %1 - - + + Failed Zlyhání - + Installation file no longer exists InstalaÄní soubor již neexistuje - + Mods installed with old versions of MO can't be reinstalled in this way. Mody nainstalovány staršími verzemi MO nemůžou být pÅ™einstalovány tímto spůsobem. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA Extrakce BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Tento mod obsahuje alespoň jeden BSA soubor. Chcete rozpakovat i jeho obsah? (BSA se po úspěšném rozpakování odstrání. Pokud nevíte, co je BSA, zvolte možnost Ne) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Tento archiv má neplatné identifikaÄní souÄty. Nekteré soubory mohou být poÅ¡kozeny. - + Nexus ID for this Mod is unknown Nexus ID pro tento Mod není známo @@ -2285,92 +2383,92 @@ This function will guess the versioning scheme under the assumption that the ins Zvol Prioritu - + Really enable all visible mods? Opravdu aktivovat vÅ¡echny zobrazené mody? - + Really disable all visible mods? Opravdu deaktivovat vÅ¡echny zobrazené mody? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instaluj Mod... - + Enable all visible Aktivuj vÅ¡echny v seznamu - + Disable all visible Deaktivuj vÅ¡echny v seznamu - + Check all for update Skontroluj vÅ¡echny pro aktualizaci - + Export to csv... - + Sync to Mods... Synchronizuj s Mody... - + Restore Backup - + Remove Backup... @@ -2379,312 +2477,362 @@ This function will guess the versioning scheme under the assumption that the ins OznaÄ Kategorii - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... PÅ™ejmenuj Mod... - + Remove Mod... Odstranit Mod... - + Reinstall Mod PÅ™einstaluj Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus NavÅ¡tiv na Nexusu - + Open in explorer OtevÅ™i v prohlížeÄi - + Information... Informace... - - + + Exception: Výnimky: - - + + Unknown exception Neznámá výnimka - + <Multiple> - + + Really delete "%1"? + + + + Fix Mods... Oprav Mody... - - + + Delete + + + + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! Není možné zmÄ›nit cíl pro stahování když probíhá stahování! - + Download failed Stahování zlyhalo - + failed to write to file %1 NezdaÅ™il se zápis do souboru %1 - + %1 written %1 zapsáno - + Select binary Vyber binární soubor - + Binary Soubor - + Enter Name Zadej jméno - + Please enter a name for the executable Prosím zadej jméno pro spouÅ¡tÄ›ní - + Not an executable Není spustitelný - + This is not a recognized executable. Tenhle soubor není rozpoznán jako spustitelný. - - + + Replace file? Nahradit soubor? - + There already is a hidden version of this file. Replace it? Už existuje skrytá verze tohto souboru. Nahradit? - - + + File operation failed Operace se souborem zlyhala - - + + Failed to remove "%1". Maybe you lack the required file permissions? NepodaÅ™ilo se odstranit "%1". Možná nejsou k dispozici požadována práva? - + There already is a visible version of this file. Replace it? Už existuje viditelná verze tohto souboru. Nahradit? - + + file not found: %1 + soubor nenalezen: %1 + + + + failed to generate preview for %1 + + + + + Sorry, can't preview anything. This function currently does not support extracting from bsas. + + + + Update available Aktualizace k dispozici - + Open/Execute Otevřít/Spustit - + Add as Executable PÅ™idat SpouÅ¡tení - + + Preview + + + + Un-Hide Odekrýt - + Hide Skrýt - + Write To File... Zápis do souboru... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + + BOSS working + + + + + failed to run boss: %1 + + + + Request to Nexus failed: %1 - + + Executable "%1" not found + + + + + Failed to refresh list of esps: %1 + + + + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway pÅ™ihlášení zlyhalo: %1. Pokouším se beztak stahovat - + login failed: %1 pÅ™ihlášení zlyhalo: %1 - + login failed: %1. You need to log-in with Nexus to update MO. pÅ™ihlášení zlyhalo: %1. Na aktualizaci MO je potÅ™ebné pÅ™ihlášení k Nexusu. - + Error Chyba - + failed to extract %1 (errorcode %2) zlyhala extrakce %1 (errorcode %2) - + Extract... Extrakce... - + Edit Categories... Editovat Kategorie... - + Enable all - + Disable all @@ -2731,58 +2879,58 @@ Please enter a name: Informace o modu - + Textfiles Textové soubory - + A list of text-files in the mod directory. Seznam textových souborů obsažených v modu. - + A list of text-files in the mod directory like readmes. Seznam textových souborů obsažených v modu, například readme. - - + + Save Uložit - + INI-Files INI soubory - + This is a list of .ini files in the mod. Tohle je seznam .ini souborů v modu. - + This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. Tohle je seznam .ini souborů v modu. Dají se upravovat pro zmenu konfigurace a chování modu, pokud umožňuje takové parametry. - + Save changes to the file. Uložit zmÄ›ny do souboru. - + Save changes to the file. This overwrites the original. There is no automatic backup! Uložit zmÄ›ny do souboru.Tohle pÅ™epíše původní soubor. Nevytváří se žádná automatická záloha! - + Images Obrázky - + Images located in the mod. Obrázky obsažené v modu. @@ -2799,13 +2947,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Tohle je seznam vÅ¡ech obrázků (.jpg a.png) obsažených v modu, jako naříklad screenshoty. Kliknutím na jeden ho zvÄ›tšíš.</span></p></body></html> - - + + Optional ESPs Volitelné ESP - + List of esps and esms that can not be loaded by the game. Seznam souborů .esp a .esm, které nebudou naÄteni do hry. @@ -2828,12 +2976,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">VÄ›tÅ¡ina modů nemá volitelné esp, tak s nejvyšší pravdÄ›podobností býva tenhle seznam prázdný.</span></p></body></html> - + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2841,103 +2989,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. Znepřístupni oznaÄený mod v seznamu dolů. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. OznaÄený soubor esp (v seznamu dolů) bude pÅ™emístÄ›n do podadresáře modu a tak se stane "neviditelným" pro hru. V takovem stavu se nedá aktivovat. - + Move a file to the data directory. PÅ™esuň soubor mezi Data. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. PÅ™esune soubor esp do adresáře, kde má být, aby mohl být aktivován. Prosím berte na vÄ›domí, že tato akce jenom soubor "zpÅ™istupní", nedÄ›lá ho automaticky aktivním. To se pak aktivuje v hlavním oknu mezi esp. - + ESPs in the data directory and thus visible to the game. ESP soubory mezi Data a tedy přístupné pro hru. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Tady jsou soubory modu, které se nacházejí ve (virtuálním) data adresáři hry a proto je bude možné aktivovat v seznamu esp v hlavním oknÄ›. - + Available ESPs ESP k dispozici - + Conflicts Konflikty - + The following conflicted files are provided by this mod Konfliktní soubory, které budou pÅ™ebity tímhle modem - - + + File Soubor - + Overwritten Mods PÅ™epsané mody - + The following conflicted files are provided by other mods Konfliktní soubory, které další mody pÅ™ebijou - + Providing Mod Mod původu - + Non-Conflicted files Nekonfliktní soubory - + Categories Kategorie - + Primary Category - + Nexus Info Nexus Info - + Mod ID Mod ID - + Mod ID for this mod on Nexus. Mod ID tohodle modu na Nexusu. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2950,7 +3098,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Mod ID pro tenhle mod na Nexusu. Vyplňuje se automaticky pokud ste soubor i stáhli i nainstalovali přímo skrz MO. Jinak ho můžete zadat ruÄne. Správne ID naleznete u modu na Nexusu. Adresa bude vypadat takhle: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. V takovem případe 1334 je Mod ID. Mimo jiné odkaz je přímo na Mod Organizer tak proÄ rovnou nejít zadat Endorse?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2963,32 +3111,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Nainstalovaná verze modu. Bublina ukáže Äíslo nejaktuálnÄ›jší verzi modu na Nexusu. Číslo verze se nastaví samo jenom pokud byl mod nainstalován skrz MO.</span></p></body></html> - + Version Verze - + Refresh ZnovunaÄíst - + Refresh all information from Nexus. - + Description Popis - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -3008,7 +3156,7 @@ p, li { white-space: pre-wrap; } Druh - + Name Jméno @@ -3017,12 +3165,12 @@ p, li { white-space: pre-wrap; } Velikost (kB) - + Endorse - + Notes @@ -3035,17 +3183,17 @@ p, li { white-space: pre-wrap; } Už jste tenhle mod endorsovali? - + Filetree Struktura souborů - + A directory view of this mod Zložkový náhled na mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3060,53 +3208,53 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Zmeny se okamžite dejí pÅ™imo na disku, takže</span><span style=" font-size:8pt; font-weight:600;">buÄte opatrní</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next Další - + Close Zavřít - + &Delete &Smazat - + &Rename &PÅ™ejmenovat - + &Hide &Skrýt - + &Unhide &Odekrýt - + &Open &Otevřít - + &New Folder &Nová Složka - - + + Save changes? Uložit zmÄ›ny? @@ -3115,28 +3263,28 @@ p, li { white-space: pre-wrap; } Uložit zmÄ›ny v "%1"? - + File Exists Soubor existuje - + A file with that name exists, please enter a new one Soubor s rovnakým názvem existuje, prosím zadejte jiné jméno - + failed to move file zlyhalo pÅ™esunutí souboru - + failed to create directory "optional" zlyhalo vytvoÅ™ení zložky "optional" - - + + Info requested, please wait Info vyžádáno, prosím poÄkejte @@ -3146,53 +3294,53 @@ p, li { white-space: pre-wrap; } (popis chybí, prosím navÅ¡tivte nexus pro kompletní zobrazení) - + (description incomplete, please visit nexus) (popis chybí, prosím navÅ¡tivte nexus pro kompletní zobrazení) - + Current Version: %1 SouÄasná verze: %1 - + No update available Žádný update není k dispozici - + Main Hlavní - - + + Save changes to "%1"? - + Update Update - + Optional Volitelné - + Old Staré - + Misc Jiné - + Unknown Neznámé @@ -3201,13 +3349,13 @@ p, li { white-space: pre-wrap; } požadavka zlyhala: %1 - + <a href="%1">Visit on Nexus</a> <a href="%1">NavÅ¡tivte na Nexusu</a> - - + + Confirm Potvrdit @@ -3224,98 +3372,98 @@ p, li { white-space: pre-wrap; } Výnimka: %1 - + Failed to delete %1 Zlyhalo vymazání %1 - + Are sure you want to delete "%1"? Jsi si jistý, že chceÅ¡ vymazat "%1"? - + Are sure you want to delete the selected files? Jsi si jistý, že chceÅ¡ vymazat oznaÄené soubory? - - + + New Folder Nová zložka - + Failed to create "%1" Zlyhalo vytvoÅ™ení "%1" - - + + Replace file? Nahradit soubor? - + There already is a hidden version of this file. Replace it? Už existuje skrytá verze tohto souboru. Nahradit? - - + + File operation failed Operace se souborem zlyhala - - + + Failed to remove "%1". Maybe you lack the required file permissions? NepodaÅ™ilo se odstranit "%1". Možná nejsou k dispozici požadována práva? - - + + failed to rename %1 to %2 NezdaÅ™ilo se pÅ™ejmenovat %1 na %2 - + There already is a visible version of this file. Replace it? Už existuje viditelná verze tohto souboru. Nahradit? - + Un-Hide Odekrýt - + Hide Skrýt - + Please enter a name - - + + Error Chyba - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak @@ -3451,8 +3599,9 @@ p, li { white-space: pre-wrap; } - installed version: %1, newest version: %2 - nainstalovaná verze: %1, nejnovjší verze: %2 + installed version: "%1", newest version: "%2" + installed version: %1, newest version: %2 + nainstalovaná verze: %1, nejnovjší verze: %2 Name @@ -3653,17 +3802,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response prázdná odozva - + invalid response neplatná odozva @@ -4662,85 +4811,93 @@ V souÄasnosti má omezenou funkcionalitu esp nenalezeno: %1 - + Mod Index - - + + Flags + + + + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - + Confirm Potvrdit - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - failed to open output file: %1 - zlyhalo otevÅ™ení výstupního souboru: %1 + zlyhalo otevÅ™ení výstupního souboru: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. NÄ›které vaÅ¡e pluginy mají neplatné názvy! Tyhle pluginy nemůžou být naÄteny hrou. Prosím nahlédnÄ›te do souboru mo_interface.log pro kompletní seznam pluginů a pÅ™ejmenujte je. - + + BOSS dll incompatible + + + + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4753,17 +4910,17 @@ V souÄasnosti má omezenou funkcionalitu max - + This plugin can't be disabled (enforced by the game) Tenhle plugin nemůže být deaktivován (vyžaduje to hra) - + Origin: %1 Původní mod: %1 - + Name Jméno @@ -4772,7 +4929,7 @@ V souÄasnosti má omezenou funkcionalitu Jména vaÅ¡ich modů - + Priority Priorita @@ -4789,6 +4946,19 @@ V souÄasnosti má omezenou funkcionalitu Tento index pÅ™iraÄuje ID vÄ›cem, kouzlům,... které pÅ™idáva mod. Ich id bude "xxyyyyyy" kde "xx" je index, kterým je "yyyyyy" determinováno podle samotného modu. + + PreviewDialog + + + Preview + + + + + Close + + + ProblemsDialog @@ -4834,82 +5004,72 @@ p, li { white-space: pre-wrap; } Zlyhalo uplatnÄ›ní zmÄ›n v ini - + invalid profile name %1 - + failed to create %1 - - failed to open temporary file - - - - - failed to open "%1" for writing - - - - + failed to write mod list: %1 - + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - - - - - + + + + + invalid index %1 Neplatný index %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 neplatná priorita %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 zlyhalo rozebrání ini souboru (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) @@ -5286,12 +5446,12 @@ p, li { white-space: pre-wrap; } Zlyhalo nastavení proxy-dll naÄítání - + "%1" is missing "%1" chybí - + Permissions required Chybí oprávnÄ›ní @@ -5300,8 +5460,8 @@ p, li { white-space: pre-wrap; } Uživatelský úÄet nemá dostateÄná oprávnÄ›ní pro spuÅ¡tÄ›ní Mod Organizeru. Nevyhnutné zmeny se můžou udÄ›lat automaticky (adresář MO se nastaví ako pÅ™episovatelný pro souÄasného uživatele). Budete požádáni spustit "mo_helper.exe" s administrátorskými právami). - - + + Woops Hups @@ -5310,66 +5470,66 @@ p, li { white-space: pre-wrap; } ModOrganizer havaroval! Má se vytvoÅ™it diagnostický soubor? Pokud mi tento soubor poÅ¡lete (sherb@gmx.net), bude omnoho vyšší Å¡ance, že chybu opravím. - + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 ModOrganizer havaroval! NaneÅ¡tÄ›stí, nezdaÅ™ilo se ani vytvoÅ™it diagnostický soubor: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Jedna instance Mod Organizeru už běží - + No game identified in "%1". The directory is required to contain the game binary and its launcher. Žádná hra nebyla nalezena v "%1". Je potÅ™ebné, aby adresář obsahoval binár hry a spouÅ¡tÄ›Ä. - - + + Please select the game to manage Prosím vyberte hru, kterou chcete spravovat - + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) - + Please use "Help" from the toolbar to get usage instructions to all elements Prosím použijte "Pomoc" z panelu nástrojú pro instrukce ke vÅ¡em elementům - - + + <Manage...> <Manage...> - + failed to parse profile %1: %2 NezdaÅ™ilo se rozebrat profil %1: %2 - - + + failed to find "%1" NepodaÅ™ilo sa najít "%1" @@ -5378,17 +5538,17 @@ p, li { white-space: pre-wrap; } Chyba kódování, prosím nahlaste tuto chybu a poskytnÄ›te záznamový soubor mo_interface.log! - + failed to access %1 zlyhal přístup k %1 - + failed to set file time %1 nepodaÅ™ilo se nastavit Äas souboru %1 - + failed to create %1 NepodaÅ™ilo se vytvoÅ™it %1 @@ -5424,12 +5584,12 @@ p, li { white-space: pre-wrap; } nepodaÅ™ilo se otevřít %1 - + Script Extender Skript Extender - + Proxy DLL Proxy DLL @@ -5454,22 +5614,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + failed to spawn "%1": %2 nepodaÅ™ilo se vytvoÅ™it "%1": %2 - + "%1" doesn't exist "%1" neexistuje - + failed to inject dll into "%1": %2 nepodaÅ™ilo se vsunout dll do "%1": %2 - + failed to run "%1" nepodaÅ™ilo se spustit "%1" @@ -5530,6 +5690,11 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe invalid game type %1 + + + failed to open temporary file + + QueryOverwriteDialog @@ -5764,18 +5929,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Administrátorské práva jsou požadovány na tuhle zmÄ›nu. - - + + attempt to store setting for unknown plugin "%1" - + Confirm Potvrdit - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? Zmena adresáře modu zmÄ›ní vÅ¡echny tvoje profily! Nenalezené mody (nebo pÅ™ejmenované) v nové lokaci budou deaktivovány ve vÅ¡ech profilech. Není možnosÅ¥ návratu pokud si nezazálohujete profily ruÄnÄ›. PokraÄovat? @@ -5948,52 +6113,57 @@ p, li { white-space: pre-wrap; } Konfigurovat Kategorie Modů - + Disable automatic internet features - + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - + Offline Mode - + Use a proxy for network connections. - + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - + Use HTTP Proxy (Uses System Settings) - - Known Servers (Dynamically updated every download) + + Associate with "Download with manager" links + + + + + Known Servers (updated on download) - + Preferred Servers (Drag & Drop) - + Blacklisted Plugins (use <del> to remove): - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -6042,12 +6212,12 @@ p, li { white-space: pre-wrap; } Automaticky pÅ™ihlásit do Nexusu - + Username PÅ™ihlasovací jméno - + Password Heslo @@ -6064,52 +6234,52 @@ p, li { white-space: pre-wrap; } Preferuj externí prohlížeÄ - + Plugins - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds ŘeÅ¡ení - + Steam App ID Steam App ID - + The Steam AppID for your game Steam AppID pro vaÅ¡i hru - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -6136,12 +6306,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 je id, které hledáte.</span></p></body></html> - + Load Mechanism Mechanizmus spuÅ¡tÄ›ní - + Select loading mechanism. See help for details. Vyberte mechanizmus použit pro spuÅ¡tÄ›ní. Pro víc detailů Äti NápovÄ›du. @@ -6166,17 +6336,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">Proxy DLL</span><span style=" font-size:8pt;"> V tomhle módu, MO nahradí jedno dll samotné hry takovým, které naÄte MO (a také původní obsah dll samozÅ™ejmÄ›). Tohle bude fungovat POUZE pro Steamové verze her a bylo testováno pouze u Skyrimu. VyhnÄ›te se téhle metóde pokud funguje jedna z pÅ™edchozích.</span></p></body></html> - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -6185,53 +6355,53 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + Enforces that inactive ESPs and ESMs are never loaded. ZabezpeÄí, aby se neaktivní ESP a ESM vůbec nezobrazovali. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. Zdá se, že hry obÄasnÄ› naÄtou ESP nebo ESM soubory i když nebyli oznaÄeny ako aktivní pluginy. Nevím za jakých podmínek se to stává, ale uživatelé říkaj, že v nÄ›kterých případech je to neželané. Pokud je tohle oznaÄeno, ESP a ESM soubory které v seznamu nejsou oznaÄeny, nemůžou být za žádných okolností naÄtené ve hÅ™e. - + Hide inactive ESPs/ESMs Skrýt neaktivní ESP/ESM - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Pro Skyrim, tohle je možné použít místo Invalidace Archívu. Pro vÅ¡echny profily bude IA nepotÅ™ebná. Pro ostatné hry tohle není dostateÄná náhrada Invalidace Archívu! - + Back-date BSAs Uprav dátumy BSA - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -6240,27 +6410,27 @@ Pro ostatné hry tohle není dostateÄná náhrada Invalidace Archívu! Tohle jsou různé náhradné Å™eÅ¡ení problému s používaním modů. Obvykle nejsou potÅ™ebné. Prosím urÄite si projdÄ›te NápovÄ›du pÅ™edtím než zde neco pomÄ›níte. - + Select download directory Vyber adresář pro stahování - + Select mod directory Vyber adresář pro mody - + Select cache directory Vyber adresář pro cache - + Confirm? Potvrdit? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? Znovu se budou zobrazovat vÅ¡echny výzvy, u kterých jste oznaÄili "Zapamatovat tuto odpovÄ›d provždy". PokraÄovat? diff --git a/src/organizer_de.ts b/src/organizer_de.ts index 3d227137..306ce0ef 100644 --- a/src/organizer_de.ts +++ b/src/organizer_de.ts @@ -1,6 +1,50 @@ + + AboutDialog + + + + About + + + + + Revision: + + + + + Used Software + + + + + Credits + + + + + Translators + + + + + Others + + + + + Close + Schliessen + + + + No license + + + ActivateModsDialog @@ -239,25 +283,30 @@ p, li { white-space: pre-wrap; } DownloadList - + Name Name - + Filetime Änderungsdatum - + Done Fertig - + Information missing, please select "Query Info" from the context menu to re-retrieve. Informationen unvollständig, bitte clicke im Kontextmenü "Info abfragen" um diese erneut abzurufen. + + + pending download + + DownloadListWidget @@ -310,125 +359,135 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - - - - + + + + Are you sure? Sind sie sicher? - + This will remove all finished downloads from this list and from disk. Entfernt alle abgeschlossenen Downloads aus der Liste und von der Festplatte. - + This will remove all installed downloads from this list and from disk. Entfernt alle installierten Downloads aus der Liste und von der Festplatte. - + Install Installieren - + Query Info Info abfragen - + Remove Entfernen - + Cancel Abbrechen - + + < mod %1 file %2 > + + + + + Pending + + + + Paused - + Fetching Info 1 - + Fetching Info 2 - + Installed - + Uninstalled - + Done Fertig - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Delete - + Un-Hide Sichtbar machen - + Remove from View - + Pause Pausieren - + Resume Fortsetzen - + Delete Installed... - + Delete All... - + Remove Installed... Installierte entfernen... - + Remove All... Alle löschen... @@ -436,68 +495,78 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Sind sie sicher? - + This will remove all finished downloads from this list and from disk. Entfernt alle abgeschlossenen Downloads aus der Liste und von der Festplatte. - + This will remove all installed downloads from this list and from disk. Entfernt alle installierten Downloads aus der Liste und von der Festplatte. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Installieren - + Query Info Info abfragen - + Delete - + Un-Hide Sichtbar machen - + Remove from View - + Remove Entfernen - + Cancel Abbrechen + + + < mod %1 file %2 > + + + + + Pending + + Fetching Info 1 @@ -509,32 +578,32 @@ p, li { white-space: pre-wrap; } - + Pause Pausieren - + Resume Fortsetzen - + Delete Installed... - + Delete All... - + Remove Installed... Installierte entfernen... - + Remove All... Alle löschen... @@ -542,12 +611,12 @@ p, li { white-space: pre-wrap; } DownloadManager - - - - - - + + + + + + invalid index %1 ungültiger index %1 @@ -556,30 +625,31 @@ p, li { white-space: pre-wrap; } Löschen der Datei ist fehlgeschlagen - + failed to delete %1 konnte %1 nicht löschen - + failed to delete meta file for %1 konnte meta-informationen für %1 nicht löschen - - - - - - - - - - - - - - + + + + + + + + + + + + + + + invalid index ungültiger Index @@ -589,32 +659,32 @@ p, li { white-space: pre-wrap; } - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - + Please enter the nexus mod id Bitte gib die Nexus Mod ID ein - + Mod ID: Mod ID: @@ -623,33 +693,38 @@ p, li { white-space: pre-wrap; } ungültiger alphabetischer index %1 - + Information updated Informationen aktualisiert - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Keine passende Datei auf Nexus gefunden! Ist die Datei vielleicht nicht mehr verfügbar? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Keine Datei mit diesem Namen auf Nexus gefunden. Bitte wähle die passende händisch aus. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Konnte Datei-Informationen nicht von Nexus abrufen: %1 - + + Download failed. Server reported: %1 + + + + Download failed: %1 (%2) Download fehlgeschlagen: %1 (%2) @@ -658,7 +733,7 @@ p, li { white-space: pre-wrap; } Abfrage von Dateiinformationen von Nexus fehlgeschlagen! - + failed to re-open %1 Öffnen von %1 fehlgeschlagen @@ -667,7 +742,7 @@ p, li { white-space: pre-wrap; } konnte Antwort von Nexus nicht interpretieren - + failed to download %1: could not open output file: %2 Download von %1 fehlgeschlagen: Konnte Ausgabedatei %2 nicht öffnen @@ -781,7 +856,7 @@ Momentan ist der einzige bekannte Fall in dem dies benötigt wird der Skyrim Cre - + If checked, MO will be closed once the specified executable is run. Wenn ausgewählt, wird MO geschlossen sobald das Programm gestartet wird. @@ -798,7 +873,7 @@ Momentan ist der einzige bekannte Fall in dem dies benötigt wird der Skyrim Cre - + Add Neu @@ -814,42 +889,59 @@ Momentan ist der einzige bekannte Fall in dem dies benötigt wird der Skyrim Cre Entfernen - + + Close + Schliessen + + + Select a binary Ausführbare Datei wählen - + Executable (%1) Ausführbare Datei (%1) - + Java (32-bit) required - + MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - + Select a directory Wähle ein Verzeichnis - + Confirm Bestätigen - + Really remove "%1" from executables? Die ausführbare Datei "%1" löschen? - + + + Save Changes? + + + + + + You made changes to the current executable, do you want to save them? + + + + MO must be kept running or this application will not work correctly. MO muss aktiv bleiben sonst funktioniert diese Anwendung nicht korrekt. @@ -858,7 +950,7 @@ Momentan ist der einzige bekannte Fall in dem dies benötigt wird der Skyrim Cre Ausführbare Datei (*.exe, *.bat) - + Modify Ändern @@ -1303,7 +1395,7 @@ p, li { white-space: pre-wrap; } MO ist gesperrt während das Programm ausgeführt wird. - + Unlock Entsperren @@ -1311,7 +1403,7 @@ p, li { white-space: pre-wrap; } LogBuffer - + failed to write log to %1: %2 konnte Protokoll nicht nach %1 schreiben: %2 @@ -1332,23 +1424,23 @@ p, li { white-space: pre-wrap; } MainWindow - - + + Categories Kategorien - + Profile Profil - + Pick a module collection Wähle eine Modul-Kollektion - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1363,44 +1455,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Beachten Sie, dass derzeit die ESP Ladefolge nicht getrennt für verschiedene Profile gespeichert wird.</span></p></body></html> - + Refresh list Liste aktualisieren - + Refresh list. This is usually not necessary unless you modified data outside the program. Liste aktualisieren. Dies ist normalerweise nicht notwendig, es sei denn Sie haben Daten außerhalb von MO verändert. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter Filter - + No groups - + Nexus IDs Nexus IDs - - - + + + Namefilter @@ -1409,12 +1501,12 @@ p, li { white-space: pre-wrap; } Ausführen - + Pick a program to run. Wähle das auszuführende Programm. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1429,12 +1521,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Sie können weitere Programme dieser Liste hinzufügen, aber ich kann nicht garantieren, dass von mir nicht getestete Anwendungen vollständig funktionieren..</span></p></body></html> - + Run program Ausführen - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1447,17 +1539,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Das ausgewählte Programm durch Mod Organiser ausführen.</span></p></body></html> - + Run Starten - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1470,7 +1562,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Erstellt einen Eintrag im Startmenü, der direkt das gewählte Programm durch Mod Organsier ausführt.</span></p></body></html> - + Shortcut @@ -1495,12 +1587,12 @@ p, li { white-space: pre-wrap; } Speichern - + List of available esp/esm files Liste der verfügbaren ESP / ESM Dateien - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1517,12 +1609,12 @@ p, li { white-space: pre-wrap; } WICHTIG: Sie können die Ladereihenfolge der BSAs hier ändern aber die Installationsreihenfolge hat Vorrang vor der Reihenfolge hier! - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. Liste der BS Archive. Archive die hier nicht markiert sind werden nicht von MO verwaltet und beachten daher nicht die gewählte Installationsreihenfolge. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1530,66 +1622,71 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Datei - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Data - + + Sort + + + + refresh data-directory overview Data-Verzeichnis übersicht neu laden - + Refresh the overview. This may take a moment. Lädt die Übersicht neu. Dies kann einen Augenblick dauern. - - - + + + Refresh Neu laden - + This is an overview of your data directory as visible to the game (and tools). Dies ist eine Übersicht des "data"-verzeichnisses so wie es das Spiel zu sehen bekommt. - - + + Filter the above list so that only conflicts are displayed. Obere Liste filtern um nur Konflikte anzuzeigen. - + Show only conflicts Nur Konflikte anzeigen - + Saves Spielstände - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1606,160 +1703,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Wenn Sie im Kontextmenü auf &quot;Mods reparieren...&quot; klicken, wird Mod Organiser versuchen die entsprechenden Mods und ESPs zu aktivieren. Es werden dabei kein Eintrag deaktiviert!</span></p></body></html> - + Downloads Downloads - + This is a list of mods you downloaded from Nexus. Double click one to install it. Dies ist eine Liste der Mods die von Nexus heruntergeladen wurden. Doppelklicken Sie um zu installieren. - + Compact Kompakt - + Show Hidden - + Tool Bar Werkzeugleiste - + Install Mod Mod installieren - + Install &Mod &Mod installieren - + Install a new mod from an archive Installiert eine Mod aus einem Archiv - + Ctrl+M Ctrl+M - + Profiles Profile - + &Profiles &Profile - + Configure Profiles Profile konfigurieren - + Ctrl+P Ctrl+P - + Executables Programme - + &Executables Programm&e - + Configure the executables that can be started through Mod Organizer Konfigurieren der Programme die von Mod Organiser gestartet werden können - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Einstellungen - + &Settings Ein&stellungen - + Configure settings and workarounds Einstellungen und Workarounds verwalten - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Durchsuche die passende Seite des Nexus-Netzwerks nach weiteren Mods - + Ctrl+N Ctrl+N - - + + Update Aktualisierung - + Mod Organizer is up-to-date Mod Organizer ist auf dem neuesten Stand - - + + No Problems Keine Probleme - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1768,54 +1865,54 @@ Right now this has very limited functionality Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. - - + + Help Hilfe - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems Probleme - + There are potential problems with your setup Es bestehen möglicherweise Probleme mit Ihrer Konfiguration - + Everything seems to be in order Alles in bester Ordnung @@ -1832,22 +1929,22 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. <li>dotNet ist nicht installiert oder veraltet. Dies wird benötigt um NCC nutzen zu können. Laden Sie die korrekte Version von <a href="%1">%1</a> herunter</li> - + Help on UI Hilfe zur Oberfläche - + Documentation Wiki Wiki Dokumentation - + Report Issue Fehler melden - + Tutorials @@ -1856,425 +1953,426 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Ladereihenfolge konnte nicht gespeichert werden - + failed to save load order: %1 Reihenfolge konnt nicht gespeichert werden: %1 - + failed to save archives order, do you have write access to "%1"? - + + About + + + + + About Qt + + + + Name Name - + Please enter a name for the new profile Bitte geben Sie einen Namen für das neue Profil an - + failed to create profile: %1 Erstellen des Profils fehlgeschlagen: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Download in Bearbeitung - + There are still downloads in progress, do you really want to quit? Es gibt noch unfertige Downloads, wollen Sie wirklich das Programm beenden? - + failed to read savegame: %1 Spielstand konnte nicht gelesen werden: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting Warte - + Please press OK once you're logged into steam. Bitte drücken sie OK sobald sie bei Steam angemeldet sind. - "%1" not found - "%1" nicht gefunden + "%1" nicht gefunden - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam muss laufen um das Spiel korrekt zu starten. Soll MO versuchen Steam zu starten? - + Also in: <br> Auch in: <br> - + No conflict Keine Konflikte - + <Edit...> <Bearbeiten...> - - Failed to refresh list of esps: %s - - - - + This bsa is enabled in the ini file so it may be required! Dieses Archiv ist in der ini Konfiguration gelistet, daher ist es möglicherweise erforderlich! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Dieses Archiv wird vom Spiel geladen werden da ein Plugin mit dem selben Namen aktiv ist aber die enthaltenen Dateien werden sich nicht an Ihre Installations-Reihenfolge halten! - + Activating Network Proxy - - + + Installation successful Installation erfolgreich - - + + Configure Mod Mod konfigurieren - - + + This mod contains ini tweaks. Do you want to configure them now? Diese Mod enthält Anpassungen für die Ini datei. Wollen Sie diese nun konfigurieren? - - + + mod "%1" not found mod "%1" nicht gefunden - - + + Installation cancelled Installation abgebrochen - - + + The mod was not installed completely. Die mod wurde nicht erfolgreich installiert. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Mod wählen - + Mod Archive Mod Archiv - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Download gestartet - + failed to update mod list: %1 Aktualisieren der Modliste fehlgeschlagen: %1 - + failed to spawn notepad.exe: %1 notepad.exe konnte nicht aufgerufen werden: %1 - + failed to open %1 %1 konnte nicht geöffnet werden - + failed to change origin name: %1 konnte den Namen der Dateiquelle nicht ändern: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Alle> - + <Checked> <Markierte> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - Failed to move "%1" from mod "%2" to "%3": %4 - - - - + <Unchecked> <Nicht markierte> - + <Update> <Update> - + <No category> <Ohne Kategorie> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 konnte die Mod nicht umbenennen: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + + Confirm Bestätigen - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 konnte die mod nicht entfernen: %1 - - + + Failed Fehlgeschlagen - + Installation file no longer exists Installationsdatei existiert nicht mehr - + Mods installed with old versions of MO can't be reinstalled in this way. Mods die mit alten Versionen von MO installiert wurden können nicht auf diese Weise neu-installiert werden. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA BSA extrahieren - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Diese mod enthält mindestens eine BSA datei. Soll sie entpackt werden? (Das BSA wird danach gelöscht. Wenn Sie nicht wissen was BSAs sind wählen Sie am besten \"nein\") - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Dieses Archiv enthält ungültige Prüfsummen. Einige Dateien sind evtl. defekt. - + Nexus ID for this Mod is unknown Nexus ID für diese Mod unbekannt @@ -2287,92 +2385,92 @@ This function will guess the versioning scheme under the assumption that the ins Priorität wählen - + Really enable all visible mods? Alle angezeigten Mods aktivieren? - + Really disable all visible mods? Alle angezeigten Mods deaktivieren? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Mod installieren... - + Enable all visible Alle sichtbaren aktvieren - + Disable all visible Alle sichtbaren deaktvieren - + Check all for update Alle auf Aktualisierungen überprüfen - + Export to csv... - + Sync to Mods... Mods synchronisieren... - + Restore Backup - + Remove Backup... @@ -2381,312 +2479,362 @@ This function will guess the versioning scheme under the assumption that the ins Kategorie festlegen - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Mod umbenennen... - + Remove Mod... Mod entfernen... - + Reinstall Mod Mod neu installieren - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus Auf Nexus besuchen - + Open in explorer In Explorer öffnen - + Information... Informationen... - - + + Exception: Ausnahme: - - + + Unknown exception Unbekannte Ausnahme - + <Multiple> - + + Really delete "%1"? + + + + Fix Mods... Mods reparieren... - - + + Delete + + + + + failed to remove %1 %1 konnte nicht entfernt werden - - + + failed to create %1 %1 konnte nicht erstellt werden - + Can't change download directory while downloads are in progress! Das download verzeichnis kann nicht geändert werden solange Downloads laufen! - + Download failed Download fehlgeschlagen - + failed to write to file %1 Speichern in Datei "%1" fehlgeschlagen - + %1 written "%1" gespeichert - + Select binary Binary wählen - + Binary Ausführbare Datei - + Enter Name Namen eingeben - + Please enter a name for the executable Bitte geben Sie einen Namen für die Anwendungsdatei ein - + Not an executable Datei ist nicht ausführbar - + This is not a recognized executable. - - + + Replace file? Datei ersetzen? - + There already is a hidden version of this file. Replace it? Es existiert bereits eine versteckte Variante von dieser Datei. Soll diese ersetzt werden? - - + + File operation failed Dateioperation fehlgeschlagen - - + + Failed to remove "%1". Maybe you lack the required file permissions? Konnte "%1" nicht löschen. Fehlen Ihnen evtl. die nötigen Berechtigungen? - + There already is a visible version of this file. Replace it? Es existiert bereits eine sichtbare Variante dieser Datei. Soll diese ersetzt werden? - + + file not found: %1 + Datei nicht gefunden: %1 + + + + failed to generate preview for %1 + + + + + Sorry, can't preview anything. This function currently does not support extracting from bsas. + + + + Update available Aktualisierung verfügbar - + Open/Execute Öffnen/Ausführen - + Add as Executable Als Anwendung hinzufügen - + + Preview + + + + Un-Hide Sichtbar machen - + Hide Verstecken - + Write To File... In Datei speichern... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + + BOSS working + + + + + failed to run boss: %1 + + + + Request to Nexus failed: %1 - + + Executable "%1" not found + + + + + Failed to refresh list of esps: %1 + + + + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway login fehlgeschlagen: %1. Der Download scheitert vermutlich - + login failed: %1 login fehlgeschlagen: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Fehler - + failed to extract %1 (errorcode %2) konnte "%1" nicht extrahieren (fehlercode %2) - + Extract... Extrahieren... - + Edit Categories... - + Enable all - + Disable all @@ -2729,58 +2877,58 @@ Please enter a name: Mod Informationen - + Textfiles Textdateien - + A list of text-files in the mod directory. Liste mit Textdateien im Modverzeichnis. - + A list of text-files in the mod directory like readmes. Eine Liste mit Textdateien im Modverzeichnis, z.B. Readme. - + INI-Files INI Dateien - + This is a list of .ini files in the mod. Liste mit .ini Dateien im Mod. - + This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. Eine Liste mit Textdateien im Modverzeichnis. Die Dateien werden üblicherweise dazu verwendet um das Verhalten und Parameter der mods zu konfigurieren. - + Save changes to the file. Änderungen an der Datei speichern. - + Save changes to the file. This overwrites the original. There is no automatic backup! Änderungen der Datei speichern. Dies überschreibt das Original - es gibt keine automatische Sicherung! - - + + Save Speichern - + Images Bilder - + Images located in the mod. Bilder im Modverzeichnis. @@ -2797,13 +2945,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Listet alle Bilder (*.jpg, *.png) im Modverzeichnis auf, bspw. Screenshots. Klicken für eine größere Ansicht.</span></p></body></html> - - + + Optional ESPs Optionale ESPs - + List of esps and esms that can not be loaded by the game. Liste mit ESP und ESM Dateien die vom Spiel nicht geladen werden können. @@ -2826,12 +2974,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Die meisten Mods haben keine optionalen ESPs, wahrscheinlich sehen Sie also eine leere Liste vor sich..</span></p></body></html> - + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2839,103 +2987,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. Den unten ausgewählten Mod als nicht verfügbar markieren. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. Die in der unteren Liste ausgewählte ESP wird in ein Unterverzeichnis des Mods verschoben und so für das Spiel unsichtbar. Sie kann nicht mehr im Spiel aktiviert werden. - + Move a file to the data directory. Datei in das Datenverzeichnis verschieben. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Verschiebt ein ESP in das ESP Verzeichnis damit es im Hauptfenster aktiviert werden kann. Bitte beachten Sie, dass das ESP nur "verfügbar" wird, es wird nicht zwangsläufig geladen! Das Laden der ESP wird im Hauptfenster von MO eingestellt. - + ESPs in the data directory and thus visible to the game. ESPs im Datenverzeichnis und für das Spiel sichtbar. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Dies Mod Dateien sind im (virtuellen) Datenverzeichnis des Spiels und somit in der ESP Liste des Hauptfenster auswählbar. - + Available ESPs Verfügbare ESPs - + Conflicts Konflikte - + The following conflicted files are provided by this mod Die folgenden konfliktbehafteten Dateien werden von dieser Mod bereitgestellt - - + + File Datei - + Overwritten Mods Überschriebene Mods - + The following conflicted files are provided by other mods Die folgenden konfliktbehafteten Dateien werden von anderen Mods bereitgestellt - + Providing Mod Bereitstellende Mod - + Non-Conflicted files Konfliktfreie Dateien - + Categories Kategorien - + Primary Category - + Nexus Info Nexus Info - + Mod ID Mod ID - + Mod ID for this mod on Nexus. ID dieser mod auf Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2953,7 +3101,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ModID für den Mod auf Nexus. Um die korrekte Id zu finden, einfach den Mod auf Nexus aufrufen. Die URL sieht so aus:<a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" color:#000000;">. In diesem Beispiel ist 1334 die gesuchte Id. Zufällig ist das genau der Link zu Mod Organiser im Nexus. Warum nicht einfach mal anklicken und ein Endorsement hinzufügen?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2966,32 +3114,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Installierte Version des Mods. Der Tooltip zeigt die auf Nexus verfügbare Version. Die installierte Versionsnummer kann nur angezeigt werden wenn der Mod durch MO installiert wurde.</span></p></body></html> - + Version Version - + Refresh Neu laden - + Refresh all information from Nexus. - + Description Beschreibung - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -2999,12 +3147,12 @@ p, li { white-space: pre-wrap; } about:blank - + Endorse - + Notes @@ -3025,7 +3173,7 @@ p, li { white-space: pre-wrap; } Typ - + Name Name @@ -3046,17 +3194,17 @@ p, li { white-space: pre-wrap; } Schon ein "endorsement" vergeben? - + Filetree Verzeichnisbaum - + A directory view of this mod Verzeichnisansicht des Mods - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3071,53 +3219,53 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Veränderungen werden sofort auf der Platte ausgeführt, also</span><span style=" font-size:8pt; font-weight:600;"> vorsichtig sein!</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next Weiter - + Close Schliessen - + &Delete &Löschen - + &Rename &Umbenennen - + &Hide - + &Unhide - + &Open &Öffnen - + &New Folder &Neuer Ordner - - + + Save changes? Änderungen speichern? @@ -3126,28 +3274,28 @@ p, li { white-space: pre-wrap; } Änderungen an "%1" speichern? - + File Exists Datei existiert bereits - + A file with that name exists, please enter a new one Eine Datei mit diesem Namen existiert bereits, bitte wählen Sie einen anderen Namen - + failed to move file Verschieben der Datei fehlgeschlagen - + failed to create directory "optional" Erstellen des Verzeichnis "optional" fehlgeschlagen - - + + Info requested, please wait Information wird abgerufen, bitte warten @@ -3164,32 +3312,32 @@ p, li { white-space: pre-wrap; } (Beschreibung unvollständig. Bitte besuche die Nexus-Seite) - + Main Primär - + Update Aktualisierung - + Optional Optional - + Old Alt - + Misc Sonstiges - + Unknown Unbekannt @@ -3198,18 +3346,18 @@ p, li { white-space: pre-wrap; } Anfrage fehlgeschlagen - + (description incomplete, please visit nexus) - + <a href="%1">Visit on Nexus</a> <a href="%1">Auf Nexus öffnen</a> - - + + Confirm Bestätigen @@ -3222,114 +3370,114 @@ p, li { white-space: pre-wrap; } Download gestartet - + Failed to delete %1 "%1" konnte nicht gelöscht werden - + Are sure you want to delete "%1"? Sind Sie sicher, dass Sie "%1" löschen wollen? - + Are sure you want to delete the selected files? Sind Sie sicher, dass Sie die ausgewählten Dateien löschen wollen? - - + + New Folder Neuer Ordner - + Failed to create "%1" "%1" konnte nicht erstellt werden - - + + Replace file? Datei ersetzen? - + There already is a hidden version of this file. Replace it? Es existiert bereits eine versteckte Variante von dieser Datei. Soll diese ersetzt werden? - - + + File operation failed Dateioperation fehlgeschlagen - - + + Failed to remove "%1". Maybe you lack the required file permissions? Konnte "%1" nicht löschen. Fehlen Ihnen evtl. die nötigen Berechtigungen? - - + + failed to rename %1 to %2 konnte "%1" nicht in "%2" umbenennen - + There already is a visible version of this file. Replace it? Es existiert bereits eine sichtbare Variante dieser Datei. Soll diese ersetzt werden? - + Un-Hide Sichtbar machen - + Hide Verstecken - + Please enter a name - - + + Error Fehler - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak - + Current Version: %1 Aktuelle Version: %1 - - + + Save changes to "%1"? - + No update available Keine neue Version verfügbar @@ -3401,8 +3549,9 @@ p, li { white-space: pre-wrap; } - installed version: %1, newest version: %2 - installierte Version: %1, neueste Version: %2 + installed version: "%1", newest version: "%2" + installed version: %1, newest version: %2 + installierte Version: %1, neueste Version: %2 %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory @@ -3724,17 +3873,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response leere Antwort - + invalid response ungültige Antwort @@ -4759,85 +4908,93 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. PluginList - + Mod Index - - + + Flags + + + + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP nicht gefunden: %1 - + Confirm Bestätigen - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - failed to open output file: %1 - konnte die Ausgabedatei nicht öffnen: %1 + konnte die Ausgabedatei nicht öffnen: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. Einige Ihrer Plugins haben ungültige Namen! Diese Plugins können nicht vom Spiel geladen werden. Die Datei mo_interface.log enthält eine Liste der betroffenen Plugins. Bitte benennen Sie diese um. - + + BOSS dll incompatible + + + + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4850,17 +5007,17 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. max - + This plugin can't be disabled (enforced by the game) Dieses Plugin kann nicht deaktiviert werden (vom Spiel benötigt) - + Origin: %1 Ursprung: %1 - + Name Name @@ -4869,7 +5026,7 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Namen Ihrer Mods - + Priority Priorität @@ -4888,6 +5045,19 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Dieser Index legt die ID von Gegenständen, Zaubersprüchen, etc. fest, die mit dem Mod eingeführt werden. Die ID wird "xxyyyyyy" sein, wobei "xx" dieser Index ist und "yyyyyy" vom Mod selbst bestimmt wird. + + PreviewDialog + + + Preview + + + + + Close + Schliessen + + ProblemsDialog @@ -4933,82 +5103,72 @@ p, li { white-space: pre-wrap; } konnte Ini Anpassungen nicht anwenden - + invalid profile name %1 - + failed to create %1 %1 konnte nicht erstellt werden - - failed to open temporary file - - - - - failed to open "%1" for writing - - - - + failed to write mod list: %1 - + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 Ungültige Priorität %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 Konnte ini-datei (%1) nicht auslesen: %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) - - - - - + + + + + invalid index %1 ungültiger index %1 @@ -5385,7 +5545,7 @@ p, li { white-space: pre-wrap; } Ungültige 7-zip32.dll: %1 - + "%1" is missing "%1" fehlt @@ -5394,8 +5554,8 @@ p, li { white-space: pre-wrap; } "%1" konnte nicht erstellt werden, haben Sie die nötigen Schreibrechte für das Installations Verzeichnis? - - + + Please select the game to manage Bitte wählen Sie ein Spiel zum Verwalten aus @@ -5404,7 +5564,7 @@ p, li { white-space: pre-wrap; } Ungültiges Profil %1 - + Permissions required Berechtigungen erforderlich @@ -5413,8 +5573,8 @@ p, li { white-space: pre-wrap; } Der aktuelle Benutzeraccount hat die erforderlichen Berechtigungen nicht um Mod Organizer auszuführen. The notwendigen Änderungen können automatisch durchgeführt werden (der aktuelle Benutzeraccount erhält Schreibzugriff auf das ModOrganizer Verzeichnis). Sie werden aufgefordert werden "mo_helper.exe" mit erhöhten Privilegien auszuführen. - - + + Woops Oha @@ -5423,32 +5583,32 @@ p, li { white-space: pre-wrap; } ModOrganizer ist abgestürzt! Soll eine Diagnosedatei geschrieben werden? Wenn sie mir diese Datei per eMail (sherb@gmx.net) schicken kann dieser Fehler vermutlich eher behoben werden. - + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 ModOrganizer ist abgestürzt! Leider konnte keine Diagnosedatei geschrieben werden: %1 - + An instance of Mod Organizer is already running Mod Organizer läuft bereits - + No game identified in "%1". The directory is required to contain the game binary and its launcher. Es wurde kein Spiel in "%1" gefunden. Das Verzeichnis muss das Anwendungsdatei des Spiels und des Launchers enthalten. - + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) @@ -5457,7 +5617,7 @@ p, li { white-space: pre-wrap; } "%1" nicht gefunden - + Please use "Help" from the toolbar to get usage instructions to all elements Bitte verwenden Sie die "Hilfe" Funktion um Hinweise zu Nutzung aller Elemete zu bekommen @@ -5470,19 +5630,19 @@ p, li { white-space: pre-wrap; } Ungültige Priorität %1 - - + + failed to find "%1" Konnte "%1" nicht finden - - + + <Manage...> <Verwalten...> - + failed to parse profile %1: %2 Konnte Profil %1 nicht verarbeiten: %2 @@ -5491,17 +5651,17 @@ p, li { white-space: pre-wrap; } Kodierungsfehler! Bitte melden Sie dies als Bug und fügen Sie die Datei mo_interface.log bei! - + failed to access %1 Auf %1 konnte nicht zugegriffen werden - + failed to set file time %1 Konnte Dateizeit nicht setzen %1 - + failed to create %1 %1 konnte nicht erstellt werden @@ -5556,22 +5716,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + failed to spawn "%1": %2 "%1" konnte nicht erzeugt werden: %2 - + "%1" doesn't exist "%1" existiert nicht - + failed to inject dll into "%1": %2 Konnte dll nicht in "%1" einspeisen: %2 - + failed to run "%1" "%1" konnte nicht ausgeführt werden @@ -5657,18 +5817,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Englisch - - + + Mod Organizer Mod Organizer - + Script Extender Script Extender - + Proxy DLL Proxy DLL @@ -5751,6 +5911,11 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe invalid game type %1 + + + failed to open temporary file + + QueryOverwriteDialog @@ -5986,18 +6151,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Admistratorrechte sind erforderlich um dies zu ändern. - - + + attempt to store setting for unknown plugin "%1" - + Confirm Bestätigen - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -6124,42 +6289,47 @@ p, li { white-space: pre-wrap; } Cache-Verzeichnis - + Disable automatic internet features - + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - + Offline Mode - + Use a proxy for network connections. - + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - + Use HTTP Proxy (Uses System Settings) - - Known Servers (Dynamically updated every download) + + Associate with "Download with manager" links + + + + + Known Servers (updated on download) - + Preferred Servers (Drag & Drop) @@ -6231,52 +6401,52 @@ p, li { white-space: pre-wrap; } Standardbrowser vorziehen - + Plugins - + Author: - + Version: - + Description: - + Key - + Value - + Blacklisted Plugins (use <del> to remove): - + Workarounds Workarounds - + Load Mechanism Lademechanismus - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -6287,17 +6457,17 @@ If you use the Steam version of Oblivion the default will NOT work. In this case - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -6306,53 +6476,53 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + Enforces that inactive ESPs and ESMs are never loaded. Stellt sicher, dass inaktive ESP und ESM Dateien nie geladen werden. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. Manche Spiele scheinen gelegentlich ESP oder ESM Dateien zu laden auch wenn sie nicht als Plugins aktiviert wurden. Wenn der Haken aktiviert wurde, sind ESP und ESM Dateien die nicht ausgewählt wurden für das Spiel unsichtbar und können nicht geladen werden. - + Hide inactive ESPs/ESMs Inaktive ESP / ESM ausblenden - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Für Skyrim kann dies als Alternative zur Archiv Invalidierung verwendet werden. Damit erübrigt sich AI für alle Profile. Für die anderen Spiele ist dies KEIN hinreichender Ersatz für AI! - + Back-date BSAs BSAs zurückdatieren - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -6365,7 +6535,7 @@ Für die anderen Spiele ist dies KEIN hinreichender Ersatz für AI!Lade-Methode - + Select loading mechanism. See help for details. Lade-Mechanismus auswählen. Siehe Hilfe für mehr Details. @@ -6390,17 +6560,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">Proxy DLL</span><span style=" font-size:8pt;"> In diesem Modus ersetzt MO eine der dll Dateien des Spiels mit einer eigenen Version, die MO lädt (und die originale dll natürlich). Dies funktioniert NUR mit Steam Versionen und wurde bisher nur mit Skyrim getestet. Bitte verwenden Sie diesen Modus nur, wenn keine der anderen Varianten funktioniert.</span></p></body></html> - + Steam App ID Steam AppID - + The Steam AppID for your game Die Steam AppID für Ihr Spiel - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -6469,37 +6639,37 @@ p, li { white-space: pre-wrap; } Automatisch in Nexus anmelden - + Username Nutzername - + Password Kennwort - + Select download directory Download-Verzeichnis wählen - + Select mod directory Mod-Verzeichnis wählen - + Select cache directory Cache-Verzeichnis wählen - + Confirm? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? diff --git a/src/organizer_es.ts b/src/organizer_es.ts index bb1543ce..0a19f56f 100644 --- a/src/organizer_es.ts +++ b/src/organizer_es.ts @@ -1,6 +1,50 @@ + + AboutDialog + + + + About + + + + + Revision: + + + + + Used Software + + + + + Credits + + + + + Translators + + + + + Others + + + + + Close + Cerrar + + + + No license + + + ActivateModsDialog @@ -232,25 +276,30 @@ p, li { white-space: pre-wrap; } DownloadList - + Name Nombre - + Filetime - + Done - + Information missing, please select "Query Info" from the context menu to re-retrieve. + + + pending download + + DownloadListWidget @@ -303,125 +352,135 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - - - - + + + + Are you sure? Estas seguro? - + This will remove all finished downloads from this list and from disk. Esto limpiara todas las descargas finalizadas del disco y la lista. - + This will remove all installed downloads from this list and from disk. - + Install Instalar - + Query Info - + Remove - + Cancel Cancelar - + + < mod %1 file %2 > + + + + + Pending + + + + Paused - + Fetching Info 1 - + Fetching Info 2 - + Installed - + Uninstalled - + Done - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Delete - + Un-Hide - + Remove from View - + Pause - + Resume - + Delete Installed... - + Delete All... - + Remove Installed... - + Remove All... Quitar todos... @@ -429,68 +488,78 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Estas seguro? - + This will remove all finished downloads from this list and from disk. Esto limpiara todas las descargas finalizadas del disco y la lista. - + This will remove all installed downloads from this list and from disk. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Instalar - + Query Info - + Delete - + Un-Hide - + Remove from View - + Remove Quitar - + Cancel Cancelar + + + < mod %1 file %2 > + + + + + Pending + + Fetching Info 1 @@ -502,32 +571,32 @@ p, li { white-space: pre-wrap; } - + Pause - + Resume - + Delete Installed... - + Delete All... - + Remove Installed... - + Remove All... Quitar todos... @@ -540,78 +609,83 @@ p, li { white-space: pre-wrap; } - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + failed to download %1: could not open output file: %2 error en la descarga %1: no se puede abrir el fichero de destino: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - + failed to delete %1 - + failed to delete meta file for %1 - - - - - - + + + + + + invalid index %1 indice invalido %1 - + Information updated - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 - + + Download failed. Server reported: %1 + + + + Download failed: %1 (%2) @@ -620,30 +694,31 @@ p, li { white-space: pre-wrap; } error borrando el fichero - - - - - - - - - - - - - - + + + + + + + + + + + + + + + invalid index indice invalido - + Please enter the nexus mod id - + Mod ID: @@ -652,7 +727,7 @@ p, li { white-space: pre-wrap; } Fallo la peticion de fichero de Nexus! - + failed to re-open %1 error reabriendo %1 @@ -764,7 +839,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + If checked, MO will be closed once the specified executable is run. Si esta seleccionado, MO se cerrada automaticamente al ejecutar el fichero. @@ -781,7 +856,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + Add Añadir @@ -797,42 +872,59 @@ Right now the only case I know of where this needs to be overwritten is for the Quitar - + + Close + Cerrar + + + Select a binary Selecciona el fichero - + Executable (%1) - + Java (32-bit) required - + MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - + Select a directory - + Confirm Confirma - + Really remove "%1" from executables? - + + + Save Changes? + + + + + + You made changes to the current executable, do you want to save them? + + + + MO must be kept running or this application will not work correctly. @@ -841,7 +933,7 @@ Right now the only case I know of where this needs to be overwritten is for the Ejecutable (*.exe *.bat) - + Modify Modificar @@ -1203,7 +1295,7 @@ p, li { white-space: pre-wrap; } MO esta bloqueado mientras se ejecute el programa. - + Unlock Desbloqueado @@ -1211,7 +1303,7 @@ p, li { white-space: pre-wrap; } LogBuffer - + failed to write log to %1: %2 @@ -1232,23 +1324,23 @@ p, li { white-space: pre-wrap; } MainWindow - - + + Categories Categorias - + Profile Perfil - + Pick a module collection Selecciona un perfil para cargarlo - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1259,44 +1351,44 @@ p, li { white-space: pre-wrap; } Por favor observa que las prioridades no son guardadas para cada perfil. - + Refresh list Recargar lista - + Refresh list. This is usually not necessary unless you modified data outside the program. Recargar lista. Esto es normalmente no necesario, a no ser que hayas modificado algo desde fuera del programa. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter Filtro - + No groups - + Nexus IDs Nexus IDs - - - + + + Namefilter @@ -1305,12 +1397,12 @@ Por favor observa que las prioridades no son guardadas para cada perfil.Iniciar - + Pick a program to run. Selecciona el programa a iniciar. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1320,12 +1412,12 @@ p, li { white-space: pre-wrap; } - + Run program Iniciar el programa - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1334,17 +1426,17 @@ p, li { white-space: pre-wrap; } Iniciar el programa seleccionado con ModOrganizer activado. - + Run Iniciar - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1353,7 +1445,7 @@ p, li { white-space: pre-wrap; } - + Shortcut @@ -1362,12 +1454,12 @@ p, li { white-space: pre-wrap; } Guardar la lista de prioridades de carga. - + List of available esp/esm files Listado de ficheros esp/esm disponibles - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1376,12 +1468,12 @@ p, li { white-space: pre-wrap; } - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1389,66 +1481,71 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Fichero - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Datos - + + Sort + + + + refresh data-directory overview refresca la vista del directorio de datos - + Refresh the overview. This may take a moment. Refresca toda la vista. Esto puede tomar un tiempo. - - - + + + Refresh Recargar - + This is an overview of your data directory as visible to the game (and tools). Esta es una visión general del directorio de datos como visible para el juego (y herramientas). - - + + Filter the above list so that only conflicts are displayed. Filrar la lista superior por conflictos. - + Show only conflicts Monstrar solo los conflictos - + Saves Part. Guardadas - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1459,160 +1556,160 @@ p, li { white-space: pre-wrap; } - + Downloads Descargas - + This is a list of mods you downloaded from Nexus. Double click one to install it. Esta es la lista de los mods que has descargado desde Nexus. Doble Click para instalar. - + Compact - + Show Hidden - + Tool Bar Tool Bar - + Install Mod Instalar Mod - + Install &Mod Instalar &Mod - + Install a new mod from an archive Instalar un nuevo Mod desde un archivo - + Ctrl+M Ctrl+M - + Profiles Perfiles - + &Profiles &Perfiles - + Configure Profiles Configurar los perfiles - + Ctrl+P Ctrl+P - + Executables Ejecutables - + &Executables &Ejecutables - + Configure the executables that can be started through Mod Organizer Configura el ejecutable que sera iniciado desde Mod Orgenizer - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings Configuracion - + &Settings &Configuracion - + Configure settings and workarounds Configuraciones y modos - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Buscar en la red de Nexus mas Mods - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Mod Organizer esta actualizado - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1620,496 +1717,497 @@ Right now this has very limited functionality - - + + Help Ayuda - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 Fallo guardando el orden de carga: %1 - + failed to save archives order, do you have write access to "%1"? - + + About + + + + + About Qt + + + + Name Nombre - + Please enter a name for the new profile Por favor introduzca un nombre para el nuevo perfil - + failed to create profile: %1 Fallo al crear el perfil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Descarga en progreso - + There are still downloads in progress, do you really want to quit? Aun hay descargas en progreso, estas seguro que quieres salir? - + failed to read savegame: %1 Fallo al leer la partida guardada: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - "%1" not found - "%1" no encontrado + "%1" no encontrado - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Sin conflictos - + <Edit...> <Editar...> - - Failed to refresh list of esps: %s - - - - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Instalacion completada - - + + Configure Mod Configurar Mod - - + + This mod contains ini tweaks. Do you want to configure them now? Este mod contiene modificaciones del Ini. Quieres configurarlas ahora? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Seleccione Mod - + Mod Archive Fichero Mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Descarga comenzada - + failed to update mod list: %1 Fallo al actualizar la lista de Mods: %1 - + failed to spawn notepad.exe: %1 Fallo al cargar el Bloc de notas: %1 - + failed to open %1 Fallo al abrir %1 - + failed to change origin name: %1 fallo al cambiar el nombre original del fichero %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Todos> - + <Checked> <Marcado> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - Failed to move "%1" from mod "%2" to "%3": %4 - - - - + <Unchecked> <Desmarcado> - + <Update> <Actualizacion> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 fallo al cambiar el nombre al mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + + Confirm Confirma - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2122,92 +2220,92 @@ This function will guess the versioning scheme under the assumption that the ins Selecciona Prioridad - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instalar Mod... - + Enable all visible Activar todos los visibles - + Disable all visible Desactivar todos los visibles - + Check all for update Buscar Actualizaciones - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... @@ -2216,312 +2314,362 @@ This function will guess the versioning scheme under the assumption that the ins Definir Categoria - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Cambiar nombre... - + Remove Mod... Quitar Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Informacion... - - + + Exception: - - + + Unknown exception - + <Multiple> - + + Really delete "%1"? + + + + Fix Mods... Activar Mods faltantes... - - + + Delete + + + + + failed to remove %1 Fallo eliminando %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 Fallo de escritura en el fichero %1 - + %1 written %1 escrito - + Select binary - + Binary Fichero - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + + file not found: %1 + fichero no encontrado: %1 + + + + failed to generate preview for %1 + + + + + Sorry, can't preview anything. This function currently does not support extracting from bsas. + + + + Update available Disponible actualización - + Open/Execute - + Add as Executable - + + Preview + + + + Un-Hide - + Hide - + Write To File... Escribir al fichero... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + + BOSS working + + + + + failed to run boss: %1 + + + + Request to Nexus failed: %1 - + + Executable "%1" not found + + + + + Failed to refresh list of esps: %1 + + + + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2564,58 +2712,58 @@ Please enter a name: Informacion del Mod - + Textfiles Fich. Texto - + A list of text-files in the mod directory. El listado de ficheros de texto en el directorio del mod. - + A list of text-files in the mod directory like readmes. El listado de ficheros de texto en el directorio del mod como ayudas e informacion. - + INI-Files Fich. INI - + This is a list of .ini files in the mod. Esta es la lista de ficheros INI que incluye el mod. - + This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. Esta es la lista de ficheros INI que incluye el mod. Normalmente son usados para configurar algunos aspectos o parametros del mod. - + Save changes to the file. Grabar cambios al fichero. - + Save changes to the file. This overwrites the original. There is no automatic backup! Grabar cambios al fichero. Esto sobreescribe el original. No se realizan backups! - - + + Save Guardar - + Images Imagenes - + Images located in the mod. Imagenes incluidas en el mod. @@ -2628,13 +2776,13 @@ p, li { white-space: pre-wrap; } Esto muestra el listado de fotos (jpg y png) incluidas con el Mod, por ejemplo capturas de pantallas. Pulsa para verlas en grande. - - + + Optional ESPs ESPs Opcionales - + List of esps and esms that can not be loaded by the game. Listado de ESPs y ESMs que no se cargaran con el juego. @@ -2653,12 +2801,12 @@ Normalmente son ficheros extras o modificaciones, mira el fich. texto del mod pa Muchos mods no tienen ESPs extras, en estos casos veras una lista vacia. - + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2666,103 +2814,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. marca este fichero seleccionado en la lista de abajo no disponible. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. El esp seleccionado (en la lista de abajo) es el que sera colocado en el subdirectorio del mod y sera invisible para el juego. Este no podra ser activado. - + Move a file to the data directory. Error moviendo fichero al directorio de datos. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Esto mueve un esp al directorio esp, por lo que se puede habilitar en la ventana principal. Tenga en cuenta que el ESP sólo se convierte en "disponible", no necesariamente se cargará! Está configurado en la ventana principal de omo. - + ESPs in the data directory and thus visible to the game. ESPs en el directorio de datos y visibles por el juego. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Estos son los archivos mod que se encuentran en el directorio de datos (virtual) de su juego y así será selecteable en la lista de esp en la ventana principal. - + Available ESPs ESPs Disponibles - + Conflicts - + The following conflicted files are provided by this mod - - + + File Fichero - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Categorias - + Primary Category - + Nexus Info Inf. Nexus - + Mod ID ID del MOD - + Mod ID for this mod on Nexus. ID del Mod en Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2776,7 +2924,7 @@ p, li { white-space: pre-wrap; } - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2785,41 +2933,41 @@ p, li { white-space: pre-wrap; } - + Version Version - + Refresh Recargar - + Refresh all information from Nexus. - + Description Descripcion - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - + Endorse - + Notes @@ -2840,7 +2988,7 @@ p, li { white-space: pre-wrap; } Tipo - + Name Nombre @@ -2862,17 +3010,17 @@ p, li { white-space: pre-wrap; } Tamaño - + Filetree Contenido - + A directory view of this mod Ficheros que contiene este mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2882,43 +3030,43 @@ p, li { white-space: pre-wrap; } - + Previous - + Next - + Close Cerrar - + File Exists Existe el fichero - + A file with that name exists, please enter a new one Un fichero con ese nombre ya existe, por favor selecciona otro nombre - + failed to move file Error al mover el fichero - + failed to create directory "optional" Error al crear el directorio "optional" - - + + Info requested, please wait Informacion solicitada, por favor espere @@ -2935,159 +3083,159 @@ p, li { white-space: pre-wrap; } (descripcion incompleta, por favor visita nexus) - + &Delete &Delete - + &Rename &Rename - + &Open &Open - + &New Folder &New Folder - - + + Save changes? Grabar cambios? - + Current Version: %1 Version actual: %1 - + No update available Sin actualizacion - + Main Principal - + &Hide - + &Unhide - - + + Save changes to "%1"? - + Update Actualizacion - + Optional Opcional - + Old Antiguo - + Misc Misc - + Unknown Desconocido - + (description incomplete, please visit nexus) - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - - + + failed to rename %1 to %2 - + There already is a visible version of this file. Replace it? - + Un-Hide - + Hide - + Please enter a name - - + + Error Error - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak @@ -3096,13 +3244,13 @@ p, li { white-space: pre-wrap; } peticion fallada - + <a href="%1">Visit on Nexus</a> - - + + Confirm Confirma @@ -3115,28 +3263,28 @@ p, li { white-space: pre-wrap; } Descarga comenzada - + Failed to delete %1 Error borrando %1 - + Are sure you want to delete "%1"? Estas seguro de querer borrar "%1"? - + Are sure you want to delete the selected files? Etas seguro de querer borrar los ficheros seleccionados? - - + + New Folder Nueva Carpeta - + Failed to create "%1" Fallo al crear "%1" @@ -3212,8 +3360,9 @@ p, li { white-space: pre-wrap; } - installed version: %1, newest version: %2 - version instalada: %1, nueva version: %2 + installed version: "%1", newest version: "%2" + installed version: %1, newest version: %2 + version instalada: %1, nueva version: %2 %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory @@ -3471,17 +3620,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response - + invalid response @@ -4123,85 +4272,89 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod PluginList - + Mod Index - - + + Flags + + + + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP no encontrado: %1 - + Confirm Confirma - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - - failed to open output file: %1 + + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - - Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. + + BOSS dll incompatible - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4214,17 +4367,17 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod max - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name Nombre @@ -4233,7 +4386,7 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod Nombres de tus Mods - + Priority Prioridad @@ -4254,6 +4407,19 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod Indice Mod + + PreviewDialog + + + Preview + + + + + Close + Cerrar + + ProblemsDialog @@ -4299,82 +4465,72 @@ p, li { white-space: pre-wrap; } fallo al aplicar las modificaciones al ini - + invalid profile name %1 - + failed to create %1 - - failed to open temporary file - - - - - failed to open "%1" for writing - - - - + failed to write mod list: %1 - + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 prioridad invalida %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) - - - - - + + + + + invalid index %1 indice invalido %1 @@ -4759,12 +4915,12 @@ p, li { white-space: pre-wrap; } Fallo al configurar la carga por proxy-dll - + "%1" is missing "%1" no encontrado - + Permissions required Se requieren permisos @@ -4773,44 +4929,44 @@ p, li { white-space: pre-wrap; } La cuenta de usuario actual no tiene los derechos de acceso necesarios para ejecutar el Mod Organizer. Los cambios necesarios pueden hacerse automáticamente (el directorio de MO se harán escritura para la cuenta de usuario actual). Se le pedirá a ejecutar "mo_helper.exe" con derechos de administrador). - - + + Woops - + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 - + An instance of Mod Organizer is already running Ya se está ejecutando una instancia de Mod Organizer - + No game identified in "%1". The directory is required to contain the game binary and its launcher. - - + + Please select the game to manage Por favor seleccione el juego - + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) @@ -4823,7 +4979,7 @@ p, li { white-space: pre-wrap; } "%1" no encontrado - + Please use "Help" from the toolbar to get usage instructions to all elements Por favor utilice "Ayuda" en la barra superior para obtener informacion sobre todos los elementos @@ -4836,19 +4992,19 @@ p, li { white-space: pre-wrap; } prioridad invalida %1 - - + + failed to find "%1" fallo al encontrar %1 - - + + <Manage...> <Definir...> - + failed to parse profile %1: %2 no se pudo analizar el perfil % 1: %2 @@ -4861,17 +5017,17 @@ p, li { white-space: pre-wrap; } Esto tomara un momento - + failed to access %1 Fallo al acceder %1 - + failed to set file time %1 Fallo al definir la hora al fihcero %1 - + failed to create %1 Fallo al crear %1 @@ -4910,18 +5066,18 @@ p, li { white-space: pre-wrap; } Ingles - - + + Mod Organizer Mod Organizer - + Script Extender Script Extender - + Proxy DLL Proxy DLL @@ -4946,22 +5102,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + failed to spawn "%1": %2 Fallo al crear "%1": %2 - + "%1" doesn't exist "%1% no existe - + failed to inject dll into "%1": %2 Fallo al injectar la dll en "%1": %2 - + failed to run "%1" Fallo al abrir %1 @@ -5049,6 +5205,11 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe invalid game type %1 + + + failed to open temporary file + + QueryOverwriteDialog @@ -5280,18 +5441,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Derechos administrativos necesarios para cambiar esto. - - + + attempt to store setting for unknown plugin "%1" - + Confirm Confirma - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -5318,19 +5479,19 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe El idioma del programa. Esto solo mostrara los idiomas instalados. - + Enforces that inactive ESPs and ESMs are never loaded. Se asegura que no se cargan nunca los ESPs y ESMs inactivos. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. Parece que los juegos ocasionalmente cargan archivos ESP o ESM, incluso si ellos todavía no se ha activado como plugins. No, pero sabe cuáles son las circunstancias, pero informes de usuario implican en algunos casos no deseados. Si esto se comprueba, ESPs ESMs no marcadas en la lista son invisibles para el juego y no se pueden cargar. - + Hide inactive ESPs/ESMs Ocultar ESPs/ESMs inactivos @@ -5348,72 +5509,77 @@ p, li { white-space: pre-wrap; } - + Disable automatic internet features - + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - + Offline Mode - + Use a proxy for network connections. - + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - + Use HTTP Proxy (Uses System Settings) - - Known Servers (Dynamically updated every download) - - - - + Preferred Servers (Drag & Drop) - + Workarounds Soluciones - + Load Mechanism Mecamismo de carga - + Select loading mechanism. See help for details. Selecciona la forma de cargar. Mira la ayuda para detalles. - + Steam App ID Steam App ID - + + Associate with "Download with manager" links + + + + + Known Servers (updated on download) + + + + The Steam AppID for your game El AppID de tu juego - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -5588,12 +5754,12 @@ p, li { white-space: pre-wrap; } Inicio automatico en Nexus - + Username Usuario - + Password Contraseña @@ -5602,42 +5768,42 @@ p, li { white-space: pre-wrap; } Manejar enlaces NXM - + Plugins - + Author: - + Version: - + Description: - + Key - + Value - + Blacklisted Plugins (use <del> to remove): - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5648,17 +5814,17 @@ If you use the Steam version of Oblivion the default will NOT work. In this case - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -5667,36 +5833,36 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Para Skyrim, puede utilizarse en lugar de invalidación de archivo. Debe despedir AI para todos los perfiles. Para los otros juegos no es un sustituto suficiente AI! - + Back-date BSAs Back-date BSAs - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -5705,27 +5871,27 @@ Para los otros juegos no es un sustituto suficiente AI! Estas son soluciones para problemas con Mod Organizer. Normalmente no son necesarios. Por favor, asegúrese de leer el texto de ayuda antes de cambiar cualquier cosa aquí. - + Select download directory - + Select mod directory - + Select cache directory - + Confirm? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? diff --git a/src/organizer_fr.ts b/src/organizer_fr.ts index 2ddc1097..c283cb71 100644 --- a/src/organizer_fr.ts +++ b/src/organizer_fr.ts @@ -1,6 +1,50 @@ + + AboutDialog + + + + About + + + + + Revision: + + + + + Used Software + + + + + Credits + + + + + Translators + + + + + Others + + + + + Close + Fermer + + + + No license + + + ActivateModsDialog @@ -240,25 +284,30 @@ p, li { white-space: pre-wrap; } DownloadList - + Name Nom - + Filetime Date du fichier - + Done Terminé - + Information missing, please select "Query Info" from the context menu to re-retrieve. Information manquante, veuillez sélectionner "Demander info" dans le menu contextuel pour récupérer. + + + pending download + + DownloadListWidget @@ -311,125 +360,135 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - - - - + + + + Are you sure? Êtes-vous certain? - + This will remove all finished downloads from this list and from disk. Ceci supprimera tous les téléchargements complétés de la liste et du disque. - + This will remove all installed downloads from this list and from disk. Ceci supprimera tous les téléchargements installés de cette liste et du disque. - + Install Installer - + Query Info Demander info - + Remove Supprimer - + Cancel Annuler - + + < mod %1 file %2 > + + + + + Pending + + + + Paused - + Fetching Info 1 - + Fetching Info 2 - + Installed - + Uninstalled - + Done Terminé - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Delete - + Un-Hide - + Remove from View - + Pause Interrompre - + Resume Reprendre - + Delete Installed... - + Delete All... - + Remove Installed... Supprimer installé... - + Remove All... Supprimer tout... @@ -437,68 +496,78 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Êtes-vous certain? - + This will remove all finished downloads from this list and from disk. Ceci supprimera tous les téléchargements complétés de la liste et du disque. - + This will remove all installed downloads from this list and from disk. Ceci supprimera tous les téléchargements installés de la liste et du disque. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Installer - + Query Info Demander info - + Delete - + Un-Hide - + Remove from View - + Remove Supprimer - + Cancel Annuler + + + < mod %1 file %2 > + + + + + Pending + + Fetching Info 1 @@ -510,32 +579,32 @@ p, li { white-space: pre-wrap; } - + Pause Interrompre - + Resume Reprendre - + Delete Installed... - + Delete All... - + Remove Installed... Supprimer installé... - + Remove All... Supprimer tout... @@ -548,78 +617,83 @@ p, li { white-space: pre-wrap; } - + Download again? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. - + failed to download %1: could not open output file: %2 impossible de télécharger %1: impossible d'écrire le fichier %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - + failed to delete %1 impossible de supprimer %1 - + failed to delete meta file for %1 impossible de supprimer le méta fichier pour %1 - - - - - - + + + + + + invalid index %1 index invalide %1 - + Information updated Information mise à jour - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Aucun fichier correspondant trouvé sur Nexus! Peut-être ce fichier n'est-il plus disponible ou a été renommé? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Aucun fichier sur Nexus ne correspond au nom du fichier sélectionné. Veuillez s'il-vous-plaît sélectionner le bon manuellement. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Impossible de demander l'info du fichier sur Nexus: %1 - + + Download failed. Server reported: %1 + + + + Download failed: %1 (%2) Téléchargement échoué: %1 (%2) @@ -628,30 +702,31 @@ p, li { white-space: pre-wrap; } impossible de supprimer le fichier - - - - - - - - - - - - - - + + + + + + + + + + + + + + + invalid index index invalide - + Please enter the nexus mod id Veuillez entre l'ID Nexus du mod - + Mod ID: ID du mod: @@ -668,7 +743,7 @@ p, li { white-space: pre-wrap; } Téléchargement échoué - + failed to re-open %1 impossible d'ouvrir à nouveau %1 @@ -776,7 +851,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + If checked, MO will be closed once the specified executable is run. Si cochée, MO sera fermé une fois que le programme sélectionné sera démarré. @@ -793,7 +868,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + Add Ajouter @@ -809,42 +884,59 @@ Right now the only case I know of where this needs to be overwritten is for the Supprimer - + + Close + Fermer + + + Select a binary Choisir un programme - + Executable (%1) - + Java (32-bit) required - + MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - + Select a directory - + Confirm Confirmer - + Really remove "%1" from executables? - + + + Save Changes? + + + + + + You made changes to the current executable, do you want to save them? + + + + MO must be kept running or this application will not work correctly. @@ -853,7 +945,7 @@ Right now the only case I know of where this needs to be overwritten is for the Programme (*.exe *.bat) - + Modify Modifier @@ -1206,7 +1298,7 @@ p, li { white-space: pre-wrap; } MO est vérouillé pendant que le programme s'exécute. - + Unlock Dévérouiller @@ -1214,7 +1306,7 @@ p, li { white-space: pre-wrap; } LogBuffer - + failed to write log to %1: %2 @@ -1235,23 +1327,23 @@ p, li { white-space: pre-wrap; } MainWindow - - + + Categories Catégories - + Profile Profil - + Pick a module collection Choisissez un profil - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1266,44 +1358,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Veuillez noter que pour l'instant, l'ordre de chargement des ESPs est commun à tous les profils.</span></p></body></html> - + Refresh list Actualiser la liste - + Refresh list. This is usually not necessary unless you modified data outside the program. Actualiser la liste. Normalement inutile à moins que vous n'ayez modifié des données à l'extérieur du programme. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter Flitre - + No groups - + Nexus IDs IDs Nexus - - - + + + Namefilter @@ -1312,12 +1404,12 @@ p, li { white-space: pre-wrap; } Lancement - + Pick a program to run. Choisissez un programme à lancer. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1332,12 +1424,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Vous pouvez ajouter d'autres outils à la liste, mais je ne peut garantir que les outils que je n'ai pas testé fonctionneront.</span></p></body></html> - + Run program Lancer le programme - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1350,17 +1442,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Exécuter le programme sélectionné avec ModOrganizer actif.</span></p></body></html> - + Run Lancer - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1373,7 +1465,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Crée un raccourci dans le menu Démarrer qui lance directement le programme sélectionné avec MO actif.</span></p></body></html> - + Shortcut @@ -1398,12 +1490,12 @@ p, li { white-space: pre-wrap; } Enregistrer - + List of available esp/esm files Liste des fichiers ESP/ESM disponibles - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1416,12 +1508,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Cette liste contient tous les ESPs et ESMs contenus dans les mods actifs. Ceux-ci requièrent leur propre ordre de chargement. Utilisez le glisser-déposer pour modifier cet ordre. Veuillez noter que MO enregistre l'ordre de chargement seulement pour les mods actif/cochés.<br />Il y a un excellent outil nommé &quot;BOSS&quot; qui classe automatiquement ces fichiers.</span></p></body></html> - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1429,66 +1521,71 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File Fichier - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data DATA - + + Sort + + + + refresh data-directory overview Actualiser la vue d'ensemble du dossier DATA - + Refresh the overview. This may take a moment. Actualiser la vue d'ensemble. Ceci peut demander un moment. - - - + + + Refresh Actualiser - + This is an overview of your data directory as visible to the game (and tools). Ceci est une vue d'ensemble du dossier DATA tel qu'il apparaît pour le jeu (et les outils). - - + + Filter the above list so that only conflicts are displayed. Filtrer la liste ci-dessus pour afficher seulement les conflits. - + Show only conflicts Afficher seulement les conflits - + Saves Sauvegardes - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1505,160 +1602,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Si vous cliquez &quot;Réparer Mods...&quot; dans le menu contextuel, MO tentera d'activer tous les mods, ESPs et ESMs nécessaires pour résoudre le problème. Rien ne sera désactivé!</span></p></body></html> - + Downloads Téléchargements - + This is a list of mods you downloaded from Nexus. Double click one to install it. Ceci est une liste de mods que vous avez téléchargé de Nexus. Double-cliquez en un pour l'installer. - + Compact - + Show Hidden - + Tool Bar Barre d'outils - + Install Mod Installer mod - + Install &Mod Installer &mod - + Install a new mod from an archive Installer un nouveau mod à partir d'une archive - + Ctrl+M Ctrl+M - + Profiles Profils - + &Profiles &Profils - + Configure Profiles Configurer les profils - + Ctrl+P Ctrl+P - + Executables Programmes - + &Executables Programm&es - + Configure the executables that can be started through Mod Organizer Configure les programmes pouvant être lancés via Mod Organizer - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+H - + Settings Réglages - + &Settings Réglage&s - + Configure settings and workarounds Configurer les réglages et solutions de rechange - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods Effectuer une recherche sur Nexus pour plus de mods - + Ctrl+N Ctrl+N - - + + Update - + Mod Organizer is up-to-date Mod Organizer est à jour - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1666,496 +1763,497 @@ Right now this has very limited functionality - - + + Help Aide - + Ctrl+H Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 impossible d'enregistrer l'ordre de chargement: %1 - + failed to save archives order, do you have write access to "%1"? - + + About + + + + + About Qt + + + + Name Nom - + Please enter a name for the new profile Veuillez inscrire un nom pour le nouveau profil - + failed to create profile: %1 impossible de créer le profil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Téléchargements en cours - + There are still downloads in progress, do you really want to quit? Il encore des téléchargements en cours, voulez-vous vraiment quitter? - + failed to read savegame: %1 impossible de lire la sauvegarde: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting Attente - + Please press OK once you're logged into steam. Veuillez cliquer OK une fois connecté à steam. - "%1" not found - "%1" introuvable + "%1" introuvable - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Aucun conflit - + <Edit...> <Modifier...> - - Failed to refresh list of esps: %s - - - - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Installation réussie - - + + Configure Mod Configurer mod - - + + This mod contains ini tweaks. Do you want to configure them now? Ce mod contient des ajustement pour les fichiers ini. Désirez-vous les configurer maintenant? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Choisir mod - + Mod Archive Archive de mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Téléchargement commencé - + failed to update mod list: %1 impossible de mettre à jour la liste de mods: %1 - + failed to spawn notepad.exe: %1 impossible de lancer notepad.exe: %1 - + failed to open %1 impossible d'ouvrir %1 - + failed to change origin name: %1 impossible de changer le nom d'origine: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Tous> - + <Checked> <Cochés> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - Failed to move "%1" from mod "%2" to "%3": %4 - - - - + <Unchecked> <Décochés> - + <Update> <Rafraichir> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 impossible de renommer le mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + + Confirm Confirmer - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 Échec de lecture %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2168,92 +2266,92 @@ This function will guess the versioning scheme under the assumption that the ins Choisir priorité - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Installer mod... - + Enable all visible Activer tous les mods visibles - + Disable all visible Désactiver tous les mods visibles - + Check all for update Vérifier toutes les mises à jour - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... @@ -2262,312 +2360,362 @@ This function will guess the versioning scheme under the assumption that the ins Assigner catégorie - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Renommer mod... - + Remove Mod... Supprimer mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + + Really delete "%1"? + + + + Fix Mods... Réparer mods... - - + + Delete + + + + + failed to remove %1 Impossible de supprimer %1 - - + + failed to create %1 impossible de créer %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 impossible d'écrire dans le fichier %1 - + %1 written %1 écrit - + Select binary - + Binary Programme - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + + file not found: %1 + fichier introuvable: %1 + + + + failed to generate preview for %1 + + + + + Sorry, can't preview anything. This function currently does not support extracting from bsas. + + + + Update available Mise à jour disponible - + Open/Execute - + Add as Executable - + + Preview + + + + Un-Hide - + Hide - + Write To File... Écriture du fichier... - + Do you want to endorse Mod Organizer on %1 now? - + Remove Supprimer - + Unlock load order - + Lock load order - + + BOSS working + + + + + failed to run boss: %1 + + + + Request to Nexus failed: %1 - + + Executable "%1" not found + + + + + Failed to refresh list of esps: %1 + + + + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Erreur - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2610,58 +2758,58 @@ Please enter a name: Info sur le mod - + Textfiles Fichiers texte - + A list of text-files in the mod directory. Une liste des fichiers texte de ce mod. - + A list of text-files in the mod directory like readmes. Une liste des fichiers texte de ce mod, comme les lisez-moi. - + INI-Files Fichiers INI - + This is a list of .ini files in the mod. Ceci est une liste des fichiers .ini présents dans le mod. - + This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. Ceci est une liste des fichiers .ini présents dans le mod. Ils sont généralement utilisés pour configurer le comportement du mod lorsqu'il y a des paramètres configurables. - + Save changes to the file. Enregistre les changements au fichier. - + Save changes to the file. This overwrites the original. There is no automatic backup! Enregistrer les changements au fichier. Ceci écrase l'original. Il n'y a pas de copie de sauvegarde automatique! - - + + Save Enregistrer - + Images Images - + Images located in the mod. Images présentes dans le mod. @@ -2678,13 +2826,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ceci est la liste de toutes les images (.jpg et .png) présentes dans le dossier du mod, telles captures d'écran et autres. Cliquez-en une pour une vue aggrandie.</span></p></body></html> - - + + Optional ESPs ESPs optionnels - + List of esps and esms that can not be loaded by the game. Liste des esps et esms ne pouvant pas être chargés par le jeu. @@ -2707,12 +2855,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">La plupart des mods ne contenant pas d'esps optionnels, il est très probable que cette liste soit vide.</span></p></body></html> - + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2720,103 +2868,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. Rendre le mod sélectionné dans la liste du bas non-disponible. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. L'ESP sélectionné (dans la liste inférieure) sera poussé dans un sous-dossier du mod et deviendra ainsi "invisible" pour le jeu. Il ne pourra alors plus être activé. - + Move a file to the data directory. Déplacer un fichier vers le dossier DATA. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Ceci déplace un ESP vers le répertoire DATA afin qu'il puisse être activé dans la fenêtre principale. Veuillez noter que l'ESP devient simplement "disponible", il ne sera pas nécessairement chargé. Celà doit être configuré dans la fenêtre principale de MO. - + ESPs in the data directory and thus visible to the game. ESPs dans le dossier DATA et donc visibles par le jeu. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Ce sont les mods qui se trouvent dans le répertoire DATA (virtuel) de votre jeu et qu'il sera donc possible de sélectionner dans la fenêtre principale. - + Available ESPs ESPs disponibles - + Conflicts - + The following conflicted files are provided by this mod - - + + File Fichier - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Catégories - + Primary Category - + Nexus Info Info de Nexus - + Mod ID ID du mod - + Mod ID for this mod on Nexus. ID de ce mod sur Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2834,7 +2982,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ID de ce mod sur Nexus. Rempli automatiquement si vous téléchargez et installez un mod à partir de MO. Sinon, vous pouvez l'inscrire manuellement. Pour connaître le bon ID, trouvez le mod sur Nexus. L'URL ressemblera à ceci: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" color:#000000;">. Dans cet example, 1334 est l'ID que vous cherchez. En passant: Ce lien est celui de Mod Organizer sur le Nexus. Pourquoi ne pas le visiter et lui donner votre aval?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2847,32 +2995,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Version du mod installée La bulle contient la version courrante disponible sur Nexus. La version installé n'est réglée que si vous installez le mod avec MO.</span></p></body></html> - + Version Version - + Refresh Actualiser - + Refresh all information from Nexus. - + Description Description - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -2892,7 +3040,7 @@ p, li { white-space: pre-wrap; } Type - + Name Nom @@ -2901,12 +3049,12 @@ p, li { white-space: pre-wrap; } Taille (kB) - + Endorse - + Notes @@ -2919,17 +3067,17 @@ p, li { white-space: pre-wrap; } Avez-vous donné votre aval à ce mod? - + Filetree Arborescence - + A directory view of this mod Une vue du dossier de ce mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2944,70 +3092,70 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Les changements sont immédiatement appliqués sur le disque, alors</span><span style=" font-size:8pt; font-weight:600;"> soyez prudent</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous - + Next - + Close Fermer - + &Delete Again, english accelerator not applicable. French would use S&upprimer for this one. Supprimer - + &Rename &Renommer - + &Open &Ouvrir - + &New Folder &Nouveau dossier - - + + Save changes? Enregistrer les changements? - + File Exists Un fichier du même nom existe - + A file with that name exists, please enter a new one Un fichier ainsi nommé existe déjà, veuillez entrer un nouveau nom - + failed to move file impossible de déplacer le fchier - + failed to create directory "optional" Impossible de créer le dossier "optional" - - + + Info requested, please wait Info demandée, veuillez patienter @@ -3017,133 +3165,133 @@ p, li { white-space: pre-wrap; } (description incomplète, veuillez vérifier sur Nexus) - + Current Version: %1 Version courante: %1 - + No update available Aucune mise-à-jour disponible - + Main Principal - + &Hide - + &Unhide - - + + Save changes to "%1"? - + Update Mise-à-jour - + Optional Optionnel - + Old Ancien - + Misc Divers - + Unknown Inconnu - + (description incomplete, please visit nexus) - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - - + + failed to rename %1 to %2 - + There already is a visible version of this file. Replace it? - + Un-Hide - + Hide - + Please enter a name - - + + Error Erreur - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak @@ -3152,13 +3300,13 @@ p, li { white-space: pre-wrap; } la requête à échouée - + <a href="%1">Visit on Nexus</a> <a href="%1">Visiter sur Nexus</a> - - + + Confirm Confirmer @@ -3171,28 +3319,28 @@ p, li { white-space: pre-wrap; } Téléchargement commencé - + Failed to delete %1 impossible d'effacer %1 - + Are sure you want to delete "%1"? Voulez-vous vraiment supprimer "%1"? - + Are sure you want to delete the selected files? Voulez-vous vraiment supprimer les fichiers sélectionnés? - - + + New Folder Nouveau dossier - + Failed to create "%1" Impossible de créer "%1" @@ -3239,8 +3387,9 @@ p, li { white-space: pre-wrap; } - installed version: %1, newest version: %2 - Version installée: %1, dernière version: %2 + installed version: "%1", newest version: "%2" + installed version: %1, newest version: %2 + Version installée: %1, dernière version: %2 %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory @@ -3511,17 +3660,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response - + invalid response @@ -4242,85 +4391,89 @@ p, li { white-space: pre-wrap; } PluginList - + Mod Index - - + + Flags + + + + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP introuvable: %1 - + Confirm Confirmer - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - - failed to open output file: %1 + + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - - Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. + + BOSS dll incompatible - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4333,17 +4486,17 @@ p, li { white-space: pre-wrap; } max - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name Nom @@ -4352,7 +4505,7 @@ p, li { white-space: pre-wrap; } Les noms de vos mods - + Priority Priorité @@ -4369,6 +4522,19 @@ p, li { white-space: pre-wrap; } Cet index détermine l'ID des items, sorts, ... introduits par le mod. Leur ID sera "xxyyyyyy", où "xx" est cet index et "yyyyyy" est déterminé par le mod lui-même. + + PreviewDialog + + + Preview + + + + + Close + Fermer + + ProblemsDialog @@ -4414,82 +4580,72 @@ p, li { white-space: pre-wrap; } impossible d'appliquer les ajustements aux fichiers ini - + invalid profile name %1 - + failed to create %1 impossible de créer %1 - - failed to open temporary file - - - - - failed to open "%1" for writing - - - - + failed to write mod list: %1 - + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 priorité invalide %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) - - - - - + + + + + invalid index %1 index invalide %1 @@ -4866,12 +5022,12 @@ p, li { white-space: pre-wrap; } Impossible de mettre en place le chargement via DLL par procuration - + "%1" is missing "%1" manquant - + Permissions required Permissions requises @@ -4880,50 +5036,50 @@ p, li { white-space: pre-wrap; } Le compte d'usager actuel n'a pas les accès requis pour lancer Mod Organizer. Les changements nécessaires peuvent être effectués automatiquement (le dossier de MO sera rendu inscriptible pour le compte d'usager actuel). Vous devrez accepter que "mo_helper.exe" soit lancé avec les permissions administrateur. - - + + Woops - + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Une copie du Mod Organizer tourne déjà - + No game identified in "%1". The directory is required to contain the game binary and its launcher. - - + + Please select the game to manage Veuillez choisir le jeu à gérer - + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) @@ -4932,39 +5088,39 @@ p, li { white-space: pre-wrap; } "%1" introuvable - + Please use "Help" from the toolbar to get usage instructions to all elements Veuillez utiliser l'aide dans la barre d'outil pour obtenir des instructions à propos de tous les éléments - - + + <Manage...> <Gérer...> - + failed to parse profile %1: %2 impossible d'analyser le profil %1: %2 - - + + failed to find "%1" impossible de trouver "%1" - + failed to access %1 impossible d'accéder à %1 - + failed to set file time %1 impossible de changer la date du fichier %1 - + failed to create %1 impossible de créer %1 @@ -5003,12 +5159,12 @@ p, li { white-space: pre-wrap; } Français - + Script Extender Extenseur de script - + Proxy DLL DLL par procuration @@ -5033,22 +5189,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + failed to spawn "%1": %2 impossible de lancer "%1": %2 - + "%1" doesn't exist "%1" inexistant - + failed to inject dll into "%1": %2 impossible d'injecter le DLL dans "%1": %2 - + failed to run "%1" impossible de lancer "%1" @@ -5107,6 +5263,11 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe invalid game type %1 + + + failed to open temporary file + + QueryOverwriteDialog @@ -5342,18 +5503,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Les droits administrateur sont requis pour changer ceci. - - + + attempt to store setting for unknown plugin "%1" - + Confirm Confirmer - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -5506,52 +5667,57 @@ p, li { white-space: pre-wrap; } Configurer les catégories de mod - + Disable automatic internet features - + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - + Offline Mode - + Use a proxy for network connections. - + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - + Use HTTP Proxy (Uses System Settings) - - Known Servers (Dynamically updated every download) + + Associate with "Download with manager" links + + + + + Known Servers (updated on download) - + Preferred Servers (Drag & Drop) - + Blacklisted Plugins (use <del> to remove): - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5596,12 +5762,12 @@ p, li { white-space: pre-wrap; } Connexion automatique à Nexus - + Username Nom d'usager - + Password Mot de passe @@ -5610,52 +5776,52 @@ p, li { white-space: pre-wrap; } Gérer les liens NXM - + Plugins - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds Solutions alternatives - + Steam App ID ID d'application Steam - + The Steam AppID for your game L'AppID Steam de votre jeu - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -5682,12 +5848,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 est l'App ID que vous cherchez.</span></p></body></html> - + Load Mechanism Chargement MO - + Select loading mechanism. See help for details. Choisir la méthode de chargement. Voir l'aide pour les détails. @@ -5712,17 +5878,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">DLL par procuration</span><span style=" font-size:8pt;"> Dans ce mode, MO remplace l'un des DLL du jeu par une version qui charge MO (ainsi que le DLL orginal, bien sur). Ceci fonctionnera SEULEMENT avec les jeux STEAM et n'a été testé qu'avec Skyrim. N'utilisez cette méthode que si les autres ne fonctionnent pas.</span></p></body></html> - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -5731,53 +5897,53 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + Enforces that inactive ESPs and ESMs are never loaded. Garantie que les ESPs et ESMs inactifs ne soient jamais chargés. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. Il semble que les jeux chargent parfois des fichiers ESP ou ESM même s'ils ne sont pas activés. Je n'en connais pas encore les circonstances, mais les rapports des usagers impliquent que dans certains cas, ce comportement est indésirable. Si vous cochez ceci, les ESPs et ESMs qui ne sotn pas cochés seront invisible pour le jeu et ne pourront pas être chargés. - + Hide inactive ESPs/ESMs Cacher les ESPs et ESMs inactifs - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Pour Skyrim, ceci peut être utilisé au lieu de l'invalidation des archives. Ça devrait rendre l'invalidation redondante pour tous les profils. Pour les autres jeux, ceci ne suffit pas à remplacer l'invalidation des archives! - + Back-date BSAs Antidater les BSAs - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -5786,27 +5952,27 @@ Pour les autres jeux, ceci ne suffit pas à remplacer l'invalidation des ar Ici se trouvent des solutions alternatives à certains problèmes rencontrés avec Mod Organizer. Elles ne sont normalement pas nécessaires. Soyez sûr d'avoir lu le texte d'aide avant de modifier quoi que ce soit sur cette page. - + Select download directory - + Select mod directory - + Select cache directory - + Confirm? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? diff --git a/src/organizer_ru.ts b/src/organizer_ru.ts index b94688b0..2a75ce82 100644 --- a/src/organizer_ru.ts +++ b/src/organizer_ru.ts @@ -1,6 +1,50 @@ + + AboutDialog + + + + About + + + + + Revision: + + + + + Used Software + + + + + Credits + + + + + Translators + + + + + Others + + + + + Close + Закрыть + + + + No license + + + ActivateModsDialog @@ -235,25 +279,30 @@ p, li { white-space: pre-wrap; } DownloadList - + Name Ð˜Ð¼Ñ - + Filetime Дата модификации - + Done Выполнено - + Information missing, please select "Query Info" from the context menu to re-retrieve. Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует, пожалуйÑта, выберите пункт "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" из контекÑтного меню. + + + pending download + + DownloadListWidget @@ -306,131 +355,151 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - + + < mod %1 file %2 > + + + + + Pending + + + + Paused ПриоÑтановлено - + Fetching Info 1 Извлечение информации 1 - + Fetching Info 2 Извлечение информации 2 - + Installed УÑтановлено - + Uninstalled Удалено - + Done Готово - - - - + + + + Are you sure? Ð’Ñ‹ уверены? - + This will remove all finished downloads from this list and from disk. Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will remove all installed downloads from this list and from disk. Это удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will permanently remove all finished downloads from this list (but NOT from disk). Это полноÑтью удалит вÑе завершенные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + This will permanently remove all installed downloads from this list (but NOT from disk). Это полноÑтью удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + Install УÑтановка - + Query Info Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ - + Delete Удалить - + Un-Hide Показать - + Remove from View Скрыть от проÑмотра - + Cancel Отмена - + Pause Пауза - + Remove Удаление - + Resume Возобновить - + Delete Installed... Удалить уÑтановленное... - + Delete All... Удалить вÑе... - + Remove Installed... Отменить уÑтановку - + Remove All... Удалить вÑе DownloadListWidgetDelegate + + + < mod %1 file %2 > + + + + + Pending + + Fetching Info 1 @@ -442,95 +511,95 @@ p, li { white-space: pre-wrap; } Извлечение информации 2 - - - - + + + + Are you sure? Ð’Ñ‹ уверены? - + This will remove all finished downloads from this list and from disk. Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка и Ñ Ð´Ð¸Ñка. - + This will remove all installed downloads from this list and from disk. Это удалит вÑе уÑтановленные загрузки из Ñтого лиÑта и Ñ Ð´Ð¸Ñка. - + This will remove all finished downloads from this list (but NOT from disk). Это удалит вÑе готовые загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + This will remove all installed downloads from this list (but NOT from disk). Это удалит вÑе уÑтановленные загрузки из Ñтого ÑпиÑка (но ÐЕ Ñ Ð´Ð¸Ñка). - + Install УÑтановить - + Query Info Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ - + Delete Удалить - + Un-Hide Показать - + Remove from View Скрыть от проÑмотра - + Cancel Отмена - + Pause Пауза - + Remove Удалить - + Resume Возобновить - + Delete Installed... Удалить уÑтановленное... - + Delete All... Удалить вÑе... - + Remove Installed... Удалить уÑтановленные - + Remove All... Удалить вÑе @@ -543,111 +612,117 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ переименовать "%1" в "%2" - + Download again? Скачать Ñнова - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем загружен. Ð’Ñ‹ хотите загрузить его Ñнова? У него будет другое имÑ. - + failed to download %1: could not open output file: %2 не удалоÑÑŒ загрузить %1: не удалоÑÑŒ открыть выходной файл: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + + invalid index неверный Ð¸Ð½Ð´ÐµÐºÑ - + failed to delete %1 не удалоÑÑŒ удалить %1 - + failed to delete meta file for %1 не удалоÑÑŒ удалить мета-файл %1 - - - - - - + + + + + + invalid index %1 неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - + Please enter the nexus mod id ПожалуйÑта, введите ID мода на Nexus - + Mod ID: ID мода: - + Information updated Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð° - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Ðет ÑоответÑтвующих модов на Nexus! Возможно фал был удален или переименован? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Ðет ÑоответÑтвующих фалов на Nexus. Выберите файл вручную. - + No download server available. Please try again later. Сервер недоÑтупен. Попробуйте позже. - + Failed to request file info from nexus: %1 Ðе удалоÑÑŒ получить информацию о файле: %1 - + + Download failed. Server reported: %1 + + + + Download failed: %1 (%2) Загрузка не удалаÑÑŒ: %1 (%2) - + failed to re-open %1 не удалоÑÑŒ повторно открыть %1 @@ -759,7 +834,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + If checked, MO will be closed once the specified executable is run. ЕÑли активно, MO будет закрыт поÑле работы иÑполнÑемого файла. @@ -776,7 +851,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + Add Добавить @@ -792,47 +867,64 @@ Right now the only case I know of where this needs to be overwritten is for the Удалить - + + Close + Закрыть + + + Select a binary Указать двоичный - + Executable (%1) ИÑполнÑемые (%1) - + Java (32-bit) required ТребуетÑÑ Java (32-bit) - + MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. MO требует 32-bit java Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ñтого приложениÑ. ЕÑли он у Ð²Ð°Ñ ÑƒÐ¶Ðµ уÑтановлен, выберете javaw.exe Ð´Ð»Ñ Ñтой уÑтановки как иÑполнÑемый файл. - + Select a directory Укажите директорию - + Confirm Подтвердить - + Really remove "%1" from executables? ДейÑтвительно удалить "%1" иÑполнÑемых? - + Modify Изменить - + + + Save Changes? + + + + + + You made changes to the current executable, do you want to save them? + + + + MO must be kept running or this application will not work correctly. MO должна быть запущена или приложение не Ñможет работать правильно @@ -1116,7 +1208,7 @@ p, li { white-space: pre-wrap; } MO заблокирован, Ñ‚.к иÑполнÑемый файл запущен. - + Unlock Разблокировать @@ -1124,7 +1216,7 @@ p, li { white-space: pre-wrap; } LogBuffer - + failed to write log to %1: %2 не удалоÑÑŒ произвеÑти запиÑÑŒ в журнал %1: %2 @@ -1145,23 +1237,23 @@ p, li { white-space: pre-wrap; } MainWindow - - + + Categories Категории - + Profile Профиль - + Pick a module collection Выберете набор модулей - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1176,54 +1268,54 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Обратите внимание, что порÑдок загрузки esp одинаков Ð´Ð»Ñ Ð²Ñех профилей.</span></p></body></html> - + Refresh list Обновить ÑпиÑок - + Refresh list. This is usually not necessary unless you modified data outside the program. Обновить ÑпиÑок. Обычно в Ñтом нет необходимоÑти, пока вы не измените данные вне программы. - + List of available mods. СпиÑок доÑтупных модов. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. Это ÑпиÑок уÑтановленных модов. ИÑпользуйте флажки, Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ/Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð¾Ð² и перетаÑкивание модов, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ… порÑдка уÑтановки. - + Filter Фильтр - + No groups Без группировки - + Nexus IDs Nexus IDs - - - + + + Namefilter Фильтр по имени - + Pick a program to run. Выберете программу Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1238,12 +1330,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð’Ñ‹ можете добавить новые инÑтрументы в Ñтот ÑпиÑок, но работоÑпоÑобноÑть их вÑех не гарантированна.</span></p></body></html> - + Run program ЗапуÑтить программу - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1256,17 +1348,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЗапуÑтить выбранную программу Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ ModOrganizer.</span></p></body></html> - + Run ЗапуÑтить - + Create a shortcut in your start menu or on the desktop to the specified program Создать Ñрлык Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð¹ программы, в меню ПуÑк или на рабочем Ñтоле. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1279,17 +1371,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Создает Ñрлык в меню ПуÑк, который запуÑкает выбранную программу Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼ MO.</span></p></body></html> - + Shortcut Ярлык - + List of available esp/esm files СпиÑок доÑтупных esp/esm файлов - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1302,12 +1394,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Этот ÑпиÑок Ñодержит esp и esm файлы активных модов. Ð”Ð»Ñ Ð½Ð¸Ñ… требуетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ð¹ порÑдок загрузки. ИÑпользуйте перетаÑкивание Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñдка загрузки. Обратите внимание, что MO Ñохранит порÑдок загрузки только Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸/проверенных модов.<br />СущеÑтвует Ð·Ð°Ð¼ÐµÑ‡Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð°, называющаÑÑÑ &quot;BOSS&quot; , ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки Ñортирует Ñти файлы.</span></p></body></html> - + + Sort + + + + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. СпиÑок доÑтупных BSA. Они не отмечены здеÑÑŒ, не управлÑÑŽÑ‚ÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ MO и игнорируют порÑдок уÑтановки. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1318,18 +1415,18 @@ BSAs checked here are loaded in such a way that your installation order is obeye BSA, отмеченные здеÑÑŒ, загружаютÑÑ Ñ‚Ð°Ðº, чтобы порÑдок уÑтановки ÑоблюдалÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ‹Ð¼ образом. - - + + File Файл - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Мод @@ -1338,50 +1435,50 @@ BSA, отмеченные здеÑÑŒ, загружаютÑÑ Ñ‚Ð°Ðº, чтобы <html><head/><body><p>Помеченые архивы (<img src=":/MO/gui/resources/dialog-warning_16.png"/>) вÑе еще загружаютÑÑ Ð² Skyrim, но <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">применÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¹</span></a> механизм: Отдельные файлы перезапиÑывают BSAs, вне завиÑимоÑти от приоритета мода/плагина.</p></body></html> - + Data Данные - + refresh data-directory overview обновить обзор каталога Data - + Refresh the overview. This may take a moment. Обновление обзора. Это может занÑть некоторое времÑ. - - - + + + Refresh Обновить - + This is an overview of your data directory as visible to the game (and tools). Это обзор вашего каталога данных так, как он будет видим игре (и инÑтрументам). - - + + Filter the above list so that only conflicts are displayed. Отфильтровать вышеприведенный ÑпиÑок так, чтобы отображалиÑÑŒ только конфликты. - + Show only conflicts Показать только конфликты - + Saves Ð¡Ð¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1398,160 +1495,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ЕÑли вы выберете в контекÑтном меню пункт &quot;ИÑправить моды...&quot;, MO попытаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ вÑе моды и esp, чтобы иÑправить Ñти отÑутÑтвующие esp. Это ничего не отключит!</span></p></body></html> - + Downloads Загрузки - + This is a list of mods you downloaded from Nexus. Double click one to install it. СпиÑок модов, загруженных Ñ Nexus. Двойной клик Ð´Ð»Ñ ÑƒÑтановки. - + Compact Упаковать - + Show Hidden - + Tool Bar Панель инÑтрументов - + Install Mod УÑтановить мод - + Install &Mod УÑтановить &мод - + Install a new mod from an archive УÑтановить новый мод из архива - + Ctrl+M Ctrl+M - + Profiles Профили - + &Profiles &Профили - + Configure Profiles ÐаÑтройка профилей - + Ctrl+P Ctrl+P - + Executables Программы - + &Executables &Программы - + Configure the executables that can be started through Mod Organizer ÐаÑтройка программ, которые могут быть запущены через Mod Organizer - + Ctrl+E Ctrl+E - - + + Tools ИнÑтрументы - + &Tools &ИнÑтрументы - + Ctrl+I Ctrl+I - + Settings ÐаÑтройки - + &Settings &ÐаÑтройки - + Configure settings and workarounds ÐаÑтройка параметров и ÑпоÑобов обхода - + Ctrl+S Ctrl+S - + Nexus Nexus - + Search nexus network for more mods ПоиÑк дополнительных модов на Nexus - + Ctrl+N Ctrl+N - - + + Update Обновление - + Mod Organizer is up-to-date Mod Organizer обновлен - - + + No Problems Проблем не обнаружено - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1562,256 +1659,260 @@ Right now this has very limited functionality ПрÑмо ÑÐµÐ¹Ñ‡Ð°Ñ Ñтот функционал Ñильно ограничен - - + + Help Справка - + Ctrl+H Ctrl+H - + Endorse MO Одобрить MO - - + + Endorse Mod Organizer Одобрить Mod Organizer - + Toolbar Панель инÑтрументов - + Desktop Рабочий Ñтол - + Start Menu Меню ПуÑк - + Problems Проблемы - + There are potential problems with your setup ЕÑть возможные проблемы Ñ Ð²Ð°ÑˆÐµÐ¹ уÑтановкой - + Everything seems to be in order КажетÑÑ Ð²ÑÑ‘ в порÑдке - + Help on UI Справка по интерфейÑу - + Documentation Wiki Wiki-Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ - + Report Issue Сообщить о проблеме - + Tutorials Уроки - + + About + + + + + About Qt + + + + failed to save archives order, do you have write access to "%1"? не удалоÑÑŒ Ñохранить порÑдок архивов, у Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ð´Ð¾Ñтуп на запиÑÑŒ к "%1"? - + failed to save load order: %1 не удалоÑÑŒ Ñохранить порÑдок загрузки: %1 - + Name Ð˜Ð¼Ñ - + Please enter a name for the new profile Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + failed to create profile: %1 не удалоÑÑŒ Ñоздать профиль: %1 - + Show tutorial? Показать урок? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. Ð’Ñ‹ запуÑтили Mod Organizer впервые. Ð’Ñ‹ хотите проÑмотреть уроки по оÑновным возможноÑÑ‚Ñм? Ð’ Ñлучае отказа вы вÑегда можете открыть уроки из меню "Помощь". - + Downloads in progress Загрузки в процеÑÑе - + There are still downloads in progress, do you really want to quit? Загрузки вÑÑ‘ ещё в процеÑÑе, вы правда хотите выйти? - + failed to read savegame: %1 не удалоÑÑŒ прочеÑть Ñохранение: %1 - + Plugin "%1" failed: %2 Плагин "%1" не удалоÑÑŒ: %2 - + Plugin "%1" failed Плагин "%1" не удалоÑÑŒ - + failed to init plugin %1: %2 не удалоÑÑŒ инициализировать плагин %1: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" Ðе удалоÑÑŒ запуÑтить "%1" - + Waiting Ожидание - + Please press OK once you're logged into steam. Ðажмите OK как только вы войдете в Steam. - "%1" not found - "%1" не найден + "%1" не найден - + Start Steam? ЗапуÑтить Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? ТребуетÑÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ñ‹Ð¹ Steam, Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ запуÑка игры. Должен ли MO попытатьÑÑ Ð·Ð°Ð¿ÑƒÑтить Steam ÑейчаÑ? - + Also in: <br> Также в: <br> - + No conflict Конфликтов нет - + <Edit...> <Правка...> - - Failed to refresh list of esps: %s - - - - + This bsa is enabled in the ini file so it may be required! Этот bsa подключен через ini, так что он может быть необходим! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Этот архив вÑе равно будет загружен, так как еÑть плагин Ñ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÐµÐ½Ð½Ñ‹Ð¼ названием, но его файлы не будут Ñледовать порÑдку уÑтановки! - + Activating Network Proxy Подключение Ñетевого прокÑи - - + + Installation successful УÑтановка завершена - - + + Configure Mod ÐаÑтройка мода - - + + This mod contains ini tweaks. Do you want to configure them now? Этот мод включает наÑтройки ini. Ð’Ñ‹ хотите наÑтроить их ÑейчаÑ? - - + + mod "%1" not found мод "%1" не найден - - + + Installation cancelled УÑтановка отменена - - + + The mod was not installed completely. Мод не был уÑтановлен полноÑтью. - + Some plugins could not be loaded Ðекоторые плагины не могут быть загружены @@ -1820,207 +1921,203 @@ Right now this has very limited functionality Следующие плагины не могут быть загружены. Причина может быть в отÑутÑтвующих завиÑимоÑÑ‚ÑÑ… (таких как python) или в уÑтаревшей верÑии:<ul> - + Too many esps and esms enabled - - + + Description missing - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + Choose Mod Выберете мод - + Mod Archive Ðрхив мода - + Start Tutorial? Ðачать обучение? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? Ð’Ñ‹ ÑобираетеÑÑŒ открыть обучение. По техничеÑким причинам будет невозможно доÑрочно закончить обучение. Продолжить? - - + + Download started Загрузка начата - + failed to update mod list: %1 не удалоÑÑŒ обновить ÑпиÑок модов: %1 - + failed to spawn notepad.exe: %1 не удалоÑÑŒ вызвать notepad.exe: %1 - + failed to open %1 не удалоÑÑŒ открыть %1 - + failed to change origin name: %1 не удалоÑÑŒ изменить оригинальное имÑ: %1 - - Failed to move "%1" from mod "%2" to "%3": %4 - - - - + <Checked> <Подключен> - + <Unchecked> <Отключен> - + <Update> <Обновлен> - + <No category> <Без категории> - + <Conflicted> <Конфликтует> - + <Not Endorsed> - + failed to rename mod: %1 не удалоÑÑŒ переименовать мод: %1 - + Overwrite? ПерезапиÑать? - + This will replace the existing mod "%1". Continue? Это заменит ÑущеÑтвующий мод "%1". Продолжить? - + failed to remove mod "%1" не удалоÑÑŒ удалить мод "%1" - - - + + + failed to rename "%1" to "%2" не удалоÑÑŒ переименовать "%1" в "%2" - + Multiple esps activated, please check that they don't conflict. Подключено неÑколько esp, выберете из них не конфликтующие. - - - + + + + Confirm Подтверждение - + Remove the following mods?<br><ul>%1</ul> Удалить Ñледующие моды?<br><ul>%1</ul> - + failed to remove mod: %1 не удалоÑÑŒ удалить мод: %1 - - + + Failed Ðеудача - + Installation file no longer exists УÑтановочный файл больше не ÑущеÑтвует - + Mods installed with old versions of MO can't be reinstalled in this way. Моды, уÑтановленные Ñ Ð¸Ñпользованием Ñтарых верÑий MO не могут быть переÑтановленны таким образом. - - + + You need to be logged in with Nexus to endorse Ð’Ñ‹ должны быть авторизированы на Nexus, чтобы одобрÑть. - - + + Extract BSA Извлечь BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Этот мод включает как минимум один BSA. Ð’Ñ‹ хотите раÑпаковать их? (Это удалит BSA поÑле завершениÑ. ЕÑли вы не знаете ничего о BSAs, проÑто откажитеÑÑŒ) - - - + + + failed to read %1: %2 не удалоÑÑŒ прочеÑть %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Ðрхив Ñодержит неверные хеши. Ðекоторые файлы могут быть иÑпорчены. - + Nexus ID for this Mod is unknown Nexus ID Ð´Ð»Ñ Ñтого мода неизвеÑтен - - + + Create Mod... Создать мод... @@ -2031,118 +2128,119 @@ Please enter a name: ПожалуйÑта, введите имÑ: - + A mod with this name already exists Мод Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? ДейÑтвительно подключить вÑе видимые моды? - + Really disable all visible mods? ДейÑтвительно отключить вÑе видимые моды? - + Choose what to export Выберете, что ÑкÑпортировать - + Everything Ð’ÑÑ‘ - + All installed mods are included in the list Ð’Ñе уÑтановленные моды, включенные в ÑпиÑок - + Active Mods Ðктивные моды - + Only active (checked) mods from your current profile are included Включены вÑе активные (подключенные) моды вашего текущего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + Visible Видимые - + All mods visible in the mod list are included Включены вÑе моды, видимые в ÑпиÑке модов - + export failed: %1 ÑкÑпорт не удалÑÑ: %1 - + Install Mod... УÑтановить мод... - + Enable all visible Включить вÑе видимые - + Disable all visible Отключить вÑе видимые - + Check all for update Проверить вÑе на Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ - + Export to csv... ЭкÑпорт в csv... - + Sync to Mods... Синхронизировать Ñ Ð¼Ð¾Ð´Ð°Ð¼Ð¸... - + Restore Backup ВоÑÑтановить из резервной копии - + Remove Backup... Удалить резервную копию... @@ -2151,325 +2249,375 @@ This function will guess the versioning scheme under the assumption that the ins Задать категорию - + + Executable "%1" not found + + + + + Failed to refresh list of esps: %1 + + + + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - + Primary Category ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Переименовать мод... - + Remove Mod... Удалить мод... - + Reinstall Mod ПереуÑтановить мод - + Un-Endorse Отменить одобрение - - + + Endorse Одобрить - + Won't endorse Ðе одобрÑть - + Endorsement state unknown Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтен - + Ignore missing data Игнорировать отÑутÑтвующие данные - + Visit on Nexus Перейти на Nexus - + Open in explorer Открыть в проводнике - + Information... ИнформациÑ... - - + + Exception: ИÑключение: - - + + Unknown exception ÐеизвеÑтное иÑключение - + <All> <Ð’Ñе> - + <Multiple> <ÐеÑколько> - + + Really delete "%1"? + + + + Fix Mods... ИÑправить моды... - - + + Delete + Удалить + + + + failed to remove %1 не удалоÑÑŒ удалить %1 - - + + failed to create %1 не удалоÑÑŒ Ñоздать %1 - + Can't change download directory while downloads are in progress! ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº, когда загрузки ещё не завершены! - + Download failed Загрузка не удалаÑÑŒ - + failed to write to file %1 ошибка запиÑи в файл %1 - + %1 written %1 запиÑан - + Select binary Выбрать иÑполнÑемый файл - + Binary ИÑполнÑемый файл - + Enter Name Введите Ð¸Ð¼Ñ - + Please enter a name for the executable Введите название Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ - + Not an executable Ðе ÑвлÑетÑÑ Ð¸ÑполнÑемым - + This is not a recognized executable. Это неверный иÑполнÑемый файл. - - + + Replace file? Заменить файл? - + There already is a hidden version of this file. Replace it? Уже ÑущеÑтвует ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла. Заменить? - - + + File operation failed ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ не удалаÑÑŒ - - + + Failed to remove "%1". Maybe you lack the required file permissions? Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? - + There already is a visible version of this file. Replace it? Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - + + file not found: %1 + + + + + failed to generate preview for %1 + + + + + Sorry, can't preview anything. This function currently does not support extracting from bsas. + + + + Update available ДоÑтупно обновление - + Open/Execute Открыть/Выполнить - + Add as Executable Добавить как иÑполнÑемый - + + Preview + + + + Un-Hide Показать - + Hide Скрыть - + Write To File... ЗапиÑать в файл... - + Do you want to endorse Mod Organizer on %1 now? Ð’Ñ‹ хотите одобрить Mod Organizer на %1 ÑейчаÑ? - + Request to Nexus failed: %1 Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Nexus не удалÑÑ: %1 - - + + login successful уÑпешный вход - + login failed: %1. Trying to download anyway вход не удалÑÑ: %1. ПытаюÑÑŒ загрузить вÑÑ‘ равно - + login failed: %1 войти не удалоÑÑŒ: %1 - + login failed: %1. You need to log-in with Nexus to update MO. войти не удалоÑÑŒ: %1. Вам нужно войти на Nexus, чтобы обновить MO. - + Error Ошибка - + failed to extract %1 (errorcode %2) не удалоÑÑŒ извлечь %1 (код ошибки %2) - + Extract... РаÑпаковка... - + Edit Categories... Изменить категории... - + Remove - + Enable all Включить вÑе - + Disable all Отключить вÑе - + Unlock load order Разблокировать порÑдок загрузки - + Lock load order Заблокировать порÑдок загрузки + + + BOSS working + + + + + failed to run boss: %1 + + MessageDialog @@ -2505,58 +2653,58 @@ Please enter a name: Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ моде - + Textfiles ТекÑтовые файлы - + A list of text-files in the mod directory. СпиÑок текÑтовых файлов в каталоге мода. - + A list of text-files in the mod directory like readmes. СпиÑок текÑтовых файлов в каталоге мода, таких как ридми. - - + + Save Сохранить - + INI-Files INI - файлы - + This is a list of .ini files in the mod. Это ÑпиÑок .ini-файлов мода. - + This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. Это ÑпиÑок INI - файлов мода. Они иÑпользуютÑÑ Ð´Ð»Ñ ÐºÐ¾Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð¾Ð², еÑли Ñто возможно. - + Save changes to the file. Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файле. - + Save changes to the file. This overwrites the original. There is no automatic backup! Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файле. Это перезапишет ранее Ñозданный. Перед перезапиÑью файла Ñделайте копию. - + Images Изображение - + Images located in the mod. Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð°. @@ -2573,13 +2721,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Это ÑпиÑок вÑех изображений (.jpg и .png) в каталоге мода, таких как Ñкриншоты и Ñ‚.п. Ðажмите на любое, Ð´Ð»Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ.</span></p></body></html> - - + + Optional ESPs Дополнительный ESP - + List of esps and esms that can not be loaded by the game. СпиÑок esp и esm, которые не могут быть загружены игрой. @@ -2602,12 +2750,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">БольшинÑтво модов не Ñодержат дополнительных esp, поÑтому вы можете увидеть пуÑтой ÑпиÑок</span></p></body></html> - + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2615,103 +2763,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. Сделать выбранный мод недоÑтупным. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. Выбранный ESP (в нижнем ÑпиÑке) будет перемещены в подкаталог мода и, таким образом, Ñтанут "невидимыми" Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. Затем они больше не будут активированы. - + Move a file to the data directory. ПеремеÑтить файл в каталог Data. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. Перемещает esp в каталог Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ esp так, что он может быть подключен в главном окне. Обратите внимание, что ESP проÑто ÑтановитÑÑ "доÑтупным", но не будет загружен! Это наÑтраиваетÑÑ Ð² главном окне MO. - + ESPs in the data directory and thus visible to the game. ESP в каталоге Data и виден Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. Это файлы модов которые находÑÑ‚ÑÑ Ð² (виртуальном)каталоге данных вашей игры и могут быть выбираемыми в ÑпиÑке esp, в главном окне. - + Available ESPs ДоÑтупные ESP - + Conflicts Конфликты - + The following conflicted files are provided by this mod Данные конфликты вызваны Ñтим модом. - - + + File Файл - + Overwritten Mods Моды перезапиÑаны - + The following conflicted files are provided by other mods Конфликтные файлы других модов. - + Providing Mod ОбеÑпечение мода - + Non-Conflicted files Ðе конфликтные файлы - + Categories Категории - + Primary Category ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Nexus Info Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Nexus. - + Mod ID ID мода - + Mod ID for this mod on Nexus. ID мода на Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2724,7 +2872,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">ID Ñтого мода на Nexus. ЗаполнÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, еÑли Ñкачали и уÑтановили мод из МО. Ð’ противном Ñлучае вы можете ввеÑти его вручную. Чтобы найти правильный ID, нужно найти мод на Nexus. URL будет выглÑдеть Ñледующим образом: </span><a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://skyrim.nexusmods.com/downloads/file.php?id=1334</span></a><a href="http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" font-size:8pt; color:#000000;">. Ð’ Ñтом примере, 1334 - ID, который вы ищете. Кроме того: Выше еÑть ÑÑылка на Mod Organizer на Nexus. Почему бы не перейти по ней и не одобрить?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2737,33 +2885,41 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¼Ð¾Ð´Ð°. ПодÑказка будет Ñодержать текущую верÑию, доÑтупную на Nexus. УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÑƒÑтановитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ еÑли вы уÑтановили мод через МО.</span></p></body></html> - + Version ВерÑÐ¸Ñ - + Refresh Обновить информацию - + Refresh all information from Nexus. Обновить вÑÑŽ информацию Ñ Nexus - + Description ОпиÑание - + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> @@ -2784,27 +2940,27 @@ p, li { white-space: pre-wrap; } <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - + Endorse Одобрить - + Notes ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ - + Filetree Файловое древо - + A directory view of this mod Каталог Ñтого мода - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2819,242 +2975,242 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸ÑходÑÑ‚ непоÑредÑтвенно на диÑке, так что</span><span style=" font-size:8pt; font-weight:600;"> будьте оÑторожныl</span><span style=" font-size:8pt;">.</span></p></body></html> - + Previous Предыдущий - + Next Вперед - + Close Закрыть - + &Delete &Удалить - + &Rename &Переименовать - + &Hide &Скрыть - + &Unhide &Показать - + &Open &Открыть - + &New Folder &ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - - + + Save changes? Сохранить изменениÑ? - - + + Save changes to "%1"? Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² "%1"? - + File Exists Файл уже ÑущеÑтвует - + A file with that name exists, please enter a new one Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует, укажите другое - + failed to move file не удалоÑÑŒ перемеÑтить файл - + failed to create directory "optional" не удалоÑÑŒ Ñоздать папку "optional" - - + + Info requested, please wait Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð°, пожалуйÑта, подождите - + Main Главное - + Update Обновление - + Optional Опционально - + Old Старые - + Misc Разное - + Unknown ÐеизвеÑтно - + Current Version: %1 Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ: %1 - + No update available Ðет доÑтупных обновлений - + (description incomplete, please visit nexus) (опиÑание не завершено, Ñмотрите на nexus) - + <a href="%1">Visit on Nexus</a> <a href="%1">Перейти на Nexus</a> - + Failed to delete %1 Ðе удалоÑÑŒ удалить %1 - - + + Confirm Подтверждение - + Are sure you want to delete "%1"? Ð’Ñ‹ уверены, что хотите удалить "%1"? - + Are sure you want to delete the selected files? Ð’Ñ‹ уверены, что хотите удалить выбранные файлы? - - + + New Folder ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° - + Failed to create "%1" Ðе удалоÑÑŒ Ñоздать "%1" - - + + Replace file? Заменить файл? - + There already is a hidden version of this file. Replace it? Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - - + + File operation failed Ðе удалаÑÑŒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ - - + + Failed to remove "%1". Maybe you lack the required file permissions? Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? - - + + failed to rename %1 to %2 не удалоÑÑŒ переименовать %1 в %2 - + There already is a visible version of this file. Replace it? Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - + Un-Hide Показать - + Hide Скрыть - + Name Ð˜Ð¼Ñ - + Please enter a name - - + + Error Ошибка - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak @@ -3142,8 +3298,9 @@ p, li { white-space: pre-wrap; } - installed version: %1, newest version: %2 - уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ: %1, Ð½Ð¾Ð²ÐµÐ¹ÑˆÐ°Ñ Ð²ÐµÑ€ÑиÑ: %2 + installed version: "%1", newest version: "%2" + installed version: %1, newest version: %2 + уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ: %1, Ð½Ð¾Ð²ÐµÐ¹ÑˆÐ°Ñ Ð²ÐµÑ€ÑиÑ: %2 @@ -3299,17 +3456,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one Ðе удалоÑÑŒ опознать id мода "%1", пожалуйÑта, выберете правильный - + empty response пуÑтой ответ - + invalid response неверный ответ @@ -3382,109 +3539,130 @@ p, li { white-space: pre-wrap; } PluginList - + Name Ð˜Ð¼Ñ - + Priority Приоритет - + Mod Index Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° - - + + Flags + Флаги + + + + unknown неизвеÑтно - + Name of your mods Имена ваших модов - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. Приоритет загрузки ваших модов. Моды Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ приоритетом перезапишут данные модов Ñ Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ приоритетом. - + The modindex determins the formids of objects originating from this mods. Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° определÑющий id форм объектов, проиÑходÑщих из Ñтих модов. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 esp не найден: %1 - + Confirm - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken Файл, Ñодержащий индекÑÑ‹ заблокированного плагина, не работает. - - failed to open output file: %1 - не удалоÑÑŒ открыть выходной файл: %1 + не удалоÑÑŒ открыть выходной файл: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. Ðекоторые из ваших плагинов имеют неверные имена. Эти плагины не могут быть загружены игрой. Смотрите mo_interface.log Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑпиÑка таких плагинов и переименуйте их. - + + BOSS dll incompatible + + + + This plugin can't be disabled (enforced by the game) Этот плагин не может быть отключен (грузитÑÑ Ð¸Ð³Ñ€Ð¾Ð¹ принудительно) - + Origin: %1 ИÑточник: %1 - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 не удалоÑÑŒ воÑÑтановить порÑдок загрузки Ð´Ð»Ñ %1 + + PreviewDialog + + + Preview + + + + + Close + Закрыть + + ProblemsDialog @@ -3534,82 +3712,76 @@ p, li { white-space: pre-wrap; } Profile - + invalid profile name %1 неверное Ð¸Ð¼Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ %1 - + failed to create %1 не удалоÑÑŒ Ñоздать %1 - - failed to open temporary file - - - - failed to open "%1" for writing - не удалоÑÑŒ открыть "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи + не удалоÑÑŒ открыть "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи - + failed to write mod list: %1 - + failed to update tweaked ini file, wrong settings may be used: %1 не удалоÑÑŒ обновить наÑтроенный ini-файл, вероÑтно иÑпользуютÑÑ Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ñ‹Ðµ наÑтройки: %1 - + failed to create tweaked ini: %1 не удалоÑÑŒ Ñоздать наÑтроенный ini: %1 - - - - - + + + + + invalid index %1 неверный Ð¸Ð½Ð´ÐµÐºÑ %1 - + Overwrite directory couldn't be parsed Замена каталога не может быть обработана - + invalid priority %1 неверный приоритет %1 - + failed to parse ini file (%1) не удалоÑÑŒ обработать ini файл (%1) - + failed to parse ini file (%1): %2 не удалоÑÑŒ обработать ini файл (%1): %2 - - + + failed to modify "%1" не удалоÑÑŒ изменить "%1" - + Delete savegames? Удалить ÑохранениÑ? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) Ð’Ñ‹ хотите удалить локальные ÑохранениÑ? (При отрицательном выборе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð·ÑÑ‚ÑÑ Ñнова, еÑли повторно включить локальные ÑохранениÑ) @@ -3997,7 +4169,7 @@ p, li { white-space: pre-wrap; } Ðе удалоÑÑŒ уÑтановить загрузку proxy-dll - + Permissions required ТребуютÑÑ Ð¿Ñ€Ð°Ð²Ð° доÑтупа @@ -4006,72 +4178,72 @@ p, li { white-space: pre-wrap; } Текущий аккаунт Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ имеет необходимых прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Mod Organizer. Ðеобходимые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть Ñделаны автоматичеÑки (каталог MO будет уÑтановлен запиÑываемым Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ аккаунта пользователÑ). Вам будет предложено запуÑтить "helper.exe" Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ админиÑтратора. - + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - - + + Woops Ð£Ð¿Ñ - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened Mod Organizer вышел из ÑтроÑ! Ðужно ли Ñоздать диагноÑтичеÑкий файл? ЕÑли вы вышлите файл (%1) по адреÑу sherb@gmx.net, ошибка Ñ Ð½Ð°Ð¼Ð½Ð¾Ð³Ð¾ большей вероÑтноÑтью будет иÑправлена. ПожалуйÑта, добавьте краткое опиÑание Ñвоих дейÑтвий, перед тем, как произошла ошибка - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 ModOrganizer вышел из ÑтроÑ! К Ñожалению не удалоÑÑŒ запиÑать диагноÑтичеÑкий файл: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Другой ÑкземплÑÑ€ Mod Organizer уже запущен - + No game identified in "%1". The directory is required to contain the game binary and its launcher. Игра не обнаружена в "%1". ТребуетÑÑ, чтобы папка Ñодержала иÑполнÑемые файлы игры. - - + + Please select the game to manage Выберете игру Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ - + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) - + Please use "Help" from the toolbar to get usage instructions to all elements ИÑпользуйте пункт "Справка" на панели инÑтрументов, чтобы получить инÑтрукции по иÑпользованию вÑех Ñлементов. - - + + <Manage...> <УправлÑть...> - + failed to parse profile %1: %2 не удалоÑÑŒ обработать профиль %1: %2 - - + + failed to find "%1" не удалоÑÑŒ найти "%1" @@ -4080,22 +4252,22 @@ p, li { white-space: pre-wrap; } ошибка кодированиÑ, пожалуйÑта Ñообщите об Ñтом баге, включив файл mo_interface.log! - + failed to access %1 не удалоÑÑŒ получить доÑтуп к %1 - + failed to set file time %1 не удалоÑÑŒ изменить дату модификации Ð´Ð»Ñ %1 - + failed to create %1 не удалоÑÑŒ Ñоздать %1 - + "%1" is missing "%1" отÑутÑтвует @@ -4123,12 +4295,12 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ открыть %1 - + Script Extender Script Extender - + Proxy DLL Proxy DLL @@ -4158,25 +4330,30 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe ЗапуÑтить Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ правами в любом Ñлучае? (будет выведен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾ разрешении ModOrganizer.exe Ñделать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑиÑтеме) - + failed to spawn "%1": %2 не удалоÑÑŒ вызвать "%1": %2 - + "%1" doesn't exist "%1" не ÑущеÑтвует - + failed to inject dll into "%1": %2 не удалоÑÑŒ подключить dll к "%1": %2 - + failed to run "%1" не удалоÑÑŒ запуÑтить "%1" + + + failed to open temporary file + + QueryOverwriteDialog @@ -4407,18 +4584,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð½Ð°Ñтройка "%1" запрошена Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð° "%2" - - + + attempt to store setting for unknown plugin "%1" - + Confirm Подтверждение - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? Изменение каталога Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¾Ð² отразитÑÑ Ð½Ð° вÑех ваших профилÑÑ…. ÐÐµÐ»ÑŒÐ·Ñ Ð±ÑƒÐ´ÐµÑ‚ отменить Ñто, еÑли только вы не Ñохранили резервные копии ваших профилей вручную. Продолжить? @@ -4602,107 +4779,116 @@ p, li { white-space: pre-wrap; } ÐвтоматичеÑкий вход на Nexus - + Username Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ - + Password Пароль - + Disable automatic internet features Отключить автоматичеÑкие возможноÑти интернет - + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) Отключает автоматичеÑкие возможноÑти интернет. Это не подейÑтвует на функции, которые Ñвно вызваны пользователем (проверка модов на обновлениÑ, одобрение, открытие в браузере) - + Offline Mode Ðвтономный режим - + Use a proxy for network connections. ИÑпользовать прокÑи Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñетью - + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. ИÑпользовать прокÑи Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñетью. ИÑпользуютÑÑ ÑиÑтемные параметры, наÑтраиваемые в Internet Explorer. Обратите внимание, что MO запуÑтитÑÑ Ð½Ð° неÑколько Ñекунд медленнее на некоторых ÑиÑтемах, когда иÑпользуетÑÑ Ð¿Ñ€Ð¾ÐºÑи. - + Use HTTP Proxy (Uses System Settings) ИÑпользовать HTTP Proxy (ИÑпользуютÑÑ ÑиÑтемные наÑтройки) - + + Associate with "Download with manager" links + + + + + Known Servers (updated on download) + + + Known Servers (Dynamically updated every download) - ИзвеÑтные Ñерверы (ДинамичеÑки обновлÑетÑÑ Ð¿Ñ€Ð¸ каждой загрузке) + ИзвеÑтные Ñерверы (ДинамичеÑки обновлÑетÑÑ Ð¿Ñ€Ð¸ каждой загрузке) - + Preferred Servers (Drag & Drop) Предпочитаемые Ñерверы (ИÑпользуйте перетаÑкивание) - + Plugins Плагины - + Author: Ðвтор: - + Version: ВерÑиÑ: - + Description: ОпиÑание: - + Key Клавиша - + Value Значение - + Blacklisted Plugins (use <del> to remove): - + Workarounds СпоÑобы обхода - + Steam App ID ID Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Steam - + The Steam AppID for your game ID в Steam Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ игры - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -4729,17 +4915,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">22380 Ñто и еÑть id, который вам нужен.</span></p></body></html> - + Load Mechanism Механизм загрузки - + Select loading mechanism. See help for details. Выберете механизм загрузки. Смотрите Ñправку Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾Ñтей. - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -4756,17 +4942,17 @@ If you use the Steam version of Oblivion the default will NOT work. In this case ЕÑли вы иÑпользуете Steam-верÑию Oblivion , ÑпоÑоб по умолчанию не работает. Ð’ Ñтом Ñлучае уÑтановите obse и иÑпользуйте "Script Extender" как механизм загрузки. Также поÑле Ñтого вы не Ñможете запуÑтить Oblivion из MO, вмеÑто Ñтого иÑпользуйте MO только Ð´Ð»Ñ Ð½Ð°Ñтройки модов и запуÑкайте игру через Steam. - + NMM Version ВерÑÐ¸Ñ NMM - + The Version of Nexus Mod Manager to impersonate. ВерÑÐ¸Ñ Nexus Mod Manager Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑтавлениÑ. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -4779,79 +4965,79 @@ tl;dr-version: If Nexus-features don't work, insert the current version num tl;dr-верÑиÑ: ЕÑли возможноÑти Nexus не работают, вÑтавьте здеÑÑŒ текущую верÑию NMM и повторите попытку. - + Enforces that inactive ESPs and ESMs are never loaded. ОбеÑпечивает то, что неактивные ESP и ESM не будут загружены. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. КажетÑÑ, что иногда игры загружают ESP и ESM файлы, даже еÑли они не были не подключены как плагины ОбÑтоÑтельÑтва Ñтого пока не извеÑтны, но отчеты пользователей подразумевают, что Ñто в Ñ€Ñде Ñлучаев нежелательно. ЕÑли Ñтот флажок отмечен, не отмеченные в ÑпиÑке ESP и ESM не будут видимы в ÑпиÑке и не будут загружены. - + Hide inactive ESPs/ESMs Скрыть неактивные ESPs/ESMs - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) ЕÑли отмечено, файлы (Ñ‚.е. esp, esm и bsa) принадлежащие оÑновной игре не Ñмогут быть отключены из интерфейÑа. (по умолчанию: вкл) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. ЕÑли отмечено, файлы (Ñ‚.е. esp, esm и bsa) принадлежащие оÑновной игре не Ñмогут быть отключены из интерфейÑа. (по умолчанию: вкл) Снимите флажок, еÑли вы ÑобираетеÑÑŒ иÑпользовать Mod Organizer Ñ Ñ‚Ð¾Ñ‚Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ конверÑиÑми (как Nehrim) , но будьте оÑторожны, игра может вылететь, еÑли требуемые файлы будут отключены. - + Force-enable game files Принудительно подключить файлы игры - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! Ð”Ð»Ñ Ð¡ÐºÐ°Ð¹Ñ€Ð¸Ð¼ Ñто может быть иÑпользовано вмеÑто инвалидации. Это должно Ñделать AI избыточным Ð´Ð»Ñ Ð²Ñех профилей. Ð”Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… игр недоÑтаточно замены Ð´Ð»Ñ AI! - + Back-date BSAs Back-date BSAs - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. Это ÑпоÑобы обхода проблем Ñ Mod Organizer. УбедитеÑÑŒ, что вы прочли Ñправку, перед тем, как делать какие-либо Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð´ÐµÑÑŒ. - + Select download directory Выберете каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº - + Select mod directory Выберете каталог Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¾Ð² - + Select cache directory Выберете каталог Ð´Ð»Ñ ÐºÐµÑˆÐ° - + Confirm? Подтвердить? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? Это позволить Ñнова отобразить вÑе диалоги, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… вы ранее выбрали флажок "Запомнить выбор". diff --git a/src/organizer_tr.ts b/src/organizer_tr.ts index 5d21e51e..58d30d00 100644 --- a/src/organizer_tr.ts +++ b/src/organizer_tr.ts @@ -1,6 +1,50 @@ + + AboutDialog + + + + About + + + + + Revision: + + + + + Used Software + + + + + Credits + + + + + Translators + + + + + Others + + + + + Close + Kapat + + + + No license + + + ActivateModsDialog @@ -240,26 +284,31 @@ p, li { white-space: pre-wrap; } DownloadList - + Name İsim - + Filetime Direct translation. What does this mean actually? Dosyazamanı - + Done Bitti - + Information missing, please select "Query Info" from the context menu to re-retrieve. Bilgi eksik, lütfen menüden "Bilgi sorgula" yı seçiniz + + + pending download + + DownloadListWidget @@ -312,125 +361,135 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - + Installed Yüklendi - + Uninstalled - + Done Bitti - - - - + + + + Are you sure? Emin misiniz? - + This will remove all finished downloads from this list and from disk. Bu, tüm bitmiÅŸ indirilenleri listeden ve diskten kaldıracaktır. - + This will remove all installed downloads from this list and from disk. Bu, tüm yüklenmiÅŸ indirilenleri listeden ve diskten kaldıracaktır. - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Install Yükle - + Query Info Sorgu Bilgisi - + Delete - + Un-Hide - + Remove from View - + Remove Kaldır - + Cancel İptal et - + + < mod %1 file %2 > + + + + + Pending + + + + Paused - + Fetching Info 1 - + Fetching Info 2 - + Pause Duraklat - + Resume Devam et - + Delete Installed... - + Delete All... - + Remove Installed... YüklenmiÅŸleri kaldır... - + Remove All... Hepsini kaldır... @@ -438,68 +497,78 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? Emin misiniz? - + This will remove all finished downloads from this list and from disk. Bu, tüm bitmiÅŸ indirilenleri listeden ve diskten kaldıracaktır. - + This will remove all installed downloads from this list and from disk. Bu, tüm bitmiÅŸ yüklenmiÅŸ listeden ve diskten kaldıracaktır. - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install Yükle - + Query Info Bilgi sorgula - + Delete - + Un-Hide - + Remove from View - + Remove Kaldır - + Cancel İptal et + + + < mod %1 file %2 > + + + + + Pending + + Fetching Info 1 @@ -511,32 +580,32 @@ p, li { white-space: pre-wrap; } - + Pause Duraklat - + Resume Devam et - + Delete Installed... - + Delete All... - + Remove Installed... YüklenmiÅŸleri kaldır - + Remove All... Hepsini kaldır... @@ -549,75 +618,76 @@ p, li { white-space: pre-wrap; } "%1"yi "%2" olarak yeniden adlandırma baÅŸarılı olamadı. - + Download again? Tekrar indir? - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. Aynı dosya isminde bir dosya zaten indirilmiÅŸ. Tekrar indirmek istiyor musunuz? Yeni dosya farklı bir isim alacak. - + failed to download %1: could not open output file: %2 %1 indirilemedi : : çıkış dosyası %2 açılamadı - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + + invalid index geçersiz dizin - + failed to delete %1 %1 silinemedi - + failed to delete meta file for %1 %1'in meta dosyası silinemedi - - - - - - + + + + + + invalid index %1 geçeriz dizin %1 - + Please enter the nexus mod id Lütfen nexus mod kimliÄŸini girin - + Mod ID: Mod kimliÄŸi: @@ -626,38 +696,43 @@ p, li { white-space: pre-wrap; } geçersiz alfabetik dizin %1 - + Information updated bilgi güncellendi - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? Nexus'ta uyan bir dosya bulunamadı! Dosya artık mevcut olmayabilir yada yeniden adlandırılmış olabilir! - + No file on Nexus matches the selected file by name. Please manually choose the correct one. Nexus'ta seçili dosyaya isim olarak uyan dosya bulunamadı. Lütfen el ile doÄŸru olanı seçin. - + No download server available. Please try again later. - + Failed to request file info from nexus: %1 Nexus'tan dosya bilgisi istenilemedi: %1 - + + Download failed. Server reported: %1 + + + + Download failed: %1 (%2) İndirme baÅŸarızı: %1 (%2) - + failed to re-open %1 %1 tekrar açılamadı @@ -770,7 +845,7 @@ Steam tarafından dağıtılan her oyun/aracın kendine has bir kimliÄŸi vardır - + If checked, MO will be closed once the specified executable is run. EÄŸer seçiliyse, belirlenmiÅŸ yürütülebilir çalıştırıldığında MO kapatılacaktır. @@ -787,7 +862,7 @@ Steam tarafından dağıtılan her oyun/aracın kendine has bir kimliÄŸi vardır - + Add Ekle @@ -803,47 +878,64 @@ Steam tarafından dağıtılan her oyun/aracın kendine has bir kimliÄŸi vardır Kaldır - + + Close + Kapat + + + Select a binary Bir ikili deÄŸer seç - + Executable (%1) Yürütülebilir (%1) - + Java (32-bit) required - + MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - + Select a directory Bir klasör seç - + Confirm Onayla - + Really remove "%1" from executables? "%1" gerçekten yürütülebilirlerden kaldırılsın mı? - + Modify DeÄŸiÅŸtir - + + + Save Changes? + + + + + + You made changes to the current executable, do you want to save them? + + + + MO must be kept running or this application will not work correctly. MO'nun çalışmaya devam etmesi gereklidir yoksa uygulama düzgün çalışmayacaktır @@ -1290,7 +1382,7 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! Yürütülebilir çalışırken MO kilitlidir. - + Unlock Kilit aç @@ -1298,7 +1390,7 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! LogBuffer - + failed to write log to %1: %2 %1: %2 ya kayıt yazılamadı @@ -1319,23 +1411,23 @@ Not: Bu yükleyici diÄŸer modlardan haberdar olmayacak! MainWindow - - + + Categories Kategoriler - + Profile - + Pick a module collection - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1345,54 +1437,54 @@ p, li { white-space: pre-wrap; } - + Refresh list - + Refresh list. This is usually not necessary unless you modified data outside the program. - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter - + No groups - + Nexus IDs Nexus kimliÄŸi - - - + + + Namefilter - + Pick a program to run. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1402,12 +1494,12 @@ p, li { white-space: pre-wrap; } - + Run program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1416,17 +1508,17 @@ p, li { white-space: pre-wrap; } - + Run - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1435,7 +1527,7 @@ p, li { white-space: pre-wrap; } - + Shortcut @@ -1444,12 +1536,12 @@ p, li { white-space: pre-wrap; } Kaydet - + List of available esp/esm files - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1458,12 +1550,12 @@ p, li { white-space: pre-wrap; } - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1471,66 +1563,71 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + File - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data - + + Sort + + + + refresh data-directory overview - + Refresh the overview. This may take a moment. - - - + + + Refresh - + This is an overview of your data directory as visible to the game (and tools). - - + + Filter the above list so that only conflicts are displayed. - + Show only conflicts - + Saves - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1541,160 +1638,160 @@ p, li { white-space: pre-wrap; } - + Downloads - + This is a list of mods you downloaded from Nexus. Double click one to install it. - + Compact - + Show Hidden - + Tool Bar - + Install Mod - + Install &Mod - + Install a new mod from an archive - + Ctrl+M - + Profiles - + &Profiles - + Configure Profiles - + Ctrl+P - + Executables - + &Executables - + Configure the executables that can be started through Mod Organizer - + Ctrl+E - - + + Tools - + &Tools - + Ctrl+I - + Settings - + &Settings - + Configure settings and workarounds - + Ctrl+S - + Nexus - + Search nexus network for more mods - + Ctrl+N - - + + Update - + Mod Organizer is up-to-date - - + + No Problems - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1702,896 +1799,943 @@ Right now this has very limited functionality - - + + Help - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 - + failed to save archives order, do you have write access to "%1"? - + + About + + + + + About Qt + + + + Name İsim - + Please enter a name for the new profile - + failed to create profile: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress - + There are still downloads in progress, do you really want to quit? - + failed to read savegame: %1 - + Plugin "%1" failed: %2 - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - - "%1" not found - - - - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict - + <Edit...> - + + Failed to refresh list of esps: %1 + + + + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful - - + + Configure Mod - - + + This mod contains ini tweaks. Do you want to configure them now? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod - + Mod Archive - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started - + failed to update mod list: %1 - + failed to spawn notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + <All> - + <Checked> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - - Failed to refresh list of esps: %s - - - - + Too many esps and esms enabled - - + + Description missing - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - Failed to move "%1" from mod "%2" to "%3": %4 - - - - + <Unchecked> - + <Update> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" "%1"yi "%2" olarak yeniden adlandırma baÅŸarılı olamadı. - - - + + + + Confirm Onayla - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 %1: %2 okunamadı - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... - + Enable all visible - + Disable all visible - + Check all for update - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... - + Remove Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + + Really delete "%1"? + + + + Fix Mods... - - + + Delete + + + + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 - + %1 written - + Select binary - + Binary İkili deÄŸer - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + + file not found: %1 + + + + + failed to generate preview for %1 + + + + + Sorry, can't preview anything. This function currently does not support extracting from bsas. + + + + Update available - + Open/Execute - + Add as Executable - + + Preview + + + + Un-Hide - + Hide - + Write To File... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + + BOSS working + + + + + failed to run boss: %1 + + + + Request to Nexus failed: %1 - + + Executable "%1" not found + + + + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -2638,58 +2782,58 @@ This function will guess the versioning scheme under the assumption that the ins Mod bilgisi - + Textfiles Yazı dosyaları - + A list of text-files in the mod directory. Mod klasöründeki yazı dosyalarının bir listesi - + A list of text-files in the mod directory like readmes. Mod klasöründeki benioku dosyaları gibi yazı dosyalarının bir listesi - - + + Save Kaydet - + INI-Files INI-Dosyaları - + This is a list of .ini files in the mod. Mod klasöründeki .ini dosyalarının bir listesi - + This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. Moddaki .ini dosyalarının bir listesi. Bunlar genelde, ayarlabilir parametrelerin olduÄŸuÄŸu durumlarda modların davranışlarını ayarlamak için kullanılır. - + Save changes to the file. DeÄŸiÅŸiklikleri dosyaya kaydet. - + Save changes to the file. This overwrites the original. There is no automatic backup! DeÄŸiÅŸiklikleri dosyaya kaydet. Bu orijinal dosyanın üzerine yazar. Otomatik yedekleme yoktur! - + Images Resimler - + Images located in the mod. Modun içinde yer alan resimler @@ -2706,13 +2850,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Bu mod klasöründe yer alan ekran resimleri ve benzeri resimlerin(.jpg ve.png) bir listesidir. Tıklayararak daha büyük görüntü alabilirsiniz</span></p></body></html> - - + + Optional ESPs İsteÄŸe baÄŸlı ESP'ler - + List of esps and esms that can not be loaded by the game. Oyun tarafından yüklenemeyen espler ve esmlerin bir listesi. @@ -2735,12 +2879,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Pek çok mod isteÄŸe baÄŸlı esp'ler içermez, bu nedenle büyük ihtimalle boÅŸ bir listeye bakıyorsunuz.</span></p></body></html> - + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2748,103 +2892,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. AÅŸağıdaki listedeki seçili modu kullanılamaz yapar. - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. Seçili esp (aÅŸağıdaki listede) modun bir alt klasörüne itilecek ve böylece oyuna "görünmez" olacaktır. Artık aktif hale getirilemez. - + Move a file to the data directory. Dosyayı veri klasörüne taşı. - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. - + ESPs in the data directory and thus visible to the game. - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. - + Available ESPs - + Conflicts - + The following conflicted files are provided by this mod - - + + File - + Overwritten Mods - + The following conflicted files are provided by other mods - + Providing Mod - + Non-Conflicted files - + Categories Kategoriler - + Primary Category - + Nexus Info - + Mod ID - + Mod ID for this mod on Nexus. - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2853,7 +2997,7 @@ p, li { white-space: pre-wrap; } - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2862,61 +3006,61 @@ p, li { white-space: pre-wrap; } - + Version Versiyon - + Refresh - + Refresh all information from Nexus. - + Description - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> - + Name İsim - + Endorse - + Notes - + Filetree - + A directory view of this mod - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2926,237 +3070,237 @@ p, li { white-space: pre-wrap; } - + Previous - + Next Sonraki - + Close Kapat - + &Delete - + &Rename - + &Hide - + &Unhide - + &Open &Aç - + &New Folder - - + + Save changes? - + File Exists - + A file with that name exists, please enter a new one - + failed to move file - + failed to create directory "optional" - - + + Info requested, please wait - + (description incomplete, please visit nexus) - + Please enter a name - - + + Error - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak - + Current Version: %1 - + No update available - + Main - - + + Save changes to "%1"? - + Update - + Optional - + Old - + Misc - + Unknown - + <a href="%1">Visit on Nexus</a> - - + + Confirm Onayla - + Failed to delete %1 - + Are sure you want to delete "%1"? - + Are sure you want to delete the selected files? - - + + New Folder - + Failed to create "%1" - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - - + + failed to rename %1 to %2 - + There already is a visible version of this file. Replace it? - + Un-Hide - + Hide @@ -3256,7 +3400,8 @@ p, li { white-space: pre-wrap; } - installed version: %1, newest version: %2 + installed version: "%1", newest version: "%2" + installed version: %1, newest version: %2 @@ -3397,17 +3542,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response - + invalid response @@ -3480,109 +3625,126 @@ p, li { white-space: pre-wrap; } PluginList - + Mod Index - - + + Flags + + + + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - + Confirm Onayla - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - - failed to open output file: %1 + + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - - Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. + + BOSS dll incompatible - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name İsim - + Priority + + PreviewDialog + + + Preview + + + + + Close + Kapat + + ProblemsDialog @@ -3624,82 +3786,72 @@ p, li { white-space: pre-wrap; } Profile - + invalid profile name %1 - + failed to create %1 - - failed to open temporary file - - - - - failed to open "%1" for writing - - - - + failed to write mod list: %1 - + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - - - - - + + + + + invalid index %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) @@ -4025,97 +4177,97 @@ p, li { white-space: pre-wrap; } - + "%1" is missing - + Permissions required - + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - - + + Woops - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 - - + + Mod Organizer - + An instance of Mod Organizer is already running - + No game identified in "%1". The directory is required to contain the game binary and its launcher. - - + + Please select the game to manage - + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) - + Please use "Help" from the toolbar to get usage instructions to all elements - - + + <Manage...> - + failed to parse profile %1: %2 - - + + failed to find "%1" - + failed to access %1 - + failed to set file time %1 - + failed to create %1 @@ -4143,12 +4295,12 @@ p, li { white-space: pre-wrap; } - + Script Extender - + Proxy DLL @@ -4173,22 +4325,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + failed to spawn "%1": %2 - + "%1" doesn't exist - + failed to inject dll into "%1": %2 - + failed to run "%1" @@ -4237,6 +4389,11 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe invalid game type %1 + + + failed to open temporary file + + QueryOverwriteDialog @@ -4452,18 +4609,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe Settings - - + + attempt to store setting for unknown plugin "%1" - + Confirm Onayla - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? @@ -4608,52 +4765,47 @@ p, li { white-space: pre-wrap; } - + Disable automatic internet features - + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - + Offline Mode - + Use a proxy for network connections. - + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - + Use HTTP Proxy (Uses System Settings) - - Known Servers (Dynamically updated every download) - - - - + Preferred Servers (Drag & Drop) - + Blacklisted Plugins (use <del> to remove): - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -4694,62 +4846,72 @@ p, li { white-space: pre-wrap; } - + Username Kullanıcı adı - + Password Åžifre - + + Associate with "Download with manager" links + + + + + Known Servers (updated on download) + + + + Plugins - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds - + Steam App ID - + The Steam AppID for your game - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -4765,27 +4927,27 @@ p, li { white-space: pre-wrap; } - + Load Mechanism - + Select loading mechanism. See help for details. - + NMM Version - + The Version of Nexus Mod Manager to impersonate. - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -4794,76 +4956,76 @@ tl;dr-version: If Nexus-features don't work, insert the current version num - + Enforces that inactive ESPs and ESMs are never loaded. - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. - + Hide inactive ESPs/ESMs - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! - + Back-date BSAs - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. - + Select download directory - + Select mod directory - + Select cache directory - + Confirm? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? diff --git a/src/organizer_zh_CN.ts b/src/organizer_zh_CN.ts index e715f9d9..4e24267f 100644 --- a/src/organizer_zh_CN.ts +++ b/src/organizer_zh_CN.ts @@ -1,6 +1,50 @@ + + AboutDialog + + + + About + + + + + Revision: + + + + + Used Software + + + + + Credits + + + + + Translators + + + + + Others + + + + + Close + 关闭 + + + + No license + + + ActivateModsDialog @@ -240,25 +284,30 @@ p, li { white-space: pre-wrap; } DownloadList - + Name åç§° - + Filetime 文件时间 - + Done å®Œæˆ - + Information missing, please select "Query Info" from the context menu to re-retrieve. ä¿¡æ¯ä¸¢å¤±ï¼Œè¯·åœ¨å³é”®èœå•里选择“查询信æ¯â€æ¥é‡æ–°æ£€ç´¢ã€‚ + + + pending download + + DownloadListWidget @@ -311,125 +360,135 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - + Installed 已安装 - + Uninstalled - + Done å®Œæˆ - - - - + + + + Are you sure? 确定? - + This will remove all finished downloads from this list and from disk. 这将会从列表和ç£ç›˜ä¸­ç§»é™¤æ‰€æœ‰å·²å®Œæˆçš„下载。 - + This will remove all installed downloads from this list and from disk. 这将会从列表和ç£ç›˜ä¸­ç§»é™¤æ‰€æœ‰å·²å®‰è£…的下载项目。 - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Install 安装 - + Query Info æŸ¥è¯¢ä¿¡æ¯ - + Delete - + Un-Hide å–æ¶ˆéšè— - + Remove from View - + Remove 移除 - + Cancel å–æ¶ˆ - + + < mod %1 file %2 > + + + + + Pending + + + + Paused - + Fetching Info 1 - + Fetching Info 2 - + Pause æš‚åœ - + Resume ç»§ç»­ - + Delete Installed... - + Delete All... - + Remove Installed... 移除已安装的项目... - + Remove All... 移除所有... @@ -437,68 +496,78 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? 确定? - + This will remove all finished downloads from this list and from disk. 这将会从列表和ç£ç›˜ä¸­ç§»é™¤æ‰€æœ‰å·²å®Œæˆçš„下载。 - + This will remove all installed downloads from this list and from disk. 这将会从列表和ç£ç›˜ä¸­ç§»é™¤æ‰€æœ‰å·²å®‰è£…的下载项目。 - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install 安装 - + Query Info æŸ¥è¯¢ä¿¡æ¯ - + Delete - + Un-Hide å–æ¶ˆéšè— - + Remove from View - + Remove 移除 - + Cancel å–æ¶ˆ + + + < mod %1 file %2 > + + + + + Pending + + Fetching Info 1 @@ -510,32 +579,32 @@ p, li { white-space: pre-wrap; } - + Pause æš‚åœ - + Resume ç»§ç»­ - + Delete Installed... - + Delete All... - + Remove Installed... 移除已安装的项目... - + Remove All... 移除所有... @@ -548,75 +617,76 @@ p, li { white-space: pre-wrap; } é‡å‘½å "%1 "为 "%2" 时出错 - + Download again? 釿–°ä¸‹è½½ï¼Ÿ - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. 已存在åŒå文件。您确定è¦é‡æ–°ä¸‹è½½ï¼Ÿæ–°æ–‡ä»¶å°†ä½¿ç”¨ä¸åŒçš„æ–‡ä»¶å。 - + failed to download %1: could not open output file: %2 下载 %1 失败: 无法打开输出文件: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + + invalid index 无效的索引 - + failed to delete %1 无法删除 %1 - + failed to delete meta file for %1 无法从 %1 中删除 mate 文件 - - - - - - + + + + + + invalid index %1 无效的索引 %1 - + Please enter the nexus mod id 请输入N网 Mod ID - + Mod ID: Mod ID: @@ -625,38 +695,43 @@ p, li { white-space: pre-wrap; } 无效的字顺索引 %1 - + Information updated ä¿¡æ¯å·²æ›´æ–° - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? 无法在N网上找到匹é…的文件ï¼ä¹Ÿè®¸è¿™ä¸ªæ–‡ä»¶å·²ç»ä¸å­˜åœ¨äº†æˆ–是它改å了? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. 所选的文件无法在N网上找到å¯åŒ¹é…的项目,请手动选择正确的一个。 - + No download server available. Please try again later. 没有å¯ç”¨çš„下载æœåŠ¡å™¨ï¼Œè¯·ç¨åŽå†å°è¯•下载。 - + Failed to request file info from nexus: %1 无法从N网上请求文件信æ¯: %1 - + + Download failed. Server reported: %1 + + + + Download failed: %1 (%2) 下载失败: %1 (%2) - + failed to re-open %1 æ— æ³•é‡æ–°æ‰“å¼€ %1 @@ -768,7 +843,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + If checked, MO will be closed once the specified executable is run. 如果选中,那么 MO 将在指定的程åºè¿è¡ŒåŽå…³é—­ã€‚ @@ -785,7 +860,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + Add 添加 @@ -801,47 +876,64 @@ Right now the only case I know of where this needs to be overwritten is for the 移除 - + + Close + 关闭 + + + Select a binary é€‰æ‹©ä¸€ä¸ªå¯æ‰§è¡Œæ–‡ä»¶ - + Executable (%1) 坿‰§è¡Œç¨‹åº (%1) - + Java (32-bit) required - + MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - + Select a directory 选择一个目录 - + Confirm 确认 - + Really remove "%1" from executables? 真的è¦ä»Žç¨‹åºåˆ—表中移除 "%1" å—? - + Modify 更改 - + + + Save Changes? + + + + + + You made changes to the current executable, do you want to save them? + + + + MO must be kept running or this application will not work correctly. MO å¿…é¡»æŒç»­è¿è¡Œï¼Œå¦åˆ™è¯¥ç¨‹åºå°†æ— æ³•正常工作。 @@ -1287,7 +1379,7 @@ Note: This installer will not be aware of other installed mods! 程åºè¿è¡Œæ—¶ MO 将被é”定。 - + Unlock è§£é” @@ -1295,7 +1387,7 @@ Note: This installer will not be aware of other installed mods! LogBuffer - + failed to write log to %1: %2 æ— æ³•ç”Ÿæˆæ—¥å¿—到 %1: %2 @@ -1316,23 +1408,23 @@ Note: This installer will not be aware of other installed mods! MainWindow - - + + Categories - + Profile é…置文件 - + Pick a module collection 选择一个é…置文件 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1347,44 +1439,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">请注æ„: 当剿‚¨çš„é…置文件的 esp 加载顺åºå¹¶ä¸æ˜¯åˆ†å¼€ä¿å­˜çš„。</span></p></body></html> - + Refresh list 刷新列表 - + Refresh list. This is usually not necessary unless you modified data outside the program. åˆ·æ–°åˆ—è¡¨ï¼Œè¿™é€šå¸¸ä¸æ˜¯å¿…é¡»çš„ï¼Œé™¤éžæ‚¨åœ¨ç¨‹åºä¹‹å¤–修改了文件的数æ®ã€‚ - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter 过滤器 - + No groups - + Nexus IDs N网 ID - - - + + + Namefilter @@ -1393,12 +1485,12 @@ p, li { white-space: pre-wrap; } 开始 - + Pick a program to run. 选择è¦è¿è¡Œçš„程åºã€‚ - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1413,12 +1505,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">您å¯ä»¥æ·»åŠ æ–°çš„å·¥å…·åˆ°æ­¤åˆ—è¡¨ä¸­ï¼Œä½†æˆ‘ä¸èƒ½ä¿è¯ä¸€äº›æˆ‘没有测试过的工具能够正常工作。</span></p></body></html> - + Run program è¿è¡Œç¨‹åº - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1431,17 +1523,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">在 Mod Organizer å¯ç”¨çš„状æ€ä¸‹è¿è¡ŒæŒ‡å®šçš„程åºã€‚</span></p></body></html> - + Run è¿è¡Œ - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1454,7 +1546,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">创建一个开始èœå•å¿«æ·æ–¹å¼ï¼Œä½¿æ‚¨å¯ä»¥ç›´æŽ¥åœ¨ MO 激活状æ€ä¸‹è¿è¡ŒæŒ‡å®šçš„程åºã€‚</span></p></body></html> - + Shortcut @@ -1479,12 +1571,12 @@ p, li { white-space: pre-wrap; } ä¿å­˜ - + List of available esp/esm files å¯ç”¨ esp 或 esm 文件的列表 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1501,12 +1593,12 @@ p, li { white-space: pre-wrap; } é‡è¦: 您å¯ä»¥åœ¨è¿™é‡Œæ›´æ”¹ BSA 的顺åºï¼Œä¸è¿‡ Mod 的安装顺åºä¼šä¼˜å…ˆäºŽè¿™é‡Œçš„è®¾ç½®ï¼ - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. å¯ç”¨ BSA 文件的列表。未勾选的项目ä¸ä¼šè¢« MO 管ç†å¹¶ä¸”会忽略安装顺åºã€‚ - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1517,66 +1609,71 @@ BSAs checked here are loaded in such a way that your installation order is obeye 这里勾选的 BSA 将会ä¾ä»Žæ‚¨çš„安装顺åºï¼Œå¹¶ä¸”会自行调整加载顺åºã€‚ - - + + File 文件 - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Data - + + Sort + + + + refresh data-directory overview 刷新 Data 目录总览 - + Refresh the overview. This may take a moment. 刷新总览,这å¯èƒ½éœ€è¦ä¸€äº›æ—¶é—´ã€‚ - - - + + + Refresh 刷新 - + This is an overview of your data directory as visible to the game (and tools). 这是在游æˆä¸­å¯è§çš„ Data 目录 (和工具) 的总览。 - - + + Filter the above list so that only conflicts are displayed. 过滤上é¢çš„列表,使您åªèƒ½çœ‹åˆ°æœ‰å†²çªçš„æ–‡ä»¶ã€‚ - + Show only conflicts åªæ˜¾ç¤ºå†²çª - + Saves 存档 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1593,160 +1690,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">如果您在å³é”®èœå•ä¸­ç‚¹å‡»â€œä¿®å¤ Modâ€ï¼Œé‚£ä¹ˆ MO 便会å°è¯•激活所有 Mod å’Œ esp æ¥ä¿®å¤é‚£äº›ç¼ºå¤±çš„ esp,它并ä¸ä¼šç¦ç”¨ä»»ä½•东西ï¼</span></p></body></html> - + Downloads 下载 - + This is a list of mods you downloaded from Nexus. Double click one to install it. 这是当å‰å·²ä¸‹è½½çš„ Mod 的列表,åŒå‡»è¿›è¡Œå®‰è£…。 - + Compact 紧凑 - + Show Hidden - + Tool Bar å·¥å…·æ  - + Install Mod 安装 Mod - + Install &Mod 安装 &Mod - + Install a new mod from an archive 通过压缩包æ¥å®‰è£…一个新 Mod - + Ctrl+M Ctrl+M - + Profiles é…置文件 - + &Profiles &é…置文件 - + Configure Profiles 设置é…置文件 - + Ctrl+P Ctrl+P - + Executables 坿‰§è¡Œç¨‹åº - + &Executables &坿‰§è¡Œç¨‹åº - + Configure the executables that can be started through Mod Organizer é…ç½®å¯é€šè¿‡ MO æ¥å¯åŠ¨çš„ç¨‹åº - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings 设置 - + &Settings &设置 - + Configure settings and workarounds é…置设定和解决方案 - + Ctrl+S Ctrl+S - + Nexus N网 - + Search nexus network for more mods æœç´¢Nç½‘ä»¥èŽ·å–æ›´å¤š Mod - + Ctrl+N Ctrl+N - - + + Update æ›´æ–° - + Mod Organizer is up-to-date Mod Organizer 现在是最新版本 - - + + No Problems 没有问题 - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1757,54 +1854,54 @@ Right now this has very limited functionality 当剿­¤åŠŸèƒ½æ‰€èƒ½æä¾›çš„项目éžå¸¸æœ‰é™ - - + + Help 帮助 - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems 问题 - + There are potential problems with your setup 您的安装中存在潜在的问题 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1821,22 +1918,22 @@ Right now this has very limited functionality <li>.Net 未安装或版本过旧。想è¦è¿è¡Œ NCC 您必须先安装 .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­èŽ·å–: <a href="%1">%1</a></li> - + Help on UI 界é¢å¸®åŠ© - + Documentation Wiki 说明文档 (维基) - + Report Issue 报告问题 - + Tutorials @@ -1845,425 +1942,426 @@ Right now this has very limited functionality 无法ä¿å­˜åŠ è½½é¡ºåº - + failed to save load order: %1 无法ä¿å­˜åŠ è½½é¡ºåº: %1 - + failed to save archives order, do you have write access to "%1"? 无法ä¿å­˜æ¡£æ¡ˆé¡ºåºï¼Œæ‚¨ç¡®å®šæ‚¨æœ‰æƒé™æ›´æ”¹ "%1"? - + + About + + + + + About Qt + + + + Name åç§° - + Please enter a name for the new profile - + failed to create profile: %1 无法创建é…置文件: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下载 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨è¿›è¡Œä¸­çš„下载,您确定è¦é€€å‡ºå—? - + failed to read savegame: %1 无法读å–存档: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" 无法å¯åЍ "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 当您登录 Steam 时请点击确定。 - "%1" not found - "%1" 未找到 + "%1" 未找到 - + Start Steam? å¯åЍ Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¡®åœ°å¯åŠ¨éŠæˆ²ï¼ŒSteam 必须处于è¿è¡Œçжæ€ã€‚MO è¦ç«‹å³å¯åЍ Steam å—? - + Also in: <br> 也在: <br> - + No conflict æ²¡æœ‰å†²çª - + <Edit...> <编辑...> - - Failed to refresh list of esps: %s - - - - + This bsa is enabled in the ini file so it may be required! 该 BSA 已在 Ini 文件中å¯ç”¨ï¼Œå› æ­¤å®ƒå¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此档案还是会被加载,因为存在åŒåæ’件。ä¸è¿‡å®ƒæ‰€åŒ…å«çš„的文件ä¸ä¼šéµå¾ªå®‰è£…顺åºï¼ - + Activating Network Proxy - - + + Installation successful 安装æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 设定文件,您想现在就对它们进行é…ç½®å—? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled å®‰è£…å·²å–æ¶ˆ - - + + The mod was not installed completely. Mod 没有完全安装。 - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod 选择 Mod - + Mod Archive Mod 压缩包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 开始下载 - + failed to update mod list: %1 无法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 æ— æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 无法打开 %1 - + failed to change origin name: %1 无法更改原始文件å: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <全部> - + <Checked> <已勾选> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - Failed to move "%1" from mod "%2" to "%3": %4 - - - - + <Unchecked> <未勾选> - + <Update> <有更新> - + <No category> <无类别> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 无法é‡å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + + Confirm 确认 - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 无法移动 Mod: %1 - - + + Failed 失败 - + Installation file no longer exists 安装文件ä¸å¤å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 旧版 MO 安装的 Mod æ— æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£…。 - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解压 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€ä¸ª BSA。您确定è¦è§£åŽ‹å—? (解压完æˆåŽï¼ŒBSA 文件将会被删除。如果您ä¸äº†è§£ BSA çš„è¯ï¼Œè¯·é€‰æ‹©â€œå¦â€) - - - + + + failed to read %1: %2 æ— æ³•è¯»å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 压缩包 Hash 值错误。部分文件å¯èƒ½å·²ç»æŸå。 - + Nexus ID for this Mod is unknown æ­¤ Mod çš„N网 ID 未知 @@ -2276,92 +2374,92 @@ This function will guess the versioning scheme under the assumption that the ins 选择优先级 - + Really enable all visible mods? 确定è¦å¯ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Really disable all visible mods? 确定è¦ç¦ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... 安装 Mod... - + Enable all visible å¯ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Check all for update 检查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... @@ -2370,312 +2468,362 @@ This function will guess the versioning scheme under the assumption that the ins 设置类别 - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... é‡å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£… Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N网上æµè§ˆ - + Open in explorer 在资æºç®¡ç†å™¨ä¸­æ‰“å¼€ - + Information... ä¿¡æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + + Really delete "%1"? + + + + Fix Mods... ä¿®å¤ Mod... - - + + Delete + + + + + failed to remove %1 无法删除 %1 - - + + failed to create %1 无法创建 %1 - + Can't change download directory while downloads are in progress! 下载文件时ä¸èƒ½ä¿®æ”¹ä¸‹è½½ç›®å½•ï¼ - + Download failed 下载失败 - + failed to write to file %1 无法写入文件 %1 - + %1 written 已写入 %1 - + Select binary é€‰æ‹©å¯æ‰§è¡Œæ–‡ä»¶ - + Binary - + Enter Name 输入åç§° - + Please enter a name for the executable 请为程åºè¾“入一个åç§° - + Not an executable 䏿˜¯å¯æ‰§è¡Œç¨‹åº - + This is not a recognized executable. æ— æ³•è¯†åˆ«çš„å¯æ‰§è¡Œæ–‡ä»¶ - - + + Replace file? æ›¿æ¢æ–‡ä»¶ï¼Ÿ - + There already is a hidden version of this file. Replace it? 已存在åŒå文件,但该文件被éšè—了。确定è¦è¦†ç›–å—? - - + + File operation failed 文件æ“作错误 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + + file not found: %1 + 文件未找到: %1 + + + + failed to generate preview for %1 + + + + + Sorry, can't preview anything. This function currently does not support extracting from bsas. + + + + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 打开/执行 - + Add as Executable æ·»åŠ ä¸ºå¯æ‰§è¡Œæ–‡ä»¶ - + + Preview + + + + Un-Hide å–æ¶ˆéšè— - + Hide éšè— - + Write To File... 写入文件... - + Do you want to endorse Mod Organizer on %1 now? - + Remove 移除 - + Unlock load order - + Lock load order - + + BOSS working + + + + + failed to run boss: %1 + + + + Request to Nexus failed: %1 - + + Executable "%1" not found + + + + + Failed to refresh list of esps: %1 + + + + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful 登录æˆåŠŸ - + login failed: %1. Trying to download anyway 登录失败: %1,请å°è¯•使用别的方法下载 - + login failed: %1 无法登录: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登录失败: %1。您需è¦ç™»å½•到N网æ‰èƒ½æ›´æ–° MO - + Error 错误 - + failed to extract %1 (errorcode %2) 无法解压 %1 (é”™è¯¯ä»£ç  %2) - + Extract... 解压... - + Edit Categories... 编辑类别... - + Enable all 全部å¯ç”¨ - + Disable all 全部ç¦ç”¨ @@ -2722,58 +2870,58 @@ Please enter a name: Mod ä¿¡æ¯ - + Textfiles 文本文件 - + A list of text-files in the mod directory. Mod 目录里包å«çš„æ–‡æœ¬æ–‡ä»¶çš„列表。 - + A list of text-files in the mod directory like readmes. Mod 目录里包å«çš„æ–‡æœ¬æ–‡ä»¶ (类似于自述文件) 的列表 。 - - + + Save ä¿å­˜ - + INI-Files Ini 文件 - + This is a list of .ini files in the mod. Mod 目录里包å«çš„ Ini 文件的列表。 - + This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. Mod 目录里包å«çš„ Ini 文件的列表,这些文件通常用æ¥é…ç½® Mod 的行为,如果有å¯è®¾ç½®çš„傿•°çš„è¯ã€‚ - + Save changes to the file. ä¿å­˜æ›´æ”¹åˆ°æ–‡ä»¶ä¸­ã€‚ - + Save changes to the file. This overwrites the original. There is no automatic backup! ä¿å­˜æ›´æ”¹åˆ°æ–‡ä»¶ä¸­ï¼Œè¿™å°†ä¼šè¦†ç›–åŽŸå§‹æ–‡ä»¶ï¼Œå¹¶ä¸”æ²¡æœ‰è‡ªåŠ¨å¤‡ä»½ï¼ - + Images 图片 - + Images located in the mod. ä½äºŽ Mod 中的图片。 @@ -2790,13 +2938,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">这里列出了所有在 Mod 目录里的图片 (.jpg å’Œ .png),如截图等。点击其中的一个æ¥èŽ·å¾—è¾ƒå¤§çš„è§†å›¾ã€‚</span></p></body></html> - - + + Optional ESPs å¯é€‰ ESP - + List of esps and esms that can not be loaded by the game. 包å«äº†ä¸ä¼šè¢«æ¸¸æˆè½½å…¥çš„ esp å’Œ esm 的列表。 @@ -2820,12 +2968,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">大部分 Mod 没有å¯é€‰ esp,因此您正在看的很有å¯èƒ½åªæ˜¯ä¸€ä¸ªç©ºåˆ—表。</span></p></body></html> - + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2833,103 +2981,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. 使下表中已选的 Mod å˜å¾—ä¸å¯ç”¨ã€‚ - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. 已选的 esp (在下表中) 将会被放入 Mod çš„å­ç›®å½•里,在游æˆé‡Œå°†ä¼šå˜å¾—“ä¸å¯è§â€ï¼Œå¹¶ä¸”之åŽå°±ä¸èƒ½å†è¢«æ¿€æ´»äº†ã€‚ - + Move a file to the data directory. 移动一个文件到 Data 目录。 - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. 移动一个 esp 文件到 esp 目录,这样它就å¯ä»¥åœ¨ä¸»çª—å£ä¸­å¯ç”¨äº†ã€‚请注æ„: ESP åªæ˜¯å˜å¾—“å¯ç”¨â€ï¼Œå®ƒå¹¶ä¸ä¸€å®šä¼šè¢«è½½å…¥ï¼æƒ³è¦è½½å…¥è¯·åœ¨ MO 的主窗å£ä¸­å‹¾é€‰ã€‚ - + ESPs in the data directory and thus visible to the game. ESP 在 Data 目录,因此它在游æˆé‡Œä¼šå˜å¾—å¯è§ã€‚ - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. 这些 Mod 文件ä½äºŽæ‚¨æ¸¸æˆçš„ (虚拟) Data 目录里,因此它们在主窗å£çš„ esp 列表中会å˜å¾—å¯é€‰ã€‚ - + Available ESPs å¯ç”¨ ESP - + Conflicts å†²çª - + The following conflicted files are provided by this mod ä»¥ä¸‹å†²çªæ–‡ä»¶ç”±æ­¤ Mod æä¾› - - + + File 文件 - + Overwritten Mods 覆盖的 Mod - + The following conflicted files are provided by other mods ä»¥ä¸‹å†²çªæ–‡ä»¶ç”±å…¶å®ƒ Mod æä¾› - + Providing Mod æä¾›çš„ Mod - + Non-Conflicted files éžå†²çªæ–‡ä»¶ - + Categories 类别 - + Primary Category - + Nexus Info Nç½‘ä¿¡æ¯ - + Mod ID Mod ID - + Mod ID for this mod on Nexus. N网上此 Mod çš„ ID。 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2942,7 +3090,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">N网上此 Mod çš„ ID,如果您在 MO 中下载并安装了 Mod 它将被自动填写,å¦åˆ™æ‚¨éœ€è¦æ‰‹åŠ¨è¾“å…¥ã€‚è¦æ‰¾åˆ°æ­£ç¡®çš„ ID,在N网找到 Mod。比如,åƒè¿™æ ·çš„链接: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a> 在上é¢çš„例å­ä¸­ï¼Œ1334å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。此外: 上é¢çš„就是 Mod Organizer 在N网的链接,为什么ä¸çŽ°åœ¨å°±åˆ°é‚£é‡ŒåŽ»èµžåŒæˆ‘呢?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2955,32 +3103,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Mod 的已安装版本,鼠标æç¤ºå°†æ˜¾ç¤ºN网上的当å‰ç‰ˆæœ¬ï¼Œå·²å®‰è£…的版本å·åªæœ‰åœ¨æ‚¨é€šè¿‡ MO æ¥å®‰è£… Mod 的时候æ‰ä¼šè‡ªåŠ¨å¡«å†™ã€‚</span></p></body></html> - + Version 版本 - + Refresh 刷新 - + Refresh all information from Nexus. - + Description æè¿° - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -3000,7 +3148,7 @@ p, li { white-space: pre-wrap; } 类型 - + Name åç§° @@ -3009,12 +3157,12 @@ p, li { white-space: pre-wrap; } å¤§å° (KB) - + Endorse - + Notes @@ -3027,17 +3175,17 @@ p, li { white-space: pre-wrap; } 您支æŒè¿‡è¿™ä¸ª Mod 了å—? - + Filetree 文件树 - + A directory view of this mod 这个 Mod 的目录视图 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3052,53 +3200,53 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">所åšçš„æ›´æ”¹å°†ä¼šç«‹å³ä½œç”¨äºŽç£ç›˜ä¸Šçš„æ–‡ä»¶ï¼Œæ‰€ä»¥è¯·</span><span style=" font-size:9pt; font-weight:600;">谨慎æ“作</span><span style=" font-size:9pt;">。</span></p></body></html> - + Previous - + Next 下一步 - + Close 关闭 - + &Delete &删除 - + &Rename &é‡å‘½å - + &Hide &éšè— - + &Unhide &å–æ¶ˆéšè— - + &Open &打开 - + &New Folder &新建文件夹 - - + + Save changes? ä¿å­˜æ›´æ”¹å—? @@ -3107,79 +3255,79 @@ p, li { white-space: pre-wrap; } ä¿å­˜æ›´æ”¹åˆ° "%1"? - + File Exists 文件已存在 - + A file with that name exists, please enter a new one 文件å已存在,请输入其它åç§° - + failed to move file 无法移动文件 - + failed to create directory "optional" 无法创建 "optional" 目录 - - + + Info requested, please wait 请求信æ¯å·²å‘出,请ç¨åŽ - + (description incomplete, please visit nexus) (æè¿°ä¿¡æ¯ä¸å®Œæ•´ï¼Œè¯·è®¿é—®N网) - + Current Version: %1 当å‰ç‰ˆæœ¬: %1 - + No update available 没有å¯ç”¨çš„æ›´æ–° - + Main ä¸»è¦æ–‡ä»¶ - - + + Save changes to "%1"? - + Update æ›´æ–° - + Optional å¯é€‰æ–‡ä»¶ - + Old æ—§æ¡£ - + Misc æ‚项 - + Unknown 未知 @@ -3188,13 +3336,13 @@ p, li { white-space: pre-wrap; } 请求失败: %1 - + <a href="%1">Visit on Nexus</a> <a href="%1">访问N网</a> - - + + Confirm 确认 @@ -3211,98 +3359,98 @@ p, li { white-space: pre-wrap; } 例外: %1 - + Failed to delete %1 无法删除 %1 - + Are sure you want to delete "%1"? 确定è¦åˆ é™¤ "%1" å—? - + Are sure you want to delete the selected files? 确定è¦åˆ é™¤æ‰€é€‰çš„æ–‡ä»¶å—? - - + + New Folder 新建文件夹 - + Failed to create "%1" 无法创建 "%1" - - + + Replace file? æ›¿æ¢æ–‡ä»¶ï¼Ÿ - + There already is a hidden version of this file. Replace it? 已存在åŒå文件,但该文件被éšè—了。确定è¦è¦†ç›–å—? - - + + File operation failed 文件æ“作错误 - - + + Failed to remove "%1". Maybe you lack the required file permissions? 无法移除 "%1"。也许您需è¦è¶³å¤Ÿçš„æ–‡ä»¶æƒé™ï¼Ÿ - - + + failed to rename %1 to %2 无法é‡å‘½å %1 为 %2 - + There already is a visible version of this file. Replace it? 已存在åŒå文件。确定è¦è¦†ç›–å—? - + Un-Hide å–æ¶ˆéšè— - + Hide éšè— - + Please enter a name - - + + Error 错误 - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak @@ -3438,8 +3586,9 @@ p, li { white-space: pre-wrap; } - installed version: %1, newest version: %2 - 当å‰ç‰ˆæœ¬: %1,最新版本: %2 + installed version: "%1", newest version: "%2" + installed version: %1, newest version: %2 + 当å‰ç‰ˆæœ¬: %1,最新版本: %2 Name @@ -3640,17 +3789,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response 未å“应 - + invalid response 无效的å“应 @@ -4616,85 +4765,93 @@ Right now this has very limited functionality ESP 文件没有找到: %1 - + Mod Index - - + + Flags + + + + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - + Confirm 确认 - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - failed to open output file: %1 - 无法打开输出文件: %1 + 无法打开输出文件: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. 您的一些æ’ä»¶å称无效ï¼è¿™äº›æ’件无法被游æˆè½½å…¥ã€‚请查看 mo_interface.log æ¥ç¡®è®¤é‚£äº›å—å½±å“çš„æ’ä»¶å¹¶é‡å‘½å它们。 - + + BOSS dll incompatible + + + + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4707,17 +4864,17 @@ Right now this has very limited functionality 最高值 - + This plugin can't be disabled (enforced by the game) 这个æ’ä»¶ä¸èƒ½è¢«ç¦ç”¨ (ç”±æ¸¸æˆæ‰§è¡Œ) - + Origin: %1 隶属于: %1 - + Name åç§° @@ -4726,7 +4883,7 @@ Right now this has very limited functionality Mod åç§° - + Priority 优先级 @@ -4743,6 +4900,19 @@ Right now this has very limited functionality 这些索引决定了那些通过 Mod 引入的物å“,法术等等的 ID。ID çš„ä¸€èˆ¬æ ¼å¼æ˜¯ "xxyyyyyy",其中 "xx" 就是这个的索引,而 "yyyyyy" 则是由 Mod 自己所决定的。 + + PreviewDialog + + + Preview + + + + + Close + 关闭 + + ProblemsDialog @@ -4788,82 +4958,72 @@ p, li { white-space: pre-wrap; } 无法应用 Ini 设定 - + invalid profile name %1 - + failed to create %1 无法创建 %1 - - failed to open temporary file - - - - - failed to open "%1" for writing - - - - + failed to write mod list: %1 - + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - - - - - + + + + + invalid index %1 无效的索引 %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 无效的优先级 %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 æ— æ³•è§£æž Ini 文件 (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) @@ -5240,12 +5400,12 @@ p, li { white-space: pre-wrap; } 无法设置代ç†DLL加载 - + "%1" is missing "%1" 缺失 - + Permissions required éœ€è¦æƒé™ @@ -5254,8 +5414,8 @@ p, li { white-space: pre-wrap; } 当å‰çš„ç”¨æˆ·å¸æˆ·æ²¡æœ‰è¿è¡Œ Mod Organizer 所需的访问æƒé™ï¼Œå¿…è¦çš„修改将会自动进行 (MO 的目录将会为当å‰ç”¨æˆ·å¸æˆ·è€Œå˜å¾—å¯å†™),您将被请求使用管ç†å‘˜æƒé™æ‰§è¡Œ "mo_helper.exe"。 - - + + Woops 糟糕 @@ -5264,66 +5424,66 @@ p, li { white-space: pre-wrap; } Mod Organizer 崩溃了ï¼è¦ç”Ÿæˆè¯Šæ–­æ–‡ä»¶å—?如果您å‘é€è¿™ä¸ªæ–‡ä»¶åˆ°æˆ‘的邮箱 (sherb@gmx.net) 里的è¯ï¼Œè¿™ä¸ª Bug 会很有å¯èƒ½è¢«ä¿®å¤ã€‚ - + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 Mod Organizer 崩溃了ï¼é—憾的是,我无法生æˆè¯Šæ–­æ–‡ä»¶: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Mod Organizer 的一个实例正在è¿è¡Œ - + No game identified in "%1". The directory is required to contain the game binary and its launcher. "%1" 中未检测到游æˆã€‚请确ä¿è¯¥è·¯å¾„ä¸­åŒ…å«æ¸¸æˆæ‰§è¡Œç¨‹åºä»¥åŠå¯¹åº”çš„ Launcher 文件。 - - + + Please select the game to manage 请选择想è¦ç®¡ç†çš„æ¸¸æˆ - + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) - + Please use "Help" from the toolbar to get usage instructions to all elements 请使用工具æ ä¸Šçš„â€œå¸®åŠ©â€æ¥èŽ·å¾—æ‰€æœ‰å…ƒç´ çš„ä½¿ç”¨è¯´æ˜Ž - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 无法解æžé…置文件 %1: %2 - - + + failed to find "%1" 未能找到 "%1" @@ -5332,17 +5492,17 @@ p, li { white-space: pre-wrap; } ç¼–ç é”™è¯¯ï¼Œè¯·å‘作者汇报此 Bug 并且附上 mo_interface.log æ–‡ä»¶ï¼ - + failed to access %1 无法访问 %1 - + failed to set file time %1 无法设置文件时间 %1 - + failed to create %1 无法创建 %1 @@ -5378,12 +5538,12 @@ p, li { white-space: pre-wrap; } 无法打开 %1 - + Script Extender 脚本拓展 - + Proxy DLL 代ç†DLL @@ -5408,22 +5568,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + failed to spawn "%1": %2 æ— æ³•ç”Ÿæˆ "%1": %2 - + "%1" doesn't exist "%1" ä¸å­˜åœ¨ - + failed to inject dll into "%1": %2 无法注入 dll 到 "%1": %2 - + failed to run "%1" 无法è¿è¡Œ "%1" @@ -5484,6 +5644,11 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe invalid game type %1 + + + failed to open temporary file + + QueryOverwriteDialog @@ -5718,18 +5883,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 需è¦ç®¡ç†å‘˜çš„æƒé™æ¥æ›´æ”¹è¿™ä¸ªã€‚ - - + + attempt to store setting for unknown plugin "%1" - + Confirm 确认 - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? 修改 Mod ç›®å½•å°†ä¼šå½±å“æ‚¨çš„é…ç½®ï¼æ–°ç›®å½•中ä¸å­˜åœ¨ (或者åç§°ä¸åŒ) çš„ Mod 将在所有é…ç½®ä¸­è¢«ç¦æ­¢æŽ‰ã€‚æ­¤æ“作无法撤销,所以执行此æ“作å‰å»ºè®®å…ˆå¤‡ä»½ä¸‹è‡ªå·±çš„é…ç½®ã€‚ç«‹å³æ‰§è¡Œï¼Ÿ @@ -5878,52 +6043,57 @@ p, li { white-space: pre-wrap; } é…ç½® Mod 类别 - + Disable automatic internet features - + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - + Offline Mode - + Use a proxy for network connections. - + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - + Use HTTP Proxy (Uses System Settings) - - Known Servers (Dynamically updated every download) + + Associate with "Download with manager" links + + + + + Known Servers (updated on download) - + Preferred Servers (Drag & Drop) - + Blacklisted Plugins (use <del> to remove): - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5992,12 +6162,12 @@ p, li { white-space: pre-wrap; } 自动登录 - + Username è´¦å· - + Password å¯†ç  @@ -6014,52 +6184,52 @@ p, li { white-space: pre-wrap; } 首选外部æµè§ˆå™¨ - + Plugins - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds 解决方案 - + Steam App ID Steam App ID - + The Steam AppID for your game 您游æˆçš„ Steam AppID - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -6086,12 +6256,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">其中 22380 å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。</span></p></body></html> - + Load Mechanism 加载机制 - + Select loading mechanism. See help for details. 选择加载机制,使用帮助查看更多细节。 @@ -6116,17 +6286,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt; font-weight:600;">代ç†DLL</span><span style=" font-size:9pt;"> åœ¨è¿™ç§æ¨¡å¼ä¸‹ï¼ŒMO 将替æ¢ä¸€ä¸ªæ¸¸æˆçš„ dll æ¥åŠ è½½ MO (当然原æ¥çš„ dll),这仅适用于 Steam 版本的游æˆï¼Œå¹¶ä¸”åªåœ¨ Skyrim 上åšè¿‡æµ‹è¯•。请åªåœ¨å…¶å®ƒåŠ è½½æœºåˆ¶ä¸èƒ½å·¥ä½œçš„æƒ…况下æ‰ä½¿ç”¨å®ƒã€‚</span></p></body></html> - + NMM Version NMM 版本 - + The Version of Nexus Mod Manager to impersonate. æƒ³è¦æ¨¡æ‹Ÿçš„ NMM 版本å·ã€‚ - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -6139,7 +6309,7 @@ tl;dr-version: If Nexus-features don't work, insert the current version num å˜æ›´ç‰ˆæœ¬å·: 如果Nç½‘åŠŸèƒ½ä¸æ­£å¸¸äº†ï¼Œé‚£ä¹ˆè¯·åœ¨è¿™é‡Œè¾“å…¥ NMM 的当å‰ç‰ˆæœ¬å·å¹¶é‡è¯•一下。 - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -6152,48 +6322,48 @@ tl;dr-version: If Nexus-features don't work, insert the current version num 例如: 0.33.1 - + Enforces that inactive ESPs and ESMs are never loaded. 强制执行,未激活的 ESP å’Œ ESM å°†ä¸ä¼šè¢«åŠ è½½ã€‚ - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. 看æ¥ï¼Œæ¸¸æˆå¶å°”ä¼šåŠ è½½ä¸€äº›æ²¡æœ‰è¢«æ¿€æ´»æˆæ’ä»¶çš„ ESP 或 ESM 文件。 我还尚ä¸çŸ¥é“它在什么情况下会这样,但是有用户报告说它在æŸäº›æƒ…况下是很ä¸å¿…è¦çš„。如果这个选项被选中,那么在列表中没有被勾选的 ESP å’Œ ESM å°†ä¸ä¼šåœ¨æ¸¸æˆä¸­å‡ºçŽ°ï¼Œå¹¶ä¸”ä¹Ÿä¸ä¼šè¢«è½½å…¥ã€‚ - + Hide inactive ESPs/ESMs éšè—未激活的 ESP 或 ESM - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! 对于天际,这个å¯ä»¥ç”¨æ¥å–代档案无效化,它将会使档案无效化对所有é…置都å˜å¾—多余。 但是对于其它游æˆï¼Œè¿™å¹¶ä¸æ˜¯ä¸€ä¸ªå¾ˆå¥½çš„æ›¿ä»£å“ï¼ - + Back-date BSAs é‡ç½® BSA 文件修改日期 @@ -6202,27 +6372,27 @@ For the other games this is not a sufficient replacement for AI! 这些是 Mod Organizer 的问题解决方案。它们通常是ä¸å¿…修改的,请确ä¿åœ¨æ‚¨å˜æ›´äº†è¿™é‡Œçš„任何东西之å‰å·²ç»è¯»è¿‡äº†å¸®åŠ©æ–‡æ¡£ã€‚ - + Select download directory 选择下载目录 - + Select mod directory 选择 Mod 目录 - + Select cache directory 选择缓存目录 - + Confirm? 确认? - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? æ­¤æ“作将导致之å‰å‹¾é€‰çš„â€œè®°ä½æˆ‘的选项â€è¯¢é—®çª—å£å†æ¬¡å‡ºçŽ°ï¼Œç¡®å®šè¦é‡ç½®å¯¹è¯æ¡†ï¼Ÿ diff --git a/src/organizer_zh_TW.ts b/src/organizer_zh_TW.ts index 722f8d2c..1fc6b17b 100644 --- a/src/organizer_zh_TW.ts +++ b/src/organizer_zh_TW.ts @@ -1,6 +1,50 @@ + + AboutDialog + + + + About + + + + + Revision: + + + + + Used Software + + + + + Credits + + + + + Translators + + + + + Others + + + + + Close + 關閉 + + + + No license + + + ActivateModsDialog @@ -240,25 +284,30 @@ p, li { white-space: pre-wrap; } DownloadList - + Name å稱 - + Filetime 檔案時間 - + Done å®Œæˆ - + Information missing, please select "Query Info" from the context menu to re-retrieve. 訊æ¯ä¸Ÿå¤±ï¼Œè«‹åœ¨å³éµèœå–®è£¡é¸æ“‡â€œæŸ¥è©¢è¨Šæ¯â€ä¾†é‡æ–°æª¢ç´¢ã€‚ + + + pending download + + DownloadListWidget @@ -311,125 +360,135 @@ p, li { white-space: pre-wrap; } DownloadListWidgetCompactDelegate - + Installed å·²å®‰è£ - + Uninstalled - + Done å®Œæˆ - - - - + + + + Are you sure? 確定? - + This will remove all finished downloads from this list and from disk. 這將會從列表和ç£ç¢Ÿä¸­ç§»é™¤æ‰€æœ‰å·²å®Œæˆçš„下載。 - + This will remove all installed downloads from this list and from disk. 這將會從列表和ç£ç¢Ÿä¸­ç§»é™¤æ‰€æœ‰å·²å®‰è£çš„下載項目。 - + This will permanently remove all finished downloads from this list (but NOT from disk). - + This will permanently remove all installed downloads from this list (but NOT from disk). - + Install å®‰è£ - + Query Info æŸ¥è©¢è¨Šæ¯ - + Delete - + Un-Hide å–æ¶ˆéš±è— - + Remove from View - + Remove 移除 - + Cancel å–æ¶ˆ - + + < mod %1 file %2 > + + + + + Pending + + + + Paused - + Fetching Info 1 - + Fetching Info 2 - + Pause æš«åœ - + Resume 繼續 - + Delete Installed... - + Delete All... - + Remove Installed... 移除已安è£çš„é …ç›®... - + Remove All... 移除所有... @@ -437,68 +496,78 @@ p, li { white-space: pre-wrap; } DownloadListWidgetDelegate - - - - + + + + Are you sure? 確定? - + This will remove all finished downloads from this list and from disk. 這將會從列表和ç£ç¢Ÿä¸­ç§»é™¤æ‰€æœ‰å·²å®Œæˆçš„下載。 - + This will remove all installed downloads from this list and from disk. 這將會從列表和ç£ç¢Ÿä¸­ç§»é™¤æ‰€æœ‰å·²å®‰è£çš„下載項目。 - + This will remove all finished downloads from this list (but NOT from disk). - + This will remove all installed downloads from this list (but NOT from disk). - + Install å®‰è£ - + Query Info æŸ¥è©¢è¨Šæ¯ - + Delete - + Un-Hide å–æ¶ˆéš±è— - + Remove from View - + Remove 移除 - + Cancel å–æ¶ˆ + + + < mod %1 file %2 > + + + + + Pending + + Fetching Info 1 @@ -510,32 +579,32 @@ p, li { white-space: pre-wrap; } - + Pause æš«åœ - + Resume 繼續 - + Delete Installed... - + Delete All... - + Remove Installed... 移除已安è£çš„é …ç›®... - + Remove All... 移除所有... @@ -548,75 +617,76 @@ p, li { white-space: pre-wrap; } 釿–°å‘½å "%1 "為 "%2" 時出錯 - + Download again? 釿–°ä¸‹è¼‰ï¼Ÿ - + A file with the same name has already been downloaded. Do you want to download it again? The new file will receive a different name. 已存在åŒå檔案。您確定è¦é‡æ–°ä¸‹è¼‰ï¼Ÿæ–°æª”案將使用ä¸åŒçš„æª”案å。 - + failed to download %1: could not open output file: %2 下載 %1 失敗: 無法開啟輸出檔案: %2 - + Wrong Game - + The download link is for a mod for "%1" but this instance of MO has been set up for "%2". - - - - - - - - - - - - - - + + + + + + + + + + + + + + + invalid index 無效的索引 - + failed to delete %1 無法刪除 %1 - + failed to delete meta file for %1 無法從 %1 中刪除 mate 檔案 - - - - - - + + + + + + invalid index %1 無效的索引 %1 - + Please enter the nexus mod id 請輸入Nç¶² Mod ID - + Mod ID: Mod ID: @@ -625,38 +695,43 @@ p, li { white-space: pre-wrap; } 無效的字順索引 %1 - + Information updated 訊æ¯å·²æ›´æ–° - - + + No matching file found on Nexus! Maybe this file is no longer available or it was renamed? 無法在N網上找到匹é…的檔案ï¼ä¹Ÿè¨±é€™å€‹æª”案已經ä¸å­˜åœ¨äº†æˆ–是它改å了? - + No file on Nexus matches the selected file by name. Please manually choose the correct one. 所é¸çš„æª”案無法在N網上找到å¯åŒ¹é…çš„é …ç›®ï¼Œè«‹æ‰‹å‹•é¸æ“‡æ­£ç¢ºçš„一個。 - + No download server available. Please try again later. 沒有å¯ç”¨çš„下載伺æœå™¨ï¼Œè«‹ç¨å¾Œå†å˜—試下載。 - + Failed to request file info from nexus: %1 無法在N網上請求檔案訊æ¯: %1 - + + Download failed. Server reported: %1 + + + + Download failed: %1 (%2) 下載失敗: %1 (%2) - + failed to re-open %1 ç„¡æ³•é‡æ–°é–‹å•Ÿ %1 @@ -768,7 +843,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + If checked, MO will be closed once the specified executable is run. 如果é¸ä¸­ï¼Œé‚£éº¼ MO 將在指定的程å¼é‹è¡Œå¾Œé—œé–‰ã€‚ @@ -785,7 +860,7 @@ Right now the only case I know of where this needs to be overwritten is for the - + Add 添加 @@ -801,47 +876,64 @@ Right now the only case I know of where this needs to be overwritten is for the 移除 - + + Close + 關閉 + + + Select a binary 鏿“‡ä¸€å€‹å¯åŸ·è¡Œæª”案 - + Executable (%1) å¯åŸ·è¡Œç¨‹å¼ (%1) - + Java (32-bit) required - + MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe from that installation as the binary. - + Select a directory 鏿“‡ä¸€å€‹ç›®éŒ„ - + Confirm ç¢ºèª - + Really remove "%1" from executables? 真的è¦ä»Žç¨‹å¼åˆ—表中移除 "%1" å—? - + Modify 更改 - + + + Save Changes? + + + + + + You made changes to the current executable, do you want to save them? + + + + MO must be kept running or this application will not work correctly. MO å¿…é ˆæŒçºŒé‹è¡Œï¼Œå¦å‰‡è©²ç¨‹å¼å°‡ç„¡æ³•正常工作。 @@ -1287,7 +1379,7 @@ Note: This installer will not be aware of other installed mods! 程å¼é‹è¡Œæ™‚ MO 將被鎖定。 - + Unlock 解鎖 @@ -1295,7 +1387,7 @@ Note: This installer will not be aware of other installed mods! LogBuffer - + failed to write log to %1: %2 ç„¡æ³•ç”Ÿæˆæ—¥èªŒåˆ° %1: %2 @@ -1316,23 +1408,23 @@ Note: This installer will not be aware of other installed mods! MainWindow - - + + Categories - + Profile é…置檔案 - + Pick a module collection 鏿“‡ä¸€å€‹é…置檔案 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1347,44 +1439,44 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">請注æ„: ç•¶å‰æ‚¨çš„é…置檔案的 esp 加載順åºä¸¦ä¸æ˜¯åˆ†é–‹å„²å­˜çš„。</span></p></body></html> - + Refresh list 釿–°æ•´ç†åˆ—表 - + Refresh list. This is usually not necessary unless you modified data outside the program. 釿–°æ•´ç†åˆ—è¡¨ï¼Œé€™é€šå¸¸ä¸æ˜¯å¿…é ˆçš„ï¼Œé™¤éžæ‚¨åœ¨ç¨‹å¼ä¹‹å¤–修改了檔案的數據。 - + List of available mods. - + This is a list of installed mods. Use the checkboxes to activate/deactivate mods and drag & drop mods to change their "installation" orders. - + Filter éŽæ¿¾å™¨ - + No groups - + Nexus IDs Nç¶² ID - - - + + + Namefilter @@ -1393,12 +1485,12 @@ p, li { white-space: pre-wrap; } é–‹å§‹ - + Pick a program to run. 鏿“‡è¦é‹è¡Œçš„程å¼ã€‚ - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1413,12 +1505,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">您å¯ä»¥æ·»åŠ æ–°çš„å·¥å…·åˆ°æ­¤åˆ—è¡¨ä¸­ï¼Œä½†æˆ‘ä¸èƒ½ä¿è­‰ä¸€äº›æˆ‘沒有測試éŽçš„工具能够正常工作。</span></p></body></html> - + Run program é‹è¡Œç¨‹å¼ - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1431,17 +1523,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">在 Mod Organizer 啟用的狀態下é‹è¡ŒæŒ‡å®šçš„程å¼ã€‚</span></p></body></html> - + Run é‹è¡Œ - + Create a shortcut in your start menu or on the desktop to the specified program - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1454,7 +1546,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">建立一個開始èœå–®æ·å¾‘,使您å¯ä»¥ç›´æŽ¥åœ¨ MO 激活狀態下é‹è¡ŒæŒ‡å®šçš„程å¼ã€‚</span></p></body></html> - + Shortcut @@ -1479,12 +1571,12 @@ p, li { white-space: pre-wrap; } 儲存 - + List of available esp/esm files å¯ç”¨ esp 或 esm 檔案的列表 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1501,12 +1593,12 @@ p, li { white-space: pre-wrap; } é‡è¦: 您å¯ä»¥åœ¨é€™è£¡æ›´æ”¹ BSA 的順åºï¼Œä¸éŽ Mod 的安è£é †åºæœƒå„ªå…ˆæ–¼é€™è£¡çš„è¨­å®šï¼ - + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. å¯ç”¨ BSA 檔案的列表。未勾é¸çš„é …ç›®ä¸æœƒè¢« MO 管ç†ä¸¦ä¸”會忽略安è£é †åºã€‚ - + BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1517,66 +1609,71 @@ BSAs checked here are loaded in such a way that your installation order is obeye 這裡勾é¸çš„ BSA 將會ä¾å¾žæ‚¨çš„安è£é †åºï¼Œä¸¦ä¸”會自行調整加載順åºã€‚ - - + + File 檔案 - + <html><head/><body><p>Marked Archives (<img src=":/MO/gui/warning_16"/>) are still loaded on Skyrim but the <a href="http://forums.bethsoft.com/topic/1354395-update-bsas-and-you/"><span style=" text-decoration: underline; color:#0000ff;">regular file override</span></a> mechanism will apply: Loose files override BSAs, no matter the mod/plugin priority.</p></body></html> - + Mod Mod - + Data Data - + + Sort + + + + refresh data-directory overview 釿–°æ•´ç† Data 目錄總覽 - + Refresh the overview. This may take a moment. 釿–°æ•´ç†ç¸½è¦½ï¼Œé€™å¯èƒ½éœ€è¦ä¸€äº›æ™‚間。 - - - + + + Refresh 釿–°æ•´ç† - + This is an overview of your data directory as visible to the game (and tools). é€™æ˜¯åœ¨éŠæˆ²ä¸­å¯è¦‹çš„ Data 目錄 (和工具) 的總覽。 - - + + Filter the above list so that only conflicts are displayed. éŽæ¿¾ä¸Šé¢çš„列表,使您åªèƒ½çœ‹åˆ°æœ‰è¡çªçš„æª”案。 - + Show only conflicts åªé¡¯ç¤ºè¡çª - + Saves 存檔 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1593,160 +1690,160 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">如果您在å³éµèœå–®ä¸­é»žæ“Šâ€œä¿®å¾© Modâ€ï¼Œé‚£éº¼ MO 便會嘗試激活所有 Mod å’Œ esp 來修復那些缺失的 espï¼Œå®ƒä¸¦ä¸æœƒç¦ç”¨ä»»ä½•æ±è¥¿ï¼</span></p></body></html> - + Downloads 下載 - + This is a list of mods you downloaded from Nexus. Double click one to install it. 這是當å‰å·²ä¸‹è¼‰çš„ Mod 的列表,雙擊進行安è£ã€‚ - + Compact 緊湊 - + Show Hidden - + Tool Bar 工具欄 - + Install Mod å®‰è£ Mod - + Install &Mod å®‰è£ &Mod - + Install a new mod from an archive 通éŽå£“縮包來安è£ä¸€å€‹æ–° Mod - + Ctrl+M Ctrl+M - + Profiles é…置檔案 - + &Profiles &é…置檔案 - + Configure Profiles 設定é…置檔案 - + Ctrl+P Ctrl+P - + Executables å¯åŸ·è¡Œç¨‹å¼ - + &Executables &å¯åŸ·è¡Œç¨‹å¼ - + Configure the executables that can be started through Mod Organizer é…ç½®å¯é€šéŽ MO ä¾†å•Ÿå‹•çš„ç¨‹å¼ - + Ctrl+E Ctrl+E - - + + Tools - + &Tools - + Ctrl+I Ctrl+I - + Settings 設定 - + &Settings &設定 - + Configure settings and workarounds é…置設定和解決方案 - + Ctrl+S Ctrl+S - + Nexus Nç¶² - + Search nexus network for more mods æœå°‹N網以ç²å–更多 Mod - + Ctrl+N Ctrl+N - - + + Update æ›´æ–° - + Mod Organizer is up-to-date Mod Organizer ç¾åœ¨æ˜¯æœ€æ–°ç‰ˆæœ¬ - - + + No Problems 沒有å•題 - + This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1757,54 +1854,54 @@ Right now this has very limited functionality ç•¶å‰æ­¤åŠŸèƒ½æ‰€èƒ½æä¾›çš„é …ç›®éžå¸¸æœ‰é™ - - + + Help 幫助 - + Ctrl+H - + Endorse MO - - + + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems å•題 - + There are potential problems with your setup 您的安è£ä¸­å­˜åœ¨æ½›åœ¨çš„å•題 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1821,22 +1918,22 @@ Right now this has very limited functionality <li>.Net æœªå®‰è£æˆ–版本éŽèˆŠã€‚想è¦é‹è¡Œ NCC æ‚¨å¿…é ˆå…ˆå®‰è£ .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­ç²å–: <a href="%1">%1</a></li> - + Help on UI 介é¢å¹«åŠ© - + Documentation Wiki 說明文檔 (維基) - + Report Issue 報告å•題 - + Tutorials @@ -1845,425 +1942,426 @@ Right now this has very limited functionality ç„¡æ³•å„²å­˜åŠ è¼‰é †åº - + failed to save load order: %1 無法儲存加載順åº: %1 - + failed to save archives order, do you have write access to "%1"? 無法儲存檔案順åºï¼Œæ‚¨ç¢ºå®šæ‚¨æœ‰æ¬Šé™æ›´æ”¹ "%1"? - + + About + + + + + About Qt + + + + Name å稱 - + Please enter a name for the new profile - + failed to create profile: %1 無法建立é…置檔案: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下載 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨é€²è¡Œä¸­çš„下載,您確定è¦é€€å‡ºå—Žï¼Ÿ - + failed to read savegame: %1 無法讀å–存檔: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" 無法啟動 "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 當您登入 Steam 時請點擊確定。 - "%1" not found - "%1" 未找到 + "%1" 未找到 - + Start Steam? 啟動 Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¢ºåœ°å•Ÿå‹•éŠæˆ²ï¼ŒSteam 必須處於é‹è¡Œç‹€æ…‹ï¼ŒMO è¦ç«‹å³å•Ÿå‹• Steam 嗎? - + Also in: <br> 也在: <br> - + No conflict 沒有è¡çª - + <Edit...> <編輯...> - - Failed to refresh list of esps: %s - - - - + This bsa is enabled in the ini file so it may be required! 該 BSA 已在 Ini 檔案中啟用,因此它å¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此檔案還是會被加載,因為存在åŒåæ’件。ä¸éŽå®ƒæ‰€åŒ…å«çš„çš„æª”æ¡ˆä¸æœƒéµå¾ªå®‰è£é †åºï¼ - + Activating Network Proxy - - + + Installation successful å®‰è£æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 設定檔案,您想ç¾åœ¨å°±å°å®ƒå€‘進行é…置嗎? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled 安è£å·²å–消 - - + + The mod was not installed completely. Mod 沒有完全安è£ã€‚ - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod 鏿“‡ Mod - + Mod Archive Mod 壓縮包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 開始下載 - + failed to update mod list: %1 無法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 ç„¡æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 無法開啟 %1 - + failed to change origin name: %1 無法更改原始檔案å: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <全部> - + <Checked> <已勾é¸> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - - Failed to move "%1" from mod "%2" to "%3": %4 - - - - + <Unchecked> <未勾é¸> - + <Update> <有更新> - + <No category> <無類別> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 ç„¡æ³•é‡æ–°å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - + + + + Confirm ç¢ºèª - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 無法移動 Mod: %1 - - + + Failed 失敗 - + Installation file no longer exists å®‰è£æª”案ä¸è¤‡å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 舊版 MO 安è£çš„ Mod ç„¡æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£ã€‚ - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解壓 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€å€‹ BSA。您確定è¦è§£å£“嗎? (解壓完æˆå¾Œï¼ŒBSA 檔案將會被刪除。如果您ä¸çž­è§£ BSA çš„è©±ï¼Œè«‹é¸æ“‡â€œå¦â€) - - - + + + failed to read %1: %2 ç„¡æ³•è®€å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 壓縮包 Hash 值錯誤。部分檔案å¯èƒ½å·²ç¶“æå£žã€‚ - + Nexus ID for this Mod is unknown æ­¤ Mod çš„Nç¶² ID 未知 @@ -2276,92 +2374,92 @@ This function will guess the versioning scheme under the assumption that the ins 鏿“‡å„ªå…ˆç´š - + Really enable all visible mods? 確定è¦å•Ÿç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Really disable all visible mods? 確定è¦ç¦ç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... å®‰è£ Mod... - + Enable all visible 啟用所有å¯è¦‹é …ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è¦‹é …ç›® - + Check all for update 檢查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... @@ -2370,312 +2468,362 @@ This function will guess the versioning scheme under the assumption that the ins 設定類別 - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... 釿–°å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£ Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N網上æµè¦½ - + Open in explorer 在檔案總管中開啟 - + Information... 訊æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + + Really delete "%1"? + + + + Fix Mods... 修復 Mod... - - + + Delete + + + + + failed to remove %1 無法刪除 %1 - - + + failed to create %1 無法建立 %1 - + Can't change download directory while downloads are in progress! 下載檔案時ä¸èƒ½ä¿®æ”¹ä¸‹è¼‰ç›®éŒ„ï¼ - + Download failed 下載失敗 - + failed to write to file %1 無法寫入檔案 %1 - + %1 written 已寫入 %1 - + Select binary 鏿“‡å¯åŸ·è¡Œæª”案 - + Binary - + Enter Name 輸入å稱 - + Please enter a name for the executable 請為程å¼è¼¸å…¥ä¸€å€‹å稱 - + Not an executable 䏿˜¯å¯åŸ·è¡Œç¨‹å¼ - + This is not a recognized executable. 無法識別的å¯åŸ·è¡Œæª”案 - - + + Replace file? å–代檔案? - + There already is a hidden version of this file. Replace it? 已存在åŒå檔案,但該檔案被隱è—了。確定è¦è¦†è“‹å—Žï¼Ÿ - - + + File operation failed 檔案æ“作錯誤 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + + file not found: %1 + 檔案未找到: %1 + + + + failed to generate preview for %1 + + + + + Sorry, can't preview anything. This function currently does not support extracting from bsas. + + + + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 開啟/執行 - + Add as Executable 添加為å¯åŸ·è¡Œæª”案 - + + Preview + + + + Un-Hide å–æ¶ˆéš±è— - + Hide éš±è— - + Write To File... 寫入檔案... - + Do you want to endorse Mod Organizer on %1 now? - + Remove 移除 - + Unlock load order - + Lock load order - + + BOSS working + + + + + failed to run boss: %1 + + + + Request to Nexus failed: %1 - + + Executable "%1" not found + + + + + Failed to refresh list of esps: %1 + + + + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful 登入æˆåŠŸ - + login failed: %1. Trying to download anyway 登入失敗: %1,請嘗試使用別的方法下載 - + login failed: %1 無法登入: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登入失敗: %1。您需è¦ç™»å…¥åˆ°Nç¶²æ‰èƒ½æ›´æ–° MO - + Error 錯誤 - + failed to extract %1 (errorcode %2) 無法解壓 %1 (錯誤代碼 %2) - + Extract... 解壓... - + Edit Categories... 編輯類別... - + Enable all 全部啟用 - + Disable all 全部ç¦ç”¨ @@ -2722,58 +2870,58 @@ Please enter a name: Mod è¨Šæ¯ - + Textfiles 文字文件 - + A list of text-files in the mod directory. Mod 目錄裡包å«çš„æ–‡å­—文件的列表。 - + A list of text-files in the mod directory like readmes. Mod 目錄裡包å«çš„æ–‡å­—文件 (類似於自述文檔) 的列表。 - - + + Save 儲存 - + INI-Files Ini 檔案 - + This is a list of .ini files in the mod. Mod 目錄裡包å«çš„ Ini 檔案的列表。 - + This is a list of .ini files in the mod. These are usually used to configure the behaviour of mods if there are configurable parameters. Mod 目錄裡包å«çš„ Ini 檔案的列表,這些檔案通常用來é…ç½® Mod 的行為,如果有å¯è¨­å®šçš„åƒæ•¸çš„話。 - + Save changes to the file. 儲存更改到檔案中。 - + Save changes to the file. This overwrites the original. There is no automatic backup! å„²å­˜æ›´æ”¹åˆ°æª”æ¡ˆä¸­ï¼Œé€™å°‡æœƒè¦†è“‹åŽŸå§‹æª”æ¡ˆï¼Œä¸¦ä¸”æ²’æœ‰è‡ªå‹•å‚™ä»½ï¼ - + Images 圖片 - + Images located in the mod. 使–¼ Mod 中的圖片。 @@ -2790,13 +2938,13 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">這裡列出了所有在 Mod 目錄裡的圖片 (.jpg å’Œ .png),如截圖等。點擊其中的一個來ç²å¾—較大的視圖。</span></p></body></html> - - + + Optional ESPs å¯é¸ ESP - + List of esps and esms that can not be loaded by the game. 包å«äº†ä¸æœƒè¢«éŠæˆ²è¼‰å…¥çš„ esp å’Œ esm 的列表。 @@ -2820,12 +2968,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">大部分 Mod 沒有å¯é¸ esp,因此您正在看的很有å¯èƒ½åªæ˜¯ä¸€å€‹ç©ºåˆ—表。</span></p></body></html> - + This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view. - + List of esps and esms contained in this plugin that currently can not be loaded by the game. They will not even appear in the esp-list in the main MO-window. They usually contain optional functionality, see the readme. @@ -2833,103 +2981,103 @@ Most mods do not have optional esps, so chances are good you are looking at an e - + Make the selected mod in the lower list unavailable. 使下表中已é¸çš„ Mod 變得ä¸å¯ç”¨ã€‚ - + The selected esp (in the lower list) will be pushed into a subdirectory of the mod and will thus become "invisible" to the game. It can then no longer be activated. å·²é¸çš„ esp (在下表中) 將會被放入 Mod çš„å­ç›®éŒ„è£¡ï¼Œåœ¨éŠæˆ²è£¡å°‡æœƒè®Šå¾—“ä¸å¯è¦‹â€ï¼Œä¸¦ä¸”之後就ä¸èƒ½å†è¢«æ¿€æ´»äº†ã€‚ - + Move a file to the data directory. 移動一個檔案到 Data 目錄。 - + This moves a esp to the esp directory so it can be enabled in the main window. Please note that the ESP merely becomes "available", it will not necessarily be loaded! That is configured in the main window of omo. 移動一個 esp 檔案到 esp 目錄,這樣它就å¯ä»¥åœ¨ä¸»çª—å£ä¸­å•Ÿç”¨äº†ã€‚請注æ„: ESP åªæ˜¯è®Šå¾—“å¯ç”¨â€ï¼Œå®ƒå¹¶ä¸ä¸€å®šæœƒè¢«è¼‰å…¥ï¼æƒ³è¦è½½å…¥è¯·åœ¨ MO 的主窗å£ä¸­å‹¾é¸ã€‚ - + ESPs in the data directory and thus visible to the game. ESP 在 Data 目錄,因此它在游戲裡會變得å¯è¦‹ã€‚ - + These are the mod files that are in the (virtual) data directory of your game and will thus be selecteable in the esp list in the main window. 這些 Mod æª”æ¡ˆä½æ–¼æ‚¨æ¸¸æˆ²çš„ (虛擬) Data 目錄裡,因此它們在主窗å£çš„ esp 列表中會變得å¯é¸ã€‚ - + Available ESPs å¯ç”¨ ESP - + Conflicts è¡çª - + The following conflicted files are provided by this mod 以下è¡çªæª”案由此 Mod æä¾› - - + + File 檔案 - + Overwritten Mods 覆蓋的 Mod - + The following conflicted files are provided by other mods 以下è¡çªæª”案由其它 Mod æä¾› - + Providing Mod æä¾›çš„ Mod - + Non-Conflicted files éžè¡çªæª”案 - + Categories 類別 - + Primary Category - + Nexus Info Nç¶²è¨Šæ¯ - + Mod ID Mod ID - + Mod ID for this mod on Nexus. N網上此 Mod çš„ ID。 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2942,7 +3090,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">N網上此 Mod çš„ ID,如果您在 MO 中下載並安è£äº† Mod 它將被自動填寫,å¦å‰‡æ‚¨éœ€è¦æ‰‹å‹•è¼¸å…¥ã€‚è¦æ‰¾åˆ°æ­£ç¢ºçš„ ID,在N網找到 Mod。比如,åƒé€™æ¨£çš„連çµ: <a href=" http://www.skyrimnexus.com/downloads/file.php?id=1334"><span style=" text-decoration: underline; color:#0000ff;">http://www.skyrimnexus.com/downloads/file.php?id=1334</span></a> 在上é¢çš„例å­ä¸­ï¼Œ1334å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。此外: 上é¢çš„就是 Mod Organizer 在N網的連çµï¼Œç‚ºä»€éº¼ä¸ç¾åœ¨å°±åˆ°é‚£è£¡åŽ»è´ŠåŒæˆ‘呢?</span></a></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -2955,32 +3103,32 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Mod 的已安è£ç‰ˆæœ¬ï¼Œæ»‘é¼ æç¤ºå°‡é¡¯ç¤ºN網上的當å‰ç‰ˆæœ¬ï¼Œå·²å®‰è£çš„ç‰ˆæœ¬è™Ÿåªæœ‰åœ¨æ‚¨é€šéŽ MO ä¾†å®‰è£ Mod çš„æ™‚å€™æ‰æœƒè‡ªå‹•填寫。</span></p></body></html> - + Version 版本 - + Refresh 釿–°æ•´ç† - + Refresh all information from Nexus. - + Description æè¿° - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> @@ -3000,7 +3148,7 @@ p, li { white-space: pre-wrap; } 類型 - + Name å稱 @@ -3009,12 +3157,12 @@ p, li { white-space: pre-wrap; } å¤§å° (KB) - + Endorse - + Notes @@ -3027,17 +3175,17 @@ p, li { white-space: pre-wrap; } 您支æŒéŽé€™å€‹ Mod 了嗎? - + Filetree 檔案樹 - + A directory view of this mod 這個 Mod 的目錄視圖 - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3052,53 +3200,53 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">所åšçš„æ›´æ”¹å°‡æœƒç«‹å³ä½œç”¨æ–¼ç£ç¢Ÿä¸Šçš„æª”案,所以請</span><span style=" font-size:9pt; font-weight:600;">謹慎æ“作</span><span style=" font-size:9pt;">。</span></p></body></html> - + Previous - + Next 下一步 - + Close 關閉 - + &Delete &刪除 - + &Rename &釿–°å‘½å - + &Hide &éš±è— - + &Unhide &å–æ¶ˆéš±è— - + &Open &開啟 - + &New Folder &新增資料夾 - - + + Save changes? 儲存更改嗎? @@ -3107,79 +3255,79 @@ p, li { white-space: pre-wrap; } 儲存更改到 "%1"? - + File Exists 檔案已存在 - + A file with that name exists, please enter a new one 檔案å已存在,請輸入其它å稱 - + failed to move file 無法移動檔案 - + failed to create directory "optional" 無法建立 "optional" 目錄 - - + + Info requested, please wait 請求訊æ¯å·²ç™¼å‡ºï¼Œè«‹ç¨å¾Œ - + (description incomplete, please visit nexus) (æè¿°è¨Šæ¯ä¸å®Œæ•´ï¼Œè«‹è¨ªå•Nç¶²) - + Current Version: %1 ç•¶å‰ç‰ˆæœ¬: %1 - + No update available 沒有å¯ç”¨çš„æ›´æ–° - + Main ä¸»è¦æª”案 - - + + Save changes to "%1"? - + Update æ›´æ–° - + Optional å¯é¸æª”案 - + Old 舊檔 - + Misc 雜項 - + Unknown 未知 @@ -3188,13 +3336,13 @@ p, li { white-space: pre-wrap; } 請求失敗: %1 - + <a href="%1">Visit on Nexus</a> <a href="%1">訪å•Nç¶²</a> - - + + Confirm ç¢ºèª @@ -3211,98 +3359,98 @@ p, li { white-space: pre-wrap; } 例外: %1 - + Failed to delete %1 無法刪除 %1 - + Are sure you want to delete "%1"? 確定è¦åˆªé™¤ "%1" 嗎? - + Are sure you want to delete the selected files? 確定è¦åˆªé™¤æ‰€é¸çš„æª”案嗎? - - + + New Folder 新增資料夾 - + Failed to create "%1" 無法建立 "%1" - - + + Replace file? å–代檔案? - + There already is a hidden version of this file. Replace it? 已存在åŒå檔案,但該檔案被隱è—了。確定è¦è¦†è“‹å—Žï¼Ÿ - - + + File operation failed 檔案æ“作錯誤 - - + + Failed to remove "%1". Maybe you lack the required file permissions? 無法移除 "%1"。也許您需è¦è¶³å¤ çš„æª”案權é™ï¼Ÿ - - + + failed to rename %1 to %2 ç„¡æ³•é‡æ–°å‘½å %1 為 %2 - + There already is a visible version of this file. Replace it? 已存在åŒå檔案。確定è¦è¦†è“‹å—Žï¼Ÿ - + Un-Hide å–æ¶ˆéš±è— - + Hide éš±è— - + Please enter a name - - + + Error 錯誤 - + Invalid name. Must be a valid file name - + A tweak by that name exists - + Create Tweak @@ -3438,8 +3586,9 @@ p, li { white-space: pre-wrap; } - installed version: %1, newest version: %2 - ç•¶å‰ç‰ˆæœ¬: %1,最新版本: %2 + installed version: "%1", newest version: "%2" + installed version: %1, newest version: %2 + ç•¶å‰ç‰ˆæœ¬: %1,最新版本: %2 Name @@ -3640,17 +3789,17 @@ p, li { white-space: pre-wrap; } NexusInterface - + Failed to guess mod id for "%1", please pick the correct one - + empty response 未回應 - + invalid response 無效的回應 @@ -4616,85 +4765,93 @@ Right now this has very limited functionality ESP 檔案沒有找到: %1 - + Mod Index - - + + Flags + + + + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - + Confirm ç¢ºèª - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - - failed to open output file: %1 - 無法開啟輸出檔案: %1 + 無法開啟輸出檔案: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. 您的一些æ’ä»¶å稱無效ï¼é€™äº›æ’ä»¶ç„¡æ³•è¢«éŠæˆ²è¼‰å…¥ã€‚請查看 mo_interface.log 來確èªé‚£äº›å—影響的æ’件䏦釿–°å‘½å它們。 - + + BOSS dll incompatible + + + + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4707,17 +4864,17 @@ Right now this has very limited functionality 最高值 - + This plugin can't be disabled (enforced by the game) 這個æ’ä»¶ä¸èƒ½è¢«ç¦ç”¨ (ç”±éŠæˆ²åŸ·è¡Œ) - + Origin: %1 隸屬於: %1 - + Name å稱 @@ -4726,7 +4883,7 @@ Right now this has very limited functionality Mod å稱 - + Priority 優先級 @@ -4743,6 +4900,19 @@ Right now this has very limited functionality é€™äº›ç´¢å¼•æ±ºå®šäº†é‚£äº›é€šéŽ Mod 引入的物å“,法術等等的 ID。ID çš„ä¸€èˆ¬æ ¼å¼æ˜¯ "xxyyyyyy",其中 "xx" 就是這個的索引,而 "yyyyyy" 則是由 Mod 自己所决定的。 + + PreviewDialog + + + Preview + + + + + Close + 關閉 + + ProblemsDialog @@ -4788,82 +4958,72 @@ p, li { white-space: pre-wrap; } 無法套用 Ini 設定 - + invalid profile name %1 - + failed to create %1 無法建立 %1 - - failed to open temporary file - - - - - failed to open "%1" for writing - - - - + failed to write mod list: %1 - + failed to update tweaked ini file, wrong settings may be used: %1 - + failed to create tweaked ini: %1 - - - - - + + + + + invalid index %1 無效的索引 %1 - + Overwrite directory couldn't be parsed - + invalid priority %1 無效的優先級 %1 - + failed to parse ini file (%1) - + failed to parse ini file (%1): %2 ç„¡æ³•è§£æž Ini 檔案 (%1): %2 - - + + failed to modify "%1" - + Delete savegames? - + Do you want to delete local savegames? (If you select "No", the save games will show up again if you re-enable local savegames) @@ -5240,12 +5400,12 @@ p, li { white-space: pre-wrap; } 無法設定代ç†DLL加載 - + "%1" is missing "%1" 缺失 - + Permissions required éœ€è¦æ¬Šé™ @@ -5254,8 +5414,8 @@ p, li { white-space: pre-wrap; } ç•¶å‰çš„用戶帳戶沒有é‹è¡Œ Mod Organizer æ‰€éœ€çš„è¨ªå•æ¬Šé™ï¼Œå¿…è¦çš„修改將會自動進行 (MO 的目錄將會為當å‰ç”¨æˆ¶å¸³æˆ¶è€Œè®Šå¾—å¯å¯«),您將被請求使用管ç†å“¡æ¬Šé™åŸ·è¡Œ "mo_helper.exe"。 - - + + Woops 糟糕 @@ -5264,66 +5424,66 @@ p, li { white-space: pre-wrap; } Mod Organizer 崩潰了ï¼è¦ç”Ÿæˆè¨ºæ–·æª”案嗎?如果您發é€é€™å€‹æª”案到我的郵箱 (sherb@gmx.net) 裡的話,這個 Bug 會很有å¯èƒ½è¢«ä¿®å¾©ã€‚ - + The current user account doesn't have the required access rights to run Mod Organizer. The neccessary changes can be made automatically (the MO directory will be made writable for the current user account). You will be asked to run "helper.exe" with administrative rights. - + ModOrganizer has crashed! Should a diagnostic file be created? If you send me this file (%1) to sherb@gmx.net, the bug is a lot more likely to be fixed. Please include a short description of what you were doing when the crash happened - + ModOrganizer has crashed! Unfortunately I was not able to write a diagnostic file: %1 Mod Organizer 崩潰了ï¼éºæ†¾çš„æ˜¯ï¼Œæˆ‘無法生æˆè¨ºæ–·æª”案: %1 - - + + Mod Organizer Mod Organizer - + An instance of Mod Organizer is already running Mod Organizer 的一個實例正在é‹è¡Œ - + No game identified in "%1". The directory is required to contain the game binary and its launcher. "%1" ä¸­æœªæª¢æ¸¬åˆ°éŠæˆ²ã€‚請確ä¿è©²è·¯å¾‘中包å«éŠæˆ²åŸ·è¡Œç¨‹å¼ä»¥åŠå°æ‡‰çš„ Launcher 檔案。 - - + + Please select the game to manage è«‹é¸æ“‡æƒ³è¦ç®¡ç†çš„éŠæˆ² - + Please select the game edition you have (MO can't start the game correctly if this is set incorrectly!) - + Please use "Help" from the toolbar to get usage instructions to all elements 請使用工具列上的“幫助â€ä¾†ç²å¾—所有元素的使用說明 - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 無法解æžé…置檔案 %1: %2 - - + + failed to find "%1" 未能找到 "%1" @@ -5332,17 +5492,17 @@ p, li { white-space: pre-wrap; } 編碼錯誤,請å‘作者彙報此 Bug 並且附上 mo_interface.log æª”æ¡ˆï¼ - + failed to access %1 ç„¡æ³•è¨ªå• %1 - + failed to set file time %1 無法設定檔案時間 %1 - + failed to create %1 無法建立 %1 @@ -5378,12 +5538,12 @@ p, li { white-space: pre-wrap; } 無法開啟 %1 - + Script Extender 腳本拓展 - + Proxy DLL 代ç†DLL @@ -5408,22 +5568,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe - + failed to spawn "%1": %2 ç„¡æ³•ç”Ÿæˆ "%1": %2 - + "%1" doesn't exist "%1" ä¸å­˜åœ¨ - + failed to inject dll into "%1": %2 無法注入 dll 到 "%1": %2 - + failed to run "%1" 無法é‹è¡Œ "%1" @@ -5484,6 +5644,11 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe invalid game type %1 + + + failed to open temporary file + + QueryOverwriteDialog @@ -5718,18 +5883,18 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe 需è¦ç®¡ç†å“¡çš„æ¬Šé™ä¾†æ›´æ”¹é€™å€‹ã€‚ - - + + attempt to store setting for unknown plugin "%1" - + Confirm ç¢ºèª - + Changing the mod directory affects all your profiles! Mods not present (or named differently) in the new location will be disabled in all profiles. There is no way to undo this unless you backed up your profiles manually. Proceed? 修改 Mod 目錄將會影響您的é…ç½®ï¼æ–°ç›®éŒ„中ä¸å­˜åœ¨ (或者å稱ä¸åŒ) çš„ Mod 將在所有é…ç½®ä¸­è¢«ç¦æ­¢æŽ‰ã€‚æ­¤æ“作無法撤銷,所以執行此æ“作å‰å»ºè­°å…ˆå‚™ä»½ä¸‹è‡ªå·±çš„é…置。立å³åŸ·è¡Œï¼Ÿ @@ -5878,52 +6043,57 @@ p, li { white-space: pre-wrap; } é…ç½® Mod 類別 - + Disable automatic internet features - + Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser) - + Offline Mode - + Use a proxy for network connections. - + Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy. - + Use HTTP Proxy (Uses System Settings) - - Known Servers (Dynamically updated every download) + + Associate with "Download with manager" links + + + + + Known Servers (updated on download) - + Preferred Servers (Drag & Drop) - + Blacklisted Plugins (use <del> to remove): - + Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -5992,12 +6162,12 @@ p, li { white-space: pre-wrap; } 自動登入 - + Username 帳號 - + Password 密碼 @@ -6014,52 +6184,52 @@ p, li { white-space: pre-wrap; } 首é¸å¤–部æµè¦½å™¨ - + Plugins - + Author: - + Version: - + Description: - + Key - + Value - + Workarounds 解決方案 - + Steam App ID Steam App ID - + The Steam AppID for your game æ‚¨éŠæˆ²çš„ Steam AppID - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -6086,12 +6256,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">其中 22380 å°±æ˜¯æ‚¨è¦æ‰¾çš„ ID。</span></p></body></html> - + Load Mechanism 加載機制 - + Select loading mechanism. See help for details. 鏿“‡åŠ è¼‰æ©Ÿåˆ¶ï¼Œä½¿ç”¨å¹«åŠ©æŸ¥çœ‹æ›´å¤šç´°ç¯€ã€‚ @@ -6116,17 +6286,17 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt; font-weight:600;">代ç†DLL</span><span style=" font-size:9pt;"> 在這種模å¼ä¸‹ï¼ŒMO 將替æ›ä¸€å€‹éŠæˆ²çš„ dll 來加載 MO (當然原來的 dll),這僅é©ç”¨äºŽ Steam ç‰ˆæœ¬çš„éŠæˆ²ï¼Œä¸¦ä¸”åªåœ¨ Skyrim 上åšéŽæ¸¬è©¦ã€‚è«‹åªåœ¨å…¶å®ƒåŠ è¼‰æ©Ÿåˆ¶ä¸èƒ½å·¥ä½œçš„æƒ…æ³ä¸‹æ‰ä½¿ç”¨å®ƒã€‚</span></p></body></html> - + NMM Version NMM 版本 - + The Version of Nexus Mod Manager to impersonate. æƒ³è¦æ¨¡æ“¬çš„ NMM 版本號。 - + Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -6139,7 +6309,7 @@ tl;dr-version: If Nexus-features don't work, insert the current version num 變更版本號: 如果Nç¶²åŠŸèƒ½ä¸æ­£å¸¸äº†ï¼Œé‚£éº¼è«‹åœ¨é€™è£¡è¼¸å…¥ NMM 的當å‰ç‰ˆæœ¬è™Ÿä¸¦é‡è©¦ä¸€ä¸‹ã€‚ - + These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here. @@ -6152,48 +6322,48 @@ tl;dr-version: If Nexus-features don't work, insert the current version num 例如: 0.33.1 - + Enforces that inactive ESPs and ESMs are never loaded. 強制執行,未激活的 ESP å’Œ ESM 將䏿œƒè¢«åŠ è¼‰ã€‚ - + It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded. çœ‹ä¾†ï¼ŒéŠæˆ²å¶çˆ¾æœƒåŠ è¼‰ä¸€äº›æ²’æœ‰è¢«æ¿€æ´»æˆæ’ä»¶çš„ ESP 或 ESM 檔案。 我還尚ä¸çŸ¥é“它在什麼情æ³ä¸‹æœƒé€™æ¨£ï¼Œä½†æ˜¯æœ‰ç”¨æˆ¶å ±å‘Šèªªå®ƒåœ¨æŸäº›æƒ…æ³ä¸‹æ˜¯å¾ˆä¸å¿…è¦çš„。如果這個é¸é …被é¸ä¸­ï¼Œé‚£éº¼åœ¨åˆ—表中沒有被勾é¸çš„ ESP å’Œ ESM 將䏿œƒåœ¨éŠæˆ²ä¸­å‡ºç¾ï¼Œä¸¦ä¸”ä¹Ÿä¸æœƒè¢«è¼‰å…¥ã€‚ - + Hide inactive ESPs/ESMs éš±è—æœªæ¿€æ´»çš„ ESP 或 ESM - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) - + If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled. - + Force-enable game files - - + + For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI! å°æ–¼å¤©éš›ï¼Œé€™å€‹å¯ä»¥ç”¨ä¾†å–ä»£æª”æ¡ˆç„¡æ•ˆåŒ–ï¼Œå®ƒå°‡æœƒä½¿æ¡£æ¡ˆæ— æ•ˆåŒ–å°æ‰€æœ‰é…置都變得多余。 ä½†æ˜¯å°æ–¼å…¶å®ƒéŠæˆ²ï¼Œé€™ä¸¦ä¸æ˜¯ä¸€å€‹å¾ˆå¥½çš„æ›¿ä»£å“ï¼ - + Back-date BSAs é‡ç½® BSA 檔案修改日期 @@ -6202,27 +6372,27 @@ For the other games this is not a sufficient replacement for AI! 這些是 Mod Organizer çš„å•題解決方案。它們通常是ä¸å¿…修改的,請確ä¿åœ¨æ‚¨è®Šæ›´äº†é€™è£¡çš„任何æ±è¥¿ä¹‹å‰å·²ç¶“讀éŽäº†å¹«åŠ©æ–‡æª”ã€‚ - + Select download directory 鏿“‡ä¸‹è¼‰ç›®éŒ„ - + Select mod directory 鏿“‡ Mod 目錄 - + Select cache directory 鏿“‡ç·©å­˜ç›®éŒ„ - + Confirm? 確èªï¼Ÿ - + This will make all dialogs show up again where you checked the "Remember selection"-box. Continue? æ­¤æ“作將導致之å‰å‹¾é¸çš„â€œè¨˜ä½æˆ‘çš„é¸é …â€è©¢å•è¦–çª—å†æ¬¡å‡ºç¾ï¼Œç¢ºå®šè¦é‡ç½®å°è©±æ–¹å¡Šï¼Ÿ diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index f5e0f1eb..ec063994 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -96,7 +96,6 @@ PluginList::PluginList(QObject *parent) PluginList::~PluginList() { if (m_BOSS != NULL) { - m_BOSS->DestroyBossDb(m_BOSSDB); m_BOSS->CleanUpAPI(); delete m_BOSS; m_BOSS = NULL; @@ -576,9 +575,7 @@ void PluginList::refreshLoadOrder() // find the location to insert at while ((targetPrio < static_cast(m_ESPs.size() - 1)) && (m_ESPs[m_ESPsByPriority[targetPrio]].m_LoadOrder < iter->first)) { -// if (QString::compare(m_ESPs[m_ESPsByPriority[targetPrio]].m_Name, iter->second) != 0) { - ++targetPrio; -// } + ++targetPrio; } if (static_cast(targetPrio) >= m_ESPs.size()) { @@ -636,23 +633,27 @@ void outputBossLog(const QString &filename) } -void PluginList::initBoss() +boss_db PluginList::initBoss() { - m_BOSS = new BossDLL(TEXT("dlls\\boss.dll")); + boss_db result; + bool firstRun = (m_BOSS == nullptr); + if (firstRun) { + m_BOSS = new BossDLL(TEXT("dlls\\boss.dll")); - if (!m_BOSS->IsCompatibleVersion(2,1,1)) { - throw MyException(tr("BOSS dll incompatible")); - } - uint8_t *versionString; - if (m_BOSS->GetVersionString(&versionString) != BossDLL::RESULT_OK) { - THROW_BOSS_ERROR(m_BOSS) - } - qDebug("using boss version %s", versionString); + if (!m_BOSS->IsCompatibleVersion(2,1,1)) { + throw MyException(tr("BOSS dll incompatible")); + } + uint8_t *versionString; + if (m_BOSS->GetVersionString(&versionString) != BossDLL::RESULT_OK) { + THROW_BOSS_ERROR(m_BOSS) + } + qDebug("using boss version %s", versionString); - m_TempFile.open(); m_TempFile.close(); // yeah, stupid, but open is required to generate the name - m_BOSS->SetLoggerOutput(m_TempFile.fileName().toLocal8Bit().constData(), 4); + m_TempFile.open(); m_TempFile.close(); // yeah, stupid, but open is required to generate the name + m_BOSS->SetLoggerOutput(m_TempFile.fileName().toLocal8Bit().constData(), 4); + } - if (m_BOSS->CreateBossDb(&m_BOSSDB, BossDLL::SKYRIM, NULL) != BossDLL::RESULT_OK) { + if (m_BOSS->CreateBossDb(&result, BossDLL::SKYRIM, NULL) != BossDLL::RESULT_OK) { uint8_t *message; m_BOSS->GetLastErrorDetails(&message); std::string messageCopy(reinterpret_cast(message)); @@ -664,23 +665,26 @@ void PluginList::initBoss() QString masterlistName = QDir::toNativeSeparators(qApp->applicationDirPath() + "/boss/masterlist.txt"); - uint32_t res = m_BOSS->UpdateMasterlist(m_BOSSDB, U8(masterlistName.toUtf8().constData())); - qApp->processEvents(); - if (res == BossDLL::RESULT_OK) { - qDebug("boss masterlist updated"); - } else if (res == BossDLL::RESULT_NO_UPDATE_NECESSARY) { - qDebug("boss masterlist already up-to-date"); - } else { - THROW_BOSS_ERROR(m_BOSS) + if (firstRun) { + uint32_t res = m_BOSS->UpdateMasterlist(result, U8(masterlistName.toUtf8().constData())); + qApp->processEvents(); + if (res == BossDLL::RESULT_OK) { + qDebug("boss masterlist updated"); + } else if (res == BossDLL::RESULT_NO_UPDATE_NECESSARY) { + qDebug("boss masterlist already up-to-date"); + } else { + THROW_BOSS_ERROR(m_BOSS) + } } - if (m_BOSS->Load(m_BOSSDB, + if (m_BOSS->Load(result, U8(masterlistName.toUtf8().constData()), U8(QDir::toNativeSeparators(qApp->applicationDirPath() + "/boss/userlist.txt").toUtf8().constData())) != BossDLL::RESULT_OK) { THROW_BOSS_ERROR(m_BOSS) } + return result; } -void PluginList::convertPluginListForBoss(boost::ptr_vector &inputPlugins, std::vector &activePlugins) +void PluginList::convertPluginListForBoss(boss_db db, boost::ptr_vector &inputPlugins, std::vector &activePlugins) { foreach (int idx, m_ESPsByPriority) { QString fileName = m_ESPs[idx].m_Name; @@ -693,51 +697,78 @@ void PluginList::convertPluginListForBoss(boost::ptr_vector &inputPlugi } inputPlugins.push_back(nameU8); } - if (m_BOSS->SetActivePluginsDumb(m_BOSSDB, &activePlugins[0], activePlugins.size()) != BossDLL::RESULT_OK) { + if (m_BOSS->SetActivePluginsDumb(db, &activePlugins[0], activePlugins.size()) != BossDLL::RESULT_OK) { THROW_BOSS_ERROR(m_BOSS) } } -void PluginList::applyBOSSSorting(uint8_t **pluginList, size_t size, int &priority, bool recognized, const char *extension) +void PluginList::applyBOSSSorting(boss_db db, std::map &lockedLoadOrder, uint8_t **pluginList, size_t size, + int &priority, int &loadOrder, bool recognized, const char *extension) { for (size_t i = 0; i < size; ++i) { QString name = QString::fromUtf8(reinterpret_cast(pluginList[i])).toLower(); if (name.endsWith(extension)) { auto iter = m_ESPsByName.find(name); if (iter == m_ESPsByName.end()) { - throw MyException("boss returned invalid data"); + // boss seems to report plugins from userlist as sorted that aren't even installed + continue; } + BossMessage *message; size_t numMessages = 0; - m_BOSS->GetPluginMessages(m_BOSSDB, pluginList[i], &message, &numMessages); + m_BOSS->GetPluginMessages(db, pluginList[i], &message, &numMessages); BossInfo newInfo; for (size_t im = 0; im < numMessages; ++im) { newInfo.m_BOSSMessages.append(QString::fromUtf8(reinterpret_cast(message[im].message))); } newInfo.m_BOSSUnrecognized = !recognized; m_BossInfo[name] = newInfo; + + // locked order plugins are not inserted by boss sorting ... + if (m_LockedOrder.find(name) != m_LockedOrder.end()) { + continue; + } + + // ... but by their enforced priority + while (lockedLoadOrder.find(loadOrder) != lockedLoadOrder.end()) { + auto lloIter = lockedLoadOrder.find(loadOrder); + auto nameIter = m_ESPsByName.find(lloIter->second); + if (nameIter != m_ESPsByName.end()) { + m_ESPs[nameIter->second].m_Priority = priority++; + if (m_ESPs[nameIter->second].m_Enabled) { + m_ESPs[nameIter->second].m_LoadOrder = loadOrder++; + } else { + m_ESPs[nameIter->second].m_LoadOrder = -1; + } + } + lockedLoadOrder.erase(lloIter); + } + m_ESPs[iter->second].m_Priority = priority++; + if (m_ESPs[iter->second].m_Enabled) { + m_ESPs[iter->second].m_LoadOrder = loadOrder++; + } else { + m_ESPs[iter->second].m_LoadOrder = -1; + } } } } void PluginList::bossSort() { - if (m_BOSS == NULL) { - // first run, check boss compatibility and update - initBoss(); - } + boss_db db = initBoss(); + ON_BLOCK_EXIT([&] { m_BOSS->DestroyBossDb(db); }); // create a boss-compatible representation of our current mod list. boost::ptr_vector inputPlugins; std::vector activePlugins; - convertPluginListForBoss(inputPlugins, activePlugins); + convertPluginListForBoss(db, inputPlugins, activePlugins); // sort mods in-memory uint8_t **sortedPlugins; uint8_t **unrecognizedPlugins; size_t sizeSorted, sizeUnrecognized; - if (m_BOSS->SortCustomMods(m_BOSSDB, + if (m_BOSS->SortCustomMods(db, inputPlugins.c_array(), inputPlugins.size(), &sortedPlugins, &sizeSorted, &unrecognizedPlugins, &sizeUnrecognized) != BossDLL::RESULT_OK) { @@ -751,17 +782,36 @@ void PluginList::bossSort() ChangeBracket layoutChange(this); + std::map lockedLoadOrder; + std::for_each(m_LockedOrder.begin(), m_LockedOrder.end(), + [&lockedLoadOrder] (const std::pair &ele) { lockedLoadOrder[ele.second] = ele.first; }); + int priority = 0; - applyBOSSSorting(sortedPlugins, sizeSorted, priority, true, "esm"); - applyBOSSSorting(unrecognizedPlugins, sizeUnrecognized, priority, false, "esm"); - applyBOSSSorting(sortedPlugins, sizeSorted, priority, true, "esp"); - applyBOSSSorting(unrecognizedPlugins, sizeUnrecognized, priority, false, "esp"); + int loadOrder = 0; + applyBOSSSorting(db, lockedLoadOrder, sortedPlugins, sizeSorted, priority, loadOrder, true, "esm"); + applyBOSSSorting(db, lockedLoadOrder, unrecognizedPlugins, sizeUnrecognized, priority, loadOrder, false, "esm"); + applyBOSSSorting(db, lockedLoadOrder, sortedPlugins, sizeSorted, priority, loadOrder, true, "esp"); + applyBOSSSorting(db, lockedLoadOrder, unrecognizedPlugins, sizeUnrecognized, priority, loadOrder, false, "esp"); + + // applyBOSSSorting removed entries from lockedLoadOrder when they were inserted so everything that's left is plugins + // locked to the end of the list. Now this inserts the rest in the ascending priority order. If the list is too short + // to place the plugins in their intended position then this guarantees plugins are kept in the correct relative order + // but it doesn't minimize the number of misplaced plugins. + for (auto iter = lockedLoadOrder.begin(); iter != lockedLoadOrder.end(); ++iter) { + auto nameIter = m_ESPsByName.find(iter->second); + if (nameIter != m_ESPsByName.end()) { + m_ESPs[nameIter->second].m_Priority = priority++; + if (m_ESPs[nameIter->second].m_Enabled) { + m_ESPs[nameIter->second].m_LoadOrder = loadOrder++; + } else { + m_ESPs[nameIter->second].m_LoadOrder = -1; + } + } + } // inform view of the changed data updateIndices(); layoutChange.finish(); - syncLoadOrder(); - emit dataChanged(this->index(0, 0), this->index(m_ESPs.size(), columnCount())); m_Refreshed(); } diff --git a/src/pluginlist.h b/src/pluginlist.h index 95f90e09..e45746f2 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -202,7 +202,7 @@ public: // implementation of the QAbstractTableModel interface virtual Qt::DropActions supportedDropActions() const { return Qt::MoveAction; } virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); - void applyBOSSSorting(uint8_t **pluginList, size_t size, int &priority, bool recognized, const char *extension); + void applyBOSSSorting(boss_db db, std::map &lockedLoadOrder, uint8_t **pluginList, size_t size, int &priority, int &loadOrder, bool recognized, const char *extension); public slots: /** @@ -351,8 +351,8 @@ private: void testMasters(); - void initBoss(); - void convertPluginListForBoss(boost::ptr_vector &inputPlugins, std::vector &activePlugins); + boss_db initBoss(); + void convertPluginListForBoss(boss_db db, boost::ptr_vector &inputPlugins, std::vector &activePlugins); private: @@ -380,7 +380,6 @@ private: SignalRefreshed m_Refreshed; BossDLL *m_BOSS; - boss_db m_BOSSDB; QTemporaryFile m_TempFile; }; diff --git a/src/version.rc b/src/version.rc index 14b2781f..426e927e 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,1,1,0 -#define VER_FILEVERSION_STR "1,1,1,0\0" +#define VER_FILEVERSION 1,1,2,0 +#define VER_FILEVERSION_STR "1,1,2,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 9c8e43853dfeb6ac80faffe0960222ff0f087fd3 Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 12 Feb 2014 21:00:49 +0100 Subject: - a few hooks will now somewhat handle file names starting with \\?\ - mod meta information is now (also) saved by a timer to reduce the likelyhood of a data loss in case of a crash - mod meta files are now written to a temporary file and then renamed to real name to reduce chance of breaking the file - updated minimum compatible nmm version to 0.47.0 - bugfix: defaults for newestVersion, version and installationFile when creating an empty mod were integers instead of strings - bugfix: "Plugins" and "Archives" weren't translatable --- src/mainwindow.cpp | 19 +- src/mainwindow.h | 3 + src/mainwindow.ui | 4 +- src/modinfo.cpp | 62 ++++-- src/modinfo.h | 2 +- src/organizer_cs.ts | 498 ++++++++++++++++++++++++------------------------ src/organizer_de.ts | 500 +++++++++++++++++++++++++------------------------ src/organizer_es.ts | 500 +++++++++++++++++++++++++------------------------ src/organizer_fr.ts | 500 +++++++++++++++++++++++++------------------------ src/organizer_ru.ts | 498 ++++++++++++++++++++++++------------------------ src/organizer_tr.ts | 500 +++++++++++++++++++++++++------------------------ src/organizer_zh_CN.ts | 498 ++++++++++++++++++++++++------------------------ src/organizer_zh_TW.ts | 498 ++++++++++++++++++++++++------------------------ src/settings.cpp | 2 +- 14 files changed, 2111 insertions(+), 1973 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d83d4d06..12db5e2b 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -295,6 +295,10 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget m_CheckBSATimer.setSingleShot(true); connect(&m_CheckBSATimer, SIGNAL(timeout()), this, SLOT(checkBSAList())); + m_SaveMetaTimer.setSingleShot(false); + connect(&m_SaveMetaTimer, SIGNAL(timeout()), this, SLOT(saveModMetas())); + m_SaveMetaTimer.start(5000); + m_DirectoryRefresher.moveToThread(&m_RefresherThread); m_RefresherThread.start(); @@ -1208,10 +1212,10 @@ IModInterface *MainWindow::createMod(GuessedValue &name) QSettings settingsFile(targetDirectory.mid(0).append("/meta.ini"), QSettings::IniFormat); settingsFile.setValue("modid", 0); - settingsFile.setValue("version", 0); - settingsFile.setValue("newestVersion", 0); + settingsFile.setValue("version", ""); + settingsFile.setValue("newestVersion", ""); settingsFile.setValue("category", 0); - settingsFile.setValue("installationFile", 0); + settingsFile.setValue("installationFile", ""); return ModInfo::createFrom(QDir(targetDirectory), &m_DirectoryStructure).data(); // } } @@ -1956,6 +1960,15 @@ void MainWindow::checkBSAList() } +void MainWindow::saveModMetas() +{ + for (unsigned int i = 0; i < ModInfo::getNumMods(); ++i) { + ModInfo::Ptr modInfo = ModInfo::getByIndex(i); + modInfo->saveMeta(); + } + } + + void MainWindow::fixCategories() { for (unsigned int i = 0; i < ModInfo::getNumMods(); ++i) { diff --git a/src/mainwindow.h b/src/mainwindow.h index 527db8b3..250f2a48 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -352,6 +352,7 @@ private: bool m_DirectoryUpdate; bool m_ArchivesInit; QTimer m_CheckBSATimer; + QTimer m_SaveMetaTimer; QTime m_StartTime; SaveGameInfoWidget *m_CurrentSaveView; @@ -495,6 +496,8 @@ private slots: void startExeAction(); void checkBSAList(); + void saveModMetas(); + void updateStyle(const QString &style); void modlistChanged(const QModelIndex &index, int role); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index f3bb425c..110c14c6 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -602,7 +602,7 @@ p, li { white-space: pre-wrap; } - Plugins + Plugins @@ -738,7 +738,7 @@ p, li { white-space: pre-wrap; } - Archives + Archives diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 85612b32..ff44b392 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -373,26 +373,48 @@ void ModInfoRegular::saveMeta() { // only write meta data if the mod directory exists if (m_MetaInfoChanged && QFile::exists(absolutePath())) { - QSettings metaFile(absolutePath().append("/meta.ini"), QSettings::IniFormat); - if (metaFile.status() == QSettings::NoError) { - std::set temp = m_Categories; - temp.erase(m_PrimaryCategory); - metaFile.setValue("category", QString("%1").arg(m_PrimaryCategory) + "," + SetJoin(temp, ",")); - metaFile.setValue("newestVersion", m_NewestVersion.canonicalString()); - metaFile.setValue("ignoredVersion", m_IgnoredVersion.canonicalString()); - metaFile.setValue("version", m_Version.canonicalString()); - metaFile.setValue("modid", m_NexusID); - metaFile.setValue("notes", m_Notes); - metaFile.setValue("nexusDescription", m_NexusDescription); - metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate)); - if (m_EndorsedState != ENDORSED_UNKNOWN) { - metaFile.setValue("endorsed", m_EndorsedState); + bool success = false; + { + QSettings metaFile(absolutePath().append("/meta.ini.new"), QSettings::IniFormat); + if (metaFile.status() == QSettings::NoError) { + std::set temp = m_Categories; + temp.erase(m_PrimaryCategory); + metaFile.setValue("category", QString("%1").arg(m_PrimaryCategory) + "," + SetJoin(temp, ",")); + metaFile.setValue("newestVersion", m_NewestVersion.canonicalString()); + metaFile.setValue("ignoredVersion", m_IgnoredVersion.canonicalString()); + metaFile.setValue("version", m_Version.canonicalString()); + if (m_NexusID != -1) { + metaFile.setValue("modid", m_NexusID); + } + metaFile.setValue("notes", m_Notes); + metaFile.setValue("nexusDescription", m_NexusDescription); + metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate)); + if (m_EndorsedState != ENDORSED_UNKNOWN) { + metaFile.setValue("endorsed", m_EndorsedState); + } + metaFile.sync(); // sync needs to be called to ensure the file is created + + if (metaFile.status() == QSettings::NoError) { + success = true; + m_MetaInfoChanged = false; + } else { + reportError(tr("failed to write %1/meta.ini: error %2").arg(absolutePath()).arg(metaFile.status())); + } + } else { + reportError(tr("failed to write %1/meta.ini: error %2").arg(absolutePath()).arg(metaFile.status())); + } + } + if (success) { + if (!QFile::remove(absolutePath().append("/meta.ini"))) { + qCritical("failed to remove %s", qPrintable(absolutePath().append("/meta.ini"))); + return; + } + if (QFile::rename(absolutePath().append("/meta.ini.new"), absolutePath().append("/meta.ini"))) { + qDebug("%s written", qPrintable(absolutePath().append("/meta.ini"))); + } else { + qCritical("writing %s failed", qPrintable(absolutePath().append("/meta.ini"))); } - metaFile.sync(); // sync needs to be called to ensure the file is created - } else { - reportError(tr("failed to write %1/meta.ini: %2").arg(absolutePath()).arg(metaFile.status())); } - m_MetaInfoChanged = false; } } @@ -556,6 +578,10 @@ void ModInfoRegular::setVersion(const VersionInfo &version) m_MetaInfoChanged = true; } +void ModInfoRegular::setNewestVersion(const VersionInfo &version) { + m_NewestVersion = version; +} + void ModInfoRegular::setNexusDescription(const QString &description) { m_NexusDescription = description; diff --git a/src/modinfo.h b/src/modinfo.h index 83654c7e..b7d72584 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -592,7 +592,7 @@ public: * @todo this function should be made obsolete. All queries for mod information should go through * this class so no public function for this change is required **/ - void setNewestVersion(const MOBase::VersionInfo &version) { m_NewestVersion = version; } + void setNewestVersion(const MOBase::VersionInfo &version); /** * @brief changes/updates the nexus description text diff --git a/src/organizer_cs.ts b/src/organizer_cs.ts index 08f8d70e..654ca00c 100644 --- a/src/organizer_cs.ts +++ b/src/organizer_cs.ts @@ -1638,11 +1638,21 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data Data + + + Plugins + + Sort + + + Archives + + refresh data-directory overview @@ -1655,8 +1665,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh ZnovunaÄíst @@ -1836,7 +1846,7 @@ p, li { white-space: pre-wrap; } - + Update @@ -1847,7 +1857,7 @@ p, li { white-space: pre-wrap; } - + No Problems Žádné problémy @@ -1880,37 +1890,37 @@ V souÄasnosti má omezenou funkcionalitu - + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems Problémy - + There are potential problems with your setup Existují potenciální problémy s programem - + Everything seems to be in order VÅ¡echno se jeví v pořádku @@ -1927,22 +1937,22 @@ V souÄasnosti má omezenou funkcionalitu <li>dotNet není nainstalován nebo je neaktuální. Tohle vyžaduje NCC. NajdÄ›te ho zde: <a href="%1">%1</a></li> - + Help on UI Pomoc s programem - + Documentation Wiki Dokumentace wiki - + Report Issue Nahlásit chybu - + Tutorials @@ -1951,93 +1961,92 @@ V souÄasnosti má omezenou funkcionalitu poÅ™adí naÄtení se nezdaÅ™ilo uložit - + failed to save load order: %1 zlyhalo uložení poÅ™adí naÄtení: %1 - failed to save archives order, do you have write access to "%1"? - zlyhal zápis poÅ™adí archivů, máte administrátorsky povoleno zapisovat na "%1"? + zlyhal zápis poÅ™adí archivů, máte administrátorsky povoleno zapisovat na "%1"? - + About - + About Qt - + Name Jméno - + Please enter a name for the new profile Prosím zadej jméno pro nový profil - + failed to create profile: %1 Zlyhalo vytvoÅ™ení profilu: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Probíhá stahování - + There are still downloads in progress, do you really want to quit? Pořád probíhá stahování, urÄitÄ› chcete skonÄit (zruší stahování)? - + failed to read savegame: %1 nezdaÅ™ilo se naÄíst pozici: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" Zlyhal start "%1" - + Waiting ÄŒekání - + Please press OK once you're logged into steam. Stiskni OK až budeÅ¡ pÅ™ihlášen do Steamu. @@ -2046,331 +2055,336 @@ V souÄasnosti má omezenou funkcionalitu "%1" nenalezeno - + Start Steam? Spustit Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam by mÄ›l běžet aby se podaÅ™ilo spustit hru. Má se MO pokusit spustit steam teÄ? - + Also in: <br> Také v: <br> - + No conflict Žádné konflikty - + <Edit...> <Edit...> - + This bsa is enabled in the ini file so it may be required! Tenhle BSA soubor je aktivován v ini souboru, tak zÅ™ejmÄ› je vyžadován! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Tento archív se stejnÄ› naÄte, protože existuje plugin se stejným jménem ale jeho soubory nebudou zodpovídat poÅ™adí nainstalování! - + Activating Network Proxy - - + + Installation successful Instalace úspěšná - - + + Configure Mod Konfigurace Modu - - + + This mod contains ini tweaks. Do you want to configure them now? Tenhle mod obsahuje ini úpravy. Chcete je nastavovat teÄ? - - + + mod "%1" not found mod "%1" nenalezen - - + + Installation cancelled Instalace zruÅ¡ena - - + + The mod was not installed completely. Tento mod se nenainstaloval úplne. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Vyber Mod - + Mod Archive Archív Modu - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Stahování zaÄalo - + failed to update mod list: %1 nezdaÅ™ilo se aktualizovat seznam modů: %1 - + failed to spawn notepad.exe: %1 zlyhalo otevÅ™ení notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 NezdaÅ™ilo se zmÄ›nit původní jméno: %1 - + + failed to move "%1" from mod "%2" to "%3": %4 + + + + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <VÅ¡echny> - + <Checked> <Aktivované> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + <Unchecked> <Neaktivované> - + <Update> <Aktualizace> - + <No category> <Bez kategorie> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 NezdaÅ™ilo se pÅ™ejmenovat mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" NezdaÅ™ilo se pÅ™ejmenovat "%1" na "%2" - - - - + + + + Confirm Potvrdit - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 NezdaÅ™ilo se odstranit mod: %1 - - + + Failed Zlyhání - + Installation file no longer exists InstalaÄní soubor již neexistuje - + Mods installed with old versions of MO can't be reinstalled in this way. Mody nainstalovány staršími verzemi MO nemůžou být pÅ™einstalovány tímto spůsobem. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA Extrakce BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Tento mod obsahuje alespoň jeden BSA soubor. Chcete rozpakovat i jeho obsah? (BSA se po úspěšném rozpakování odstrání. Pokud nevíte, co je BSA, zvolte možnost Ne) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Tento archiv má neplatné identifikaÄní souÄty. Nekteré soubory mohou být poÅ¡kozeny. - + Nexus ID for this Mod is unknown Nexus ID pro tento Mod není známo @@ -2383,92 +2397,92 @@ This function will guess the versioning scheme under the assumption that the ins Zvol Prioritu - + Really enable all visible mods? Opravdu aktivovat vÅ¡echny zobrazené mody? - + Really disable all visible mods? Opravdu deaktivovat vÅ¡echny zobrazené mody? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instaluj Mod... - + Enable all visible Aktivuj vÅ¡echny v seznamu - + Disable all visible Deaktivuj vÅ¡echny v seznamu - + Check all for update Skontroluj vÅ¡echny pro aktualizaci - + Export to csv... - + Sync to Mods... Synchronizuj s Mody... - + Restore Backup - + Remove Backup... @@ -2477,362 +2491,362 @@ This function will guess the versioning scheme under the assumption that the ins OznaÄ Kategorii - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... PÅ™ejmenuj Mod... - + Remove Mod... Odstranit Mod... - + Reinstall Mod PÅ™einstaluj Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus NavÅ¡tiv na Nexusu - + Open in explorer OtevÅ™i v prohlížeÄi - + Information... Informace... - - + + Exception: Výnimky: - - + + Unknown exception Neznámá výnimka - + <Multiple> - + Really delete "%1"? - + Fix Mods... Oprav Mody... - + Delete - - + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! Není možné zmÄ›nit cíl pro stahování když probíhá stahování! - + Download failed Stahování zlyhalo - + failed to write to file %1 NezdaÅ™il se zápis do souboru %1 - + %1 written %1 zapsáno - + Select binary Vyber binární soubor - + Binary Soubor - + Enter Name Zadej jméno - + Please enter a name for the executable Prosím zadej jméno pro spouÅ¡tÄ›ní - + Not an executable Není spustitelný - + This is not a recognized executable. Tenhle soubor není rozpoznán jako spustitelný. - - + + Replace file? Nahradit soubor? - + There already is a hidden version of this file. Replace it? Už existuje skrytá verze tohto souboru. Nahradit? - - + + File operation failed Operace se souborem zlyhala - - + + Failed to remove "%1". Maybe you lack the required file permissions? NepodaÅ™ilo se odstranit "%1". Možná nejsou k dispozici požadována práva? - + There already is a visible version of this file. Replace it? Už existuje viditelná verze tohto souboru. Nahradit? - + file not found: %1 soubor nenalezen: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available Aktualizace k dispozici - + Open/Execute Otevřít/Spustit - + Add as Executable PÅ™idat SpouÅ¡tení - + Preview - + Un-Hide Odekrýt - + Hide Skrýt - + Write To File... Zápis do souboru... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + BOSS working - + failed to run boss: %1 - + Request to Nexus failed: %1 - + Executable "%1" not found - + Failed to refresh list of esps: %1 - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway pÅ™ihlášení zlyhalo: %1. Pokouším se beztak stahovat - + login failed: %1 pÅ™ihlášení zlyhalo: %1 - + login failed: %1. You need to log-in with Nexus to update MO. pÅ™ihlášení zlyhalo: %1. Na aktualizaci MO je potÅ™ebné pÅ™ihlášení k Nexusu. - + Error Chyba - + failed to extract %1 (errorcode %2) zlyhala extrakce %1 (errorcode %2) - + Extract... Extrakce... - + Edit Categories... Editovat Kategorie... - + Enable all - + Disable all @@ -4811,64 +4825,64 @@ V souÄasnosti má omezenou funkcionalitu esp nenalezeno: %1 - + Mod Index - + Flags - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - - + + Confirm Potvrdit - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken @@ -4877,7 +4891,7 @@ V souÄasnosti má omezenou funkcionalitu zlyhalo otevÅ™ení výstupního souboru: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. NÄ›které vaÅ¡e pluginy mají neplatné názvy! Tyhle pluginy nemůžou být naÄteny hrou. Prosím nahlédnÄ›te do souboru mo_interface.log pro kompletní seznam pluginů a pÅ™ejmenujte je. @@ -4887,17 +4901,17 @@ V souÄasnosti má omezenou funkcionalitu - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4910,17 +4924,17 @@ V souÄasnosti má omezenou funkcionalitu max - + This plugin can't be disabled (enforced by the game) Tenhle plugin nemůže být deaktivován (vyžaduje to hra) - + Origin: %1 Původní mod: %1 - + Name Jméno @@ -4929,7 +4943,7 @@ V souÄasnosti má omezenou funkcionalitu Jména vaÅ¡ich modů - + Priority Priorita @@ -5512,23 +5526,23 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements Prosím použijte "Pomoc" z panelu nástrojú pro instrukce ke vÅ¡em elementům - - + + <Manage...> <Manage...> - + failed to parse profile %1: %2 NezdaÅ™ilo se rozebrat profil %1: %2 - + failed to find "%1" NepodaÅ™ilo sa najít "%1" @@ -5538,12 +5552,12 @@ p, li { white-space: pre-wrap; } Chyba kódování, prosím nahlaste tuto chybu a poskytnÄ›te záznamový soubor mo_interface.log! - + failed to access %1 zlyhal přístup k %1 - + failed to set file time %1 nepodaÅ™ilo se nastavit Äas souboru %1 diff --git a/src/organizer_de.ts b/src/organizer_de.ts index 306ce0ef..16d4521f 100644 --- a/src/organizer_de.ts +++ b/src/organizer_de.ts @@ -1642,11 +1642,21 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data Data + + + Plugins + + Sort + + + Archives + + refresh data-directory overview @@ -1659,8 +1669,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh Neu laden @@ -1840,7 +1850,7 @@ p, li { white-space: pre-wrap; } - + Update Aktualisierung @@ -1851,7 +1861,7 @@ p, li { white-space: pre-wrap; } - + No Problems Keine Probleme @@ -1882,37 +1892,37 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. - + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems Probleme - + There are potential problems with your setup Es bestehen möglicherweise Probleme mit Ihrer Konfiguration - + Everything seems to be in order Alles in bester Ordnung @@ -1929,22 +1939,22 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. <li>dotNet ist nicht installiert oder veraltet. Dies wird benötigt um NCC nutzen zu können. Laden Sie die korrekte Version von <a href="%1">%1</a> herunter</li> - + Help on UI Hilfe zur Oberfläche - + Documentation Wiki Wiki Dokumentation - + Report Issue Fehler melden - + Tutorials @@ -1953,93 +1963,88 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Ladereihenfolge konnte nicht gespeichert werden - + failed to save load order: %1 Reihenfolge konnt nicht gespeichert werden: %1 - - failed to save archives order, do you have write access to "%1"? - - - - + About - + About Qt - + Name Name - + Please enter a name for the new profile Bitte geben Sie einen Namen für das neue Profil an - + failed to create profile: %1 Erstellen des Profils fehlgeschlagen: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Download in Bearbeitung - + There are still downloads in progress, do you really want to quit? Es gibt noch unfertige Downloads, wollen Sie wirklich das Programm beenden? - + failed to read savegame: %1 Spielstand konnte nicht gelesen werden: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting Warte - + Please press OK once you're logged into steam. Bitte drücken sie OK sobald sie bei Steam angemeldet sind. @@ -2048,331 +2053,336 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. "%1" nicht gefunden - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? Steam muss laufen um das Spiel korrekt zu starten. Soll MO versuchen Steam zu starten? - + Also in: <br> Auch in: <br> - + No conflict Keine Konflikte - + <Edit...> <Bearbeiten...> - + This bsa is enabled in the ini file so it may be required! Dieses Archiv ist in der ini Konfiguration gelistet, daher ist es möglicherweise erforderlich! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Dieses Archiv wird vom Spiel geladen werden da ein Plugin mit dem selben Namen aktiv ist aber die enthaltenen Dateien werden sich nicht an Ihre Installations-Reihenfolge halten! - + Activating Network Proxy - - + + Installation successful Installation erfolgreich - - + + Configure Mod Mod konfigurieren - - + + This mod contains ini tweaks. Do you want to configure them now? Diese Mod enthält Anpassungen für die Ini datei. Wollen Sie diese nun konfigurieren? - - + + mod "%1" not found mod "%1" nicht gefunden - - + + Installation cancelled Installation abgebrochen - - + + The mod was not installed completely. Die mod wurde nicht erfolgreich installiert. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Mod wählen - + Mod Archive Mod Archiv - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Download gestartet - + failed to update mod list: %1 Aktualisieren der Modliste fehlgeschlagen: %1 - + failed to spawn notepad.exe: %1 notepad.exe konnte nicht aufgerufen werden: %1 - + failed to open %1 %1 konnte nicht geöffnet werden - + failed to change origin name: %1 konnte den Namen der Dateiquelle nicht ändern: %1 - + + failed to move "%1" from mod "%2" to "%3": %4 + + + + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Alle> - + <Checked> <Markierte> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + <Unchecked> <Nicht markierte> - + <Update> <Update> - + <No category> <Ohne Kategorie> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 konnte die Mod nicht umbenennen: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - - + + + + Confirm Bestätigen - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 konnte die mod nicht entfernen: %1 - - + + Failed Fehlgeschlagen - + Installation file no longer exists Installationsdatei existiert nicht mehr - + Mods installed with old versions of MO can't be reinstalled in this way. Mods die mit alten Versionen von MO installiert wurden können nicht auf diese Weise neu-installiert werden. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA BSA extrahieren - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Diese mod enthält mindestens eine BSA datei. Soll sie entpackt werden? (Das BSA wird danach gelöscht. Wenn Sie nicht wissen was BSAs sind wählen Sie am besten \"nein\") - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Dieses Archiv enthält ungültige Prüfsummen. Einige Dateien sind evtl. defekt. - + Nexus ID for this Mod is unknown Nexus ID für diese Mod unbekannt @@ -2385,92 +2395,92 @@ This function will guess the versioning scheme under the assumption that the ins Priorität wählen - + Really enable all visible mods? Alle angezeigten Mods aktivieren? - + Really disable all visible mods? Alle angezeigten Mods deaktivieren? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Mod installieren... - + Enable all visible Alle sichtbaren aktvieren - + Disable all visible Alle sichtbaren deaktvieren - + Check all for update Alle auf Aktualisierungen überprüfen - + Export to csv... - + Sync to Mods... Mods synchronisieren... - + Restore Backup - + Remove Backup... @@ -2479,362 +2489,362 @@ This function will guess the versioning scheme under the assumption that the ins Kategorie festlegen - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Mod umbenennen... - + Remove Mod... Mod entfernen... - + Reinstall Mod Mod neu installieren - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus Auf Nexus besuchen - + Open in explorer In Explorer öffnen - + Information... Informationen... - - + + Exception: Ausnahme: - - + + Unknown exception Unbekannte Ausnahme - + <Multiple> - + Really delete "%1"? - + Fix Mods... Mods reparieren... - + Delete - - + + failed to remove %1 %1 konnte nicht entfernt werden - - + + failed to create %1 %1 konnte nicht erstellt werden - + Can't change download directory while downloads are in progress! Das download verzeichnis kann nicht geändert werden solange Downloads laufen! - + Download failed Download fehlgeschlagen - + failed to write to file %1 Speichern in Datei "%1" fehlgeschlagen - + %1 written "%1" gespeichert - + Select binary Binary wählen - + Binary Ausführbare Datei - + Enter Name Namen eingeben - + Please enter a name for the executable Bitte geben Sie einen Namen für die Anwendungsdatei ein - + Not an executable Datei ist nicht ausführbar - + This is not a recognized executable. - - + + Replace file? Datei ersetzen? - + There already is a hidden version of this file. Replace it? Es existiert bereits eine versteckte Variante von dieser Datei. Soll diese ersetzt werden? - - + + File operation failed Dateioperation fehlgeschlagen - - + + Failed to remove "%1". Maybe you lack the required file permissions? Konnte "%1" nicht löschen. Fehlen Ihnen evtl. die nötigen Berechtigungen? - + There already is a visible version of this file. Replace it? Es existiert bereits eine sichtbare Variante dieser Datei. Soll diese ersetzt werden? - + file not found: %1 Datei nicht gefunden: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available Aktualisierung verfügbar - + Open/Execute Öffnen/Ausführen - + Add as Executable Als Anwendung hinzufügen - + Preview - + Un-Hide Sichtbar machen - + Hide Verstecken - + Write To File... In Datei speichern... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + BOSS working - + failed to run boss: %1 - + Request to Nexus failed: %1 - + Executable "%1" not found - + Failed to refresh list of esps: %1 - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway login fehlgeschlagen: %1. Der Download scheitert vermutlich - + login failed: %1 login fehlgeschlagen: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Fehler - + failed to extract %1 (errorcode %2) konnte "%1" nicht extrahieren (fehlercode %2) - + Extract... Extrahieren... - + Edit Categories... - + Enable all - + Disable all @@ -4908,64 +4918,64 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. PluginList - + Mod Index - + Flags - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP nicht gefunden: %1 - - + + Confirm Bestätigen - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken @@ -4974,7 +4984,7 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. konnte die Ausgabedatei nicht öffnen: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. Einige Ihrer Plugins haben ungültige Namen! Diese Plugins können nicht vom Spiel geladen werden. Die Datei mo_interface.log enthält eine Liste der betroffenen Plugins. Bitte benennen Sie diese um. @@ -4984,17 +4994,17 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -5007,17 +5017,17 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. max - + This plugin can't be disabled (enforced by the game) Dieses Plugin kann nicht deaktiviert werden (vom Spiel benötigt) - + Origin: %1 Ursprung: %1 - + Name Name @@ -5026,7 +5036,7 @@ Diese Funktion ist noch in arbeit und ist sehr eingeschränkt. Namen Ihrer Mods - + Priority Priorität @@ -5617,7 +5627,7 @@ p, li { white-space: pre-wrap; } "%1" nicht gefunden - + Please use "Help" from the toolbar to get usage instructions to all elements Bitte verwenden Sie die "Hilfe" Funktion um Hinweise zu Nutzung aller Elemete zu bekommen @@ -5630,19 +5640,19 @@ p, li { white-space: pre-wrap; } Ungültige Priorität %1 - + failed to find "%1" Konnte "%1" nicht finden - - + + <Manage...> <Verwalten...> - + failed to parse profile %1: %2 Konnte Profil %1 nicht verarbeiten: %2 @@ -5651,12 +5661,12 @@ p, li { white-space: pre-wrap; } Kodierungsfehler! Bitte melden Sie dies als Bug und fügen Sie die Datei mo_interface.log bei! - + failed to access %1 Auf %1 konnte nicht zugegriffen werden - + failed to set file time %1 Konnte Dateizeit nicht setzen %1 diff --git a/src/organizer_es.ts b/src/organizer_es.ts index 0a19f56f..1dcb62c3 100644 --- a/src/organizer_es.ts +++ b/src/organizer_es.ts @@ -1501,11 +1501,21 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data Datos + + + Plugins + + Sort + + + Archives + + refresh data-directory overview @@ -1518,8 +1528,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh Recargar @@ -1693,7 +1703,7 @@ p, li { white-space: pre-wrap; } - + Update @@ -1704,7 +1714,7 @@ p, li { white-space: pre-wrap; } - + No Problems @@ -1734,148 +1744,143 @@ Right now this has very limited functionality - + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 Fallo guardando el orden de carga: %1 - - failed to save archives order, do you have write access to "%1"? - - - - + About - + About Qt - + Name Nombre - + Please enter a name for the new profile Por favor introduzca un nombre para el nuevo perfil - + failed to create profile: %1 Fallo al crear el perfil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Descarga en progreso - + There are still downloads in progress, do you really want to quit? Aun hay descargas en progreso, estas seguro que quieres salir? - + failed to read savegame: %1 Fallo al leer la partida guardada: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. @@ -1884,330 +1889,335 @@ Right now this has very limited functionality "%1" no encontrado - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Sin conflictos - + <Edit...> <Editar...> - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Instalacion completada - - + + Configure Mod Configurar Mod - - + + This mod contains ini tweaks. Do you want to configure them now? Este mod contiene modificaciones del Ini. Quieres configurarlas ahora? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Seleccione Mod - + Mod Archive Fichero Mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Descarga comenzada - + failed to update mod list: %1 Fallo al actualizar la lista de Mods: %1 - + failed to spawn notepad.exe: %1 Fallo al cargar el Bloc de notas: %1 - + failed to open %1 Fallo al abrir %1 - + failed to change origin name: %1 fallo al cambiar el nombre original del fichero %1 - + + failed to move "%1" from mod "%2" to "%3": %4 + + + + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Todos> - + <Checked> <Marcado> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + <Unchecked> <Desmarcado> - + <Update> <Actualizacion> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 fallo al cambiar el nombre al mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - - + + + + Confirm Confirma - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2220,92 +2230,92 @@ This function will guess the versioning scheme under the assumption that the ins Selecciona Prioridad - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Instalar Mod... - + Enable all visible Activar todos los visibles - + Disable all visible Desactivar todos los visibles - + Check all for update Buscar Actualizaciones - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... @@ -2314,362 +2324,362 @@ This function will guess the versioning scheme under the assumption that the ins Definir Categoria - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Cambiar nombre... - + Remove Mod... Quitar Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Informacion... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Really delete "%1"? - + Fix Mods... Activar Mods faltantes... - + Delete - - + + failed to remove %1 Fallo eliminando %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 Fallo de escritura en el fichero %1 - + %1 written %1 escrito - + Select binary - + Binary Fichero - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + file not found: %1 fichero no encontrado: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available Disponible actualización - + Open/Execute - + Add as Executable - + Preview - + Un-Hide - + Hide - + Write To File... Escribir al fichero... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + BOSS working - + failed to run boss: %1 - + Request to Nexus failed: %1 - + Executable "%1" not found - + Failed to refresh list of esps: %1 - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -4272,69 +4282,69 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod PluginList - + Mod Index - + Flags - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP no encontrado: %1 - - + + Confirm Confirma - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. @@ -4344,17 +4354,17 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4367,17 +4377,17 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod max - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name Nombre @@ -4386,7 +4396,7 @@ Activar Mods faltantes en el menu contextual del raton intentara activar los mod Nombres de tus Mods - + Priority Prioridad @@ -4979,7 +4989,7 @@ p, li { white-space: pre-wrap; } "%1" no encontrado - + Please use "Help" from the toolbar to get usage instructions to all elements Por favor utilice "Ayuda" en la barra superior para obtener informacion sobre todos los elementos @@ -4992,19 +5002,19 @@ p, li { white-space: pre-wrap; } prioridad invalida %1 - + failed to find "%1" fallo al encontrar %1 - - + + <Manage...> <Definir...> - + failed to parse profile %1: %2 no se pudo analizar el perfil % 1: %2 @@ -5017,12 +5027,12 @@ p, li { white-space: pre-wrap; } Esto tomara un momento - + failed to access %1 Fallo al acceder %1 - + failed to set file time %1 Fallo al definir la hora al fihcero %1 diff --git a/src/organizer_fr.ts b/src/organizer_fr.ts index c283cb71..462e1699 100644 --- a/src/organizer_fr.ts +++ b/src/organizer_fr.ts @@ -1541,11 +1541,21 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data DATA + + + Plugins + + Sort + + + Archives + + refresh data-directory overview @@ -1558,8 +1568,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh Actualiser @@ -1739,7 +1749,7 @@ p, li { white-space: pre-wrap; } - + Update @@ -1750,7 +1760,7 @@ p, li { white-space: pre-wrap; } - + No Problems @@ -1780,148 +1790,143 @@ Right now this has very limited functionality - + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 impossible d'enregistrer l'ordre de chargement: %1 - - failed to save archives order, do you have write access to "%1"? - - - - + About - + About Qt - + Name Nom - + Please enter a name for the new profile Veuillez inscrire un nom pour le nouveau profil - + failed to create profile: %1 impossible de créer le profil: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress Téléchargements en cours - + There are still downloads in progress, do you really want to quit? Il encore des téléchargements en cours, voulez-vous vraiment quitter? - + failed to read savegame: %1 impossible de lire la sauvegarde: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" - + Waiting Attente - + Please press OK once you're logged into steam. Veuillez cliquer OK une fois connecté à steam. @@ -1930,330 +1935,335 @@ Right now this has very limited functionality "%1" introuvable - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict Aucun conflit - + <Edit...> <Modifier...> - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful Installation réussie - - + + Configure Mod Configurer mod - - + + This mod contains ini tweaks. Do you want to configure them now? Ce mod contient des ajustement pour les fichiers ini. Désirez-vous les configurer maintenant? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod Choisir mod - + Mod Archive Archive de mod - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started Téléchargement commencé - + failed to update mod list: %1 impossible de mettre à jour la liste de mods: %1 - + failed to spawn notepad.exe: %1 impossible de lancer notepad.exe: %1 - + failed to open %1 impossible d'ouvrir %1 - + failed to change origin name: %1 impossible de changer le nom d'origine: %1 - + + failed to move "%1" from mod "%2" to "%3": %4 + + + + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <Tous> - + <Checked> <Cochés> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + <Unchecked> <Décochés> - + <Update> <Rafraichir> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 impossible de renommer le mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - - + + + + Confirm Confirmer - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 Échec de lecture %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown @@ -2266,92 +2276,92 @@ This function will guess the versioning scheme under the assumption that the ins Choisir priorité - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... Installer mod... - + Enable all visible Activer tous les mods visibles - + Disable all visible Désactiver tous les mods visibles - + Check all for update Vérifier toutes les mises à jour - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... @@ -2360,362 +2370,362 @@ This function will guess the versioning scheme under the assumption that the ins Assigner catégorie - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Renommer mod... - + Remove Mod... Supprimer mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Really delete "%1"? - + Fix Mods... Réparer mods... - + Delete - - + + failed to remove %1 Impossible de supprimer %1 - - + + failed to create %1 impossible de créer %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 impossible d'écrire dans le fichier %1 - + %1 written %1 écrit - + Select binary - + Binary Programme - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + file not found: %1 fichier introuvable: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available Mise à jour disponible - + Open/Execute - + Add as Executable - + Preview - + Un-Hide - + Hide - + Write To File... Écriture du fichier... - + Do you want to endorse Mod Organizer on %1 now? - + Remove Supprimer - + Unlock load order - + Lock load order - + BOSS working - + failed to run boss: %1 - + Request to Nexus failed: %1 - + Executable "%1" not found - + Failed to refresh list of esps: %1 - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error Erreur - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -4391,69 +4401,69 @@ p, li { white-space: pre-wrap; } PluginList - + Mod Index - + Flags - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 ESP introuvable: %1 - - + + Confirm Confirmer - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. @@ -4463,17 +4473,17 @@ p, li { white-space: pre-wrap; } - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4486,17 +4496,17 @@ p, li { white-space: pre-wrap; } max - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name Nom @@ -4505,7 +4515,7 @@ p, li { white-space: pre-wrap; } Les noms de vos mods - + Priority Priorité @@ -5088,34 +5098,34 @@ p, li { white-space: pre-wrap; } "%1" introuvable - + Please use "Help" from the toolbar to get usage instructions to all elements Veuillez utiliser l'aide dans la barre d'outil pour obtenir des instructions à propos de tous les éléments - - + + <Manage...> <Gérer...> - + failed to parse profile %1: %2 impossible d'analyser le profil %1: %2 - + failed to find "%1" impossible de trouver "%1" - + failed to access %1 impossible d'accéder à %1 - + failed to set file time %1 impossible de changer la date du fichier %1 diff --git a/src/organizer_ru.ts b/src/organizer_ru.ts index 2a75ce82..0fc6ecea 100644 --- a/src/organizer_ru.ts +++ b/src/organizer_ru.ts @@ -1375,6 +1375,11 @@ p, li { white-space: pre-wrap; } Shortcut Ярлык + + + Plugins + Плагины + List of available esp/esm files @@ -1398,6 +1403,11 @@ p, li { white-space: pre-wrap; } Sort + + + Archives + + List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order. @@ -1451,8 +1461,8 @@ BSA, отмеченные здеÑÑŒ, загружаютÑÑ Ñ‚Ð°Ðº, чтобы - - + + Refresh Обновить @@ -1632,7 +1642,7 @@ p, li { white-space: pre-wrap; } - + Update Обновление @@ -1643,7 +1653,7 @@ p, li { white-space: pre-wrap; } - + No Problems Проблем не обнаружено @@ -1676,158 +1686,157 @@ Right now this has very limited functionality - + Endorse Mod Organizer Одобрить Mod Organizer - + Toolbar Панель инÑтрументов - + Desktop Рабочий Ñтол - + Start Menu Меню ПуÑк - + Problems Проблемы - + There are potential problems with your setup ЕÑть возможные проблемы Ñ Ð²Ð°ÑˆÐµÐ¹ уÑтановкой - + Everything seems to be in order КажетÑÑ Ð²ÑÑ‘ в порÑдке - + Help on UI Справка по интерфейÑу - + Documentation Wiki Wiki-Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ - + Report Issue Сообщить о проблеме - + Tutorials Уроки - + About - + About Qt - failed to save archives order, do you have write access to "%1"? - не удалоÑÑŒ Ñохранить порÑдок архивов, у Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ð´Ð¾Ñтуп на запиÑÑŒ к "%1"? + не удалоÑÑŒ Ñохранить порÑдок архивов, у Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ð´Ð¾Ñтуп на запиÑÑŒ к "%1"? - + failed to save load order: %1 не удалоÑÑŒ Ñохранить порÑдок загрузки: %1 - + Name Ð˜Ð¼Ñ - + Please enter a name for the new profile Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + failed to create profile: %1 не удалоÑÑŒ Ñоздать профиль: %1 - + Show tutorial? Показать урок? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. Ð’Ñ‹ запуÑтили Mod Organizer впервые. Ð’Ñ‹ хотите проÑмотреть уроки по оÑновным возможноÑÑ‚Ñм? Ð’ Ñлучае отказа вы вÑегда можете открыть уроки из меню "Помощь". - + Downloads in progress Загрузки в процеÑÑе - + There are still downloads in progress, do you really want to quit? Загрузки вÑÑ‘ ещё в процеÑÑе, вы правда хотите выйти? - + failed to read savegame: %1 не удалоÑÑŒ прочеÑть Ñохранение: %1 - + Plugin "%1" failed: %2 Плагин "%1" не удалоÑÑŒ: %2 - + Plugin "%1" failed Плагин "%1" не удалоÑÑŒ - + failed to init plugin %1: %2 не удалоÑÑŒ инициализировать плагин %1: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" Ðе удалоÑÑŒ запуÑтить "%1" - + Waiting Ожидание - + Please press OK once you're logged into steam. Ðажмите OK как только вы войдете в Steam. @@ -1836,83 +1845,83 @@ Right now this has very limited functionality "%1" не найден - + Start Steam? ЗапуÑтить Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? ТребуетÑÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð½Ñ‹Ð¹ Steam, Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ запуÑка игры. Должен ли MO попытатьÑÑ Ð·Ð°Ð¿ÑƒÑтить Steam ÑейчаÑ? - + Also in: <br> Также в: <br> - + No conflict Конфликтов нет - + <Edit...> <Правка...> - + This bsa is enabled in the ini file so it may be required! Этот bsa подключен через ini, так что он может быть необходим! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! Этот архив вÑе равно будет загружен, так как еÑть плагин Ñ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÐµÐ½Ð½Ñ‹Ð¼ названием, но его файлы не будут Ñледовать порÑдку уÑтановки! - + Activating Network Proxy Подключение Ñетевого прокÑи - - + + Installation successful УÑтановка завершена - - + + Configure Mod ÐаÑтройка мода - - + + This mod contains ini tweaks. Do you want to configure them now? Этот мод включает наÑтройки ini. Ð’Ñ‹ хотите наÑтроить их ÑейчаÑ? - - + + mod "%1" not found мод "%1" не найден - - + + Installation cancelled УÑтановка отменена - - + + The mod was not installed completely. Мод не был уÑтановлен полноÑтью. - + Some plugins could not be loaded Ðекоторые плагины не могут быть загружены @@ -1921,203 +1930,203 @@ Right now this has very limited functionality Следующие плагины не могут быть загружены. Причина может быть в отÑутÑтвующих завиÑимоÑÑ‚ÑÑ… (таких как python) или в уÑтаревшей верÑии:<ul> - + Too many esps and esms enabled - - + + Description missing - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + Choose Mod Выберете мод - + Mod Archive Ðрхив мода - + Start Tutorial? Ðачать обучение? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? Ð’Ñ‹ ÑобираетеÑÑŒ открыть обучение. По техничеÑким причинам будет невозможно доÑрочно закончить обучение. Продолжить? - - + + Download started Загрузка начата - + failed to update mod list: %1 не удалоÑÑŒ обновить ÑпиÑок модов: %1 - + failed to spawn notepad.exe: %1 не удалоÑÑŒ вызвать notepad.exe: %1 - + failed to open %1 не удалоÑÑŒ открыть %1 - + failed to change origin name: %1 не удалоÑÑŒ изменить оригинальное имÑ: %1 - + <Checked> <Подключен> - + <Unchecked> <Отключен> - + <Update> <Обновлен> - + <No category> <Без категории> - + <Conflicted> <Конфликтует> - + <Not Endorsed> - + failed to rename mod: %1 не удалоÑÑŒ переименовать мод: %1 - + Overwrite? ПерезапиÑать? - + This will replace the existing mod "%1". Continue? Это заменит ÑущеÑтвующий мод "%1". Продолжить? - + failed to remove mod "%1" не удалоÑÑŒ удалить мод "%1" - - - + + + failed to rename "%1" to "%2" не удалоÑÑŒ переименовать "%1" в "%2" - + Multiple esps activated, please check that they don't conflict. Подключено неÑколько esp, выберете из них не конфликтующие. - - - - + + + + Confirm Подтверждение - + Remove the following mods?<br><ul>%1</ul> Удалить Ñледующие моды?<br><ul>%1</ul> - + failed to remove mod: %1 не удалоÑÑŒ удалить мод: %1 - - + + Failed Ðеудача - + Installation file no longer exists УÑтановочный файл больше не ÑущеÑтвует - + Mods installed with old versions of MO can't be reinstalled in this way. Моды, уÑтановленные Ñ Ð¸Ñпользованием Ñтарых верÑий MO не могут быть переÑтановленны таким образом. - - + + You need to be logged in with Nexus to endorse Ð’Ñ‹ должны быть авторизированы на Nexus, чтобы одобрÑть. - - + + Extract BSA Извлечь BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) Этот мод включает как минимум один BSA. Ð’Ñ‹ хотите раÑпаковать их? (Это удалит BSA поÑле завершениÑ. ЕÑли вы не знаете ничего о BSAs, проÑто откажитеÑÑŒ) - - - + + + failed to read %1: %2 не удалоÑÑŒ прочеÑть %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. Ðрхив Ñодержит неверные хеши. Ðекоторые файлы могут быть иÑпорчены. - + Nexus ID for this Mod is unknown Nexus ID Ð´Ð»Ñ Ñтого мода неизвеÑтен - - + + Create Mod... Создать мод... @@ -2128,119 +2137,119 @@ Please enter a name: ПожалуйÑта, введите имÑ: - + A mod with this name already exists Мод Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? ДейÑтвительно подключить вÑе видимые моды? - + Really disable all visible mods? ДейÑтвительно отключить вÑе видимые моды? - + Choose what to export Выберете, что ÑкÑпортировать - + Everything Ð’ÑÑ‘ - + All installed mods are included in the list Ð’Ñе уÑтановленные моды, включенные в ÑпиÑок - + Active Mods Ðктивные моды - + Only active (checked) mods from your current profile are included Включены вÑе активные (подключенные) моды вашего текущего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - + Visible Видимые - + All mods visible in the mod list are included Включены вÑе моды, видимые в ÑпиÑке модов - + export failed: %1 ÑкÑпорт не удалÑÑ: %1 - + Install Mod... УÑтановить мод... - + Enable all visible Включить вÑе видимые - + Disable all visible Отключить вÑе видимые - + Check all for update Проверить вÑе на Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ - + Export to csv... ЭкÑпорт в csv... - + Sync to Mods... Синхронизировать Ñ Ð¼Ð¾Ð´Ð°Ð¼Ð¸... - + Restore Backup ВоÑÑтановить из резервной копии - + Remove Backup... Удалить резервную копию... @@ -2249,372 +2258,377 @@ This function will guess the versioning scheme under the assumption that the ins Задать категорию - + Executable "%1" not found - + Failed to refresh list of esps: %1 - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + + failed to move "%1" from mod "%2" to "%3": %4 + + + + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - + Primary Category ОÑÐ½Ð¾Ð²Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... Переименовать мод... - + Remove Mod... Удалить мод... - + Reinstall Mod ПереуÑтановить мод - + Un-Endorse Отменить одобрение - - + + Endorse Одобрить - + Won't endorse Ðе одобрÑть - + Endorsement state unknown Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтен - + Ignore missing data Игнорировать отÑутÑтвующие данные - + Visit on Nexus Перейти на Nexus - + Open in explorer Открыть в проводнике - + Information... ИнформациÑ... - - + + Exception: ИÑключение: - - + + Unknown exception ÐеизвеÑтное иÑключение - + <All> <Ð’Ñе> - + <Multiple> <ÐеÑколько> - + Really delete "%1"? - + Fix Mods... ИÑправить моды... - + Delete Удалить - - + + failed to remove %1 не удалоÑÑŒ удалить %1 - - + + failed to create %1 не удалоÑÑŒ Ñоздать %1 - + Can't change download directory while downloads are in progress! ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ каталог Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¾Ðº, когда загрузки ещё не завершены! - + Download failed Загрузка не удалаÑÑŒ - + failed to write to file %1 ошибка запиÑи в файл %1 - + %1 written %1 запиÑан - + Select binary Выбрать иÑполнÑемый файл - + Binary ИÑполнÑемый файл - + Enter Name Введите Ð¸Ð¼Ñ - + Please enter a name for the executable Введите название Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ - + Not an executable Ðе ÑвлÑетÑÑ Ð¸ÑполнÑемым - + This is not a recognized executable. Это неверный иÑполнÑемый файл. - - + + Replace file? Заменить файл? - + There already is a hidden version of this file. Replace it? Уже ÑущеÑтвует ÑÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла. Заменить? - - + + File operation failed ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ не удалаÑÑŒ - - + + Failed to remove "%1". Maybe you lack the required file permissions? Ðе удалоÑÑŒ удалить "%1". Может быть, вам не хватает необходимых прав доÑтупа к файлу? - + There already is a visible version of this file. Replace it? Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтого файла уже ÑущеÑтвует. Заменить? - + file not found: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available ДоÑтупно обновление - + Open/Execute Открыть/Выполнить - + Add as Executable Добавить как иÑполнÑемый - + Preview - + Un-Hide Показать - + Hide Скрыть - + Write To File... ЗапиÑать в файл... - + Do you want to endorse Mod Organizer on %1 now? Ð’Ñ‹ хотите одобрить Mod Organizer на %1 ÑейчаÑ? - + Request to Nexus failed: %1 Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Nexus не удалÑÑ: %1 - - + + login successful уÑпешный вход - + login failed: %1. Trying to download anyway вход не удалÑÑ: %1. ПытаюÑÑŒ загрузить вÑÑ‘ равно - + login failed: %1 войти не удалоÑÑŒ: %1 - + login failed: %1. You need to log-in with Nexus to update MO. войти не удалоÑÑŒ: %1. Вам нужно войти на Nexus, чтобы обновить MO. - + Error Ошибка - + failed to extract %1 (errorcode %2) не удалоÑÑŒ извлечь %1 (код ошибки %2) - + Extract... РаÑпаковка... - + Edit Categories... Изменить категории... - + Remove - + Enable all Включить вÑе - + Disable all Отключить вÑе - + Unlock load order Разблокировать порÑдок загрузки - + Lock load order Заблокировать порÑдок загрузки - + BOSS working - + failed to run boss: %1 @@ -3539,74 +3553,74 @@ p, li { white-space: pre-wrap; } PluginList - + Name Ð˜Ð¼Ñ - + Priority Приоритет - + Mod Index Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° - + Flags Флаги - - + + unknown неизвеÑтно - + Name of your mods Имена ваших модов - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. Приоритет загрузки ваших модов. Моды Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ приоритетом перезапишут данные модов Ñ Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ приоритетом. - + The modindex determins the formids of objects originating from this mods. Ð˜Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´Ð° определÑющий id форм объектов, проиÑходÑщих из Ñтих модов. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 esp не найден: %1 - - + + Confirm - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken Файл, Ñодержащий индекÑÑ‹ заблокированного плагина, не работает. @@ -3615,7 +3629,7 @@ p, li { white-space: pre-wrap; } не удалоÑÑŒ открыть выходной файл: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. Ðекоторые из ваших плагинов имеют неверные имена. Эти плагины не могут быть загружены игрой. Смотрите mo_interface.log Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑпиÑка таких плагинов и переименуйте их. @@ -3625,27 +3639,27 @@ p, li { white-space: pre-wrap; } - + This plugin can't be disabled (enforced by the game) Этот плагин не может быть отключен (грузитÑÑ Ð¸Ð³Ñ€Ð¾Ð¹ принудительно) - + Origin: %1 ИÑточник: %1 - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 не удалоÑÑŒ воÑÑтановить порÑдок загрузки Ð´Ð»Ñ %1 @@ -4226,23 +4240,23 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements ИÑпользуйте пункт "Справка" на панели инÑтрументов, чтобы получить инÑтрукции по иÑпользованию вÑех Ñлементов. - - + + <Manage...> <УправлÑть...> - + failed to parse profile %1: %2 не удалоÑÑŒ обработать профиль %1: %2 - + failed to find "%1" не удалоÑÑŒ найти "%1" @@ -4252,12 +4266,12 @@ p, li { white-space: pre-wrap; } ошибка кодированиÑ, пожалуйÑта Ñообщите об Ñтом баге, включив файл mo_interface.log! - + failed to access %1 не удалоÑÑŒ получить доÑтуп к %1 - + failed to set file time %1 не удалоÑÑŒ изменить дату модификации Ð´Ð»Ñ %1 diff --git a/src/organizer_tr.ts b/src/organizer_tr.ts index 58d30d00..d091ad76 100644 --- a/src/organizer_tr.ts +++ b/src/organizer_tr.ts @@ -1583,11 +1583,21 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data + + + Plugins + + Sort + + + Archives + + refresh data-directory overview @@ -1600,8 +1610,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh @@ -1775,7 +1785,7 @@ p, li { white-space: pre-wrap; } - + Update @@ -1786,7 +1796,7 @@ p, li { white-space: pre-wrap; } - + No Problems @@ -1816,926 +1826,926 @@ Right now this has very limited functionality - + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems - + There are potential problems with your setup - + Everything seems to be in order - + Help on UI - + Documentation Wiki - + Report Issue - + Tutorials - + failed to save load order: %1 - - failed to save archives order, do you have write access to "%1"? - - - - + About - + About Qt - + Name İsim - + Please enter a name for the new profile - + failed to create profile: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress - + There are still downloads in progress, do you really want to quit? - + failed to read savegame: %1 - + Plugin "%1" failed: %2 - + Failed to start "%1" - + Waiting - + Please press OK once you're logged into steam. - + Start Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? - + Also in: <br> - + No conflict - + <Edit...> - + Failed to refresh list of esps: %1 - + This bsa is enabled in the ini file so it may be required! - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! - + Activating Network Proxy - - + + Installation successful - - + + Configure Mod - - + + This mod contains ini tweaks. Do you want to configure them now? - - + + mod "%1" not found - - + + Installation cancelled - - + + The mod was not installed completely. - + Some plugins could not be loaded - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod - + Mod Archive - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started - + failed to update mod list: %1 - + failed to spawn notepad.exe: %1 - + failed to open %1 - + failed to change origin name: %1 - + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + <All> - + <Checked> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Too many esps and esms enabled - - + + Description missing - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + + failed to move "%1" from mod "%2" to "%3": %4 + + + + <Unchecked> - + <Update> - + <No category> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" "%1"yi "%2" olarak yeniden adlandırma baÅŸarılı olamadı. - - - - + + + + Confirm Onayla - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 - - + + Failed - + Installation file no longer exists - + Mods installed with old versions of MO can't be reinstalled in this way. - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) - - - + + + failed to read %1: %2 %1: %2 okunamadı - - + + This archive contains invalid hashes. Some files may be broken. - + Nexus ID for this Mod is unknown - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + Really enable all visible mods? - + Really disable all visible mods? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... - + Enable all visible - + Disable all visible - + Check all for update - + Export to csv... - + Sync to Mods... - + Restore Backup - + Remove Backup... - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... - + Remove Mod... - + Reinstall Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus - + Open in explorer - + Information... - - + + Exception: - - + + Unknown exception - + <Multiple> - + Really delete "%1"? - + Fix Mods... - + Delete - - + + failed to remove %1 - - + + failed to create %1 - + Can't change download directory while downloads are in progress! - + Download failed - + failed to write to file %1 - + %1 written - + Select binary - + Binary İkili deÄŸer - + Enter Name - + Please enter a name for the executable - + Not an executable - + This is not a recognized executable. - - + + Replace file? - + There already is a hidden version of this file. Replace it? - - + + File operation failed - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + file not found: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available - + Open/Execute - + Add as Executable - + Preview - + Un-Hide - + Hide - + Write To File... - + Do you want to endorse Mod Organizer on %1 now? - + Remove - + Unlock load order - + Lock load order - + BOSS working - + failed to run boss: %1 - + Request to Nexus failed: %1 - + Executable "%1" not found - + Add/Remove Categories - + Replace Categories - - + + login successful - + login failed: %1. Trying to download anyway - + login failed: %1 - + login failed: %1. You need to log-in with Nexus to update MO. - + Error - + failed to extract %1 (errorcode %2) - + Extract... - + Edit Categories... - + Enable all - + Disable all @@ -3625,69 +3635,69 @@ p, li { white-space: pre-wrap; } PluginList - + Mod Index - + Flags - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - - + + Confirm Onayla - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. @@ -3697,37 +3707,37 @@ p, li { white-space: pre-wrap; } - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 - + This plugin can't be disabled (enforced by the game) - + Origin: %1 - + Name İsim - + Priority @@ -4235,34 +4245,34 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements - - + + <Manage...> - + failed to parse profile %1: %2 - + failed to find "%1" - + failed to access %1 - + failed to set file time %1 diff --git a/src/organizer_zh_CN.ts b/src/organizer_zh_CN.ts index 4e24267f..a5fb1bcc 100644 --- a/src/organizer_zh_CN.ts +++ b/src/organizer_zh_CN.ts @@ -1629,11 +1629,21 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data Data + + + Plugins + + Sort + + + Archives + + refresh data-directory overview @@ -1646,8 +1656,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh 刷新 @@ -1827,7 +1837,7 @@ p, li { white-space: pre-wrap; } - + Update æ›´æ–° @@ -1838,7 +1848,7 @@ p, li { white-space: pre-wrap; } - + No Problems 没有问题 @@ -1871,37 +1881,37 @@ Right now this has very limited functionality - + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems 问题 - + There are potential problems with your setup 您的安装中存在潜在的问题 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1918,22 +1928,22 @@ Right now this has very limited functionality <li>.Net 未安装或版本过旧。想è¦è¿è¡Œ NCC 您必须先安装 .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­èŽ·å–: <a href="%1">%1</a></li> - + Help on UI 界é¢å¸®åŠ© - + Documentation Wiki 说明文档 (维基) - + Report Issue 报告问题 - + Tutorials @@ -1942,93 +1952,92 @@ Right now this has very limited functionality 无法ä¿å­˜åŠ è½½é¡ºåº - + failed to save load order: %1 无法ä¿å­˜åŠ è½½é¡ºåº: %1 - failed to save archives order, do you have write access to "%1"? - 无法ä¿å­˜æ¡£æ¡ˆé¡ºåºï¼Œæ‚¨ç¡®å®šæ‚¨æœ‰æƒé™æ›´æ”¹ "%1"? + 无法ä¿å­˜æ¡£æ¡ˆé¡ºåºï¼Œæ‚¨ç¡®å®šæ‚¨æœ‰æƒé™æ›´æ”¹ "%1"? - + About - + About Qt - + Name åç§° - + Please enter a name for the new profile - + failed to create profile: %1 无法创建é…置文件: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下载 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨è¿›è¡Œä¸­çš„下载,您确定è¦é€€å‡ºå—? - + failed to read savegame: %1 无法读å–存档: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" 无法å¯åЍ "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 当您登录 Steam 时请点击确定。 @@ -2037,331 +2046,336 @@ Right now this has very limited functionality "%1" 未找到 - + Start Steam? å¯åЍ Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¡®åœ°å¯åŠ¨éŠæˆ²ï¼ŒSteam 必须处于è¿è¡Œçжæ€ã€‚MO è¦ç«‹å³å¯åЍ Steam å—? - + Also in: <br> 也在: <br> - + No conflict æ²¡æœ‰å†²çª - + <Edit...> <编辑...> - + This bsa is enabled in the ini file so it may be required! 该 BSA 已在 Ini 文件中å¯ç”¨ï¼Œå› æ­¤å®ƒå¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此档案还是会被加载,因为存在åŒåæ’件。ä¸è¿‡å®ƒæ‰€åŒ…å«çš„的文件ä¸ä¼šéµå¾ªå®‰è£…顺åºï¼ - + Activating Network Proxy - - + + Installation successful 安装æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 设定文件,您想现在就对它们进行é…ç½®å—? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled å®‰è£…å·²å–æ¶ˆ - - + + The mod was not installed completely. Mod 没有完全安装。 - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod 选择 Mod - + Mod Archive Mod 压缩包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 开始下载 - + failed to update mod list: %1 无法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 æ— æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 无法打开 %1 - + failed to change origin name: %1 无法更改原始文件å: %1 - + + failed to move "%1" from mod "%2" to "%3": %4 + + + + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <全部> - + <Checked> <已勾选> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + <Unchecked> <未勾选> - + <Update> <有更新> - + <No category> <无类别> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 无法é‡å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - - + + + + Confirm 确认 - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 无法移动 Mod: %1 - - + + Failed 失败 - + Installation file no longer exists 安装文件ä¸å¤å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 旧版 MO 安装的 Mod æ— æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£…。 - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解压 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€ä¸ª BSA。您确定è¦è§£åŽ‹å—? (解压完æˆåŽï¼ŒBSA 文件将会被删除。如果您ä¸äº†è§£ BSA çš„è¯ï¼Œè¯·é€‰æ‹©â€œå¦â€) - - - + + + failed to read %1: %2 æ— æ³•è¯»å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 压缩包 Hash 值错误。部分文件å¯èƒ½å·²ç»æŸå。 - + Nexus ID for this Mod is unknown æ­¤ Mod çš„N网 ID 未知 @@ -2374,92 +2388,92 @@ This function will guess the versioning scheme under the assumption that the ins 选择优先级 - + Really enable all visible mods? 确定è¦å¯ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Really disable all visible mods? 确定è¦ç¦ç”¨å…¨éƒ¨å¯è§çš„ Mod å—? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... 安装 Mod... - + Enable all visible å¯ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è§é¡¹ç›® - + Check all for update 检查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... @@ -2468,362 +2482,362 @@ This function will guess the versioning scheme under the assumption that the ins 设置类别 - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... é‡å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£… Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N网上æµè§ˆ - + Open in explorer 在资æºç®¡ç†å™¨ä¸­æ‰“å¼€ - + Information... ä¿¡æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + Really delete "%1"? - + Fix Mods... ä¿®å¤ Mod... - + Delete - - + + failed to remove %1 无法删除 %1 - - + + failed to create %1 无法创建 %1 - + Can't change download directory while downloads are in progress! 下载文件时ä¸èƒ½ä¿®æ”¹ä¸‹è½½ç›®å½•ï¼ - + Download failed 下载失败 - + failed to write to file %1 无法写入文件 %1 - + %1 written 已写入 %1 - + Select binary é€‰æ‹©å¯æ‰§è¡Œæ–‡ä»¶ - + Binary - + Enter Name 输入åç§° - + Please enter a name for the executable 请为程åºè¾“入一个åç§° - + Not an executable 䏿˜¯å¯æ‰§è¡Œç¨‹åº - + This is not a recognized executable. æ— æ³•è¯†åˆ«çš„å¯æ‰§è¡Œæ–‡ä»¶ - - + + Replace file? æ›¿æ¢æ–‡ä»¶ï¼Ÿ - + There already is a hidden version of this file. Replace it? 已存在åŒå文件,但该文件被éšè—了。确定è¦è¦†ç›–å—? - - + + File operation failed 文件æ“作错误 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + file not found: %1 文件未找到: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 打开/执行 - + Add as Executable æ·»åŠ ä¸ºå¯æ‰§è¡Œæ–‡ä»¶ - + Preview - + Un-Hide å–æ¶ˆéšè— - + Hide éšè— - + Write To File... 写入文件... - + Do you want to endorse Mod Organizer on %1 now? - + Remove 移除 - + Unlock load order - + Lock load order - + BOSS working - + failed to run boss: %1 - + Request to Nexus failed: %1 - + Executable "%1" not found - + Failed to refresh list of esps: %1 - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful 登录æˆåŠŸ - + login failed: %1. Trying to download anyway 登录失败: %1,请å°è¯•使用别的方法下载 - + login failed: %1 无法登录: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登录失败: %1。您需è¦ç™»å½•到N网æ‰èƒ½æ›´æ–° MO - + Error 错误 - + failed to extract %1 (errorcode %2) 无法解压 %1 (é”™è¯¯ä»£ç  %2) - + Extract... 解压... - + Edit Categories... 编辑类别... - + Enable all 全部å¯ç”¨ - + Disable all 全部ç¦ç”¨ @@ -4765,64 +4779,64 @@ Right now this has very limited functionality ESP 文件没有找到: %1 - + Mod Index - + Flags - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - - + + Confirm 确认 - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken @@ -4831,7 +4845,7 @@ Right now this has very limited functionality 无法打开输出文件: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. 您的一些æ’ä»¶å称无效ï¼è¿™äº›æ’件无法被游æˆè½½å…¥ã€‚请查看 mo_interface.log æ¥ç¡®è®¤é‚£äº›å—å½±å“çš„æ’ä»¶å¹¶é‡å‘½å它们。 @@ -4841,17 +4855,17 @@ Right now this has very limited functionality - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4864,17 +4878,17 @@ Right now this has very limited functionality 最高值 - + This plugin can't be disabled (enforced by the game) 这个æ’ä»¶ä¸èƒ½è¢«ç¦ç”¨ (ç”±æ¸¸æˆæ‰§è¡Œ) - + Origin: %1 隶属于: %1 - + Name åç§° @@ -4883,7 +4897,7 @@ Right now this has very limited functionality Mod åç§° - + Priority 优先级 @@ -5466,23 +5480,23 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements 请使用工具æ ä¸Šçš„â€œå¸®åŠ©â€æ¥èŽ·å¾—æ‰€æœ‰å…ƒç´ çš„ä½¿ç”¨è¯´æ˜Ž - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 无法解æžé…置文件 %1: %2 - + failed to find "%1" 未能找到 "%1" @@ -5492,12 +5506,12 @@ p, li { white-space: pre-wrap; } ç¼–ç é”™è¯¯ï¼Œè¯·å‘作者汇报此 Bug 并且附上 mo_interface.log æ–‡ä»¶ï¼ - + failed to access %1 无法访问 %1 - + failed to set file time %1 无法设置文件时间 %1 diff --git a/src/organizer_zh_TW.ts b/src/organizer_zh_TW.ts index 1fc6b17b..0ae46a41 100644 --- a/src/organizer_zh_TW.ts +++ b/src/organizer_zh_TW.ts @@ -1629,11 +1629,21 @@ BSAs checked here are loaded in such a way that your installation order is obeye Data Data + + + Plugins + + Sort + + + Archives + + refresh data-directory overview @@ -1646,8 +1656,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye - - + + Refresh 釿–°æ•´ç† @@ -1827,7 +1837,7 @@ p, li { white-space: pre-wrap; } - + Update æ›´æ–° @@ -1838,7 +1848,7 @@ p, li { white-space: pre-wrap; } - + No Problems 沒有å•題 @@ -1871,37 +1881,37 @@ Right now this has very limited functionality - + Endorse Mod Organizer - + Toolbar - + Desktop - + Start Menu - + Problems å•題 - + There are potential problems with your setup 您的安è£ä¸­å­˜åœ¨æ½›åœ¨çš„å•題 - + Everything seems to be in order ä¸€åˆ‡äº•ç„¶æœ‰åº @@ -1918,22 +1928,22 @@ Right now this has very limited functionality <li>.Net æœªå®‰è£æˆ–版本éŽèˆŠã€‚想è¦é‹è¡Œ NCC æ‚¨å¿…é ˆå…ˆå®‰è£ .Net,您å¯ä»¥åœ¨ä»¥ä¸‹åœ°å€ä¸­ç²å–: <a href="%1">%1</a></li> - + Help on UI 介é¢å¹«åŠ© - + Documentation Wiki 說明文檔 (維基) - + Report Issue 報告å•題 - + Tutorials @@ -1942,93 +1952,92 @@ Right now this has very limited functionality ç„¡æ³•å„²å­˜åŠ è¼‰é †åº - + failed to save load order: %1 無法儲存加載順åº: %1 - failed to save archives order, do you have write access to "%1"? - 無法儲存檔案順åºï¼Œæ‚¨ç¢ºå®šæ‚¨æœ‰æ¬Šé™æ›´æ”¹ "%1"? + 無法儲存檔案順åºï¼Œæ‚¨ç¢ºå®šæ‚¨æœ‰æ¬Šé™æ›´æ”¹ "%1"? - + About - + About Qt - + Name å稱 - + Please enter a name for the new profile - + failed to create profile: %1 無法建立é…置檔案: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu. - + Downloads in progress 正在下載 - + There are still downloads in progress, do you really want to quit? 仿œ‰æ­£åœ¨é€²è¡Œä¸­çš„下載,您確定è¦é€€å‡ºå—Žï¼Ÿ - + failed to read savegame: %1 無法讀å–存檔: %1 - + Plugin "%1" failed: %2 - + Plugin error - + It appears the plugin "%1" failed to load last startup and caused MO to crash. Do you want to disable it? (Please note: If this is the first time you see this message for this plugin you may want to give it another try. The plugin may be able to recover from the problem) - + Failed to start "%1" 無法啟動 "%1" - + Waiting ç¨ç­‰ - + Please press OK once you're logged into steam. 當您登入 Steam 時請點擊確定。 @@ -2037,331 +2046,336 @@ Right now this has very limited functionality "%1" 未找到 - + Start Steam? 啟動 Steam? - + Steam is required to be running already to correctly start the game. Should MO try to start steam now? æƒ³è¦æ­£ç¢ºåœ°å•Ÿå‹•éŠæˆ²ï¼ŒSteam 必須處於é‹è¡Œç‹€æ…‹ï¼ŒMO è¦ç«‹å³å•Ÿå‹• Steam 嗎? - + Also in: <br> 也在: <br> - + No conflict 沒有è¡çª - + <Edit...> <編輯...> - + This bsa is enabled in the ini file so it may be required! 該 BSA 已在 Ini 檔案中啟用,因此它å¯èƒ½æ˜¯å¿…需的。 - + This archive will still be loaded since there is a plugin of the same name but its files will not follow installation order! 此檔案還是會被加載,因為存在åŒåæ’件。ä¸éŽå®ƒæ‰€åŒ…å«çš„çš„æª”æ¡ˆä¸æœƒéµå¾ªå®‰è£é †åºï¼ - + Activating Network Proxy - - + + Installation successful å®‰è£æˆåŠŸ - - + + Configure Mod é…ç½® Mod - - + + This mod contains ini tweaks. Do you want to configure them now? æ­¤ Mod ä¸­åŒ…å« Ini 設定檔案,您想ç¾åœ¨å°±å°å®ƒå€‘進行é…置嗎? - - + + mod "%1" not found Mod "%1" 未找到 - - + + Installation cancelled 安è£å·²å–消 - - + + The mod was not installed completely. Mod 沒有完全安è£ã€‚ - + Some plugins could not be loaded - + Too many esps and esms enabled - - + + Description missing - + The game doesn't allow more than 255 active plugins (including the official ones) to be loaded. You have to disable some unused plugins or merge some plugins into one. You can find a guide here: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a> - + Choose Mod 鏿“‡ Mod - + Mod Archive Mod 壓縮包 - + Start Tutorial? - + You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue? - - + + Download started 開始下載 - + failed to update mod list: %1 無法更新 Mod 列表: %1 - + failed to spawn notepad.exe: %1 ç„¡æ³•ç”Ÿæˆ notepad.exe: %1 - + failed to open %1 無法開啟 %1 - + failed to change origin name: %1 無法更改原始檔案å: %1 - + + failed to move "%1" from mod "%2" to "%3": %4 + + + + Multiple esps activated, please check that they don't conflict. - - + + Create Mod... - + A mod with this name already exists - + Continue? - + The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated. - - + + Sorry - + I don't know a versioning scheme where %1 is newer than %2. - + <All> <全部> - + <Checked> <已勾é¸> - + Plugin "%1" failed - + failed to init plugin %1: %2 - + The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version: - + <Unchecked> <未勾é¸> - + <Update> <有更新> - + <No category> <無類別> - + <Conflicted> - + <Not Endorsed> - + failed to rename mod: %1 ç„¡æ³•é‡æ–°å‘½å Mod: %1 - + Overwrite? - + This will replace the existing mod "%1". Continue? - + failed to remove mod "%1" - - - + + + failed to rename "%1" to "%2" - - - - + + + + Confirm ç¢ºèª - + Remove the following mods?<br><ul>%1</ul> - + failed to remove mod: %1 無法移動 Mod: %1 - - + + Failed 失敗 - + Installation file no longer exists å®‰è£æª”案ä¸è¤‡å­˜åœ¨ - + Mods installed with old versions of MO can't be reinstalled in this way. 舊版 MO 安è£çš„ Mod ç„¡æ³•ä½¿ç”¨æ­¤æ–¹æ³•é‡æ–°å®‰è£ã€‚ - - + + You need to be logged in with Nexus to endorse - - + + Extract BSA 解壓 BSA - + This mod contains at least one BSA. Do you want to unpack it? (This removes the BSA after completion. If you don't know about BSAs, just select no) æ­¤ Mod 中至少包å«ä¸€å€‹ BSA。您確定è¦è§£å£“嗎? (解壓完æˆå¾Œï¼ŒBSA 檔案將會被刪除。如果您ä¸çž­è§£ BSA çš„è©±ï¼Œè«‹é¸æ“‡â€œå¦â€) - - - + + + failed to read %1: %2 ç„¡æ³•è®€å– %1: %2 - - + + This archive contains invalid hashes. Some files may be broken. 壓縮包 Hash 值錯誤。部分檔案å¯èƒ½å·²ç¶“æå£žã€‚ - + Nexus ID for this Mod is unknown æ­¤ Mod çš„Nç¶² ID 未知 @@ -2374,92 +2388,92 @@ This function will guess the versioning scheme under the assumption that the ins 鏿“‡å„ªå…ˆç´š - + Really enable all visible mods? 確定è¦å•Ÿç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Really disable all visible mods? 確定è¦ç¦ç”¨å…¨éƒ¨å¯è¦‹çš„ Mod 嗎? - + Choose what to export - + Everything - + All installed mods are included in the list - + Active Mods - + Only active (checked) mods from your current profile are included - + Visible - + All mods visible in the mod list are included - + export failed: %1 - + Install Mod... å®‰è£ Mod... - + Enable all visible 啟用所有å¯è¦‹é …ç›® - + Disable all visible ç¦ç”¨æ‰€æœ‰å¯è¦‹é …ç›® - + Check all for update 檢查更新 - + Export to csv... - + Sync to Mods... åŒæ­¥åˆ° Mod... - + Restore Backup - + Remove Backup... @@ -2468,362 +2482,362 @@ This function will guess the versioning scheme under the assumption that the ins 設定類別 - + Primary Category - + Change versioning scheme - + Un-ignore update - + Ignore update - + Rename Mod... 釿–°å‘½å... - + Remove Mod... 移除 Mod... - + Reinstall Mod 釿–°å®‰è£ Mod - + Un-Endorse - - + + Endorse - + Won't endorse - + Endorsement state unknown - + Ignore missing data - + Visit on Nexus 在N網上æµè¦½ - + Open in explorer 在檔案總管中開啟 - + Information... 訊æ¯... - - + + Exception: 例外: - - + + Unknown exception 未知的例外 - + <Multiple> - + Really delete "%1"? - + Fix Mods... 修復 Mod... - + Delete - - + + failed to remove %1 無法刪除 %1 - - + + failed to create %1 無法建立 %1 - + Can't change download directory while downloads are in progress! 下載檔案時ä¸èƒ½ä¿®æ”¹ä¸‹è¼‰ç›®éŒ„ï¼ - + Download failed 下載失敗 - + failed to write to file %1 無法寫入檔案 %1 - + %1 written 已寫入 %1 - + Select binary 鏿“‡å¯åŸ·è¡Œæª”案 - + Binary - + Enter Name 輸入å稱 - + Please enter a name for the executable 請為程å¼è¼¸å…¥ä¸€å€‹å稱 - + Not an executable 䏿˜¯å¯åŸ·è¡Œç¨‹å¼ - + This is not a recognized executable. 無法識別的å¯åŸ·è¡Œæª”案 - - + + Replace file? å–代檔案? - + There already is a hidden version of this file. Replace it? 已存在åŒå檔案,但該檔案被隱è—了。確定è¦è¦†è“‹å—Žï¼Ÿ - - + + File operation failed 檔案æ“作錯誤 - - + + Failed to remove "%1". Maybe you lack the required file permissions? - + There already is a visible version of this file. Replace it? - + file not found: %1 檔案未找到: %1 - + failed to generate preview for %1 - + Sorry, can't preview anything. This function currently does not support extracting from bsas. - + Update available æ›´æ–°å¯ç”¨ - + Open/Execute 開啟/執行 - + Add as Executable 添加為å¯åŸ·è¡Œæª”案 - + Preview - + Un-Hide å–æ¶ˆéš±è— - + Hide éš±è— - + Write To File... 寫入檔案... - + Do you want to endorse Mod Organizer on %1 now? - + Remove 移除 - + Unlock load order - + Lock load order - + BOSS working - + failed to run boss: %1 - + Request to Nexus failed: %1 - + Executable "%1" not found - + Failed to refresh list of esps: %1 - + This will move all files from overwrite into a new, regular mod. Please enter a name: - + Add/Remove Categories - + Replace Categories - - + + login successful 登入æˆåŠŸ - + login failed: %1. Trying to download anyway 登入失敗: %1,請嘗試使用別的方法下載 - + login failed: %1 無法登入: %1 - + login failed: %1. You need to log-in with Nexus to update MO. 登入失敗: %1。您需è¦ç™»å…¥åˆ°Nç¶²æ‰èƒ½æ›´æ–° MO - + Error 錯誤 - + failed to extract %1 (errorcode %2) 無法解壓 %1 (錯誤代碼 %2) - + Extract... 解壓... - + Edit Categories... 編輯類別... - + Enable all 全部啟用 - + Disable all 全部ç¦ç”¨ @@ -4765,64 +4779,64 @@ Right now this has very limited functionality ESP 檔案沒有找到: %1 - + Mod Index - + Flags - - + + unknown - + Name of your mods - + Load priority of your mod. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + The modindex determins the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + esp not found: %1 - - + + Confirm ç¢ºèª - + Really enable all plugins? - + Really disable all plugins? - + The file containing locked plugin indices is broken @@ -4831,7 +4845,7 @@ Right now this has very limited functionality 無法開啟輸出檔案: %1 - + Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. 您的一些æ’ä»¶å稱無效ï¼é€™äº›æ’ä»¶ç„¡æ³•è¢«éŠæˆ²è¼‰å…¥ã€‚請查看 mo_interface.log 來確èªé‚£äº›å—影響的æ’件䏦釿–°å‘½å它們。 @@ -4841,17 +4855,17 @@ Right now this has very limited functionality - + Missing Masters - + Enabled Masters - + failed to restore load order for %1 @@ -4864,17 +4878,17 @@ Right now this has very limited functionality 最高值 - + This plugin can't be disabled (enforced by the game) 這個æ’ä»¶ä¸èƒ½è¢«ç¦ç”¨ (ç”±éŠæˆ²åŸ·è¡Œ) - + Origin: %1 隸屬於: %1 - + Name å稱 @@ -4883,7 +4897,7 @@ Right now this has very limited functionality Mod å稱 - + Priority 優先級 @@ -5466,23 +5480,23 @@ p, li { white-space: pre-wrap; } - + Please use "Help" from the toolbar to get usage instructions to all elements 請使用工具列上的“幫助â€ä¾†ç²å¾—所有元素的使用說明 - - + + <Manage...> <管ç†...> - + failed to parse profile %1: %2 無法解æžé…置檔案 %1: %2 - + failed to find "%1" 未能找到 "%1" @@ -5492,12 +5506,12 @@ p, li { white-space: pre-wrap; } 編碼錯誤,請å‘作者彙報此 Bug 並且附上 mo_interface.log æª”æ¡ˆï¼ - + failed to access %1 ç„¡æ³•è¨ªå• %1 - + failed to set file time %1 無法設定檔案時間 %1 diff --git a/src/settings.cpp b/src/settings.cpp index 895094f7..dd3891d4 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -223,7 +223,7 @@ QString Settings::getModDirectory() const QString Settings::getNMMVersion() const { - static const QString MIN_NMM_VERSION = "0.46.0"; + static const QString MIN_NMM_VERSION = "0.47.0"; QString result = m_Settings.value("Settings/nmm_version", MIN_NMM_VERSION).toString(); if (VersionInfo(result) < VersionInfo(MIN_NMM_VERSION)) { result = MIN_NMM_VERSION; -- cgit v1.3.1 From f9eba9dc15ec655cc16efbb1ddccac3a562741d5 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 17 Feb 2014 21:15:20 +0100 Subject: - ini file changes that would have to overwrite ini tweaks are now stored in a separate file and actually get used. - a warning message advices users to clean out that separate file - slightly improved default main window layout - bugfix: newly created ini tweaks were added to the list with incorrect properties --- src/mainwindow.cpp | 4 ++ src/mainwindow.ui | 4 +- src/modinfo.cpp | 120 +++++++++++++++++++++-------------------------- src/modinfo.h | 6 +++ src/modinfodialog.cpp | 17 +++---- src/profile.cpp | 6 +++ src/profile.h | 5 ++ src/shared/appconfig.inc | 1 + 8 files changed, 85 insertions(+), 78 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 12db5e2b..556c33f3 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -217,6 +217,9 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget ui->bsaList->setLocalMoveOnly(true); + ui->splitter->setStretchFactor(0, 3); + ui->splitter->setStretchFactor(1, 2); + resizeLists(initSettings.contains("mod_list_state"), initSettings.contains("plugin_list_state")); QMenu *linkMenu = new QMenu(this); @@ -3158,6 +3161,7 @@ void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index, dialog->activateWindow(); connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int))); } else { + modInfo->saveMeta(); ModInfoDialog dialog(modInfo, m_DirectoryStructure, this); connect(&dialog, SIGNAL(nexusLinkActivated(QString)), this, SLOT(nexusLinkActivated(QString))); connect(&dialog, SIGNAL(downloadRequest(QString)), this, SLOT(downloadRequestedNXM(QString))); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 110c14c6..26cbbf83 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 868 - 701 + 926 + 710 diff --git a/src/modinfo.cpp b/src/modinfo.cpp index ff44b392..ed13deae 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -300,8 +300,37 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc testValid(); m_CreationTime = QFileInfo(path.absolutePath()).created(); // read out the meta-file for information - QString metaFileName = path.absoluteFilePath("meta.ini"); - QSettings metaFile(metaFileName, QSettings::IniFormat); + readMeta(); + + connect(&m_NexusBridge, SIGNAL(descriptionAvailable(int,QVariant,QVariant)), this, SLOT(nxmDescriptionAvailable(int,QVariant,QVariant))); + connect(&m_NexusBridge, SIGNAL(endorsementToggled(int,QVariant,QVariant)), this, SLOT(nxmEndorsementToggled(int,QVariant,QVariant))); + connect(&m_NexusBridge, SIGNAL(requestFailed(int,int,QVariant,QString)), this, SLOT(nxmRequestFailed(int,int,QVariant,QString))); +} + + +ModInfoRegular::~ModInfoRegular() +{ + try { + saveMeta(); + } catch (const std::exception &e) { + qCritical("failed to save meta information for \"%s\": %s", + m_Name.toUtf8().constData(), e.what()); + } +} + +bool ModInfoRegular::isEmpty() const +{ + QDirIterator iter(m_Path, QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs); + if (!iter.hasNext()) return true; + iter.next(); + if ((iter.fileName() == "meta.ini") && !iter.hasNext()) return true; + return false; +} + + +void ModInfoRegular::readMeta() +{ + QSettings metaFile(m_Path + "/meta.ini", QSettings::IniFormat); m_Notes = metaFile.value("notes", "").toString(); m_NexusID = metaFile.value("modid", -1).toInt(); @@ -324,7 +353,6 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc } } - QString categoriesString = metaFile.value("category", "").toString(); QStringList categories = categoriesString.split(',', QString::SkipEmptyParts); @@ -343,77 +371,39 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc } } - connect(&m_NexusBridge, SIGNAL(descriptionAvailable(int,QVariant,QVariant)), this, SLOT(nxmDescriptionAvailable(int,QVariant,QVariant))); - connect(&m_NexusBridge, SIGNAL(endorsementToggled(int,QVariant,QVariant)), this, SLOT(nxmEndorsementToggled(int,QVariant,QVariant))); - connect(&m_NexusBridge, SIGNAL(requestFailed(int,int,QVariant,QString)), this, SLOT(nxmRequestFailed(int,int,QVariant,QString))); -} - - -ModInfoRegular::~ModInfoRegular() -{ - try { - saveMeta(); - } catch (const std::exception &e) { - qCritical("failed to save meta information for \"%s\": %s", - m_Name.toUtf8().constData(), e.what()); - } -} - -bool ModInfoRegular::isEmpty() const -{ - QDirIterator iter(m_Path, QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs); - if (!iter.hasNext()) return true; - iter.next(); - if ((iter.fileName() == "meta.ini") && !iter.hasNext()) return true; - return false; + m_MetaInfoChanged = false; } - void ModInfoRegular::saveMeta() { // only write meta data if the mod directory exists if (m_MetaInfoChanged && QFile::exists(absolutePath())) { - bool success = false; - { - QSettings metaFile(absolutePath().append("/meta.ini.new"), QSettings::IniFormat); - if (metaFile.status() == QSettings::NoError) { - std::set temp = m_Categories; - temp.erase(m_PrimaryCategory); - metaFile.setValue("category", QString("%1").arg(m_PrimaryCategory) + "," + SetJoin(temp, ",")); - metaFile.setValue("newestVersion", m_NewestVersion.canonicalString()); - metaFile.setValue("ignoredVersion", m_IgnoredVersion.canonicalString()); - metaFile.setValue("version", m_Version.canonicalString()); - if (m_NexusID != -1) { - metaFile.setValue("modid", m_NexusID); - } - metaFile.setValue("notes", m_Notes); - metaFile.setValue("nexusDescription", m_NexusDescription); - metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate)); - if (m_EndorsedState != ENDORSED_UNKNOWN) { - metaFile.setValue("endorsed", m_EndorsedState); - } - metaFile.sync(); // sync needs to be called to ensure the file is created - - if (metaFile.status() == QSettings::NoError) { - success = true; - m_MetaInfoChanged = false; - } else { - reportError(tr("failed to write %1/meta.ini: error %2").arg(absolutePath()).arg(metaFile.status())); - } - } else { - reportError(tr("failed to write %1/meta.ini: error %2").arg(absolutePath()).arg(metaFile.status())); + QSettings metaFile(absolutePath().append("/meta.ini"), QSettings::IniFormat); + if (metaFile.status() == QSettings::NoError) { + std::set temp = m_Categories; + temp.erase(m_PrimaryCategory); + metaFile.setValue("category", QString("%1").arg(m_PrimaryCategory) + "," + SetJoin(temp, ",")); + metaFile.setValue("newestVersion", m_NewestVersion.canonicalString()); + metaFile.setValue("ignoredVersion", m_IgnoredVersion.canonicalString()); + metaFile.setValue("version", m_Version.canonicalString()); + if (m_NexusID != -1) { + metaFile.setValue("modid", m_NexusID); } - } - if (success) { - if (!QFile::remove(absolutePath().append("/meta.ini"))) { - qCritical("failed to remove %s", qPrintable(absolutePath().append("/meta.ini"))); - return; + metaFile.setValue("notes", m_Notes); + metaFile.setValue("nexusDescription", m_NexusDescription); + metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate)); + if (m_EndorsedState != ENDORSED_UNKNOWN) { + metaFile.setValue("endorsed", m_EndorsedState); } - if (QFile::rename(absolutePath().append("/meta.ini.new"), absolutePath().append("/meta.ini"))) { - qDebug("%s written", qPrintable(absolutePath().append("/meta.ini"))); + metaFile.sync(); // sync needs to be called to ensure the file is created + + if (metaFile.status() == QSettings::NoError) { + m_MetaInfoChanged = false; } else { - qCritical("writing %s failed", qPrintable(absolutePath().append("/meta.ini"))); + reportError(tr("failed to write %1/meta.ini: error %2").arg(absolutePath()).arg(metaFile.status())); } + } else { + reportError(tr("failed to write %1/meta.ini: error %2").arg(absolutePath()).arg(metaFile.status())); } } } @@ -717,13 +707,11 @@ QString ModInfoRegular::getNexusDescription() const return m_NexusDescription; } - ModInfoRegular::EEndorsedState ModInfoRegular::endorsedState() const { return m_EndorsedState; } - ModInfoRegular::EConflictType ModInfoRegular::isConflicted() const { // this is costy so cache the result diff --git a/src/modinfo.h b/src/modinfo.h index b7d72584..8b37b915 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -431,6 +431,11 @@ public: */ void testValid(); + /** + * @brief reads meta information from disk + */ + virtual void readMeta() {} + /** * @brief stores meta information back to disk */ @@ -748,6 +753,7 @@ public: */ virtual void saveMeta(); + void readMeta(); private: enum EConflictType { diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index 117b2726..dae4cc18 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -158,9 +158,8 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo ModInfoDialog::~ModInfoDialog() { m_ModInfo->setNotes(ui->notesEdit->toPlainText()); - saveIniTweaks(); saveCategories(ui->categoriesTree->invisibleRootItem()); - + saveIniTweaks(); // ini tweaks are written to the ini file directly. This is the only information not managed by ModInfo delete ui; delete m_Settings; } @@ -216,7 +215,6 @@ QByteArray ModInfoDialog::saveTabState() const stream << ui->tabWidget->count(); for (int i = 0; i < ui->tabWidget->count(); ++i) { stream << ui->tabWidget->widget(i)->objectName(); - } return result; @@ -475,18 +473,15 @@ void ModInfoDialog::openIniFile(const QString &fileName) void ModInfoDialog::saveIniTweaks() { - QListWidget *iniTweaksList = findChild("iniTweaksList"); - m_Settings->beginWriteArray("INI Tweaks"); int countEnabled = 0; - for (int i = 0; i < iniTweaksList->count(); ++i) { - if (iniTweaksList->item(i)->checkState() == Qt::Checked) { + for (int i = 0; i < ui->iniTweaksList->count(); ++i) { + if (ui->iniTweaksList->item(i)->checkState() == Qt::Checked) { m_Settings->setArrayIndex(countEnabled++); - m_Settings->setValue("name", iniTweaksList->item(i)->text()); + m_Settings->setValue("name", ui->iniTweaksList->item(i)->text()); } } - m_Settings->endArray(); } @@ -1229,8 +1224,10 @@ void ModInfoDialog::createTweak() return; } - QListWidgetItem *newTweak = new QListWidgetItem(name); + QListWidgetItem *newTweak = new QListWidgetItem(name + ".ini"); newTweak->setData(Qt::UserRole, "INI Tweaks/" + name + ".ini"); + newTweak->setFlags(newTweak->flags() | Qt::ItemIsUserCheckable); + newTweak->setCheckState(Qt::Unchecked); ui->iniTweaksList->addItem(newTweak); } diff --git a/src/profile.cpp b/src/profile.cpp index c1f1025e..41a867c5 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -201,6 +201,7 @@ void Profile::createTweakedIniFile() } } + mergeTweak(getProfileTweaks(), tweakedIni); bool error = false; if (!::WritePrivateProfileStringW(L"Archive", L"bInvalidateOlderFiles", L"1", ToWString(tweakedIni).c_str())) { @@ -740,6 +741,11 @@ QString Profile::getIniFileName() const return m_Directory.absoluteFilePath(ToQString(primaryIniFile)); } +QString Profile::getProfileTweaks() const +{ + return QDir::cleanPath(m_Directory.absoluteFilePath(ToQString(AppConfig::profileTweakIni()))); +} + QString Profile::getPath() const { diff --git a/src/profile.h b/src/profile.h index 9c678a23..4960671a 100644 --- a/src/profile.h +++ b/src/profile.h @@ -177,6 +177,11 @@ public: **/ QString getIniFileName() const; + /** + * @return the path of the tweak ini in this profile + */ + QString getProfileTweaks() const; + /** * @return path to this profile **/ diff --git a/src/shared/appconfig.inc b/src/shared/appconfig.inc index 7710925a..080d3655 100644 --- a/src/shared/appconfig.inc +++ b/src/shared/appconfig.inc @@ -1,6 +1,7 @@ APPPARAM(std::wstring, translationPrefix, L"organizer") APPPARAM(std::wstring, pluginPath, L"plugins") APPPARAM(std::wstring, stylesheetsPath, L"stylesheets") +APPPARAM(std::wstring, profileTweakIni, L"profile_tweaks.ini") APPPARAM(std::wstring, logFile, L"ModOrganizer.log") APPPARAM(std::wstring, proxyDLLTarget, L"steam_api.dll") APPPARAM(std::wstring, proxyDLLOrig, L"steam_api_orig.dll") // needs to be identical to the value used in proxydll-project -- cgit v1.3.1 From bed3c08a6dd59332edff8f67c4423e56b39a9a09 Mon Sep 17 00:00:00 2001 From: Tannin Date: Tue, 18 Feb 2014 19:08:12 +0100 Subject: - bugfix: on-demand loading of data tree broke filtering on conflicting files --- src/mainwindow.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 556c33f3..4c66ccce 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1558,18 +1558,21 @@ void MainWindow::updateTo(QTreeWidgetItem *subTree, const std::wstring &director columns.append(""); if (!(*current)->isEmpty()) { QTreeWidgetItem *directoryChild = new QTreeWidgetItem(columns); - QTreeWidgetItem *onDemandLoad = new QTreeWidgetItem(QStringList()); - onDemandLoad->setData(0, Qt::UserRole + 0, "__loaded_on_demand__"); - onDemandLoad->setData(0, Qt::UserRole + 1, ToQString(temp.str())); - onDemandLoad->setData(0, Qt::UserRole + 2, conflictsOnly); - directoryChild->addChild(onDemandLoad); - subTree->addChild(directoryChild); -/* updateTo(directoryChild, temp.str(), **current, conflictsOnly); - if (directoryChild->childCount() != 0) { - subTree->addChild(directoryChild); + if (conflictsOnly) { + updateTo(directoryChild, temp.str(), **current, conflictsOnly); + if (directoryChild->childCount() != 0) { + subTree->addChild(directoryChild); + } else { + delete directoryChild; + } } else { - delete directoryChild; - }*/ + QTreeWidgetItem *onDemandLoad = new QTreeWidgetItem(QStringList()); + onDemandLoad->setData(0, Qt::UserRole + 0, "__loaded_on_demand__"); + onDemandLoad->setData(0, Qt::UserRole + 1, ToQString(temp.str())); + onDemandLoad->setData(0, Qt::UserRole + 2, conflictsOnly); + directoryChild->addChild(onDemandLoad); + subTree->addChild(directoryChild); + } } } } -- cgit v1.3.1 From a82b7e99495a2a351a1e4a95381ca29225eb8424 Mon Sep 17 00:00:00 2001 From: Tannin Date: Thu, 13 Mar 2014 19:00:32 +0100 Subject: - "CreateDirectory" will no longer create directories in original data directory - bain installer will now be less picky about the archives supported - updated NCC to be compatible with more recent NMM code base - hack in NCC to allow it to install arbitrary sized files even in 32-bit builds - updated the python27.dll to one that links to msvcr100.dll to get rid of the dependency of msvcr90.dll - bugfix: dll search order wasn't set to allow plugins to load the correct qt dlls --- src/mainwindow.cpp | 3 +++ src/organizer.pro | 20 ++++++++++---------- src/version.rc | 4 ++-- 3 files changed, 15 insertions(+), 12 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4c66ccce..a39a497e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -322,6 +322,9 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget m_Tutorial.expose("modList", &m_ModList); m_Tutorial.expose("espList", &m_PluginList); + + // before we start loading plugins we, add the dll path to the dll search order + ::SetDllDirectoryW(ToWString(QDir::toNativeSeparators(qApp->applicationDirPath() + "/dlls")).c_str()); loadPlugins(); } diff --git a/src/organizer.pro b/src/organizer.pro index 9a9d0da3..29cf0434 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -7,7 +7,7 @@ contains(QT_VERSION, "^5.*") { QT += core gui widgets network declarative script xml sql xmlpatterns } else { - QT += core gui network xml declarative script sql xmlpatterns opengl + QT += core gui network xml declarative script sql xmlpatterns } TARGET = ModOrganizer @@ -95,7 +95,7 @@ HEADERS += \ settingsdialog.h \ settings.h \ selfupdater.h \ - selectiondialog.h \ + selectiondialog.h \ savegameinfowidgetgamebryo.h \ savegameinfowidget.h \ savegamegamebyro.h \ @@ -166,7 +166,7 @@ FORMS += \ syncoverwritedialog.ui \ simpleinstalldialog.ui \ settingsdialog.ui \ - selectiondialog.ui \ + selectiondialog.ui \ savegameinfowidget.ui \ queryoverwritedialog.ui \ profilesdialog.ui \ @@ -197,22 +197,22 @@ INCLUDEPATH += ../shared ../archive ../uibase ../bsatk ../esptk ../boss_modified LIBS += -L"$(BOOSTPATH)/stage/lib" CONFIG(debug, debug|release) { - OUTDIR = $$OUT_PWD/debug - DSTDIR = $$PWD/../../outputd + OUTDIR = $$OUT_PWD/debug + DSTDIR = $$PWD/../../outputd LIBS += -L$$OUT_PWD/../shared/debug LIBS += -L$$OUT_PWD/../bsatk/debug LIBS += -L$$OUT_PWD/../uibase/debug LIBS += -L$$OUT_PWD/../boss_modified/debug LIBS += -lDbgHelp } else { - OUTDIR = $$OUT_PWD/release - DSTDIR = $$PWD/../../output + OUTDIR = $$OUT_PWD/release + DSTDIR = $$PWD/../../output LIBS += -L$$OUT_PWD/../shared/release LIBS += -L$$OUT_PWD/../bsatk/release LIBS += -L$$OUT_PWD/../uibase/release LIBS += -L$$OUT_PWD/../boss_modified/release QMAKE_CXXFLAGS += /Zi /GL -# QMAKE_CXXFLAGS -= -O2 +# QMAKE_CXXFLAGS -= -O2 QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF } @@ -283,7 +283,7 @@ CONFIG(debug, debug|release) { } RESOURCES += \ - resources.qrc \ + resources.qrc \ stylesheet_resource.qrc RC_FILE += \ @@ -303,7 +303,7 @@ OTHER_FILES += \ tutorials/tutorials_modinfodialog.qml \ tutorials/tutorial_firststeps_modinfo.js \ tutorials/tutorial_conflictresolution_main.js \ - tutorials/tutorial_conflictresolution_modinfo.js \ + tutorials/tutorial_conflictresolution_modinfo.js \ app_icon.rc \ dark.qss \ stylesheets/dark.qss \ diff --git a/src/version.rc b/src/version.rc index 426e927e..33c25b1c 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,7 +1,7 @@ #include "Winver.h" -#define VER_FILEVERSION 1,1,2,0 -#define VER_FILEVERSION_STR "1,1,2,0\0" +#define VER_FILEVERSION 1,1,3,0 +#define VER_FILEVERSION_STR "1,1,3,0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION -- cgit v1.3.1 From 129b76d7d2d90c3a791e101435987993ed8b312a Mon Sep 17 00:00:00 2001 From: Tannin Date: Thu, 13 Mar 2014 21:57:11 +0100 Subject: - unpacking bsas during installation no longer overwrites loose files (since the loose files would have taken precedence) --- src/mainwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a39a497e..a0af63bd 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3289,7 +3289,8 @@ void MainWindow::testExtractBSA(int modIndex) progress.show(); archive.extractAll(modInfo->absolutePath().toLocal8Bit().constData(), - boost::bind(&MainWindow::extractProgress, this, boost::ref(progress), _1, _2)); + boost::bind(&MainWindow::extractProgress, this, boost::ref(progress), _1, _2), + false); if (result == BSA::ERROR_INVALIDHASHES) { reportError(tr("This archive contains invalid hashes. Some files may be broken.")); -- cgit v1.3.1 From 98354cd1e7f3c6b89f7112bda0791cf8ba191372 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 16 Mar 2014 20:04:57 +0100 Subject: some fixes towards qt5 compatibility --- src/mainwindow.cpp | 4 ++++ src/moapplication.cpp | 8 ++++++++ src/organizer.pro | 35 ++++++++++++++++++++++++++++++++++- src/pluginlist.h | 2 +- src/settings.cpp | 4 ++++ src/shared/leaktrace.cpp | 1 + 6 files changed, 52 insertions(+), 2 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4c66ccce..1c57f549 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -103,7 +103,11 @@ along with Mod Organizer. If not, see . #include #include #include +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) +#include +#else #include +#endif #include #include #include diff --git a/src/moapplication.cpp b/src/moapplication.cpp index f09b2fd9..12ff713b 100644 --- a/src/moapplication.cpp +++ b/src/moapplication.cpp @@ -23,8 +23,10 @@ along with Mod Organizer. If not, see . #include #include #include +#if QT_VERSION < QT_VERSION_CHECK(5,0,0) #include #include +#endif #include #include #include @@ -123,12 +125,18 @@ bool MOApplication::notify(QObject *receiver, QEvent *event) void MOApplication::updateStyle(const QString &fileName) { +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + if (fileName == "Fusion") { + setStyle(QStyleFactory::create("fusion")); + setStyleSheet(""); +#else if (fileName == "Plastique") { setStyle(new ProxyStyle(new QPlastiqueStyle)); setStyleSheet(""); } else if (fileName == "Cleanlooks") { setStyle(new ProxyStyle(new QCleanlooksStyle)); setStyleSheet(""); +#endif } else { setStyle(new ProxyStyle(QStyleFactory::create(m_DefaultStyle))); if (QFile::exists(fileName)) { diff --git a/src/organizer.pro b/src/organizer.pro index 9a9d0da3..4fceb2be 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -4,8 +4,9 @@ # #------------------------------------------------- + contains(QT_VERSION, "^5.*") { - QT += core gui widgets network declarative script xml sql xmlpatterns + QT += core gui widgets network xml sql xmlpatterns qml quick script } else { QT += core gui network xml declarative script sql xmlpatterns opengl } @@ -311,6 +312,38 @@ OTHER_FILES += \ tutorials/tutorials_installdialog.qml +load(moc) + +# for each Boost header you include... +QMAKE_MOC += \ + -DBOOST_MPL_IF_HPP_INCLUDED \ + -DBOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED \ + -DBOOST_MPL_VOID_HPP_INCLUDED \ + -DBOOST_MPL_NOT_HPP_INCLUDED \ + -DBOOST_MPL_IDENTITY_HPP_INCLUDED \ + -DBOOST_VARIANT_VARIANT_FWD_HPP \ + -DBOOST_MPL_NEXT_PRIOR_HPP_INCLUDED \ + -DBOOST_MPL_O1_SIZE_HPP_INCLUDED \ + -DBOOST_MPL_DEREF_HPP_INCLUDED \ + -DBOOST_MPL_PAIR_HPP_INCLUDED \ + -DBOOST_MPL_ITER_FOLD_HPP_INCLUDED \ + -DBOOST_MPL_PROTECT_HPP_INCLUDED \ + -DBOOST_MPL_EVAL_IF_HPP_INCLUDED \ + -DBOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED \ + -DBOOST_MPL_EMPTY_HPP_INCLUDED \ + -DBOOST_MPL_ALWAYS_HPP_INCLUDED \ + -DBOOST_MPL_TRANSFORM_HPP_INCLUDED \ + -DBOOST_MPL_CLEAR_HPP_INCLUDED \ + -DBOOST_MPL_BEGIN_END_HPP_INCLUDED \ + -DBOOST_MPL_FOLD_HPP_INCLUDED \ + -DBOOST_MPL_FRONT_HPP_INCLUDED \ + -DBOOST_MPL_IS_SEQUENCE_HPP_INCLUDED \ + -DBOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED \ + -DBOOST_MPL_MAX_ELEMENT_HPP_INCLUDED \ + -DBOOST_MPL_PUSH_FRONT_HPP_INCLUDED \ + -DBOOST_RESULT_OF_HPP \ + -DBOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED + # leak detection with vld #INCLUDEPATH += "E:/Visual Leak Detector/include" #LIBS += -L"E:/Visual Leak Detector/lib/Win32" diff --git a/src/pluginlist.h b/src/pluginlist.h index e45746f2..3d7f0926 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -29,7 +29,7 @@ along with Mod Organizer. If not, see . #include #include #include -#include +#include "pdll.h" #include diff --git a/src/settings.cpp b/src/settings.cpp index dd3891d4..d9a7e799 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -436,8 +436,12 @@ void Settings::addLanguages(QComboBox *languageBox) void Settings::addStyles(QComboBox *styleBox) { styleBox->addItem("None", ""); +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + styleBox->addItem("Fusion", "Fusion"); +#else styleBox->addItem("Plastique", "Plastique"); styleBox->addItem("Cleanlooks", "Cleanlooks"); +#endif QDirIterator langIter(QCoreApplication::applicationDirPath() + "/" + ToQString(AppConfig::stylesheetsPath()), QStringList("*.qss"), QDir::Files); while (langIter.hasNext()) { diff --git a/src/shared/leaktrace.cpp b/src/shared/leaktrace.cpp index c3721557..68e57609 100644 --- a/src/shared/leaktrace.cpp +++ b/src/shared/leaktrace.cpp @@ -5,6 +5,7 @@ #include #include #include +#include static const int FRAMES_TO_SKIP = 3; // StackData::StackData(), __TraceData::regTrace(), TraceAlloc() -- cgit v1.3.1 From 8ab1b479438dd929bc953e554629d1bddca61c9e Mon Sep 17 00:00:00 2001 From: Tannin Date: Tue, 18 Mar 2014 18:29:32 +0100 Subject: - bugfix: if resuming a download failed with the server sending a textual error message, MO tried to display the whole file inside the error message - bugfix: resuming a download didn't trigger a nexus-login when necessary - bugfix: integrated fomod installer only used the first block of data inside a description --- src/downloadmanager.cpp | 2 +- src/mainwindow.cpp | 18 +++++++++++++++++- src/mainwindow.h | 1 + 3 files changed, 19 insertions(+), 2 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 31d8bcec..e747b299 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -1246,7 +1246,7 @@ void DownloadManager::downloadFinished() textData) { if (info->m_Tries == 0) { if (textData && (reply->error() == QNetworkReply::NoError)) { - emit showMessage(tr("Download failed. Server reported: %1").arg(readFileText(info->m_Output.fileName()))); + emit showMessage(tr("Download failed. Server reported: %1").arg(QString(data))); } else { emit showMessage(tr("Download failed: %1 (%2)").arg(reply->errorString()).arg(reply->error())); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a0af63bd..d4826b30 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3099,6 +3099,22 @@ void MainWindow::reinstallMod_clicked() } +void MainWindow::resumeDownload(int downloadIndex) +{ + if (NexusInterface::instance()->getAccessManager()->loggedIn()) { + m_DownloadManager.resumeDownload(downloadIndex); + } else { + QString username, password; + if (m_Settings.getNexusLogin(username, password)) { + m_PostLoginTasks.push_back(boost::bind(&MainWindow::resumeDownload, _1, downloadIndex)); + NexusInterface::instance()->getAccessManager()->login(username, password); + } else { + MessageDialog::showMessage(tr("You need to be logged in with Nexus to resume a download"), this); + } + } +} + + void MainWindow::endorseMod(ModInfo::Ptr mod) { if (NexusInterface::instance()->getAccessManager()->loggedIn()) { @@ -4685,7 +4701,7 @@ void MainWindow::updateDownloadListDelegate() connect(ui->downloadView->itemDelegate(), SIGNAL(restoreDownload(int)), &m_DownloadManager, SLOT(restoreDownload(int))); connect(ui->downloadView->itemDelegate(), SIGNAL(cancelDownload(int)), &m_DownloadManager, SLOT(cancelDownload(int))); connect(ui->downloadView->itemDelegate(), SIGNAL(pauseDownload(int)), &m_DownloadManager, SLOT(pauseDownload(int))); - connect(ui->downloadView->itemDelegate(), SIGNAL(resumeDownload(int)), &m_DownloadManager, SLOT(resumeDownload(int))); + connect(ui->downloadView->itemDelegate(), SIGNAL(resumeDownload(int)), this, SLOT(resumeDownload(int))); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 250f2a48..46165f0f 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -483,6 +483,7 @@ private slots: void hookUpWindowTutorials(); + void resumeDownload(int downloadIndex); void endorseMod(ModInfo::Ptr mod); void cancelModListEditor(); -- cgit v1.3.1 From b1f1682790072fbfb45bd9eaa3c6890edfb81a22 Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 26 Mar 2014 17:23:26 +0100 Subject: - bugfix: the add/remove categories function could fail when a filter/grouping on categories was active --- src/mainwindow.cpp | 68 +++++++++++++++--------------------------------------- src/mainwindow.h | 4 +++- 2 files changed, 22 insertions(+), 50 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 93c1f2f1..bf5ea7f0 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3494,13 +3494,13 @@ void MainWindow::replaceCategoriesFromMenu(QMenu *menu, int modRow) } } -void MainWindow::addRemoveCategoriesFromMenu(QMenu *menu, int modRow) +void MainWindow::addRemoveCategoriesFromMenu(QMenu *menu, int modRow, int referenceRow) { - if (m_ContextRow != -1 && m_ContextRow != modRow) { - ModInfo::Ptr editedModInfo = ModInfo::getByIndex(m_ContextRow); + if (referenceRow != -1 && referenceRow != modRow) { + ModInfo::Ptr editedModInfo = ModInfo::getByIndex(referenceRow); foreach (QAction* action, menu->actions()) { if (action->menu() != NULL) { - addRemoveCategoriesFromMenu(action->menu(), modRow); + addRemoveCategoriesFromMenu(action->menu(), modRow, referenceRow); } else { QWidgetAction *widgetAction = qobject_cast(action); if (widgetAction != NULL) { @@ -3517,7 +3517,6 @@ void MainWindow::addRemoveCategoriesFromMenu(QMenu *menu, int modRow) } } } else { - //This block shouldn't be reached, but if it is then fall back to replace (context row is invalid or replacing edited mod) replaceCategoriesFromMenu(menu, modRow); } } @@ -3529,37 +3528,26 @@ void MainWindow::addRemoveCategories_MenuHandler() { return; } - QModelIndexList selected = ui->modList->selectionModel()->selectedRows(); + QModelIndexList selectedTemp = ui->modList->selectionModel()->selectedRows(); + QList selected; + foreach (const QModelIndex &idx, selectedTemp) { + selected.append(QPersistentModelIndex(idx)); + } if (selected.size() > 0) { - int min = INT_MAX; - int max = INT_MIN; - - QStringList selectedMods; - for (int i = 0; i < selected.size(); ++i) { - QModelIndex temp = mapToModel(&m_ModList, selected.at(i)); - selectedMods.append(temp.data().toString()); - if (temp.row() < min) min = temp.row(); - if (temp.row() > max) max = temp.row(); - // save the currently selected mod for last... then we can use it as a pattern for what is changing... - int modRow = m_ModListSortProxy->mapToSource(selected.at(i)).row(); - if (modRow != m_ContextRow) { - addRemoveCategoriesFromMenu(menu,modRow); + foreach (const QPersistentModelIndex &idx, selected) { + qDebug("change categories on: %s (ref: %s)", qPrintable(idx.data().toString()), qPrintable(m_ContextIdx.data().toString())); + QModelIndex modIdx = mapToModel(&m_ModList, idx); + if (modIdx.row() != m_ContextIdx.row()) { + addRemoveCategoriesFromMenu(menu, modIdx.row(), m_ContextIdx.row()); } } - //come back to the currently selected mod, after the others have been set - replaceCategoriesFromMenu(menu, m_ContextRow); + replaceCategoriesFromMenu(menu, m_ContextIdx.row()); m_ModList.notifyChange(-1); - // find mods by their name because indices are invalidated - QAbstractItemModel *model = ui->modList->model(); - Q_FOREACH(const QString &mod, selectedMods) { - QModelIndexList matches = model->match(model->index(0, 0), Qt::DisplayRole, mod, 1, - Qt::MatchFixedString | Qt::MatchCaseSensitive | Qt::MatchRecursive); - if (matches.size() > 0) { - ui->modList->selectionModel()->select(matches.at(0), QItemSelectionModel::Select | QItemSelectionModel::Rows); - } + foreach (const QPersistentModelIndex &idx, selected) { + ui->modList->selectionModel()->select(idx, QItemSelectionModel::Select | QItemSelectionModel::Rows); } } else { //For single mod selections, just do a replace @@ -3580,15 +3568,10 @@ void MainWindow::replaceCategories_MenuHandler() { QModelIndexList selected = ui->modList->selectionModel()->selectedRows(); if (selected.size() > 0) { - int min = INT_MAX; - int max = INT_MIN; - QStringList selectedMods; for (int i = 0; i < selected.size(); ++i) { QModelIndex temp = mapToModel(&m_ModList, selected.at(i)); selectedMods.append(temp.data().toString()); - if (temp.row() < min) min = temp.row(); - if (temp.row() > max) max = temp.row(); replaceCategoriesFromMenu(menu, mapToModel(&m_ModList, selected.at(i)).row()); } @@ -3810,8 +3793,8 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) try { QTreeView *modList = findChild("modList"); - QModelIndex index = mapToModel(&m_ModList, modList->indexAt(pos)); - m_ContextRow = index.row(); + m_ContextIdx = mapToModel(&m_ModList, modList->indexAt(pos)); + m_ContextRow = m_ContextIdx.row(); QMenu menu; @@ -4771,19 +4754,6 @@ void MainWindow::nxmUpdatesAvailable(const std::vector &modIDs, QVariant us } } -/* -void MainWindow::nxmEndorsementToggled(int, QVariant, QVariant resultData, int) -{ - if (resultData.toBool()) { - ui->actionEndorseMO->setVisible(false); - QMessageBox::question(this, tr("Thank you!"), tr("Thank you for your endorsement!")); - } - - if (!disconnect(sender(), SIGNAL(nxmEndorsementToggled(int, QVariant, QVariant, int)), - this, SLOT(nxmEndorsementToggled(int, QVariant, QVariant, int)))) { - qCritical("failed to disconnect endorsement slot"); - } -}*/ void MainWindow::nxmDownloadURLs(int, int, QVariant, QVariant resultData, int) { diff --git a/src/mainwindow.h b/src/mainwindow.h index 46165f0f..23923677 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -236,8 +236,9 @@ private: * the changes made in the menu (which is the delta between the current menu selection and the reference mod) * @param menu the menu after editing by the user * @param modRow index of the mod to edit + * @param referenceRow row of the reference mod */ - void addRemoveCategoriesFromMenu(QMenu *menu, int modRow); + void addRemoveCategoriesFromMenu(QMenu *menu, int modRow, int referenceRow); /** * Sets category selections from menu; for multiple mods, this will completely @@ -324,6 +325,7 @@ private: QString m_GamePath; int m_ContextRow; + QPersistentModelIndex m_ContextIdx; QTreeWidgetItem *m_ContextItem; QAction *m_ContextAction; -- cgit v1.3.1 From c017f4a0d50b67a44e276bd5ae8929ed3990c62c Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 5 Apr 2014 15:14:37 +0200 Subject: - added buttons to backup and restore the modlist and pluginlist - replaced boss integration with loot --- src/ModOrganizer.pro | 3 +- src/main.cpp | 23 +--- src/mainwindow.cpp | 204 ++++++++++++++++++++++++++++++++- src/mainwindow.h | 16 ++- src/mainwindow.ui | 112 +++++++++++++++++-- src/modlist.cpp | 2 +- src/pluginlist.cpp | 224 +------------------------------------ src/pluginlist.h | 83 +------------- src/profile.h | 6 +- src/resources.qrc | 3 + src/resources/arrange-boxes.png | Bin 0 -> 1634 bytes src/resources/document-save_32.png | Bin 0 -> 1971 bytes src/resources/edit-undo.png | Bin 0 -> 1601 bytes src/selectiondialog.cpp | 123 ++++++++++---------- src/selectiondialog.h | 96 ++++++++-------- src/shared/gameinfo.cpp | 8 ++ src/shared/gameinfo.h | 1 + src/spawn.cpp | 29 ++++- src/spawn.h | 8 +- 19 files changed, 486 insertions(+), 455 deletions(-) create mode 100644 src/resources/arrange-boxes.png create mode 100644 src/resources/document-save_32.png create mode 100644 src/resources/edit-undo.png (limited to 'src/mainwindow.cpp') diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro index 05b05855..62de3f66 100644 --- a/src/ModOrganizer.pro +++ b/src/ModOrganizer.pro @@ -14,7 +14,8 @@ SUBDIRS = bsatk \ BossDummy \ pythonRunner \ boss_modified \ - esptk + esptk \ + loot_cli plugins.depends = pythonRunner hookdll.depends = shared diff --git a/src/main.cpp b/src/main.cpp index ac903615..d1c5e263 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -80,24 +80,6 @@ using namespace MOBase; using namespace MOShared; -void removeOldLogfiles() -{ - QFileInfoList files = QDir(ToQString(GameInfo::instance().getLogDir())).entryInfoList(QStringList("ModOrganizer*.log"), - QDir::Files, QDir::Name); - - if (files.count() > 5) { - QStringList deleteFiles; - for (int i = 0; i < files.count() - 5; ++i) { - deleteFiles.append(files.at(i).absoluteFilePath()); - } - - if (!shellDelete(deleteFiles)) { - qWarning("failed to remove log files: %s", qPrintable(windowsErrorString(::GetLastError()))); - } - } -} - - // set up required folders (for a first install or after an update or to fix a broken installation) bool bootstrap() { @@ -111,7 +93,7 @@ bool bootstrap() } // cycle logfile - removeOldLogfiles(); + removeOldFiles(ToQString(GameInfo::instance().getLogDir()), "ModOrganizer*.log", 5, QDir::Name); // create organizer directories QString dirNames[] = { @@ -120,8 +102,7 @@ bool bootstrap() QDir::fromNativeSeparators(ToQString(gameInfo.getDownloadDir())), QDir::fromNativeSeparators(ToQString(gameInfo.getOverwriteDir())), QDir::fromNativeSeparators(ToQString(gameInfo.getLogDir())), - QDir::fromNativeSeparators(ToQString(gameInfo.getTutorialDir())), - QDir::fromNativeSeparators(ToQString(gameInfo.getOrganizerDirectory()) + "/boss") + QDir::fromNativeSeparators(ToQString(gameInfo.getTutorialDir())) }; static const int NUM_DIRECTORIES = sizeof(dirNames) / sizeof(QString); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index bf5ea7f0..87360f3c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -109,8 +109,10 @@ along with Mod Organizer. If not, see . #include #endif #include +#include #include #include +#include #ifdef TEST_MODELS @@ -2649,7 +2651,6 @@ void MainWindow::directory_refreshed() delete oldStructure; refreshDataTree(); - refreshLists(); } else { // TODO: don't know why this happens, this slot seems to get called twice with only one emit return; @@ -5155,20 +5156,213 @@ void MainWindow::on_showHiddenBox_toggled(bool checked) m_DownloadManager.setShowHidden(checked); } + +void MainWindow::createStdoutPipe(HANDLE *stdOutRead, HANDLE *stdOutWrite) +{ + SECURITY_ATTRIBUTES secAttributes; + secAttributes.nLength = sizeof(SECURITY_ATTRIBUTES); + secAttributes.bInheritHandle = TRUE; + secAttributes.lpSecurityDescriptor = NULL; + + if (!::CreatePipe(stdOutRead, stdOutWrite, &secAttributes, 0)) { + qCritical("failed to create stdout reroute"); + } + + if (!::SetHandleInformation(*stdOutRead, HANDLE_FLAG_INHERIT, 0)) { + qCritical("failed to correctly set up the stdout reroute"); + *stdOutWrite = *stdOutRead = INVALID_HANDLE_VALUE; + } +} + +std::string MainWindow::readFromPipe(HANDLE stdOutRead) +{ + static const int chunkSize = 128; + std::string result; + + char buffer[chunkSize + 1]; + buffer[chunkSize] = '\0'; + + DWORD read = 1; + while (read > 0) { + if (!::ReadFile(stdOutRead, buffer, chunkSize, &read, NULL)) { + break; + } + if (read > 0) { + result.append(buffer, read); + if (read < chunkSize) { + break; + } + } + } + return result; +} + void MainWindow::on_bossButton_clicked() { try { this->setEnabled(false); ON_BLOCK_EXIT([&] () { this->setEnabled(true); }); - LockedDialog dialog(this, tr("BOSS working"), false); + QProgressDialog dialog(this); + dialog.setLabelText(tr("LOOT working")); + dialog.setMaximum(0); dialog.show(); - qApp->processEvents(); - m_PluginList.bossSort(); - savePluginList(); + QStringList parameters; + parameters << "--game" << ToQString(GameInfo::instance().getGameName()) + << "--gamePath" << ToQString(GameInfo::instance().getGameDirectory()); + + HANDLE stdOutWrite = INVALID_HANDLE_VALUE; + HANDLE stdOutRead = INVALID_HANDLE_VALUE; + createStdoutPipe(&stdOutRead, &stdOutWrite); + + HANDLE loot = startBinary(QFileInfo(qApp->applicationDirPath() + "/lootcli.exe"), + parameters.join(" "), + m_CurrentProfile->getName(), + m_Settings.logLevel(), + qApp->applicationDirPath(), + true, + stdOutWrite); + + // we don't use the write end + ::CloseHandle(stdOutWrite); + + if (loot != INVALID_HANDLE_VALUE) { + while (::WaitForSingleObject(loot, 100) == WAIT_TIMEOUT) { + // keep processing events so the app doesn't appear dead + QCoreApplication::processEvents(); + if (dialog.wasCanceled()) { + ::TerminateProcess(loot, 1); + } + std::string lootOut = readFromPipe(stdOutRead); + std::vector lines; + boost::split(lines, lootOut, boost::is_any_of("\r\n")); + foreach (const std::string &line, lines) { + if (line.length() > 0) { + size_t progidx = line.find("[progress]"); + size_t reportidx = line.find("[report]"); + if (progidx != std::string::npos) { + dialog.setLabelText(line.substr(progidx + 11).c_str()); + } else if (reportidx != std::string::npos) { + qDebug("report at %s", line.substr(reportidx + 9).c_str()); + } else { + qDebug("%s", line.c_str()); + } + } + } + } + std::string remainder = readFromPipe(stdOutRead).c_str(); + if (remainder.length() > 0) { + qDebug("%s", remainder.c_str()); + } + + refreshESPList(); + + if (GameInfo::instance().getLoadOrderMechanism() == GameInfo::TYPE_FILETIME) { + QFile::remove(m_CurrentProfile->getLoadOrderFileName()); + } + } + dialog.hide(); } catch (const std::exception &e) { reportError(tr("failed to run boss: %1").arg(e.what())); ui->bossButton->setEnabled(false); } } + + +const char *MainWindow::PATTERN_BACKUP_GLOB = ".????_??_??_??_??_??"; +const char *MainWindow::PATTERN_BACKUP_REGEX = "\\.(\\d\\d\\d\\d_\\d\\d_\\d\\d_\\d\\d_\\d\\d_\\d\\d)"; +const char *MainWindow::PATTERN_BACKUP_DATE = "yyyy_MM_dd_hh_mm_ss"; + + +bool MainWindow::createBackup(const QString &filePath, const QDateTime &time) +{ + QString outPath = filePath + "." + time.toString(PATTERN_BACKUP_DATE); + if (shellCopy(QStringList(filePath), QStringList(outPath), this)) { + QFileInfo fileInfo(filePath); + removeOldFiles(fileInfo.absolutePath(), fileInfo.fileName() + PATTERN_BACKUP_GLOB, 3, QDir::Name); + return true; + } else { + return false; + } +} + +void MainWindow::on_saveButton_clicked() +{ + savePluginList(); + QDateTime now = QDateTime::currentDateTime(); + if (createBackup(m_CurrentProfile->getPluginsFileName(), now) + && createBackup(m_CurrentProfile->getLoadOrderFileName(), now) + && createBackup(m_CurrentProfile->getLockedOrderFileName(), now)) { + MessageDialog::showMessage(tr("Backup of load order created"), this); + } +} + +QString MainWindow::queryRestore(const QString &filePath) +{ + QFileInfo pluginFileInfo(filePath); + QString pattern = pluginFileInfo.fileName() + ".*"; + QFileInfoList files = pluginFileInfo.absoluteDir().entryInfoList(QStringList(pattern), QDir::Files, QDir::Name); + + SelectionDialog dialog(tr("Choose backup to restore"), this); + QRegExp exp(pluginFileInfo.fileName() + PATTERN_BACKUP_REGEX); + QRegExp exp2(pluginFileInfo.fileName() + "\\.(.*)"); + foreach(const QFileInfo &info, files) { + if (exp.exactMatch(info.fileName())) { + QDateTime time = QDateTime::fromString(exp.cap(1), PATTERN_BACKUP_DATE); + dialog.addChoice(time.toString(), "", exp.cap(1)); + } else if (exp2.exactMatch(info.fileName())) { + dialog.addChoice(exp2.cap(1), "", exp2.cap(1)); + } + } + + if (dialog.numChoices() == 0) { + QMessageBox::information(this, tr("No Backups"), tr("There are no backups to restore")); + return QString(); + } + + if (dialog.exec() == QDialog::Accepted) { + return dialog.getChoiceData().toString(); + } else { + return QString(); + } +} + +void MainWindow::on_restoreButton_clicked() +{ + QString pluginName = m_CurrentProfile->getPluginsFileName(); + QString choice = queryRestore(pluginName); + if (!choice.isEmpty()) { + QString loadOrderName = m_CurrentProfile->getLoadOrderFileName(); + QString lockedName = m_CurrentProfile->getLockedOrderFileName(); + if (!shellCopy(pluginName + "." + choice, pluginName, true, this) || + !shellCopy(loadOrderName + "." + choice, loadOrderName, true, this) || + !shellCopy(lockedName + "." + choice, lockedName, true, this)) { + QMessageBox::critical(this, tr("Restore failed"), + tr("Failed to restore the backup. Errorcode: %1").arg(windowsErrorString(::GetLastError()))); + } + refreshESPList(); + } +} + +void MainWindow::on_saveModsButton_clicked() +{ + m_CurrentProfile->writeModlistNow(true); + QDateTime now = QDateTime::currentDateTime(); + if (createBackup(m_CurrentProfile->getModlistFileName(), now)) { + MessageDialog::showMessage(tr("Backup of modlist created"), this); + } +} +void MainWindow::on_restoreModsButton_clicked() +{ + QString modlistName = m_CurrentProfile->getModlistFileName(); + QString choice = queryRestore(modlistName); + if (!choice.isEmpty()) { + if (!shellCopy(modlistName + "." + choice, modlistName, true, this)) { + QMessageBox::critical(this, tr("Restore failed"), + tr("Failed to restore the backup. Errorcode: %1").arg(windowsErrorString(::GetLastError()))); + } + refreshModList(false); + } +} + diff --git a/src/mainwindow.h b/src/mainwindow.h index 23923677..c5b4a8d3 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -154,6 +154,8 @@ public: void saveArchiveList(); + void createStdoutPipe(HANDLE *stdOutRead, HANDLE *stdOutWrite); + std::string readFromPipe(HANDLE stdOutRead); public slots: void displayColumnSelection(const QPoint &pos); @@ -207,8 +209,6 @@ private: bool nexusLogin(); - void saveCurrentESPList(); - bool testForSteam(); void startSteam(); @@ -290,11 +290,18 @@ private: void activateProxy(bool activate); void installTranslator(const QString &name); + bool createBackup(const QString &filePath, const QDateTime &time); + QString queryRestore(const QString &filePath); + private: static const unsigned int PROBLEM_PLUGINSNOTLOADED = 1; static const unsigned int PROBLEM_TOOMANYPLUGINS = 2; + static const char *PATTERN_BACKUP_GLOB; + static const char *PATTERN_BACKUP_REGEX; + static const char *PATTERN_BACKUP_DATE; + private: Ui::MainWindow *ui; @@ -574,6 +581,11 @@ private slots: // ui slots void on_showHiddenBox_toggled(bool checked); void on_bsaList_itemChanged(QTreeWidgetItem *item, int column); void on_bossButton_clicked(); + + void on_saveButton_clicked(); + void on_restoreButton_clicked(); + void on_restoreModsButton_clicked(); + void on_saveModsButton_clicked(); }; #endif // MAINWINDOW_H diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 26cbbf83..dc91121c 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -115,7 +115,7 @@ 2 - + @@ -170,6 +170,47 @@ p, li { white-space: pre-wrap; } + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Restore Backup... + + + + + + + :/MO/gui/restore:/MO/gui/restore + + + + + + + Create Backup + + + + + + + :/MO/gui/backup:/MO/gui/backup + + + @@ -617,6 +658,68 @@ p, li { white-space: pre-wrap; } 0 + + + + + + Sort + + + + :/MO/gui/sort:/MO/gui/sort + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Restore Backup... + + + + + + + :/MO/gui/restore:/MO/gui/restore + + + + 16 + 16 + + + + + + + + Create Backup + + + + + + + :/MO/gui/backup:/MO/gui/backup + + + + + @@ -725,13 +828,6 @@ p, li { white-space: pre-wrap; } - - - - Sort - - -
        diff --git a/src/modlist.cpp b/src/modlist.cpp index e2cb7cf0..836406e4 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -669,7 +669,7 @@ bool ModList::dropURLs(const QMimeData *mimeData, int row, const QModelIndex &pa } if (source.count() != 0) { - shellMove(source, target, NULL); + shellMove(source, target); } return true; diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index af6f42da..1f4ed9b1 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -78,7 +78,6 @@ PluginList::PluginList(QObject *parent) : QAbstractItemModel(parent) , m_FontMetrics(QFont()) , m_SaveTimer(this) - , m_BOSS(NULL) { m_SaveTimer.setSingleShot(true); connect(&m_SaveTimer, SIGNAL(timeout()), this, SIGNAL(saveTimer())); @@ -95,11 +94,6 @@ PluginList::PluginList(QObject *parent) PluginList::~PluginList() { - if (m_BOSS != NULL) { - m_BOSS->CleanUpAPI(); - delete m_BOSS; - m_BOSS = NULL; - } } @@ -595,225 +589,9 @@ void PluginList::refreshLoadOrder() } -class boss_exception : public std::runtime_error { -public: - boss_exception(const std::string &message) : std::runtime_error(message) {} -}; - -#define THROW_BOSS_ERROR(obj) \ - uint8_t *message; \ - obj->GetLastErrorDetails(&message); \ - throw boss_exception(std::string(reinterpret_cast(message))); - -#define U8(text) reinterpret_cast(text) - - -void outputBossLog(const QString &filename) -{ - QFile file(filename); - if (file.open(QIODevice::ReadOnly)) { - while (!file.atEnd()) { - QByteArray line = file.readLine().trimmed(); - if (line.length() < 1) - continue; - - int endFirstWord = line.indexOf(':'); - if (endFirstWord < 0) { - endFirstWord = 0; - } - QString firstWord = line.mid(0, endFirstWord); - if (firstWord == "DEBUG") { - qDebug("(boss) %s", line.mid(endFirstWord + 2).constData()); - } else { - qWarning("(boss) %s", line.mid(endFirstWord + 2).constData()); - } - } - } - file.resize(0); -} - - -boss_db PluginList::initBoss() -{ - boss_db result; - bool firstRun = (m_BOSS == nullptr); - if (firstRun) { - m_BOSS = new BossDLL(TEXT("dlls\\boss.dll")); - - if (!m_BOSS->IsCompatibleVersion(2,1,1)) { - throw MyException(tr("BOSS dll incompatible")); - } - uint8_t *versionString; - if (m_BOSS->GetVersionString(&versionString) != BossDLL::RESULT_OK) { - THROW_BOSS_ERROR(m_BOSS) - } - qDebug("using boss version %s", versionString); - - m_TempFile.open(); m_TempFile.close(); // yeah, stupid, but open is required to generate the name - m_BOSS->SetLoggerOutput(m_TempFile.fileName().toLocal8Bit().constData(), 4); - } - - if (m_BOSS->CreateBossDb(&result, BossDLL::SKYRIM, NULL) != BossDLL::RESULT_OK) { - uint8_t *message; - m_BOSS->GetLastErrorDetails(&message); - std::string messageCopy(reinterpret_cast(message)); - delete m_BOSS; - m_BOSS = NULL; - throw boss_exception(messageCopy); - } - qApp->processEvents(); - - QString masterlistName = QDir::toNativeSeparators(qApp->applicationDirPath() + "/boss/masterlist.txt"); - - if (firstRun) { - uint32_t res = m_BOSS->UpdateMasterlist(result, U8(masterlistName.toUtf8().constData())); - qApp->processEvents(); - if (res == BossDLL::RESULT_OK) { - qDebug("boss masterlist updated"); - } else if (res == BossDLL::RESULT_NO_UPDATE_NECESSARY) { - qDebug("boss masterlist already up-to-date"); - } else { - THROW_BOSS_ERROR(m_BOSS) - } - } - if (m_BOSS->Load(result, - U8(masterlistName.toUtf8().constData()), - U8(QDir::toNativeSeparators(qApp->applicationDirPath() + "/boss/userlist.txt").toUtf8().constData())) != BossDLL::RESULT_OK) { - THROW_BOSS_ERROR(m_BOSS) - } - return result; -} - -void PluginList::convertPluginListForBoss(boss_db db, boost::ptr_vector &inputPlugins, std::vector &activePlugins) -{ - foreach (int idx, m_ESPsByPriority) { - QString fileName = m_ESPs[idx].m_Name; - QByteArray name = fileName.toUtf8(); - - uint8_t *nameU8 = new uint8_t[name.length() + 1]; - memcpy(nameU8, name.constData(), name.length() + 1); - if (m_ESPs[idx].m_Enabled) { - activePlugins.push_back(nameU8); - } - inputPlugins.push_back(nameU8); - } - if (m_BOSS->SetActivePluginsDumb(db, &activePlugins[0], activePlugins.size()) != BossDLL::RESULT_OK) { - THROW_BOSS_ERROR(m_BOSS) - } -} - -void PluginList::applyBOSSSorting(boss_db db, std::map &lockedLoadOrder, uint8_t **pluginList, size_t size, - int &priority, int &loadOrder, bool recognized, const char *extension) -{ - for (size_t i = 0; i < size; ++i) { - QString name = QString::fromUtf8(reinterpret_cast(pluginList[i])).toLower(); - if (name.endsWith(extension)) { - auto iter = m_ESPsByName.find(name); - if (iter == m_ESPsByName.end()) { - // boss seems to report plugins from userlist as sorted that aren't even installed - continue; - } - - BossMessage *message; - size_t numMessages = 0; - m_BOSS->GetPluginMessages(db, pluginList[i], &message, &numMessages); - BossInfo newInfo; - for (size_t im = 0; im < numMessages; ++im) { - newInfo.m_BOSSMessages.append(QString::fromUtf8(reinterpret_cast(message[im].message))); - } - newInfo.m_BOSSUnrecognized = !recognized; - m_BossInfo[name] = newInfo; - - // locked order plugins are not inserted by boss sorting ... - if (m_LockedOrder.find(name) != m_LockedOrder.end()) { - continue; - } - - // ... but by their enforced priority - while (lockedLoadOrder.find(loadOrder) != lockedLoadOrder.end()) { - auto lloIter = lockedLoadOrder.find(loadOrder); - auto nameIter = m_ESPsByName.find(lloIter->second); - if (nameIter != m_ESPsByName.end()) { - m_ESPs[nameIter->second].m_Priority = priority++; - if (m_ESPs[nameIter->second].m_Enabled) { - m_ESPs[nameIter->second].m_LoadOrder = loadOrder++; - } else { - m_ESPs[nameIter->second].m_LoadOrder = -1; - } - } - lockedLoadOrder.erase(lloIter); - } - - m_ESPs[iter->second].m_Priority = priority++; - if (m_ESPs[iter->second].m_Enabled) { - m_ESPs[iter->second].m_LoadOrder = loadOrder++; - } else { - m_ESPs[iter->second].m_LoadOrder = -1; - } - } - } -} - -void PluginList::bossSort() +void PluginList::lootSort() { - boss_db db = initBoss(); - ON_BLOCK_EXIT([&] { m_BOSS->DestroyBossDb(db); }); - - // create a boss-compatible representation of our current mod list. - boost::ptr_vector inputPlugins; - std::vector activePlugins; - convertPluginListForBoss(db, inputPlugins, activePlugins); - - // sort mods in-memory - uint8_t **sortedPlugins; - uint8_t **unrecognizedPlugins; - size_t sizeSorted, sizeUnrecognized; - if (m_BOSS->SortCustomMods(db, - inputPlugins.c_array(), inputPlugins.size(), - &sortedPlugins, &sizeSorted, - &unrecognizedPlugins, &sizeUnrecognized) != BossDLL::RESULT_OK) { - THROW_BOSS_ERROR(m_BOSS) - } - - // output the log from boss to our own log to make it visible - outputBossLog(m_TempFile.fileName()); - - qDebug("%d sorted, %d unrecognized", sizeSorted, sizeUnrecognized); - ChangeBracket layoutChange(this); - - std::map lockedLoadOrder; - std::for_each(m_LockedOrder.begin(), m_LockedOrder.end(), - [&lockedLoadOrder] (const std::pair &ele) { lockedLoadOrder[ele.second] = ele.first; }); - - int priority = 0; - int loadOrder = 0; - applyBOSSSorting(db, lockedLoadOrder, sortedPlugins, sizeSorted, priority, loadOrder, true, "esm"); - applyBOSSSorting(db, lockedLoadOrder, unrecognizedPlugins, sizeUnrecognized, priority, loadOrder, false, "esm"); - applyBOSSSorting(db, lockedLoadOrder, sortedPlugins, sizeSorted, priority, loadOrder, true, "esp"); - applyBOSSSorting(db, lockedLoadOrder, unrecognizedPlugins, sizeUnrecognized, priority, loadOrder, false, "esp"); - - // applyBOSSSorting removed entries from lockedLoadOrder when they were inserted so everything that's left is plugins - // locked to the end of the list. Now this inserts the rest in the ascending priority order. If the list is too short - // to place the plugins in their intended position then this guarantees plugins are kept in the correct relative order - // but it doesn't minimize the number of misplaced plugins. - for (auto iter = lockedLoadOrder.begin(); iter != lockedLoadOrder.end(); ++iter) { - auto nameIter = m_ESPsByName.find(iter->second); - if (nameIter != m_ESPsByName.end()) { - m_ESPs[nameIter->second].m_Priority = priority++; - if (m_ESPs[nameIter->second].m_Enabled) { - m_ESPs[nameIter->second].m_LoadOrder = loadOrder++; - } else { - m_ESPs[nameIter->second].m_LoadOrder = -1; - } - } - } - - // inform view of the changed data - updateIndices(); - layoutChange.finish(); - emit dataChanged(this->index(0, 0), this->index(m_ESPs.size(), columnCount())); - m_Refreshed(); } IPluginList::PluginState PluginList::state(const QString &name) const diff --git a/src/pluginlist.h b/src/pluginlist.h index fff2a595..5e8557e2 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -181,7 +181,7 @@ public: void refreshLoadOrder(); - void bossSort(); + void lootSort(); public: virtual PluginState state(const QString &name) const; @@ -204,7 +204,6 @@ public: // implementation of the QAbstractTableModel interface virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex parent(const QModelIndex &child) const; - void applyBOSSSorting(boss_db db, std::map &lockedLoadOrder, uint8_t **pluginList, size_t size, int &priority, int &loadOrder, bool recognized, const char *extension); public slots: /** @@ -260,82 +259,6 @@ private: friend bool ByDate(const ESPInfo& LHS, const ESPInfo& RHS); friend bool ByPriority(const ESPInfo& LHS, const ESPInfo& RHS); - class BossDLL : public PDLL { - DECLARE_CLASS(BossDLL) - - DECLARE_FUNCTION3(__cdecl, uint32_t, CreateBossDb, boss_db*, const uint32_t, const uint8_t*) - DECLARE_FUNCTION1(__cdecl, void, DestroyBossDb, boss_db) - DECLARE_FUNCTION0(__cdecl, void, CleanUpAPI) - - DECLARE_FUNCTION7(__cdecl, uint32_t, SortCustomMods, boss_db, uint8_t**, size_t, uint8_t***, size_t*, uint8_t***, size_t*) - DECLARE_FUNCTION3(__cdecl, uint32_t, SetActivePluginsDumb, boss_db, uint8_t**, const size_t) - - DECLARE_FUNCTION3(__cdecl, uint32_t, GetActivePluginsDumb , boss_db, uint8_t***, size_t*) - - DECLARE_FUNCTION2(__cdecl, uint32_t, UpdateMasterlist, boss_db, const uint8_t*) - DECLARE_FUNCTION3(__cdecl, uint32_t, Load, boss_db, const uint8_t*, const uint8_t*) - - DECLARE_FUNCTION2(__cdecl, void, SetLoggerOutput, const char*, uint8_t) - DECLARE_FUNCTION1(__cdecl, uint32_t, GetLastErrorDetails, uint8_t**) - - DECLARE_FUNCTION1(__cdecl, uint32_t, GetVersionString, uint8_t**) - DECLARE_FUNCTION3(__cdecl, bool, IsCompatibleVersion, const uint32_t, const uint32_t, const uint32_t) - - DECLARE_FUNCTION4(__cdecl, uint32_t, GetPluginMessages, boss_db, const uint8_t*, BossMessage**, size_t*) - - enum ResultCode { - RESULT_OK = 0, - RESULT_NO_MASTER_FILE = 1, - RESULT_FILE_READ_FAIL = 2, - RESULT_FILE_WRITE_FAIL = 3, - RESULT_FILE_NOT_UTF8 = 4, - RESULT_FILE_NOT_FOUND = 5, - RESULT_FILE_PARSE_FAIL = 6, - RESULT_CONDITION_EVAL_FAIL = 7, - RESULT_REGEX_EVAL_FAIL = 8, - RESULT_NO_GAME_DETECTED = 9, - RESULT_ENCODING_CONVERSION_FAIL = 10, - RESULT_FIND_ONLINE_MASTERLIST_REVISION_FAIL = 11, - RESULT_FIND_ONLINE_MASTERLIST_DATE_FAIL = 12, - RESULT_READ_UPDATE_FILE_LIST_FAIL = 13, - RESULT_FILE_CRC_MISMATCH = 14, - RESULT_FS_FILE_MOD_TIME_READ_FAIL = 15, - RESULT_FS_FILE_MOD_TIME_WRITE_FAIL = 16, - RESULT_FS_FILE_RENAME_FAIL = 17, - RESULT_FS_FILE_DELETE_FAIL = 18, - RESULT_FS_CREATE_DIRECTORY_FAIL = 19, - RESULT_FS_ITER_DIRECTORY_FAIL = 20, - RESULT_CURL_INIT_FAIL = 21, - RESULT_CURL_SET_ERRBUFF_FAIL = 22, - RESULT_CURL_SET_OPTION_FAIL = 23, - RESULT_CURL_SET_PROXY_FAIL = 24, - RESULT_CURL_SET_PROXY_TYPE_FAIL = 25, - RESULT_CURL_SET_PROXY_AUTH_FAIL = 26, - RESULT_CURL_SET_PROXY_AUTH_TYPE_FAIL = 27, - RESULT_CURL_PERFORM_FAIL = 28, - RESULT_CURL_USER_CANCEL = 29, - RESULT_GUI_WINDOW_INIT_FAIL = 30, - RESULT_NO_UPDATE_NECESSARY = 31, - RESULT_LO_MISMATCH = 32, - RESULT_NO_MEM = 33, - RESULT_INVALID_ARGS = 34, - RESULT_NETWORK_FAIL = 35, - RESULT_NO_INTERNET_CONNECTION = 36, - RESULT_NO_TAG_MAP = 37, - RESULT_PLUGINS_FULL = 38, - RESULT_PLUGIN_BEFORE_MASTER = 39, - RESULT_INVALID_SYNTAX = 40 - }; - - enum GameIDs { - AUTODETECT = 0, - OBLIVION = 1, - SKYRIM = 3, - FALLOUT3 = 4, - FALLOUTNV = 5 - }; - }; - private: void syncLoadOrder(); @@ -353,9 +276,6 @@ private: void testMasters(); - boss_db initBoss(); - void convertPluginListForBoss(boss_db db, boost::ptr_vector &inputPlugins, std::vector &activePlugins); - private: std::vector m_ESPs; @@ -381,7 +301,6 @@ private: SignalRefreshed m_Refreshed; - BossDLL *m_BOSS; QTemporaryFile m_TempFile; }; diff --git a/src/profile.h b/src/profile.h index 4960671a..5aa77357 100644 --- a/src/profile.h +++ b/src/profile.h @@ -159,6 +159,11 @@ public: */ QString getLockedOrderFileName() const; + /** + * @return the path of the modlist file in this profile + */ + QString getModlistFileName() const; + /** * @return path of the archives file in this profile */ @@ -301,7 +306,6 @@ private: void updateIndices(); - QString getModlistFileName() const; void copyFilesTo(QString &target) const; std::vector splitDZString(const wchar_t *buffer) const; diff --git a/src/resources.qrc b/src/resources.qrc index 73921f64..bf53ea95 100644 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -52,5 +52,8 @@ resources/x-office-calendar.png resources/dialog-warning_16.png resources/mail-attachment.png + resources/document-save_32.png + resources/edit-undo.png + resources/arrange-boxes.png diff --git a/src/resources/arrange-boxes.png b/src/resources/arrange-boxes.png new file mode 100644 index 00000000..b1ab67cf Binary files /dev/null and b/src/resources/arrange-boxes.png differ diff --git a/src/resources/document-save_32.png b/src/resources/document-save_32.png new file mode 100644 index 00000000..db5c52b7 Binary files /dev/null and b/src/resources/document-save_32.png differ diff --git a/src/resources/edit-undo.png b/src/resources/edit-undo.png new file mode 100644 index 00000000..61b2ce9a Binary files /dev/null and b/src/resources/edit-undo.png differ diff --git a/src/selectiondialog.cpp b/src/selectiondialog.cpp index dbc10791..902b4d9c 100644 --- a/src/selectiondialog.cpp +++ b/src/selectiondialog.cpp @@ -17,62 +17,67 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ -#include "selectiondialog.h" -#include "ui_selectiondialog.h" - -#include - -SelectionDialog::SelectionDialog(const QString &description, QWidget *parent) - : QDialog(parent), ui(new Ui::SelectionDialog), m_Choice(NULL), m_ValidateByData(false) -{ - ui->setupUi(this); - - ui->descriptionLabel->setText(description); -} - -SelectionDialog::~SelectionDialog() -{ - delete ui; -} - - -void SelectionDialog::addChoice(const QString &buttonText, const QString &description, const QVariant &data) -{ - QCommandLinkButton *button = new QCommandLinkButton(buttonText, description, ui->buttonBox); - button->setProperty("data", data); - ui->buttonBox->addButton(button, QDialogButtonBox::AcceptRole); - if (data.isValid()) m_ValidateByData = true; -} - - -QVariant SelectionDialog::getChoiceData() -{ - return m_Choice->property("data"); -} - - -QString SelectionDialog::getChoiceString() -{ - if ((m_Choice == NULL) || - (m_ValidateByData && !m_Choice->property("data").isValid())) { - return QString(); - } else { - return m_Choice->text(); - } -} - - -void SelectionDialog::on_buttonBox_clicked(QAbstractButton *button) -{ - m_Choice = button; - if (!m_ValidateByData || m_Choice->property("data").isValid()) { - this->accept(); - } else { - this->reject(); - } -} - -void SelectionDialog::on_cancelButton_clicked() -{ - this->reject(); -} +#include "selectiondialog.h" +#include "ui_selectiondialog.h" + +#include + +SelectionDialog::SelectionDialog(const QString &description, QWidget *parent) + : QDialog(parent), ui(new Ui::SelectionDialog), m_Choice(NULL), m_ValidateByData(false) +{ + ui->setupUi(this); + + ui->descriptionLabel->setText(description); +} + +SelectionDialog::~SelectionDialog() +{ + delete ui; +} + + +void SelectionDialog::addChoice(const QString &buttonText, const QString &description, const QVariant &data) +{ + QCommandLinkButton *button = new QCommandLinkButton(buttonText, description, ui->buttonBox); + button->setProperty("data", data); + ui->buttonBox->addButton(button, QDialogButtonBox::AcceptRole); + if (data.isValid()) m_ValidateByData = true; +} + +int SelectionDialog::numChoices() const +{ + return ui->buttonBox->findChildren(QString()).count(); +} + + +QVariant SelectionDialog::getChoiceData() +{ + return m_Choice->property("data"); +} + + +QString SelectionDialog::getChoiceString() +{ + if ((m_Choice == NULL) || + (m_ValidateByData && !m_Choice->property("data").isValid())) { + return QString(); + } else { + return m_Choice->text(); + } +} + + +void SelectionDialog::on_buttonBox_clicked(QAbstractButton *button) +{ + m_Choice = button; + if (!m_ValidateByData || m_Choice->property("data").isValid()) { + this->accept(); + } else { + this->reject(); + } +} + +void SelectionDialog::on_cancelButton_clicked() +{ + this->reject(); +} diff --git a/src/selectiondialog.h b/src/selectiondialog.h index a2844e97..fc04291e 100644 --- a/src/selectiondialog.h +++ b/src/selectiondialog.h @@ -17,50 +17,52 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ -#ifndef SELECTIONDIALOG_H -#define SELECTIONDIALOG_H - -#include -#include - -namespace Ui { -class SelectionDialog; -} - -class SelectionDialog : public QDialog -{ - Q_OBJECT - -public: - - explicit SelectionDialog(const QString &description, QWidget *parent = 0); - - ~SelectionDialog(); - - /** - * @brief add a choice to the dialog - * @param buttonText the text to be displayed on the button - * @param description the description that shows up under in small letters inside the button - * @param data data to be stored with the button. Please note that as soon as one choice has data associated with it (non-invalid QVariant) - * all buttons that contain no data will be treated as "cancel" buttons - */ - void addChoice(const QString &buttonText, const QString &description, const QVariant &data); - - QVariant getChoiceData(); - QString getChoiceString(); - -private slots: - - void on_buttonBox_clicked(QAbstractButton *button); - - void on_cancelButton_clicked(); - -private: - - Ui::SelectionDialog *ui; - QAbstractButton *m_Choice; - bool m_ValidateByData; - -}; - -#endif // SELECTIONDIALOG_H +#ifndef SELECTIONDIALOG_H +#define SELECTIONDIALOG_H + +#include +#include + +namespace Ui { +class SelectionDialog; +} + +class SelectionDialog : public QDialog +{ + Q_OBJECT + +public: + + explicit SelectionDialog(const QString &description, QWidget *parent = 0); + + ~SelectionDialog(); + + /** + * @brief add a choice to the dialog + * @param buttonText the text to be displayed on the button + * @param description the description that shows up under in small letters inside the button + * @param data data to be stored with the button. Please note that as soon as one choice has data associated with it (non-invalid QVariant) + * all buttons that contain no data will be treated as "cancel" buttons + */ + void addChoice(const QString &buttonText, const QString &description, const QVariant &data); + + int numChoices() const; + + QVariant getChoiceData(); + QString getChoiceString(); + +private slots: + + void on_buttonBox_clicked(QAbstractButton *button); + + void on_cancelButton_clicked(); + +private: + + Ui::SelectionDialog *ui; + QAbstractButton *m_Choice; + bool m_ValidateByData; + +}; + +#endif // SELECTIONDIALOG_H diff --git a/src/shared/gameinfo.cpp b/src/shared/gameinfo.cpp index 00bb42fd..b580a226 100644 --- a/src/shared/gameinfo.cpp +++ b/src/shared/gameinfo.cpp @@ -172,6 +172,14 @@ std::wstring GameInfo::getLogDir() const } +std::wstring GameInfo::getLootDir() const +{ + std::wostringstream temp; + temp << m_OrganizerDirectory << "\\loot"; + return temp.str(); +} + + std::wstring GameInfo::getTutorialDir() const { std::wostringstream temp; diff --git a/src/shared/gameinfo.h b/src/shared/gameinfo.h index 10775e6c..89c9402d 100644 --- a/src/shared/gameinfo.h +++ b/src/shared/gameinfo.h @@ -113,6 +113,7 @@ public: virtual std::wstring getCacheDir() const; virtual std::wstring getOverwriteDir() const; virtual std::wstring getLogDir() const; + virtual std::wstring getLootDir() const; virtual std::wstring getTutorialDir() const; virtual bool requiresBSAInvalidation() const { return true; } diff --git a/src/spawn.cpp b/src/spawn.cpp index b1c5e963..6adafba0 100644 --- a/src/spawn.cpp +++ b/src/spawn.cpp @@ -36,10 +36,23 @@ using namespace MOShared; static const int BUFSIZE = 4096; -bool spawn(LPCWSTR binary, LPCWSTR arguments, LPCWSTR currentDirectory, bool suspended, HANDLE& processHandle, HANDLE& threadHandle) +bool spawn(LPCWSTR binary, LPCWSTR arguments, LPCWSTR currentDirectory, bool suspended, + HANDLE stdOut, HANDLE stdErr, + HANDLE& processHandle, HANDLE& threadHandle) { + BOOL inheritHandles = FALSE; STARTUPINFO si; ::ZeroMemory(&si, sizeof(si)); + if (stdOut != INVALID_HANDLE_VALUE) { + si.hStdOutput = stdOut; + inheritHandles = TRUE; + si.dwFlags |= STARTF_USESTDHANDLES; + } + if (stdErr != INVALID_HANDLE_VALUE) { + si.hStdError = stdErr; + inheritHandles = TRUE; + si.dwFlags |= STARTF_USESTDHANDLES; + } si.cb = sizeof(si); int length = wcslen(binary) + wcslen(arguments) + 4; wchar_t *commandLine = NULL; @@ -74,7 +87,7 @@ bool spawn(LPCWSTR binary, LPCWSTR arguments, LPCWSTR currentDirectory, bool sus BOOL success = ::CreateProcess(NULL, commandLine, NULL, NULL, // no special process or thread attributes - FALSE, // don't inherit handle + inheritHandles, // inherit handles if we plan to use stdout or stderr reroute suspended ? CREATE_SUSPENDED : 0, // create suspended so I have time to inject the DLL NULL, // same environment as parent currentDirectory, // current directory @@ -95,14 +108,22 @@ bool spawn(LPCWSTR binary, LPCWSTR arguments, LPCWSTR currentDirectory, bool sus } -HANDLE startBinary(const QFileInfo &binary, const QString &arguments, const QString& profileName, int logLevel, const QDir ¤tDirectory, bool hooked) +HANDLE startBinary(const QFileInfo &binary, + const QString &arguments, + const QString& profileName, + int logLevel, + const QDir ¤tDirectory, + bool hooked, + HANDLE stdOut, + HANDLE stdErr) { HANDLE processHandle, threadHandle; std::wstring binaryName = ToWString(QDir::toNativeSeparators(binary.absoluteFilePath())); std::wstring currentDirectoryName = ToWString(QDir::toNativeSeparators(currentDirectory.absolutePath())); try { - if (!spawn(binaryName.c_str(), ToWString(arguments).c_str(), currentDirectoryName.c_str(), hooked, processHandle, threadHandle)) { + if (!spawn(binaryName.c_str(), ToWString(arguments).c_str(), currentDirectoryName.c_str(), hooked, + stdOut, stdErr, processHandle, threadHandle)) { reportError(QObject::tr("failed to spawn \"%1\"").arg(binary.fileName())); return INVALID_HANDLE_VALUE; } diff --git a/src/spawn.h b/src/spawn.h index 48320fea..3f037119 100644 --- a/src/spawn.h +++ b/src/spawn.h @@ -52,11 +52,17 @@ private: * @param arguments arguments to pass to the binary * @param profileName name of the active profile * @param currentDirectory the directory to use as the working directory to run in + * @param logLevel log level to be used by the hook library. Ignored if hooked is false * @param hooked if set, the binary is started with mo injected + * @param stdout if not equal to INVALID_HANDLE_VALUE, this is used as stdout for the process + * @param stderr if not equal to INVALID_HANDLE_VALUE, this is used as stderr for the process * @return the process handle * @todo is the profile name even used any more? * @todo is the hooked parameter used? **/ -HANDLE startBinary(const QFileInfo &binary, const QString &arguments, const QString &profileName, int logLevel, const QDir ¤tDirectory, bool hooked); +HANDLE startBinary(const QFileInfo &binary, const QString &arguments, const QString &profileName, int logLevel, + const QDir ¤tDirectory, bool hooked, + HANDLE stdOut = INVALID_HANDLE_VALUE, HANDLE stdErr = INVALID_HANDLE_VALUE); #endif // SPAWN_H + -- cgit v1.3.1