mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-28 16:09:43 +00:00
Use YAML files to translate MyGUI's localization tags
This commit is contained in:
parent
dfea7a6d01
commit
ccbb5e03fb
37 changed files with 396 additions and 125 deletions
|
@ -178,6 +178,7 @@
|
||||||
Feature #6700: Support windowed fullscreen
|
Feature #6700: Support windowed fullscreen
|
||||||
Feature #6706: Save the size of the Options window
|
Feature #6706: Save the size of the Options window
|
||||||
Feature #6721: [OpenMW-CS] Add option to open records in new window
|
Feature #6721: [OpenMW-CS] Add option to open records in new window
|
||||||
|
Feature #6867: Add a way to localize hardcoded strings in GUI
|
||||||
Task #6078: First person should not clear depth buffer
|
Task #6078: First person should not clear depth buffer
|
||||||
Task #6161: Refactor Sky to use shaders and be GLES/GL3 friendly
|
Task #6161: Refactor Sky to use shaders and be GLES/GL3 friendly
|
||||||
Task #6162: Refactor GUI to use shaders and to be GLES and GL3+ friendly
|
Task #6162: Refactor GUI to use shaders and to be GLES and GL3+ friendly
|
||||||
|
|
|
@ -852,6 +852,7 @@ void OMW::Engine::prepareEngine()
|
||||||
mEnvironment.setWorld(*mWorld);
|
mEnvironment.setWorld(*mWorld);
|
||||||
|
|
||||||
mWindowManager->setStore(mWorld->getStore());
|
mWindowManager->setStore(mWorld->getStore());
|
||||||
|
mLuaManager->initL10n();
|
||||||
mWindowManager->initUI();
|
mWindowManager->initUI();
|
||||||
|
|
||||||
//Load translation data
|
//Load translation data
|
||||||
|
|
|
@ -31,6 +31,7 @@ namespace MWBase
|
||||||
public:
|
public:
|
||||||
virtual ~LuaManager() = default;
|
virtual ~LuaManager() = default;
|
||||||
|
|
||||||
|
virtual std::string translate(const std::string& contextName, const std::string& key) = 0;
|
||||||
virtual void newGameStarted() = 0;
|
virtual void newGameStarted() = 0;
|
||||||
virtual void gameLoaded() = 0;
|
virtual void gameLoaded() = 0;
|
||||||
virtual void registerObject(const MWWorld::Ptr& ptr) = 0;
|
virtual void registerObject(const MWWorld::Ptr& ptr) = 0;
|
||||||
|
|
|
@ -92,12 +92,14 @@ namespace MWGui
|
||||||
// - Shader editor
|
// - Shader editor
|
||||||
|
|
||||||
MyGUI::TabItem* itemLV = mTabControl->addItem("Log Viewer");
|
MyGUI::TabItem* itemLV = mTabControl->addItem("Log Viewer");
|
||||||
|
itemLV->setCaptionWithReplacing("#{DebugMenu:LogViewer}");
|
||||||
mLogView = itemLV->createWidgetReal<MyGUI::EditBox>
|
mLogView = itemLV->createWidgetReal<MyGUI::EditBox>
|
||||||
("LogEdit", MyGUI::FloatCoord(0,0,1,1), MyGUI::Align::Stretch);
|
("LogEdit", MyGUI::FloatCoord(0,0,1,1), MyGUI::Align::Stretch);
|
||||||
mLogView->setEditReadOnly(true);
|
mLogView->setEditReadOnly(true);
|
||||||
|
|
||||||
#ifndef BT_NO_PROFILE
|
#ifndef BT_NO_PROFILE
|
||||||
MyGUI::TabItem* item = mTabControl->addItem("Physics Profiler");
|
MyGUI::TabItem* item = mTabControl->addItem("Physics Profiler");
|
||||||
|
item->setCaptionWithReplacing("#{DebugMenu:PhysicsProfiler}");
|
||||||
mBulletProfilerEdit = item->createWidgetReal<MyGUI::EditBox>
|
mBulletProfilerEdit = item->createWidgetReal<MyGUI::EditBox>
|
||||||
("LogEdit", MyGUI::FloatCoord(0,0,1,1), MyGUI::Align::Stretch);
|
("LogEdit", MyGUI::FloatCoord(0,0,1,1), MyGUI::Align::Stretch);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -316,7 +316,7 @@ namespace MWGui
|
||||||
|
|
||||||
std::ostringstream ss;
|
std::ostringstream ss;
|
||||||
|
|
||||||
const std::string NA = "NA";
|
const std::string NA = "#{Interface:NotAvailableShort}";
|
||||||
const std::string endl = "\n";
|
const std::string endl = "\n";
|
||||||
|
|
||||||
std::string author = technique->getAuthor().empty() ? NA : std::string(technique->getAuthor());
|
std::string author = technique->getAuthor().empty() ? NA : std::string(technique->getAuthor());
|
||||||
|
@ -340,14 +340,14 @@ namespace MWGui
|
||||||
case fx::Technique::Status::Uncompiled:
|
case fx::Technique::Status::Uncompiled:
|
||||||
{
|
{
|
||||||
if (technique->getDynamic())
|
if (technique->getDynamic())
|
||||||
ss << "#{fontcolourhtml=header}Locked: #{fontcolourhtml=normal} Cannot be toggled or moved, controlled by external Lua script" << endl << endl;
|
ss << "#{fontcolourhtml=header}#{PostProcessing:ShaderLocked}: #{fontcolourhtml=normal} #{PostProcessing:ShaderLockedDescription}" << endl << endl;
|
||||||
ss << "#{fontcolourhtml=header}Author: #{fontcolourhtml=normal} " << author << endl << endl
|
ss << "#{fontcolourhtml=header}#{PostProcessing:Author}: #{fontcolourhtml=normal} " << author << endl << endl
|
||||||
<< "#{fontcolourhtml=header}Version: #{fontcolourhtml=normal} " << version << endl << endl
|
<< "#{fontcolourhtml=header}#{PostProcessing:Version}: #{fontcolourhtml=normal} " << version << endl << endl
|
||||||
<< "#{fontcolourhtml=header}Description: #{fontcolourhtml=normal} " << description << endl << endl
|
<< "#{fontcolourhtml=header}#{PostProcessing:Description}: #{fontcolourhtml=normal} " << description << endl << endl
|
||||||
<< "#{fontcolourhtml=header}Interiors: #{fontcolourhtml=normal} " << flag_interior
|
<< "#{fontcolourhtml=header}#{PostProcessing:InInteriors}: #{fontcolourhtml=normal} " << flag_interior
|
||||||
<< "#{fontcolourhtml=header} Exteriors: #{fontcolourhtml=normal} " << flag_exterior
|
<< "#{fontcolourhtml=header} #{PostProcessing:InExteriors}: #{fontcolourhtml=normal} " << flag_exterior
|
||||||
<< "#{fontcolourhtml=header} Underwater: #{fontcolourhtml=normal} " << flag_underwater
|
<< "#{fontcolourhtml=header} #{PostProcessing:Underwater}: #{fontcolourhtml=normal} " << flag_underwater
|
||||||
<< "#{fontcolourhtml=header} Abovewater: #{fontcolourhtml=normal} " << flag_abovewater;
|
<< "#{fontcolourhtml=header} #{PostProcessing:Abovewater}: #{fontcolourhtml=normal} " << flag_abovewater;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case fx::Technique::Status::Parse_Error:
|
case fx::Technique::Status::Parse_Error:
|
||||||
|
@ -365,7 +365,7 @@ namespace MWGui
|
||||||
if (technique->getUniformMap().size() > 0)
|
if (technique->getUniformMap().size() > 0)
|
||||||
{
|
{
|
||||||
MyGUI::Button* resetButton = mConfigArea->createWidget<MyGUI::Button>("MW_Button", {0,0,0,24}, MyGUI::Align::Default);
|
MyGUI::Button* resetButton = mConfigArea->createWidget<MyGUI::Button>("MW_Button", {0,0,0,24}, MyGUI::Align::Default);
|
||||||
resetButton->setCaption("Reset all to default");
|
resetButton->setCaptionWithReplacing("#{PostProcessing:ResetShader}");
|
||||||
resetButton->setTextAlign(MyGUI::Align::Center);
|
resetButton->setTextAlign(MyGUI::Align::Center);
|
||||||
resetButton->eventMouseWheel += MyGUI::newDelegate(this, &PostProcessorHud::notifyMouseWheel);
|
resetButton->eventMouseWheel += MyGUI::newDelegate(this, &PostProcessorHud::notifyMouseWheel);
|
||||||
resetButton->eventMouseButtonClick += MyGUI::newDelegate(this, &PostProcessorHud::notifyResetButtonClicked);
|
resetButton->eventMouseButtonClick += MyGUI::newDelegate(this, &PostProcessorHud::notifyResetButtonClicked);
|
||||||
|
|
|
@ -207,7 +207,7 @@ namespace MWGui
|
||||||
|
|
||||||
mCharacterSelection->setIndexSelected(selectedIndex);
|
mCharacterSelection->setIndexSelected(selectedIndex);
|
||||||
if (selectedIndex == MyGUI::ITEM_NONE)
|
if (selectedIndex == MyGUI::ITEM_NONE)
|
||||||
mCharacterSelection->setCaption("Select Character ...");
|
mCharacterSelection->setCaptionWithReplacing("#{SavegameMenu:SelectCharacter}");
|
||||||
|
|
||||||
fillSaveList();
|
fillSaveList();
|
||||||
|
|
||||||
|
@ -423,7 +423,7 @@ namespace MWGui
|
||||||
|
|
||||||
if (Settings::Manager::getBool("timeplayed","Saves"))
|
if (Settings::Manager::getBool("timeplayed","Saves"))
|
||||||
{
|
{
|
||||||
text << "\n" << "Time played: " << formatTimeplayed(mCurrentSlot->mProfile.mTimePlayed);
|
text << "\n" << "#{SavegameMenu:TimePlayed}: " << formatTimeplayed(mCurrentSlot->mProfile.mTimePlayed);
|
||||||
}
|
}
|
||||||
|
|
||||||
mInfoText->setCaptionWithReplacing(text.str());
|
mInfoText->setCaptionWithReplacing(text.str());
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <MyGUI_ScrollView.h>
|
#include <MyGUI_ScrollView.h>
|
||||||
#include <MyGUI_Gui.h>
|
#include <MyGUI_Gui.h>
|
||||||
#include <MyGUI_TabControl.h>
|
#include <MyGUI_TabControl.h>
|
||||||
|
#include <MyGUI_LanguageManager.h>
|
||||||
|
|
||||||
#include <SDL_video.h>
|
#include <SDL_video.h>
|
||||||
|
|
||||||
|
@ -37,12 +38,32 @@ namespace
|
||||||
{
|
{
|
||||||
std::string textureMipmappingToStr(const std::string& val)
|
std::string textureMipmappingToStr(const std::string& val)
|
||||||
{
|
{
|
||||||
if (val == "linear") return "Trilinear";
|
if (val == "linear") return "#{SettingsMenu:TextureFilteringTrilinear}";
|
||||||
if (val == "nearest") return "Bilinear";
|
if (val == "nearest") return "#{SettingsMenu:TextureFilteringBilinear}";
|
||||||
if (val != "none")
|
if (val == "none") return "#{SettingsMenu:TextureFilteringDisabled}";
|
||||||
Log(Debug::Warning) << "Warning: Invalid texture mipmap option: "<< val;
|
|
||||||
|
|
||||||
return "Other";
|
Log(Debug::Warning) << "Warning: Invalid texture mipmap option: "<< val;
|
||||||
|
return "#{SettingsMenu:TextureFilteringOther}";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string lightingMethodToStr(SceneUtil::LightingMethod method)
|
||||||
|
{
|
||||||
|
std::string result;
|
||||||
|
switch (method)
|
||||||
|
{
|
||||||
|
case SceneUtil::LightingMethod::FFP:
|
||||||
|
result = "#{SettingsMenu:LightingMethodLegacy}";
|
||||||
|
break;
|
||||||
|
case SceneUtil::LightingMethod::PerObjectUniform:
|
||||||
|
result = "#{SettingsMenu:LightingMethodShadersCompatibility}";
|
||||||
|
break;
|
||||||
|
case SceneUtil::LightingMethod::SingleUBO:
|
||||||
|
default:
|
||||||
|
result = "#{SettingsMenu:LightingMethodShaders}";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return MyGUI::LanguageManager::getInstance().replaceTags(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
void parseResolution (int &x, int &y, const std::string& str)
|
void parseResolution (int &x, int &y, const std::string& str)
|
||||||
|
@ -306,7 +327,7 @@ namespace MWGui
|
||||||
highlightCurrentResolution();
|
highlightCurrentResolution();
|
||||||
|
|
||||||
std::string tmip = Settings::Manager::getString("texture mipmap", "General");
|
std::string tmip = Settings::Manager::getString("texture mipmap", "General");
|
||||||
mTextureFilteringButton->setCaption(textureMipmappingToStr(tmip));
|
mTextureFilteringButton->setCaptionWithReplacing(textureMipmappingToStr(tmip));
|
||||||
|
|
||||||
int waterTextureSize = Settings::Manager::getInt("rtt size", "Water");
|
int waterTextureSize = Settings::Manager::getInt("rtt size", "Water");
|
||||||
if (waterTextureSize >= 512)
|
if (waterTextureSize >= 512)
|
||||||
|
@ -426,10 +447,10 @@ namespace MWGui
|
||||||
if (pos == MyGUI::ITEM_NONE)
|
if (pos == MyGUI::ITEM_NONE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::string message = "This change requires a restart to take effect.";
|
MWBase::Environment::get().getWindowManager()->interactiveMessageBox("#{SettingsMenu:ChangeRequiresRestart}", {"#{sOK}"}, true);
|
||||||
MWBase::Environment::get().getWindowManager()->interactiveMessageBox(message, {"#{sOK}"}, true);
|
|
||||||
|
|
||||||
Settings::Manager::setString("lighting method", "Shaders", _sender->getItemNameAt(pos));
|
const auto settingsNames = _sender->getUserData<std::vector<std::string>>();
|
||||||
|
Settings::Manager::setString("lighting method", "Shaders", settingsNames->at(pos));
|
||||||
apply();
|
apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -454,8 +475,7 @@ namespace MWGui
|
||||||
void SettingsWindow::onLightsResetButtonClicked(MyGUI::Widget* _sender)
|
void SettingsWindow::onLightsResetButtonClicked(MyGUI::Widget* _sender)
|
||||||
{
|
{
|
||||||
std::vector<std::string> buttons = {"#{sYes}", "#{sNo}"};
|
std::vector<std::string> buttons = {"#{sYes}", "#{sNo}"};
|
||||||
std::string message = "Resets to default values, would you like to continue? Changes to lighting method will require a restart.";
|
MWBase::Environment::get().getWindowManager()->interactiveMessageBox("#{SettingsMenu:LightingResetToDefaults}", buttons, true);
|
||||||
MWBase::Environment::get().getWindowManager()->interactiveMessageBox(message, buttons, true);
|
|
||||||
int selectedButton = MWBase::Environment::get().getWindowManager()->readPressedButton();
|
int selectedButton = MWBase::Environment::get().getWindowManager()->readPressedButton();
|
||||||
if (selectedButton == 1 || selectedButton == -1)
|
if (selectedButton == 1 || selectedButton == -1)
|
||||||
return;
|
return;
|
||||||
|
@ -471,7 +491,9 @@ namespace MWGui
|
||||||
for (const auto& setting : settings)
|
for (const auto& setting : settings)
|
||||||
Settings::Manager::setString(setting, "Shaders", Settings::Manager::mDefaultSettings[{"Shaders", setting}]);
|
Settings::Manager::setString(setting, "Shaders", Settings::Manager::mDefaultSettings[{"Shaders", setting}]);
|
||||||
|
|
||||||
mLightingMethodButton->setIndexSelected(mLightingMethodButton->findItemIndexWith(Settings::Manager::mDefaultSettings[{"Shaders", "lighting method"}]));
|
auto lightingMethod = SceneUtil::LightManager::getLightingMethodFromString(Settings::Manager::mDefaultSettings[{"Shaders", "lighting method"}]);
|
||||||
|
auto lightIndex = mLightingMethodButton->findItemIndexWith(lightingMethodToStr(lightingMethod));
|
||||||
|
mLightingMethodButton->setIndexSelected(lightIndex);
|
||||||
updateMaxLightsComboBox(mMaxLights);
|
updateMaxLightsComboBox(mMaxLights);
|
||||||
|
|
||||||
apply();
|
apply();
|
||||||
|
@ -636,7 +658,7 @@ namespace MWGui
|
||||||
void SettingsWindow::updateLightSettings()
|
void SettingsWindow::updateLightSettings()
|
||||||
{
|
{
|
||||||
auto lightingMethod = MWBase::Environment::get().getResourceSystem()->getSceneManager()->getLightingMethod();
|
auto lightingMethod = MWBase::Environment::get().getResourceSystem()->getSceneManager()->getLightingMethod();
|
||||||
std::string lightingMethodStr = SceneUtil::LightManager::getLightingMethodString(lightingMethod);
|
std::string lightingMethodStr = lightingMethodToStr(lightingMethod);
|
||||||
|
|
||||||
mLightingMethodButton->removeAllItems();
|
mLightingMethodButton->removeAllItems();
|
||||||
|
|
||||||
|
@ -646,14 +668,17 @@ namespace MWGui
|
||||||
SceneUtil::LightingMethod::SingleUBO,
|
SceneUtil::LightingMethod::SingleUBO,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::vector<std::string> userData;
|
||||||
for (const auto& method : methods)
|
for (const auto& method : methods)
|
||||||
{
|
{
|
||||||
if (!MWBase::Environment::get().getResourceSystem()->getSceneManager()->isSupportedLightingMethod(method))
|
if (!MWBase::Environment::get().getResourceSystem()->getSceneManager()->isSupportedLightingMethod(method))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
mLightingMethodButton->addItem(SceneUtil::LightManager::getLightingMethodString(method));
|
mLightingMethodButton->addItem(lightingMethodToStr(method));
|
||||||
|
userData.emplace_back(SceneUtil::LightManager::getLightingMethodString(method));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mLightingMethodButton->setUserData(userData);
|
||||||
mLightingMethodButton->setIndexSelected(mLightingMethodButton->findItemIndexWith(lightingMethodStr));
|
mLightingMethodButton->setIndexSelected(mLightingMethodButton->findItemIndexWith(lightingMethodStr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
#include <components/lua_ui/util.hpp>
|
#include <components/lua_ui/util.hpp>
|
||||||
|
|
||||||
#include "../mwbase/inputmanager.hpp"
|
#include "../mwbase/inputmanager.hpp"
|
||||||
|
#include "../mwbase/luamanager.hpp"
|
||||||
#include "../mwbase/statemanager.hpp"
|
#include "../mwbase/statemanager.hpp"
|
||||||
#include "../mwbase/soundmanager.hpp"
|
#include "../mwbase/soundmanager.hpp"
|
||||||
#include "../mwbase/world.hpp"
|
#include "../mwbase/world.hpp"
|
||||||
|
@ -1065,12 +1066,27 @@ namespace MWGui
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
std::vector<std::string> split;
|
||||||
|
Misc::StringUtils::split(tag, split, ":");
|
||||||
|
|
||||||
|
// TODO: LocalizationManager should not be a part of lua
|
||||||
|
const auto& luaManager = MWBase::Environment::get().getLuaManager();
|
||||||
|
|
||||||
|
// If a key has a "Context:KeyName" format, use YAML to translate data
|
||||||
|
if (split.size() == 2 && luaManager != nullptr)
|
||||||
|
{
|
||||||
|
_result = luaManager->translate(split[0], split[1]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If not, treat is as GMST name from legacy localization
|
||||||
if (!mStore)
|
if (!mStore)
|
||||||
{
|
{
|
||||||
Log(Debug::Error) << "Error: WindowManager::onRetrieveTag: no Store set up yet, can not replace '" << tag << "'";
|
Log(Debug::Error) << "Error: WindowManager::onRetrieveTag: no Store set up yet, can not replace '" << tag << "'";
|
||||||
|
_result = tag;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const ESM::GameSetting *setting = mStore->get<ESM::GameSetting>().find(tag);
|
const ESM::GameSetting *setting = mStore->get<ESM::GameSetting>().search(tag);
|
||||||
|
|
||||||
if (setting && setting->mValue.getType()==ESM::VT_String)
|
if (setting && setting->mValue.getType()==ESM::VT_String)
|
||||||
_result = setting->mValue.getString();
|
_result = setting->mValue.getString();
|
||||||
|
|
|
@ -426,13 +426,13 @@ namespace MWInput
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case A_Screenshot:
|
case A_Screenshot:
|
||||||
return "Screenshot";
|
return "#{SettingsMenu:Screenshot}";
|
||||||
case A_ZoomIn:
|
case A_ZoomIn:
|
||||||
return "Zoom In";
|
return "#{SettingsMenu:CameraZoomIn}";
|
||||||
case A_ZoomOut:
|
case A_ZoomOut:
|
||||||
return "Zoom Out";
|
return "#{SettingsMenu:CameraZoomOut}";
|
||||||
case A_ToggleHUD:
|
case A_ToggleHUD:
|
||||||
return "Toggle HUD";
|
return "#{SettingsMenu:ToggleHUD}";
|
||||||
case A_Use:
|
case A_Use:
|
||||||
return "#{sUse}";
|
return "#{sUse}";
|
||||||
case A_Activate:
|
case A_Activate:
|
||||||
|
@ -504,7 +504,7 @@ namespace MWInput
|
||||||
case A_QuickLoad:
|
case A_QuickLoad:
|
||||||
return "#{sQuickLoadCmd}";
|
return "#{sQuickLoadCmd}";
|
||||||
case A_TogglePostProcessorHUD:
|
case A_TogglePostProcessorHUD:
|
||||||
return "Toggle Post Processor HUD";
|
return "#{SettingsMenu:TogglePostProcessorHUD}";
|
||||||
default:
|
default:
|
||||||
return std::string(); // not configurable
|
return std::string(); // not configurable
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,14 @@ namespace MWLua
|
||||||
mGlobalScripts.setAutoStartConf(mConfiguration.getGlobalConf());
|
mGlobalScripts.setAutoStartConf(mConfiguration.getGlobalConf());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LuaManager::initL10n()
|
||||||
|
{
|
||||||
|
mL10n.init();
|
||||||
|
std::vector<std::string> preferredLocales;
|
||||||
|
Misc::StringUtils::split(Settings::Manager::getString("preferred locales", "General"), preferredLocales, ", ");
|
||||||
|
mL10n.setPreferredLocales(preferredLocales);
|
||||||
|
}
|
||||||
|
|
||||||
void LuaManager::init()
|
void LuaManager::init()
|
||||||
{
|
{
|
||||||
Context context;
|
Context context;
|
||||||
|
@ -71,11 +79,6 @@ namespace MWLua
|
||||||
localContext.mIsGlobal = false;
|
localContext.mIsGlobal = false;
|
||||||
localContext.mSerializer = mLocalSerializer.get();
|
localContext.mSerializer = mLocalSerializer.get();
|
||||||
|
|
||||||
mL10n.init();
|
|
||||||
std::vector<std::string> preferredLocales;
|
|
||||||
Misc::StringUtils::split(Settings::Manager::getString("preferred locales", "General"), preferredLocales, ", ");
|
|
||||||
mL10n.setPreferredLocales(preferredLocales);
|
|
||||||
|
|
||||||
initObjectBindingsForGlobalScripts(context);
|
initObjectBindingsForGlobalScripts(context);
|
||||||
initCellBindingsForGlobalScripts(context);
|
initCellBindingsForGlobalScripts(context);
|
||||||
initObjectBindingsForLocalScripts(localContext);
|
initObjectBindingsForLocalScripts(localContext);
|
||||||
|
@ -103,6 +106,11 @@ namespace MWLua
|
||||||
mInitialized = true;
|
mInitialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string LuaManager::translate(const std::string& contextName, const std::string& key)
|
||||||
|
{
|
||||||
|
return mL10n.translate(contextName, key);
|
||||||
|
}
|
||||||
|
|
||||||
void LuaManager::loadPermanentStorage(const std::string& userConfigPath)
|
void LuaManager::loadPermanentStorage(const std::string& userConfigPath)
|
||||||
{
|
{
|
||||||
auto globalPath = std::filesystem::path(userConfigPath) / "global_storage.bin";
|
auto globalPath = std::filesystem::path(userConfigPath) / "global_storage.bin";
|
||||||
|
|
|
@ -29,6 +29,9 @@ namespace MWLua
|
||||||
public:
|
public:
|
||||||
LuaManager(const VFS::Manager* vfs, const std::string& libsDir);
|
LuaManager(const VFS::Manager* vfs, const std::string& libsDir);
|
||||||
|
|
||||||
|
// Called by engine.cpp before UI setup.
|
||||||
|
void initL10n();
|
||||||
|
|
||||||
// Called by engine.cpp when the environment is fully initialized.
|
// Called by engine.cpp when the environment is fully initialized.
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
|
@ -39,6 +42,8 @@ namespace MWLua
|
||||||
// thread (in parallel with osg Cull). Can not use scene graph.
|
// thread (in parallel with osg Cull). Can not use scene graph.
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
|
std::string translate(const std::string& contextName, const std::string& key) override;
|
||||||
|
|
||||||
// Called by engine.cpp from the main thread. Can use scene graph.
|
// Called by engine.cpp from the main thread. Can use scene graph.
|
||||||
void synchronizedUpdate();
|
void synchronizedUpdate();
|
||||||
|
|
||||||
|
|
|
@ -218,7 +218,7 @@ namespace DetourNavigator
|
||||||
{
|
{
|
||||||
if (mSettings.get().mWaitUntilMinDistanceToPlayer == 0)
|
if (mSettings.get().mWaitUntilMinDistanceToPlayer == 0)
|
||||||
return;
|
return;
|
||||||
listener.setLabel("Building navigation mesh");
|
listener.setLabel("#{Navigation:BuildingNavigationMesh}");
|
||||||
const std::size_t initialJobsLeft = getTotalJobs();
|
const std::size_t initialJobsLeft = getTotalJobs();
|
||||||
std::size_t maxProgress = initialJobsLeft + mThreads.size();
|
std::size_t maxProgress = initialJobsLeft + mThreads.size();
|
||||||
listener.setProgressRange(maxProgress);
|
listener.setProgressRange(maxProgress);
|
||||||
|
|
|
@ -18,6 +18,12 @@ namespace LuaUtil
|
||||||
ctx[sol::meta_function::call] = &Context::translate;
|
ctx[sol::meta_function::call] = &Context::translate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string L10nManager::translate(const std::string& contextName, const std::string& key)
|
||||||
|
{
|
||||||
|
Context& ctx = getContext(contextName).as<Context>();
|
||||||
|
return ctx.translate(key, sol::nil);
|
||||||
|
}
|
||||||
|
|
||||||
void L10nManager::setPreferredLocales(const std::vector<std::string>& langs)
|
void L10nManager::setPreferredLocales(const std::vector<std::string>& langs)
|
||||||
{
|
{
|
||||||
mPreferredLocales.clear();
|
mPreferredLocales.clear();
|
||||||
|
|
|
@ -19,6 +19,7 @@ namespace LuaUtil
|
||||||
const std::vector<icu::Locale>& getPreferredLocales() const { return mPreferredLocales; }
|
const std::vector<icu::Locale>& getPreferredLocales() const { return mPreferredLocales; }
|
||||||
|
|
||||||
sol::object getContext(const std::string& contextName, const std::string& fallbackLocale = "en");
|
sol::object getContext(const std::string& contextName, const std::string& fallbackLocale = "en");
|
||||||
|
std::string translate(const std::string& contextName, const std::string& key);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct Context
|
struct Context
|
||||||
|
|
|
@ -1,9 +1,28 @@
|
||||||
#include "box.hpp"
|
#include "box.hpp"
|
||||||
|
|
||||||
#include <MyGUI_EditText.h>
|
#include <MyGUI_EditText.h>
|
||||||
|
#include <MyGUI_LanguageManager.h>
|
||||||
|
|
||||||
namespace Gui
|
namespace Gui
|
||||||
{
|
{
|
||||||
|
// TODO: Since 3.4.2 MyGUI is supposed to automatically translate tags
|
||||||
|
// If the 3.4.2 become a required minimum version, the ComboBox class may be removed.
|
||||||
|
void ComboBox::setPropertyOverride(const std::string& _key, const std::string& _value)
|
||||||
|
{
|
||||||
|
#if MYGUI_VERSION >= MYGUI_DEFINE_VERSION(3,4,2)
|
||||||
|
MyGUI::ComboBox::setPropertyOverride (_key, _value);
|
||||||
|
#else
|
||||||
|
if (_key == "AddItem")
|
||||||
|
{
|
||||||
|
const std::string value = MyGUI::LanguageManager::getInstance().replaceTags(_value);
|
||||||
|
MyGUI::ComboBox::setPropertyOverride (_key, value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MyGUI::ComboBox::setPropertyOverride (_key, _value);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void AutoSizedWidget::notifySizeChange (MyGUI::Widget* w)
|
void AutoSizedWidget::notifySizeChange (MyGUI::Widget* w)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,11 +5,20 @@
|
||||||
#include <MyGUI_TextBox.h>
|
#include <MyGUI_TextBox.h>
|
||||||
#include <MyGUI_EditBox.h>
|
#include <MyGUI_EditBox.h>
|
||||||
#include <MyGUI_Button.h>
|
#include <MyGUI_Button.h>
|
||||||
|
#include <MyGUI_ComboBox.h>
|
||||||
|
|
||||||
#include "fontwrapper.hpp"
|
#include "fontwrapper.hpp"
|
||||||
|
|
||||||
namespace Gui
|
namespace Gui
|
||||||
{
|
{
|
||||||
|
class ComboBox : public FontWrapper<MyGUI::ComboBox>
|
||||||
|
{
|
||||||
|
MYGUI_RTTI_DERIVED( ComboBox )
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void setPropertyOverride(const std::string& _key, const std::string& _value) override;
|
||||||
|
};
|
||||||
|
|
||||||
class Button : public FontWrapper<MyGUI::Button>
|
class Button : public FontWrapper<MyGUI::Button>
|
||||||
{
|
{
|
||||||
MYGUI_RTTI_DERIVED( Button )
|
MYGUI_RTTI_DERIVED( Button )
|
||||||
|
|
|
@ -28,6 +28,7 @@ namespace Gui
|
||||||
MyGUI::FactoryManager::getInstance().registerFactory<Gui::NumericEditBox>("Widget");
|
MyGUI::FactoryManager::getInstance().registerFactory<Gui::NumericEditBox>("Widget");
|
||||||
MyGUI::FactoryManager::getInstance().registerFactory<Gui::SharedStateButton>("Widget");
|
MyGUI::FactoryManager::getInstance().registerFactory<Gui::SharedStateButton>("Widget");
|
||||||
MyGUI::FactoryManager::getInstance().registerFactory<Gui::WindowCaption>("Widget");
|
MyGUI::FactoryManager::getInstance().registerFactory<Gui::WindowCaption>("Widget");
|
||||||
|
MyGUI::FactoryManager::getInstance().registerFactory<Gui::ComboBox>("Widget");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,10 +12,20 @@ set(BUILTIN_DATA_FILES
|
||||||
|
|
||||||
l10n/Calendar/en.yaml
|
l10n/Calendar/en.yaml
|
||||||
l10n/Calendar/ru.yaml
|
l10n/Calendar/ru.yaml
|
||||||
|
l10n/DebugMenu/en.yaml
|
||||||
|
l10n/DebugMenu/ru.yaml
|
||||||
l10n/Interface/en.yaml
|
l10n/Interface/en.yaml
|
||||||
l10n/Interface/ru.yaml
|
l10n/Interface/ru.yaml
|
||||||
|
l10n/Navigation/en.yaml
|
||||||
|
l10n/Navigation/ru.yaml
|
||||||
l10n/OMWCamera/en.yaml
|
l10n/OMWCamera/en.yaml
|
||||||
l10n/OMWCamera/ru.yaml
|
l10n/OMWCamera/ru.yaml
|
||||||
|
l10n/PostProcessing/en.yaml
|
||||||
|
l10n/PostProcessing/ru.yaml
|
||||||
|
l10n/SavegameMenu/en.yaml
|
||||||
|
l10n/SavegameMenu/ru.yaml
|
||||||
|
l10n/SettingsMenu/en.yaml
|
||||||
|
l10n/SettingsMenu/ru.yaml
|
||||||
|
|
||||||
openmw_aux/util.lua
|
openmw_aux/util.lua
|
||||||
openmw_aux/time.lua
|
openmw_aux/time.lua
|
||||||
|
|
3
files/data/l10n/DebugMenu/en.yaml
Normal file
3
files/data/l10n/DebugMenu/en.yaml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
DebugWindow: "Debug"
|
||||||
|
LogViewer: "Log Viewer"
|
||||||
|
PhysicsProfiler: "Physics Profiler"
|
3
files/data/l10n/DebugMenu/ru.yaml
Normal file
3
files/data/l10n/DebugMenu/ru.yaml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
DebugWindow: "Меню отладки"
|
||||||
|
LogViewer: "Журнал логов"
|
||||||
|
PhysicsProfiler: "Профилировщик физики"
|
|
@ -1,3 +1,4 @@
|
||||||
Yes: "Yes"
|
|
||||||
No: "No"
|
No: "No"
|
||||||
Reset: "Reset"
|
NotAvailableShort: "N/A"
|
||||||
|
Reset: "Reset"
|
||||||
|
Yes: "Yes"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
Yes: "Да"
|
|
||||||
No: "Нет"
|
No: "Нет"
|
||||||
|
NotAvailableShort: "Н/Д"
|
||||||
Reset: "Обнулить"
|
Reset: "Обнулить"
|
||||||
|
Yes: "Да"
|
||||||
|
|
1
files/data/l10n/Navigation/en.yaml
Normal file
1
files/data/l10n/Navigation/en.yaml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
BuildingNavigationMesh: "Building navigation mesh"
|
1
files/data/l10n/Navigation/ru.yaml
Normal file
1
files/data/l10n/Navigation/ru.yaml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
BuildingNavigationMesh: "Построение навигационной сетки"
|
20
files/data/l10n/PostProcessing/en.yaml
Normal file
20
files/data/l10n/PostProcessing/en.yaml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Abovewater: "Abovewater"
|
||||||
|
Author: "Author"
|
||||||
|
Configuration: "Configuration"
|
||||||
|
Description: "Description"
|
||||||
|
InExteriors: "Exteriors"
|
||||||
|
InInteriors: "Interiors"
|
||||||
|
KeyboardControls: |
|
||||||
|
Keyboard controls:
|
||||||
|
|
||||||
|
Shift+Right-Arrow > Activate shader
|
||||||
|
Shift+Left-Arrow > Deactive shader
|
||||||
|
Shift+Up-Arrow > Move shader up
|
||||||
|
Shift+Down-Arrow > Move shader down
|
||||||
|
PostProcessHUD: "Postprocess HUD"
|
||||||
|
ResetShader: "Reset shader to default state"
|
||||||
|
ShaderLocked: "Locked"
|
||||||
|
ShaderLockedDescription: "Cannot be toggled or moved, controlled by external Lua script"
|
||||||
|
ShaderResetUniform: "r"
|
||||||
|
Underwater: "Underwater"
|
||||||
|
Version: "Version"
|
20
files/data/l10n/PostProcessing/ru.yaml
Normal file
20
files/data/l10n/PostProcessing/ru.yaml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Abovewater: "Над водой"
|
||||||
|
Author: "Автор"
|
||||||
|
Configuration: "Настройки"
|
||||||
|
Description: "Описание"
|
||||||
|
InExteriors: "Вне помещений"
|
||||||
|
InInteriors: "В помещениях"
|
||||||
|
KeyboardControls: |
|
||||||
|
Управление с помощью клавиатуры:
|
||||||
|
|
||||||
|
Shift+Right-Arrow > Включить шейдер
|
||||||
|
Shift+Left-Arrow > Выключить шейдер
|
||||||
|
Shift+Up-Arrow > Передвинуть шейдер выше
|
||||||
|
Shift+Down-Arrow > Передвинуть шейдер ниже
|
||||||
|
PostProcessHUD: "Настройки постобработки"
|
||||||
|
ResetShader: "Обнулить настройки этого шейдера"
|
||||||
|
ShaderLocked: "Заблокирован"
|
||||||
|
ShaderLockedDescription: "Не может быть выключен или перемещен, управляется внешним Lua-скриптом"
|
||||||
|
ShaderResetUniform: "x"
|
||||||
|
Underwater: "Под водой"
|
||||||
|
Version: "Версия"
|
2
files/data/l10n/SavegameMenu/en.yaml
Normal file
2
files/data/l10n/SavegameMenu/en.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
SelectCharacter: "Select Character..."
|
||||||
|
TimePlayed: "Time played"
|
2
files/data/l10n/SavegameMenu/ru.yaml
Normal file
2
files/data/l10n/SavegameMenu/ru.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
SelectCharacter: "Выберите персонажа..."
|
||||||
|
TimePlayed: "Время в игре"
|
59
files/data/l10n/SettingsMenu/en.yaml
Normal file
59
files/data/l10n/SettingsMenu/en.yaml
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
ActorsProcessingRange: "Actors Processing Range"
|
||||||
|
Anisotropy: "Anisotropy"
|
||||||
|
CameraSensitivity: "Camera Sensitivity"
|
||||||
|
CameraZoomIn: "Zoom Camera In"
|
||||||
|
CameraZoomOut: "Zoom Camera Out"
|
||||||
|
ChangeRequiresRestart: "This change requires a restart to take effect."
|
||||||
|
Controller: "Controller"
|
||||||
|
FieldOfView: "Field of View"
|
||||||
|
FrameRateHint: "Hint: press F3 to show\nthe current frame rate."
|
||||||
|
InvertXAxis: "Invert X Axis"
|
||||||
|
LightingMethod: "Lighting Method"
|
||||||
|
LightingMethodLegacy: "Legacy"
|
||||||
|
LightingMethodShaders: "Shaders"
|
||||||
|
LightingMethodShadersCompatibility: "Shaders (compatibility)"
|
||||||
|
LightingResetToDefaults: "Resets to default values, would you like to continue? Changes to lighting method will require a restart."
|
||||||
|
Lights: "Lights"
|
||||||
|
LightsBoundingSphereMultiplier: "Bounding Sphere Multiplier"
|
||||||
|
LightsBoundingSphereMultiplierTooltip: "Default: 1.65\nMultipler for bounding sphere of lights.\nHigher numbers allows for smooth falloff but require an increase in number of max lights.\n\nDoes not effect the illumination or strength of lights."
|
||||||
|
LightsFadeStartMultiplier: "Fade Start Multiplier"
|
||||||
|
LightsFadeStartMultiplierTooltip: "Default: 0.85\nFraction of maximum distance at which lights will start to fade.\n\nSet this to a low value for slower transitions or a high value for quicker transitions."
|
||||||
|
LightsMaximumDistance: "Maximum Light Distance"
|
||||||
|
LightsMaximumDistanceTooltip: "Default: 8192\nMaximum distance at which lights will appear (measured in units).\n\nSet this to 0 to use an unlimited distance."
|
||||||
|
LightsMinimumInteriorBrightness: "Minimum Interior Brightness"
|
||||||
|
LightsMinimumInteriorBrightnessTooltip: "Default: 0.08\nMinimum ambient interior brightness.\n\nIncrease this if you feel interiors are too dark."
|
||||||
|
MaxLights: "Max Lights"
|
||||||
|
MaxLightsTooltip: "Default: 8\nMaximum number of lights per object.\n\nA low number near default will cause light popping similar to what you would see with legacy lighting."
|
||||||
|
MouseAndKeyboard: "Mouse/Keyboard"
|
||||||
|
PostProcessing: "Post Processing"
|
||||||
|
PostProcessingTooltip: "Tweaked via Post Processor HUD, see input bindings."
|
||||||
|
RainRippleDetail: "Rain ripple detail"
|
||||||
|
RainRippleDetailDense: "Dense"
|
||||||
|
RainRippleDetailSimple: "Simple"
|
||||||
|
RainRippleDetailSparse: "Sparse"
|
||||||
|
ReflectionShaderDetail: "Reflection shader detail"
|
||||||
|
ReflectionShaderDetailActors: "Actors"
|
||||||
|
ReflectionShaderDetailGroundcover: "Groundcover"
|
||||||
|
ReflectionShaderDetailObjects: "Objects"
|
||||||
|
ReflectionShaderDetailSky: "Sky"
|
||||||
|
ReflectionShaderDetailTerrain: "Terrain"
|
||||||
|
ReflectionShaderDetailWorld: "World"
|
||||||
|
Refraction: "Refraction"
|
||||||
|
Screenshot: "Screenshot"
|
||||||
|
Scripts: "Scripts"
|
||||||
|
TextureFiltering: "Texture Filtering"
|
||||||
|
TextureFilteringBilinear: "Bilinear"
|
||||||
|
TextureFilteringDisabled: "None"
|
||||||
|
TextureFilteringOther: "Other"
|
||||||
|
TextureFilteringTrilinear: "Trilinear"
|
||||||
|
ToggleHUD: "Toggle HUD"
|
||||||
|
TogglePostProcessorHUD: "Toggle Post Processor HUD"
|
||||||
|
VSync: "VSync"
|
||||||
|
Water: "Water"
|
||||||
|
WaterShader: "Water shader"
|
||||||
|
WaterShaderTextureQuality: "Texture quality"
|
||||||
|
WindowBorder: "Window Border"
|
||||||
|
WindowMode: "Window Mode"
|
||||||
|
WindowModeFullscreen: "Fullscreen"
|
||||||
|
WindowModeWindowed: "Windowed"
|
||||||
|
WindowModeWindowedFullscreen: "Windowed Fullscreen"
|
59
files/data/l10n/SettingsMenu/ru.yaml
Normal file
59
files/data/l10n/SettingsMenu/ru.yaml
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
ActorsProcessingRange: "Дальность обработки персонажей"
|
||||||
|
Anisotropy: "Анизотропная фильтрация"
|
||||||
|
CameraSensitivity: "Чувствительность камеры"
|
||||||
|
CameraZoomIn: "Приблизить камеру"
|
||||||
|
CameraZoomOut: "Отдалить камеру"
|
||||||
|
ChangeRequiresRestart: "Чтобы это изменение вступило в силу, нужно перезапустить приложение."
|
||||||
|
Controller: "Геймпад"
|
||||||
|
FieldOfView: "Поле зрения"
|
||||||
|
FrameRateHint: "Подсказка: нажмите F3, чтобы показать\nтекущую частоту смены кадров."
|
||||||
|
InvertXAxis: "Инвертировать ось X"
|
||||||
|
LightingMethod: "Способ освещения"
|
||||||
|
LightingMethodLegacy: "Устаревший"
|
||||||
|
LightingMethodShaders: "Шейдеры"
|
||||||
|
LightingMethodShadersCompatibility: "Шейдеры (режим совместимости)"
|
||||||
|
LightingResetToDefaults: "Обнулить настройки освещения? Смена метода освещения вступит в силу только после перезапуска приложения."
|
||||||
|
Lights: "Освещение"
|
||||||
|
LightsBoundingSphereMultiplier: "Множитель размера ограничивающей сферы"
|
||||||
|
LightsBoundingSphereMultiplierTooltip: "Значение по умолчанию: 1.65\nМножитель размера ограничивающей сферы источников света.\nВысокие значения делают затухание света плавнее, но требуют более высокого максимального количества источников света.\n\nНастройка не влияет на уровень освещения или мощность источников света."
|
||||||
|
LightsFadeStartMultiplier: "Множитель начала затухания"
|
||||||
|
LightsFadeStartMultiplierTooltip: "Значение по умолчанию: 0.85\nДоля расстояния (относительно дальности отображения источников света), на которой свет начинает затухать.\n\nНизкие значения ведут к плавному затуханию, высокие - к резкому."
|
||||||
|
LightsMaximumDistance: "Дальность отображения источников света"
|
||||||
|
LightsMaximumDistanceTooltip: "Значение по умолчанию: 8192\nМаксимальное расстояние, на котором будут отображаться источники света (во внутриигровых единицах измерения).\n\nЕсли 0, то расстояние не ограничено."
|
||||||
|
LightsMinimumInteriorBrightness: "Минимальный уровень освещения в помещениях"
|
||||||
|
LightsMinimumInteriorBrightnessTooltip: "Значение по умолчанию: 0.08\nМинимальный уровень фонового освещения в помещениях.\n\nУвеличьте значение, если помещения в игре кажутся слишком темными."
|
||||||
|
MaxLights: "Макс. кол-во источников света"
|
||||||
|
MaxLightsTooltip: "Значение по умолчанию: 8\nМаксимальное количество источников света для каждого объекта.\n\nНизкие числа (близкие к значению по умолчанию) приводят к резким перепадам освещения, как при устаревшем методе освещения."
|
||||||
|
MouseAndKeyboard: "Мышь/Клавиатура"
|
||||||
|
PostProcessing: "Постобработка"
|
||||||
|
PostProcessingTooltip: "Настраивается через меню настроек постобработки, см. привязки клавиш."
|
||||||
|
RainRippleDetail: "Капли дождя на воде"
|
||||||
|
RainRippleDetailDense: "Плотные"
|
||||||
|
RainRippleDetailSimple: "Упрощенные"
|
||||||
|
RainRippleDetailSparse: "Редкие"
|
||||||
|
ReflectionShaderDetail: "Детализация отражений"
|
||||||
|
ReflectionShaderDetailActors: "Персонажи"
|
||||||
|
ReflectionShaderDetailGroundcover: "Трава"
|
||||||
|
ReflectionShaderDetailObjects: "Предметы"
|
||||||
|
ReflectionShaderDetailSky: "Небо"
|
||||||
|
ReflectionShaderDetailTerrain: "Ландшафт"
|
||||||
|
ReflectionShaderDetailWorld: "Мир"
|
||||||
|
Refraction: "Рефракция"
|
||||||
|
Screenshot: "Снимок экрана"
|
||||||
|
Scripts: "Скрипты"
|
||||||
|
TextureFiltering: "Фильтрация текстур"
|
||||||
|
TextureFilteringBilinear: "Билинейная"
|
||||||
|
TextureFilteringDisabled: "Отключена"
|
||||||
|
TextureFilteringOther: "Другая"
|
||||||
|
TextureFilteringTrilinear: "Трилинейная"
|
||||||
|
ToggleHUD: "Переключить HUD"
|
||||||
|
TogglePostProcessorHUD: "Меню настроек постобработки"
|
||||||
|
VSync: "Вертикальная синхронизация"
|
||||||
|
Water: "Вода"
|
||||||
|
WaterShader: "Шейдер воды"
|
||||||
|
WaterShaderTextureQuality: "Качество текстуры воды"
|
||||||
|
WindowBorder: "Рамка окна"
|
||||||
|
WindowMode: "Режим окна"
|
||||||
|
WindowModeFullscreen: "Полный экран"
|
||||||
|
WindowModeWindowed: "Оконный"
|
||||||
|
WindowModeWindowedFullscreen: "Оконный без полей"
|
|
@ -22,7 +22,7 @@
|
||||||
<Property key="Caption" value="#{sBack}"/>
|
<Property key="Caption" value="#{sBack}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" name="OKButton">
|
<Widget type="AutoSizedButton" skin="MW_Button" name="OKButton">
|
||||||
<Property key="Caption" value="OK"/>
|
<Property key="Caption" value="#{sOk}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MyGUI type="Layout">
|
<MyGUI type="Layout">
|
||||||
<Widget type="Window" skin="MW_Window" position="0 0 400 400" layer="Debug" name="_Main" align="Stretch">
|
<Widget type="Window" skin="MW_Window" position="0 0 400 400" layer="Debug" name="_Main" align="Stretch">
|
||||||
<Property key="Caption" value="Debug"/>
|
<Property key="Caption" value="#{DebugMenu:DebugWindow}"/>
|
||||||
<Property key="Visible" value="false"/>
|
<Property key="Visible" value="false"/>
|
||||||
|
|
||||||
<Widget type="Widget" skin="DialogBG" position_real="0 0 1 1" name="Background" align="Stretch">
|
<Widget type="Widget" skin="DialogBG" position_real="0 0 1 1" name="Background" align="Stretch">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MyGUI type="Layout">
|
<MyGUI type="Layout">
|
||||||
<Widget type="Window" skin="MW_Window" position="0 0 500 500" layer="Debug" name="_Main" align="Stretch">
|
<Widget type="Window" skin="MW_Window" position="0 0 500 500" layer="Debug" name="_Main" align="Stretch">
|
||||||
<Property key="Visible" value="false"/>
|
<Property key="Visible" value="false"/>
|
||||||
<Property key="Caption" value="Postprocess HUD"/>
|
<Property key="Caption" value="#{PostProcessing:PostProcessHUD}"/>
|
||||||
<Property key="MinSize" value="600 600"/>
|
<Property key="MinSize" value="600 600"/>
|
||||||
|
|
||||||
<Widget type="TabControl" skin="TabControl_NoBorder" position="8 8 468 450" align="Stretch" name="TabControl">
|
<Widget type="TabControl" skin="TabControl_NoBorder" position="8 8 468 450" align="Stretch" name="TabControl">
|
||||||
|
@ -12,17 +12,11 @@
|
||||||
<Property key="Caption" value="[?]"/>
|
<Property key="Caption" value="[?]"/>
|
||||||
<UserString key="ToolTipType" value="Layout"/>
|
<UserString key="ToolTipType" value="Layout"/>
|
||||||
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
||||||
<UserString key="Caption_Text" value="Keyboard controls:\n\n
|
<UserString key="Caption_Text" value="#{PostProcessing:KeyboardControls}"/>
|
||||||
Shift+Right-Arrow > Activate shader\n
|
|
||||||
Shift+Left-Arrow > Deactive shader\n
|
|
||||||
Shift+Up-Arrow > Move shader up\n
|
|
||||||
Shift+Down-Arrow > Move shader down\n
|
|
||||||
Hold Shift > Fine tune sliders\n
|
|
||||||
"/>
|
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="TabItem" skin="" position_real="0 0 1 1" name="TabConfiguration">
|
<Widget type="TabItem" skin="" position_real="0 0 1 1" name="TabConfiguration">
|
||||||
<Property key="Caption" value="Configuration"/>
|
<Property key="Caption" value="#{PostProcessing:Configuration}"/>
|
||||||
|
|
||||||
<Widget type="VBox" position_real="0 0.02 1 0.98" align="Stretch" name="Layout">
|
<Widget type="VBox" position_real="0 0.02 1 0.98" align="Stretch" name="Layout">
|
||||||
<Property key="Padding" value="0"/>
|
<Property key="Padding" value="0"/>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<Widget type="Button" skin="MW_ArrowLeft" position="0 0 12 12" align="VCenter Left" name="ButtonDecrease"/>
|
<Widget type="Button" skin="MW_ArrowLeft" position="0 0 12 12" align="VCenter Left" name="ButtonDecrease"/>
|
||||||
<Widget type="Widget" name="Dragger">
|
<Widget type="Widget" name="Dragger">
|
||||||
<Widget type="TextBox" skin="HeaderText" align="Stretch" name="Value">
|
<Widget type="TextBox" skin="HeaderText" align="Stretch" name="Value">
|
||||||
<Property key="Caption" value="NA"/>
|
<Property key="Caption" value="#{Interface:NotAvailableShort}"/>
|
||||||
<Property key="NeedMouse" value="false"/>
|
<Property key="NeedMouse" value="false"/>
|
||||||
<Property key="TextAlign" value="Center"/>
|
<Property key="TextAlign" value="Center"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<UserString key="HStretch" value="true"/>
|
<UserString key="HStretch" value="true"/>
|
||||||
<UserString key="VStretch" value="true"/>
|
<UserString key="VStretch" value="true"/>
|
||||||
<Property key="TextAlign" value="Center"/>
|
<Property key="TextAlign" value="Center"/>
|
||||||
<Property key="Caption" value="On"/>
|
<Property key="Caption" value="#{sOn}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" position="0 0 22 22" name="Reset">
|
<Widget type="AutoSizedButton" skin="MW_Button" position="0 0 22 22" name="Reset">
|
||||||
<UserString key="HStretch" value="false"/>
|
<UserString key="HStretch" value="false"/>
|
||||||
<UserString key="VStretch" value="false"/>
|
<UserString key="VStretch" value="false"/>
|
||||||
<Property key="Caption" value="r"/>
|
<Property key="Caption" value="#{PostProcessing:ShaderResetUniform}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="Widget" skin="BlackBG" position="0 0 225 22" name="Client">
|
<Widget type="Widget" skin="BlackBG" position="0 0 225 22" name="Client">
|
||||||
<UserString key="HStretch" value="false"/>
|
<UserString key="HStretch" value="false"/>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<Property key="Spacing" value="8"/>
|
<Property key="Spacing" value="8"/>
|
||||||
|
|
||||||
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" name="SelectCharacter">
|
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" name="SelectCharacter">
|
||||||
<Property key="Caption" value="Select Character"/>
|
<Property key="Caption" value="#{SavegameMenu:SelectCharacter}"/>
|
||||||
<UserString key="HStretch" value="true"/>
|
<UserString key="HStretch" value="true"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
|
|
|
@ -73,9 +73,9 @@
|
||||||
<Property key="TextAlign" value="Right"/>
|
<Property key="TextAlign" value="Right"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="Widget" position="4 184 352 54" align="Left Top HStretch">
|
<Widget type="Widget" position="4 184 400 54" align="Left Top HStretch">
|
||||||
<Widget type="TextBox" skin="NormalText" position="0 0 352 16" align="Left Top" name="ActorProcessingText">
|
<Widget type="TextBox" skin="NormalText" position="0 0 400 16" align="Left Top" name="ActorProcessingText">
|
||||||
<Property key="Caption" value="Actors Processing Range"/>
|
<Property key="Caption" value="#{SettingsMenu:ActorsProcessingRange}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ScrollBar" skin="MW_HScroll" position="0 20 352 14" align="Left Top HStretch">
|
<Widget type="ScrollBar" skin="MW_HScroll" position="0 20 352 14" align="Left Top HStretch">
|
||||||
<Property key="Range" value="3584"/>
|
<Property key="Range" value="3584"/>
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
<UserString key="SettingMin" value="3584"/>
|
<UserString key="SettingMin" value="3584"/>
|
||||||
<UserString key="SettingMax" value="7168"/>
|
<UserString key="SettingMax" value="7168"/>
|
||||||
<UserString key="SettingLabelWidget" value="ActorProcessingText"/>
|
<UserString key="SettingLabelWidget" value="ActorProcessingText"/>
|
||||||
<UserString key="SettingLabelCaption" value="Actors Processing Range (%s)"/>
|
<UserString key="SettingLabelCaption" value="#{SettingsMenu:ActorsProcessingRange} (%s)"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="TextBox" skin="SandText" position="0 38 352 16" align="Left Top">
|
<Widget type="TextBox" skin="SandText" position="0 38 352 16" align="Left Top">
|
||||||
<Property key="Caption" value="#{sLow}"/>
|
<Property key="Caption" value="#{sLow}"/>
|
||||||
|
@ -204,10 +204,10 @@
|
||||||
<Property key="Padding" value="0"/>
|
<Property key="Padding" value="0"/>
|
||||||
<Property key="Spacing" value="4"/>
|
<Property key="Spacing" value="4"/>
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" name="KeyboardButton">
|
<Widget type="AutoSizedButton" skin="MW_Button" name="KeyboardButton">
|
||||||
<Property key="Caption" value="Mouse/Keyboard"/>
|
<Property key="Caption" value="#{SettingsMenu:MouseAndKeyboard}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" name="ControllerButton">
|
<Widget type="AutoSizedButton" skin="MW_Button" name="ControllerButton">
|
||||||
<Property key="Caption" value="Controller"/>
|
<Property key="Caption" value="#{SettingsMenu:Controller}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
|
@ -219,14 +219,14 @@
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" position="4 194 137 24" align="Left Bottom" name="ResetControlsButton">
|
<Widget type="AutoSizedButton" skin="MW_Button" position="4 194 137 24" align="Left Bottom" name="ResetControlsButton">
|
||||||
<Property key="Caption" value="#{sControlsMenu1}"/>
|
<Property key="Caption" value="#{sControlsMenu1}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="HBox" position="4 224 380 24" align="Left Bottom">
|
<Widget type="HBox" position="4 224 600 24" align="Left Bottom">
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button">
|
<Widget type="AutoSizedButton" skin="MW_Button">
|
||||||
<UserString key="SettingCategory" value="Input"/>
|
<UserString key="SettingCategory" value="Input"/>
|
||||||
<UserString key="SettingName" value="invert x axis"/>
|
<UserString key="SettingName" value="invert x axis"/>
|
||||||
<UserString key="SettingType" value="CheckButton"/>
|
<UserString key="SettingType" value="CheckButton"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText">
|
<Widget type="AutoSizedTextBox" skin="SandText">
|
||||||
<Property key="Caption" value="Invert X Axis "/>
|
<Property key="Caption" value="#{SettingsMenu:InvertXAxis} "/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button">
|
<Widget type="AutoSizedButton" skin="MW_Button">
|
||||||
<UserString key="SettingCategory" value="Input"/>
|
<UserString key="SettingCategory" value="Input"/>
|
||||||
|
@ -238,7 +238,7 @@
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="TextBox" skin="NormalText" position="4 254 352 18" align="Left Bottom">
|
<Widget type="TextBox" skin="NormalText" position="4 254 352 18" align="Left Bottom">
|
||||||
<Property key="Caption" value="Camera Sensitivity"/>
|
<Property key="Caption" value="#{SettingsMenu:CameraSensitivity}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ScrollBar" skin="MW_HScroll" position="4 278 352 18" align="HStretch Bottom">
|
<Widget type="ScrollBar" skin="MW_HScroll" position="4 278 352 18" align="HStretch Bottom">
|
||||||
<Property key="Range" value="10000"/>
|
<Property key="Range" value="10000"/>
|
||||||
|
@ -274,26 +274,26 @@
|
||||||
<Widget type="TabControl" skin="TabControlInner" position="4 4 352 390" align="Stretch">
|
<Widget type="TabControl" skin="TabControlInner" position="4 4 352 390" align="Stretch">
|
||||||
<Property key="ButtonAutoWidth" value="true"/>
|
<Property key="ButtonAutoWidth" value="true"/>
|
||||||
<Widget type="TabItem">
|
<Widget type="TabItem">
|
||||||
<Property key="Caption" value=" Video "/>
|
<Property key="Caption" value=" #{sVideo} "/>
|
||||||
<Widget type="ListBox" skin="MW_List" position="0 4 170 215" align="Left Top" name="ResolutionList"/>
|
<Widget type="ListBox" skin="MW_List" position="0 4 170 215" align="Left Top" name="ResolutionList"/>
|
||||||
<Widget type="TextBox" skin="NormalText" position="182 4 170 18" align="Left Top">
|
<Widget type="TextBox" skin="NormalText" position="182 4 170 18" align="Left Top">
|
||||||
<Property key="Caption" value="Window Mode:"/>
|
<Property key="Caption" value="#{SettingsMenu:WindowMode}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="HBox" position="182 28 300 24">
|
<Widget type="HBox" position="182 28 400 24">
|
||||||
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" align="Left Top" name="WindowModeList">
|
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" align="Left Top" name="WindowModeList">
|
||||||
<Property key="AddItem" value="Fullscreen"/>
|
<Property key="AddItem" value="#{SettingsMenu:WindowModeFullscreen}"/>
|
||||||
<Property key="AddItem" value="Windowed Fullscreen"/>
|
<Property key="AddItem" value="#{SettingsMenu:WindowModeWindowedFullscreen}"/>
|
||||||
<Property key="AddItem" value="Windowed"/>
|
<Property key="AddItem" value="#{SettingsMenu:WindowModeWindowed}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="HBox" position="182 64 300 24">
|
<Widget type="HBox" position="182 64 400 24">
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" position="0 0 24 24" align="Left Top" name="VSyncButton">
|
<Widget type="AutoSizedButton" skin="MW_Button" position="0 0 24 24" align="Left Top" name="VSyncButton">
|
||||||
<UserString key="SettingCategory" value="Video"/>
|
<UserString key="SettingCategory" value="Video"/>
|
||||||
<UserString key="SettingName" value="vsync"/>
|
<UserString key="SettingName" value="vsync"/>
|
||||||
<UserString key="SettingType" value="CheckButton"/>
|
<UserString key="SettingType" value="CheckButton"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText" position="28 4 48 16" align="Left Top">
|
<Widget type="AutoSizedTextBox" skin="SandText" position="28 4 48 16" align="Left Top">
|
||||||
<Property key="Caption" value="VSync"/>
|
<Property key="Caption" value="#{SettingsMenu:VSync}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="HBox" position="182 94 300 24">
|
<Widget type="HBox" position="182 94 300 24">
|
||||||
|
@ -303,7 +303,7 @@
|
||||||
<UserString key="SettingType" value="CheckButton"/>
|
<UserString key="SettingType" value="CheckButton"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText" position="28 4 48 16" align="Left Top">
|
<Widget type="AutoSizedTextBox" skin="SandText" position="28 4 48 16" align="Left Top">
|
||||||
<Property key="Caption" value="Window border"/>
|
<Property key="Caption" value="#{SettingsMenu:WindowBorder}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="HBox" position="182 124 300 24">
|
<Widget type="HBox" position="182 124 300 24">
|
||||||
|
@ -313,15 +313,15 @@
|
||||||
<UserString key="SettingType" value="CheckButton"/>
|
<UserString key="SettingType" value="CheckButton"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText" position="28 4 48 16" align="Left Top">
|
<Widget type="AutoSizedTextBox" skin="SandText" position="28 4 48 16" align="Left Top">
|
||||||
<Property key="Caption" value="Post Processing"/>
|
<Property key="Caption" value="#{SettingsMenu:PostProcessing}"/>
|
||||||
<UserString key="ToolTipType" value="Layout"/>
|
<UserString key="ToolTipType" value="Layout"/>
|
||||||
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
||||||
<UserString key="Caption_Text" value="Press F2 to show the config HUD"/>
|
<UserString key="Caption_Text" value="#{SettingsMenu:PostProcessingTooltip}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText" position="182 154 300 32" align="Left Top">
|
<Widget type="AutoSizedTextBox" skin="SandText" position="182 154 300 32" align="Left Top">
|
||||||
<Property key="Caption" value="Hint: press F3 to show the current frame rate."/>
|
<Property key="Caption" value="#{SettingsMenu:FrameRateHint}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="TextBox" skin="NormalText" position="0 228 352 18" align="Left Top" name="FovText">
|
<Widget type="TextBox" skin="NormalText" position="0 228 352 18" align="Left Top" name="FovText">
|
||||||
|
@ -336,7 +336,7 @@
|
||||||
<UserString key="SettingMin" value="30"/>
|
<UserString key="SettingMin" value="30"/>
|
||||||
<UserString key="SettingMax" value="110"/>
|
<UserString key="SettingMax" value="110"/>
|
||||||
<UserString key="SettingLabelWidget" value="FovText"/>
|
<UserString key="SettingLabelWidget" value="FovText"/>
|
||||||
<UserString key="SettingLabelCaption" value="Field of View (%s)"/>
|
<UserString key="SettingLabelCaption" value="#{SettingsMenu:FieldOfView} (%s)"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="TextBox" skin="SandText" position="0 276 352 18" align="Left Top">
|
<Widget type="TextBox" skin="SandText" position="0 276 352 18" align="Left Top">
|
||||||
<Property key="Caption" value="#{sLow}"/>
|
<Property key="Caption" value="#{sLow}"/>
|
||||||
|
@ -369,20 +369,20 @@
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="TabItem">
|
<Widget type="TabItem">
|
||||||
<Property key="Caption" value=" Detail "/>
|
<Property key="Caption" value=" #{sDetail_Level} "/>
|
||||||
|
|
||||||
<Widget type="AutoSizedTextBox" skin="NormalText" align="Left Top">
|
<Widget type="AutoSizedTextBox" skin="NormalText" align="Left Top">
|
||||||
<Property key="Caption" value="Texture Filtering"/>
|
<Property key="Caption" value="#{SettingsMenu:TextureFiltering}"/>
|
||||||
<UserString key="VStretch" value="false"/>
|
<UserString key="VStretch" value="false"/>
|
||||||
<UserString key="HStretch" value="false"/>
|
<UserString key="HStretch" value="false"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ComboBox" align="Left Top" skin="MW_ComboBox" position="0 28 200 24" name="TextureFilteringButton">
|
<Widget type="ComboBox" align="Left Top" skin="MW_ComboBox" position="0 28 200 24" name="TextureFilteringButton">
|
||||||
<Property key="AddItem" value="Bilinear"/>
|
<Property key="AddItem" value="#{SettingsMenu:TextureFilteringBilinear}"/>
|
||||||
<Property key="AddItem" value="Trilinear"/>
|
<Property key="AddItem" value="#{SettingsMenu:TextureFilteringTrilinear}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="AutoSizedTextBox" skin="NormalText" position="0 58 200 18" name="AnisotropyLabel">
|
<Widget type="AutoSizedTextBox" skin="NormalText" position="0 58 200 18" name="AnisotropyLabel">
|
||||||
<Property key="Caption" value="Anisotropy"/>
|
<Property key="Caption" value="#{SettingsMenu:Anisotropy}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ScrollBar" skin="MW_HScroll" position="0 80 352 18" align="HStretch Top">
|
<Widget type="ScrollBar" skin="MW_HScroll" position="0 80 352 18" align="HStretch Top">
|
||||||
<Property key="Range" value="17"/>
|
<Property key="Range" value="17"/>
|
||||||
|
@ -391,7 +391,7 @@
|
||||||
<UserString key="SettingCategory" value="General"/>
|
<UserString key="SettingCategory" value="General"/>
|
||||||
<UserString key="SettingName" value="anisotropy"/>
|
<UserString key="SettingName" value="anisotropy"/>
|
||||||
<UserString key="SettingLabelWidget" value="AnisotropyLabel"/>
|
<UserString key="SettingLabelWidget" value="AnisotropyLabel"/>
|
||||||
<UserString key="SettingLabelCaption" value="Anisotropy (%s)"/>
|
<UserString key="SettingLabelCaption" value="#{SettingsMenu:Anisotropy} (%s)"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="AutoSizedTextBox" skin="NormalText" position="0 104 0 18" align="Left Top" name="RenderDistanceLabel">
|
<Widget type="AutoSizedTextBox" skin="NormalText" position="0 104 0 18" align="Left Top" name="RenderDistanceLabel">
|
||||||
|
@ -432,7 +432,7 @@
|
||||||
|
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="TabItem">
|
<Widget type="TabItem">
|
||||||
<Property key="Caption" value=" Water "/>
|
<Property key="Caption" value=" #{SettingsMenu:Water} "/>
|
||||||
|
|
||||||
<Widget type="VBox" position_real="0 0 1 1" align="Stretch">
|
<Widget type="VBox" position_real="0 0 1 1" align="Stretch">
|
||||||
|
|
||||||
|
@ -446,7 +446,7 @@
|
||||||
<UserString key="SettingType" value="CheckButton"/>
|
<UserString key="SettingType" value="CheckButton"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText">
|
<Widget type="AutoSizedTextBox" skin="SandText">
|
||||||
<Property key="Caption" value="Water shader"/>
|
<Property key="Caption" value="#{SettingsMenu:WaterShader}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
|
@ -460,14 +460,14 @@
|
||||||
<UserString key="SettingType" value="CheckButton"/>
|
<UserString key="SettingType" value="CheckButton"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText">
|
<Widget type="AutoSizedTextBox" skin="SandText">
|
||||||
<Property key="Caption" value="Refraction"/>
|
<Property key="Caption" value="#{SettingsMenu:Refraction}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
||||||
<UserString key="HStretch" value="true"/>
|
<UserString key="HStretch" value="true"/>
|
||||||
<Widget type="AutoSizedTextBox" skin="NormalText">
|
<Widget type="AutoSizedTextBox" skin="NormalText">
|
||||||
<Property key="Caption" value="Texture quality"/>
|
<Property key="Caption" value="#{SettingsMenu:WaterShaderTextureQuality}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="Spacer" />
|
<Widget type="Spacer" />
|
||||||
</Widget>
|
</Widget>
|
||||||
|
@ -476,9 +476,9 @@
|
||||||
<UserString key="HStretch" value="true"/>
|
<UserString key="HStretch" value="true"/>
|
||||||
<UserString key="VStretch" value="false"/>
|
<UserString key="VStretch" value="false"/>
|
||||||
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" align="Left Top" name="WaterTextureSize">
|
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" align="Left Top" name="WaterTextureSize">
|
||||||
<Property key="AddItem" value="Low"/>
|
<Property key="AddItem" value="#{sLow}"/>
|
||||||
<Property key="AddItem" value="Medium"/>
|
<Property key="AddItem" value="#{sMedium}"/>
|
||||||
<Property key="AddItem" value="High"/>
|
<Property key="AddItem" value="#{sHigh}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="Spacer" />
|
<Widget type="Spacer" />
|
||||||
</Widget>
|
</Widget>
|
||||||
|
@ -486,7 +486,7 @@
|
||||||
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
||||||
<UserString key="HStretch" value="true"/>
|
<UserString key="HStretch" value="true"/>
|
||||||
<Widget type="AutoSizedTextBox" skin="NormalText">
|
<Widget type="AutoSizedTextBox" skin="NormalText">
|
||||||
<Property key="Caption" value="Reflection shader detail"/>
|
<Property key="Caption" value="#{SettingsMenu:ReflectionShaderDetail}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="Spacer" />
|
<Widget type="Spacer" />
|
||||||
</Widget>
|
</Widget>
|
||||||
|
@ -495,12 +495,12 @@
|
||||||
<UserString key="VStretch" value="false"/>
|
<UserString key="VStretch" value="false"/>
|
||||||
|
|
||||||
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" align="Left Top" name="WaterReflectionDetail">
|
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" align="Left Top" name="WaterReflectionDetail">
|
||||||
<Property key="AddItem" value="Sky"/>
|
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailSky}"/>
|
||||||
<Property key="AddItem" value="Terrain"/>
|
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailTerrain}"/>
|
||||||
<Property key="AddItem" value="World"/>
|
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailWorld}"/>
|
||||||
<Property key="AddItem" value="Objects"/>
|
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailObjects}"/>
|
||||||
<Property key="AddItem" value="Actors"/>
|
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailActors}"/>
|
||||||
<Property key="AddItem" value="Groundcover"/>
|
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailGroundcover}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="Spacer" />
|
<Widget type="Spacer" />
|
||||||
</Widget>
|
</Widget>
|
||||||
|
@ -508,7 +508,7 @@
|
||||||
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
||||||
<UserString key="HStretch" value="true"/>
|
<UserString key="HStretch" value="true"/>
|
||||||
<Widget type="AutoSizedTextBox" skin="NormalText">
|
<Widget type="AutoSizedTextBox" skin="NormalText">
|
||||||
<Property key="Caption" value="Rain ripple detail"/>
|
<Property key="Caption" value="#{SettingsMenu:RainRippleDetail}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="Spacer" />
|
<Widget type="Spacer" />
|
||||||
</Widget>
|
</Widget>
|
||||||
|
@ -518,9 +518,9 @@
|
||||||
<UserString key="VStretch" value="false"/>
|
<UserString key="VStretch" value="false"/>
|
||||||
|
|
||||||
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" align="Left Top" name="WaterRainRippleDetail">
|
<Widget type="ComboBox" skin="MW_ComboBox" position="0 0 200 24" align="Left Top" name="WaterRainRippleDetail">
|
||||||
<Property key="AddItem" value="Simple"/>
|
<Property key="AddItem" value="#{SettingsMenu:RainRippleDetailSimple}"/>
|
||||||
<Property key="AddItem" value="Sparse"/>
|
<Property key="AddItem" value="#{SettingsMenu:RainRippleDetailSparse}"/>
|
||||||
<Property key="AddItem" value="Dense"/>
|
<Property key="AddItem" value="#{SettingsMenu:RainRippleDetailDense}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="Spacer" />
|
<Widget type="Spacer" />
|
||||||
</Widget>
|
</Widget>
|
||||||
|
@ -529,21 +529,21 @@
|
||||||
|
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="TabItem">
|
<Widget type="TabItem">
|
||||||
<Property key="Caption" value=" Lights "/>
|
<Property key="Caption" value=" #{SettingsMenu:Lights} "/>
|
||||||
<!-- Lighting Method -->
|
<!-- Lighting Method -->
|
||||||
<Widget type="TextBox" skin="NormalText" position="0 4 200 18" align="Left Top">
|
<Widget type="TextBox" skin="NormalText" position="0 4 250 18" align="Left Top">
|
||||||
<Property key="Caption" value="Lighting Method"/>
|
<Property key="Caption" value="#{SettingsMenu:LightingMethod}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ComboBox" skin="MW_ComboBox" position="0 28 200 24" align="Left Top" name="LightingMethodButton">
|
<Widget type="ComboBox" skin="MW_ComboBox" position="0 28 250 24" align="Left Top" name="LightingMethodButton">
|
||||||
<Property key="AddItem" value="legacy"/>
|
<Property key="AddItem" value="legacy"/>
|
||||||
<Property key="AddItem" value="shaders compatibility"/>
|
<Property key="AddItem" value="shaders compatibility"/>
|
||||||
<Property key="AddItem" value="shaders"/>
|
<Property key="AddItem" value="shaders"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<!-- Max Lights -->
|
<!-- Max Lights -->
|
||||||
<Widget type="TextBox" skin="NormalText" position="208 4 160 18" align="Left Top" name="MaxLightsText">
|
<Widget type="TextBox" skin="NormalText" position="258 4 350 18" align="Left Top" name="MaxLightsText">
|
||||||
<UserString key="ToolTipType" value="Layout"/>
|
<UserString key="ToolTipType" value="Layout"/>
|
||||||
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
||||||
<UserString key="Caption_Text" value="Default: 8\nMaximum number of lights per object.\n\nA low number near default will cause light popping similar to what you would see with legacy lighting."/>
|
<UserString key="Caption_Text" value="#{SettingsMenu:MaxLightsTooltip}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ScrollBar" position="0 0 0 0">
|
<Widget type="ScrollBar" position="0 0 0 0">
|
||||||
<UserString key="SettingType" value="Slider"/>
|
<UserString key="SettingType" value="Slider"/>
|
||||||
|
@ -551,9 +551,9 @@
|
||||||
<UserString key="SettingName" value="max lights"/>
|
<UserString key="SettingName" value="max lights"/>
|
||||||
<UserString key="SettingValueType" value="Integer"/>
|
<UserString key="SettingValueType" value="Integer"/>
|
||||||
<UserString key="SettingLabelWidget" value="MaxLightsText"/>
|
<UserString key="SettingLabelWidget" value="MaxLightsText"/>
|
||||||
<UserString key="SettingLabelCaption" value="Max Lights: (%s)"/>
|
<UserString key="SettingLabelCaption" value="#{SettingsMenu:MaxLights} (%s)"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ComboBox" skin="MW_ComboBox" position="208 28 200 24" align="Left Top" name="MaxLights">
|
<Widget type="ComboBox" skin="MW_ComboBox" position="258 28 250 24" align="Left Top" name="MaxLights">
|
||||||
<Property key="AddItem" value="8"/>
|
<Property key="AddItem" value="8"/>
|
||||||
<Property key="AddItem" value="16"/>
|
<Property key="AddItem" value="16"/>
|
||||||
<Property key="AddItem" value="24"/>
|
<Property key="AddItem" value="24"/>
|
||||||
|
@ -561,10 +561,10 @@
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ImageBox" skin="MW_HLine" position="0 54 360 18" align="Top HStretch"/>
|
<Widget type="ImageBox" skin="MW_HLine" position="0 54 360 18" align="Top HStretch"/>
|
||||||
<!-- Light Fade Start -->
|
<!-- Light Fade Start -->
|
||||||
<Widget type="TextBox" skin="NormalText" position="0 78 352 18" align="Left Top" name="MaxLightDistanceText">
|
<Widget type="TextBox" skin="NormalText" position="0 78 500 18" align="Left Top" name="MaxLightDistanceText">
|
||||||
<UserString key="ToolTipType" value="Layout"/>
|
<UserString key="ToolTipType" value="Layout"/>
|
||||||
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
||||||
<UserString key="Caption_Text" value="Default: 8192 (units)\nMaximum distance at which lights will appear.\n\nSet this to 0.0 to disable it."/>
|
<UserString key="Caption_Text" value="#{SettingsMenu:LightsMaximumDistanceTooltip}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ScrollBar" skin="MW_HScroll" position="0 104 352 18" align="HStretch Top">
|
<Widget type="ScrollBar" skin="MW_HScroll" position="0 104 352 18" align="HStretch Top">
|
||||||
<Property key="Range" value="8192"/>
|
<Property key="Range" value="8192"/>
|
||||||
|
@ -576,13 +576,13 @@
|
||||||
<UserString key="SettingName" value="maximum light distance"/>
|
<UserString key="SettingName" value="maximum light distance"/>
|
||||||
<UserString key="SettingValueType" value="Integer"/>
|
<UserString key="SettingValueType" value="Integer"/>
|
||||||
<UserString key="SettingLabelWidget" value="MaxLightDistanceText"/>
|
<UserString key="SettingLabelWidget" value="MaxLightDistanceText"/>
|
||||||
<UserString key="SettingLabelCaption" value="Maximum Light Distance (%s)"/>
|
<UserString key="SettingLabelCaption" value="#{SettingsMenu:LightsMaximumDistance} (%s)"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<!-- Light Fade Multiplier -->
|
<!-- Light Fade Multiplier -->
|
||||||
<Widget type="TextBox" skin="NormalText" position="0 128 352 18" align="Left Top" name="LightFadeMultiplierText">
|
<Widget type="TextBox" skin="NormalText" position="0 128 500 18" align="Left Top" name="LightFadeMultiplierText">
|
||||||
<UserString key="ToolTipType" value="Layout"/>
|
<UserString key="ToolTipType" value="Layout"/>
|
||||||
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
||||||
<UserString key="Caption_Text" value="Default: 0.85\nFraction of maximum distance at which lights will start to fade.\n\nSet this to a low value for slower transitions or a high value for quicker transitions."/>
|
<UserString key="Caption_Text" value="#{SettingsMenu:LightsFadeStartMultiplierTooltip}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ScrollBar" skin="MW_HScroll" position="0 152 352 18" align="HStretch Top">
|
<Widget type="ScrollBar" skin="MW_HScroll" position="0 152 352 18" align="HStretch Top">
|
||||||
<Property key="Range" value="10000"/>
|
<Property key="Range" value="10000"/>
|
||||||
|
@ -594,13 +594,13 @@
|
||||||
<UserString key="SettingMin" value="0.0"/>
|
<UserString key="SettingMin" value="0.0"/>
|
||||||
<UserString key="SettingMax" value="1.0"/>
|
<UserString key="SettingMax" value="1.0"/>
|
||||||
<UserString key="SettingLabelWidget" value="LightFadeMultiplierText"/>
|
<UserString key="SettingLabelWidget" value="LightFadeMultiplierText"/>
|
||||||
<UserString key="SettingLabelCaption" value="Fade Start Multiplier (%s)"/>
|
<UserString key="SettingLabelCaption" value="#{SettingsMenu:LightsFadeStartMultiplier} (%s)"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<!-- Bounding Sphere Multiplier -->
|
<!-- Bounding Sphere Multiplier -->
|
||||||
<Widget type="TextBox" skin="NormalText" position="0 176 352 18" align="Left Top" name="BoundingSphereMultText">
|
<Widget type="TextBox" skin="NormalText" position="0 176 500 18" align="Left Top" name="BoundingSphereMultText">
|
||||||
<UserString key="ToolTipType" value="Layout"/>
|
<UserString key="ToolTipType" value="Layout"/>
|
||||||
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
||||||
<UserString key="Caption_Text" value="Default: 1.65\nMultipler for bounding sphere of lights.\nHigher numbers allows for smooth falloff but require an increase in number of max lights.\n\nDoes not effect the illumination or strength of lights."/>
|
<UserString key="Caption_Text" value="#{SettingsMenu:LightsBoundingSphereMultiplierTooltip}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ScrollBar" skin="MW_HScroll" position="0 200 352 18" align="HStretch Top">
|
<Widget type="ScrollBar" skin="MW_HScroll" position="0 200 352 18" align="HStretch Top">
|
||||||
<Property key="Range" value="500000"/>
|
<Property key="Range" value="500000"/>
|
||||||
|
@ -612,13 +612,13 @@
|
||||||
<UserString key="SettingName" value="light bounds multiplier"/>
|
<UserString key="SettingName" value="light bounds multiplier"/>
|
||||||
<UserString key="SettingValueType" value="Float"/>
|
<UserString key="SettingValueType" value="Float"/>
|
||||||
<UserString key="SettingLabelWidget" value="BoundingSphereMultText"/>
|
<UserString key="SettingLabelWidget" value="BoundingSphereMultText"/>
|
||||||
<UserString key="SettingLabelCaption" value="Bounding Sphere Multiplier (%s)"/>
|
<UserString key="SettingLabelCaption" value="#{SettingsMenu:LightsBoundingSphereMultiplier} (%s)"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<!-- Minimum Ambient Brightness -->
|
<!-- Minimum Ambient Brightness -->
|
||||||
<Widget type="TextBox" skin="NormalText" position="0 224 352 18" align="Left Top" name="MinimumBrightnessText">
|
<Widget type="TextBox" skin="NormalText" position="0 224 500 18" align="Left Top" name="MinimumBrightnessText">
|
||||||
<UserString key="ToolTipType" value="Layout"/>
|
<UserString key="ToolTipType" value="Layout"/>
|
||||||
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
||||||
<UserString key="Caption_Text" value="Default: 0.08\nMinimum ambient interior brightness.\n\nIncrease this if you feel interiors are too dark."/>
|
<UserString key="Caption_Text" value="#{SettingsMenu:LightsMinimumInteriorBrightnessTooltip}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="ScrollBar" skin="MW_HScroll" position="0 248 352 18" align="HStretch Top">
|
<Widget type="ScrollBar" skin="MW_HScroll" position="0 248 352 18" align="HStretch Top">
|
||||||
<Property key="Range" value="10000"/>
|
<Property key="Range" value="10000"/>
|
||||||
|
@ -628,16 +628,16 @@
|
||||||
<UserString key="SettingName" value="minimum interior brightness"/>
|
<UserString key="SettingName" value="minimum interior brightness"/>
|
||||||
<UserString key="SettingValueType" value="Float"/>
|
<UserString key="SettingValueType" value="Float"/>
|
||||||
<UserString key="SettingLabelWidget" value="MinimumBrightnessText"/>
|
<UserString key="SettingLabelWidget" value="MinimumBrightnessText"/>
|
||||||
<UserString key="SettingLabelCaption" value="Minimum Interior Brightness (%s)"/>
|
<UserString key="SettingLabelCaption" value="#{SettingsMenu:LightsMinimumInteriorBrightness} (%s)"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" position="0 290 0 0" align="Top Left" name="LightsResetButton">
|
<Widget type="AutoSizedButton" skin="MW_Button" position="0 290 0 0" align="Top Left" name="LightsResetButton">
|
||||||
<Property key="Caption" value="Reset To Defaults"/>
|
<Property key="Caption" value="#{sControlsMenu1}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="TabItem">
|
<Widget type="TabItem">
|
||||||
<Property key="Caption" value=" Scripts "/>
|
<Property key="Caption" value=" #{SettingsMenu:Scripts} "/>
|
||||||
|
|
||||||
<Widget type="HBox" position_real="0 0 1 0.99" align="Stretch">
|
<Widget type="HBox" position_real="0 0 1 0.99" align="Stretch">
|
||||||
<Property key="Padding" value="0"/>
|
<Property key="Padding" value="0"/>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<!-- Dialog buttons -->
|
<!-- Dialog buttons -->
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" position="264 60 42 23" name="OKButton">
|
<Widget type="AutoSizedButton" skin="MW_Button" position="264 60 42 23" name="OKButton">
|
||||||
<Property key="ExpandDirection" value="Left"/>
|
<Property key="ExpandDirection" value="Left"/>
|
||||||
<Property key="Caption" value="OK"/>
|
<Property key="Caption" value="#{sOk}"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
</MyGUI>
|
</MyGUI>
|
||||||
|
|
Loading…
Reference in a new issue