From 2b5748003d2ae4de1b897041f92df3e0495b2825 Mon Sep 17 00:00:00 2001
From: TheBloke
Date: Mon, 7 Jul 2014 23:32:18 +0100
Subject: .pro files - formatting/consistency fixes Many small formatting
changes to the majority of .pro files Consistent style for Qt version
checking, using greaterThan(QT_MAJOR_VERSION, 4) This seems safest, as
would continue to work for a future Qt 6 etc. Note that this makes
redudundant the commit before this one, to organizer.pro Consistent
indenting Moved some file configuration sections to be together with related
sections Moved some installation-related sections (e.g. OUTDIR/DSTDIR) to be
at the bottom, immediately before the related POST_LINK install lines.
Similarly, in some cases separated out CONFIG(debug,.. checks into separate
LIB/INCLUDE sections (high in file) and installation directory sections (low
in file)
---
src/shared/shared.pro | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'src/shared')
diff --git a/src/shared/shared.pro b/src/shared/shared.pro
index 992fd7f2..5f327fa3 100644
--- a/src/shared/shared.pro
+++ b/src/shared/shared.pro
@@ -21,11 +21,11 @@ INCLUDEPATH += ../bsatk "$(BOOSTPATH)"
CONFIG(debug, debug|release) {
LIBS += -L$$OUT_PWD/../bsatk/debug
- LIBS += -lDbgHelp
+ LIBS += -lDbgHelp
QMAKE_CXXFLAGS_DEBUG -= -Zi
QMAKE_CXXFLAGS += -Z7
} else {
- LIBS += -L$$OUT_PWD/../bsatk/release
+ LIBS += -L$$OUT_PWD/../bsatk/release
}
LIBS += -lbsatk
--
cgit v1.3.1
From 0046d8710e895a158b7e49678eae1514c5b7dc88 Mon Sep 17 00:00:00 2001
From: TheBloke
Date: Tue, 8 Jul 2014 04:01:24 +0100
Subject: Compilation dependency tracking enabled for organizer, hook,
bsaExtractor, shared Previously, qmake did not detect when code was changed
in the static libraries So for example, changing code in shared/*.cpp and
then Build, would not cause a re-link and re-deploy of ModOrganizer.exe.
This has been fixed by adding PRE_TARGETDEPS references to each project that
depend on static libraries provided by other sub-projects. These checks are
conditional on debug|release, to point to the correct lib.
List of currently configured static library dependency checks -
organizer - mo_shared.lib, bsatk.lib
hookdll - mo_shared.lib, bsatk.lib
shared - bsatk.lib
bsaExtractor - bsatk.lib
I have tested to confirm that changing a shared file results in re-linking and
re-deplomyent of both ModOrganizer.exe and hook.dll.
Note that dependencies have not been configured for DLLs, as these are
loaded dynamically and so recompilation is not required.
But there could be an argument for configuring DLLs as dependencies too -
as if you make a change in DLL code, you might want all clients of the DLL to
be recompiled to check that they have not been broken by the changes?
The downside of that would be extra re-compilation every time.
---
src/organizer.pro | 4 ++++
src/shared/shared.pro | 2 ++
2 files changed, 6 insertions(+)
(limited to 'src/shared')
diff --git a/src/organizer.pro b/src/organizer.pro
index 5be205b4..e013aab7 100644
--- a/src/organizer.pro
+++ b/src/organizer.pro
@@ -252,6 +252,8 @@ CONFIG(debug, debug|release) {
LIBS += -L$$OUT_PWD/../uibase/debug
LIBS += -L$$OUT_PWD/../boss_modified/debug
LIBS += -lDbgHelp
+ PRE_TARGETDEPS += $$OUT_PWD/../shared/debug/mo_shared.lib \
+ $$OUT_PWD/../bsatk/debug/bsatk.lib
} else {
LIBS += -L$$OUT_PWD/../shared/release
LIBS += -L$$OUT_PWD/../bsatk/release
@@ -260,6 +262,8 @@ CONFIG(debug, debug|release) {
QMAKE_CXXFLAGS += /Zi /GL
# QMAKE_CXXFLAGS -= -O2
QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF
+ PRE_TARGETDEPS += $$OUT_PWD/../shared/release/mo_shared.lib \
+ $$OUT_PWD/../bsatk/release/bsatk.lib
}
#QMAKE_CXXFLAGS_WARN_ON -= -W3
diff --git a/src/shared/shared.pro b/src/shared/shared.pro
index 5f327fa3..c5925c24 100644
--- a/src/shared/shared.pro
+++ b/src/shared/shared.pro
@@ -24,8 +24,10 @@ CONFIG(debug, debug|release) {
LIBS += -lDbgHelp
QMAKE_CXXFLAGS_DEBUG -= -Zi
QMAKE_CXXFLAGS += -Z7
+ PRE_TARGETDEPS += $$OUT_PWD/../bsatk/debug/bsatk.lib
} else {
LIBS += -L$$OUT_PWD/../bsatk/release
+ PRE_TARGETDEPS += $$OUT_PWD/../bsatk/release/bsatk.lib
}
LIBS += -lbsatk
--
cgit v1.3.1
From d412060d59b1597ae1d11d793662610e90863fc9 Mon Sep 17 00:00:00 2001
From: Tannin
Date: Tue, 15 Jul 2014 17:31:44 +0200
Subject: - qt 5 compatibility fixes - detection for support of optimized find
no longer depends on deprecated api
---
README.txt | 30 ++++++++++++++++++++++--------
src/ModOrganizer.pro | 6 +++---
src/dlls.manifest.debug.qt5 | 7 ++++---
src/dlls.manifest.qt5 | 1 +
src/mainwindow.cpp | 1 -
src/shared/directoryentry.cpp | 17 +++++++++++------
6 files changed, 41 insertions(+), 21 deletions(-)
(limited to 'src/shared')
diff --git a/README.txt b/README.txt
index d2c3e46b..b4f37787 100644
--- a/README.txt
+++ b/README.txt
@@ -10,7 +10,7 @@ Please note that if you only want to work on and build a plugin you can save you
Overview:
---------
-As of December 2013 MO consists of the following subprojects:
+As of Juli 2014 MO consists of the following subprojects:
- organizer: The main userinterface. heavy usage of various libraries
- hookdll: core library of the virtual file system
- uibase: interop between plugins and the main application as well as some reusable functionality
@@ -24,13 +24,14 @@ As of December 2013 MO consists of the following subprojects:
- NCC: extension to NMM to provide a binary with command line interface for fomod installation. This is c# code and does not build with the rest of the project. Requires the rest of NMM
- bossdummy: dummy dll that looks like the boss.dll. This is used instead of the real boss dlls in NCC to save some disk space
- pythonrunner: library for embedding python code. Requires boost_python, python 2.7 and pyqt4
+- loot_cli: this is a command line client of loot. This can be better integrated with MO than the official loot client.
And various plugins:
+- bsaExtractor: offers to extract bsas after a mod has been installed
- checkFNIS: Activates each time an application is started from MO and runs fnis if necessary
- diagnoseBasic: Various diagnostic checks on the game
- inieditor: minimalistic file editor for ini files
- installerBain: handles non-scripted bain installers
-- installerBCF: no functionality. Supposed to eventually allow installations using bcfs (bain conversion file). python code
- installerBundle: handles installation of archives wrapped in archives
- installerFomod: handles installation of xml fomods
- installerManual: handles installations of archives that aren't supported by any other plugin (or if the user chooses to do the installation manually)
@@ -39,7 +40,13 @@ And various plugins:
- NMMImport: importer from existing nmm installation
- proxyPython: integrates pythonrunner as a plugin into MO
- pyniEdit: more user-friendly ini editor. python code
+- previewBase: used for file previews. this plugin covers image formats supported by the qt installation (usually at least jpg, gif, png) and text files
+- previewDDS: used to preview dds textures. uses code from the nif file format library
+There are a few more plugins that are either broken or samples
+- installerBCF: this was intended to use .bcf (bain conversion file) files as installation instructions but currently it is completely function-less
+- helloWorldCpp: sample for cpp plugins. This should compile even without fulfilling most dependencies below
+- pageTESAlliance: integrates the tes alliance page into MO. This integration is not nearly as tight as that of nexus.
Requirements:
-------------
@@ -50,13 +57,20 @@ Visual C++ compiler 2010 (VC 10.0) or up
Note: If you're having trouble installing the windows sdk, you may be affected by this bug: http://support.microsoft.com/kb/2717426
Qt Libraries 4.8.x (http://qt-project.org/downloads)
-- i.e. "Qt libraries 4.8.5 for Windows (VS 2010, 235 MB)"
-- tested: 4.8.5
-- Qt5 is not yet supported but WIP. You will see a few conditional qt5 pathes
+- i.e. "Qt libraries 4.8.6 for Windows (VS 2010, 235 MB)"
+- tested: 4.8.6
- Install according to instruction
+Qt 5 Compatibility:
+MO compiles and mostly runs correctly built with Qt 5.3 and VC++ 2013 but
+- python plugins haven't been rewritten to use qt5 yet
+- pyqt5 isn't distributed as binaries for python 2.7 so this needs to be set up and built first
+- tutorial doesn't work because it seems to be impossible to create a transparent Qt Quick control...
+- the previewdds plugin only compiles with the opengl variant of the qt 5 distribution
+- Qt5 is a bi*** to distribute
+
boost libraries (http://www.boost.org/)
-- tested: 1.49
+- tested: 1.55
- Build according to their instructions (using vc++): http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html
- A few of the boost libraries need to be built (the rest is header-only). The only compiled libs MO needs (at the time of writing) are
boost_thread (for everything that links agains bsatk) and boost_python (for pythonrunner). You can disable the others to save yourself compile time (even on a modern system compiling boost can easily take an hour)
@@ -105,8 +119,8 @@ Set up (using Qt Creator):
2. Open the "Projects" tab, open the "Details" for "Build Environment"
3a. Click "Add" to add a variable called "BOOSTPATH" with the path of your boost installation as the value (i.e. C:\code\boost_1_49_0)
3b. Click "Add" to add a variable called "ZLIBPATH" with the path of your zlib installation as the value (i.e. C:\code\zlib-1.2.7)
-3c. Click "Add" to add a variable called "7ZIPPATH" with the path of your zlib installation as the value (i.e. C:\code\7zip)
-3d. Click "Add" to add a variable called "PYTHONPATH" with the path of your zlib installation as the value (i.e. C:\code\python)
+3c. Click "Add" to add a variable called "SEVENZIPPATH" with the path of your 7zip installation as the value (i.e. C:\code\7zip)
+3d. Click "Add" to add a variable called "PYTHONPATH" with the path of your python installation as the value (i.e. C:\code\python)
4. Switch the build configuration at the very top of the same page from "debug" to "release" (or vice versa) and repeat step 3
5. Compile the configuration(s) you want to use (debug and/or release) (Build All). This should compile correctly.
6.
diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro
index 4624ffec..13ec35b5 100644
--- a/src/ModOrganizer.pro
+++ b/src/ModOrganizer.pro
@@ -13,12 +13,12 @@ SUBDIRS = bsatk \
nxmhandler \
BossDummy \
pythonRunner \
- esptk \
- loot_cli
+ esptk# \
+ #loot_cli
plugins.depends = pythonRunner
hookdll.depends = shared
-organizer.depends = shared uibase plugins loot_cli
+organizer.depends = shared uibase plugins# loot_cli
CONFIG(debug, debug|release) {
DESTDIR = outputd
diff --git a/src/dlls.manifest.debug.qt5 b/src/dlls.manifest.debug.qt5
index 369539d1..6cc0a83d 100644
--- a/src/dlls.manifest.debug.qt5
+++ b/src/dlls.manifest.debug.qt5
@@ -1,11 +1,12 @@
-
-
-
+
+
+
+
diff --git a/src/dlls.manifest.qt5 b/src/dlls.manifest.qt5
index 0a8ba7b8..5a22c2a8 100644
--- a/src/dlls.manifest.qt5
+++ b/src/dlls.manifest.qt5
@@ -7,6 +7,7 @@
+
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 9cbe9c40..81ef5880 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -978,7 +978,6 @@ bool MainWindow::eventFilter(QObject *object, QEvent *event)
((event->type() == QEvent::Leave) || (event->type() == QEvent::WindowDeactivate))) {
hideSaveGameInfo();
}
-
return false;
}
diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp
index 5172346b..87431ea8 100644
--- a/src/shared/directoryentry.cpp
+++ b/src/shared/directoryentry.cpp
@@ -489,13 +489,18 @@ void DirectoryEntry::propagateOrigin(int origin)
static bool SupportOptimizedFind()
{
- OSVERSIONINFO versionInfo;
- versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&versionInfo);
-
// large fetch and basic info for FindFirstFileEx is supported on win server 2008 r2, win 7 and newer
- return (versionInfo.dwMajorVersion > 6) ||
- ((versionInfo.dwMajorVersion == 6) && (versionInfo.dwMinorVersion >= 1));
+
+ OSVERSIONINFOEX versionInfo;
+ versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+ versionInfo.dwMajorVersion = 6;
+ versionInfo.dwMinorVersion = 1;
+ ULONGLONG mask = ::VerSetConditionMask(
+ ::VerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL),
+ VER_MINORVERSION, VER_GREATER_EQUAL);
+
+ bool res = ::VerifyVersionInfo(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, mask);
+ return res;
}
--
cgit v1.3.1
From 5718af351034c1936a91a3782651733dfecdc4e5 Mon Sep 17 00:00:00 2001
From: Tannin
Date: Tue, 15 Jul 2014 20:37:10 +0200
Subject: - Disabled compilation of loot_cli as the current loot version can't
be compiled or linked against with vs 2010 - bugfix: some incompatibilities
with non-skyrim games - bugfix: incorrect handling of plurals in
translateable strings
---
src/ModOrganizer.pro | 9 +-
src/mainwindow.cpp | 22 +-
src/organizer.pro | 6 +-
src/organizer_cs.ts | 826 +++----
src/organizer_de.ts | 824 +++----
src/organizer_en_US.ts | 5343 ++++++++++++++++++++++++++++++++++++++++++
src/organizer_es.ts | 822 +++----
src/organizer_fr.ts | 824 +++----
src/organizer_ru.ts | 824 +++----
src/organizer_tr.ts | 822 +++----
src/organizer_zh_CN.ts | 822 +++----
src/organizer_zh_TW.ts | 822 +++----
src/savegame.cpp | 14 +-
src/shared/fallout3info.cpp | 5 +
src/shared/fallout3info.h | 1 +
src/shared/falloutnvinfo.cpp | 5 +-
src/shared/falloutnvinfo.h | 1 +
src/shared/gameinfo.h | 3 +
src/shared/oblivioninfo.cpp | 6 +
src/shared/oblivioninfo.h | 1 +
src/shared/skyriminfo.cpp | 5 +
src/shared/skyriminfo.h | 2 +
22 files changed, 8748 insertions(+), 3261 deletions(-)
create mode 100644 src/organizer_en_US.ts
(limited to 'src/shared')
diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro
index 0d75e883..9907d086 100644
--- a/src/ModOrganizer.pro
+++ b/src/ModOrganizer.pro
@@ -12,13 +12,12 @@ SUBDIRS = bsatk \
proxydll \
nxmhandler \
BossDummy \
-# pythonRunner \
- esptk# \
-# loot_cli
+ pythonRunner \
+ esptk
-#plugins.depends = pythonRunner
+plugins.depends = pythonRunner
hookdll.depends = shared
-organizer.depends = shared uibase plugins# loot_cli
+organizer.depends = shared uibase plugins
CONFIG(debug, debug|release) {
DESTDIR = $$PWD/../outputd
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index f684fd82..263ddb4e 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -3232,7 +3232,6 @@ void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index,
connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int)));
} else {
modInfo->saveMeta();
-qDebug("%s - %d", qPrintable(modInfo->name()), modInfo->hasFlag(ModInfo::FLAG_FOREIGN));
ModInfoDialog dialog(modInfo, m_DirectoryStructure, modInfo->hasFlag(ModInfo::FLAG_FOREIGN), this);
connect(&dialog, SIGNAL(nexusLinkActivated(QString)), this, SLOT(nexusLinkActivated(QString)));
connect(&dialog, SIGNAL(downloadRequest(QString)), this, SLOT(downloadRequestedNXM(QString)));
@@ -3935,23 +3934,18 @@ void MainWindow::deleteSavegame_clicked()
QModelIndexList selectedIndexes = ui->savegameList->selectionModel()->selectedIndexes();
QString savesMsgLabel;
- QRegExp saveSuffix(".ess$");
QStringList deleteFiles;
foreach (const QModelIndex &idx, selectedIndexes) {
QString name = idx.data().toString();
SaveGame *save = new SaveGame(this, idx.data(Qt::UserRole).toString());
- savesMsgLabel += "
" + name.replace(saveSuffix, "") + "
";
+ savesMsgLabel += "
" + QFileInfo(name).completeBaseName() + "
";
deleteFiles << save->saveFiles();
}
- bool multipleRows = (selectedIndexes.count() > 1);
-
- if (QMessageBox::question(this, tr("Confirm"), tr("Are you sure you want to remove the following %1save%2?
%3
Removed saves will be sent to the Recycle Bin.")
- .arg((multipleRows) ? QString::number(selectedIndexes.count()) + " " : "")
- .arg((multipleRows) ? "s" : "")
+ if (QMessageBox::question(this, tr("Confirm"), tr("Are you sure you want to remove the following %n save(s)?
%1
Removed saves will be sent to the Recycle Bin.", "", selectedIndexes.count())
.arg(savesMsgLabel),
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
shellDelete(deleteFiles, true); // recycle bin delete.
@@ -4060,14 +4054,12 @@ void MainWindow::on_savegameList_customContextMenuRequested(const QPoint &pos)
if (!selection->hasSelection())
return;
- bool multipleSelected = (selection->selectedIndexes().count() > 1);
-
QMenu menu;
- if (!multipleSelected)
+ if (!(selection->selectedIndexes().count() > 1))
menu.addAction(tr("Fix Mods..."), this, SLOT(fixMods_clicked()));
- QString deleteMenuLabel = tr("Delete save%1").arg((multipleSelected) ? "s" : "");
+ QString deleteMenuLabel = tr("Delete %n save(s)", "", selection->selectedIndexes().count());
menu.addAction(deleteMenuLabel, this, SLOT(deleteSavegame_clicked()));
@@ -4257,13 +4249,13 @@ void MainWindow::downloadRequested(QNetworkReply *reply, int modID, const QStrin
void MainWindow::installTranslator(const QString &name)
{
- if (m_CurrentLanguage == "en_US") {
+/* if (m_CurrentLanguage == "en_US") {
return;
- }
+ }*/
QTranslator *translator = new QTranslator(this);
QString fileName = name + "_" + m_CurrentLanguage;
if (!translator->load(fileName, qApp->applicationDirPath() + "/translations")) {
- if (m_CurrentLanguage != "en-US") {
+ if (m_CurrentLanguage != "en_US") {
qWarning("localization file %s not found", qPrintable(fileName));
} // we don't actually expect localization files for english
}
diff --git a/src/organizer.pro b/src/organizer.pro
index de7a3a35..ab87f2b3 100644
--- a/src/organizer.pro
+++ b/src/organizer.pro
@@ -261,9 +261,9 @@ CONFIG(debug, debug|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 += /Zi# /GL
# QMAKE_CXXFLAGS -= -O2
- QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF
+ QMAKE_LFLAGS += /DEBUG# /LTCG /OPT:REF /OPT:ICF
PRE_TARGETDEPS += $$OUT_PWD/../shared/release/mo_shared.lib \
$$OUT_PWD/../bsatk/release/bsatk.lib
}
@@ -285,7 +285,7 @@ TRANSLATIONS = organizer_de.ts \
organizer_zh_CN.ts \
organizer_cs.ts \
organizer_tr.ts \
- organizer_en.ts \
+ organizer_en_US.ts \
organizer_ko.ts \
organizer_ru.ts
diff --git a/src/organizer_cs.ts b/src/organizer_cs.ts
index 73c225f0..83f3c767 100644
--- a/src/organizer_cs.ts
+++ b/src/organizer_cs.ts
@@ -1401,7 +1401,7 @@ p, li { white-space: pre-wrap; }
-
+ Namefilter
@@ -1528,8 +1528,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye
-
-
+
+ RefreshZnovunačíst
@@ -1577,12 +1577,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;">Pokud kliknete "Fixni Mody..." 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>
-
+ DownloadsStá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.
@@ -1633,145 +1633,145 @@ p, li { white-space: pre-wrap; }
-
+ Show Hidden
-
+ Tool BarPanel nástrojú
-
+ Install ModInstaluj mod
-
+ Install &ModInstaluj &Mod
-
+ Install a new mod from an archiveInstaluj nový mod z archívu
-
+ Ctrl+MCtrl+M
-
+ ProfilesProfily
-
+ &Profiles&Profily
-
+ Configure ProfilesNastav profily
-
+ Ctrl+PCtrl+P
-
+ ExecutablesSpouštění
-
+ &Executables&Spouštění
-
+ Configure the executables that can be started through Mod OrganizerKonfigurace spouštění, které lze použít pro načtení modů z MO
-
+ Ctrl+ECtrl+E
-
+ Tools
-
+ &Tools
-
+ Ctrl+ICtrl+I
-
+ SettingsNastavení
-
+ &Settings&Nastavení
-
+ Configure settings and workaroundsKonfigurace a nastavení programu a různých řešení
-
+ Ctrl+SCtrl+S
-
+ NexusNexus
-
+ Search nexus network for more modsProhledat mody na nexusu
-
+ Ctrl+NCtrl+N
-
-
+
+ Update
-
+ Mod Organizer is up-to-dateVerze 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!
@@ -1782,84 +1782,84 @@ Right now this has very limited functionality
V současnosti má omezenou funkcionalitu
-
-
+
+ HelpPomoc
-
+ Ctrl+H
-
+ Endorse MO
-
-
+
+ Endorse Mod Organizer
-
+ Copy Log to Clipboard
-
+ Ctrl+C
-
+ Toolbar
-
+ Desktop
-
+ Start Menu
-
+ ProblemsProblémy
-
+ There are potential problems with your setupExistují potenciální problémy s programem
-
+ Everything seems to be in orderVšechno se jeví v pořádku
-
+ Help on UIPomoc s programem
-
+ Documentation WikiDokumentace wiki
-
+ Report IssueNahlásit chybu
-
+ Tutorials
@@ -1868,88 +1868,88 @@ V současnosti má omezenou funkcionalitu
zlyhal zápis pořadí archivů, máte administrátorsky povoleno zapisovat na "%1"?
-
+ failed to save load order: %1zlyhalo uložení pořadí načtení: %1
-
+ NameJméno
-
+ Please enter a name for the new profileProsím zadej jméno pro nový profil
-
+ failed to create profile: %1Zlyhalo 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 progressProbí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: %1nezdařilo se načíst pozici: %1
-
+ Plugin "%1" failed: %2
-
+ 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 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.
@@ -1958,32 +1958,32 @@ 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!
@@ -1992,222 +1992,231 @@ V současnosti má omezenou funkcionalitu
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 successfulInstalace úspěšná
-
-
+
+ Configure ModKonfigurace 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 foundmod "%1" nenalezen
-
-
+
+ Installation cancelledInstalace 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 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 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 ModVyber Mod
-
+ Mod ArchiveArchí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 startedStahování začalo
-
+ failed to update mod list: %1nezdařilo se aktualizovat seznam modů: %1
-
+ failed to spawn notepad.exe: %1zlyhalo otevření notepad.exe: %1
-
+ failed to open %1nepodařilo se otevřít %1
-
+ failed to change origin name: %1Nezdařilo se změnit původní jméno: %1
-
+ <Checked><Aktivované>
-
+ <Unchecked><Neaktivované>
-
+ <Update><Aktualizace>
-
+ <No category><Bez kategorie>
-
+ <Conflicted>
-
+ <Not Endorsed>
-
+ failed to rename mod: %1Nezdař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"
-
+ Multiple esps activated, please check that they don't conflict.
-
-
-
-
+
+
+
+ ConfirmPotvrdit
-
+ Remove the following mods?<br><ul>%1</ul>
-
+ failed to remove mod: %1Nezdařilo se odstranit mod: %1
-
-
+
+ FailedZlyhání
-
+ Installation file no longer existsInstalač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
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
+
+
-
+ Extract BSAExtrakce BSA
@@ -2218,657 +2227,662 @@ V současnosti má omezenou funkcionalitu
(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 unknownNexus ID pro tento Mod není známo
-
+ About
-
+ About Qt
-
+ Download?
-
+ A download has been started but no installed page plugin recognizes it.
If you download anyway no information (i.e. version) will be associated with the download.
Continue?
-
+ Browse Mod Page
-
+ Executable "%1" not found
-
+ Failed to refresh list of esps: %1
-
-
+
+ Failed to write settings
-
-
+
+ An error occured trying to write back MO settings: %1
-
+ File is write protected
-
+ Invalid file format (probably a bug)
-
+ Unknown error %1
-
+ failed to move "%1" from mod "%2" to "%3": %4
-
+ <Managed by MO>
-
+ <Managed outside MO>
-
+ You need to be logged in with Nexus to resume a download
-
-
+
+ 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?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 visibleAktivuj všechny v seznamu
-
+ Disable all visibleDeaktivuj všechny v seznamu
-
+ Check all for updateSkontroluj všechny pro aktualizaci
-
+ Export to csv...
-
+ All Mods
-
+ Sync to Mods...Synchronizuj s Mody...
-
+ Restore Backup
-
+ Remove Backup...
-
+ Add/Remove Categories
-
+ Replace Categories
-
+ Primary Category
-
+ Change versioning scheme
-
+ Un-ignore update
-
+ Ignore update
-
+ Rename Mod...Přejmenuj Mod...
-
+ Remove Mod...Odstranit Mod...
-
+ Reinstall ModPřeinstaluj Mod
-
+ Un-Endorse
-
-
+
+ Endorse
-
+ Won't endorse
-
+ Endorsement state unknown
-
+ Ignore missing data
-
+ Visit on NexusNavštiv na Nexusu
-
+ Open in explorerOtevři v prohlížeči
-
+ Information...Informace...
-
-
+
+ Exception: Výnimky:
-
-
+
+ Unknown exceptionNeznámá výnimka
-
+ <All><Všechny>
-
+ <Multiple>
-
- Really delete "%1"?
-
-
-
-
+ Fix Mods...Oprav Mody...
-
-
- Delete
-
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+
+
+
+
-
-
+
+ failed to remove %1Nepodařilo se odstranit %1
-
-
+
+ failed to create %1Nepodařilo se vytvořit %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 failedStahování zlyhalo
-
+ failed to write to file %1Nezdařil se zápis do souboru %1
-
+ %1 written%1 zapsáno
-
+ Select binaryVyber binární soubor
-
+ BinarySoubor
-
+ Enter NameZadej jméno
-
+ Please enter a name for the executableProsím zadej jméno pro spouštění
-
+ Not an executableNení 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 failedOperace 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
-
+ failed to generate preview for %1
-
+ Sorry, can't preview anything. This function currently does not support extracting from bsas.
-
+ Update availableAktualizace k dispozici
-
+ Open/ExecuteOtevřít/Spustit
-
+ Add as ExecutablePřidat Spouštení
-
+ Preview
-
+ Un-HideOdekrýt
-
+ HideSkrýt
-
+ Write To File...Zápis do souboru...
-
+ Do you want to endorse Mod Organizer on %1 now?
-
+ Thank you!
-
+ Thank you for your endorsement!
-
+ Request to Nexus failed: %1
-
-
+
+ login successful
-
+ login failed: %1. Trying to download anywaypřihlášení zlyhalo: %1. Pokouším se beztak stahovat
-
+ login failed: %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.
-
+ ErrorChyba
-
+ failed to extract %1 (errorcode %2)zlyhala extrakce %1 (errorcode %2)
-
+ Extract...Extrakce...
-
+ Edit Categories...Editovat Kategorie...
-
+ Deselect filter
-
+ Remove
-
+ Enable all
-
+ Disable all
-
+ Unlock load order
-
+ Lock load order
-
+ depends on missing "%1"
-
+ No profile set
-
+ LOOT working
-
+ loot failed. Exit code was: %1
-
+
+ failed to start loot
+
+
+
+ failed to run loot: %1
-
+ Errors occured
-
+ Backup of load order created
-
+ Choose backup to restore
-
+ No Backups
-
+ There are no backups to restore
-
-
+
+ Restore failed
-
-
+
+ Failed to restore the backup. Errorcode: %1
-
+ Backup of modlist created
@@ -2894,7 +2908,7 @@ This function will guess the versioning scheme under the assumption that the ins
ModInfoBackup
-
+ This is the backup of a mod
@@ -3208,227 +3222,227 @@ p, li { white-space: pre-wrap; }
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?
-
-
+
+ Save changes to "%1"?
-
+ File ExistsSoubor existuje
-
+ A file with that name exists, please enter a new oneSoubor s rovnakým názvem existuje, prosím zadejte jiné jméno
-
+ failed to move filezlyhalo přesunutí souboru
-
+ failed to create directory "optional"zlyhalo vytvoření zložky "optional"
-
-
+
+ Info requested, please waitInfo vyžádáno, prosím počkejte
-
+ MainHlavní
-
+ UpdateUpdate
-
+ OptionalVolitelné
-
+ OldStaré
-
+ MiscJiné
-
+ UnknownNeznámé
-
+ Current Version: %1Současná verze: %1
-
+ No update availableŽádný update není k dispozici
-
+ (description incomplete, please visit nexus)(popis chybí, prosím navštivte nexus pro kompletní zobrazení)
-
+ <a href="%1">Visit on Nexus</a><a href="%1">Navštivte na Nexusu</a>
-
+ Failed to delete %1Zlyhalo vymazání %1
-
-
+
+ ConfirmPotvrdit
-
+ 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 FolderNová 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 failedOperace 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 %2Nezdař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-HideOdekrýt
-
+ HideSkrýt
-
+ NameJméno
-
+ Please enter a name
-
+ ErrorChyba
-
+ Invalid name. Must be a valid file name
-
+ A tweak by that name exists
-
+ Create Tweak
@@ -3436,7 +3450,7 @@ p, li { white-space: pre-wrap; }
ModInfoForeign
-
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
@@ -3444,7 +3458,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)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áří')
@@ -3456,18 +3470,18 @@ p, li { white-space: pre-wrap; }
zlyhal zápis %1/meta.ini: %2
-
-
+
+ failed to write %1/meta.ini: error %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>
@@ -3475,52 +3489,52 @@ p, li { white-space: pre-wrap; }
ModList
-
+ This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit)Tenhle záznam obsahuje soubory, které byli vytvořeny během spuštení, tzn. ve virtuálním Data stromě (ku příkladu Construction Kit je sem vytváří')
-
+ Backup
-
+ No valid game data
-
+ Not endorsed yet
-
+ Overwrites files
-
+ Overwritten files
-
+ Overwrites & Overwritten
-
+ Redundant
-
+ Non-MO
-
+ invalid
@@ -3529,113 +3543,113 @@ p, li { white-space: pre-wrap; }
nainstalovaná verze: %1, nejnovjší verze: %2
-
+ installed version: "%1", newest version: "%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>Kategorie: <br>
-
+ Invalid name
-
+ drag&drop failed: %1
-
+ ConfirmPotvrdit
-
+ Are you sure you want to remove "%1"?Určitě chcete odstranit "%1"?
-
+ Flags
-
+ Mod Name
-
+ VersionVerze
-
+ PriorityPriorita
-
+ Category
-
+ Nexus ID
-
+ Installation
-
-
+
+ unknown
-
+ Name of your mods
-
+ Version of the mod (if available)Verze modu (pokud je k dispozici)
-
+ 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.
-
+ 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
@@ -3847,17 +3861,17 @@ p, li { white-space: pre-wrap; }
-
+ <b>Origin</b>: %1
-
+ AuthorAutor
-
+ DescriptionPopis
@@ -3871,7 +3885,7 @@ p, li { white-space: pre-wrap; }
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.
-
+ This plugin can't be disabled (enforced by the game)Tenhle plugin nemůže být deaktivován (vyžaduje to hra)
@@ -3880,17 +3894,17 @@ p, li { white-space: pre-wrap; }
Původní mod: %1
-
+ Missing Masters
-
+ Enabled Masters
-
+ failed to restore load order for %1
@@ -4456,18 +4470,18 @@ p, li { white-space: pre-wrap; }
-
+ Please use "Help" from the toolbar to get usage instructions to all elementsProsím použijte "Pomoc" z panelu nástrojú pro instrukce ke všem elementům
-
-
+
+ <Manage...><Manage...>
-
+ failed to parse profile %1: %2Nezdařilo se rozebrat profil %1: %2
@@ -4512,14 +4526,14 @@ p, li { white-space: pre-wrap; }
Chyba
-
-
-
+
+
+ wrong file formatšpatný formát souboru
-
+ failed to open %1nepodařilo se otevřít %1
@@ -4534,17 +4548,17 @@ p, li { white-space: pre-wrap; }
Proxy DLL
-
+ failed to spawn "%1"nepodařilo se vytvořit "%1"
-
+ Elevation required
-
+ This process requires elevation to run.
This is a potential security risk so I highly advice you to investigate if
"%1"
@@ -4554,22 +4568,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
-
+ failed to spawn "%1": %2nepodařilo se vytvořit "%1": %2
-
+ "%1" doesn't exist"%1" neexistuje
-
+ failed to inject dll into "%1": %2nepodařilo se vsunout dll do "%1": %2
-
+ failed to run "%1"nepodařilo se spustit "%1"
@@ -4799,12 +4813,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
-
+ ConfirmPotvrdit
-
+ 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?
@@ -5451,26 +5465,26 @@ On Windows XP:
-
-
-
-
+
+
+
+ ConfirmPotvrdit
-
-
+
+ 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_de.ts b/src/organizer_de.ts
index d77f59b2..b67b3f47 100644
--- a/src/organizer_de.ts
+++ b/src/organizer_de.ts
@@ -1390,7 +1390,7 @@ p, li { white-space: pre-wrap; }
-
+ NamefilterNamensfilter
@@ -1576,8 +1576,8 @@ BSAs die du hier markierst werden hingegen anders geladen so dass die Installati
-
-
+
+ RefreshNeu laden
@@ -1625,12 +1625,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;">Wenn Sie im Kontextmenü auf "Mods reparieren..." klicken, wird Mod Organiser versuchen die entsprechenden Mods und ESPs zu aktivieren. Es werden dabei kein Eintrag deaktiviert!</span></p></body></html>
-
+ DownloadsDownloads
-
+ 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.
@@ -1639,145 +1639,145 @@ p, li { white-space: pre-wrap; }
Kompakt
-
+ Show HiddenVerborgene anzeigen
-
+ Tool BarWerkzeugleiste
-
+ Install ModMod installieren
-
+ Install &Mod&Mod installieren
-
+ Install a new mod from an archiveInstalliert eine Mod aus einem Archiv
-
+ Ctrl+MCtrl+M
-
+ ProfilesProfile
-
+ &Profiles&Profile
-
+ Configure ProfilesProfile konfigurieren
-
+ Ctrl+PCtrl+P
-
+ ExecutablesProgramme
-
+ &ExecutablesProgramm&e
-
+ Configure the executables that can be started through Mod OrganizerKonfigurieren der Programme die von Mod Organiser gestartet werden können
-
+ Ctrl+ECtrl+E
-
+ ToolsWerkzeuge
-
+ &Tools&Werkzeuge
-
+ Ctrl+ICtrl+I
-
+ SettingsEinstellungen
-
+ &SettingsEin&stellungen
-
+ Configure settings and workaroundsEinstellungen und Workarounds verwalten
-
+ Ctrl+SCtrl+S
-
+ NexusNexus
-
+ Search nexus network for more modsDurchsuche die passende Seite des Nexus-Netzwerks nach weiteren Mods
-
+ Ctrl+NCtrl+N
-
-
+
+ UpdateAktualisierung
-
+ Mod Organizer is up-to-dateMod Organizer ist auf dem neuesten Stand
-
-
+
+ No ProblemsKeine 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!
@@ -1788,211 +1788,211 @@ Right now this has very limited functionality
Diese Funktion ist noch sehr eingeschränkt
-
-
+
+ HelpHilfe
-
+ Ctrl+HCtrl+H
-
+ Endorse MOEndorsement für MO abgeben
-
-
+
+ Endorse Mod OrganizerEndorsement für Mod Organizer abgeben
-
+ Copy Log to Clipboard
-
+ Ctrl+C
-
+ ToolbarWerkzeugleiste
-
+ DesktopDesktop
-
+ Start MenuStartmenü
-
+ ProblemsProbleme
-
+ There are potential problems with your setupEs bestehen möglicherweise Probleme mit Ihrer Konfiguration
-
+ Everything seems to be in orderAlles in bester Ordnung
-
+ Help on UIHilfe zur Oberfläche
-
+ Documentation WikiWiki Dokumentation
-
+ Report IssueFehler melden
-
+ TutorialsTutorials
-
+ AboutÜber
-
+ About Qt
-
+ failed to save load order: %1Reihenfolge konnt nicht gespeichert werden: %1
-
+ NameName
-
+ Please enter a name for the new profileBitte geben Sie einen Namen für das neue Profil an
-
+ failed to create profile: %1Erstellen des Profils fehlgeschlagen: %1
-
+ Show tutorial?Tutorial anzeigen?
-
+ 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.Sie starten Mod Organizer zum ersten mal. Wollen Sie ein Tutorial über die grundlegenden Funktionen sehen? Wenn Sie "nein" wählen können Sie das Tutorial aus dem "Hilfe"-Menü starten.
-
+ Downloads in progressDownload 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: %1Spielstand konnte nicht gelesen werden: %1
-
+ Plugin "%1" failed: %2Plugin "%1" fehlgeschlagen: %2
-
+ Plugin "%1" failedPlugin "%1" fehlgeschlagen
-
+ failed to init plugin %1: %2Konnte das Plugin %1 nicht initialisieren: %2
-
+ Plugin errorPlugin fehler
-
+ 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)Es scheint als ob das Plugin "%1" beim letzten Programmstart nicht geladen werden konnte und einen Absturz von MO verursacht hat. Wollen sie das Plugin deaktivieren?
(Bitte beachten: Wenn dies das erste mal ist dass sie diese Meldung für dieses Plugin sehen macht es vielleicht Sinn ihm eine zweite Chance zu geben. Das Plugin selber hat vielleicht eine Möglichkeit solche Fehler zu korrigieren)
-
+ Failed to start "%1"Konnte "%1" nicht starten
-
+ WaitingWarte
-
+ Please press OK once you're logged into steam.Bitte drücken sie OK sobald sie bei Steam angemeldet sind.
-
+ Start Steam?Steam starten?
-
+ 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 conflictKeine 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!
@@ -2001,237 +2001,245 @@ Diese Funktion ist noch sehr eingeschränkt
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 ProxyNetzwerk Proxy aktivieren
-
-
+
+ Installation successfulInstallation erfolgreich
-
-
+
+ Configure ModMod 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 foundmod "%1" nicht gefunden
-
-
+
+ Installation cancelledInstallation abgebrochen
-
-
+
+ The mod was not installed completely.Die mod wurde nicht erfolgreich installiert.
-
+ Some plugins could not be loadedEinige Plugins konnten nicht geladen werden
-
+ Too many esps and esms enabledZu viele esps und esms aktiv
-
-
+
+ Description missingBeschreibung fehlt
-
+ The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:Die folgenden Plugins konnten nicht geladen werden. Der Grund könnte eine fehlende Abhängigkeit sein (z.B. python) oder eine veraltete Version der Abhängigkeiten:
-
+ 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>Das Spiel unterstützt nicht mehr als 255 aktive Plugins (inklusive der offiziellen). Sie müssen einige unbenutzte Plugins deaktivieren oder mehrere Plugins kombinieren. Hier finden sie eine Anleitung: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a>
-
+ Choose ModMod wählen
-
+ Mod ArchiveMod Archiv
-
+ Start Tutorial?Tutorial starten?
-
+ You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue?Du bist dabei ein Tutorial zu starten. Aus technischen Gründen ist es nicht möglich das Tutorial abzubrechen. Fortsetzen?
-
-
+
+ Download startedDownload gestartet
-
+ failed to update mod list: %1Aktualisieren der Modliste fehlgeschlagen: %1
-
+ failed to spawn notepad.exe: %1notepad.exe konnte nicht aufgerufen werden: %1
-
+ failed to open %1%1 konnte nicht geöffnet werden
-
+ failed to change origin name: %1konnte den Namen der Dateiquelle nicht ändern: %1
-
+ Executable "%1" not found
-
+ Failed to refresh list of esps: %1Konnte die Plugin Liste nicht aktualisieren: %s
-
+ failed to move "%1" from mod "%2" to "%3": %4
-
+ <Checked><Markierte>
-
+ <Unchecked><Nicht markierte>
-
+ <Update><Update>
-
+ <No category><Ohne Kategorie>
-
+ <Conflicted><Überschneidungen>
-
+ <Not Endorsed><Nicht Endorsed>
-
+ failed to rename mod: %1konnte die Mod nicht umbenennen: %1
-
+ Overwrite?Überschreiben?
-
+ This will replace the existing mod "%1". Continue?Dies wird die existierende Mod "%1" ersetzen. Fortsetzen?
-
+ failed to remove mod "%1"konnte die mod "%1" nicht löschen
-
-
-
+
+
+ failed to rename "%1" to "%2"konnte "%1" nicht in "%2" umbenennen
-
+ Multiple esps activated, please check that they don't conflict.Mehrere esps aktiv, bitte überprüfen sie, dass diese nicht miteinander kollidieren.
-
-
-
-
+
+
+
+ ConfirmBestätigen
-
+ Remove the following mods?<br><ul>%1</ul>Die folgenden Mods entfernen?<br><ul>%1</ul>
-
+ failed to remove mod: %1konnte die mod nicht entfernen: %1
-
-
+
+ FailedFehlgeschlagen
-
+ Installation file no longer existsInstallationsdatei 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 endorseSie müssen bei Nexus eingeloggt sein um Endorsements zu vergeben
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
+
-
+ Extract BSABSA extrahieren
@@ -2242,634 +2250,642 @@ Diese Funktion ist noch sehr eingeschränkt
(Das BSA wird danach gelöscht. Wenn Sie nicht wissen was BSAs sind wählen Sie am besten "nein")
-
-
+
+ failed to read %1: %2konnte %1 nicht lesen: %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 unknownNexus ID für diese Mod unbekannt
-
+ Download?
-
+ A download has been started but no installed page plugin recognizes it.
If you download anyway no information (i.e. version) will be associated with the download.
Continue?
-
+ Browse Mod Page
-
-
+
+ Failed to write settings
-
-
+
+ An error occured trying to write back MO settings: %1
-
+ File is write protected
-
+ Invalid file format (probably a bug)
-
+ Unknown error %1
-
+ <Managed by MO>
-
+ <Managed outside MO>
-
+ You need to be logged in with Nexus to resume a download
-
-
+
+ Create Mod...Mod erstellen...
-
+ This will move all files from overwrite into a new, regular mod.
Please enter a name:Es werden alle Dateien von "Overwrite" in eine neue, reguläre Mod verschoben.
Bitte wählen sie dafür einen Namen:
-
+ A mod with this name already existsEine Mod mit diesem Name existiert bereits
-
+ Continue?Fortfahren?
-
+ 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.Das Versionsschema bestimmt, welche version neuer als eine andere identifiziert wird.
Diese Funktion wird das Versionsschema erraten, unter der Annahme dass die installierte Version veraltet ist.
-
-
+
+ SorryEntschuldigung
-
+ I don't know a versioning scheme where %1 is newer than %2.Es ist kein Versionsschema bekannt bei welchem %1 neuer ist als %2.
-
+ Really enable all visible mods?Alle angezeigten Mods aktivieren?
-
+ Really disable all visible mods?Alle angezeigten Mods deaktivieren?
-
+ Choose what to exportBitte wählen Sie was sie exportieren wollen
-
+ EverythingAlles
-
+ All installed mods are included in the listAlle installierten Modifikationen sind in dieser Liste enthalten
-
+ Active ModsAktive Mods
-
+ Only active (checked) mods from your current profile are includedAusschließlich aktive Mods aus ihrem aktuellen Profil sind enthalten
-
+ VisibleSichtbar
-
+ All mods visible in the mod list are includedAlle sichtbaren Mods in der Mod Liste sind enthalten
-
+ export failed: %1Exportieren fehlgeschlagen: %1
-
+ Install Mod...Mod installieren...
-
+ Enable all visibleAlle sichtbaren aktvieren
-
+ Disable all visibleAlle sichtbaren deaktvieren
-
+ Check all for updateAlle auf Aktualisierungen überprüfen
-
+ Export to csv...Als CSV exportieren...
-
+ All Mods
-
+ Sync to Mods...Mods synchronisieren...
-
+ Restore BackupBackup wiederherstellen
-
+ Remove Backup...Backup entfernen...
-
+ Add/Remove CategoriesKategorien hinzufügen/entfernen
-
+ Replace CategoriesKategorien ersetzen
-
+ Primary CategoryPrimäre Kategorie
-
+ Change versioning schemeVersionsschema ändern
-
+ Un-ignore updateUpdate nicht mehr ignorieren
-
+ Ignore updateDieses Update ignorieren
-
+ Rename Mod...Mod umbenennen...
-
+ Remove Mod...Mod entfernen...
-
+ Reinstall ModMod neu installieren
-
+ Un-EndorseEndorsement zurückziehen
-
-
+
+ EndorseEndorsement vergeben
-
+ Won't endorseNiemals "Endorsement" vergeben
-
+ Endorsement state unknown"Endorsement"-stand unbekannt
-
+ Ignore missing dataFehlende Daten ignorieren
-
+ Visit on NexusAuf Nexus besuchen
-
+ Open in explorerIn Explorer öffnen
-
+ Information...Informationen...
-
-
+
+ Exception: Ausnahme:
-
-
+
+ Unknown exceptionUnbekannte Ausnahme
-
+ <All><Alle>
-
+ <Multiple><Mehrere>
-
- Really delete "%1"?
-
-
-
-
+ Fix Mods...Mods reparieren...
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+
+
+
+
- Delete
- Löschen
+ Löschen
-
-
+
+ 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 failedDownload fehlgeschlagen
-
+ failed to write to file %1Speichern in Datei "%1" fehlgeschlagen
-
+ %1 written"%1" gespeichert
-
+ Select binaryBinary wählen
-
+ BinaryAusführbare Datei
-
+ Enter NameNamen eingeben
-
+ Please enter a name for the executableBitte geben Sie einen Namen für die Anwendungsdatei ein
-
+ Not an executableDatei ist nicht ausführbar
-
+ This is not a recognized executable.Dies Datei wird nicht als ausführbare Datei erkannt.
-
-
+
+ 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 failedDateioperation 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: %1esp nicht gefunden: %1
-
+ failed to generate preview for %1
-
+ Sorry, can't preview anything. This function currently does not support extracting from bsas.
-
+ Update availableAktualisierung verfügbar
-
+ Open/ExecuteÖffnen/Ausführen
-
+ Add as ExecutableAls Anwendung hinzufügen
-
+ Preview
-
+ Un-HideSichtbar machen
-
+ HideVerstecken
-
+ Write To File...In Datei speichern...
-
+ Do you want to endorse Mod Organizer on %1 now?Willst du Mod Organizer auf %1 ein Endorsement geben?
-
+ Thank you!
-
+ Thank you for your endorsement!
-
+ Request to Nexus failed: %1Anfrage an Nexus fehlgeschlagen: %1
-
-
+
+ login successfulLogin erfolgreich
-
+ login failed: %1. Trying to download anywaylogin fehlgeschlagen: %1. Der Download scheitert vermutlich
-
+ login failed: %1login fehlgeschlagen: %1
-
+ login failed: %1. You need to log-in with Nexus to update MO.login fehlgeschlagen: %1. Sie müssen bei Nexus eingeloggt sein um das update herunterzuladen.
-
+ ErrorFehler
-
+ failed to extract %1 (errorcode %2)konnte "%1" nicht extrahieren (fehlercode %2)
-
+ Extract...Extrahieren...
-
+ Edit Categories...Kategorien ändern...
-
+ Deselect filter
-
+ RemoveEntfernen
-
+ Enable allAlle aktivieren
-
+ Disable allAlle deaktivieren
-
+ Unlock load orderSperrung der Ladereihenfolge aufheben
-
+ Lock load orderLadereihenfolge sperren
-
+ depends on missing "%1"
-
+ No profile set
-
+ LOOT working
-
+ loot failed. Exit code was: %1
-
+
+ failed to start loot
+
+
+
+ failed to run loot: %1
-
+ Errors occured
-
+ Backup of load order created
-
+ Choose backup to restore
-
+ No Backups
-
+ There are no backups to restore
-
-
+
+ Restore failed
-
-
+
+ Failed to restore the backup. Errorcode: %1
-
+ Backup of modlist created
@@ -2899,7 +2915,7 @@ Diese Funktion wird das Versionsschema erraten, unter der Annahme dass die insta
ModInfoBackup
-
+ This is the backup of a modDies ist das Backup einer Mod
@@ -3216,227 +3232,227 @@ p, li { white-space: pre-wrap; }
Schliessen
-
+ &Delete&Löschen
-
+ &Rename&Umbenennen
-
+ &Hide&Verstecken
-
+ &Unhide&Wiederherstellen
-
+ &Open&Öffnen
-
+ &New Folder&Neuer Ordner
-
-
+
+ Save changes?Änderungen speichern?
-
-
+
+ Save changes to "%1"?Änderungen an "%1" speichern?
-
+ File ExistsDatei existiert bereits
-
+ A file with that name exists, please enter a new oneEine Datei mit diesem Namen existiert bereits, bitte wählen Sie einen anderen Namen
-
+ failed to move fileVerschieben der Datei fehlgeschlagen
-
+ failed to create directory "optional"Erstellen des Verzeichnis "optional" fehlgeschlagen
-
-
+
+ Info requested, please waitInformation wird abgerufen, bitte warten
-
+ MainPrimär
-
+ UpdateAktualisierung
-
+ OptionalOptional
-
+ OldAlt
-
+ MiscSonstiges
-
+ UnknownUnbekannt
-
+ Current Version: %1Aktuelle Version: %1
-
+ No update availableKeine neue Version verfügbar
-
+ (description incomplete, please visit nexus)(Beschreibung unvollständig. Bitte besuche die Nexus-Seite)
-
+ <a href="%1">Visit on Nexus</a><a href="%1">Auf Nexus öffnen</a>
-
+ Failed to delete %1"%1" konnte nicht gelöscht werden
-
-
+
+ ConfirmBestä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 FolderNeuer 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 failedDateioperation 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"%1" konnte nicht zu "%2" umbenannt werden
-
+ There already is a visible version of this file. Replace it?Es existiert bereits eine sichtbare Variante dieser Datei. Soll diese ersetzt werden?
-
+ Un-HideSichtbar machen
-
+ HideVerstecken
-
+ NameName
-
+ Please enter a nameBitte geben Sie einen Namen ein.
-
+ ErrorFehler
-
+ Invalid name. Must be a valid file nameUngültiger Name. Dies muss ein gültiger Dateiname sein
-
+ A tweak by that name existsEin "Tweak" mit diesem Namen existiert bereits
-
+ Create Tweak"Tweak" anlegen
@@ -3444,7 +3460,7 @@ p, li { white-space: pre-wrap; }
ModInfoForeign
-
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
@@ -3452,7 +3468,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)Diese Pseudo-Mod enthält Dateien des virtuellen Verzeichnisses die modifiziert wurden (z.B. durch den Construction Kit)
@@ -3464,18 +3480,18 @@ p, li { white-space: pre-wrap; }
konnte %1/meta.ini nicht schreiben: %2
-
-
+
+ failed to write %1/meta.ini: error %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>
@@ -3483,164 +3499,164 @@ p, li { white-space: pre-wrap; }
ModList
-
+ This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit)Dieser Eintrag enthält Dateien die innerhalb des virtuellen Verzeichnisses erstellt wurden (z.B. durch den Construction Kit)
-
+ BackupBackup
-
+ No valid game dataKeine gültigen Spieldaten
-
+ Not endorsed yetNoch kein Endorsement vergeben
-
+ Overwrites filesDateien werden überschrieben
-
+ Overwritten filesÜberschriebene Dateien
-
+ Overwrites & OverwrittenÜberschreibt & Wird überschrieben
-
+ RedundantRedundant
-
+ Non-MO
-
+ invalidungültig
-
+ installed version: "%1", newest version: "%2"installed version: %1, newest version: %2installierte Version: %1, neueste Version: %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".Die neueste Version auf Nexus scheint älter zu sein als die die sie installiert haben. Dies könnte bedeuten dass die Version die sie installiert haben entfernt wurde (z.B. weigen eines Bugs) oder der Autor verwendet ein nicht-standardisiertes Versionierungssystem und ihre Version ist in Wirklichkeit doch veraltet. In beiden Fällen ist es empfehlenswert die Version von Nexus zu installieren.
-
+ Categories: <br>Kategorien: <br>
-
+ Invalid nameUngültiger Name
-
+ drag&drop failed: %1Drag&Drop fehlgeschlagen: %1
-
+ ConfirmBestätigen
-
+ Are you sure you want to remove "%1"?Sind Sie sicher dass Sie "%1" löschen wollen?
-
+ FlagsMarkierungen
-
+ Mod NameMod Name
-
+ VersionVersion
-
+ PriorityPriorität
-
+ CategoryKategorie
-
+ Nexus IDNexus ID
-
+ InstallationInstallation
-
-
+
+ unknownunbekannt
-
+ Name of your modsName Ihrer Mods
-
+ Version of the mod (if available)Version des Mod (wenn verfügbar)
-
+ 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.
-
+ Category of the mod.Kategorie der Mod.
-
+ Id of the mod as used on Nexus.Id der Mod von Nexus.
-
+ Emblemes to highlight things that might require attention.Symbole um Dinge hervorzuheben die evtl. Aufmerksamkeit erfordern.
-
+ Time this mod was installedZeitpunkt an dem die Mod installiert wurde
@@ -3857,22 +3873,22 @@ p, li { white-space: pre-wrap; }
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.
-
+ <b>Origin</b>: %1
-
+ AuthorAutor
-
+ DescriptionBeschreibung
-
+ This plugin can't be disabled (enforced by the game)Dieses Plugin kann nicht deaktiviert werden (vom Spiel benötigt)
@@ -3881,17 +3897,17 @@ p, li { white-space: pre-wrap; }
Ursprung: %1
-
+ Missing MastersFehlende Master
-
+ Enabled MastersAktivierte Master
-
+ failed to restore load order for %1Konnte die Ladereihenfolge für %1 nicht wiederherstellen
@@ -4457,18 +4473,18 @@ p, li { white-space: pre-wrap; }
-
+ Please use "Help" from the toolbar to get usage instructions to all elementsBitte verwenden Sie die "Hilfe" Funktion um Hinweise zu Nutzung aller Elemete zu bekommen
-
-
+
+ <Manage...><Verwalten...>
-
+ failed to parse profile %1: %2Konnte Profil %1 nicht verarbeiten: %2
@@ -4510,14 +4526,14 @@ p, li { white-space: pre-wrap; }
Fehler
-
-
-
+
+
+ wrong file formatFalsches Dateiformat
-
+ failed to open %1%1 konnte nicht geöffnet werden
@@ -4532,17 +4548,17 @@ p, li { white-space: pre-wrap; }
Proxy DLL
-
+ failed to spawn "%1""%1" konnte nicht erzeugt werden
-
+ Elevation requiredMehr Rechte erforderlich
-
+ This process requires elevation to run.
This is a potential security risk so I highly advice you to investigate if
"%1"
@@ -4557,22 +4573,22 @@ nicht ohne diese Rechte lauffähig ist.
Trotzdem fortfahren? (sie werden vom System gefragt werden ob sie ModOrganizer.exe erlauben wollen Systemänderungen durchzuführen)
-
+ failed to spawn "%1": %2"%1" konnte nicht erzeugt werden: %2
-
+ "%1" doesn't exist"%1" existiert nicht
-
+ failed to inject dll into "%1": %2Konnte dll nicht in "%1" einspeisen: %2
-
+ failed to run "%1""%1" konnte nicht ausgeführt werden
@@ -4802,12 +4818,12 @@ Trotzdem fortfahren? (sie werden vom System gefragt werden ob sie ModOrganizer.e
es wurde versucht, Einstellungen für das unbekanntes Plugin "%1" zu speichern
-
+ ConfirmBestä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?Das Mod Verzeichnis zu wechseln wirkt sich auf alle Profile aus! Mods die im neuen Verzeichnis nicht existieren (oder dort anders heißen) werden in allen Profilen deaktiviert. Dies kann nicht rückgängig gemacht werden außer Sie haben ihre Profile manuell gesichert. Fortfahren?
@@ -5481,26 +5497,26 @@ Unter Windows XP:
Datei "%1" überschreiben
-
-
-
-
+
+
+
+ ConfirmBestätigen
-
-
+
+ Copy all save games of character "%1" to the profile?Alle Spielstände des Charakters "%1" ins Profil kopieren?
-
+ 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.Ale Spielstände des Charakters "%1" an die globale Stelle verschieben? Bitte beachten sie dass dies die laufende Nummer der Spielstände durcheinander bringt.
-
+ 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.Alle Spielstände des Charakters "%1" an die globale Stelle verschieben? Bitte beachten sie dass dies die laufende Nummer der Spielstände durcheinander bringt.
diff --git a/src/organizer_en_US.ts b/src/organizer_en_US.ts
new file mode 100644
index 00000000..46daf493
--- /dev/null
+++ b/src/organizer_en_US.ts
@@ -0,0 +1,5343 @@
+
+
+
+
+ AboutDialog
+
+
+
+ About
+
+
+
+
+ Revision:
+
+
+
+
+ Used Software
+
+
+
+
+ Credits
+
+
+
+
+ Translators
+
+
+
+
+ Others
+
+
+
+
+ Close
+
+
+
+
+ No license
+
+
+
+
+ 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
+
+
+
+
+ BrowserDialog
+
+
+ Some Page
+
+
+
+
+ Search
+
+
+
+
+ new
+
+
+
+
+ failed to start download
+
+
+
+
+ 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.
+
+
+
+
+ pending download
+
+
+
+
+ DownloadListWidget
+
+
+
+ Placeholder
+
+
+
+
+
+
+ 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
+
+
+ < mod %1 file %2 >
+
+
+
+
+ Pending
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+ Un-Hide
+
+
+
+
+ Remove from View
+
+
+
+
+ Cancel
+
+
+
+
+ Pause
+
+
+
+
+ Remove
+
+
+
+
+ Resume
+
+
+
+
+ Delete Installed...
+
+
+
+
+ Delete All...
+
+
+
+
+ Remove Installed...
+
+
+
+
+ Remove All...
+
+
+
+
+ DownloadManager
+
+
+ failed to rename "%1" to "%2"
+
+
+
+
+ Memory allocation error (in refreshing directory).
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+ failed to delete meta file for %1
+
+
+
+
+
+
+
+
+
+ invalid index %1
+
+
+
+
+ No known download urls. Sorry, this download can't be resumed.
+
+
+
+
+ Please enter the nexus mod id
+
+
+
+
+ Mod ID:
+
+
+
+
+ Main
+
+
+
+
+ Update
+
+
+
+
+ Optional
+
+
+
+
+ Old
+
+
+
+
+ Misc
+
+
+
+
+ Unknown
+
+
+
+
+ Memory allocation error (in processing progress event).
+
+
+
+
+ Memory allocation error (in processing downloaded data).
+
+
+
+
+ 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)
+
+
+
+
+ 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
+
+
+
+
+ Close
+
+
+
+
+ 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
+
+
+
+
+
+ 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.
+
+
+
+
+ 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. <data> 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&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
+
+
+
+
+ Click blank area to deselect
+
+
+
+
+ If checked, only mods that match all selected categories are displayed.
+
+
+
+
+ And
+
+
+
+
+ If checked, all mods that match at least one of the selected categories are displayed.
+
+
+
+
+ Or
+
+
+
+
+ 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>
+
+
+
+
+ Open list options...
+
+
+
+
+ Refresh list. This is usually not necessary unless you modified data outside the program.
+
+
+
+
+
+ Restore Backup...
+
+
+
+
+
+ Create Backup
+
+
+
+
+ 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
+
+
+
+
+ Plugins
+
+
+
+
+ Sort
+
+
+
+
+ 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&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 "BOSS" to automatically sort these files.</span></p></body></html>
+
+
+
+
+ Archives
+
+
+
+
+ <html><head/><body><p>BSAs are bundles of game assets (textures, scripts, ...). By default, the engine loads these bundles in a separate step from loose files. MO can manage those archives to align their load order with that of loose files:</p><p>If archives are <span style=" font-weight:600;">managed</span>, their load order is specified by the priority of the corresponding mod (left pane), the same as the loose files. You can manually enable any BSA that has no corresponding plugin active.<br/></p><p>If archives are <span style=" font-weight:600;">not managed</span> their load order is specified by the priority of the corresponding plugin (right pane, plugins tab). You can then not manually enable BSAs where the plugin isn't active.</p><p>In either case you can not disable archives if there is a matching plugin, the game will load them no matter what.</p></body></html>
+
+
+
+
+ <html><head/><body><p>Have MO manage archives (<a href="#"><span style=" text-decoration: underline; color:#0000ff;">read more</span></a>)</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
+
+
+
+
+ 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).
+
+
+
+
+ Mod
+
+
+
+
+
+ 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 "Fix Mods..." 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.
+
+
+
+
+ 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!
+Right now this has very limited functionality
+
+
+
+
+
+ Help
+
+
+
+
+ Ctrl+H
+
+
+
+
+ Endorse MO
+
+
+
+
+
+ Endorse Mod Organizer
+
+
+
+
+ Copy Log to Clipboard
+
+
+
+
+ Ctrl+C
+
+
+
+
+ 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
+
+
+
+
+ About
+
+
+
+
+ About Qt
+
+
+
+
+ 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
+
+
+
+
+ Download?
+
+
+
+
+ A download has been started but no installed page plugin recognizes it.
+If you download anyway no information (i.e. version) will be associated with the download.
+Continue?
+
+
+
+
+ Browse Mod Page
+
+
+
+
+ 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 start "%1"
+
+
+
+
+ Waiting
+
+
+
+
+ Please press OK once you're logged into steam.
+
+
+
+
+ Executable "%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!
+
+
+
+
+ Activating Network Proxy
+
+
+
+
+
+ Failed to write settings
+
+
+
+
+
+ An error occured trying to write back MO settings: %1
+
+
+
+
+ File is write protected
+
+
+
+
+ Invalid file format (probably a bug)
+
+
+
+
+ Unknown error %1
+
+
+
+
+ Some plugins could not be loaded
+
+
+
+
+ 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 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
+
+
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+
+ failed to move "%1" from mod "%2" to "%3": %4
+
+
+
+
+ <Checked>
+
+
+
+
+ <Unchecked>
+
+
+
+
+ <Update>
+
+
+
+
+ <Managed by MO>
+
+
+
+
+ <Managed outside MO>
+
+
+
+
+ <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"
+
+
+
+
+ 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 resume a download
+
+
+
+
+
+ You need to be logged in with Nexus to endorse
+
+
+
+
+ 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
+
+
+
+
+ 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...
+
+
+
+
+ All Mods
+
+
+
+
+ Sync to Mods...
+
+
+
+
+ Restore Backup
+
+
+
+
+ Remove Backup...
+
+
+
+
+ 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
+
+
+
+
+ Open in explorer
+
+
+
+
+ Information...
+
+
+
+
+
+ Exception:
+
+
+
+
+
+ Unknown exception
+
+
+
+
+ <All>
+
+
+
+
+ <Multiple>
+
+
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+ Are you sure you want to remove the following save?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+ Are you sure you want to remove the following %n saves?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
+ Fix Mods...
+
+
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+ Delete %n save
+ Delete %n saves
+
+
+
+
+
+ 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?
+
+
+
+
+ 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?
+
+
+
+
+ Thank you!
+
+
+
+
+ Thank you for your endorsement!
+
+
+
+
+ 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.
+
+
+
+
+
+ failed to read %1: %2
+
+
+
+
+ Error
+
+
+
+
+ failed to extract %1 (errorcode %2)
+
+
+
+
+ Extract BSA
+
+
+
+
+ This archive contains invalid hashes. Some files may be broken.
+
+
+
+
+ Extract...
+
+
+
+
+ Edit Categories...
+
+
+
+
+ Deselect filter
+
+
+
+
+ Remove
+
+
+
+
+ Enable all
+
+
+
+
+ Disable all
+
+
+
+
+ Unlock load order
+
+
+
+
+ Lock load order
+
+
+
+
+ depends on missing "%1"
+
+
+
+
+ No profile set
+
+
+
+
+ LOOT working
+
+
+
+
+ loot failed. Exit code was: %1
+
+
+
+
+ failed to start loot
+
+
+
+
+ failed to run loot: %1
+
+
+
+
+ Errors occured
+
+
+
+
+ Backup of load order created
+
+
+
+
+ Choose backup to restore
+
+
+
+
+ No Backups
+
+
+
+
+ There are no backups to restore
+
+
+
+
+
+ Restore failed
+
+
+
+
+
+ Failed to restore the backup. Errorcode: %1
+
+
+
+
+ Backup of modlist created
+
+
+
+
+ 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
+
+
+
+
+ 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.
+
+
+
+
+ Ini Tweaks
+
+
+
+
+ This is a list of ini tweaks (ini modifications that can be toggled).
+
+
+
+
+ This is a list of ini tweaks. Ini Tweaks are (usually small) fragments of ini files that are applied over existing settings in skyrim.ini/skyrimprefs.ini. Each tweak can be toggled individually. You should check the description of the mod wether the tweaks are really optional.
+
+
+
+
+ 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.
+
+
+
+
+ This lists all the images (.jpg and .png) in the mod directory, like screenshots and such. Click one to get a larger view.
+
+
+
+
+
+ Optional ESPs
+
+
+
+
+ List of esps and esms that can not be loaded by the game.
+
+
+
+
+ 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.
+
+
+
+
+ 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></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 & 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
+
+
+
+
+ Name
+
+
+
+
+ Please enter a name
+
+
+
+
+
+ Error
+
+
+
+
+ Invalid name. Must be a valid file name
+
+
+
+
+ A tweak by that name exists
+
+
+
+
+ Create Tweak
+
+
+
+
+ ModInfoForeign
+
+
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
+
+
+
+
+ ModInfoOverwrite
+
+
+ This pseudo mod contains files from the virtual data tree that got modified (i.e. by the construction kit)
+
+
+
+
+ ModInfoRegular
+
+
+
+ failed to write %1/meta.ini: error %2
+
+
+
+
+ %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory
+
+
+
+
+ Categories: <br>
+
+
+
+
+ ModList
+
+
+ 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
+
+
+
+
+ Non-MO
+
+
+
+
+ invalid
+
+
+
+
+ installed version: "%1", newest version: "%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>
+
+
+
+
+ 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
+
+
+ Logging into Nexus
+
+
+
+
+ timeout
+
+
+
+
+ Unknown error
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+ 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)
+
+
+
+
+ <b>Origin</b>: %1
+
+
+
+
+ Author
+
+
+
+
+ Description
+
+
+
+
+ Missing Masters
+
+
+
+
+ Enabled Masters
+
+
+
+
+ failed to restore load order for %1
+
+
+
+
+ PreviewDialog
+
+
+ Preview
+
+
+
+
+ Close
+
+
+
+
+ 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;"><br /></p></body></html>
+
+
+
+
+ Close
+
+
+
+
+
+ Fix
+
+
+
+
+ No guided fix
+
+
+
+
+ Profile
+
+
+ invalid profile name %1
+
+
+
+
+ failed to create %1
+
+
+
+
+ failed to write mod list: %1
+
+
+
+
+ failed to update tweaked ini file, wrong settings may be used: %1
+
+
+
+
+ failed to create tweaked ini: %1
+
+
+
+
+ "%1" is missing or inaccessible
+
+
+
+
+
+
+
+
+ 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 "BSA redirection" (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
+
+
+
+
+ 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?
+
+
+
+
+ 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 select the game edition you have (MO can't start the game correctly if this is set incorrectly!)
+
+
+
+
+ failed to start application: %1
+
+
+
+
+ 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 or inaccessible
+
+
+
+
+ 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
+
+
+
+
+ failed to open temporary file
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+ 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?
+
+
+
+
+ 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
+
+
+
+
+ User interface
+
+
+
+
+ If checked, the download interface will be more compact.
+
+
+
+
+ Compact Download Interface
+
+
+
+
+ If checked, the download list will display meta information instead of file names.
+
+
+
+
+ Download Meta Information
+
+
+
+
+ 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)
+
+
+
+
+ Associate with "Download with manager" links
+
+
+
+
+ Known Servers (updated on download)
+
+
+
+
+ Preferred Servers (Drag & Drop)
+
+
+
+
+ Plugins
+
+
+
+
+ Author:
+
+
+
+
+ Version:
+
+
+
+
+ Description:
+
+
+
+
+ Key
+
+
+
+
+ Value
+
+
+
+
+ Blacklisted Plugins (use <del> to remove):
+
+
+
+
+ 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 "Mod Organizer" 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 "regular" 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
+
+
+
+
+ Disable this to no longer display mods installed outside MO in the mod list (left pane). Assets from those mods will then be treated as having lowest mod priority together with the original game content.
+
+
+
+
+ By default Mod Organizer will display esp+bsa bundles installed with foreign tools as mods (left pane). This allows you to control their priority in relation to other mods. This is particularly useful if you also use Steam Workshop to install mods.
+However, if you installed loose file mods outside MO which conflict with BSAs also installed outside MO those conflicts can't be resolved correctly.
+
+If you disable this feature, MO will only display official DLCs this way. Please note that plugins (esps and esms) displayed in the right pane are completely unaffected by this feature.
+
+
+
+
+ Display mods installed outside MO
+
+
+
+
+
+ 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 communicate with 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
+
+
+ Transfer Savegames
+
+
+
+
+ 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_es.ts b/src/organizer_es.ts
index 99071b5c..5ffce293 100644
--- a/src/organizer_es.ts
+++ b/src/organizer_es.ts
@@ -1400,7 +1400,7 @@ p, li { white-space: pre-wrap; }
-
+ NamefilterNombre del filtro
@@ -1561,8 +1561,8 @@ BSA marcado aquí se cargan de tal manera que su orden de instalación se cumple
-
-
+
+ RefreshRecargar
@@ -1610,12 +1610,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;">Si haces clic en "Fix Mods..." en el menú contextual, MO tratará de activar todos los mods y para arreglar esos esps desaparecidos. No va a desactivar ninguna otra cosa!</span></p></body></html>
-
+ DownloadsDescargas
-
+ 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.
@@ -1624,145 +1624,145 @@ p, li { white-space: pre-wrap; }
Compactar
-
+ Show HiddenMostrar Ocultos
-
+ Tool BarBarra Herramientas
-
+ Install ModInstalar Mod
-
+ Install &ModInstalar &Mod
-
+ Install a new mod from an archiveInstalar un nuevo Mod desde un archivo
-
+ Ctrl+MCtrl+M
-
+ ProfilesPerfiles
-
+ &Profiles&Perfiles
-
+ Configure ProfilesConfigurar Perfiles
-
+ Ctrl+PCtrl+P
-
+ ExecutablesEjecutables
-
+ &Executables&Ejecutables
-
+ Configure the executables that can be started through Mod OrganizerConfigura el ejecutable que sera iniciado desde Mod Orgenizer
-
+ Ctrl+ECtrl+E
-
+ ToolsHerramientas
-
+ &Tools&Herramientas
-
+ Ctrl+ICtrl+I
-
+ SettingsConfiguracion
-
+ &Settings&Configuracion
-
+ Configure settings and workaroundsConfigurar opciones y soluciones
-
+ Ctrl+SCtrl+S
-
+ NexusNexus
-
+ Search nexus network for more modsBuscar en la red de Nexus mas Mods
-
+ Ctrl+NCtrl+N
-
-
+
+ UpdateActualizacion
-
+ Mod Organizer is up-to-dateMod Organizer esta actualizado
-
-
+
+ No ProblemsSin problemas
-
+ This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them.
!Work in progress!
@@ -1773,94 +1773,94 @@ Right now this has very limited functionality
Ahora esto tiene una funcionalidad muy limitada
-
-
+
+ HelpAyuda
-
+ Ctrl+HCtrl+H
-
+ Endorse MOAvalar MO
-
-
+
+ Endorse Mod OrganizerAvalar Mod Organizer
-
+ Copy Log to Clipboard
-
+ Ctrl+C
-
+ ToolbarBarra de herramientas
-
+ DesktopEscritorio
-
+ Start MenuMenú de Inicio
-
+ ProblemsProblemas
-
+ There are potential problems with your setupHay posibles problemas con su configuración
-
+ Everything seems to be in orderTodo parece estar en orden
-
+ Help on UIAyuda sobre UI
-
+ Documentation WikiDocumentación Wiki
-
+ Report IssueInformar de un Problema
-
+ TutorialsTutoriales
-
+ AboutSobre
-
+ About QtSobre Qt
@@ -1869,119 +1869,119 @@ Ahora esto tiene una funcionalidad muy limitada
Fallo al salvar la orden de archivos, , ¿tiene permiso de escritura en "%1"?
-
+ failed to save load order: %1Fallo guardando el orden de carga: %1
-
+ NameNombre
-
+ Please enter a name for the new profilePor favor introduzca un nombre para el nuevo perfil
-
+ failed to create profile: %1Fallo al crear el perfil: %1
-
+ Show tutorial?¿Mostrar 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.Están comenzando Mod Organizer por primera vez. ¿Quieres mostrar un tutorial de sus características básicas? Si decides que no siempre podras empezar el tutorial desde la "Ayuda" del menú.
-
+ Downloads in progressDescarga 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: %1Fallo al leer la partida guardada: %1
-
+ Plugin "%1" failed: %2Plugin "%1" fallido: %2
-
+ Plugin "%1" failedPlugin "%1" fallido
-
+ failed to init plugin %1: %2fallo al iniciar plugin %1: %2
-
+ Plugin errorError de plugin
-
+ 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)Parece que el plugin "%1" Fallo al cargar el último inicio y causó que MO se bloqueara. ¿Quieres desactivarlo?
(Nota: Si es la primera vez que ve este mensaje en este plugin es posible que desees intentarlo otra vez. El plugin podria ser capaz de recuperarse del problema.)
-
+ Failed to start "%1"Fallo al iniciar plugin %1: %2
-
+ WaitingEsperando
-
+ Please press OK once you're logged into steam.Por favor, pulsa OK una vez que hayas iniciado sesión en steam.
-
+ Start Steam?¿Iniciar Steam?
-
+ Steam is required to be running already to correctly start the game. Should MO try to start steam now?Steam es requerido para iniciar correctamente el juego. ¿Debería MO tratar de iniciar ahora steam?
-
+ Also in: <br>También en: <br>
-
+ No conflictSin conflictos
-
+ <Edit...><Editar...>
-
+ This bsa is enabled in the ini file so it may be required!Esta bsa está habilitada en el archivo ini, por lo que puede ser necesario
@@ -1990,232 +1990,240 @@ Ahora esto tiene una funcionalidad muy limitada
Este archivo se seguirá cargado, ya que hay un plugin con el mismo nombre, pero sus archivos no seguirá el orden de instalación!
-
+ Activating Network ProxyActivación de proxy de red
-
-
+
+ Installation successfulInstalacion completada
-
-
+
+ Configure ModConfigurar Mod
-
-
+
+ This mod contains ini tweaks. Do you want to configure them now?Este mod contiene ajustes del ini. ¿Quieres configurarlos ahora?
-
-
+
+ mod "%1" not foundmod "%1" no encontrado
-
-
+
+ Installation cancelledInstalación cancelada
-
-
+
+ The mod was not installed completely.El mod no fue instalado completamente.
-
+ Some plugins could not be loadedAlgún plugins no se pudo cargar
-
+ Too many esps and esms enabledDemasiados esps y esms habilitado
-
-
+
+ Description missingFalta la descripción
-
+ The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:Los siguientes plugins no se pudieron cargar. La razón puede ser dependencias faltantes (es decir python) o una versión obsoleta:
-
+ 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>El juego no permite cargar más de 255 plugins activos (incluidos los oficiales). Tienes que desactivar algunos plugins no utilizados o fusionar algunos plugins en uno solo. Aquí podras encontrar una guía: <a href="http://wiki.step-project.com/Guide:Merging_Plugins">http://wiki.step-project.com/Guide:Merging_Plugins</a>
-
+ Choose ModSeleccione Mod
-
+ Mod ArchiveArchivo Mod
-
+ Start Tutorial?Iniciar tutorial?
-
+ You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue?Estás a punto de iniciar un tutorial. Por razones técnicas, no es posible terminar el tutorial antes de tiempo. ¿Desea continuar?
-
-
+
+ Download startedDescarga iniciada
-
+ failed to update mod list: %1Fallo al actualizar la lista de Mods: %1
-
+ failed to spawn notepad.exe: %1Fallo al cargar el Bloc de notas: %1
-
+ failed to open %1Fallo al abrir %1
-
+ failed to change origin name: %1fallo al cambiar el nombre original del fichero %1
-
+ Executable "%1" not foundEjecutable "%1" no encontrado
-
+ Failed to refresh list of esps: %1Fallo al actualizar la lista de esps: %1
-
+ <Checked><Marcado>
-
+ <Unchecked><Desmarcado>
-
+ <Update><Actualizacion>
-
+ <No category><No categoría>
-
+ <Conflicted><En conflicto>
-
+ <Not Endorsed><No Avalado>
-
+ failed to rename mod: %1fallo al renombrar el mod: %1
-
+ Overwrite?¿Sobrescribir?
-
+ This will replace the existing mod "%1". Continue?Esto reemplazará el vigente mod "%1". ¿Desea continuar?
-
+ failed to remove mod "%1"Fallo eliminando mod "%1"
-
-
-
+
+
+ failed to rename "%1" to "%2"Fallo al renombrar "%1" a "%2"
-
+ Multiple esps activated, please check that they don't conflict.Múltiples esps activados, por favor verifique que no entren en conflicto.
-
-
-
-
+
+
+
+ ConfirmConfirmar
-
+ Remove the following mods?<br><ul>%1</ul>¿Quitar el siguiente mods?<br><ul>%1</ul>
-
+ failed to remove mod: %1fallo al eliminar mod: %1
-
-
+
+ FailedFallo
-
+ Installation file no longer existsEl archivo de instalación ya no existe
-
+ Mods installed with old versions of MO can't be reinstalled in this way.Mods instalados con las viejas versiones de MO no pueden ser instalados de nuevo de este modo.
-
-
+
+ You need to be logged in with Nexus to endorseNecesita estar conectado con Nexus para avalar
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
+
-
+ Extract BSAExtraer BSA
@@ -2226,639 +2234,651 @@ Ahora esto tiene una funcionalidad muy limitada
(Esto elimina la BSA después de su finalización. Si no sabe de BSAS, solamente no lo seleccione)
-
-
+
+ failed to read %1: %2fallo al leer %1: %2
-
+ This archive contains invalid hashes. Some files may be broken.Este archivo contiene hashes no válidos. Algunos archivos pueden estar rotos.
-
+ Nexus ID for this Mod is unknownSe desconoce la ID en Nexus para este Mod
-
+ Download?
-
+ A download has been started but no installed page plugin recognizes it.
If you download anyway no information (i.e. version) will be associated with the download.
Continue?
-
+ Browse Mod Page
-
-
+
+ Failed to write settings
-
-
+
+ An error occured trying to write back MO settings: %1
-
+ File is write protected
-
+ Invalid file format (probably a bug)
-
+ Unknown error %1
-
+ failed to move "%1" from mod "%2" to "%3": %4
-
+ <Managed by MO>
-
+ <Managed outside MO>
-
+ You need to be logged in with Nexus to resume a download
-
-
+
+ Create Mod...Crear Mod...
-
+ This will move all files from overwrite into a new, regular mod.
Please enter a name:Esto moverá todos los archivos de sobrescritura en un nuevo mod, regular.
Por favor, introduzca un nombre:
-
+ A mod with this name already existsYa existe un mod con este nombre
-
+ Continue?¿Continuar?
-
+ 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.El esquema de versiones decide qué versión es considerada más nueva una que otra.
Esta función adivinará el esquema de versiones bajo el supuesto de que la versión instalada es obsoleta.
-
-
+
+ SorryLo siento
-
+ I don't know a versioning scheme where %1 is newer than %2.Se desconoce un esquema de versiones donde %1 es más reciente que %2.
-
+ Really enable all visible mods?¿Permitir realmente todos los mods visibles?
-
+ Really disable all visible mods?¿Realmente desactivar todos los mods visibles?
-
+ Choose what to exportElija un archivo a exportar
-
+ EverythingTodo
-
+ All installed mods are included in the listTodos los mods instalados están incluidos en la lista
-
+ Active ModsMods Activos
-
+ Only active (checked) mods from your current profile are includedMods sólo activos (Marcados) es incluido de su perfil actual
-
+ VisibleVisible
-
+ All mods visible in the mod list are includedTodo mods visible en la lista de mod son incluidos
-
+ export failed: %1Falló al exportar: %1
-
+ Install Mod...Instalar Mod...
-
+ Enable all visibleActivar todos los visibles
-
+ Disable all visibleDesactivar todo lo visible
-
+ Check all for updateComprobar todo para actualizar
-
+ Export to csv...Exportar a CSV...
-
+ All Mods
-
+ Sync to Mods...Sincronizar con Mods...
-
+ Restore BackupRestaurar copia de seguridad
-
+ Remove Backup...Eliminar copia de seguridad...
-
+ Add/Remove CategoriesAñadir/Quitar Categorías
-
+ Replace CategoriesRemplazar Categorías
-
+ Primary CategoryCategoría Primaria
-
+ Change versioning schemeCambiar esquema de versiones
-
+ Un-ignore updateNo ignorar actualización
-
+ Ignore updateNo Ignorar actualización
-
+ Rename Mod...Renombrar Mod...
-
+ Remove Mod...Quitar Mod...
-
+ Reinstall ModReinstalar Mod
-
+ Un-EndorseNo Avalado
-
-
+
+ EndorseAvalado
-
+ Won't endorseNo avalar
-
+ Endorsement state unknownEstado de avalado desconocido
-
+ Ignore missing dataIgnorar data desaparecido
-
+ Visit on NexusVisite Nexus
-
+ Open in explorerAbrir en explorador
-
+ Information...Informacion...
-
-
+
+ Exception: Excepción:
-
-
+
+ Unknown exceptionExcepción desconocida
-
+ <All><Todo>
-
+ <Multiple><Multiple>
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+
+
+
+
- Really delete "%1"?
- Realmente desea borrar "%1"?
+ Realmente desea borrar "%1"?
-
+ Fix Mods...Fix Mods...
- Delete
- Eliminar
+ Eliminar
-
-
+
+ failed to remove %1Fallo eliminando %1
-
-
+
+ failed to create %1Fallo al crear %1
-
+ Can't change download directory while downloads are in progress!No se puede cambiar el directorio de descarga, mientras que las descargas están en curso
-
+ Download failedDescarga fallida
-
+ failed to write to file %1Fallo de escritura en el fichero %1
-
+ %1 written%1 escrito
-
+ Select binarySelecciona el binario
-
+ BinaryBinario
-
+ Enter NameIntroducir Nombre
-
+ Please enter a name for the executablePor favor, introduce un nombre para el ejecutable
-
+ Not an executableNo es un ejecutable
-
+ This is not a recognized executable.Esto no es un ejecutable reconocido.
-
-
+
+ Replace file?¿Reemplazar archivo?
-
+ There already is a hidden version of this file. Replace it?Ya existe una versión oculta de este archivo. Reemplazarlo?
-
-
+
+ File operation failedLa operación del archivo falló
-
-
+
+ Failed to remove "%1". Maybe you lack the required file permissions?Fallo al eliminar "%1". ¿Tal vez no tengas los permisos necesarios?
-
+ There already is a visible version of this file. Replace it?Ya existe una versión visible de este archivo. ¿Reemplazarlo?
-
+ file not found: %1archivo no encontrado: %1
-
+ failed to generate preview for %1fallo al generar vista anticipada para %1
-
+ Sorry, can't preview anything. This function currently does not support extracting from bsas.Lo sentimos, no se puede obtener una vista previa de nada. Esta función no admite la extracción de bsas.
-
+ Update availableActualización disponible
-
+ Open/ExecuteAbrir/Ejecutar
-
+ Add as ExecutableAñadir un ejecutable
-
+ PreviewPrevisualizar
-
+ Un-HideDesocultar
-
+ HideOcultar
-
+ Write To File...Escribir al fichero...
-
+ Do you want to endorse Mod Organizer on %1 now?¿Quieres avalar Mod Organizer en %1 ahora?
-
+ Thank you!
-
+ Thank you for your endorsement!
-
+ Request to Nexus failed: %1Solicitud de Nexus ha fallado: %1
-
-
+
+ login successfullogin correcto
-
+ login failed: %1. Trying to download anywaylogin fallado: %1. Intentando descarga de todos modos
-
+ login failed: %1Falló el inicio de sesión: %1
-
+ login failed: %1. You need to log-in with Nexus to update MO.login fallido: %1. Necesitas hacer login con Nexus para actualizar MO.
-
+ ErrorError
-
+ failed to extract %1 (errorcode %2)fallo al extraer %1 (Código de error %2)
-
+ Extract...Extraer...
-
+ Edit Categories...Editar Categorías...
-
+ Deselect filter
-
+ RemoveEliminar
-
+ Enable allActivar todo
-
+ Disable allDesactivar todos
-
+ Unlock load orderDesbloquear el orden de carga
-
+ Lock load orderOrden de carga bloqueado
-
+ depends on missing "%1"
-
+ No profile set
-
+ LOOT working
-
+ loot failed. Exit code was: %1
-
+
+ failed to start loot
+
+
+
+ failed to run loot: %1
-
+ Errors occured
-
+ Backup of load order created
-
+ Choose backup to restore
-
+ No Backups
-
+ There are no backups to restore
-
-
+
+ Restore failed
-
-
+
+ Failed to restore the backup. Errorcode: %1
-
+ Backup of modlist created
@@ -2892,7 +2912,7 @@ Esta función adivinará el esquema de versiones bajo el supuesto de que la vers
ModInfoBackup
-
+ This is the backup of a modEsta es la copia de seguridad de un mod
@@ -3213,227 +3233,227 @@ p, li { white-space: pre-wrap; }
Cerrar
-
+ &Delete&Delete
-
+ &Rename&Rename
-
+ &Hide&Ocultar
-
+ &Unhide&Mostrar
-
+ &Open&Abrir
-
+ &New Folder&Nueva Carpeta
-
-
+
+ Save changes?¿Guardar cambios?
-
-
+
+ Save changes to "%1"?¿Guardar cambios a %1?
-
+ File ExistsExiste el fichero
-
+ A file with that name exists, please enter a new oneUn fichero con ese nombre ya existe, por favor selecciona otro nombre
-
+ failed to move fileError al mover el fichero
-
+ failed to create directory "optional"Error al crear el directorio "optional"
-
-
+
+ Info requested, please waitInformacion solicitada, por favor espere
-
+ MainPrincipal
-
+ UpdateActualizacion
-
+ OptionalOpcional
-
+ OldAntiguo
-
+ MiscMisc
-
+ UnknownDesconocido
-
+ Current Version: %1Version actual: %1
-
+ No update availableSin actualizacion
-
+ (description incomplete, please visit nexus)(descripción incompleta, por favor visite nexus)
-
+ <a href="%1">Visit on Nexus</a><a href="%1">Visite en Nexus</a>
-
+ Failed to delete %1Error borrando %1
-
-
+
+ ConfirmConfirma
-
+ 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 FolderNueva Carpeta
-
+ Failed to create "%1"Fallo al crear "%1"
-
-
+
+ Replace file?¿Reemplazar archivo?
-
+ There already is a hidden version of this file. Replace it?Ya existe una versión oculta de este archivo. Reemplazarlo?
-
-
+
+ File operation failedLa operación de archivo falló.
-
-
+
+ Failed to remove "%1". Maybe you lack the required file permissions?Fallo al eliminar "% 1". Tal vez no tienes los permisos necesarios?
-
-
+
+ failed to rename %1 to %2Fallo al renombrar %1 a %2
-
+ There already is a visible version of this file. Replace it?Ya existe una versión visible de este archivo. ¿Reemplazarlo?
-
+ Un-HideDesocultar
-
+ HideOcultar
-
+ NameNombre
-
+ Please enter a namePor favor, introduzca un nombre
-
+ ErrorError
-
+ Invalid name. Must be a valid file nameNombre no válido. Debe ser un nombre de archivo válido
-
+ A tweak by that name existsExiste un ajuste con ese nombre
-
+ Create TweakCrear Ajuste Fino
@@ -3441,7 +3461,7 @@ p, li { white-space: pre-wrap; }
ModInfoForeign
-
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
@@ -3449,7 +3469,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)Esta pseudo-mod contiene archivos en el árbol de datos virtual que fue modificado (es decir, mediante el kit de construcción)
@@ -3461,18 +3481,18 @@ p, li { white-space: pre-wrap; }
fallo al escribir %1/meta.ini: % 2
-
-
+
+ failed to write %1/meta.ini: error %2
-
+ %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory%1 no contiene ningún esp/esm y ningún directorio activo (textures, meshes, interface, ...)
-
+ Categories: <br>Categorias: <br>
@@ -3480,164 +3500,164 @@ p, li { white-space: pre-wrap; }
ModList
-
+ This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit)Esta entrada contiene los archivos que se han creado en el interior del árbol de datos virtual (es decir, mediante el kit de construcción)
-
+ BackupCopia de seguridad
-
+ No valid game dataNo hay datos válidos
-
+ Not endorsed yetNo avalado aún
-
+ Overwrites filesSobrescribe archivos
-
+ Overwritten files¿Sobrescribir archivo?
-
+ Overwrites & OverwrittenSobrescribe & sobrescrito
-
+ RedundantRedundante
-
+ Non-MO
-
+ invalidinválido
-
+ installed version: "%1", newest version: "%2"installed version: %1, newest version: %2version instalada: "%1", nueva version: "%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".La nueva versión en Nexus parece ser más antigua que la que has instalado. Esto podría significar, que la versión ha sido retirada (es decir, debido a un error) o el autor utiliza un esquema de control de versiones no estándar y que la versión más reciente es en realidad la más reciente. De cualquier manera si lo deseas, puedes "actualizar".
-
+ Categories: <br>Categorias: <br>
-
+ Invalid nameNombre no válido.
-
+ drag&drop failed: %1fallo al arrastrar y soltar: %1
-
+ ConfirmConfirma
-
+ Are you sure you want to remove "%1"?Estas seguro de querer borrar "%1"?
-
+ FlagsBanderas
-
+ Mod NameNombre del Mod
-
+ VersionVersión
-
+ PriorityPrioridad
-
+ CategoryCategoría
-
+ Nexus IDNexus IDs
-
+ InstallationInstalación
-
-
+
+ unknownDesconocido
-
+ Name of your modsNombre de tus mods
-
+ Version of the mod (if available)Version del mod (si esta disponible)
-
+ 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.
-
+ Category of the mod.Categoría del mod.
-
+ Id of the mod as used on Nexus.Id del mod tal como se utiliza en Nexus.
-
+ Emblemes to highlight things that might require attention.Emblemas para destacar las cosas que podrían requerir atención.
-
+ Time this mod was installedTiempo que fue instalado el mod
@@ -3854,17 +3874,17 @@ p, li { white-space: pre-wrap; }
Algunos de los plugins tienen nombres no válidos! Estos plugins no pueden ser cargados por el juego. Por favor, consulte mo_interface.log para ver una lista de plugins afectados y cambiarles el nombre.
-
+ <b>Origin</b>: %1
-
+ AuthorAutor
-
+ DescriptionDescripcion
@@ -3873,7 +3893,7 @@ p, li { white-space: pre-wrap; }
BOSS dll incompatible
-
+ This plugin can't be disabled (enforced by the game)Este plugin no se puede desactivar (impuesto por el juego)
@@ -3882,17 +3902,17 @@ p, li { white-space: pre-wrap; }
Origen: %1
-
+ Missing MastersMaestros Desaparecidos
-
+ Enabled MastersActivar Maestros
-
+ failed to restore load order for %1fallo al restaurar el orden de carga 1%
@@ -4462,18 +4482,18 @@ p, li { white-space: pre-wrap; }
-
+ Please use "Help" from the toolbar to get usage instructions to all elementsPor favor utilice "Ayuda" en la barra superior para obtener informacion sobre todos los elementos
-
-
+
+ <Manage...><Definir...>
-
+ failed to parse profile %1: %2no se pudo analizar el perfil % 1: %2
@@ -4515,14 +4535,14 @@ p, li { white-space: pre-wrap; }
Error
-
-
-
+
+
+ wrong file formatformato de fichero erroneo
-
+ failed to open %1Fallo al abrir %1
@@ -4537,17 +4557,17 @@ p, li { white-space: pre-wrap; }
Proxy DLL
-
+ failed to spawn "%1"Fallo al crear "%1"
-
+ Elevation requiredElevación requerida
-
+ This process requires elevation to run.
This is a potential security risk so I highly advice you to investigate if
"%1"
@@ -4562,22 +4582,22 @@ puede ser instalado para trabajar sin elevación.
¿Comenzar elevación de todos modos? (se le preguntará si desea permitir a Mod Organizer.exe realizar cambios en el sistema)
-
+ failed to spawn "%1": %2Fallo al crear "%1": %2
-
+ "%1" doesn't exist"%1% no existe
-
+ failed to inject dll into "%1": %2Fallo al injectar la dll en "%1": %2
-
+ failed to run "%1"Fallo al abrir %1
@@ -4807,12 +4827,12 @@ puede ser instalado para trabajar sin elevación.
tratando de almacenar la configuración para plugin desconocido "%1"
-
+ ConfirmConfirmar
-
+ 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?¡Cambiar el directorio mod afecta a todos los perfiles! Mods que no están presentes (o de nombres diferentes) en la nueva ubicación se desactivarán en todos los perfiles. No hay manera de deshacer esto a menos que se realice la copia de seguridad de los perfiles manualmente. ¿Proceder?
@@ -5486,26 +5506,26 @@ C:\Documents and Settings[UserName]\My Documents\My Games\Skyrim\Saves
Sobrescribir el fichero "%1"
-
-
-
-
+
+
+
+ ConfirmConfirmar
-
-
+
+ Copy all save games of character "%1" to the profile?Copiar todos los caracteres del juego salvado "%1" para el perfil?
-
+ 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.Mover todas las partidas guardadas "%1" para la localización global? Tenga en cuenta que esto se hace un lío con el número consecutivo de juegos salvados.
-
+ 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.Mover todas las partidas guardadas "%1" para la localización global? Tenga en cuenta que esto se hace un lío con el número consecutivo de juegos salvados.
diff --git a/src/organizer_fr.ts b/src/organizer_fr.ts
index 4671d9e8..0fc91a88 100644
--- a/src/organizer_fr.ts
+++ b/src/organizer_fr.ts
@@ -1403,7 +1403,7 @@ p, li { white-space: pre-wrap; }
-
+ NamefilterFiltre de nom
@@ -1527,8 +1527,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye
-
-
+
+ RefreshActualiser
@@ -1576,12 +1576,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;">Si vous cliquez "Réparer Mods..." 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>
-
+ DownloadsTé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.
@@ -1628,145 +1628,145 @@ p, li { white-space: pre-wrap; }
-
+ Show Hidden
-
+ Tool BarBarre d'outils
-
+ Install ModInstaller mod
-
+ Install &ModInstaller &mod
-
+ Install a new mod from an archiveInstaller un nouveau mod à partir d'une archive
-
+ Ctrl+MCtrl+M
-
+ ProfilesProfils
-
+ &Profiles&Profils
-
+ Configure ProfilesConfigurer les profils
-
+ Ctrl+PCtrl+P
-
+ ExecutablesProgrammes
-
+ &ExecutablesProgramm&es
-
+ Configure the executables that can be started through Mod OrganizerConfigure les programmes pouvant être lancés via Mod Organizer
-
+ Ctrl+ECtrl+E
-
+ Tools
-
+ &Tools
-
+ Ctrl+ICtrl+H
-
+ SettingsRéglages
-
+ &SettingsRéglage&s
-
+ Configure settings and workaroundsConfigurer les réglages et solutions de rechange
-
+ Ctrl+SCtrl+S
-
+ NexusNexus
-
+ Search nexus network for more modsEffectuer une recherche sur Nexus pour plus de mods
-
+ Ctrl+NCtrl+N
-
-
+
+ UpdateMise-à-jour
-
+ Mod Organizer is up-to-dateMod 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!
@@ -1774,170 +1774,170 @@ Right now this has very limited functionality
-
-
+
+ HelpAide
-
+ Ctrl+HCtrl+H
-
+ Endorse MO
-
-
+
+ Endorse Mod Organizer
-
+ Copy Log to Clipboard
-
+ Ctrl+C
-
+ ToolbarBarre d'outils
-
+ 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: %1impossible d'enregistrer l'ordre de chargement: %1
-
+ NameNom
-
+ Please enter a name for the new profileVeuillez inscrire un nom pour le nouveau profil
-
+ failed to create profile: %1impossible 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 progressTé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: %1impossible de lire la sauvegarde: %1
-
+ Plugin "%1" failed: %2
-
+ 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 start "%1"impossible de lancer "%1"
-
+ WaitingAttente
-
+ Please press OK once you're logged into steam.Veuillez cliquer OK une fois connecté à steam.
@@ -1946,907 +1946,923 @@ 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 conflictAucun conflit
-
+ <Edit...><Modifier...>
-
+ This bsa is enabled in the ini file so it may be required!
-
+ Activating Network Proxy
-
-
+
+ Installation successfulInstallation réussie
-
-
+
+ Configure ModConfigurer 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"%1" introuvable
-
-
+
+ Installation cancelled
-
-
+
+ The mod was not installed completely.
-
+ Some plugins could not be loaded
-
+ 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 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 ModChoisir mod
-
+ Mod ArchiveArchive 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 startedTéléchargement commencé
-
+ failed to update mod list: %1impossible de mettre à jour la liste de mods: %1
-
+ failed to spawn notepad.exe: %1impossible de lancer notepad.exe: %1
-
+ failed to open %1impossible d'ouvrir %1
-
+ failed to change origin name: %1impossible de changer le nom d'origine: %1
-
+ <Checked><Cochés>
-
+ <Unchecked><Décochés>
-
+ <Update><Rafraichir>
-
+ <No category>
-
+ <Conflicted>
-
+ <Not Endorsed>
-
+ failed to rename mod: %1impossible de renommer le mod: %1
-
+ Overwrite?
-
+ This will replace the existing mod "%1". Continue?
-
+ failed to remove mod "%1"Impossible de supprimer %1
-
-
-
+
+
+ failed to rename "%1" to "%2"Impossible de renommer %1 en %2
-
+ Multiple esps activated, please check that they don't conflict.
-
-
-
-
+
+
+
+ ConfirmConfirmer
-
+ Remove the following mods?<br><ul>%1</ul>
-
+ failed to remove mod: %1impossible de renommer le 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
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
+
-
+ Extract BSA
-
-
+
+ failed to read %1: %2Échec de lecture %1: %2
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+
+
+
+
-
+ This archive contains invalid hashes. Some files may be broken.
-
+ Nexus ID for this Mod is unknown
-
+ About
-
+ About Qt
-
+ Download?
-
+ A download has been started but no installed page plugin recognizes it.
If you download anyway no information (i.e. version) will be associated with the download.
Continue?
-
+ Browse Mod Page
-
+ Executable "%1" not found
-
+ Failed to refresh list of esps: %1
-
-
+
+ Failed to write settings
-
-
+
+ An error occured trying to write back MO settings: %1
-
+ File is write protected
-
+ Invalid file format (probably a bug)
-
+ Unknown error %1
-
+ failed to move "%1" from mod "%2" to "%3": %4
-
+ <Managed by MO>
-
+ <Managed outside MO>
-
+ You need to be logged in with Nexus to resume a download
-
-
+
+ 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 ModsActiver 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 visibleActiver tous les mods visibles
-
+ Disable all visibleDésactiver tous les mods visibles
-
+ Check all for updateVérifier toutes les mises à jour
-
+ Export to csv...
-
+ All Mods
-
+ Sync to Mods...
-
+ Restore Backup
-
+ Remove Backup...
-
+ Add/Remove Categories
-
+ Replace Categories
-
+ Primary Category
-
+ Change versioning scheme
-
+ Un-ignore update
-
+ Ignore update
-
+ Rename Mod...Renommer mod...
-
+ Remove Mod...Supprimer mod...
-
+ Reinstall ModInstaller mod
-
+ Un-Endorse
-
-
+
+ Endorse
-
+ Won't endorse
-
+ Endorsement state unknown
-
+ Ignore missing data
-
+ Visit on Nexus
-
+ Open in explorer
-
+ Information...Information...
-
-
+
+ Exception:
-
-
+
+ Unknown exception
-
+ <All><Tous>
-
+ <Multiple>
-
- Really delete "%1"?
-
-
-
-
+ Fix Mods...Réparer mods...
- Delete
- Supprimer
+ Supprimer
-
-
+
+ failed to remove %1Impossible de supprimer %1
-
-
+
+ failed to create %1impossible de créer %1
-
+ Can't change download directory while downloads are in progress!
-
+ Download failedTéléchargement commencé
-
+ failed to write to file %1impossible d'écrire dans le fichier %1
-
+ %1 written%1 écrit
-
+ Select binaryChoisir un programme
-
+ BinaryProgramme
-
+ Enter Name
-
+ Please enter a name for the executableVeuillez inscrire un nom pour le nouveau profil
-
+ Not an executableAjouter un programme
-
+ 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 availableMise à jour disponible
-
+ Open/Execute
-
+ Add as ExecutableAjouter un programme
-
+ Preview
-
+ Un-Hide
-
+ Hide
-
+ Write To File...Écriture du fichier...
-
+ Do you want to endorse Mod Organizer on %1 now?
-
+ Thank you!
-
+ Thank you for your endorsement!
-
+ 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.
-
+ ErrorErreur
-
+ failed to extract %1 (errorcode %2)
-
+ Extract...
-
+ Edit Categories...
-
+ Deselect filter
-
+ RemoveSupprimer
-
+ Enable all
-
+ Disable all
-
+ Unlock load order
-
+ Lock load order
-
+ depends on missing "%1"
-
+ No profile set
-
+ LOOT working
-
+ loot failed. Exit code was: %1
-
+
+ failed to start loot
+
+
+
+ failed to run loot: %1
-
+ Errors occured
-
+ Backup of load order created
-
+ Choose backup to restore
-
+ No Backups
-
+ There are no backups to restore
-
-
+
+ Restore failed
-
-
+
+ Failed to restore the backup. Errorcode: %1
-
+ Backup of modlist created
@@ -2872,7 +2888,7 @@ This function will guess the versioning scheme under the assumption that the ins
ModInfoBackup
-
+ This is the backup of a mod
@@ -3186,227 +3202,227 @@ p, li { white-space: pre-wrap; }
Fermer
-
+ &DeleteSupprimer
-
+ &Rename&Renommer
-
+ &Hide
-
+ &Unhide
-
+ &Open&Ouvrir
-
+ &New Folder&Nouveau dossier
-
-
+
+ Save changes?Enregistrer les changements?
-
-
+
+ Save changes to "%1"?
-
+ File ExistsUn fichier du même nom existe
-
+ A file with that name exists, please enter a new oneUn fichier ainsi nommé existe déjà, veuillez entrer un nouveau nom
-
+ failed to move fileimpossible de déplacer le fchier
-
+ failed to create directory "optional"Impossible de créer le dossier "optional"
-
-
+
+ Info requested, please waitInfo demandée, veuillez patienter
-
+ MainPrincipal
-
+ UpdateMise-à-jour
-
+ OptionalOptionnel
-
+ OldAncien
-
+ MiscDivers
-
+ UnknownInconnu
-
+ Current Version: %1Version courante: %1
-
+ No update availableAucune mise-à-jour disponible
-
+ (description incomplete, please visit nexus)
-
+ <a href="%1">Visit on Nexus</a><a href="%1">Visiter sur Nexus</a>
-
+ Failed to delete %1impossible d'effacer %1
-
-
+
+ ConfirmConfirmer
-
+ 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 FolderNouveau dossier
-
+ Failed to create "%1"Impossible de créer "%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 %2Impossible de renommer %1 en %2
-
+ There already is a visible version of this file. Replace it?
-
+ Un-Hide
-
+ Hide
-
+ NameNom
-
+ Please enter a name
-
+ ErrorErreur
-
+ Invalid name. Must be a valid file name
-
+ A tweak by that name exists
-
+ Create Tweak
@@ -3414,7 +3430,7 @@ p, li { white-space: pre-wrap; }
ModInfoForeign
-
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
@@ -3422,7 +3438,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)
@@ -3430,18 +3446,18 @@ p, li { white-space: pre-wrap; }
ModInfoRegular
-
-
+
+ failed to write %1/meta.ini: error %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>
@@ -3449,52 +3465,52 @@ p, li { white-space: pre-wrap; }
ModList
-
+ 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
-
+ Non-MO
-
+ invalid
@@ -3503,113 +3519,113 @@ p, li { white-space: pre-wrap; }
Version installée: %1, dernière version: %2
-
+ installed version: "%1", newest version: "%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>
-
+ Invalid nameNom incorrect
-
+ drag&drop failed: %1
-
+ ConfirmConfirmer
-
+ Are you sure you want to remove "%1"?Voulez-vous vraiment supprimer "%1"?
-
+ Flags
-
+ Mod NameNom du mod
-
+ VersionVersion
-
+ PriorityPriorité
-
+ Category
-
+ Nexus IDIDs Nexus
-
+ Installation
-
-
+
+ unknownInconnu
-
+ Name of your mods
-
+ Version of the mod (if available)Version du mod (si disponible)
-
+ 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.
-
+ 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
@@ -3821,17 +3837,17 @@ p, li { white-space: pre-wrap; }
-
+ <b>Origin</b>: %1
-
+ AuthorAuteur
-
+ DescriptionDescription
@@ -3841,22 +3857,22 @@ p, li { white-space: pre-wrap; }
-
+ This plugin can't be disabled (enforced by the game)
-
+ Missing Masters
-
+ Enabled Masters
-
+ failed to restore load order for %1
@@ -4422,18 +4438,18 @@ p, li { white-space: pre-wrap; }
-
+ Please use "Help" from the toolbar to get usage instructions to all elementsVeuillez 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: %2impossible d'analyser le profil %1: %2
@@ -4478,14 +4494,14 @@ p, li { white-space: pre-wrap; }
Erreur
-
-
-
+
+
+ wrong file formatmauvais format de fichier
-
+ failed to open %1impossible d'ouvrir %1
@@ -4500,17 +4516,17 @@ p, li { white-space: pre-wrap; }
DLL par procuration
-
+ failed to spawn "%1"impossible de lancer "%1"
-
+ Elevation required
-
+ This process requires elevation to run.
This is a potential security risk so I highly advice you to investigate if
"%1"
@@ -4520,22 +4536,22 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
-
+ failed to spawn "%1": %2impossible de lancer "%1": %2
-
+ "%1" doesn't exist"%1" inexistant
-
+ failed to inject dll into "%1": %2impossible d'injecter le DLL dans "%1": %2
-
+ failed to run "%1"impossible de lancer "%1"
@@ -4765,12 +4781,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
-
+ ConfirmConfirmer
-
+ 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?
@@ -5417,26 +5433,26 @@ On Windows XP:
-
-
-
-
+
+
+
+ ConfirmConfirmer
-
-
+
+ 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_ru.ts b/src/organizer_ru.ts
index f9e9b493..0dec4291 100644
--- a/src/organizer_ru.ts
+++ b/src/organizer_ru.ts
@@ -1390,7 +1390,7 @@ p, li { white-space: pre-wrap; }
-
+ NamefilterФильтр по имени
@@ -1576,8 +1576,8 @@ BSA, отмеченные здесь, загружаются так, чтобы
-
-
+
+ RefreshОбновить
@@ -1625,12 +1625,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;">Если вы выберете в контекстном меню пункт "Исправить моды...", 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. Двойной клик для установки.
@@ -1639,145 +1639,145 @@ p, li { white-space: pre-wrap; }
Компактно
-
+ Show HiddenПоказывать скрытые
-
+ Tool BarПанель инструментов
-
+ Install ModУстановить мод
-
+ Install &ModУстановить &мод
-
+ Install a new mod from an archiveУстановить новый мод из архива
-
+ Ctrl+MCtrl+M
-
+ ProfilesПрофили
-
+ &Profiles&Профили
-
+ Configure ProfilesНастройка профилей
-
+ Ctrl+PCtrl+P
-
+ ExecutablesПрограммы
-
+ &Executables&Программы
-
+ Configure the executables that can be started through Mod OrganizerНастройка программ, которые могут быть запущены через Mod Organizer
-
+ Ctrl+ECtrl+E
-
+ ToolsИнструменты
-
+ &Tools&Инструменты
-
+ Ctrl+ICtrl+I
-
+ SettingsНастройки
-
+ &Settings&Настройки
-
+ Configure settings and workaroundsНастройка параметров и способов обхода
-
+ Ctrl+SCtrl+S
-
+ NexusNexus
-
+ Search nexus network for more modsПоиск дополнительных модов на Nexus
-
+ Ctrl+NCtrl+N
-
-
+
+ UpdateОбновление
-
+ Mod Organizer is up-to-dateMod 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!
@@ -1788,211 +1788,211 @@ Right now this has very limited functionality
Прямо сейчас этот функционал сильно ограничен
-
-
+
+ HelpСправка
-
+ Ctrl+HCtrl+H
-
+ Endorse MOОдобрить MO
-
-
+
+ Endorse Mod OrganizerОдобрить Mod Organizer
-
+ Copy Log to Clipboard
-
+ Ctrl+C
-
+ ToolbarПанель инструментов
-
+ DesktopРабочий стол
-
+ Start MenuМеню Пуск
-
+ ProblemsПроблемы
-
+ There are potential problems with your setupЕсть возможные проблемы с вашей установкой
-
+ Everything seems to be in orderКажется всё в порядке
-
+ Help on UIСправка по интерфейсу
-
+ Documentation WikiWiki-документация
-
+ Report IssueСообщить о проблеме
-
+ TutorialsУроки
-
+ AboutО программе
-
+ About QtО библиотеке Qt
-
+ 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)Кажется, что при последнем запуске не удалось загрузить плагин "%1" и это привело к падению MO. Вы хотите отключить его?
(Замечание: Если это первый раз, когда вы видите такое сообщение для этого плагина, вероятно вы захотите сделать ещё одну попытка. Плагин может восстановиться после проблемы)
-
+ Failed to start "%1"Не удалось запустить "%1"
-
+ WaitingОжидание
-
+ Please press OK once you're logged into steam.Нажмите OK как только вы войдете в Steam.
-
+ 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, так что он может быть необходим!
@@ -2001,237 +2001,246 @@ Right now this has very limited functionality
Этот архив все равно будет загружен, так как есть плагин с одноименным названием, но его файлы не будут следовать порядку установки!
-
+ 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Некоторые плагины не могут быть загружены
-
+ Too many esps and esms enabledПодключено слишком много esp и esm
-
-
+
+ Description missingОписание отсутствует
-
+ The following plugins could not be loaded. The reason may be missing dependencies (i.e. python) or an outdated version:Следующие плагины не могут быть загружены. Причина возможно в отсутствующих зависимостях (таких как python) или в устаревшей версии:
-
+ 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>Игра не позволяет загрузить больше 255 активных плагинов (включая официальные). Вам нужно отключить некоторые ненужные плагины или объединить несколько небольших плагинов в один. Инструкция может быть найдена здесь: <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
-
+ Executable "%1" not foundИсполняемый файл "%1" не найден
-
+ Failed to refresh list of esps: %1Не удалось обновить список esp: %1
-
+ failed to move "%1" from mod "%2" to "%3": %4не удалось переместить "%1" из мода "%2" в "%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, чтобы одобрять.
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
+
+
-
+ Extract BSAРаспаковать BSA
@@ -2242,634 +2251,647 @@ Right now this has very limited functionality
(Это удалит 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 unknownNexus ID для этого мода неизвестен
-
+ Download?
-
+ A download has been started but no installed page plugin recognizes it.
If you download anyway no information (i.e. version) will be associated with the download.
Continue?
-
+ Browse Mod Page
-
-
+
+ Failed to write settings
-
-
+
+ An error occured trying to write back MO settings: %1
-
+ File is write protected
-
+ Invalid file format (probably a bug)
-
+ Unknown error %1
-
+ <Managed by MO>
-
+ <Managed outside MO>
-
+ You need to be logged in with Nexus to resume a download
-
-
+
+ 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.Мне неизвестна схема управления версиями, где %1 новее %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...
-
+ All Mods
-
+ Sync to Mods...Синхронизировать с модами...
-
+ Restore BackupВосстановить из резервной копии
-
+ Remove Backup...Удалить резервную копию...
-
+ 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><Несколько>
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+
+
+
+
+
- Really delete "%1"?
- Действительно удалить "%1"?
+ Действительно удалить "%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файл не найден: %1
-
+ failed to generate preview for %1не удалось получить предосмотр для %1
-
+ Sorry, can't preview anything. This function currently does not support extracting from bsas.Невозможно получить предосмотр чего-либо. Функция на данный момент не поддерживает извлечение из bsa.
-
+ 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 сейчас?
-
+ Thank you!
-
+ Thank you for your endorsement!
-
+ 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...Изменить категории...
-
+ Deselect filter
-
+ RemoveУдалить
-
+ Enable allВключить все
-
+ Disable allОтключить все
-
+ Unlock load orderСнять фиксацию порядка загрузки
-
+ Lock load orderЗафиксировать порядок загрузки
-
+ depends on missing "%1"
-
+ No profile set
-
+ LOOT working
-
+ loot failed. Exit code was: %1
-
+
+ failed to start loot
+
+
+
+ failed to run loot: %1
-
+ Errors occured
-
+ Backup of load order created
-
+ Choose backup to restore
-
+ No Backups
-
+ There are no backups to restore
-
-
+
+ Restore failed
-
-
+
+ Failed to restore the backup. Errorcode: %1
-
+ Backup of modlist created
@@ -2903,7 +2925,7 @@ This function will guess the versioning scheme under the assumption that the ins
ModInfoBackup
-
+ This is the backup of a modЭто резервная копия мода
@@ -3224,227 +3246,227 @@ p, li { white-space: pre-wrap; }
Закрыть
-
+ &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Создать настройку
@@ -3452,7 +3474,7 @@ p, li { white-space: pre-wrap; }
ModInfoForeign
-
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
@@ -3460,7 +3482,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 и других программах)
@@ -3472,18 +3494,18 @@ p, li { white-space: pre-wrap; }
не удалось записать %1/meta.ini: %2
-
-
+
+ failed to write %1/meta.ini: error %2
-
+ %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory%1 не содержит ни esp/esm, ни папок ресурсов (textures, meshes, interface, ...)
-
+ Categories: <br>Категории: <br>
@@ -3491,164 +3513,164 @@ p, li { white-space: pre-wrap; }
ModList
-
+ 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Избыточные
-
+ Non-MO
-
+ invalidневерные
-
+ installed version: "%1", newest version: "%2"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".Новейшая версия на Nexus кажется старее той, что установлена у вас. Это может означать, что ваша версия была снята (в связи с ошибкой и т.п.) или автор использует нестандартную схему версий, а новейшая версия на самом деле выше. В любом случае, вы можете "обновить".
-
+ 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 IDNexus 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Время, когда мод был установлен.
@@ -3865,17 +3887,17 @@ p, li { white-space: pre-wrap; }
Некоторые из ваших плагинов имеют неверные имена. Эти плагины не могут быть загружены игрой. Смотрите mo_interface.log для получения списка таких плагинов и переименуйте их.
-
+ <b>Origin</b>: %1
-
+ AuthorАвтор
-
+ DescriptionОписание
@@ -3884,7 +3906,7 @@ p, li { white-space: pre-wrap; }
BOSS dll несовместим
-
+ This plugin can't be disabled (enforced by the game)Этот плагин не может быть отключен (грузится игрой принудительно)
@@ -3893,17 +3915,17 @@ p, li { white-space: pre-wrap; }
Источник: %1
-
+ Missing MastersОтсутствующие мастерфайлы
-
+ Enabled MastersПодключенные мастерфайлы
-
+ failed to restore load order for %1не удалось восстановить порядок загрузки для %1
@@ -4473,18 +4495,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
@@ -4526,14 +4548,14 @@ p, li { white-space: pre-wrap; }
Ошибка
-
-
-
+
+
+ wrong file formatневерный формат файла
-
+ failed to open %1не удалось открыть %1
@@ -4548,17 +4570,17 @@ p, li { white-space: pre-wrap; }
Proxy DLL
-
+ 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"
@@ -4573,22 +4595,22 @@ 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"
@@ -4818,12 +4840,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
попытка сохранить настройку для неизвестного плагина "%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?Изменение каталога для модов отразится на всех ваших профилях. Нельзя будет отменить это, если только вы не сохранили резервные копии ваших профилей вручную. Продолжить?
@@ -5497,26 +5519,26 @@ On Windows XP:
Перезаписать файл "%1"
-
-
-
-
+
+
+
+ ConfirmПодтверждение
-
-
+
+ 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" в общее месторасположение? Имейте ввиду, что это запутает текущую нумерацию сохранений.
-
+ 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.ts b/src/organizer_tr.ts
index 73942e96..4b3be328 100644
--- a/src/organizer_tr.ts
+++ b/src/organizer_tr.ts
@@ -1394,7 +1394,7 @@ p, li { white-space: pre-wrap; }
-
+ Namefilter
@@ -1501,8 +1501,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye
-
-
+
+ Refresh
@@ -1544,12 +1544,12 @@ p, li { white-space: pre-wrap; }
-
+ Downloads
-
+ This is a list of mods you downloaded from Nexus. Double click one to install it.
@@ -1596,145 +1596,145 @@ p, li { white-space: pre-wrap; }
-
+ 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!
@@ -1742,1075 +1742,1085 @@ Right now this has very limited functionality
-
-
+
+ Help
-
+ Ctrl+H
-
+ Endorse MO
-
-
+
+ Endorse Mod Organizer
-
+ Copy Log to Clipboard
-
+ Ctrl+C
-
+ 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
-
+ 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
-
+ 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 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...>
-
+ This bsa is enabled in the ini file so it may be required!
-
+ 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
-
+ 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 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
-
+ <Checked>
-
+ <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ı.
-
+ Multiple esps activated, please check that they don't conflict.
-
-
-
-
+
+
+
+ ConfirmOnayla
-
+ 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
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
-
+ Extract BSA
-
-
+
+ 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
-
+ About
-
+ About Qt
-
+ Download?
-
+ A download has been started but no installed page plugin recognizes it.
If you download anyway no information (i.e. version) will be associated with the download.
Continue?
-
+ Browse Mod Page
-
+ Executable "%1" not found
-
+ Failed to refresh list of esps: %1
-
-
+
+ Failed to write settings
-
-
+
+ An error occured trying to write back MO settings: %1
-
+ File is write protected
-
+ Invalid file format (probably a bug)
-
+ Unknown error %1
-
+ failed to move "%1" from mod "%2" to "%3": %4
-
+ <Managed by MO>
-
+ <Managed outside MO>
-
+ You need to be logged in with Nexus to resume a download
-
-
+
+ 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
-
+ Install Mod...
-
+ Enable all visible
-
+ Disable all visible
-
+ Check all for update
-
+ Export to csv...
-
+ All Mods
-
+ Sync to Mods...
-
+ Restore Backup
-
+ Remove Backup...
-
+ 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
-
+ Open in explorer
-
+ Information...
-
-
+
+ Exception:
-
-
+
+ Unknown exception
-
+ <All>
-
+ <Multiple>
-
- Really delete "%1"?
-
-
-
-
+ Fix Mods...
-
-
- Delete
-
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+
+
-
-
+
+ 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?
-
+ Thank you!
-
+ Thank you for your endorsement!
-
+ 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...
-
+ Deselect filter
-
+ Remove
-
+ Enable all
-
+ Disable all
-
+ Unlock load order
-
+ Lock load order
-
+ depends on missing "%1"
-
+ No profile set
-
+ LOOT working
-
+ loot failed. Exit code was: %1
-
+
+ failed to start loot
+
+
+
+ failed to run loot: %1
-
+ Errors occured
-
+ Backup of load order created
-
+ Choose backup to restore
-
+ No Backups
-
+ There are no backups to restore
-
-
+
+ Restore failed
-
-
+
+ Failed to restore the backup. Errorcode: %1
-
+ Backup of modlist created
@@ -2836,7 +2846,7 @@ This function will guess the versioning scheme under the assumption that the ins
ModInfoBackup
-
+ This is the backup of a mod
@@ -3137,227 +3147,227 @@ p, li { white-space: pre-wrap; }
Kapat
-
+ &Delete
-
+ &Rename
-
+ &Hide
-
+ &Unhide
-
+ &Open&Aç
-
+ &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
-
-
+
+ ConfirmOnayla
-
+ 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
-
+ Nameİsim
-
+ Please enter a name
-
+ Error
-
+ Invalid name. Must be a valid file name
-
+ A tweak by that name exists
-
+ Create Tweak
@@ -3365,7 +3375,7 @@ p, li { white-space: pre-wrap; }
ModInfoForeign
-
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
@@ -3373,7 +3383,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)
@@ -3381,18 +3391,18 @@ p, li { white-space: pre-wrap; }
ModInfoRegular
-
-
+
+ failed to write %1/meta.ini: error %2
-
+ %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory
-
+ Categories: <br>
@@ -3400,163 +3410,163 @@ p, li { white-space: pre-wrap; }
ModList
-
+ 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
-
+ Non-MO
-
+ invalid
-
+ installed version: "%1", newest version: "%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>
-
+ Invalid name
-
+ drag&drop failed: %1
-
+ ConfirmOnayla
-
+ Are you sure you want to remove "%1"?
-
+ Flags
-
+ Mod Name
-
+ VersionVersiyon
-
+ 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
@@ -3768,17 +3778,17 @@ p, li { white-space: pre-wrap; }
-
+ <b>Origin</b>: %1
-
+ AuthorYaratıcı
-
+ Description
@@ -3788,22 +3798,22 @@ p, li { white-space: pre-wrap; }
-
+ This plugin can't be disabled (enforced by the game)
-
+ Missing Masters
-
+ Enabled Masters
-
+ failed to restore load order for %1
@@ -4356,18 +4366,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
@@ -4408,14 +4418,14 @@ p, li { white-space: pre-wrap; }
-
-
-
+
+
+ wrong file format
-
+ failed to open %1
@@ -4430,17 +4440,17 @@ p, li { white-space: pre-wrap; }
-
+ 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"
@@ -4450,22 +4460,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"
@@ -4695,12 +4705,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
-
+ ConfirmOnayla
-
+ 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?
@@ -5326,26 +5336,26 @@ On Windows XP:
-
-
-
-
+
+
+
+ ConfirmOnayla
-
-
+
+ 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_zh_CN.ts b/src/organizer_zh_CN.ts
index 333d9ce7..291be657 100644
--- a/src/organizer_zh_CN.ts
+++ b/src/organizer_zh_CN.ts
@@ -1404,7 +1404,7 @@ p, li { white-space: pre-wrap; }
-
+ Namefilter名称过滤器
@@ -1531,8 +1531,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye
-
-
+
+ Refresh刷新
@@ -1580,12 +1580,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”,那么 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.这是从Nexus已下载的模组的列表,双击进行安装。
@@ -1636,145 +1636,145 @@ p, li { white-space: pre-wrap; }
-
+ Show Hidden
-
+ Tool Bar工具栏
-
+ Install Mod安装模组
-
+ Install &Mod安装 &Mod
-
+ Install a new mod from an archive通过压缩包来安装一个新 Mod
-
+ Ctrl+MCtrl+M
-
+ Profiles配置文件
-
+ &Profiles&配置文件
-
+ Configure Profiles设置配置文件
-
+ Ctrl+PCtrl+P
-
+ Executables可执行程序
-
+ &Executables&可执行程序
-
+ Configure the executables that can be started through Mod Organizer配置可通过 MO 来启动的程序
-
+ Ctrl+ECtrl+E
-
+ Tools工具
-
+ &Tools工具(&T)
-
+ Ctrl+ICtrl+I
-
+ Settings设置
-
+ &Settings&设置
-
+ Configure settings and workarounds配置设定和解决方案
-
+ Ctrl+SCtrl+S
-
+ NexusNexus
-
+ Search nexus network for more mods搜索nexus网以获取更多 Mod
-
+ Ctrl+NCtrl+N
-
-
+
+ Update更新
-
+ Mod Organizer is up-to-dateMod 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!
@@ -1785,84 +1785,84 @@ Right now this has very limited functionality
当前此项所能提供的功能非常有限
-
-
+
+ Help帮助
-
+ Ctrl+HCtrl+H
-
+ Endorse MO称赞 MO
-
-
+
+ Endorse Mod Organizer称赞 Mod Organizer
-
+ Copy Log to Clipboard
-
+ Ctrl+C
-
+ 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教程
@@ -1871,88 +1871,88 @@ Right now this has very limited functionality
无法保存档案顺序,您确定您有权限更改 "%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.当您登录 Steam 时请点击确定。
@@ -1961,32 +1961,32 @@ 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 文件中启用,因此它可能是必需的。
@@ -1995,222 +1995,229 @@ Right now this has very limited functionality
此档案还是会被加载,因为存在同名插件。不过它所包含的的文件不会遵循安装顺序!
-
+ 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 foundMod "%1" 未找到
-
-
+
+ Installation cancelled安装已取消
-
-
+
+ The mod was not installed completely.该模组没有完全安装。
-
+ Some plugins could not be loaded一些插件无法载入
-
+ 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 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 ArchiveMod 压缩包
-
+ 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
-
+ <Checked><已勾选>
-
+ <Unchecked><未勾选>
-
+ <Update><有更新>
-
+ <No category><无类别>
-
+ <Conflicted><有冲突>
-
+ <Not Endorsed>
-
+ failed to rename mod: %1无法重命名 Mod: %1
-
+ Overwrite?覆盖
-
+ This will replace the existing mod "%1". Continue?这将会覆盖已存在的mod "%1"。是否继续?
-
+ failed to remove mod "%1"无法移动 Mod: %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>是否删除下列mod?<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你必须登录 Nexus 才能点“称赞”
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
-
+ Extract BSA解压 BSA
@@ -2221,657 +2228,660 @@ Right now this has very limited functionality
(解压完成后,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此模组的Nexus ID未知
-
+ About
-
+ About Qt
-
+ Download?
-
+ A download has been started but no installed page plugin recognizes it.
If you download anyway no information (i.e. version) will be associated with the download.
Continue?
-
+ Browse Mod Page
-
+ Executable "%1" not found
-
+ Failed to refresh list of esps: %1
-
-
+
+ Failed to write settings
-
-
+
+ An error occured trying to write back MO settings: %1
-
+ File is write protected
-
+ Invalid file format (probably a bug)
-
+ Unknown error %1
-
+ failed to move "%1" from mod "%2" to "%3": %4
-
+ <Managed by MO>
-
+ <Managed outside MO>
-
+ You need to be logged in with Nexus to resume a download
-
-
+
+ Create Mod...创建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所有包含在列表的已安装mod
-
+ Active Mods激活模组
-
+ Only active (checked) mods from your current profile are included仅包含当前配置文件中已激活(打勾)的mod
-
+ Visible可见的
-
+ All mods visible in the mod list are included包含列表中所有可见的mod
-
+ export failed: %1导出失败: %1
-
+ Install Mod...安装模组...
-
+ Enable all visible启用所有可见项目
-
+ Disable all visible禁用所有可见项目
-
+ Check all for update检查所有更新
-
+ Export to csv...导出为 CSV...
-
+ All Mods
-
+ Sync to Mods...同步到 Mod...
-
+ Restore Backup还原备份
-
+ Remove Backup...还原备份...
-
+ 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>XX
-
- Really delete "%1"?
-
-
-
-
+ Fix Mods...修复模组...
-
-
- Delete
-
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+
+
-
-
+
+ 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?是否现在就在 %1 点赞支持 Mod Organizer?
-
+ Thank you!
-
+ Thank you for your endorsement!
-
+ 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。您需要登录到N网才能更新 MO
-
+ Error错误
-
+ failed to extract %1 (errorcode %2)无法解压 %1 (错误代码 %2)
-
+ Extract...解压...
-
+ Edit Categories...编辑类别...
-
+ Deselect filter
-
+ Remove移除
-
+ Enable all全部启用
-
+ Disable all全部禁用
-
+ Unlock load order解锁加载顺序
-
+ Lock load order锁定加载顺序
-
+ depends on missing "%1"
-
+ No profile set
-
+ LOOT working
-
+ loot failed. Exit code was: %1
-
+
+ failed to start loot
+
+
+
+ failed to run loot: %1
-
+ Errors occured
-
+ Backup of load order created
-
+ Choose backup to restore
-
+ No Backups
-
+ There are no backups to restore
-
-
+
+ Restore failed
-
-
+
+ Failed to restore the backup. Errorcode: %1
-
+ Backup of modlist created
@@ -2897,7 +2907,7 @@ This function will guess the versioning scheme under the assumption that the ins
ModInfoBackup
-
+ This is the backup of a mod这是模组的备份
@@ -3211,227 +3221,227 @@ p, li { white-space: pre-wrap; }
关闭
-
+ &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)(描述信息不完整,请访问N网)
-
+ <a href="%1">Visit on Nexus</a><a href="%1">访问N网</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
@@ -3439,7 +3449,7 @@ p, li { white-space: pre-wrap; }
ModInfoForeign
-
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
@@ -3447,7 +3457,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)此虚拟安装包内包含来自虚拟 Data 树的文件,但文件发生了变化 (例: 被CK修改了)
@@ -3459,18 +3469,18 @@ p, li { white-space: pre-wrap; }
无法写入 %1/meta.ini: %2
-
-
+
+ failed to write %1/meta.ini: error %2
-
+ %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory%1 中未包含 esp 或 esm 和有效的目录 (textures, meshes, interface, ...)
-
+ Categories: <br>种类: <br>
@@ -3478,52 +3488,52 @@ p, li { white-space: pre-wrap; }
ModList
-
+ This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit)此项目内检测到了虚拟 Data 树的文件发生了变化 (例如: 被 CK 修改了)
-
+ Backup备份
-
+ No valid game data无效游戏数据
-
+ Not endorsed yet尚未点赞支持
-
+ Overwrites filesOverwrites文件
-
+ Overwritten files覆盖的 Mod
-
+ Overwrites & Overwritten覆盖 & 被覆盖
-
+ Redundant冗余
-
+ Non-MO
-
+ invalid无效
@@ -3532,113 +3542,113 @@ p, li { white-space: pre-wrap; }
当前版本: %1,最新版本: %2
-
+ installed version: "%1", newest version: "%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 NameMod 名称
-
+ Version版本
-
+ Priority优先级
-
+ Category分类
-
+ Nexus IDNexus网 ID
-
+ Installation安装
-
-
+
+ unknown未知
-
+ Name of your mods你的mod名称
-
+ Version of the mod (if available)Mod 版本 (如果可用)
-
+ Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority.Mod 的安装优先级。越高就表示越“重要”,从而覆盖掉低优先级的 Mod 文件。
-
+ Category of the mod.mod的分类
-
+ Id of the mod as used on Nexus.mod在 Nexus 网上的ID编号
-
+ Emblemes to highlight things that might require attention.需要注意被标记为高亮的
-
+ Time this mod was installed
@@ -3850,17 +3860,17 @@ p, li { white-space: pre-wrap; }
-
+ <b>Origin</b>: %1
-
+ Author作者
-
+ Description描述
@@ -3874,7 +3884,7 @@ p, li { white-space: pre-wrap; }
您的一些插件名称无效!这些插件无法被游戏载入。请查看 mo_interface.log 来确认那些受影响的插件并重命名它们。
-
+ This plugin can't be disabled (enforced by the game)这个插件不能被禁用 (由游戏执行)
@@ -3883,17 +3893,17 @@ p, li { white-space: pre-wrap; }
隶属于: %1
-
+ Missing Masters
-
+ Enabled Masters
-
+ failed to restore load order for %1恢复 %1 加载顺序失败
@@ -4459,18 +4469,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
@@ -4515,14 +4525,14 @@ p, li { white-space: pre-wrap; }
错误
-
-
-
+
+
+ wrong file format错误的文件格式
-
+ failed to open %1无法打开 %1
@@ -4537,17 +4547,17 @@ p, li { white-space: pre-wrap; }
代理DLL
-
+ 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"
@@ -4557,22 +4567,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"
@@ -4802,12 +4812,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
-
+ 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 将在所有配置中被禁止掉。此操作无法撤销,所以执行此操作前建议先备份下自己的配置。立即执行?
@@ -5462,26 +5472,26 @@ On Windows XP:
覆盖文件 "%1"
-
-
-
-
+
+
+
+ Confirm确认
-
-
+
+ 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" 的所有游戏存档到全局路径?请注意这将使游戏存档的运行编号变得混乱。
-
+ 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_zh_TW.ts b/src/organizer_zh_TW.ts
index b7e4a346..9d767b3d 100644
--- a/src/organizer_zh_TW.ts
+++ b/src/organizer_zh_TW.ts
@@ -1404,7 +1404,7 @@ p, li { white-space: pre-wrap; }
-
+ Namefilter
@@ -1531,8 +1531,8 @@ BSAs checked here are loaded in such a way that your installation order is obeye
-
-
+
+ Refresh重新整理
@@ -1580,12 +1580,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”,那麼 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 的列表,雙擊進行安裝。
@@ -1636,145 +1636,145 @@ p, li { white-space: pre-wrap; }
-
+ Show Hidden
-
+ Tool Bar工具欄
-
+ Install Mod安裝 Mod
-
+ Install &Mod安裝 &Mod
-
+ Install a new mod from an archive通過壓縮包來安裝一個新 Mod
-
+ Ctrl+MCtrl+M
-
+ Profiles配置檔案
-
+ &Profiles&配置檔案
-
+ Configure Profiles設定配置檔案
-
+ Ctrl+PCtrl+P
-
+ Executables可執行程式
-
+ &Executables&可執行程式
-
+ Configure the executables that can be started through Mod Organizer配置可通過 MO 來啟動的程式
-
+ Ctrl+ECtrl+E
-
+ Tools
-
+ &Tools
-
+ Ctrl+ICtrl+I
-
+ Settings設定
-
+ &Settings&設定
-
+ Configure settings and workarounds配置設定和解決方案
-
+ Ctrl+SCtrl+S
-
+ NexusN網
-
+ Search nexus network for more mods搜尋N網以獲取更多 Mod
-
+ Ctrl+NCtrl+N
-
-
+
+ Update更新
-
+ Mod Organizer is up-to-dateMod 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!
@@ -1785,84 +1785,84 @@ Right now this has very limited functionality
當前此功能所能提供的項目非常有限
-
-
+
+ Help幫助
-
+ Ctrl+HCtrl+M
-
+ Endorse MO
-
-
+
+ Endorse Mod Organizer
-
+ Copy Log to Clipboard
-
+ Ctrl+C
-
+ 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
@@ -1871,88 +1871,88 @@ Right now this has very limited functionality
無法儲存檔案順序,您確定您有權限更改 "%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.
-
+ 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 "%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 start "%1"無法啟動 "%1"
-
+ Waiting稍等
-
+ Please press OK once you're logged into steam.當您登入 Steam 時請點擊確定。
@@ -1961,32 +1961,32 @@ 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 檔案中啟用,因此它可能是必需的。
@@ -1995,222 +1995,229 @@ Right now this has very limited functionality
此檔案還是會被加載,因為存在同名插件。不過它所包含的的檔案不會遵循安裝順序!
-
+ 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 foundMod "%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 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 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 ArchiveMod 壓縮包
-
+ 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
-
+ <Checked><已勾選>
-
+ <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"無法移動 Mod: %1
-
-
-
+
+
+ failed to rename "%1" to "%2"重新命名 "%1 "為 "%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無法移動 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
+
+
+ Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.
+
+
+
+
-
+ Extract BSA解壓 BSA
@@ -2221,657 +2228,664 @@ Right now this has very limited functionality
(解壓完成後,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 未知
-
+ About
-
+ About Qt
-
+ Download?
-
+ A download has been started but no installed page plugin recognizes it.
If you download anyway no information (i.e. version) will be associated with the download.
Continue?
-
+ Browse Mod Page
-
+ Executable "%1" not found
-
+ Failed to refresh list of esps: %1
-
-
+
+ Failed to write settings
-
-
+
+ An error occured trying to write back MO settings: %1
-
+ File is write protected
-
+ Invalid file format (probably a bug)
-
+ Unknown error %1
-
+ failed to move "%1" from mod "%2" to "%3": %4
-
+ <Managed by MO>
-
+ <Managed outside MO>
-
+ You need to be logged in with Nexus to resume a download
-
-
+
+ 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?確定要啟用全部可見的 Mod 嗎?
-
+ Really disable all visible mods?確定要禁用全部可見的 Mod 嗎?
-
+ Choose what to export
-
+ Everything
-
+ All installed mods are included in the list
-
+ Active Mods激活 Mod
-
+ 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...
-
+ All Mods
-
+ Sync to Mods...同步到 Mod...
-
+ Restore Backup
-
+ Remove Backup...
-
+ Add/Remove Categories
-
+ Replace Categories
-
+ 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未知的例外
-
+ <All><全部>
-
+ <Multiple>
-
- Really delete "%1"?
-
-
-
-
+ Fix Mods...修復 Mod...
+
+
+ Delete %n save(s)
+ Delete save(s)
+
+
+
+
- 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?
-
+ Thank you!
-
+ Thank you for your endorsement!
-
+ 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...編輯類別...
-
+ Deselect filter
-
+ Remove移除
-
+ Enable all全部啟用
-
+ Disable all全部禁用
-
+ Unlock load order
-
+ Lock load order
-
+ depends on missing "%1"
-
+ No profile set
-
+ LOOT working
-
+ loot failed. Exit code was: %1
-
+
+ failed to start loot
+
+
+
+ failed to run loot: %1
-
+ Errors occured
-
+ Backup of load order created
-
+ Choose backup to restore
-
+ No Backups
-
+ There are no backups to restore
-
-
+
+ Restore failed
-
-
+
+ Failed to restore the backup. Errorcode: %1
-
+ Backup of modlist created
@@ -2897,7 +2911,7 @@ This function will guess the versioning scheme under the assumption that the ins
ModInfoBackup
-
+ This is the backup of a mod
@@ -3211,227 +3225,227 @@ p, li { white-space: pre-wrap; }
關閉
-
+ &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"無法建立 "optional" 目錄
-
-
+
+ Info requested, please wait請求訊息已發出,請稍後
-
+ Main主要檔案
-
+ Update更新
-
+ Optional可選檔案
-
+ Old舊檔
-
+ Misc雜項
-
+ Unknown未知
-
+ Current Version: %1當前版本: %1
-
+ No update available沒有可用的更新
-
+ (description incomplete, please visit nexus)(描述訊息不完整,請訪問N網)
-
+ <a href="%1">Visit on Nexus</a><a href="%1">訪問N網</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
@@ -3439,7 +3453,7 @@ p, li { white-space: pre-wrap; }
ModInfoForeign
-
+ This pseudo mod represents content managed outside MO. It isn't modified by MO.
@@ -3447,7 +3461,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)此虛擬安裝包內包含來自虛擬 Data 樹的檔案,但檔案發生了變化 (例: 被CK修改了)
@@ -3459,18 +3473,18 @@ p, li { white-space: pre-wrap; }
無法寫入 %1/meta.ini: %2
-
-
+
+ failed to write %1/meta.ini: error %2
-
+ %1 contains no esp/esm and no asset (textures, meshes, interface, ...) directory%1 中未包含 esp 或 esm 和有效的目錄 (textures, meshes, interface, ...)
-
+ Categories: <br>種類: <br>
@@ -3478,52 +3492,52 @@ p, li { white-space: pre-wrap; }
ModList
-
+ This entry contains files that have been created inside the virtual data tree (i.e. by the construction kit)此項目內檢測到了虛擬 Data 樹的檔案發生了變化 (例如:被 CK 修改了)
-
+ Backup
-
+ No valid game data
-
+ Not endorsed yet
-
+ Overwrites files
-
+ Overwritten files覆蓋的 Mod
-
+ Overwrites & Overwritten
-
+ Redundant
-
+ Non-MO
-
+ invalid
@@ -3532,113 +3546,113 @@ p, li { white-space: pre-wrap; }
當前版本: %1,最新版本: %2
-
+ installed version: "%1", newest version: "%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
-
+ Confirm確認
-
+ Are you sure you want to remove "%1"?確定要移除 "%1" 吗?
-
+ Flags
-
+ Mod Name
-
+ Version版本
-
+ Priority優先級
-
+ Category
-
+ Nexus IDN網 ID
-
+ Installation
-
-
+
+ unknown未知
-
+ Name of your mods
-
+ Version of the mod (if available)Mod 版本 (如果可用)
-
+ Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority.Mod 的安裝優先級。越高就表示越“重要”,從而覆蓋掉低優先級的 Mod 檔案。
-
+ 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
@@ -3850,17 +3864,17 @@ p, li { white-space: pre-wrap; }
-
+ <b>Origin</b>: %1
-
+ Author作者
-
+ Description描述
@@ -3874,7 +3888,7 @@ p, li { white-space: pre-wrap; }
您的一些插件名稱無效!這些插件無法被遊戲載入。請查看 mo_interface.log 來確認那些受影響的插件並重新命名它們。
-
+ This plugin can't be disabled (enforced by the game)這個插件不能被禁用 (由遊戲執行)
@@ -3883,17 +3897,17 @@ p, li { white-space: pre-wrap; }
隸屬於: %1
-
+ Missing Masters
-
+ Enabled Masters
-
+ failed to restore load order for %1
@@ -4459,18 +4473,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
@@ -4515,14 +4529,14 @@ p, li { white-space: pre-wrap; }
錯誤
-
-
-
+
+
+ wrong file format錯誤的檔案格式
-
+ failed to open %1無法開啟 %1
@@ -4537,17 +4551,17 @@ p, li { white-space: pre-wrap; }
代理DLL
-
+ 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"
@@ -4557,22 +4571,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"
@@ -4802,12 +4816,12 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
-
+ 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 將在所有配置中被禁止掉。此操作無法撤銷,所以執行此操作前建議先備份下自己的配置。立即執行?
@@ -5458,26 +5472,26 @@ On Windows XP:
-
-
-
-
+
+
+
+ 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/savegame.cpp b/src/savegame.cpp
index d09f291c..06e028e2 100644
--- a/src/savegame.cpp
+++ b/src/savegame.cpp
@@ -21,10 +21,11 @@ along with Mod Organizer. If not, see .
#include
#include
#include
-#include "gameinfo.h"
#include
#include
+#include
#include
+#include "gameinfo.h"
SaveGame::SaveGame(QObject *parent)
@@ -68,11 +69,14 @@ SaveGame::~SaveGame()
QStringList SaveGame::attachedFiles() const
{
QStringList result;
- QString seFileFile = fileName().mid(0).replace(".ess", ".skse");
- QFileInfo seFile(seFileFile);
- if (seFile.exists()) {
- result.append(seFile.absoluteFilePath());
+ foreach (const std::wstring &ext, MOShared::GameInfo::instance().getSavegameAttachmentExtensions()) {
+ QFileInfo fi(fileName());
+ fi.setFile(fi.canonicalPath() + "/" + fi.completeBaseName() + "." + MOBase::ToQString(ext));
+ if (fi.exists()) {
+ result.append(fi.filePath());
+ }
}
+
return result;
}
diff --git a/src/shared/fallout3info.cpp b/src/shared/fallout3info.cpp
index 68fd515e..ea73c7f6 100644
--- a/src/shared/fallout3info.cpp
+++ b/src/shared/fallout3info.cpp
@@ -122,6 +122,11 @@ std::vector Fallout3Info::getDLCPlugins()
;
}
+std::vector Fallout3Info::getSavegameAttachmentExtensions()
+{
+ return std::vector();
+}
+
std::vector Fallout3Info::getIniFileNames()
{
return boost::assign::list_of(L"fallout.ini")(L"falloutprefs.ini");
diff --git a/src/shared/fallout3info.h b/src/shared/fallout3info.h
index e9a818e2..7c61ca6d 100644
--- a/src/shared/fallout3info.h
+++ b/src/shared/fallout3info.h
@@ -59,6 +59,7 @@ public:
virtual std::vector getVanillaBSAs();
virtual std::vector getDLCPlugins();
+ virtual std::vector getSavegameAttachmentExtensions();
// file name of this games ini (no path)
virtual std::vector getIniFileNames();
diff --git a/src/shared/falloutnvinfo.cpp b/src/shared/falloutnvinfo.cpp
index 366c72c3..1715912d 100644
--- a/src/shared/falloutnvinfo.cpp
+++ b/src/shared/falloutnvinfo.cpp
@@ -127,13 +127,16 @@ std::vector FalloutNVInfo::getDLCPlugins()
;
}
+std::vector FalloutNVInfo::getSavegameAttachmentExtensions()
+{
+ return std::vector();
+}
std::vector FalloutNVInfo::getIniFileNames()
{
return boost::assign::list_of(L"fallout.ini")(L"falloutprefs.ini");
}
-
std::wstring FalloutNVInfo::getSaveGameExtension()
{
return L"*.fos";
diff --git a/src/shared/falloutnvinfo.h b/src/shared/falloutnvinfo.h
index e6f6b5d0..4de67a19 100644
--- a/src/shared/falloutnvinfo.h
+++ b/src/shared/falloutnvinfo.h
@@ -61,6 +61,7 @@ public:
virtual std::vector getVanillaBSAs();
virtual std::vector getDLCPlugins();
+ virtual std::vector getSavegameAttachmentExtensions();
// file name of this games ini (no path)
virtual std::vector getIniFileNames();
diff --git a/src/shared/gameinfo.h b/src/shared/gameinfo.h
index 69cd38f6..33467cb9 100644
--- a/src/shared/gameinfo.h
+++ b/src/shared/gameinfo.h
@@ -130,6 +130,9 @@ public:
virtual std::vector getVanillaBSAs() = 0;
+ // get a list of file extensions for additional files belonging to a save game
+ virtual std::vector getSavegameAttachmentExtensions() = 0;
+
// get a set of esp/esm files that are part of known dlcs
virtual std::vector getDLCPlugins() = 0;
diff --git a/src/shared/oblivioninfo.cpp b/src/shared/oblivioninfo.cpp
index 85f31042..532e49b8 100644
--- a/src/shared/oblivioninfo.cpp
+++ b/src/shared/oblivioninfo.cpp
@@ -133,6 +133,12 @@ std::vector OblivionInfo::getDLCPlugins()
}
+std::vector OblivionInfo::getSavegameAttachmentExtensions()
+{
+ return boost::assign::list_of(L"obse");
+}
+
+
std::vector OblivionInfo::getIniFileNames()
{
return boost::assign::list_of(L"oblivion.ini")(L"oblivionprefs.ini");
diff --git a/src/shared/oblivioninfo.h b/src/shared/oblivioninfo.h
index f9c8fa47..121cad43 100644
--- a/src/shared/oblivioninfo.h
+++ b/src/shared/oblivioninfo.h
@@ -57,6 +57,7 @@ public:
virtual std::vector getVanillaBSAs();
virtual std::vector getDLCPlugins();
+ virtual std::vector getSavegameAttachmentExtensions();
// file name of this games ini (no path)
virtual std::vector getIniFileNames();
diff --git a/src/shared/skyriminfo.cpp b/src/shared/skyriminfo.cpp
index 5711e2fd..5017da38 100644
--- a/src/shared/skyriminfo.cpp
+++ b/src/shared/skyriminfo.cpp
@@ -158,6 +158,11 @@ std::vector SkyrimInfo::getDLCPlugins()
;
}
+std::vector SkyrimInfo::getSavegameAttachmentExtensions()
+{
+ return boost::assign::list_of(L"skse");
+}
+
std::vector SkyrimInfo::getIniFileNames()
{
return boost::assign::list_of(L"skyrim.ini")(L"skyrimprefs.ini");
diff --git a/src/shared/skyriminfo.h b/src/shared/skyriminfo.h
index 2794555f..3b3b6d8e 100644
--- a/src/shared/skyriminfo.h
+++ b/src/shared/skyriminfo.h
@@ -65,6 +65,8 @@ public:
virtual std::vector getVanillaBSAs();
virtual std::vector getDLCPlugins();
+ virtual std::vector getSavegameAttachmentExtensions();
+
// file name of this games ini (no path)
virtual std::vector getIniFileNames();
--
cgit v1.3.1
From e24f3fef770d250a40290a65bebd17f66121fc29 Mon Sep 17 00:00:00 2001
From: Tannin
Date: Thu, 17 Jul 2014 20:04:22 +0200
Subject: - bugfix: broke qt4 compatibility in trying to support qt5 - bugfix:
overwrite dialog displayed system drives if the overwrite directory didn't
exist - bugfix: ini tweak activation wasn't saved
---
src/mainwindow.cpp | 22 ++++++++++++++--------
src/modinfodialog.cpp | 2 +-
src/overwriteinfodialog.cpp | 18 +++++++++++++-----
src/overwriteinfodialog.h | 2 ++
src/shared/directoryentry.cpp | 2 +-
5 files changed, 31 insertions(+), 15 deletions(-)
(limited to 'src/shared')
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 19cefa89..cf283b49 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -3221,14 +3221,20 @@ void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index,
std::vector flags = modInfo->getFlags();
if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end()) {
QDialog *dialog = this->findChild("__overwriteDialog");
- if (dialog == NULL) {
- dialog = new OverwriteInfoDialog(modInfo, this);
- dialog->setObjectName("__overwriteDialog");
- }
- dialog->show();
- dialog->raise();
- dialog->activateWindow();
- connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int)));
+ try {
+ if (dialog == NULL) {
+ dialog = new OverwriteInfoDialog(modInfo, this);
+ dialog->setObjectName("__overwriteDialog");
+ } else {
+ qobject_cast(dialog)->setModInfo(modInfo);
+ }
+ dialog->show();
+ dialog->raise();
+ dialog->activateWindow();
+ connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int)));
+ } catch (const std::exception &e) {
+ reportError(tr("Failed to display overwrite dialog: %1").arg(e.what()));
+ }
} else {
modInfo->saveMeta();
ModInfoDialog dialog(modInfo, m_DirectoryStructure, modInfo->hasFlag(ModInfo::FLAG_FOREIGN), this);
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index 02ba0d38..96a575a0 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -104,7 +104,6 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo
ui->tabWidget->setTabEnabled(TAB_IMAGES, false);
} else {
initFiletree(modInfo);
- initINITweaks();
addCategories(CategoryFactory::instance(), modInfo->getCategories(), ui->categoriesTree->invisibleRootItem(), 0);
refreshPrimaryCategoriesBox();
ui->tabWidget->setTabEnabled(TAB_TEXTFILES, ui->textFileList->count() != 0);
@@ -112,6 +111,7 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo
ui->tabWidget->setTabEnabled(TAB_ESPS, (ui->inactiveESPList->count() != 0) || (ui->activeESPList->count() != 0));
}
refreshLists();
+ initINITweaks();
ui->tabWidget->setTabEnabled(TAB_CONFLICTS, m_Origin != NULL);
diff --git a/src/overwriteinfodialog.cpp b/src/overwriteinfodialog.cpp
index 2ba81633..16242506 100644
--- a/src/overwriteinfodialog.cpp
+++ b/src/overwriteinfodialog.cpp
@@ -72,19 +72,17 @@ 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_ModInfo(modInfo)
+ m_DeleteAction(NULL), m_RenameAction(NULL), m_OpenAction(NULL)
{
ui->setupUi(this);
this->setWindowModality(Qt::NonModal);
- QString path = modInfo->absolutePath();
m_FileSystemModel = new MyFileSystemModel(this);
m_FileSystemModel->setReadOnly(false);
- m_FileSystemModel->setRootPath(path);
+ setModInfo(modInfo);
ui->filesView->setModel(m_FileSystemModel);
- ui->filesView->setRootIndex(m_FileSystemModel->index(path));
+ ui->filesView->setRootIndex(m_FileSystemModel->index(modInfo->absolutePath()));
ui->filesView->setColumnWidth(0, 250);
m_DeleteAction = new QAction(tr("&Delete"), ui->filesView);
@@ -102,6 +100,16 @@ OverwriteInfoDialog::~OverwriteInfoDialog()
delete ui;
}
+void OverwriteInfoDialog::setModInfo(ModInfo::Ptr modInfo)
+{
+ m_ModInfo = modInfo;
+ if (QDir(modInfo->absolutePath()).exists()) {
+ m_FileSystemModel->setRootPath(modInfo->absolutePath());
+ } else {
+ throw MyException(tr("%1 not found").arg(modInfo->absolutePath()));
+ }
+}
+
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 34e86219..0726f1f9 100644
--- a/src/overwriteinfodialog.h
+++ b/src/overwriteinfodialog.h
@@ -39,6 +39,8 @@ public:
ModInfo::Ptr modInfo() const { return m_ModInfo; }
+ void setModInfo(ModInfo::Ptr modInfo);
+
private:
void openFile(const QModelIndex &index);
diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp
index 87431ea8..aead0cca 100644
--- a/src/shared/directoryentry.cpp
+++ b/src/shared/directoryentry.cpp
@@ -499,7 +499,7 @@ static bool SupportOptimizedFind()
::VerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL),
VER_MINORVERSION, VER_GREATER_EQUAL);
- bool res = ::VerifyVersionInfo(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, mask);
+ bool res = ::VerifyVersionInfo(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, mask) == TRUE;
return res;
}
--
cgit v1.3.1
From f6ef5477e718b14af99bd22436f66dee0b9d22cd Mon Sep 17 00:00:00 2001
From: Tannin
Date: Thu, 17 Jul 2014 22:02:15 +0200
Subject: normalized eol style (all files should now have windows line endings)
---
src/activatemodsdialog.cpp | 194 +-
src/activatemodsdialog.h | 140 +-
src/bbcode.cpp | 468 +-
src/bbcode.h | 80 +-
src/browserdialog.cpp | 540 +-
src/browserdialog.h | 248 +-
src/browserview.cpp | 152 +-
src/browserview.h | 160 +-
src/categories.cpp | 602 +-
src/categories.h | 400 +-
src/categoriesdialog.cpp | 486 +-
src/categoriesdialog.h | 142 +-
src/credentialsdialog.cpp | 38 +-
src/credentialsdialog.h | 38 +-
src/directoryrefresher.cpp | 312 +-
src/directoryrefresher.h | 294 +-
src/downloadlist.cpp | 228 +-
src/downloadlist.h | 192 +-
src/downloadlistsortproxy.cpp | 130 +-
src/downloadlistsortproxy.h | 84 +-
src/downloadlistwidget.cpp | 702 +--
src/downloadlistwidget.h | 242 +-
src/downloadlistwidgetcompact.cpp | 682 +--
src/downloadlistwidgetcompact.h | 244 +-
src/downloadmanager.cpp | 2942 ++++-----
src/downloadmanager.h | 984 +--
src/dummybsa.cpp | 488 +-
src/dummybsa.h | 38 +-
src/editexecutablesdialog.cpp | 578 +-
src/editexecutablesdialog.h | 196 +-
src/executableslist.cpp | 406 +-
src/executableslist.h | 310 +-
src/filedialogmemory.cpp | 188 +-
src/filedialogmemory.h | 38 +-
src/gameinfoimpl.cpp | 108 +-
src/gameinfoimpl.h | 78 +-
src/helper.cpp | 38 +-
src/helper.h | 38 +-
src/icondelegate.cpp | 140 +-
src/icondelegate.h | 104 +-
src/installationmanager.cpp | 1604 ++---
src/installationmanager.h | 432 +-
src/json.cpp | 1044 ++--
src/json.h | 188 +-
src/loadmechanism.cpp | 580 +-
src/loadmechanism.h | 38 +-
src/lockeddialog.cpp | 150 +-
src/lockeddialog.h | 134 +-
src/logbuffer.cpp | 522 +-
src/logbuffer.h | 198 +-
src/loghighlighter.cpp | 38 +-
src/loghighlighter.h | 38 +-
src/main.cpp | 1162 ++--
src/mainwindow.cpp | 11202 +++++++++++++++++------------------
src/mainwindow.h | 1230 ++--
src/messagedialog.cpp | 184 +-
src/messagedialog.h | 134 +-
src/moapplication.cpp | 296 +-
src/moapplication.h | 102 +-
src/modeltest.cpp | 1166 ++--
src/modeltest.h | 188 +-
src/modinfo.cpp | 2006 +++----
src/modinfo.h | 2056 +++----
src/modinfodialog.cpp | 2512 ++++----
src/modinfodialog.h | 474 +-
src/modlist.cpp | 1986 +++----
src/modlist.h | 586 +-
src/modlistsortproxy.cpp | 752 +--
src/modlistsortproxy.h | 242 +-
src/motddialog.cpp | 98 +-
src/motddialog.h | 66 +-
src/nexusinterface.cpp | 1244 ++--
src/nexusinterface.h | 644 +-
src/nxmaccessmanager.cpp | 424 +-
src/nxmaccessmanager.h | 206 +-
src/overwriteinfodialog.cpp | 520 +-
src/overwriteinfodialog.h | 146 +-
src/pluginlist.cpp | 2318 ++++----
src/pluginlist.h | 688 +--
src/pluginlistsortproxy.cpp | 304 +-
src/pluginlistsortproxy.h | 142 +-
src/profile.cpp | 1564 ++---
src/profile.h | 660 +--
src/profileinputdialog.cpp | 96 +-
src/profileinputdialog.h | 38 +-
src/profilesdialog.cpp | 640 +-
src/profilesdialog.h | 192 +-
src/queryoverwritedialog.cpp | 38 +-
src/queryoverwritedialog.h | 38 +-
src/report.cpp | 106 +-
src/report.h | 38 +-
src/savegame.cpp | 212 +-
src/savegame.h | 262 +-
src/savegamegamebryo.cpp | 676 +--
src/savegamegamebyro.h | 204 +-
src/savegameinfowidget.cpp | 124 +-
src/savegameinfowidget.h | 38 +-
src/savegameinfowidgetgamebryo.cpp | 146 +-
src/savegameinfowidgetgamebryo.h | 38 +-
src/selectiondialog.cpp | 166 +-
src/selectiondialog.h | 136 +-
src/selfupdater.cpp | 932 +--
src/selfupdater.h | 290 +-
src/settings.cpp | 1542 ++---
src/settings.h | 626 +-
src/settingsdialog.cpp | 346 +-
src/settingsdialog.h | 168 +-
src/shared/appconfig.cpp | 2 +-
src/shared/inject.h | 62 +-
src/singleinstance.cpp | 214 +-
src/singleinstance.h | 38 +-
src/spawn.cpp | 422 +-
src/spawn.h | 136 +-
src/syncoverwritedialog.cpp | 332 +-
src/syncoverwritedialog.h | 110 +-
src/transfersavesdialog.cpp | 656 +-
src/transfersavesdialog.h | 164 +-
117 files changed, 31484 insertions(+), 31484 deletions(-)
(limited to 'src/shared')
diff --git a/src/activatemodsdialog.cpp b/src/activatemodsdialog.cpp
index 8d463fba..be6eef54 100644
--- a/src/activatemodsdialog.cpp
+++ b/src/activatemodsdialog.cpp
@@ -1,97 +1,97 @@
-/*
-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 "activatemodsdialog.h"
-#include "ui_activatemodsdialog.h"
-
-#include
-#include
-
-ActivateModsDialog::ActivateModsDialog(const std::map > &missingPlugins, QWidget *parent)
- : TutorableDialog("ActivateMods", parent), ui(new Ui::ActivateModsDialog)
-{
- ui->setupUi(this);
-
- QTableWidget *modsTable = findChild("modsTable");
- QHeaderView *headerView = modsTable->horizontalHeader();
-#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
- headerView->setSectionResizeMode(0, QHeaderView::Stretch);
- headerView->setSectionResizeMode(1, QHeaderView::Interactive);
-#else
- headerView->setResizeMode(0, QHeaderView::Stretch);
- headerView->setResizeMode(1, QHeaderView::Interactive);
-#endif
-
- int row = 0;
-
- modsTable->setRowCount(missingPlugins.size());
-
- for (std::map >::const_iterator espIter = missingPlugins.begin();
- espIter != missingPlugins.end(); ++espIter, ++row) {
- modsTable->setCellWidget(row, 0, new QLabel(espIter->first));
- if (espIter->second.size() == 0) {
- modsTable->setCellWidget(row, 1, new QLabel(tr("not found")));
- } else {
- QComboBox* combo = new QComboBox();
- for (std::vector::const_iterator modIter = espIter->second.begin();
- modIter != espIter->second.end(); ++modIter) {
- combo->addItem(*modIter);
- }
- modsTable->setCellWidget(row, 1, combo);
- }
- }
-}
-
-
-ActivateModsDialog::~ActivateModsDialog()
-{
- delete ui;
-}
-
-
-std::set ActivateModsDialog::getModsToActivate()
-{
- std::set result;
- QTableWidget *modsTable = findChild("modsTable");
-
- for (int row = 0; row < modsTable->rowCount(); ++row) {
- QComboBox *comboBox = dynamic_cast(modsTable->cellWidget(row, 1));
- if (comboBox != NULL) {
- result.insert(comboBox->currentText());
- }
- }
- return result;
-}
-
-
-std::set ActivateModsDialog::getESPsToActivate()
-{
- std::set result;
- QTableWidget *modsTable = findChild("modsTable");
-
- for (int row = 0; row < modsTable->rowCount(); ++row) {
- QComboBox *comboBox = dynamic_cast(modsTable->cellWidget(row, 1));
- if (comboBox != NULL) {
- QLabel *espName = dynamic_cast(modsTable->cellWidget(row, 0));
-
- result.insert(espName->text());
- }
- }
- return result;
-}
+/*
+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 "activatemodsdialog.h"
+#include "ui_activatemodsdialog.h"
+
+#include
+#include
+
+ActivateModsDialog::ActivateModsDialog(const std::map > &missingPlugins, QWidget *parent)
+ : TutorableDialog("ActivateMods", parent), ui(new Ui::ActivateModsDialog)
+{
+ ui->setupUi(this);
+
+ QTableWidget *modsTable = findChild("modsTable");
+ QHeaderView *headerView = modsTable->horizontalHeader();
+#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
+ headerView->setSectionResizeMode(0, QHeaderView::Stretch);
+ headerView->setSectionResizeMode(1, QHeaderView::Interactive);
+#else
+ headerView->setResizeMode(0, QHeaderView::Stretch);
+ headerView->setResizeMode(1, QHeaderView::Interactive);
+#endif
+
+ int row = 0;
+
+ modsTable->setRowCount(missingPlugins.size());
+
+ for (std::map >::const_iterator espIter = missingPlugins.begin();
+ espIter != missingPlugins.end(); ++espIter, ++row) {
+ modsTable->setCellWidget(row, 0, new QLabel(espIter->first));
+ if (espIter->second.size() == 0) {
+ modsTable->setCellWidget(row, 1, new QLabel(tr("not found")));
+ } else {
+ QComboBox* combo = new QComboBox();
+ for (std::vector::const_iterator modIter = espIter->second.begin();
+ modIter != espIter->second.end(); ++modIter) {
+ combo->addItem(*modIter);
+ }
+ modsTable->setCellWidget(row, 1, combo);
+ }
+ }
+}
+
+
+ActivateModsDialog::~ActivateModsDialog()
+{
+ delete ui;
+}
+
+
+std::set ActivateModsDialog::getModsToActivate()
+{
+ std::set result;
+ QTableWidget *modsTable = findChild("modsTable");
+
+ for (int row = 0; row < modsTable->rowCount(); ++row) {
+ QComboBox *comboBox = dynamic_cast(modsTable->cellWidget(row, 1));
+ if (comboBox != NULL) {
+ result.insert(comboBox->currentText());
+ }
+ }
+ return result;
+}
+
+
+std::set ActivateModsDialog::getESPsToActivate()
+{
+ std::set result;
+ QTableWidget *modsTable = findChild("modsTable");
+
+ for (int row = 0; row < modsTable->rowCount(); ++row) {
+ QComboBox *comboBox = dynamic_cast(modsTable->cellWidget(row, 1));
+ if (comboBox != NULL) {
+ QLabel *espName = dynamic_cast(modsTable->cellWidget(row, 0));
+
+ result.insert(espName->text());
+ }
+ }
+ return result;
+}
diff --git a/src/activatemodsdialog.h b/src/activatemodsdialog.h
index 845167aa..08dbad8d 100644
--- a/src/activatemodsdialog.h
+++ b/src/activatemodsdialog.h
@@ -1,70 +1,70 @@
-/*
-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 ACTIVATEMODSDIALOG_H
-#define ACTIVATEMODSDIALOG_H
-
-#include "tutorabledialog.h"
-#include
");
-
- // web content
- m_TagMap["url"] = std::make_pair(QRegExp("\\[url\\](.*)\\[/url\\]"),
- "\\1");
- m_TagMap["url="] = std::make_pair(QRegExp("\\[url=([^\\]]*)\\](.*)\\[/url\\]"),
- "\\2");
- m_TagMap["img"] = std::make_pair(QRegExp("\\[img\\](.*)\\[/img\\]"), " ");
- m_TagMap["img="] = std::make_pair(QRegExp("\\[img=([^\\]]*)\\](.*)\\[/img\\]"), " ");
- m_TagMap["email="] = std::make_pair(QRegExp("\\[email=\"?([^\\]]*)\"?\\](.*)\\[/email\\]"),
- "\\2");
- m_TagMap["youtube"] = std::make_pair(QRegExp("\\[youtube\\](.*)\\[/youtube\\]"),
- "http://www.youtube.com/v/\\1");
-
- m_ColorMap.insert(std::make_pair("red", "FF0000"));
- m_ColorMap.insert(std::make_pair("green", "00FF00"));
- m_ColorMap.insert(std::make_pair("blue", "0000FF"));
- m_ColorMap.insert(std::make_pair("black", "000000"));
- m_ColorMap.insert(std::make_pair("gray", "7F7F7F"));
- m_ColorMap.insert(std::make_pair("white", "FFFFFF"));
- m_ColorMap.insert(std::make_pair("yellow", "FFFF00"));
- m_ColorMap.insert(std::make_pair("cyan", "00FFFF"));
- m_ColorMap.insert(std::make_pair("magenta", "FF00FF"));
- m_ColorMap.insert(std::make_pair("brown", "A52A2A"));
- m_ColorMap.insert(std::make_pair("orange", "FFCC00"));
-
- // make all patterns non-greedy and case-insensitive
- for (TagMap::iterator iter = m_TagMap.begin(); iter != m_TagMap.end(); ++iter) {
- iter->second.first.setCaseSensitivity(Qt::CaseInsensitive);
- iter->second.first.setMinimal(true);
- }
- }
-
-private:
-
- QRegExp m_TagNameExp;
- TagMap m_TagMap;
- std::map m_ColorMap;
-};
-
-
-QString convertToHTML(const QString &inputParam)
-{
- // this code goes over the input string once and replaces all bbtags
- // it encounters. This function is called recursively for every replaced
- // string to convert nested tags.
- //
- // This could be implemented simpler by applying a set of regular expressions
- // for each recognized bb-tag one after the other but that would probably be
- // very inefficient (O(n^2)).
-
- QString input = inputParam.mid(0).replace("\r\n", " ");
- input.replace("\\\"", "\"").replace("\\'", "'");
-
- QString result;
- int lastBlock = 0;
- int pos = 0;
-
- // iterate over the input buffer
- while ((pos = input.indexOf('[', lastBlock)) != -1) {
- // append everything between the previous tag-block and the current one
- result.append(input.midRef(lastBlock, pos - lastBlock));
-
- // convert the tag and content if necessary
- int length = -1;
- QString replacement = BBCodeMap::instance().convertTag(input.mid(pos), length);
- if (length != 0) {
- QString temp = convertToHTML(replacement);
- result.append(temp);
- // length contains the number of characters in the original tag
- pos += length;
- } else {
- // nothing replaced
- result.append('[');
- ++pos;
- }
- lastBlock = pos;
- }
-
- // append the remainder (everything after the last tag)
- result.append(input.midRef(lastBlock));
- return result;
-}
-
-} // namespace BBCode
-
+/*
+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 "bbcode.h"
+
+#include
+#include
+#include
+#include
+
+
+namespace BBCode {
+
+
+class BBCodeMap {
+
+ typedef std::map > TagMap;
+
+public:
+
+ static BBCodeMap &instance() {
+ static BBCodeMap s_Instance;
+ return s_Instance;
+ }
+
+ QString convertTag(const QString &input, int &length)
+ {
+ // extract the tag name
+ m_TagNameExp.indexIn(input, 1, QRegExp::CaretAtOffset);
+ QString tagName = m_TagNameExp.cap(0).toLower();
+ TagMap::iterator tagIter = m_TagMap.find(tagName);
+ if (tagIter != m_TagMap.end()) {
+ // recognized tag
+ if (tagName.endsWith('=')) {
+ tagName.chop(1);
+ }
+ QString closeTag = tagName == "*" ? " "
+ : QString("[/%1]").arg(tagName);
+
+ int closeTagPos = input.indexOf(closeTag, 0, Qt::CaseInsensitive);
+ //qDebug("close tag %s at %d", closeTag.toUtf8().constData(), closeTagPos);
+
+ if (closeTagPos > -1) {
+ length = closeTagPos + closeTag.length();
+ QString temp = input.mid(0, length);
+ if (tagIter->second.first.indexIn(temp) == 0) {
+ if (tagIter->second.second.isEmpty()) {
+ if (tagName == "color") {
+ QString color = tagIter->second.first.cap(1);
+ QString content = tagIter->second.first.cap(2);
+ auto colIter = m_ColorMap.find(color.toLower());
+ if (colIter != m_ColorMap.end()) {
+ color = colIter->second;
+ }
+ return temp.replace(tagIter->second.first, QString("%2").arg(color, content));
+ } else {
+ qWarning("don't know how to deal with tag %s", qPrintable(tagName));
+ }
+ } else {
+ return temp.replace(tagIter->second.first, tagIter->second.second);
+ }
+ } else {
+ // expression doesn't match. either the input string is invalid
+ // or the expression is
+ qWarning("%s doesn't match the expression for %s",
+ temp.toUtf8().constData(), tagName.toUtf8().constData());
+ length = 0;
+ return QString();
+ }
+ }
+ }
+
+ // not a recognized tag or tag invalid
+ length = 0;
+ return QString();
+ }
+
+private:
+ BBCodeMap()
+ : m_TagNameExp("^[a-zA-Z*]*=?")
+ {
+ m_TagMap["b"] = std::make_pair(QRegExp("\\[b\\](.*)\\[/b\\]"),
+ "\\1");
+ m_TagMap["i"] = std::make_pair(QRegExp("\\[i\\](.*)\\[/i\\]"),
+ "\\1");
+ m_TagMap["u"] = std::make_pair(QRegExp("\\[u\\](.*)\\[/u\\]"),
+ "\\1");
+ m_TagMap["s"] = std::make_pair(QRegExp("\\[s\\](.*)\\[/s\\]"),
+ "\\1");
+ m_TagMap["sub"] = std::make_pair(QRegExp("\\[sub\\](.*)\\[/sub\\]"),
+ "\\1");
+ m_TagMap["sup"] = std::make_pair(QRegExp("\\[sup\\](.*)\\[/sup\\]"),
+ "\\1");
+ m_TagMap["size="] = std::make_pair(QRegExp("\\[size=([^\\]]*)\\](.*)\\[/size\\]"),
+ "\\2");
+ m_TagMap["color="] = std::make_pair(QRegExp("\\[color=([^\\]]*)\\](.*)\\[/color\\]"),
+ "");
+ m_TagMap["font="] = std::make_pair(QRegExp("\\[font=([^\\]]*)\\](.*)\\[/font\\]"),
+ "\\2");
+ m_TagMap["center"] = std::make_pair(QRegExp("\\[center\\](.*)\\[/center\\]"),
+ "
");
+
+ // web content
+ m_TagMap["url"] = std::make_pair(QRegExp("\\[url\\](.*)\\[/url\\]"),
+ "\\1");
+ m_TagMap["url="] = std::make_pair(QRegExp("\\[url=([^\\]]*)\\](.*)\\[/url\\]"),
+ "\\2");
+ m_TagMap["img"] = std::make_pair(QRegExp("\\[img\\](.*)\\[/img\\]"), " ");
+ m_TagMap["img="] = std::make_pair(QRegExp("\\[img=([^\\]]*)\\](.*)\\[/img\\]"), " ");
+ m_TagMap["email="] = std::make_pair(QRegExp("\\[email=\"?([^\\]]*)\"?\\](.*)\\[/email\\]"),
+ "\\2");
+ m_TagMap["youtube"] = std::make_pair(QRegExp("\\[youtube\\](.*)\\[/youtube\\]"),
+ "http://www.youtube.com/v/\\1");
+
+ m_ColorMap.insert(std::make_pair("red", "FF0000"));
+ m_ColorMap.insert(std::make_pair("green", "00FF00"));
+ m_ColorMap.insert(std::make_pair("blue", "0000FF"));
+ m_ColorMap.insert(std::make_pair("black", "000000"));
+ m_ColorMap.insert(std::make_pair("gray", "7F7F7F"));
+ m_ColorMap.insert(std::make_pair("white", "FFFFFF"));
+ m_ColorMap.insert(std::make_pair("yellow", "FFFF00"));
+ m_ColorMap.insert(std::make_pair("cyan", "00FFFF"));
+ m_ColorMap.insert(std::make_pair("magenta", "FF00FF"));
+ m_ColorMap.insert(std::make_pair("brown", "A52A2A"));
+ m_ColorMap.insert(std::make_pair("orange", "FFCC00"));
+
+ // make all patterns non-greedy and case-insensitive
+ for (TagMap::iterator iter = m_TagMap.begin(); iter != m_TagMap.end(); ++iter) {
+ iter->second.first.setCaseSensitivity(Qt::CaseInsensitive);
+ iter->second.first.setMinimal(true);
+ }
+ }
+
+private:
+
+ QRegExp m_TagNameExp;
+ TagMap m_TagMap;
+ std::map m_ColorMap;
+};
+
+
+QString convertToHTML(const QString &inputParam)
+{
+ // this code goes over the input string once and replaces all bbtags
+ // it encounters. This function is called recursively for every replaced
+ // string to convert nested tags.
+ //
+ // This could be implemented simpler by applying a set of regular expressions
+ // for each recognized bb-tag one after the other but that would probably be
+ // very inefficient (O(n^2)).
+
+ QString input = inputParam.mid(0).replace("\r\n", " ");
+ input.replace("\\\"", "\"").replace("\\'", "'");
+
+ QString result;
+ int lastBlock = 0;
+ int pos = 0;
+
+ // iterate over the input buffer
+ while ((pos = input.indexOf('[', lastBlock)) != -1) {
+ // append everything between the previous tag-block and the current one
+ result.append(input.midRef(lastBlock, pos - lastBlock));
+
+ // convert the tag and content if necessary
+ int length = -1;
+ QString replacement = BBCodeMap::instance().convertTag(input.mid(pos), length);
+ if (length != 0) {
+ QString temp = convertToHTML(replacement);
+ result.append(temp);
+ // length contains the number of characters in the original tag
+ pos += length;
+ } else {
+ // nothing replaced
+ result.append('[');
+ ++pos;
+ }
+ lastBlock = pos;
+ }
+
+ // append the remainder (everything after the last tag)
+ result.append(input.midRef(lastBlock));
+ return result;
+}
+
+} // namespace BBCode
+
diff --git a/src/bbcode.h b/src/bbcode.h
index 0d4d8003..f88e9a6c 100644
--- a/src/bbcode.h
+++ b/src/bbcode.h
@@ -1,40 +1,40 @@
-/*
-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 BBCODE_H
-#define BBCODE_H
-
-
-#include
-
-
-namespace BBCode {
-
-/**
- * @brief convert a string with BB Code-Tags to HTML
- * @param input the input string with BB tags
- * @param replaceOccured if not NULL, this parameter will be set to true if any bb tags were replaced
- * @return the same string in html representation
- **/
-QString convertToHTML(const QString &input);
-
-}
-
-
-#endif // BBCODE_H
+/*
+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 BBCODE_H
+#define BBCODE_H
+
+
+#include
+
+
+namespace BBCode {
+
+/**
+ * @brief convert a string with BB Code-Tags to HTML
+ * @param input the input string with BB tags
+ * @param replaceOccured if not NULL, this parameter will be set to true if any bb tags were replaced
+ * @return the same string in html representation
+ **/
+QString convertToHTML(const QString &input);
+
+}
+
+
+#endif // BBCODE_H
diff --git a/src/browserdialog.cpp b/src/browserdialog.cpp
index 4aa4e969..4897ea4f 100644
--- a/src/browserdialog.cpp
+++ b/src/browserdialog.cpp
@@ -1,270 +1,270 @@
-/*
-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 "browserdialog.h"
-#include "ui_browserdialog.h"
-
-#include "messagedialog.h"
-#include "report.h"
-#include "json.h"
-#include "persistentcookiejar.h"
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-
-
-BrowserDialog::BrowserDialog(QWidget *parent)
- : QDialog(parent)
- , ui(new Ui::BrowserDialog)
- , m_AccessManager(new QNetworkAccessManager(this))
-{
- ui->setupUi(this);
-
- m_AccessManager->setCookieJar(new PersistentCookieJar(
- QDir::fromNativeSeparators(MOBase::ToQString(MOShared::GameInfo::instance().getCacheDir())) + "/cookies.dat", this));
-
- Qt::WindowFlags flags = windowFlags() | Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint;
- Qt::WindowFlags helpFlag = Qt::WindowContextHelpButtonHint;
- flags = flags & (~helpFlag);
- setWindowFlags(flags);
-
- m_Tabs = this->findChild("browserTabWidget");
-
- connect(m_Tabs, SIGNAL(tabCloseRequested(int)), this, SLOT(tabCloseRequested(int)));
-}
-
-
-BrowserDialog::~BrowserDialog()
-{
- delete ui;
-}
-
-void BrowserDialog::closeEvent(QCloseEvent *event)
-{
-// m_AccessManager->showCookies();
- QDialog::closeEvent(event);
-}
-
-void BrowserDialog::initTab(BrowserView *newView)
-{
- newView->page()->setNetworkAccessManager(m_AccessManager);
- newView->page()->setForwardUnsupportedContent(true);
-
- connect(newView, SIGNAL(loadProgress(int)), this, SLOT(progress(int)));
- connect(newView, SIGNAL(titleChanged(QString)), this, SLOT(titleChanged(QString)));
- connect(newView, SIGNAL(initTab(BrowserView*)), this, SLOT(initTab(BrowserView*)));
- connect(newView, SIGNAL(startFind()), this, SLOT(startSearch()));
- connect(newView, SIGNAL(urlChanged(QUrl)), this, SLOT(urlChanged(QUrl)));
- connect(newView, SIGNAL(openUrlInNewTab(QUrl)), this, SLOT(openInNewTab(QUrl)));
- connect(newView->page(), SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(downloadRequested(QNetworkRequest)));
- connect(newView->page(), SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedContent(QNetworkReply*)));
-
- ui->backBtn->setEnabled(false);
- ui->fwdBtn->setEnabled(false);
- m_Tabs->addTab(newView, tr("new"));
- newView->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
- newView->settings()->setAttribute(QWebSettings::AutoLoadImages, true);
-}
-
-
-void BrowserDialog::openInNewTab(const QUrl &url)
-{
- BrowserView *newView = new BrowserView(this);
- initTab(newView);
- newView->setUrl(url);
-}
-
-
-BrowserView *BrowserDialog::getCurrentView()
-{
- return qobject_cast(m_Tabs->currentWidget());
-}
-
-
-void BrowserDialog::urlChanged(const QUrl&)
-{
- BrowserView *currentView = getCurrentView();
- if (currentView != NULL) {
- ui->backBtn->setEnabled(currentView->history()->canGoBack());
- ui->fwdBtn->setEnabled(currentView->history()->canGoForward());
- }
-}
-
-
-void BrowserDialog::openUrl(const QUrl &url)
-{
- if (isHidden()) {
- show();
- }
- openInNewTab(url);
-}
-
-
-void BrowserDialog::maximizeWidth()
-{
- int viewportWidth = getCurrentView()->page()->viewportSize().width();
- int frameWidth = width() - viewportWidth;
-
- int contentWidth = getCurrentView()->page()->mainFrame()->contentsSize().width();
-
- QDesktopWidget screen;
- int currentScreen = screen.screenNumber(this);
- int screenWidth = screen.screenGeometry(currentScreen).size().width();
-
- int targetWidth = std::min(std::max(viewportWidth, contentWidth) + frameWidth, screenWidth);
- this->resize(targetWidth, height());
-}
-
-
-void BrowserDialog::progress(int value)
-{
- ui->loadProgress->setValue(value);
- if (value == 100) {
- maximizeWidth();
- ui->loadProgress->setVisible(false);
- } else {
- ui->loadProgress->setVisible(true);
- }
-}
-
-
-void BrowserDialog::titleChanged(const QString &title)
-{
- BrowserView *view = qobject_cast(sender());
- for (int i = 0; i < m_Tabs->count(); ++i) {
- if (m_Tabs->widget(i) == view) {
- m_Tabs->setTabText(i, title.mid(0, 15));
- m_Tabs->setTabToolTip(i, title);
- }
- }
-}
-
-
-QString BrowserDialog::guessFileName(const QString &url)
-{
- QRegExp uploadsExp(QString("http://.+/uploads/([^/]+)$"));
- if (uploadsExp.indexIn(url) != -1) {
- // these seem to be premium downloads
- return uploadsExp.cap(1);
- }
-
- QRegExp filesExp(QString("http://.+\\?file=([^&]+)"));
- if (filesExp.indexIn(url) != -1) {
- // a regular manual download?
- return filesExp.cap(1);
- }
- return "unknown";
-}
-
-void BrowserDialog::unsupportedContent(QNetworkReply *reply)
-{
- try {
- QWebPage *page = qobject_cast(sender());
- if (page == NULL) {
- qCritical("sender not a page");
- return;
- }
- BrowserView *view = qobject_cast(page->view());
- if (view == NULL) {
- qCritical("no view?");
- return;
- }
-
- qDebug("unsupported: %s - %s", view->url().toString().toUtf8().constData(), reply->url().toString().toUtf8().constData());
- emit requestDownload(view->url(), reply);
- } catch (const std::exception &e) {
- if (isVisible()) {
- MessageDialog::showMessage(tr("failed to start download"), this);
- }
- qCritical("exception downloading unsupported content: %s", e.what());
- }
-}
-
-
-void BrowserDialog::downloadRequested(const QNetworkRequest &request)
-{
- qCritical("download request %s ignored", request.url().toString().toUtf8().constData());
-}
-
-
-void BrowserDialog::tabCloseRequested(int index)
-{
- if (m_Tabs->count() == 1) {
- this->close();
- } else {
- m_Tabs->widget(index)->deleteLater();
- m_Tabs->removeTab(index);
- }
-}
-
-void BrowserDialog::on_backBtn_clicked()
-{
- BrowserView *currentView = getCurrentView();
- if (currentView != NULL) {
- currentView->back();
- }
-}
-
-void BrowserDialog::on_fwdBtn_clicked()
-{
- BrowserView *currentView = getCurrentView();
- if (currentView != NULL) {
- currentView->forward();
- }
-}
-
-
-void BrowserDialog::startSearch()
-{
- ui->searchEdit->setFocus();
-}
-
-
-void BrowserDialog::on_searchEdit_returnPressed()
-{
- BrowserView *currentView = getCurrentView();
- if (currentView != NULL) {
- currentView->findText(ui->searchEdit->text(), QWebPage::FindWrapsAroundDocument);
- }
-}
-
-void BrowserDialog::on_refreshBtn_clicked()
-{
- getCurrentView()->reload();
-}
-
-void BrowserDialog::on_browserTabWidget_currentChanged(int index)
-{
- BrowserView *currentView = qobject_cast(ui->browserTabWidget->widget(index));
- if (currentView != NULL) {
- ui->backBtn->setEnabled(currentView->history()->canGoBack());
- ui->fwdBtn->setEnabled(currentView->history()->canGoForward());
- }
-}
+/*
+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 "browserdialog.h"
+#include "ui_browserdialog.h"
+
+#include "messagedialog.h"
+#include "report.h"
+#include "json.h"
+#include "persistentcookiejar.h"
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+
+BrowserDialog::BrowserDialog(QWidget *parent)
+ : QDialog(parent)
+ , ui(new Ui::BrowserDialog)
+ , m_AccessManager(new QNetworkAccessManager(this))
+{
+ ui->setupUi(this);
+
+ m_AccessManager->setCookieJar(new PersistentCookieJar(
+ QDir::fromNativeSeparators(MOBase::ToQString(MOShared::GameInfo::instance().getCacheDir())) + "/cookies.dat", this));
+
+ Qt::WindowFlags flags = windowFlags() | Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint;
+ Qt::WindowFlags helpFlag = Qt::WindowContextHelpButtonHint;
+ flags = flags & (~helpFlag);
+ setWindowFlags(flags);
+
+ m_Tabs = this->findChild("browserTabWidget");
+
+ connect(m_Tabs, SIGNAL(tabCloseRequested(int)), this, SLOT(tabCloseRequested(int)));
+}
+
+
+BrowserDialog::~BrowserDialog()
+{
+ delete ui;
+}
+
+void BrowserDialog::closeEvent(QCloseEvent *event)
+{
+// m_AccessManager->showCookies();
+ QDialog::closeEvent(event);
+}
+
+void BrowserDialog::initTab(BrowserView *newView)
+{
+ newView->page()->setNetworkAccessManager(m_AccessManager);
+ newView->page()->setForwardUnsupportedContent(true);
+
+ connect(newView, SIGNAL(loadProgress(int)), this, SLOT(progress(int)));
+ connect(newView, SIGNAL(titleChanged(QString)), this, SLOT(titleChanged(QString)));
+ connect(newView, SIGNAL(initTab(BrowserView*)), this, SLOT(initTab(BrowserView*)));
+ connect(newView, SIGNAL(startFind()), this, SLOT(startSearch()));
+ connect(newView, SIGNAL(urlChanged(QUrl)), this, SLOT(urlChanged(QUrl)));
+ connect(newView, SIGNAL(openUrlInNewTab(QUrl)), this, SLOT(openInNewTab(QUrl)));
+ connect(newView->page(), SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(downloadRequested(QNetworkRequest)));
+ connect(newView->page(), SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedContent(QNetworkReply*)));
+
+ ui->backBtn->setEnabled(false);
+ ui->fwdBtn->setEnabled(false);
+ m_Tabs->addTab(newView, tr("new"));
+ newView->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
+ newView->settings()->setAttribute(QWebSettings::AutoLoadImages, true);
+}
+
+
+void BrowserDialog::openInNewTab(const QUrl &url)
+{
+ BrowserView *newView = new BrowserView(this);
+ initTab(newView);
+ newView->setUrl(url);
+}
+
+
+BrowserView *BrowserDialog::getCurrentView()
+{
+ return qobject_cast(m_Tabs->currentWidget());
+}
+
+
+void BrowserDialog::urlChanged(const QUrl&)
+{
+ BrowserView *currentView = getCurrentView();
+ if (currentView != NULL) {
+ ui->backBtn->setEnabled(currentView->history()->canGoBack());
+ ui->fwdBtn->setEnabled(currentView->history()->canGoForward());
+ }
+}
+
+
+void BrowserDialog::openUrl(const QUrl &url)
+{
+ if (isHidden()) {
+ show();
+ }
+ openInNewTab(url);
+}
+
+
+void BrowserDialog::maximizeWidth()
+{
+ int viewportWidth = getCurrentView()->page()->viewportSize().width();
+ int frameWidth = width() - viewportWidth;
+
+ int contentWidth = getCurrentView()->page()->mainFrame()->contentsSize().width();
+
+ QDesktopWidget screen;
+ int currentScreen = screen.screenNumber(this);
+ int screenWidth = screen.screenGeometry(currentScreen).size().width();
+
+ int targetWidth = std::min(std::max(viewportWidth, contentWidth) + frameWidth, screenWidth);
+ this->resize(targetWidth, height());
+}
+
+
+void BrowserDialog::progress(int value)
+{
+ ui->loadProgress->setValue(value);
+ if (value == 100) {
+ maximizeWidth();
+ ui->loadProgress->setVisible(false);
+ } else {
+ ui->loadProgress->setVisible(true);
+ }
+}
+
+
+void BrowserDialog::titleChanged(const QString &title)
+{
+ BrowserView *view = qobject_cast(sender());
+ for (int i = 0; i < m_Tabs->count(); ++i) {
+ if (m_Tabs->widget(i) == view) {
+ m_Tabs->setTabText(i, title.mid(0, 15));
+ m_Tabs->setTabToolTip(i, title);
+ }
+ }
+}
+
+
+QString BrowserDialog::guessFileName(const QString &url)
+{
+ QRegExp uploadsExp(QString("http://.+/uploads/([^/]+)$"));
+ if (uploadsExp.indexIn(url) != -1) {
+ // these seem to be premium downloads
+ return uploadsExp.cap(1);
+ }
+
+ QRegExp filesExp(QString("http://.+\\?file=([^&]+)"));
+ if (filesExp.indexIn(url) != -1) {
+ // a regular manual download?
+ return filesExp.cap(1);
+ }
+ return "unknown";
+}
+
+void BrowserDialog::unsupportedContent(QNetworkReply *reply)
+{
+ try {
+ QWebPage *page = qobject_cast(sender());
+ if (page == NULL) {
+ qCritical("sender not a page");
+ return;
+ }
+ BrowserView *view = qobject_cast(page->view());
+ if (view == NULL) {
+ qCritical("no view?");
+ return;
+ }
+
+ qDebug("unsupported: %s - %s", view->url().toString().toUtf8().constData(), reply->url().toString().toUtf8().constData());
+ emit requestDownload(view->url(), reply);
+ } catch (const std::exception &e) {
+ if (isVisible()) {
+ MessageDialog::showMessage(tr("failed to start download"), this);
+ }
+ qCritical("exception downloading unsupported content: %s", e.what());
+ }
+}
+
+
+void BrowserDialog::downloadRequested(const QNetworkRequest &request)
+{
+ qCritical("download request %s ignored", request.url().toString().toUtf8().constData());
+}
+
+
+void BrowserDialog::tabCloseRequested(int index)
+{
+ if (m_Tabs->count() == 1) {
+ this->close();
+ } else {
+ m_Tabs->widget(index)->deleteLater();
+ m_Tabs->removeTab(index);
+ }
+}
+
+void BrowserDialog::on_backBtn_clicked()
+{
+ BrowserView *currentView = getCurrentView();
+ if (currentView != NULL) {
+ currentView->back();
+ }
+}
+
+void BrowserDialog::on_fwdBtn_clicked()
+{
+ BrowserView *currentView = getCurrentView();
+ if (currentView != NULL) {
+ currentView->forward();
+ }
+}
+
+
+void BrowserDialog::startSearch()
+{
+ ui->searchEdit->setFocus();
+}
+
+
+void BrowserDialog::on_searchEdit_returnPressed()
+{
+ BrowserView *currentView = getCurrentView();
+ if (currentView != NULL) {
+ currentView->findText(ui->searchEdit->text(), QWebPage::FindWrapsAroundDocument);
+ }
+}
+
+void BrowserDialog::on_refreshBtn_clicked()
+{
+ getCurrentView()->reload();
+}
+
+void BrowserDialog::on_browserTabWidget_currentChanged(int index)
+{
+ BrowserView *currentView = qobject_cast(ui->browserTabWidget->widget(index));
+ if (currentView != NULL) {
+ ui->backBtn->setEnabled(currentView->history()->canGoBack());
+ ui->fwdBtn->setEnabled(currentView->history()->canGoForward());
+ }
+}
diff --git a/src/browserdialog.h b/src/browserdialog.h
index bd27661b..c6e0aab6 100644
--- a/src/browserdialog.h
+++ b/src/browserdialog.h
@@ -1,124 +1,124 @@
-/*
-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 BROWSERDIALOG_H
-#define BROWSERDIALOG_H
-
-#include "browserview.h"
-#include "tutorialcontrol.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-
-namespace Ui {
- class BrowserDialog;
-}
-
-
-/**
- * @brief a dialog containing a webbrowser that is intended to browse the nexus network
- **/
-class BrowserDialog : public QDialog
-{
- Q_OBJECT
-
-public:
-
- /**
- * @brief constructor
- *
- * @param accessManager the access manager to use for network requests
- * @param parent parent widget
- **/
- explicit BrowserDialog(QWidget *parent = 0);
- ~BrowserDialog();
-
- /**
- * @brief set the url to open. If automatic login is enabled, the url is opened after login
- *
- * @param url the url to open
- **/
- void openUrl(const QUrl &url);
-
-signals:
-
- /**
- * @brief emitted when the user starts a download
- * @param pageUrl url of the current web site from which the download was started
- * @param reply network reply of the started download
- */
- void requestDownload(const QUrl &pageUrl, QNetworkReply *reply);
-
-protected:
-
- virtual void closeEvent(QCloseEvent *);
-
-private slots:
-
- void initTab(BrowserView *newView);
- void openInNewTab(const QUrl &url);
-
- void progress(int value);
-
- void titleChanged(const QString &title);
- void unsupportedContent(QNetworkReply *reply);
- void downloadRequested(const QNetworkRequest &request);
-
- void tabCloseRequested(int index);
-
- void urlChanged(const QUrl &url);
-
- void on_backBtn_clicked();
-
- void on_fwdBtn_clicked();
-
- void on_searchEdit_returnPressed();
-
- void startSearch();
-
- void on_refreshBtn_clicked();
-
- void on_browserTabWidget_currentChanged(int index);
-
-private:
-
- QString guessFileName(const QString &url);
-
- BrowserView *getCurrentView();
-
- void maximizeWidth();
-
-private:
-
- Ui::BrowserDialog *ui;
-
- QNetworkAccessManager *m_AccessManager;
-
- QTabWidget *m_Tabs;
-
-};
-
-#endif // BROWSERDIALOG_H
+/*
+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 BROWSERDIALOG_H
+#define BROWSERDIALOG_H
+
+#include "browserview.h"
+#include "tutorialcontrol.h"
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+namespace Ui {
+ class BrowserDialog;
+}
+
+
+/**
+ * @brief a dialog containing a webbrowser that is intended to browse the nexus network
+ **/
+class BrowserDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+
+ /**
+ * @brief constructor
+ *
+ * @param accessManager the access manager to use for network requests
+ * @param parent parent widget
+ **/
+ explicit BrowserDialog(QWidget *parent = 0);
+ ~BrowserDialog();
+
+ /**
+ * @brief set the url to open. If automatic login is enabled, the url is opened after login
+ *
+ * @param url the url to open
+ **/
+ void openUrl(const QUrl &url);
+
+signals:
+
+ /**
+ * @brief emitted when the user starts a download
+ * @param pageUrl url of the current web site from which the download was started
+ * @param reply network reply of the started download
+ */
+ void requestDownload(const QUrl &pageUrl, QNetworkReply *reply);
+
+protected:
+
+ virtual void closeEvent(QCloseEvent *);
+
+private slots:
+
+ void initTab(BrowserView *newView);
+ void openInNewTab(const QUrl &url);
+
+ void progress(int value);
+
+ void titleChanged(const QString &title);
+ void unsupportedContent(QNetworkReply *reply);
+ void downloadRequested(const QNetworkRequest &request);
+
+ void tabCloseRequested(int index);
+
+ void urlChanged(const QUrl &url);
+
+ void on_backBtn_clicked();
+
+ void on_fwdBtn_clicked();
+
+ void on_searchEdit_returnPressed();
+
+ void startSearch();
+
+ void on_refreshBtn_clicked();
+
+ void on_browserTabWidget_currentChanged(int index);
+
+private:
+
+ QString guessFileName(const QString &url);
+
+ BrowserView *getCurrentView();
+
+ void maximizeWidth();
+
+private:
+
+ Ui::BrowserDialog *ui;
+
+ QNetworkAccessManager *m_AccessManager;
+
+ QTabWidget *m_Tabs;
+
+};
+
+#endif // BROWSERDIALOG_H
diff --git a/src/browserview.cpp b/src/browserview.cpp
index f1b61e66..bd43a18e 100644
--- a/src/browserview.cpp
+++ b/src/browserview.cpp
@@ -1,76 +1,76 @@
-/*
-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 "browserview.h"
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include "utility.h"
-
-BrowserView::BrowserView(QWidget *parent)
- : QWebView(parent)
-{
- installEventFilter(this);
-
- page()->settings()->setMaximumPagesInCache(10);
-}
-
-
-QWebView *BrowserView::createWindow(QWebPage::WebWindowType)
-{
- BrowserView *newView = new BrowserView(parentWidget());
- emit initTab(newView);
- return newView;
-}
-
-
-bool BrowserView::eventFilter(QObject *obj, QEvent *event)
-{
- if (event->type() == QEvent::ShortcutOverride) {
- QKeyEvent *keyEvent = static_cast(event);
- if (keyEvent->matches(QKeySequence::Find)) {
- emit startFind();
- } else if (keyEvent->matches(QKeySequence::FindNext)) {
- emit findAgain();
- }
- } else if (event->type() == QEvent::MouseButtonPress) {
- QMouseEvent *mouseEvent = static_cast(event);
- if (mouseEvent->button() == Qt::MidButton) {
- mouseEvent->ignore();
- return true;
- }
- } else if (event->type() == QEvent::MouseButtonRelease) {
- QMouseEvent *mouseEvent = static_cast(event);
- if (mouseEvent->button() == Qt::MidButton) {
- QWebHitTestResult hitTest = page()->frameAt(mouseEvent->pos())->hitTestContent(mouseEvent->pos());
- if (hitTest.linkUrl().isValid()) {
- emit openUrlInNewTab(hitTest.linkUrl());
- }
- mouseEvent->ignore();
-
- return true;
- }
- }
- return QWebView::eventFilter(obj, event);
-}
+/*
+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 "browserview.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "utility.h"
+
+BrowserView::BrowserView(QWidget *parent)
+ : QWebView(parent)
+{
+ installEventFilter(this);
+
+ page()->settings()->setMaximumPagesInCache(10);
+}
+
+
+QWebView *BrowserView::createWindow(QWebPage::WebWindowType)
+{
+ BrowserView *newView = new BrowserView(parentWidget());
+ emit initTab(newView);
+ return newView;
+}
+
+
+bool BrowserView::eventFilter(QObject *obj, QEvent *event)
+{
+ if (event->type() == QEvent::ShortcutOverride) {
+ QKeyEvent *keyEvent = static_cast(event);
+ if (keyEvent->matches(QKeySequence::Find)) {
+ emit startFind();
+ } else if (keyEvent->matches(QKeySequence::FindNext)) {
+ emit findAgain();
+ }
+ } else if (event->type() == QEvent::MouseButtonPress) {
+ QMouseEvent *mouseEvent = static_cast(event);
+ if (mouseEvent->button() == Qt::MidButton) {
+ mouseEvent->ignore();
+ return true;
+ }
+ } else if (event->type() == QEvent::MouseButtonRelease) {
+ QMouseEvent *mouseEvent = static_cast(event);
+ if (mouseEvent->button() == Qt::MidButton) {
+ QWebHitTestResult hitTest = page()->frameAt(mouseEvent->pos())->hitTestContent(mouseEvent->pos());
+ if (hitTest.linkUrl().isValid()) {
+ emit openUrlInNewTab(hitTest.linkUrl());
+ }
+ mouseEvent->ignore();
+
+ return true;
+ }
+ }
+ return QWebView::eventFilter(obj, event);
+}
diff --git a/src/browserview.h b/src/browserview.h
index 3468276b..4f002ffc 100644
--- a/src/browserview.h
+++ b/src/browserview.h
@@ -1,80 +1,80 @@
-/*
-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 NEXUSVIEW_H
-#define NEXUSVIEW_H
-
-#include "finddialog.h"
-
-#include
-#include
-#include
-
-/**
- * @brief web view used to display a nexus page
- **/
-class BrowserView : public QWebView
-{
- Q_OBJECT
-
-public:
-
- explicit BrowserView(QWidget *parent = 0);
-
-signals:
-
- /**
- * @brief emitted when the user opens a new window to be displayed in another tab
- *
- * @param newView the view for the newly opened window
- **/
- void initTab(BrowserView *newView);
-
- /**
- * @brief emitted when the user requests a link to be opened in a new tab by middle-clicking
- *
- * @param url the url to open
- */
- void openUrlInNewTab(const QUrl &url);
-
- /**
- * @brief Ctrl-f was clicked. The containing dialog should activate its find-facility
- */
- void startFind();
-
- /**
- * @brief F3 was pressed. The containing dialog should search again
- */
- void findAgain();
-
-protected:
-
- virtual QWebView *createWindow(QWebPage::WebWindowType type);
-
- virtual bool eventFilter(QObject *obj, QEvent *event);
-
-
-private:
-
- QString m_FindPattern;
- bool m_MiddleClick;
-
-};
-
-#endif // NEXUSVIEW_H
+/*
+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 NEXUSVIEW_H
+#define NEXUSVIEW_H
+
+#include "finddialog.h"
+
+#include
+#include
+#include
+
+/**
+ * @brief web view used to display a nexus page
+ **/
+class BrowserView : public QWebView
+{
+ Q_OBJECT
+
+public:
+
+ explicit BrowserView(QWidget *parent = 0);
+
+signals:
+
+ /**
+ * @brief emitted when the user opens a new window to be displayed in another tab
+ *
+ * @param newView the view for the newly opened window
+ **/
+ void initTab(BrowserView *newView);
+
+ /**
+ * @brief emitted when the user requests a link to be opened in a new tab by middle-clicking
+ *
+ * @param url the url to open
+ */
+ void openUrlInNewTab(const QUrl &url);
+
+ /**
+ * @brief Ctrl-f was clicked. The containing dialog should activate its find-facility
+ */
+ void startFind();
+
+ /**
+ * @brief F3 was pressed. The containing dialog should search again
+ */
+ void findAgain();
+
+protected:
+
+ virtual QWebView *createWindow(QWebPage::WebWindowType type);
+
+ virtual bool eventFilter(QObject *obj, QEvent *event);
+
+
+private:
+
+ QString m_FindPattern;
+ bool m_MiddleClick;
+
+};
+
+#endif // NEXUSVIEW_H
diff --git a/src/categories.cpp b/src/categories.cpp
index 27720829..79c646b3 100644
--- a/src/categories.cpp
+++ b/src/categories.cpp
@@ -1,301 +1,301 @@
-/*
-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 "categories.h"
-#include
-#include "report.h"
-#include
-#include
-#include
-#include
-#include
-#include
-
-
-using namespace MOBase;
-using namespace MOShared;
-
-
-CategoryFactory* CategoryFactory::s_Instance = NULL;
-
-
-QString CategoryFactory::categoriesFilePath()
-{
- return QCoreApplication::applicationDirPath() + "/categories.dat";
-}
-
-
-CategoryFactory::CategoryFactory()
-{
- atexit(&cleanup);
- reset();
-
- QFile categoryFile(categoriesFilePath());
-
- if (!categoryFile.open(QIODevice::ReadOnly)) {
- loadDefaultCategories();
- } else {
- int lineNum = 0;
- while (!categoryFile.atEnd()) {
- QByteArray line = categoryFile.readLine();
- ++lineNum;
- QList cells = line.split('|');
- if (cells.count() != 4) {
- qCritical("invalid category line %d: %s (%d cells)",
- lineNum, line.constData(), cells.count());
- } else {
- std::vector nexusIDs;
- if (cells[2].length() > 0) {
- QList nexusIDStrings = cells[2].split(',');
- for (QList::iterator iter = nexusIDStrings.begin();
- iter != nexusIDStrings.end(); ++iter) {
- bool ok = false;
- int temp = iter->toInt(&ok);
- if (!ok) {
- qCritical("invalid id %s", iter->constData());
- }
- nexusIDs.push_back(temp);
- }
- }
- bool cell0Ok = true;
- bool cell3Ok = true;
- int id = cells[0].toInt(&cell0Ok);
- int parentID = cells[3].trimmed().toInt(&cell3Ok);
- if (!cell0Ok || !cell3Ok) {
- qCritical("invalid category line %d: %s",
- lineNum, line.constData());
- }
- addCategory(id, QString::fromUtf8(cells[1].constData()), nexusIDs, parentID);
- }
- }
- categoryFile.close();
- }
- std::sort(m_Categories.begin(), m_Categories.end());
- setParents();
-}
-
-
-CategoryFactory &CategoryFactory::instance()
-{
- if (s_Instance == NULL) {
- s_Instance = new CategoryFactory;
- }
- return *s_Instance;
-}
-
-
-void CategoryFactory::reset()
-{
- m_Categories.clear();
- m_IDMap.clear();
- addCategory(0, "None", MakeVector(2, 28, 87), 0);
-}
-
-
-void CategoryFactory::setParents()
-{
- for (std::vector::iterator iter = m_Categories.begin();
- iter != m_Categories.end(); ++iter) {
- iter->m_HasChildren = false;
- }
-
- for (std::vector::const_iterator categoryIter = m_Categories.begin();
- categoryIter != m_Categories.end(); ++categoryIter) {
- if (categoryIter->m_ParentID != 0) {
- std::map::const_iterator iter = m_IDMap.find(categoryIter->m_ParentID);
- if (iter != m_IDMap.end()) {
- m_Categories[iter->second].m_HasChildren = true;
- }
- }
- }
-}
-
-void CategoryFactory::cleanup()
-{
- delete s_Instance;
- s_Instance = NULL;
-}
-
-
-void CategoryFactory::saveCategories()
-{
- QFile categoryFile(categoriesFilePath());
-
- if (!categoryFile.open(QIODevice::WriteOnly)) {
- reportError(QObject::tr("Failed to save custom categories"));
- return;
- }
-
- categoryFile.resize(0);
- for (std::vector::const_iterator iter = m_Categories.begin();
- iter != m_Categories.end(); ++iter) {
- if (iter->m_ID == 0) {
- continue;
- }
- QByteArray line;
- line.append(QByteArray::number(iter->m_ID)).append("|")
- .append(iter->m_Name.toUtf8()).append("|")
- .append(VectorJoin(iter->m_NexusIDs, ",")).append("|")
- .append(QByteArray::number(iter->m_ParentID)).append("\n");
- categoryFile.write(line);
- }
- categoryFile.close();
-}
-
-
-unsigned int CategoryFactory::countCategories(std::tr1::function filter)
-{
- unsigned int result = 0;
- for (auto iter = m_Categories.begin(); iter != m_Categories.end(); ++iter) {
- if (filter(*iter)) {
- ++result;
- }
- }
- return result;
-}
-
-
-void CategoryFactory::addCategory(int id, const QString &name, const std::vector &nexusIDs, int parentID)
-{
- int index = m_Categories.size();
- m_Categories.push_back(Category(index, id, name, nexusIDs, parentID));
- for (std::vector::const_iterator iter = nexusIDs.begin();
- iter != nexusIDs.end(); ++iter) {
- m_NexusMap[*iter] = index;
- }
- m_IDMap[id] = index;
-}
-
-
-void CategoryFactory::loadDefaultCategories()
-{
- // the order here is relevant as it defines the order in which the
- // mods appear in the combo box
- addCategory(1, "Animations", MakeVector(1, 51), 0);
- addCategory(2, "Armour", MakeVector(1, 54), 0);
- addCategory(3, "Audio", MakeVector(1, 61), 0);
- addCategory(5, "Clothing", MakeVector(1, 60), 0);
- addCategory(6, "Collectables", MakeVector(1, 92), 0);
- addCategory(7, "Creatures", MakeVector(2, 83, 65), 0);
- addCategory(8, "Factions", MakeVector(1, 25), 0);
- addCategory(9, "Gameplay", MakeVector(1, 24), 0);
- addCategory(10, "Hair", MakeVector(1, 26), 0);
- addCategory(11, "Items", MakeVector(2, 27, 85), 0);
- addCategory(19, "Weapons", MakeVector(2, 36, 55), 11);
- addCategory(12, "Locations", MakeVector(7, 22, 30, 70, 88, 89, 90, 91), 0);
- addCategory(4, "Cities", MakeVector(1, 53), 12);
- addCategory(20, "Magic", MakeVector(3, 75, 93, 94), 0);
- addCategory(21, "Models & Textures", MakeVector(1, 29), 0);
- addCategory(13, "NPCs", MakeVector(1, 33), 0);
- addCategory(14, "Patches", MakeVector(2, 79, 84), 0);
- addCategory(15, "Quests", MakeVector(1, 35), 0);
- addCategory(16, "Races & Classes", MakeVector(1, 34), 0);
- addCategory(22, "Skills", MakeVector(1, 73), 0);
- addCategory(17, "UI", MakeVector(1, 42), 0);
- addCategory(18, "Visuals", MakeVector(1, 62), 0);
-}
-
-
-int CategoryFactory::getParentID(unsigned int index) const
-{
- if ((index < 0) || (index >= m_Categories.size())) {
- throw MyException(QObject::tr("invalid index %1").arg(index));
- }
-
- return m_Categories[index].m_ParentID;
-}
-
-
-bool CategoryFactory::categoryExists(int id) const
-{
- return m_IDMap.find(id) != m_IDMap.end();
-}
-
-
-bool CategoryFactory::isDecendantOf(int id, int parentID) const
-{
- std::map::const_iterator iter = m_IDMap.find(id);
- if (iter != m_IDMap.end()) {
- unsigned int index = iter->second;
- if (m_Categories[index].m_ParentID == 0) {
- return false;
- } else if (m_Categories[index].m_ParentID == parentID) {
- return true;
- } else {
- return isDecendantOf(m_Categories[index].m_ParentID, parentID);
- }
- } else {
- qWarning("%d is no valid category id", id);
- return false;
- }
-}
-
-
-bool CategoryFactory::hasChildren(unsigned int index) const
-{
- if ((index < 0) || (index >= m_Categories.size())) {
- throw MyException(QObject::tr("invalid index %1").arg(index));
- }
-
- return m_Categories[index].m_HasChildren;
-}
-
-
-QString CategoryFactory::getCategoryName(unsigned int index) const
-{
- if ((index < 0) || (index >= m_Categories.size())) {
- throw MyException(QObject::tr("invalid index %1").arg(index));
- }
-
- return m_Categories[index].m_Name;
-}
-
-
-int CategoryFactory::getCategoryID(unsigned int index) const
-{
- if ((index < 0) || (index >= m_Categories.size())) {
- throw MyException(QObject::tr("invalid index %1").arg(index));
- }
-
- return m_Categories[index].m_ID;
-}
-
-
-int CategoryFactory::getCategoryIndex(int ID) const
-{
- std::map::const_iterator iter = m_IDMap.find(ID);
- if (iter == m_IDMap.end()) {
- throw MyException(QObject::tr("invalid category id %1").arg(ID));
- }
- return iter->second;
-}
-
-
-
-unsigned int CategoryFactory::resolveNexusID(int nexusID) const
-{
- std::map::const_iterator iter = m_NexusMap.find(nexusID);
- if (iter != m_NexusMap.end()) {
- qDebug("nexus category id %d maps to internal %d", nexusID, iter->second);
- return iter->second;
- } else {
- qDebug("nexus category id %d not mapped", nexusID);
- return 0U;
- }
-}
+/*
+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 "categories.h"
+#include
+#include "report.h"
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+using namespace MOBase;
+using namespace MOShared;
+
+
+CategoryFactory* CategoryFactory::s_Instance = NULL;
+
+
+QString CategoryFactory::categoriesFilePath()
+{
+ return QCoreApplication::applicationDirPath() + "/categories.dat";
+}
+
+
+CategoryFactory::CategoryFactory()
+{
+ atexit(&cleanup);
+ reset();
+
+ QFile categoryFile(categoriesFilePath());
+
+ if (!categoryFile.open(QIODevice::ReadOnly)) {
+ loadDefaultCategories();
+ } else {
+ int lineNum = 0;
+ while (!categoryFile.atEnd()) {
+ QByteArray line = categoryFile.readLine();
+ ++lineNum;
+ QList cells = line.split('|');
+ if (cells.count() != 4) {
+ qCritical("invalid category line %d: %s (%d cells)",
+ lineNum, line.constData(), cells.count());
+ } else {
+ std::vector nexusIDs;
+ if (cells[2].length() > 0) {
+ QList nexusIDStrings = cells[2].split(',');
+ for (QList::iterator iter = nexusIDStrings.begin();
+ iter != nexusIDStrings.end(); ++iter) {
+ bool ok = false;
+ int temp = iter->toInt(&ok);
+ if (!ok) {
+ qCritical("invalid id %s", iter->constData());
+ }
+ nexusIDs.push_back(temp);
+ }
+ }
+ bool cell0Ok = true;
+ bool cell3Ok = true;
+ int id = cells[0].toInt(&cell0Ok);
+ int parentID = cells[3].trimmed().toInt(&cell3Ok);
+ if (!cell0Ok || !cell3Ok) {
+ qCritical("invalid category line %d: %s",
+ lineNum, line.constData());
+ }
+ addCategory(id, QString::fromUtf8(cells[1].constData()), nexusIDs, parentID);
+ }
+ }
+ categoryFile.close();
+ }
+ std::sort(m_Categories.begin(), m_Categories.end());
+ setParents();
+}
+
+
+CategoryFactory &CategoryFactory::instance()
+{
+ if (s_Instance == NULL) {
+ s_Instance = new CategoryFactory;
+ }
+ return *s_Instance;
+}
+
+
+void CategoryFactory::reset()
+{
+ m_Categories.clear();
+ m_IDMap.clear();
+ addCategory(0, "None", MakeVector(2, 28, 87), 0);
+}
+
+
+void CategoryFactory::setParents()
+{
+ for (std::vector::iterator iter = m_Categories.begin();
+ iter != m_Categories.end(); ++iter) {
+ iter->m_HasChildren = false;
+ }
+
+ for (std::vector::const_iterator categoryIter = m_Categories.begin();
+ categoryIter != m_Categories.end(); ++categoryIter) {
+ if (categoryIter->m_ParentID != 0) {
+ std::map::const_iterator iter = m_IDMap.find(categoryIter->m_ParentID);
+ if (iter != m_IDMap.end()) {
+ m_Categories[iter->second].m_HasChildren = true;
+ }
+ }
+ }
+}
+
+void CategoryFactory::cleanup()
+{
+ delete s_Instance;
+ s_Instance = NULL;
+}
+
+
+void CategoryFactory::saveCategories()
+{
+ QFile categoryFile(categoriesFilePath());
+
+ if (!categoryFile.open(QIODevice::WriteOnly)) {
+ reportError(QObject::tr("Failed to save custom categories"));
+ return;
+ }
+
+ categoryFile.resize(0);
+ for (std::vector::const_iterator iter = m_Categories.begin();
+ iter != m_Categories.end(); ++iter) {
+ if (iter->m_ID == 0) {
+ continue;
+ }
+ QByteArray line;
+ line.append(QByteArray::number(iter->m_ID)).append("|")
+ .append(iter->m_Name.toUtf8()).append("|")
+ .append(VectorJoin(iter->m_NexusIDs, ",")).append("|")
+ .append(QByteArray::number(iter->m_ParentID)).append("\n");
+ categoryFile.write(line);
+ }
+ categoryFile.close();
+}
+
+
+unsigned int CategoryFactory::countCategories(std::tr1::function filter)
+{
+ unsigned int result = 0;
+ for (auto iter = m_Categories.begin(); iter != m_Categories.end(); ++iter) {
+ if (filter(*iter)) {
+ ++result;
+ }
+ }
+ return result;
+}
+
+
+void CategoryFactory::addCategory(int id, const QString &name, const std::vector &nexusIDs, int parentID)
+{
+ int index = m_Categories.size();
+ m_Categories.push_back(Category(index, id, name, nexusIDs, parentID));
+ for (std::vector::const_iterator iter = nexusIDs.begin();
+ iter != nexusIDs.end(); ++iter) {
+ m_NexusMap[*iter] = index;
+ }
+ m_IDMap[id] = index;
+}
+
+
+void CategoryFactory::loadDefaultCategories()
+{
+ // the order here is relevant as it defines the order in which the
+ // mods appear in the combo box
+ addCategory(1, "Animations", MakeVector(1, 51), 0);
+ addCategory(2, "Armour", MakeVector(1, 54), 0);
+ addCategory(3, "Audio", MakeVector(1, 61), 0);
+ addCategory(5, "Clothing", MakeVector(1, 60), 0);
+ addCategory(6, "Collectables", MakeVector(1, 92), 0);
+ addCategory(7, "Creatures", MakeVector(2, 83, 65), 0);
+ addCategory(8, "Factions", MakeVector(1, 25), 0);
+ addCategory(9, "Gameplay", MakeVector(1, 24), 0);
+ addCategory(10, "Hair", MakeVector(1, 26), 0);
+ addCategory(11, "Items", MakeVector(2, 27, 85), 0);
+ addCategory(19, "Weapons", MakeVector(2, 36, 55), 11);
+ addCategory(12, "Locations", MakeVector(7, 22, 30, 70, 88, 89, 90, 91), 0);
+ addCategory(4, "Cities", MakeVector(1, 53), 12);
+ addCategory(20, "Magic", MakeVector(3, 75, 93, 94), 0);
+ addCategory(21, "Models & Textures", MakeVector(1, 29), 0);
+ addCategory(13, "NPCs", MakeVector(1, 33), 0);
+ addCategory(14, "Patches", MakeVector(2, 79, 84), 0);
+ addCategory(15, "Quests", MakeVector(1, 35), 0);
+ addCategory(16, "Races & Classes", MakeVector(1, 34), 0);
+ addCategory(22, "Skills", MakeVector(1, 73), 0);
+ addCategory(17, "UI", MakeVector(1, 42), 0);
+ addCategory(18, "Visuals", MakeVector(1, 62), 0);
+}
+
+
+int CategoryFactory::getParentID(unsigned int index) const
+{
+ if ((index < 0) || (index >= m_Categories.size())) {
+ throw MyException(QObject::tr("invalid index %1").arg(index));
+ }
+
+ return m_Categories[index].m_ParentID;
+}
+
+
+bool CategoryFactory::categoryExists(int id) const
+{
+ return m_IDMap.find(id) != m_IDMap.end();
+}
+
+
+bool CategoryFactory::isDecendantOf(int id, int parentID) const
+{
+ std::map::const_iterator iter = m_IDMap.find(id);
+ if (iter != m_IDMap.end()) {
+ unsigned int index = iter->second;
+ if (m_Categories[index].m_ParentID == 0) {
+ return false;
+ } else if (m_Categories[index].m_ParentID == parentID) {
+ return true;
+ } else {
+ return isDecendantOf(m_Categories[index].m_ParentID, parentID);
+ }
+ } else {
+ qWarning("%d is no valid category id", id);
+ return false;
+ }
+}
+
+
+bool CategoryFactory::hasChildren(unsigned int index) const
+{
+ if ((index < 0) || (index >= m_Categories.size())) {
+ throw MyException(QObject::tr("invalid index %1").arg(index));
+ }
+
+ return m_Categories[index].m_HasChildren;
+}
+
+
+QString CategoryFactory::getCategoryName(unsigned int index) const
+{
+ if ((index < 0) || (index >= m_Categories.size())) {
+ throw MyException(QObject::tr("invalid index %1").arg(index));
+ }
+
+ return m_Categories[index].m_Name;
+}
+
+
+int CategoryFactory::getCategoryID(unsigned int index) const
+{
+ if ((index < 0) || (index >= m_Categories.size())) {
+ throw MyException(QObject::tr("invalid index %1").arg(index));
+ }
+
+ return m_Categories[index].m_ID;
+}
+
+
+int CategoryFactory::getCategoryIndex(int ID) const
+{
+ std::map::const_iterator iter = m_IDMap.find(ID);
+ if (iter == m_IDMap.end()) {
+ throw MyException(QObject::tr("invalid category id %1").arg(ID));
+ }
+ return iter->second;
+}
+
+
+
+unsigned int CategoryFactory::resolveNexusID(int nexusID) const
+{
+ std::map::const_iterator iter = m_NexusMap.find(nexusID);
+ if (iter != m_NexusMap.end()) {
+ qDebug("nexus category id %d maps to internal %d", nexusID, iter->second);
+ return iter->second;
+ } else {
+ qDebug("nexus category id %d not mapped", nexusID);
+ return 0U;
+ }
+}
diff --git a/src/categories.h b/src/categories.h
index bfebe1cb..96e436e5 100644
--- a/src/categories.h
+++ b/src/categories.h
@@ -1,200 +1,200 @@
-/*
-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 CATEGORIES_H
-#define CATEGORIES_H
-
-
-#include
-#include
-#include
-#include
-
-
-/**
- * @brief Manage the available mod categories
- * @warning member functions of this class currently use a wild mix of ids and indexes to look up categories,
- * optimized to where the request comes from. Therefore be very careful which of the two you have available
- **/
-class CategoryFactory {
-
- friend class CategoriesDialog;
-
-public:
-
- static const int CATEGORY_NONE = 0;
-
- static const int CATEGORY_SPECIAL_FIRST = 10000;
- static const int CATEGORY_SPECIAL_CHECKED = CATEGORY_SPECIAL_FIRST;
- static const int CATEGORY_SPECIAL_UNCHECKED = 10001;
- static const int CATEGORY_SPECIAL_UPDATEAVAILABLE = 10002;
- static const int CATEGORY_SPECIAL_NOCATEGORY = 10003;
- static const int CATEGORY_SPECIAL_CONFLICT = 10004;
- static const int CATEGORY_SPECIAL_NOTENDORSED = 10005;
- static const int CATEGORY_SPECIAL_MANAGED = 10006;
- static const int CATEGORY_SPECIAL_UNMANAGED = 10007;
-
-public:
-
- struct Category {
- Category(int sortValue, int id, const QString &name, const std::vector &nexusIDs, int parentID)
- : m_SortValue(sortValue), m_ID(id), m_Name(name), m_HasChildren(false),
- m_NexusIDs(nexusIDs), m_ParentID(parentID) {}
- int m_SortValue;
- int m_ID;
- int m_ParentID;
- bool m_HasChildren;
- QString m_Name;
- std::vector m_NexusIDs;
-
- friend bool operator<(const Category &LHS, const Category &RHS) {
- return LHS.m_SortValue < RHS.m_SortValue;
- }
- };
-
-public:
-
- /**
- * @brief reset the list of categories
- **/
- void reset();
-
- /**
- * @brief save the categories to the categories.dat file
- **/
- void saveCategories();
-
- /**
- * @brief retrieve the number of available categories
- *
- * @return unsigned int number of categories
- **/
- unsigned numCategories() const { return m_Categories.size(); }
-
- /**
- * @brief count all categories that match a specified filter
- * @param filter the filter to test
- * @return number of matching categories
- */
- unsigned int countCategories(std::tr1::function filter);
-
- /**
- * @brief get the id of the parent category
- *
- * @param index the index to look up
- * @return int id of the parent category
- **/
- int getParentID(unsigned int index) const;
-
- /**
- * @brief determine if a category exists (by id)
- *
- * @param id the id to check for existance
- * @return true if the category exists, false otherwise
- **/
- bool categoryExists(int id) const;
-
- /**
- * @brief test if a category is child of a second one
- * @param id the presumed child id
- * @param parentID the parent id to test for
- * @return true if id is a child of parentID
- **/
- bool isDecendantOf(int id, int parentID) const;
-
- /**
- * @brief test if the specified category has child categories
- *
- * @param index index of the category to look up
- * @return bool true if the category has child categories
- **/
- bool hasChildren(unsigned int index) const;
-
- /**
- * @brief retrieve the name of a category
- *
- * @param index index of the category to look up
- * @return QString name of the category
- **/
- QString getCategoryName(unsigned int index) const;
-
- /**
- * @brief look up the id of a category by its index
- *
- * @param index index of the category to look up
- * @return int id of the category
- **/
- int getCategoryID(unsigned int index) const;
-
- /**
- * @brief look up the index of a category by its id
- *
- * @param id index of the category to look up
- * @return unsigned int index of the category
- **/
- int getCategoryIndex(int ID) const;
-
- /**
- * @brief retrieve the index of a category by its nexus id
- *
- * @param nexusID nexus id of the category to look up
- * @return unsigned int index of the category or 0 if no category matches
- **/
- unsigned int resolveNexusID(int nexusID) const;
-
-public:
-
- /**
- * @brief retrieve a reference to the singleton instance
- *
- * @return the reference to the singleton
- **/
- static CategoryFactory &instance();
-
- /**
- * @return path to the file that contains the categories list
- */
- static QString categoriesFilePath();
-
-private:
-
- CategoryFactory();
-
- void loadDefaultCategories();
-
- void addCategory(int id, const QString &name, const std::vector &nexusID, int parentID);
-
- void setParents();
-
- static void cleanup();
-
-private:
-
- static CategoryFactory *s_Instance;
-
- std::vector m_Categories;
- std::map m_IDMap;
- std::map m_NexusMap;
-
-private:
-
-};
-
-
-#endif // CATEGORIES_H
+/*
+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 CATEGORIES_H
+#define CATEGORIES_H
+
+
+#include
+#include
+#include
+#include
+
+
+/**
+ * @brief Manage the available mod categories
+ * @warning member functions of this class currently use a wild mix of ids and indexes to look up categories,
+ * optimized to where the request comes from. Therefore be very careful which of the two you have available
+ **/
+class CategoryFactory {
+
+ friend class CategoriesDialog;
+
+public:
+
+ static const int CATEGORY_NONE = 0;
+
+ static const int CATEGORY_SPECIAL_FIRST = 10000;
+ static const int CATEGORY_SPECIAL_CHECKED = CATEGORY_SPECIAL_FIRST;
+ static const int CATEGORY_SPECIAL_UNCHECKED = 10001;
+ static const int CATEGORY_SPECIAL_UPDATEAVAILABLE = 10002;
+ static const int CATEGORY_SPECIAL_NOCATEGORY = 10003;
+ static const int CATEGORY_SPECIAL_CONFLICT = 10004;
+ static const int CATEGORY_SPECIAL_NOTENDORSED = 10005;
+ static const int CATEGORY_SPECIAL_MANAGED = 10006;
+ static const int CATEGORY_SPECIAL_UNMANAGED = 10007;
+
+public:
+
+ struct Category {
+ Category(int sortValue, int id, const QString &name, const std::vector &nexusIDs, int parentID)
+ : m_SortValue(sortValue), m_ID(id), m_Name(name), m_HasChildren(false),
+ m_NexusIDs(nexusIDs), m_ParentID(parentID) {}
+ int m_SortValue;
+ int m_ID;
+ int m_ParentID;
+ bool m_HasChildren;
+ QString m_Name;
+ std::vector m_NexusIDs;
+
+ friend bool operator<(const Category &LHS, const Category &RHS) {
+ return LHS.m_SortValue < RHS.m_SortValue;
+ }
+ };
+
+public:
+
+ /**
+ * @brief reset the list of categories
+ **/
+ void reset();
+
+ /**
+ * @brief save the categories to the categories.dat file
+ **/
+ void saveCategories();
+
+ /**
+ * @brief retrieve the number of available categories
+ *
+ * @return unsigned int number of categories
+ **/
+ unsigned numCategories() const { return m_Categories.size(); }
+
+ /**
+ * @brief count all categories that match a specified filter
+ * @param filter the filter to test
+ * @return number of matching categories
+ */
+ unsigned int countCategories(std::tr1::function filter);
+
+ /**
+ * @brief get the id of the parent category
+ *
+ * @param index the index to look up
+ * @return int id of the parent category
+ **/
+ int getParentID(unsigned int index) const;
+
+ /**
+ * @brief determine if a category exists (by id)
+ *
+ * @param id the id to check for existance
+ * @return true if the category exists, false otherwise
+ **/
+ bool categoryExists(int id) const;
+
+ /**
+ * @brief test if a category is child of a second one
+ * @param id the presumed child id
+ * @param parentID the parent id to test for
+ * @return true if id is a child of parentID
+ **/
+ bool isDecendantOf(int id, int parentID) const;
+
+ /**
+ * @brief test if the specified category has child categories
+ *
+ * @param index index of the category to look up
+ * @return bool true if the category has child categories
+ **/
+ bool hasChildren(unsigned int index) const;
+
+ /**
+ * @brief retrieve the name of a category
+ *
+ * @param index index of the category to look up
+ * @return QString name of the category
+ **/
+ QString getCategoryName(unsigned int index) const;
+
+ /**
+ * @brief look up the id of a category by its index
+ *
+ * @param index index of the category to look up
+ * @return int id of the category
+ **/
+ int getCategoryID(unsigned int index) const;
+
+ /**
+ * @brief look up the index of a category by its id
+ *
+ * @param id index of the category to look up
+ * @return unsigned int index of the category
+ **/
+ int getCategoryIndex(int ID) const;
+
+ /**
+ * @brief retrieve the index of a category by its nexus id
+ *
+ * @param nexusID nexus id of the category to look up
+ * @return unsigned int index of the category or 0 if no category matches
+ **/
+ unsigned int resolveNexusID(int nexusID) const;
+
+public:
+
+ /**
+ * @brief retrieve a reference to the singleton instance
+ *
+ * @return the reference to the singleton
+ **/
+ static CategoryFactory &instance();
+
+ /**
+ * @return path to the file that contains the categories list
+ */
+ static QString categoriesFilePath();
+
+private:
+
+ CategoryFactory();
+
+ void loadDefaultCategories();
+
+ void addCategory(int id, const QString &name, const std::vector &nexusID, int parentID);
+
+ void setParents();
+
+ static void cleanup();
+
+private:
+
+ static CategoryFactory *s_Instance;
+
+ std::vector m_Categories;
+ std::map m_IDMap;
+ std::map m_NexusMap;
+
+private:
+
+};
+
+
+#endif // CATEGORIES_H
diff --git a/src/categoriesdialog.cpp b/src/categoriesdialog.cpp
index 793ece66..881179a4 100644
--- a/src/categoriesdialog.cpp
+++ b/src/categoriesdialog.cpp
@@ -1,243 +1,243 @@
-/*
-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 "categoriesdialog.h"
-#include "ui_categoriesdialog.h"
-#include "categories.h"
-#include "utility.h"
-#include
-#include
-#include
-#include
-
-
-class NewIDValidator : public QIntValidator {
-public:
- NewIDValidator(const std::set &ids)
- : m_UsedIDs(ids) {}
- virtual State validate(QString &input, int &pos) const {
- State intRes = QIntValidator::validate(input, pos);
- if (intRes == Acceptable) {
- bool ok = false;
- int id = input.toInt(&ok);
- if (m_UsedIDs.find(id) != m_UsedIDs.end()) {
- return QValidator::Intermediate;
- }
- }
- return intRes;
- }
-private:
- const std::set &m_UsedIDs;
-};
-
-
-class ExistingIDValidator : public QIntValidator {
-public:
- ExistingIDValidator(const std::set &ids)
- : m_UsedIDs(ids) {}
- virtual State validate(QString &input, int &pos) const {
- State intRes = QIntValidator::validate(input, pos);
- if (intRes == Acceptable) {
- bool ok = false;
- int id = input.toInt(&ok);
- if ((id == 0) || (m_UsedIDs.find(id) != m_UsedIDs.end())) {
- return QValidator::Acceptable;
- } else {
- return QValidator::Intermediate;
- }
- } else {
- return intRes;
- }
- }
-private:
- const std::set &m_UsedIDs;
-};
-
-
-class ValidatingDelegate : public QItemDelegate {
-
-public:
- ValidatingDelegate(QObject *parent, QValidator *validator)
- : QItemDelegate(parent), m_Validator(validator) {}
-
- QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem&, const QModelIndex&) const
- {
- QLineEdit *edit = new QLineEdit(parent);
- edit->setValidator(m_Validator);
- return edit;
- }
- virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
- {
- QLineEdit *edit = qobject_cast(editor);
- int pos = 0;
- QString editText = edit->text();
- if (m_Validator->validate(editText, pos) == QValidator::Acceptable) {
- QItemDelegate::setModelData(editor, model, index);
- }
- }
-private:
- QValidator *m_Validator;
-};
-
-
-CategoriesDialog::CategoriesDialog(QWidget *parent)
- : TutorableDialog("Categories", parent), ui(new Ui::CategoriesDialog)
-{
- ui->setupUi(this);
- fillTable();
- connect(ui->categoriesTable, SIGNAL(cellChanged(int,int)), this, SLOT(cellChanged(int,int)));
-}
-
-CategoriesDialog::~CategoriesDialog()
-{
- delete ui;
-}
-
-
-void CategoriesDialog::cellChanged(int row, int)
-{
- int currentID = ui->categoriesTable->item(row, 0)->text().toInt();
- if (currentID > m_HighestID) {
- m_HighestID = currentID;
- }
-}
-
-
-void CategoriesDialog::commitChanges()
-{
- CategoryFactory &categories = CategoryFactory::instance();
- categories.reset();
-
- for (int i = 0; i < ui->categoriesTable->rowCount(); ++i) {
- int index = ui->categoriesTable->verticalHeader()->logicalIndex(i);
- QString nexusIDString = ui->categoriesTable->item(index, 2)->text();
- QStringList nexusIDStringList = nexusIDString.split(',', QString::SkipEmptyParts);
- std::vector nexusIDs;
- for (QStringList::iterator iter = nexusIDStringList.begin();
- iter != nexusIDStringList.end(); ++iter) {
- nexusIDs.push_back(iter->toInt());
- }
-
- categories.addCategory(
- ui->categoriesTable->item(index, 0)->text().toInt(),
- ui->categoriesTable->item(index, 1)->text(),
- nexusIDs,
- ui->categoriesTable->item(index, 3)->text().toInt());
- }
- categories.setParents();
-
- categories.saveCategories();
-}
-
-
-void CategoriesDialog::refreshIDs()
-{
- m_HighestID = 0;
- for (int i = 0; i < ui->categoriesTable->rowCount(); ++i) {
- int id = ui->categoriesTable->item(i, 0)->text().toInt();
- if (id > m_HighestID) {
- m_HighestID = id;
- }
- m_IDs.insert(id);
- }
-}
-
-
-void CategoriesDialog::fillTable()
-{
- CategoryFactory &categories = CategoryFactory::instance();
- QTableWidget *table = ui->categoriesTable;
-
-#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
- table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
- table->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
- table->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Fixed);
- table->horizontalHeader()->setSectionResizeMode(3, QHeaderView::Fixed);
- table->verticalHeader()->setSectionsMovable(true);
- table->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
-#else
- table->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
- table->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch);
- table->horizontalHeader()->setResizeMode(2, QHeaderView::Fixed);
- table->horizontalHeader()->setResizeMode(3, QHeaderView::Fixed);
- table->verticalHeader()->setMovable(true);
- table->verticalHeader()->setResizeMode(QHeaderView::Fixed);
-#endif
-
-
- table->setItemDelegateForColumn(0, new ValidatingDelegate(this, new NewIDValidator(m_IDs)));
- table->setItemDelegateForColumn(2, new ValidatingDelegate(this, new QRegExpValidator(QRegExp("([0-9]+)?(,[0-9]+)*"), this)));
- table->setItemDelegateForColumn(3, new ValidatingDelegate(this, new ExistingIDValidator(m_IDs)));
-
- int row = 0;
- for (std::vector::const_iterator iter = categories.m_Categories.begin();
- iter != categories.m_Categories.end(); ++iter, ++row) {
- const CategoryFactory::Category &category = *iter;
- if (category.m_ID == 0) {
- --row;
- continue;
- }
- table->insertRow(row);
-// table->setVerticalHeaderItem(row, new QTableWidgetItem(" "));
-
- QScopedPointer idItem(new QTableWidgetItem());
- idItem->setData(Qt::DisplayRole, category.m_ID);
-
- QScopedPointer nameItem(new QTableWidgetItem(category.m_Name));
- QScopedPointer nexusIDItem(new QTableWidgetItem(MOBase::VectorJoin(category.m_NexusIDs, ",")));
- QScopedPointer parentIDItem(new QTableWidgetItem());
- parentIDItem->setData(Qt::DisplayRole, category.m_ParentID);
-
- table->setItem(row, 0, idItem.take());
- table->setItem(row, 1, nameItem.take());
- table->setItem(row, 2, nexusIDItem.take());
- table->setItem(row, 3, parentIDItem.take());
- }
-
- refreshIDs();
-}
-
-
-void CategoriesDialog::addCategory_clicked()
-{
- int row = m_ContextRow >= 0 ? m_ContextRow : 0;
- ui->categoriesTable->insertRow(row);
- ui->categoriesTable->setVerticalHeaderItem(row, new QTableWidgetItem(" "));
- ui->categoriesTable->setItem(row, 0, new QTableWidgetItem(QString::number(++m_HighestID)));
- ui->categoriesTable->setItem(row, 1, new QTableWidgetItem("new"));
- ui->categoriesTable->setItem(row, 2, new QTableWidgetItem(""));
- ui->categoriesTable->setItem(row, 3, new QTableWidgetItem("0"));
-}
-
-
-void CategoriesDialog::removeCategory_clicked()
-{
- ui->categoriesTable->removeRow(m_ContextRow);
-}
-
-
-void CategoriesDialog::on_categoriesTable_customContextMenuRequested(const QPoint &pos)
-{
- m_ContextRow = ui->categoriesTable->rowAt(pos.y());
- QMenu menu;
- menu.addAction(tr("Add"), this, SLOT(addCategory_clicked()));
- menu.addAction(tr("Remove"), this, SLOT(removeCategory_clicked()));
-
- menu.exec(ui->categoriesTable->mapToGlobal(pos));
-}
+/*
+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 "categoriesdialog.h"
+#include "ui_categoriesdialog.h"
+#include "categories.h"
+#include "utility.h"
+#include
+#include
+#include
+#include
+
+
+class NewIDValidator : public QIntValidator {
+public:
+ NewIDValidator(const std::set &ids)
+ : m_UsedIDs(ids) {}
+ virtual State validate(QString &input, int &pos) const {
+ State intRes = QIntValidator::validate(input, pos);
+ if (intRes == Acceptable) {
+ bool ok = false;
+ int id = input.toInt(&ok);
+ if (m_UsedIDs.find(id) != m_UsedIDs.end()) {
+ return QValidator::Intermediate;
+ }
+ }
+ return intRes;
+ }
+private:
+ const std::set &m_UsedIDs;
+};
+
+
+class ExistingIDValidator : public QIntValidator {
+public:
+ ExistingIDValidator(const std::set &ids)
+ : m_UsedIDs(ids) {}
+ virtual State validate(QString &input, int &pos) const {
+ State intRes = QIntValidator::validate(input, pos);
+ if (intRes == Acceptable) {
+ bool ok = false;
+ int id = input.toInt(&ok);
+ if ((id == 0) || (m_UsedIDs.find(id) != m_UsedIDs.end())) {
+ return QValidator::Acceptable;
+ } else {
+ return QValidator::Intermediate;
+ }
+ } else {
+ return intRes;
+ }
+ }
+private:
+ const std::set &m_UsedIDs;
+};
+
+
+class ValidatingDelegate : public QItemDelegate {
+
+public:
+ ValidatingDelegate(QObject *parent, QValidator *validator)
+ : QItemDelegate(parent), m_Validator(validator) {}
+
+ QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem&, const QModelIndex&) const
+ {
+ QLineEdit *edit = new QLineEdit(parent);
+ edit->setValidator(m_Validator);
+ return edit;
+ }
+ virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
+ {
+ QLineEdit *edit = qobject_cast(editor);
+ int pos = 0;
+ QString editText = edit->text();
+ if (m_Validator->validate(editText, pos) == QValidator::Acceptable) {
+ QItemDelegate::setModelData(editor, model, index);
+ }
+ }
+private:
+ QValidator *m_Validator;
+};
+
+
+CategoriesDialog::CategoriesDialog(QWidget *parent)
+ : TutorableDialog("Categories", parent), ui(new Ui::CategoriesDialog)
+{
+ ui->setupUi(this);
+ fillTable();
+ connect(ui->categoriesTable, SIGNAL(cellChanged(int,int)), this, SLOT(cellChanged(int,int)));
+}
+
+CategoriesDialog::~CategoriesDialog()
+{
+ delete ui;
+}
+
+
+void CategoriesDialog::cellChanged(int row, int)
+{
+ int currentID = ui->categoriesTable->item(row, 0)->text().toInt();
+ if (currentID > m_HighestID) {
+ m_HighestID = currentID;
+ }
+}
+
+
+void CategoriesDialog::commitChanges()
+{
+ CategoryFactory &categories = CategoryFactory::instance();
+ categories.reset();
+
+ for (int i = 0; i < ui->categoriesTable->rowCount(); ++i) {
+ int index = ui->categoriesTable->verticalHeader()->logicalIndex(i);
+ QString nexusIDString = ui->categoriesTable->item(index, 2)->text();
+ QStringList nexusIDStringList = nexusIDString.split(',', QString::SkipEmptyParts);
+ std::vector nexusIDs;
+ for (QStringList::iterator iter = nexusIDStringList.begin();
+ iter != nexusIDStringList.end(); ++iter) {
+ nexusIDs.push_back(iter->toInt());
+ }
+
+ categories.addCategory(
+ ui->categoriesTable->item(index, 0)->text().toInt(),
+ ui->categoriesTable->item(index, 1)->text(),
+ nexusIDs,
+ ui->categoriesTable->item(index, 3)->text().toInt());
+ }
+ categories.setParents();
+
+ categories.saveCategories();
+}
+
+
+void CategoriesDialog::refreshIDs()
+{
+ m_HighestID = 0;
+ for (int i = 0; i < ui->categoriesTable->rowCount(); ++i) {
+ int id = ui->categoriesTable->item(i, 0)->text().toInt();
+ if (id > m_HighestID) {
+ m_HighestID = id;
+ }
+ m_IDs.insert(id);
+ }
+}
+
+
+void CategoriesDialog::fillTable()
+{
+ CategoryFactory &categories = CategoryFactory::instance();
+ QTableWidget *table = ui->categoriesTable;
+
+#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
+ table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
+ table->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
+ table->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Fixed);
+ table->horizontalHeader()->setSectionResizeMode(3, QHeaderView::Fixed);
+ table->verticalHeader()->setSectionsMovable(true);
+ table->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
+#else
+ table->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
+ table->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch);
+ table->horizontalHeader()->setResizeMode(2, QHeaderView::Fixed);
+ table->horizontalHeader()->setResizeMode(3, QHeaderView::Fixed);
+ table->verticalHeader()->setMovable(true);
+ table->verticalHeader()->setResizeMode(QHeaderView::Fixed);
+#endif
+
+
+ table->setItemDelegateForColumn(0, new ValidatingDelegate(this, new NewIDValidator(m_IDs)));
+ table->setItemDelegateForColumn(2, new ValidatingDelegate(this, new QRegExpValidator(QRegExp("([0-9]+)?(,[0-9]+)*"), this)));
+ table->setItemDelegateForColumn(3, new ValidatingDelegate(this, new ExistingIDValidator(m_IDs)));
+
+ int row = 0;
+ for (std::vector::const_iterator iter = categories.m_Categories.begin();
+ iter != categories.m_Categories.end(); ++iter, ++row) {
+ const CategoryFactory::Category &category = *iter;
+ if (category.m_ID == 0) {
+ --row;
+ continue;
+ }
+ table->insertRow(row);
+// table->setVerticalHeaderItem(row, new QTableWidgetItem(" "));
+
+ QScopedPointer idItem(new QTableWidgetItem());
+ idItem->setData(Qt::DisplayRole, category.m_ID);
+
+ QScopedPointer nameItem(new QTableWidgetItem(category.m_Name));
+ QScopedPointer nexusIDItem(new QTableWidgetItem(MOBase::VectorJoin(category.m_NexusIDs, ",")));
+ QScopedPointer parentIDItem(new QTableWidgetItem());
+ parentIDItem->setData(Qt::DisplayRole, category.m_ParentID);
+
+ table->setItem(row, 0, idItem.take());
+ table->setItem(row, 1, nameItem.take());
+ table->setItem(row, 2, nexusIDItem.take());
+ table->setItem(row, 3, parentIDItem.take());
+ }
+
+ refreshIDs();
+}
+
+
+void CategoriesDialog::addCategory_clicked()
+{
+ int row = m_ContextRow >= 0 ? m_ContextRow : 0;
+ ui->categoriesTable->insertRow(row);
+ ui->categoriesTable->setVerticalHeaderItem(row, new QTableWidgetItem(" "));
+ ui->categoriesTable->setItem(row, 0, new QTableWidgetItem(QString::number(++m_HighestID)));
+ ui->categoriesTable->setItem(row, 1, new QTableWidgetItem("new"));
+ ui->categoriesTable->setItem(row, 2, new QTableWidgetItem(""));
+ ui->categoriesTable->setItem(row, 3, new QTableWidgetItem("0"));
+}
+
+
+void CategoriesDialog::removeCategory_clicked()
+{
+ ui->categoriesTable->removeRow(m_ContextRow);
+}
+
+
+void CategoriesDialog::on_categoriesTable_customContextMenuRequested(const QPoint &pos)
+{
+ m_ContextRow = ui->categoriesTable->rowAt(pos.y());
+ QMenu menu;
+ menu.addAction(tr("Add"), this, SLOT(addCategory_clicked()));
+ menu.addAction(tr("Remove"), this, SLOT(removeCategory_clicked()));
+
+ menu.exec(ui->categoriesTable->mapToGlobal(pos));
+}
diff --git a/src/categoriesdialog.h b/src/categoriesdialog.h
index 67851618..72d2154d 100644
--- a/src/categoriesdialog.h
+++ b/src/categoriesdialog.h
@@ -1,71 +1,71 @@
-/*
-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 CATEGORIESDIALOG_H
-#define CATEGORIESDIALOG_H
-
-#include "tutorabledialog.h"
-#include
-
-namespace Ui {
-class CategoriesDialog;
-}
-
-/**
- * @brief Dialog that allows users to configure mod categories
- **/
-class CategoriesDialog : public MOBase::TutorableDialog
-{
- Q_OBJECT
-
-public:
-
- explicit CategoriesDialog(QWidget *parent = 0);
- ~CategoriesDialog();
-
- /**
- * @brief store changes here to the global categories store (categories.h)
- *
- **/
- void commitChanges();
-
-private slots:
-
- void on_categoriesTable_customContextMenuRequested(const QPoint &pos);
- void addCategory_clicked();
- void removeCategory_clicked();
- void cellChanged(int row, int column);
-
-private:
-
- void refreshIDs();
- void fillTable();
-
-private:
-
- Ui::CategoriesDialog *ui;
- int m_ContextRow;
-
- int m_HighestID;
- std::set m_IDs;
-
-};
-
-#endif // CATEGORIESDIALOG_H
-
+/*
+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