mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-28 11:09:42 +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 #6706: Save the size of the Options 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 #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
|
||||
|
|
|
@ -852,6 +852,7 @@ void OMW::Engine::prepareEngine()
|
|||
mEnvironment.setWorld(*mWorld);
|
||||
|
||||
mWindowManager->setStore(mWorld->getStore());
|
||||
mLuaManager->initL10n();
|
||||
mWindowManager->initUI();
|
||||
|
||||
//Load translation data
|
||||
|
|
|
@ -31,6 +31,7 @@ namespace MWBase
|
|||
public:
|
||||
virtual ~LuaManager() = default;
|
||||
|
||||
virtual std::string translate(const std::string& contextName, const std::string& key) = 0;
|
||||
virtual void newGameStarted() = 0;
|
||||
virtual void gameLoaded() = 0;
|
||||
virtual void registerObject(const MWWorld::Ptr& ptr) = 0;
|
||||
|
|
|
@ -92,12 +92,14 @@ namespace MWGui
|
|||
// - Shader editor
|
||||
|
||||
MyGUI::TabItem* itemLV = mTabControl->addItem("Log Viewer");
|
||||
itemLV->setCaptionWithReplacing("#{DebugMenu:LogViewer}");
|
||||
mLogView = itemLV->createWidgetReal<MyGUI::EditBox>
|
||||
("LogEdit", MyGUI::FloatCoord(0,0,1,1), MyGUI::Align::Stretch);
|
||||
mLogView->setEditReadOnly(true);
|
||||
|
||||
#ifndef BT_NO_PROFILE
|
||||
MyGUI::TabItem* item = mTabControl->addItem("Physics Profiler");
|
||||
item->setCaptionWithReplacing("#{DebugMenu:PhysicsProfiler}");
|
||||
mBulletProfilerEdit = item->createWidgetReal<MyGUI::EditBox>
|
||||
("LogEdit", MyGUI::FloatCoord(0,0,1,1), MyGUI::Align::Stretch);
|
||||
#else
|
||||
|
|
|
@ -316,7 +316,7 @@ namespace MWGui
|
|||
|
||||
std::ostringstream ss;
|
||||
|
||||
const std::string NA = "NA";
|
||||
const std::string NA = "#{Interface:NotAvailableShort}";
|
||||
const std::string endl = "\n";
|
||||
|
||||
std::string author = technique->getAuthor().empty() ? NA : std::string(technique->getAuthor());
|
||||
|
@ -340,14 +340,14 @@ namespace MWGui
|
|||
case fx::Technique::Status::Uncompiled:
|
||||
{
|
||||
if (technique->getDynamic())
|
||||
ss << "#{fontcolourhtml=header}Locked: #{fontcolourhtml=normal} Cannot be toggled or moved, controlled by external Lua script" << endl << endl;
|
||||
ss << "#{fontcolourhtml=header}Author: #{fontcolourhtml=normal} " << author << endl << endl
|
||||
<< "#{fontcolourhtml=header}Version: #{fontcolourhtml=normal} " << version << endl << endl
|
||||
<< "#{fontcolourhtml=header}Description: #{fontcolourhtml=normal} " << description << endl << endl
|
||||
<< "#{fontcolourhtml=header}Interiors: #{fontcolourhtml=normal} " << flag_interior
|
||||
<< "#{fontcolourhtml=header} Exteriors: #{fontcolourhtml=normal} " << flag_exterior
|
||||
<< "#{fontcolourhtml=header} Underwater: #{fontcolourhtml=normal} " << flag_underwater
|
||||
<< "#{fontcolourhtml=header} Abovewater: #{fontcolourhtml=normal} " << flag_abovewater;
|
||||
ss << "#{fontcolourhtml=header}#{PostProcessing:ShaderLocked}: #{fontcolourhtml=normal} #{PostProcessing:ShaderLockedDescription}" << endl << endl;
|
||||
ss << "#{fontcolourhtml=header}#{PostProcessing:Author}: #{fontcolourhtml=normal} " << author << endl << endl
|
||||
<< "#{fontcolourhtml=header}#{PostProcessing:Version}: #{fontcolourhtml=normal} " << version << endl << endl
|
||||
<< "#{fontcolourhtml=header}#{PostProcessing:Description}: #{fontcolourhtml=normal} " << description << endl << endl
|
||||
<< "#{fontcolourhtml=header}#{PostProcessing:InInteriors}: #{fontcolourhtml=normal} " << flag_interior
|
||||
<< "#{fontcolourhtml=header} #{PostProcessing:InExteriors}: #{fontcolourhtml=normal} " << flag_exterior
|
||||
<< "#{fontcolourhtml=header} #{PostProcessing:Underwater}: #{fontcolourhtml=normal} " << flag_underwater
|
||||
<< "#{fontcolourhtml=header} #{PostProcessing:Abovewater}: #{fontcolourhtml=normal} " << flag_abovewater;
|
||||
break;
|
||||
}
|
||||
case fx::Technique::Status::Parse_Error:
|
||||
|
@ -365,7 +365,7 @@ namespace MWGui
|
|||
if (technique->getUniformMap().size() > 0)
|
||||
{
|
||||
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->eventMouseWheel += MyGUI::newDelegate(this, &PostProcessorHud::notifyMouseWheel);
|
||||
resetButton->eventMouseButtonClick += MyGUI::newDelegate(this, &PostProcessorHud::notifyResetButtonClicked);
|
||||
|
|
|
@ -207,7 +207,7 @@ namespace MWGui
|
|||
|
||||
mCharacterSelection->setIndexSelected(selectedIndex);
|
||||
if (selectedIndex == MyGUI::ITEM_NONE)
|
||||
mCharacterSelection->setCaption("Select Character ...");
|
||||
mCharacterSelection->setCaptionWithReplacing("#{SavegameMenu:SelectCharacter}");
|
||||
|
||||
fillSaveList();
|
||||
|
||||
|
@ -423,7 +423,7 @@ namespace MWGui
|
|||
|
||||
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());
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <MyGUI_ScrollView.h>
|
||||
#include <MyGUI_Gui.h>
|
||||
#include <MyGUI_TabControl.h>
|
||||
#include <MyGUI_LanguageManager.h>
|
||||
|
||||
#include <SDL_video.h>
|
||||
|
||||
|
@ -37,12 +38,32 @@ namespace
|
|||
{
|
||||
std::string textureMipmappingToStr(const std::string& val)
|
||||
{
|
||||
if (val == "linear") return "Trilinear";
|
||||
if (val == "nearest") return "Bilinear";
|
||||
if (val != "none")
|
||||
Log(Debug::Warning) << "Warning: Invalid texture mipmap option: "<< val;
|
||||
if (val == "linear") return "#{SettingsMenu:TextureFilteringTrilinear}";
|
||||
if (val == "nearest") return "#{SettingsMenu:TextureFilteringBilinear}";
|
||||
if (val == "none") return "#{SettingsMenu:TextureFilteringDisabled}";
|
||||
|
||||
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)
|
||||
|
@ -306,7 +327,7 @@ namespace MWGui
|
|||
highlightCurrentResolution();
|
||||
|
||||
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");
|
||||
if (waterTextureSize >= 512)
|
||||
|
@ -426,10 +447,10 @@ namespace MWGui
|
|||
if (pos == MyGUI::ITEM_NONE)
|
||||
return;
|
||||
|
||||
std::string message = "This change requires a restart to take effect.";
|
||||
MWBase::Environment::get().getWindowManager()->interactiveMessageBox(message, {"#{sOK}"}, true);
|
||||
MWBase::Environment::get().getWindowManager()->interactiveMessageBox("#{SettingsMenu:ChangeRequiresRestart}", {"#{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();
|
||||
}
|
||||
|
||||
|
@ -454,8 +475,7 @@ namespace MWGui
|
|||
void SettingsWindow::onLightsResetButtonClicked(MyGUI::Widget* _sender)
|
||||
{
|
||||
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(message, buttons, true);
|
||||
MWBase::Environment::get().getWindowManager()->interactiveMessageBox("#{SettingsMenu:LightingResetToDefaults}", buttons, true);
|
||||
int selectedButton = MWBase::Environment::get().getWindowManager()->readPressedButton();
|
||||
if (selectedButton == 1 || selectedButton == -1)
|
||||
return;
|
||||
|
@ -471,7 +491,9 @@ namespace MWGui
|
|||
for (const auto& setting : settings)
|
||||
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);
|
||||
|
||||
apply();
|
||||
|
@ -636,7 +658,7 @@ namespace MWGui
|
|||
void SettingsWindow::updateLightSettings()
|
||||
{
|
||||
auto lightingMethod = MWBase::Environment::get().getResourceSystem()->getSceneManager()->getLightingMethod();
|
||||
std::string lightingMethodStr = SceneUtil::LightManager::getLightingMethodString(lightingMethod);
|
||||
std::string lightingMethodStr = lightingMethodToStr(lightingMethod);
|
||||
|
||||
mLightingMethodButton->removeAllItems();
|
||||
|
||||
|
@ -646,14 +668,17 @@ namespace MWGui
|
|||
SceneUtil::LightingMethod::SingleUBO,
|
||||
};
|
||||
|
||||
std::vector<std::string> userData;
|
||||
for (const auto& method : methods)
|
||||
{
|
||||
if (!MWBase::Environment::get().getResourceSystem()->getSceneManager()->isSupportedLightingMethod(method))
|
||||
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));
|
||||
}
|
||||
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
#include <components/lua_ui/util.hpp>
|
||||
|
||||
#include "../mwbase/inputmanager.hpp"
|
||||
#include "../mwbase/luamanager.hpp"
|
||||
#include "../mwbase/statemanager.hpp"
|
||||
#include "../mwbase/soundmanager.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -1065,12 +1066,27 @@ namespace MWGui
|
|||
}
|
||||
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)
|
||||
{
|
||||
Log(Debug::Error) << "Error: WindowManager::onRetrieveTag: no Store set up yet, can not replace '" << tag << "'";
|
||||
_result = tag;
|
||||
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)
|
||||
_result = setting->mValue.getString();
|
||||
|
|
|
@ -426,13 +426,13 @@ namespace MWInput
|
|||
switch (action)
|
||||
{
|
||||
case A_Screenshot:
|
||||
return "Screenshot";
|
||||
return "#{SettingsMenu:Screenshot}";
|
||||
case A_ZoomIn:
|
||||
return "Zoom In";
|
||||
return "#{SettingsMenu:CameraZoomIn}";
|
||||
case A_ZoomOut:
|
||||
return "Zoom Out";
|
||||
return "#{SettingsMenu:CameraZoomOut}";
|
||||
case A_ToggleHUD:
|
||||
return "Toggle HUD";
|
||||
return "#{SettingsMenu:ToggleHUD}";
|
||||
case A_Use:
|
||||
return "#{sUse}";
|
||||
case A_Activate:
|
||||
|
@ -504,7 +504,7 @@ namespace MWInput
|
|||
case A_QuickLoad:
|
||||
return "#{sQuickLoadCmd}";
|
||||
case A_TogglePostProcessorHUD:
|
||||
return "Toggle Post Processor HUD";
|
||||
return "#{SettingsMenu:TogglePostProcessorHUD}";
|
||||
default:
|
||||
return std::string(); // not configurable
|
||||
}
|
||||
|
|
|
@ -55,6 +55,14 @@ namespace MWLua
|
|||
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()
|
||||
{
|
||||
Context context;
|
||||
|
@ -71,11 +79,6 @@ namespace MWLua
|
|||
localContext.mIsGlobal = false;
|
||||
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);
|
||||
initCellBindingsForGlobalScripts(context);
|
||||
initObjectBindingsForLocalScripts(localContext);
|
||||
|
@ -103,6 +106,11 @@ namespace MWLua
|
|||
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)
|
||||
{
|
||||
auto globalPath = std::filesystem::path(userConfigPath) / "global_storage.bin";
|
||||
|
|
|
@ -29,6 +29,9 @@ namespace MWLua
|
|||
public:
|
||||
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.
|
||||
void init();
|
||||
|
||||
|
@ -39,6 +42,8 @@ namespace MWLua
|
|||
// thread (in parallel with osg Cull). Can not use scene graph.
|
||||
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.
|
||||
void synchronizedUpdate();
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ namespace DetourNavigator
|
|||
{
|
||||
if (mSettings.get().mWaitUntilMinDistanceToPlayer == 0)
|
||||
return;
|
||||
listener.setLabel("Building navigation mesh");
|
||||
listener.setLabel("#{Navigation:BuildingNavigationMesh}");
|
||||
const std::size_t initialJobsLeft = getTotalJobs();
|
||||
std::size_t maxProgress = initialJobsLeft + mThreads.size();
|
||||
listener.setProgressRange(maxProgress);
|
||||
|
|
|
@ -18,6 +18,12 @@ namespace LuaUtil
|
|||
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)
|
||||
{
|
||||
mPreferredLocales.clear();
|
||||
|
|
|
@ -19,6 +19,7 @@ namespace LuaUtil
|
|||
const std::vector<icu::Locale>& getPreferredLocales() const { return mPreferredLocales; }
|
||||
|
||||
sol::object getContext(const std::string& contextName, const std::string& fallbackLocale = "en");
|
||||
std::string translate(const std::string& contextName, const std::string& key);
|
||||
|
||||
private:
|
||||
struct Context
|
||||
|
|
|
@ -1,9 +1,28 @@
|
|||
#include "box.hpp"
|
||||
|
||||
#include <MyGUI_EditText.h>
|
||||
#include <MyGUI_LanguageManager.h>
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -5,11 +5,20 @@
|
|||
#include <MyGUI_TextBox.h>
|
||||
#include <MyGUI_EditBox.h>
|
||||
#include <MyGUI_Button.h>
|
||||
#include <MyGUI_ComboBox.h>
|
||||
|
||||
#include "fontwrapper.hpp"
|
||||
|
||||
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>
|
||||
{
|
||||
MYGUI_RTTI_DERIVED( Button )
|
||||
|
|
|
@ -28,6 +28,7 @@ namespace Gui
|
|||
MyGUI::FactoryManager::getInstance().registerFactory<Gui::NumericEditBox>("Widget");
|
||||
MyGUI::FactoryManager::getInstance().registerFactory<Gui::SharedStateButton>("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/ru.yaml
|
||||
l10n/DebugMenu/en.yaml
|
||||
l10n/DebugMenu/ru.yaml
|
||||
l10n/Interface/en.yaml
|
||||
l10n/Interface/ru.yaml
|
||||
l10n/Navigation/en.yaml
|
||||
l10n/Navigation/ru.yaml
|
||||
l10n/OMWCamera/en.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/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"
|
||||
Reset: "Reset"
|
||||
NotAvailableShort: "N/A"
|
||||
Reset: "Reset"
|
||||
Yes: "Yes"
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
Yes: "Да"
|
||||
No: "Нет"
|
||||
NotAvailableShort: "Н/Д"
|
||||
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}"/>
|
||||
</Widget>
|
||||
<Widget type="AutoSizedButton" skin="MW_Button" name="OKButton">
|
||||
<Property key="Caption" value="OK"/>
|
||||
<Property key="Caption" value="#{sOk}"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MyGUI type="Layout">
|
||||
<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"/>
|
||||
|
||||
<Widget type="Widget" skin="DialogBG" position_real="0 0 1 1" name="Background" align="Stretch">
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<MyGUI type="Layout">
|
||||
<Widget type="Window" skin="MW_Window" position="0 0 500 500" layer="Debug" name="_Main" align="Stretch">
|
||||
<Property key="Visible" value="false"/>
|
||||
<Property key="Caption" value="Postprocess HUD"/>
|
||||
<Property key="Caption" value="#{PostProcessing:PostProcessHUD}"/>
|
||||
<Property key="MinSize" value="600 600"/>
|
||||
|
||||
<Widget type="TabControl" skin="TabControl_NoBorder" position="8 8 468 450" align="Stretch" name="TabControl">
|
||||
|
@ -12,17 +12,11 @@
|
|||
<Property key="Caption" value="[?]"/>
|
||||
<UserString key="ToolTipType" value="Layout"/>
|
||||
<UserString key="ToolTipLayout" value="TextToolTip"/>
|
||||
<UserString key="Caption_Text" value="Keyboard controls:\n\n
|
||||
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
|
||||
"/>
|
||||
<UserString key="Caption_Text" value="#{PostProcessing:KeyboardControls}"/>
|
||||
</Widget>
|
||||
|
||||
<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">
|
||||
<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="Widget" name="Dragger">
|
||||
<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="TextAlign" value="Center"/>
|
||||
</Widget>
|
||||
|
@ -45,7 +45,7 @@
|
|||
<UserString key="HStretch" value="true"/>
|
||||
<UserString key="VStretch" value="true"/>
|
||||
<Property key="TextAlign" value="Center"/>
|
||||
<Property key="Caption" value="On"/>
|
||||
<Property key="Caption" value="#{sOn}"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
</Widget>
|
||||
|
@ -59,7 +59,7 @@
|
|||
<Widget type="AutoSizedButton" skin="MW_Button" position="0 0 22 22" name="Reset">
|
||||
<UserString key="HStretch" value="false"/>
|
||||
<UserString key="VStretch" value="false"/>
|
||||
<Property key="Caption" value="r"/>
|
||||
<Property key="Caption" value="#{PostProcessing:ShaderResetUniform}"/>
|
||||
</Widget>
|
||||
<Widget type="Widget" skin="BlackBG" position="0 0 225 22" name="Client">
|
||||
<UserString key="HStretch" value="false"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<Property key="Spacing" value="8"/>
|
||||
|
||||
<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"/>
|
||||
</Widget>
|
||||
|
||||
|
|
|
@ -73,9 +73,9 @@
|
|||
<Property key="TextAlign" value="Right"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
<Widget type="Widget" position="4 184 352 54" align="Left Top HStretch">
|
||||
<Widget type="TextBox" skin="NormalText" position="0 0 352 16" align="Left Top" name="ActorProcessingText">
|
||||
<Property key="Caption" value="Actors Processing Range"/>
|
||||
<Widget type="Widget" position="4 184 400 54" align="Left Top HStretch">
|
||||
<Widget type="TextBox" skin="NormalText" position="0 0 400 16" align="Left Top" name="ActorProcessingText">
|
||||
<Property key="Caption" value="#{SettingsMenu:ActorsProcessingRange}"/>
|
||||
</Widget>
|
||||
<Widget type="ScrollBar" skin="MW_HScroll" position="0 20 352 14" align="Left Top HStretch">
|
||||
<Property key="Range" value="3584"/>
|
||||
|
@ -87,7 +87,7 @@
|
|||
<UserString key="SettingMin" value="3584"/>
|
||||
<UserString key="SettingMax" value="7168"/>
|
||||
<UserString key="SettingLabelWidget" value="ActorProcessingText"/>
|
||||
<UserString key="SettingLabelCaption" value="Actors Processing Range (%s)"/>
|
||||
<UserString key="SettingLabelCaption" value="#{SettingsMenu:ActorsProcessingRange} (%s)"/>
|
||||
</Widget>
|
||||
<Widget type="TextBox" skin="SandText" position="0 38 352 16" align="Left Top">
|
||||
<Property key="Caption" value="#{sLow}"/>
|
||||
|
@ -204,10 +204,10 @@
|
|||
<Property key="Padding" value="0"/>
|
||||
<Property key="Spacing" value="4"/>
|
||||
<Widget type="AutoSizedButton" skin="MW_Button" name="KeyboardButton">
|
||||
<Property key="Caption" value="Mouse/Keyboard"/>
|
||||
<Property key="Caption" value="#{SettingsMenu:MouseAndKeyboard}"/>
|
||||
</Widget>
|
||||
<Widget type="AutoSizedButton" skin="MW_Button" name="ControllerButton">
|
||||
<Property key="Caption" value="Controller"/>
|
||||
<Property key="Caption" value="#{SettingsMenu:Controller}"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
|
||||
|
@ -219,14 +219,14 @@
|
|||
<Widget type="AutoSizedButton" skin="MW_Button" position="4 194 137 24" align="Left Bottom" name="ResetControlsButton">
|
||||
<Property key="Caption" value="#{sControlsMenu1}"/>
|
||||
</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">
|
||||
<UserString key="SettingCategory" value="Input"/>
|
||||
<UserString key="SettingName" value="invert x axis"/>
|
||||
<UserString key="SettingType" value="CheckButton"/>
|
||||
</Widget>
|
||||
<Widget type="AutoSizedTextBox" skin="SandText">
|
||||
<Property key="Caption" value="Invert X Axis "/>
|
||||
<Property key="Caption" value="#{SettingsMenu:InvertXAxis} "/>
|
||||
</Widget>
|
||||
<Widget type="AutoSizedButton" skin="MW_Button">
|
||||
<UserString key="SettingCategory" value="Input"/>
|
||||
|
@ -238,7 +238,7 @@
|
|||
</Widget>
|
||||
</Widget>
|
||||
<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 type="ScrollBar" skin="MW_HScroll" position="4 278 352 18" align="HStretch Bottom">
|
||||
<Property key="Range" value="10000"/>
|
||||
|
@ -274,26 +274,26 @@
|
|||
<Widget type="TabControl" skin="TabControlInner" position="4 4 352 390" align="Stretch">
|
||||
<Property key="ButtonAutoWidth" value="true"/>
|
||||
<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="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 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">
|
||||
<Property key="AddItem" value="Fullscreen"/>
|
||||
<Property key="AddItem" value="Windowed Fullscreen"/>
|
||||
<Property key="AddItem" value="Windowed"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:WindowModeFullscreen}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:WindowModeWindowedFullscreen}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:WindowModeWindowed}"/>
|
||||
</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">
|
||||
<UserString key="SettingCategory" value="Video"/>
|
||||
<UserString key="SettingName" value="vsync"/>
|
||||
<UserString key="SettingType" value="CheckButton"/>
|
||||
</Widget>
|
||||
<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 type="HBox" position="182 94 300 24">
|
||||
|
@ -303,7 +303,7 @@
|
|||
<UserString key="SettingType" value="CheckButton"/>
|
||||
</Widget>
|
||||
<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 type="HBox" position="182 124 300 24">
|
||||
|
@ -313,15 +313,15 @@
|
|||
<UserString key="SettingType" value="CheckButton"/>
|
||||
</Widget>
|
||||
<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="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 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 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="SettingMax" value="110"/>
|
||||
<UserString key="SettingLabelWidget" value="FovText"/>
|
||||
<UserString key="SettingLabelCaption" value="Field of View (%s)"/>
|
||||
<UserString key="SettingLabelCaption" value="#{SettingsMenu:FieldOfView} (%s)"/>
|
||||
</Widget>
|
||||
<Widget type="TextBox" skin="SandText" position="0 276 352 18" align="Left Top">
|
||||
<Property key="Caption" value="#{sLow}"/>
|
||||
|
@ -369,20 +369,20 @@
|
|||
</Widget>
|
||||
</Widget>
|
||||
<Widget type="TabItem">
|
||||
<Property key="Caption" value=" Detail "/>
|
||||
<Property key="Caption" value=" #{sDetail_Level} "/>
|
||||
|
||||
<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="HStretch" value="false"/>
|
||||
</Widget>
|
||||
<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="Trilinear"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:TextureFilteringBilinear}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:TextureFilteringTrilinear}"/>
|
||||
</Widget>
|
||||
|
||||
<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 type="ScrollBar" skin="MW_HScroll" position="0 80 352 18" align="HStretch Top">
|
||||
<Property key="Range" value="17"/>
|
||||
|
@ -391,7 +391,7 @@
|
|||
<UserString key="SettingCategory" value="General"/>
|
||||
<UserString key="SettingName" value="anisotropy"/>
|
||||
<UserString key="SettingLabelWidget" value="AnisotropyLabel"/>
|
||||
<UserString key="SettingLabelCaption" value="Anisotropy (%s)"/>
|
||||
<UserString key="SettingLabelCaption" value="#{SettingsMenu:Anisotropy} (%s)"/>
|
||||
</Widget>
|
||||
|
||||
<Widget type="AutoSizedTextBox" skin="NormalText" position="0 104 0 18" align="Left Top" name="RenderDistanceLabel">
|
||||
|
@ -432,7 +432,7 @@
|
|||
|
||||
</Widget>
|
||||
<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">
|
||||
|
||||
|
@ -446,7 +446,7 @@
|
|||
<UserString key="SettingType" value="CheckButton"/>
|
||||
</Widget>
|
||||
<Widget type="AutoSizedTextBox" skin="SandText">
|
||||
<Property key="Caption" value="Water shader"/>
|
||||
<Property key="Caption" value="#{SettingsMenu:WaterShader}"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
|
||||
|
@ -460,14 +460,14 @@
|
|||
<UserString key="SettingType" value="CheckButton"/>
|
||||
</Widget>
|
||||
<Widget type="AutoSizedTextBox" skin="SandText">
|
||||
<Property key="Caption" value="Refraction"/>
|
||||
<Property key="Caption" value="#{SettingsMenu:Refraction}"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
|
||||
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
<Widget type="AutoSizedTextBox" skin="NormalText">
|
||||
<Property key="Caption" value="Texture quality"/>
|
||||
<Property key="Caption" value="#{SettingsMenu:WaterShaderTextureQuality}"/>
|
||||
</Widget>
|
||||
<Widget type="Spacer" />
|
||||
</Widget>
|
||||
|
@ -476,9 +476,9 @@
|
|||
<UserString key="HStretch" value="true"/>
|
||||
<UserString key="VStretch" value="false"/>
|
||||
<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="Medium"/>
|
||||
<Property key="AddItem" value="High"/>
|
||||
<Property key="AddItem" value="#{sLow}"/>
|
||||
<Property key="AddItem" value="#{sMedium}"/>
|
||||
<Property key="AddItem" value="#{sHigh}"/>
|
||||
</Widget>
|
||||
<Widget type="Spacer" />
|
||||
</Widget>
|
||||
|
@ -486,7 +486,7 @@
|
|||
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
<Widget type="AutoSizedTextBox" skin="NormalText">
|
||||
<Property key="Caption" value="Reflection shader detail"/>
|
||||
<Property key="Caption" value="#{SettingsMenu:ReflectionShaderDetail}"/>
|
||||
</Widget>
|
||||
<Widget type="Spacer" />
|
||||
</Widget>
|
||||
|
@ -495,12 +495,12 @@
|
|||
<UserString key="VStretch" value="false"/>
|
||||
|
||||
<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="Terrain"/>
|
||||
<Property key="AddItem" value="World"/>
|
||||
<Property key="AddItem" value="Objects"/>
|
||||
<Property key="AddItem" value="Actors"/>
|
||||
<Property key="AddItem" value="Groundcover"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailSky}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailTerrain}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailWorld}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailObjects}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailActors}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:ReflectionShaderDetailGroundcover}"/>
|
||||
</Widget>
|
||||
<Widget type="Spacer" />
|
||||
</Widget>
|
||||
|
@ -508,7 +508,7 @@
|
|||
<Widget type="Widget" position="0 0 0 18" align="Top Left HStretch">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
<Widget type="AutoSizedTextBox" skin="NormalText">
|
||||
<Property key="Caption" value="Rain ripple detail"/>
|
||||
<Property key="Caption" value="#{SettingsMenu:RainRippleDetail}"/>
|
||||
</Widget>
|
||||
<Widget type="Spacer" />
|
||||
</Widget>
|
||||
|
@ -518,9 +518,9 @@
|
|||
<UserString key="VStretch" value="false"/>
|
||||
|
||||
<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="Sparse"/>
|
||||
<Property key="AddItem" value="Dense"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:RainRippleDetailSimple}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:RainRippleDetailSparse}"/>
|
||||
<Property key="AddItem" value="#{SettingsMenu:RainRippleDetailDense}"/>
|
||||
</Widget>
|
||||
<Widget type="Spacer" />
|
||||
</Widget>
|
||||
|
@ -529,21 +529,21 @@
|
|||
|
||||
</Widget>
|
||||
<Widget type="TabItem">
|
||||
<Property key="Caption" value=" Lights "/>
|
||||
<Property key="Caption" value=" #{SettingsMenu:Lights} "/>
|
||||
<!-- Lighting Method -->
|
||||
<Widget type="TextBox" skin="NormalText" position="0 4 200 18" align="Left Top">
|
||||
<Property key="Caption" value="Lighting Method"/>
|
||||
<Widget type="TextBox" skin="NormalText" position="0 4 250 18" align="Left Top">
|
||||
<Property key="Caption" value="#{SettingsMenu:LightingMethod}"/>
|
||||
</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="shaders compatibility"/>
|
||||
<Property key="AddItem" value="shaders"/>
|
||||
</Widget>
|
||||
<!-- 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="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 type="ScrollBar" position="0 0 0 0">
|
||||
<UserString key="SettingType" value="Slider"/>
|
||||
|
@ -551,9 +551,9 @@
|
|||
<UserString key="SettingName" value="max lights"/>
|
||||
<UserString key="SettingValueType" value="Integer"/>
|
||||
<UserString key="SettingLabelWidget" value="MaxLightsText"/>
|
||||
<UserString key="SettingLabelCaption" value="Max Lights: (%s)"/>
|
||||
<UserString key="SettingLabelCaption" value="#{SettingsMenu:MaxLights} (%s)"/>
|
||||
</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="16"/>
|
||||
<Property key="AddItem" value="24"/>
|
||||
|
@ -561,10 +561,10 @@
|
|||
</Widget>
|
||||
<Widget type="ImageBox" skin="MW_HLine" position="0 54 360 18" align="Top HStretch"/>
|
||||
<!-- 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="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 type="ScrollBar" skin="MW_HScroll" position="0 104 352 18" align="HStretch Top">
|
||||
<Property key="Range" value="8192"/>
|
||||
|
@ -576,13 +576,13 @@
|
|||
<UserString key="SettingName" value="maximum light distance"/>
|
||||
<UserString key="SettingValueType" value="Integer"/>
|
||||
<UserString key="SettingLabelWidget" value="MaxLightDistanceText"/>
|
||||
<UserString key="SettingLabelCaption" value="Maximum Light Distance (%s)"/>
|
||||
<UserString key="SettingLabelCaption" value="#{SettingsMenu:LightsMaximumDistance} (%s)"/>
|
||||
</Widget>
|
||||
<!-- 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="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 type="ScrollBar" skin="MW_HScroll" position="0 152 352 18" align="HStretch Top">
|
||||
<Property key="Range" value="10000"/>
|
||||
|
@ -594,13 +594,13 @@
|
|||
<UserString key="SettingMin" value="0.0"/>
|
||||
<UserString key="SettingMax" value="1.0"/>
|
||||
<UserString key="SettingLabelWidget" value="LightFadeMultiplierText"/>
|
||||
<UserString key="SettingLabelCaption" value="Fade Start Multiplier (%s)"/>
|
||||
<UserString key="SettingLabelCaption" value="#{SettingsMenu:LightsFadeStartMultiplier} (%s)"/>
|
||||
</Widget>
|
||||
<!-- 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="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 type="ScrollBar" skin="MW_HScroll" position="0 200 352 18" align="HStretch Top">
|
||||
<Property key="Range" value="500000"/>
|
||||
|
@ -612,13 +612,13 @@
|
|||
<UserString key="SettingName" value="light bounds multiplier"/>
|
||||
<UserString key="SettingValueType" value="Float"/>
|
||||
<UserString key="SettingLabelWidget" value="BoundingSphereMultText"/>
|
||||
<UserString key="SettingLabelCaption" value="Bounding Sphere Multiplier (%s)"/>
|
||||
<UserString key="SettingLabelCaption" value="#{SettingsMenu:LightsBoundingSphereMultiplier} (%s)"/>
|
||||
</Widget>
|
||||
<!-- 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="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 type="ScrollBar" skin="MW_HScroll" position="0 248 352 18" align="HStretch Top">
|
||||
<Property key="Range" value="10000"/>
|
||||
|
@ -628,16 +628,16 @@
|
|||
<UserString key="SettingName" value="minimum interior brightness"/>
|
||||
<UserString key="SettingValueType" value="Float"/>
|
||||
<UserString key="SettingLabelWidget" value="MinimumBrightnessText"/>
|
||||
<UserString key="SettingLabelCaption" value="Minimum Interior Brightness (%s)"/>
|
||||
<UserString key="SettingLabelCaption" value="#{SettingsMenu:LightsMinimumInteriorBrightness} (%s)"/>
|
||||
</Widget>
|
||||
<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 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">
|
||||
<Property key="Padding" value="0"/>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<!-- Dialog buttons -->
|
||||
<Widget type="AutoSizedButton" skin="MW_Button" position="264 60 42 23" name="OKButton">
|
||||
<Property key="ExpandDirection" value="Left"/>
|
||||
<Property key="Caption" value="OK"/>
|
||||
<Property key="Caption" value="#{sOk}"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
</MyGUI>
|
||||
|
|
Loading…
Reference in a new issue