Merge branch 'l10nformat' into 'master'

Replace format args with icu in engine messages

See merge request OpenMW/openmw!5032
This commit is contained in:
Alexei Kotov 2025-12-16 12:07:06 +03:00
commit 76ce47a890
16 changed files with 157 additions and 70 deletions

View File

@ -124,10 +124,8 @@ namespace
return; return;
} }
std::string messageFormat auto l10n = MWBase::Environment::get().getL10nManager()->getContext("OMWEngine");
= MWBase::Environment::get().getL10nManager()->getMessage("OMWEngine", "ScreenshotMade"); std::string message = l10n->formatMessage("ScreenshotMade", { "file" }, { L10n::toUnicode(filePath) });
std::string message = Misc::StringUtils::format(messageFormat, filePath);
MWBase::Environment::get().getWindowManager()->scheduleMessageBox( MWBase::Environment::get().getWindowManager()->scheduleMessageBox(
std::move(message), MWGui::ShowInDialogueMode_Never); std::move(message), MWGui::ShowInDialogueMode_Never);

View File

@ -62,7 +62,7 @@ namespace MWGui
window->setCaptionWithReplacing(MyGUI::UString(title)); window->setCaptionWithReplacing(MyGUI::UString(title));
} }
MyGUI::Widget* Layout::getWidget(std::string_view name) MyGUI::Widget* Layout::getWidget(std::string_view name) const
{ {
std::string target = mPrefix; std::string target = mPrefix;
target += name; target += name;

View File

@ -35,10 +35,10 @@ namespace MWGui
} }
} }
MyGUI::Widget* getWidget(std::string_view name); MyGUI::Widget* getWidget(std::string_view name) const;
template <typename T> template <typename T>
void getWidget(T*& widget, std::string_view name) void getWidget(T*& widget, std::string_view name) const
{ {
MyGUI::Widget* w = getWidget(name); MyGUI::Widget* w = getWidget(name);
T* cast = w->castType<T>(false); T* cast = w->castType<T>(false);

View File

@ -1,7 +1,6 @@
#include "settingswindow.hpp" #include "settingswindow.hpp"
#include <array> #include <array>
#include <iomanip>
#include <unicode/locid.h> #include <unicode/locid.h>
@ -24,7 +23,6 @@
#include <components/misc/display.hpp> #include <components/misc/display.hpp>
#include <components/misc/pathhelpers.hpp> #include <components/misc/pathhelpers.hpp>
#include <components/misc/strings/algorithm.hpp> #include <components/misc/strings/algorithm.hpp>
#include <components/misc/strings/format.hpp>
#include <components/resource/resourcesystem.hpp> #include <components/resource/resourcesystem.hpp>
#include <components/resource/scenemanager.hpp> #include <components/resource/scenemanager.hpp>
#include <components/sceneutil/lightmanager.hpp> #include <components/sceneutil/lightmanager.hpp>
@ -139,6 +137,18 @@ namespace
else else
box->setIndexSelected(MyGUI::ITEM_NONE); box->setIndexSelected(MyGUI::ITEM_NONE);
} }
void updateSliderLabel(MyGUI::ScrollBar* scroller, MyGUI::TextBox* textBox,
const std::vector<icu::UnicodeString>& argNames, const std::vector<icu::Formattable>& args)
{
if (textBox != nullptr)
{
auto l10n = MWBase::Environment::get().getL10nManager()->getContext("OMWEngine");
std::string labelCaption
= l10n->formatMessage(scroller->getUserString("SettingLabelCaption"), argNames, args);
textBox->setCaption(labelCaption);
}
}
} }
namespace MWGui namespace MWGui
@ -163,8 +173,9 @@ namespace MWGui
if (type == sliderType) if (type == sliderType)
{ {
MyGUI::ScrollBar* scroll = current->castType<MyGUI::ScrollBar>(); MyGUI::ScrollBar* scroll = current->castType<MyGUI::ScrollBar>();
std::string valueStr;
std::string_view valueType = getSettingValueType(current); std::string_view valueType = getSettingValueType(current);
std::vector<icu::UnicodeString> argNames;
std::vector<icu::Formattable> args;
if (valueType == "Float" || valueType == "Integer" || valueType == "Cell") if (valueType == "Float" || valueType == "Integer" || valueType == "Cell")
{ {
// TODO: ScrollBar isn't meant for this. should probably use a dedicated FloatSlider widget // TODO: ScrollBar isn't meant for this. should probably use a dedicated FloatSlider widget
@ -175,21 +186,20 @@ namespace MWGui
if (valueType == "Cell") if (valueType == "Cell")
{ {
value = Settings::get<float>(getSettingCategory(current), getSettingName(current)); value = Settings::get<float>(getSettingCategory(current), getSettingName(current));
std::stringstream ss; argNames.emplace_back("cells");
ss << std::fixed << std::setprecision(2) << value / Constants::CellSizeInUnits; args.emplace_back(value / Constants::CellSizeInUnits);
valueStr = ss.str();
} }
else if (valueType == "Float") else if (valueType == "Float")
{ {
value = Settings::get<float>(getSettingCategory(current), getSettingName(current)); value = Settings::get<float>(getSettingCategory(current), getSettingName(current));
std::stringstream ss; argNames.emplace_back("value");
ss << std::fixed << std::setprecision(2) << value; args.emplace_back(value);
valueStr = ss.str();
} }
else else
{ {
const int intValue = Settings::get<int>(getSettingCategory(current), getSettingName(current)); const int intValue = Settings::get<int>(getSettingCategory(current), getSettingName(current));
valueStr = MyGUI::utility::toString(intValue); argNames.emplace_back("value");
args.emplace_back(intValue);
value = static_cast<float>(intValue); value = static_cast<float>(intValue);
} }
@ -201,14 +211,15 @@ namespace MWGui
else else
{ {
const int value = Settings::get<int>(getSettingCategory(current), getSettingName(current)); const int value = Settings::get<int>(getSettingCategory(current), getSettingName(current));
valueStr = MyGUI::utility::toString(value); argNames.emplace_back("value");
args.emplace_back(value);
scroll->setScrollPosition(value); scroll->setScrollPosition(value);
} }
if (init) if (init)
scroll->eventScrollChangePosition scroll->eventScrollChangePosition
+= MyGUI::newDelegate(this, &SettingsWindow::onSliderChangePosition); += MyGUI::newDelegate(this, &SettingsWindow::onSliderChangePosition);
if (scroll->getVisible()) if (scroll->getVisible())
updateSliderLabel(scroll, valueStr); updateSliderLabel(scroll, getSliderLabel(scroll), argNames, args);
} }
configureWidgets(current, init); configureWidgets(current, init);
@ -225,17 +236,16 @@ namespace MWGui
} }
} }
void SettingsWindow::updateSliderLabel(MyGUI::ScrollBar* scroller, const std::string& value) MyGUI::TextBox* SettingsWindow::getSliderLabel(MyGUI::ScrollBar* scroller) const
{ {
auto labelWidgetName = scroller->getUserString("SettingLabelWidget"); auto labelWidgetName = scroller->getUserString("SettingLabelWidget");
if (!labelWidgetName.empty()) if (!labelWidgetName.empty())
{ {
MyGUI::TextBox* textBox; MyGUI::TextBox* textBox;
getWidget(textBox, labelWidgetName); getWidget(textBox, labelWidgetName);
std::string labelCaption{ scroller->getUserString("SettingLabelCaption") }; return textBox;
labelCaption = Misc::StringUtils::format(labelCaption, value);
textBox->setCaptionWithReplacing(labelCaption);
} }
return nullptr;
} }
SettingsWindow::SettingsWindow(Files::ConfigurationManager& cfgMgr) SettingsWindow::SettingsWindow(Files::ConfigurationManager& cfgMgr)
@ -719,7 +729,8 @@ namespace MWGui
{ {
if (getSettingType(scroller) == "Slider") if (getSettingType(scroller) == "Slider")
{ {
std::string valueStr; std::vector<icu::UnicodeString> argNames;
std::vector<icu::Formattable> args;
std::string_view valueType = getSettingValueType(scroller); std::string_view valueType = getSettingValueType(scroller);
if (valueType == "Float" || valueType == "Integer" || valueType == "Cell") if (valueType == "Float" || valueType == "Integer" || valueType == "Cell")
{ {
@ -732,30 +743,31 @@ namespace MWGui
if (valueType == "Cell") if (valueType == "Cell")
{ {
Settings::get<float>(getSettingCategory(scroller), getSettingName(scroller)).set(value); Settings::get<float>(getSettingCategory(scroller), getSettingName(scroller)).set(value);
std::stringstream ss; argNames.emplace_back("cells");
ss << std::fixed << std::setprecision(2) << value / Constants::CellSizeInUnits; args.emplace_back(value / Constants::CellSizeInUnits);
valueStr = ss.str();
} }
else if (valueType == "Float") else if (valueType == "Float")
{ {
Settings::get<float>(getSettingCategory(scroller), getSettingName(scroller)).set(value); Settings::get<float>(getSettingCategory(scroller), getSettingName(scroller)).set(value);
std::stringstream ss; argNames.emplace_back("value");
ss << std::fixed << std::setprecision(2) << value; args.emplace_back(value);
valueStr = ss.str();
} }
else else
{ {
Settings::get<int>(getSettingCategory(scroller), getSettingName(scroller)) int intValue = static_cast<int>(value);
.set(static_cast<int>(value)); Settings::get<int>(getSettingCategory(scroller), getSettingName(scroller)).set(intValue);
valueStr = MyGUI::utility::toString(int(value)); argNames.emplace_back("value");
args.emplace_back(intValue);
} }
} }
else else
{ {
Settings::get<int>(getSettingCategory(scroller), getSettingName(scroller)).set(static_cast<int>(pos)); int intValue = static_cast<int>(pos);
valueStr = MyGUI::utility::toString(pos); Settings::get<int>(getSettingCategory(scroller), getSettingName(scroller)).set(intValue);
argNames.emplace_back("value");
args.emplace_back(intValue);
} }
updateSliderLabel(scroller, valueStr); updateSliderLabel(scroller, getSliderLabel(scroller), argNames, args);
apply(); apply();
} }

View File

@ -116,7 +116,7 @@ namespace MWGui
void apply(); void apply();
void configureWidgets(MyGUI::Widget* widget, bool init); void configureWidgets(MyGUI::Widget* widget, bool init);
void updateSliderLabel(MyGUI::ScrollBar* scroller, const std::string& value); MyGUI::TextBox* getSliderLabel(MyGUI::ScrollBar* scroller) const;
void layoutControlsBox(); void layoutControlsBox();
void renderScriptSettings(); void renderScriptSettings();

View File

@ -148,11 +148,8 @@ void MWState::StateManager::askLoadRecent()
std::vector<std::string> buttons; std::vector<std::string> buttons;
buttons.emplace_back("#{Interface:Yes}"); buttons.emplace_back("#{Interface:Yes}");
buttons.emplace_back("#{Interface:No}"); buttons.emplace_back("#{Interface:No}");
std::string message auto l10n = MWBase::Environment::get().getL10nManager()->getContext("OMWEngine");
= MWBase::Environment::get().getL10nManager()->getMessage("OMWEngine", "AskLoadLastSave"); std::string message = l10n->formatMessage("AskLoadLastSave", { "save" }, { L10n::toUnicode(saveName) });
std::string_view tag = "%s";
size_t pos = message.find(tag);
message.replace(pos, tag.length(), saveName);
MWBase::Environment::get().getWindowManager()->interactiveMessageBox(message, buttons); MWBase::Environment::get().getWindowManager()->interactiveMessageBox(message, buttons);
mAskLoadRecent = true; mAskLoadRecent = true;
} }

View File

@ -48,8 +48,7 @@ namespace L10n
std::optional<icu::MessageFormat> parseMessageFormat( std::optional<icu::MessageFormat> parseMessageFormat(
const icu::Locale& lang, std::string_view key, std::string_view value, std::string_view locale) const icu::Locale& lang, std::string_view key, std::string_view value, std::string_view locale)
{ {
icu::UnicodeString pattern icu::UnicodeString pattern = toUnicode(value);
= icu::UnicodeString::fromUTF8(icu::StringPiece(value.data(), static_cast<std::int32_t>(value.size())));
icu::ErrorCode status; icu::ErrorCode status;
UParseError parseError; UParseError parseError;
icu::MessageFormat message(pattern, lang, parseError, status); icu::MessageFormat message(pattern, lang, parseError, status);
@ -308,8 +307,7 @@ namespace L10n
std::vector<icu::Formattable> argValues; std::vector<icu::Formattable> argValues;
for (auto& [k, v] : args) for (auto& [k, v] : args)
{ {
argNames.push_back( argNames.push_back(toUnicode(k));
icu::UnicodeString::fromUTF8(icu::StringPiece(k.data(), static_cast<std::int32_t>(k.size()))));
argValues.push_back(v); argValues.push_back(v);
} }
return formatMessage(key, argNames, argValues); return formatMessage(key, argNames, argValues);
@ -338,4 +336,10 @@ namespace L10n
return std::string(key); return std::string(key);
return formatArgs(*defaultMessage, key, argNames, args); return formatArgs(*defaultMessage, key, argNames, args);
} }
icu::UnicodeString toUnicode(std::string_view value)
{
icu::StringPiece piece(value.data(), static_cast<std::int32_t>(value.size()));
return icu::UnicodeString::fromUTF8(piece);
}
} }

View File

@ -74,6 +74,7 @@ namespace L10n
const icu::MessageFormat* findMessage(std::string_view key, std::string_view localeName) const; const icu::MessageFormat* findMessage(std::string_view key, std::string_view localeName) const;
}; };
icu::UnicodeString toUnicode(std::string_view value);
} }
#endif // COMPONENTS_L10N_MESSAGEBUNDLES_H #endif // COMPONENTS_L10N_MESSAGEBUNDLES_H

View File

@ -1,4 +1,7 @@
AskLoadLastSave: "sLoadLastSaveMsg" AskLoadLastSave:
pattern: "{gmst:sLoadLastSaveMsg}"
variables:
- ["save"]
AudioEffects: "sEffects" AudioEffects: "sEffects"
AudioFootsteps: "sFootsteps" AudioFootsteps: "sFootsteps"
AudioMaster: "sMaster" AudioMaster: "sMaster"
@ -20,6 +23,8 @@ DetailLevel: "sDetail_Level"
DifficultyEasy: "sEasy" DifficultyEasy: "sEasy"
DifficultyHard: "sHard" DifficultyHard: "sHard"
Difficulty: "sDifficulty" Difficulty: "sDifficulty"
DifficultyValue:
pattern: "{gmst:sDifficulty} ({value})"
DistanceHigh: "sFar" DistanceHigh: "sFar"
DistanceLow: "sNear" DistanceLow: "sNear"
EmptySaveNameError: "sNotifyMessage65" EmptySaveNameError: "sNotifyMessage65"
@ -59,3 +64,7 @@ TransparencyFull: "sFull"
TransparencyNone: "sNone" TransparencyNone: "sNone"
Video: "sVideo" Video: "sVideo"
ViewDistance: "sRender_Distance" ViewDistance: "sRender_Distance"
ViewDistanceValue:
pattern: "{gmst:sRender_Distance} ({value, number, ::.00})"
ViewDistanceValueCells:
pattern: "{gmst:sRender_Distance} (×{cells, number, ::.00})"

View File

@ -12,7 +12,7 @@ PhysicsProfiler: "Physik-Profiler"
# Messages # Messages
AskLoadLastSave: "Der aktuellste Spielstand ist '%s'. Soll er geladen werden?" AskLoadLastSave: "Der aktuellste Spielstand ist ''{save}''. Soll er geladen werden?"
BuildingNavigationMesh: "Erstelle Navigationsgitter..." BuildingNavigationMesh: "Erstelle Navigationsgitter..."
InitializingData: "Initialisiere Daten..." InitializingData: "Initialisiere Daten..."
LoadingExterior: "Lade Bereich..." LoadingExterior: "Lade Bereich..."
@ -30,7 +30,7 @@ QuitGameConfirmation: "Spiel verlassen?"
SaveGameDenied: "Das Spiel kann gerade nicht gespeichert werden!" SaveGameDenied: "Das Spiel kann gerade nicht gespeichert werden!"
SavingInProgress: "Speichere Spiel..." SavingInProgress: "Speichere Spiel..."
ScreenshotFailed: "Speichern des Screenshots fehlgeschlagen!" ScreenshotFailed: "Speichern des Screenshots fehlgeschlagen!"
ScreenshotMade: "%s wurde gespeichert." ScreenshotMade: "{file} wurde gespeichert."
# Save game menu # Save game menu
@ -65,7 +65,9 @@ TimePlayed: "Spielzeit"
# Settings menu # Settings menu
ActorsProcessingRange: "Akteur-Verarbeitungsreichweite" ActorsProcessingRange: "Akteur-Verarbeitungsreichweite"
ActorsProcessingRangeValue: "Akteur-Verarbeitungsreichweite ({value, number, :: group-off})"
Anisotropy: "Anisotropie" Anisotropy: "Anisotropie"
AnisotropyValue: "Anisotropie ({value})"
Audio: "Audio" Audio: "Audio"
AudioMaster: "Master-Lautstärke" AudioMaster: "Master-Lautstärke"
AudioVoice: "Stimmen" AudioVoice: "Stimmen"
@ -98,12 +100,14 @@ DelayLow: "Schnell"
DelayHigh: "Langsam" DelayHigh: "Langsam"
DetailLevel: "Detailgrad" DetailLevel: "Detailgrad"
Difficulty: "Schwierigkeitsgrad" Difficulty: "Schwierigkeitsgrad"
DifficultyValue: "Schwierigkeitsgrad ({value})"
DifficultyEasy: "Leicht" DifficultyEasy: "Leicht"
DifficultyHard: "Schwer" DifficultyHard: "Schwer"
DistanceHigh: "Weit" DistanceHigh: "Weit"
DistanceLow: "Kurz" DistanceLow: "Kurz"
EnableController: "Controller aktivieren" EnableController: "Controller aktivieren"
FieldOfView: "Sichtfeld" FieldOfView: "Sichtfeld"
FieldOfViewValue: "Sichtfeld ({value, number, ::.00})"
FieldOfViewLow: "Niedrig" FieldOfViewLow: "Niedrig"
FieldOfViewHigh: "Hoch" FieldOfViewHigh: "Hoch"
ForcePerPixelLighting: "Beleuchtung pro Pixel" ForcePerPixelLighting: "Beleuchtung pro Pixel"
@ -131,16 +135,20 @@ LightingMethodShadersCompatibility: "Shader (Kompatibilitätsmodus)"
LightingResetToDefaults: "Einstellungen wirklich zurücksetzen? Das Ändern der „Beleuchtungsmethode“ erfordert einen Neustart." LightingResetToDefaults: "Einstellungen wirklich zurücksetzen? Das Ändern der „Beleuchtungsmethode“ erfordert einen Neustart."
Lights: "Beleuchtung" Lights: "Beleuchtung"
LightsBoundingSphereMultiplier: "Multiplikator für Begrenzungssphäre" LightsBoundingSphereMultiplier: "Multiplikator für Begrenzungssphäre"
LightsBoundingSphereMultiplierValue: "Multiplikator für Begrenzungssphäre ({value, number, ::.00})"
LightsBoundingSphereMultiplierTooltip: "Standard: 1,65\nMultiplikator für Größe der Begrenzungssphäre.\nGrößere Werte ermöglichen einen sanfteren Abfall, erfordern jedoch eine Erhöhung der maximalen Anzahl von Lichtquellen.\n\nBeeinflusst nicht die Beleuchtung oder Lichtintensität." LightsBoundingSphereMultiplierTooltip: "Standard: 1,65\nMultiplikator für Größe der Begrenzungssphäre.\nGrößere Werte ermöglichen einen sanfteren Abfall, erfordern jedoch eine Erhöhung der maximalen Anzahl von Lichtquellen.\n\nBeeinflusst nicht die Beleuchtung oder Lichtintensität."
LightsFadeStartMultiplier: "Multiplikator für Startwert der Lichtabblendung" LightsFadeStartMultiplier: "Multiplikator für Startwert der Lichtabblendung"
LightsFadeStartMultiplierValue: "Multiplikator für Startwert der Lichtabblendung ({value, number, ::.00})"
LightsFadeStartMultiplierTooltip: "Standard: 0,85\nBruchteil der maximalen Lichtreichweite, bei der Lichtquellen langsam zu verblassen beginnen.\n\nKleinere Werte führen zu einem sanfteren Übergang, der allerdings bereits bei geringerer Entfernung startet; größere Werte machen den Übergang abrupter, betreffen aber nur weiter entfernte Lichtquellen." LightsFadeStartMultiplierTooltip: "Standard: 0,85\nBruchteil der maximalen Lichtreichweite, bei der Lichtquellen langsam zu verblassen beginnen.\n\nKleinere Werte führen zu einem sanfteren Übergang, der allerdings bereits bei geringerer Entfernung startet; größere Werte machen den Übergang abrupter, betreffen aber nur weiter entfernte Lichtquellen."
LightsLightingMethodTooltip: "Legt die interne Behandlung von Lichtquellen fest.\n\n LightsLightingMethodTooltip: "Legt die interne Behandlung von Lichtquellen fest.\n\n
„Veraltet“ verwendet immer bis zu 8 Lichtquellen pro Objekt und führt zu Ergebnissen, die denen der Original-Engine am ähnlichsten sind.\n\n „Veraltet“ verwendet immer bis zu 8 Lichtquellen pro Objekt und führt zu Ergebnissen, die denen der Original-Engine am ähnlichsten sind.\n\n
„Shader (Kompatibilitätsmodus)“ entfernt das Maximum von 8 Lichtquellen pro Objekt; Bodenvegetation wird von Lichtquellen beleuchtet. Es wird empfohlen, diese Option für ältere Hardware und Maximalwerte für Lichtquellen nahe 8 zu verwenden.\n\n „Shader (Kompatibilitätsmodus)“ entfernt das Maximum von 8 Lichtquellen pro Objekt; Bodenvegetation wird von Lichtquellen beleuchtet. Es wird empfohlen, diese Option für ältere Hardware und Maximalwerte für Lichtquellen nahe 8 zu verwenden.\n\n
„Shader“ bietet alle Vorteile von „Shader (Kompatibilitätsmodus)“, nutzt aber einen moderneren Ansatz, der größere Maximalwerte für Lichtquellen bei geringen bis keinen Leistungseinbußen ermöglicht. Funktioniert möglicherweise nicht auf älterer Hardware." „Shader“ bietet alle Vorteile von „Shader (Kompatibilitätsmodus)“, nutzt aber einen moderneren Ansatz, der größere Maximalwerte für Lichtquellen bei geringen bis keinen Leistungseinbußen ermöglicht. Funktioniert möglicherweise nicht auf älterer Hardware."
LightsMaximumDistance: "Maximale Lichtreichweite" LightsMaximumDistance: "Maximale Lichtreichweite"
LightsMaximumDistanceValue: "Maximale Lichtreichweite ({value, number, :: group-off})"
LightsMaximumDistanceTooltip: "Standard: 8192 (1 Zelle)\nMaximale Entfernung, bis zu der Lichtquellen noch dargestellt werden (gemessen in In-Game-Einheiten).\n\nEin Wert von 0 entspricht einer unbegrenzten Reichweite." LightsMaximumDistanceTooltip: "Standard: 8192 (1 Zelle)\nMaximale Entfernung, bis zu der Lichtquellen noch dargestellt werden (gemessen in In-Game-Einheiten).\n\nEin Wert von 0 entspricht einer unbegrenzten Reichweite."
LightsMinimumInteriorBrightness: "Minimale Helligkeit in Innenräumen" LightsMinimumInteriorBrightness: "Minimale Helligkeit in Innenräumen"
LightsMinimumInteriorBrightnessValue: "Minimale Helligkeit in Innenräumen ({value, number, ::.00})"
LightsMinimumInteriorBrightnessTooltip: "Standard: 0,08\nMinimale Umgebungshelligkeit in Innenräumen.\n\nKann erhöht werden, falls Innenräume zu dunkel dargestellt werden.\n\nDies hat keine Auswirkung, wenn der klassische Lichtabfall verwendet wird." LightsMinimumInteriorBrightnessTooltip: "Standard: 0,08\nMinimale Umgebungshelligkeit in Innenräumen.\n\nKann erhöht werden, falls Innenräume zu dunkel dargestellt werden.\n\nDies hat keine Auswirkung, wenn der klassische Lichtabfall verwendet wird."
MatchSunlightToSun: "Licht an Sonne ausrichten" MatchSunlightToSun: "Licht an Sonne ausrichten"
MatchSunlightToSunTooltip: |- MatchSunlightToSunTooltip: |-
@ -149,6 +157,7 @@ MatchSunlightToSunTooltip: |-
Diese Option passt die Position der Sonnenlichtquelle an die sichtbare Position der Sonne an. Diese Option passt die Position der Sonnenlichtquelle an die sichtbare Position der Sonne an.
MaxLights: "Maximale Anzahl von Lichtquellen pro Objekt" MaxLights: "Maximale Anzahl von Lichtquellen pro Objekt"
MaxLightsValue: "Maximale Anzahl von Lichtquellen pro Objekt ({value, number, ::.00})"
MaxLightsTooltip: "Standard: 8\nMaximale Anzahl von Lichtquellen, die ein Objekt beleuchten können.\n\nKleine Werte können gerade an Orten mit vielen Lichtquellen zum Aufploppen und zum schnellen Wechsel von Lichtern führen, wie es aus der Original-Engine und anderen The-Elder-Scrolls-Titeln bekannt ist." MaxLightsTooltip: "Standard: 8\nMaximale Anzahl von Lichtquellen, die ein Objekt beleuchten können.\n\nKleine Werte können gerade an Orten mit vielen Lichtquellen zum Aufploppen und zum schnellen Wechsel von Lichtern führen, wie es aus der Original-Engine und anderen The-Elder-Scrolls-Titeln bekannt ist."
MenuHelpDelay: "Verzögerung des Hilfe-Menüs" MenuHelpDelay: "Verzögerung des Hilfe-Menüs"
MenuTransparency: "Menü-Transparenz" MenuTransparency: "Menü-Transparenz"
@ -200,6 +209,8 @@ TransparencyFull: "Vollständig"
TransparencyNone: "Keine" TransparencyNone: "Keine"
Video: "Video" Video: "Video"
ViewDistance: "Sichtweite" ViewDistance: "Sichtweite"
ViewDistanceValue: "Sichtweite ({value, number, ::.00})"
ViewDistanceValueCells: "Sichtweite (×{cells, number, ::.00})"
VSync: "VSync" VSync: "VSync"
VSyncAdaptive: "Adaptiv" VSyncAdaptive: "Adaptiv"
Water: "Wasser" Water: "Wasser"

View File

@ -12,7 +12,7 @@ PhysicsProfiler: "Physics Profiler"
# Messages # Messages
AskLoadLastSave: "The most recent save is '%s'. Do you want to load it?" AskLoadLastSave: "The most recent save is ''{save}''. Do you want to load it?"
BuildingNavigationMesh: "Building Navigation Mesh" BuildingNavigationMesh: "Building Navigation Mesh"
InitializingData: "Initializing Data..." InitializingData: "Initializing Data..."
LoadingExterior: "Loading Area" LoadingExterior: "Loading Area"
@ -30,7 +30,7 @@ QuitGameConfirmation: "Quit the game?"
SaveGameDenied: "The game cannot be saved right now." SaveGameDenied: "The game cannot be saved right now."
SavingInProgress: "Saving..." SavingInProgress: "Saving..."
ScreenshotFailed: "Failed to save screenshot" ScreenshotFailed: "Failed to save screenshot"
ScreenshotMade: "%s has been saved" ScreenshotMade: "{file} has been saved"
# Save game menu # Save game menu
@ -65,7 +65,9 @@ TimePlayed: "Time Played"
# Settings menu # Settings menu
ActorsProcessingRange: "Actors Processing Range" ActorsProcessingRange: "Actors Processing Range"
ActorsProcessingRangeValue: "Actors Processing Range ({value, number, :: group-off})"
Anisotropy: "Anisotropy" Anisotropy: "Anisotropy"
AnisotropyValue: "Anisotropy ({value})"
Audio: "Audio" Audio: "Audio"
AudioEffects: "Effects" AudioEffects: "Effects"
AudioFootsteps: "Footsteps" AudioFootsteps: "Footsteps"
@ -98,12 +100,14 @@ DelayLow: "Fast"
DelayHigh: "Slow" DelayHigh: "Slow"
DetailLevel: "Detail Level" DetailLevel: "Detail Level"
Difficulty: "Difficulty" Difficulty: "Difficulty"
DifficultyValue: "Difficulty ({value})"
DifficultyEasy: "Easy" DifficultyEasy: "Easy"
DifficultyHard: "Hard" DifficultyHard: "Hard"
DistanceHigh: "Far" DistanceHigh: "Far"
DistanceLow: "Near" DistanceLow: "Near"
EnableController: "Enable Controller" EnableController: "Enable Controller"
FieldOfView: "Field of View" FieldOfView: "Field of View"
FieldOfViewValue: "Field of View ({value, number, ::.00})"
FieldOfViewHigh: "High" FieldOfViewHigh: "High"
FieldOfViewLow: "Low" FieldOfViewLow: "Low"
ForcePerPixelLighting: "Per-Pixel Lighting" ForcePerPixelLighting: "Per-Pixel Lighting"
@ -131,16 +135,20 @@ LightingMethodShadersCompatibility: "Shaders (compatibility)"
LightingResetToDefaults: "Resets to default values, would you like to continue? Changes to lighting method will require a restart." LightingResetToDefaults: "Resets to default values, would you like to continue? Changes to lighting method will require a restart."
Lights: "Lights" Lights: "Lights"
LightsBoundingSphereMultiplier: "Bounding Sphere Multiplier" LightsBoundingSphereMultiplier: "Bounding Sphere Multiplier"
LightsBoundingSphereMultiplierValue: "Bounding Sphere Multiplier ({value, number, ::.00})"
LightsBoundingSphereMultiplierTooltip: "Default: 1.65\nMultiplier 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." LightsBoundingSphereMultiplierTooltip: "Default: 1.65\nMultiplier 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" LightsFadeStartMultiplier: "Fade Start Multiplier"
LightsFadeStartMultiplierValue: "Fade Start Multiplier ({value, number, ::.00})"
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." 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."
LightsLightingMethodTooltip: "Set the internal handling of light sources.\n\n LightsLightingMethodTooltip: "Set the internal handling of light sources.\n\n
\"Legacy\" always uses 8 lights per object. It provides results most similar to Morrowind's lighting.\n\n \"Legacy\" always uses 8 lights per object. It provides results most similar to Morrowind's lighting.\n\n
\"Shaders (compatibility)\" removes the 8 light limit. This mode also enables lighting on groundcover. It is recommended to use this with older hardware and a light limit closer to 8.\n\n \"Shaders (compatibility)\" removes the 8 light limit. This mode also enables lighting on groundcover. It is recommended to use this with older hardware and a light limit closer to 8.\n\n
\"Shaders\" carries all of the benefits that \"Shaders (compatibility)\" does, but uses a modern approach that allows for a higher max lights count with little to no performance penalties on modern hardware." \"Shaders\" carries all of the benefits that \"Shaders (compatibility)\" does, but uses a modern approach that allows for a higher max lights count with little to no performance penalties on modern hardware."
LightsMaximumDistance: "Maximum Light Distance" LightsMaximumDistance: "Maximum Light Distance"
LightsMaximumDistanceValue: "Maximum Light Distance ({value, number, :: group-off})"
LightsMaximumDistanceTooltip: "Default: 8192\nMaximum distance at which lights will appear (measured in units).\n\nSet this to 0 to use an unlimited 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" LightsMinimumInteriorBrightness: "Minimum Interior Brightness"
LightsMinimumInteriorBrightnessValue: "Minimum Interior Brightness ({value, number, ::.00})"
LightsMinimumInteriorBrightnessTooltip: "Default: 0.08\nMinimum ambient interior brightness.\n\nIncrease this if you feel interiors are too dark.\n\nThis has no effect if classic falloff is used." LightsMinimumInteriorBrightnessTooltip: "Default: 0.08\nMinimum ambient interior brightness.\n\nIncrease this if you feel interiors are too dark.\n\nThis has no effect if classic falloff is used."
MatchSunlightToSun: "Match Sunlight to Sun" MatchSunlightToSun: "Match Sunlight to Sun"
MatchSunlightToSunTooltip: |- MatchSunlightToSunTooltip: |-
@ -149,6 +157,7 @@ MatchSunlightToSunTooltip: |-
This option makes the sun light source's position match the sun's position. This option makes the sun light source's position match the sun's position.
MaxLights: "Max Lights" MaxLights: "Max Lights"
MaxLightsValue: "Max Lights ({value, number, ::.00})"
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." 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."
MenuHelpDelay: "Menu Help Delay" MenuHelpDelay: "Menu Help Delay"
MenuTransparency: "Menu Transparency" MenuTransparency: "Menu Transparency"
@ -200,6 +209,8 @@ TransparencyFull: "Full"
TransparencyNone: "None" TransparencyNone: "None"
Video: "Video" Video: "Video"
ViewDistance: "View Distance" ViewDistance: "View Distance"
ViewDistanceValue: "View Distance ({value, number, ::.00})"
ViewDistanceValueCells: "View Distance (×{cells, number, ::.00})"
VSync: "VSync" VSync: "VSync"
VSyncAdaptive: "Adaptive" VSyncAdaptive: "Adaptive"
Water: "Water" Water: "Water"

View File

@ -13,7 +13,7 @@ PhysicsProfiler: "Profileur des performances de la physique"
# Messages # Messages
BuildingNavigationMesh: "Construction du mesh de navigation" BuildingNavigationMesh: "Construction du mesh de navigation"
AskLoadLastSave: "La sauvegarde la plus récente est '%s'. Voulez-vous la charger ?" AskLoadLastSave: "La sauvegarde la plus récente est ''{save}''. Voulez-vous la charger ?"
InitializingData: "Initialisation des données..." InitializingData: "Initialisation des données..."
LoadingExterior: "Chargement de la zone de jeu" LoadingExterior: "Chargement de la zone de jeu"
LoadingFailed: "Échec du chargement de la sauvegarde" LoadingFailed: "Échec du chargement de la sauvegarde"
@ -30,7 +30,7 @@ QuitGameConfirmation: "Quitter la partie ?"
SaveGameDenied: "Sauvegarde impossible" SaveGameDenied: "Sauvegarde impossible"
SavingInProgress: "Sauvegarde en cours..." SavingInProgress: "Sauvegarde en cours..."
ScreenshotFailed: "Échec de la sauvegarde de la capture d'écran" ScreenshotFailed: "Échec de la sauvegarde de la capture d'écran"
ScreenshotMade: "Capture d'écran %s sauvegardée" ScreenshotMade: "Capture d'écran {file} sauvegardée"
# Save game menu # Save game menu
@ -65,7 +65,9 @@ TimePlayed: "Temps de jeu"
# Settings menu # Settings menu
ActorsProcessingRange: "Distance de traitement pour les personnages" ActorsProcessingRange: "Distance de traitement pour les personnages"
ActorsProcessingRangeValue: "Distance de traitement pour les personnages ({value, number, :: group-off})"
Anisotropy: "Anisotropie" Anisotropy: "Anisotropie"
AnisotropyValue: "Anisotropie ({value})"
Audio: "Audio" Audio: "Audio"
AudioEffects: "Ambiance" AudioEffects: "Ambiance"
AudioFootsteps: "Bruits de pas" AudioFootsteps: "Bruits de pas"
@ -98,12 +100,14 @@ DelayHigh: "Lent"
DelayLow: "Rapide" DelayLow: "Rapide"
DetailLevel: "Niveau de détails" DetailLevel: "Niveau de détails"
Difficulty: "Difficulté" Difficulty: "Difficulté"
DifficultyValue: "Difficulté ({value})"
DifficultyEasy: "Facile" DifficultyEasy: "Facile"
DifficultyHard: "Difficile" DifficultyHard: "Difficile"
DistanceHigh: "Lointain" DistanceHigh: "Lointain"
DistanceLow: "Proche" DistanceLow: "Proche"
EnableController: "Activer la manette" EnableController: "Activer la manette"
FieldOfView: "Champ de vision" FieldOfView: "Champ de vision"
FieldOfViewValue: "Champ de vision ({value, number, ::.00})"
FieldOfViewHigh: "Étendu" FieldOfViewHigh: "Étendu"
FieldOfViewLow: "Restreint" FieldOfViewLow: "Restreint"
ForcePerPixelLighting: "Éclairage par pixel" ForcePerPixelLighting: "Éclairage par pixel"
@ -131,16 +135,20 @@ LightingMethodShadersCompatibility: "Shaders (mode de compatibilité)"
LightingResetToDefaults: "Voulez-vous réinitialiser les paramètres d'affichage des lumières à leur valeur par défaut ? Ces changements requièrent un redémarrage de l'application." LightingResetToDefaults: "Voulez-vous réinitialiser les paramètres d'affichage des lumières à leur valeur par défaut ? Ces changements requièrent un redémarrage de l'application."
Lights: "Sources lumineuses" Lights: "Sources lumineuses"
LightsBoundingSphereMultiplier: "Multiplicateur de sphère englobante" LightsBoundingSphereMultiplier: "Multiplicateur de sphère englobante"
LightsBoundingSphereMultiplierValue: "Multiplicateur de sphère englobante ({value, number, ::.00})"
LightsBoundingSphereMultiplierTooltip: "valeur par défaut: 1.65\nMultiplicateur pour le rayon de la sphère incluant les sources lumineuses.\nUn multiplicateur plus élevé permet une extinction plus douce, mais applique un plus grand nombre de sources lumineuses sur chaque objet.\n\nCe paramètre ne modifie ni l'intensité ni la luminance des lumières." LightsBoundingSphereMultiplierTooltip: "valeur par défaut: 1.65\nMultiplicateur pour le rayon de la sphère incluant les sources lumineuses.\nUn multiplicateur plus élevé permet une extinction plus douce, mais applique un plus grand nombre de sources lumineuses sur chaque objet.\n\nCe paramètre ne modifie ni l'intensité ni la luminance des lumières."
LightsFadeStartMultiplier: "Seuil de perte d'éclat lumineux" LightsFadeStartMultiplier: "Seuil de perte d'éclat lumineux"
LightsFadeStartMultiplierValue: "Seuil de perte d'éclat lumineux ({value, number, ::.00})"
LightsFadeStartMultiplierTooltip: "valeur par défaut: 0.85\nFraction de la distance maximale d'une source à partir de laquelle l'intensité lumineuse commence à décroître.\n\nSélectionnez une valeur basse pour une transition douce ou une valeur plus élevée pour une transition plus abrupte." LightsFadeStartMultiplierTooltip: "valeur par défaut: 0.85\nFraction de la distance maximale d'une source à partir de laquelle l'intensité lumineuse commence à décroître.\n\nSélectionnez une valeur basse pour une transition douce ou une valeur plus élevée pour une transition plus abrupte."
LightsLightingMethodTooltip: "Définit la gestion des sources lumineuses :\n\n LightsLightingMethodTooltip: "Définit la gestion des sources lumineuses :\n\n
\"Traditionnelle\" Chaque objet est éclairé par 8 sources lumineuses. Cet méthode est la plus proche du jeu original.\n\n \"Traditionnelle\" Chaque objet est éclairé par 8 sources lumineuses. Cet méthode est la plus proche du jeu original.\n\n
\"Shaders (mode de compatibilité)\" supprime la limite des 8 sources lumineuses. Cette méthode permet d'éclairer la végétation au sol. Ce choix est recommandé pour les ordinateurs plus anciens avec un nombre de sources lumineuses proche de 8.\n\n \"Shaders (mode de compatibilité)\" supprime la limite des 8 sources lumineuses. Cette méthode permet d'éclairer la végétation au sol. Ce choix est recommandé pour les ordinateurs plus anciens avec un nombre de sources lumineuses proche de 8.\n\n
\"Shaders\" offre tous les bénéfices apportés par \"Shaders (mode de compatibilité)\", mais utilise une approche moderne. Celle-ci permet, sur du matériel moderne, d'augmenter le nombre de sources lumineuses par objet sans perte de performance." \"Shaders\" offre tous les bénéfices apportés par \"Shaders (mode de compatibilité)\", mais utilise une approche moderne. Celle-ci permet, sur du matériel moderne, d'augmenter le nombre de sources lumineuses par objet sans perte de performance."
LightsMaximumDistance: "Distance maximale des sources lumineuses" LightsMaximumDistance: "Distance maximale des sources lumineuses"
LightsMaximumDistanceValue: "Distance maximale des sources lumineuses ({value, number, :: group-off})"
LightsMaximumDistanceTooltip: "valeur par défaut: 8192\nDistance maximale d'affichage des sources lumineuses (en unité de distance).\n\nMettez cette valeur à 0 pour une distance d'affichage infinie." LightsMaximumDistanceTooltip: "valeur par défaut: 8192\nDistance maximale d'affichage des sources lumineuses (en unité de distance).\n\nMettez cette valeur à 0 pour une distance d'affichage infinie."
LightsMinimumInteriorBrightness: "Luminosité intérieure minimale" LightsMinimumInteriorBrightness: "Luminosité intérieure minimale"
LightsMinimumInteriorBrightnessValue: "Luminosité intérieure minimale ({value, number, ::.00})"
LightsMinimumInteriorBrightnessTooltip: "valeur par défaut: 0.08\nLuminosité ambiante minimum en intérieur.\n\nAugmentez cette valeur si les intérieurs vous semblent trop sombres.\n\nCela n'a aucun effet si l'atténuation classique est utilisée." LightsMinimumInteriorBrightnessTooltip: "valeur par défaut: 0.08\nLuminosité ambiante minimum en intérieur.\n\nAugmentez cette valeur si les intérieurs vous semblent trop sombres.\n\nCela n'a aucun effet si l'atténuation classique est utilisée."
MatchSunlightToSun: "Aligner la lumière du soleil" MatchSunlightToSun: "Aligner la lumière du soleil"
MatchSunlightToSunTooltip: |- MatchSunlightToSunTooltip: |-
@ -149,6 +157,7 @@ MatchSunlightToSunTooltip: |-
Cette option aligne la source lumineuse du soleil sur la position réelle du soleil. Cette option aligne la source lumineuse du soleil sur la position réelle du soleil.
MaxLights: "Maximum de sources lumineuses" MaxLights: "Maximum de sources lumineuses"
MaxLightsValue: "Maximum de sources lumineuses ({value, number, ::.00})"
MaxLightsTooltip: "valeur par défaut: 8\nNombre maximum de sources lumineuses par objet.\n\nUne valeur faible mène à des apparitions tardives des sources lumineuses similaires à celles obtenues avec la méthode d'éclairage traditionnelle." MaxLightsTooltip: "valeur par défaut: 8\nNombre maximum de sources lumineuses par objet.\n\nUne valeur faible mène à des apparitions tardives des sources lumineuses similaires à celles obtenues avec la méthode d'éclairage traditionnelle."
MenuHelpDelay: "Délai d'affichage du menu d'aide" MenuHelpDelay: "Délai d'affichage du menu d'aide"
MenuTransparency: "Transparence des menus" MenuTransparency: "Transparence des menus"
@ -200,6 +209,8 @@ TransparencyFull: "Haute"
TransparencyNone: "Basse" TransparencyNone: "Basse"
Video: "Graphisme" Video: "Graphisme"
ViewDistance: "Distance d'affichage" ViewDistance: "Distance d'affichage"
ViewDistanceValue: "Distance d'affichage ({value, number, ::.00})"
ViewDistanceValueCells: "Distance d'affichage (×{cells, number, ::.00})"
VSync: "VSync" VSync: "VSync"
VSyncAdaptive: "Adaptif" VSyncAdaptive: "Adaptif"
Water: "Eau" Water: "Eau"

View File

@ -12,7 +12,7 @@ PhysicsProfiler: "Profilowanie fizyki"
# Messages # Messages
AskLoadLastSave: "Ostatni zapis to '%s'. Czy chcesz go wczytać?" AskLoadLastSave: "Ostatni zapis to ''{save}''. Czy chcesz go wczytać?"
BuildingNavigationMesh: "Tworzenie siatki nawigacyjnej" BuildingNavigationMesh: "Tworzenie siatki nawigacyjnej"
InitializingData: "Inicjalizacja..." InitializingData: "Inicjalizacja..."
LoadingExterior: "Wczytywanie obszaru zewnętrznego" LoadingExterior: "Wczytywanie obszaru zewnętrznego"
@ -30,7 +30,7 @@ QuitGameConfirmation: "Wyjść z gry?"
SaveGameDenied: "Gra nie może być teraz zapisana." SaveGameDenied: "Gra nie może być teraz zapisana."
SavingInProgress: "Zapisywanie..." SavingInProgress: "Zapisywanie..."
ScreenshotFailed: "Nie udało się zapisać zrzutu ekranu" ScreenshotFailed: "Nie udało się zapisać zrzutu ekranu"
ScreenshotMade: "%s został zapisany" ScreenshotMade: "{file} został zapisany"
# Save game menu # Save game menu
@ -65,7 +65,9 @@ TimePlayed: "Czas gry"
# Settings menu # Settings menu
ActorsProcessingRange: "Zasięg przetwarzania postaci" ActorsProcessingRange: "Zasięg przetwarzania postaci"
ActorsProcessingRangeValue: "Zasięg przetwarzania postaci ({value, number, :: group-off})"
Anisotropy: "Anizotropia" Anisotropy: "Anizotropia"
AnisotropyValue: "Anizotropia ({value})"
Audio: "Dźwięk" Audio: "Dźwięk"
AudioEffects: "Efekty" AudioEffects: "Efekty"
AudioFootsteps: "Kroki" AudioFootsteps: "Kroki"
@ -98,12 +100,14 @@ DelayLow: "Szybko"
DelayHigh: "Wolno" DelayHigh: "Wolno"
DetailLevel: "Poziom szczegółowości" DetailLevel: "Poziom szczegółowości"
Difficulty: "Trudność" Difficulty: "Trudność"
DifficultyValue: "Trudność ({value})"
DifficultyEasy: "Łatwy" DifficultyEasy: "Łatwy"
DifficultyHard: "Trudny" DifficultyHard: "Trudny"
DistanceHigh: "Daleko" DistanceHigh: "Daleko"
DistanceLow: "Blisko" DistanceLow: "Blisko"
EnableController: "Włącz kontroler" EnableController: "Włącz kontroler"
FieldOfView: "Pole widzenia" FieldOfView: "Pole widzenia"
FieldOfViewValue: "Pole widzenia ({value, number, ::.00})"
FieldOfViewHigh: "Szerokie" FieldOfViewHigh: "Szerokie"
FieldOfViewLow: "Wąskie" FieldOfViewLow: "Wąskie"
ForcePerPixelLighting: "Oświetlenie per-piksel" ForcePerPixelLighting: "Oświetlenie per-piksel"
@ -131,16 +135,20 @@ LightingMethodShadersCompatibility: "Shadery (kompatybilne)"
LightingResetToDefaults: "Przywrócić domyślne wartości? Zmiany w metodzie oświetlenia wymagają ponownego uruchomienia." LightingResetToDefaults: "Przywrócić domyślne wartości? Zmiany w metodzie oświetlenia wymagają ponownego uruchomienia."
Lights: "Światła" Lights: "Światła"
LightsBoundingSphereMultiplier: "Mnożnik sfery ograniczającej" LightsBoundingSphereMultiplier: "Mnożnik sfery ograniczającej"
LightsBoundingSphereMultiplierValue: "Mnożnik sfery ograniczającej ({value, number, ::.00})"
LightsBoundingSphereMultiplierTooltip: "Domyślnie: 1.65\nMnożnik sfery ograniczającej światła.\nWiększe wartości pozwalają na płynniejsze zanikanie,\nale wymagają zwiększenia liczby maksymalnych świateł.\n\nNie wpływa na siłę ani zasięg światła." LightsBoundingSphereMultiplierTooltip: "Domyślnie: 1.65\nMnożnik sfery ograniczającej światła.\nWiększe wartości pozwalają na płynniejsze zanikanie,\nale wymagają zwiększenia liczby maksymalnych świateł.\n\nNie wpływa na siłę ani zasięg światła."
LightsFadeStartMultiplier: "Mnożnik początku zanikania" LightsFadeStartMultiplier: "Mnożnik początku zanikania"
LightsFadeStartMultiplierValue: "Mnożnik początku zanikania ({value, number, ::.00})"
LightsFadeStartMultiplierTooltip: "Domyślnie: 0.85\nProcent maksymalnego zasięgu, w którym światła zaczną zanikać.\n\nNiska wartość = wolniejsze przejścia.\nWysoka wartość = szybsze przejścia." LightsFadeStartMultiplierTooltip: "Domyślnie: 0.85\nProcent maksymalnego zasięgu, w którym światła zaczną zanikać.\n\nNiska wartość = wolniejsze przejścia.\nWysoka wartość = szybsze przejścia."
LightsLightingMethodTooltip: "Ustawia wewnętrzne przetwarzanie źródeł światła.\n\n LightsLightingMethodTooltip: "Ustawia wewnętrzne przetwarzanie źródeł światła.\n\n
\"Klasyczna\" zawsze używa 8 świateł na obiekt. Najbardziej przypomina oryginalne oświetlenie Morrowinda.\n\n \"Klasyczna\" zawsze używa 8 świateł na obiekt. Najbardziej przypomina oryginalne oświetlenie Morrowinda.\n\n
\"Shadery (kompatybilne)\" usuwa limit 8 świateł. Obsługuje również oświetlenie trawy. Zalecane dla starszego sprzętu.\n\n \"Shadery (kompatybilne)\" usuwa limit 8 świateł. Obsługuje również oświetlenie trawy. Zalecane dla starszego sprzętu.\n\n
\"Shadery\" oferuje te same zalety co wersja kompatybilna, ale działa nowocześnie i pozwala na więcej świateł bez dużych kosztów wydajności." \"Shadery\" oferuje te same zalety co wersja kompatybilna, ale działa nowocześnie i pozwala na więcej świateł bez dużych kosztów wydajności."
LightsMaximumDistance: "Maksymalny zasięg światła" LightsMaximumDistance: "Maksymalny zasięg światła"
LightsMaximumDistanceValue: "Maksymalny zasięg światła ({value, number, :: group-off})"
LightsMaximumDistanceTooltip: "Domyślnie: 8192\nMaksymalna odległość wyświetlania świateł (w jednostkach).\n\n0 = brak ograniczenia." LightsMaximumDistanceTooltip: "Domyślnie: 8192\nMaksymalna odległość wyświetlania świateł (w jednostkach).\n\n0 = brak ograniczenia."
LightsMinimumInteriorBrightness: "Minimalna jasność wnętrz" LightsMinimumInteriorBrightness: "Minimalna jasność wnętrz"
LightsMinimumInteriorBrightnessValue: "Minimalna jasność wnętrz ({value, number, ::.00})"
LightsMinimumInteriorBrightnessTooltip: "Domyślnie: 0.08\nMinimalna jasność w pomieszczeniach.\n\nZwiększ to, jeśli wnętrza są zbyt ciemne.\n\nNie działa, gdy używana jest klasyczna metoda zanikania." LightsMinimumInteriorBrightnessTooltip: "Domyślnie: 0.08\nMinimalna jasność w pomieszczeniach.\n\nZwiększ to, jeśli wnętrza są zbyt ciemne.\n\nNie działa, gdy używana jest klasyczna metoda zanikania."
MatchSunlightToSun: "Dopasuj światło słoneczne do pozycji słońca" MatchSunlightToSun: "Dopasuj światło słoneczne do pozycji słońca"
MatchSunlightToSunTooltip: |- MatchSunlightToSunTooltip: |-
@ -149,6 +157,7 @@ MatchSunlightToSunTooltip: |-
Ta opcja sprawia, że źródło światła słonecznego zgadza się z faktyczną pozycją słońca. Ta opcja sprawia, że źródło światła słonecznego zgadza się z faktyczną pozycją słońca.
MaxLights: "Maksymalna liczba świateł" MaxLights: "Maksymalna liczba świateł"
MaxLightsValue: "Maksymalna liczba świateł ({value, number, ::.00})"
MaxLightsTooltip: "Domyślnie: 8\nMaksymalna liczba świateł na obiekt.\n\nNiska wartość = efekt 'wyskakiwania' świateł, jak w klasycznym trybie." MaxLightsTooltip: "Domyślnie: 8\nMaksymalna liczba świateł na obiekt.\n\nNiska wartość = efekt 'wyskakiwania' świateł, jak w klasycznym trybie."
MenuHelpDelay: "Opóźnienie pomocy w menu" MenuHelpDelay: "Opóźnienie pomocy w menu"
MenuTransparency: "Przezroczystość menu" MenuTransparency: "Przezroczystość menu"
@ -200,6 +209,8 @@ TransparencyFull: "Pełna"
TransparencyNone: "Brak" TransparencyNone: "Brak"
Video: "Wideo" Video: "Wideo"
ViewDistance: "Zasięg widzenia" ViewDistance: "Zasięg widzenia"
ViewDistanceValue: "Zasięg widzenia ({value, number, ::.00})"
ViewDistanceValueCells: "Zasięg widzenia (×{cells, number, ::.00})"
VSync: "Synchronizacja pionowa" VSync: "Synchronizacja pionowa"
VSyncAdaptive: "Adaptacyjna" VSyncAdaptive: "Adaptacyjna"
Water: "Woda" Water: "Woda"

View File

@ -12,7 +12,7 @@ PhysicsProfiler: "Профилировщик физики"
# Messages # Messages
AskLoadLastSave: "Последнее сохранение - '%s'. Загрузить?" AskLoadLastSave: "Последнее сохранение - ''{save}''. Загрузить?"
BuildingNavigationMesh: "Построение навигационной сетки" BuildingNavigationMesh: "Построение навигационной сетки"
InitializingData: "Загрузка..." InitializingData: "Загрузка..."
LoadingExterior: "Загрузка области" LoadingExterior: "Загрузка области"
@ -30,7 +30,7 @@ QuitGameConfirmation: "Выйти из игры?"
SaveGameDenied: "В данный момент игру нельзя сохранить." SaveGameDenied: "В данный момент игру нельзя сохранить."
SavingInProgress: "Сохранение..." SavingInProgress: "Сохранение..."
ScreenshotFailed: "Не удалось создать снимок экрана" ScreenshotFailed: "Не удалось создать снимок экрана"
ScreenshotMade: "Создан снимок экрана %s" ScreenshotMade: "Создан снимок экрана {file}"
# Save game menu # Save game menu
@ -65,7 +65,9 @@ TimePlayed: "Время в игре"
# Settings menu # Settings menu
ActorsProcessingRange: "Дальность обработки персонажей" ActorsProcessingRange: "Дальность обработки персонажей"
ActorsProcessingRangeValue: "Дальность обработки персонажей ({value, number, :: group-off})"
Anisotropy: "Анизотропная фильтрация" Anisotropy: "Анизотропная фильтрация"
AnisotropyValue: "Анизотропная фильтрация ({value})"
Audio: "Звук" Audio: "Звук"
AudioEffects: "Эффекты" AudioEffects: "Эффекты"
AudioFootsteps: "Шаги" AudioFootsteps: "Шаги"
@ -98,12 +100,14 @@ DelayLow: "Маленькая"
DelayHigh: "Большая" DelayHigh: "Большая"
DetailLevel: "Уровень детализации" DetailLevel: "Уровень детализации"
Difficulty: "Сложность" Difficulty: "Сложность"
DifficultyValue: "Сложность ({value})"
DifficultyEasy: "Легко" DifficultyEasy: "Легко"
DifficultyHard: "Сложно" DifficultyHard: "Сложно"
DistanceHigh: "Далеко" DistanceHigh: "Далеко"
DistanceLow: "Близко" DistanceLow: "Близко"
EnableController: "Геймпад" EnableController: "Геймпад"
FieldOfView: "Поле зрения" FieldOfView: "Поле зрения"
FieldOfViewValue: "Поле зрения ({value, number, ::.00})"
FieldOfViewLow: "Маленькое" FieldOfViewLow: "Маленькое"
FieldOfViewHigh: "Большое" FieldOfViewHigh: "Большое"
ForcePerPixelLighting: "Попиксельное освещение" ForcePerPixelLighting: "Попиксельное освещение"
@ -131,16 +135,20 @@ LightingMethodShadersCompatibility: "Шейдеры (режим совм-ти)"
LightingResetToDefaults: "Обнулить настройки освещения? Смена метода освещения вступит в силу только после перезапуска приложения." LightingResetToDefaults: "Обнулить настройки освещения? Смена метода освещения вступит в силу только после перезапуска приложения."
Lights: "Освещение" Lights: "Освещение"
LightsBoundingSphereMultiplier: "Множитель размера ограничивающей сферы" LightsBoundingSphereMultiplier: "Множитель размера ограничивающей сферы"
LightsBoundingSphereMultiplierValue: "Множитель размера ограничивающей сферы ({value, number, ::.00})"
LightsBoundingSphereMultiplierTooltip: "Значение по умолчанию: 1.65\nМножитель размера ограничивающей сферы источников света.\nВысокие значения делают затухание света плавнее, но требуют более высокого максимального количества источников света.\n\nНастройка не влияет на уровень освещения или мощность источников света." LightsBoundingSphereMultiplierTooltip: "Значение по умолчанию: 1.65\nМножитель размера ограничивающей сферы источников света.\nВысокие значения делают затухание света плавнее, но требуют более высокого максимального количества источников света.\n\nНастройка не влияет на уровень освещения или мощность источников света."
LightsFadeStartMultiplier: "Множитель начала затухания" LightsFadeStartMultiplier: "Множитель начала затухания"
LightsFadeStartMultiplierValue: "Множитель начала затухания ({value, number, ::.00})"
LightsFadeStartMultiplierTooltip: "Значение по умолчанию: 0.85\nДоля расстояния (относительно дальности отображения источников света), на которой свет начинает затухать.\n\nНизкие значения ведут к плавному затуханию, высокие - к резкому." LightsFadeStartMultiplierTooltip: "Значение по умолчанию: 0.85\nДоля расстояния (относительно дальности отображения источников света), на которой свет начинает затухать.\n\nНизкие значения ведут к плавному затуханию, высокие - к резкому."
LightsLightingMethodTooltip: "Задает способ обработки источников света.\n\n LightsLightingMethodTooltip: "Задает способ обработки источников света.\n\n
\"Устаревший\" всегда использует 8 источников света на объект и выдает освещение, наиболее близкое к таковому в оригинальной игре.\n\n \"Устаревший\" всегда использует 8 источников света на объект и выдает освещение, наиболее близкое к таковому в оригинальной игре.\n\n
\"Шейдеры (режим совместимости)\" убирает ограничение в 8 источников света. Этот режим также позволяет освещению влиять на анимированную траву. Рекомендуется использовать этот режим на устаревшем аппаратном обеспечении и с количеством источников света на объект около 8.\n\n \"Шейдеры (режим совместимости)\" убирает ограничение в 8 источников света. Этот режим также позволяет освещению влиять на анимированную траву. Рекомендуется использовать этот режим на устаревшем аппаратном обеспечении и с количеством источников света на объект около 8.\n\n
\"Шейдеры\" работает аналогично режиму \"Шейдеры (режим совместимости)\", но использует более современный подход, позволяющий использовать большее количество источников света с минимальным влиянием на производительность на современном аппаратном обеспечении." \"Шейдеры\" работает аналогично режиму \"Шейдеры (режим совместимости)\", но использует более современный подход, позволяющий использовать большее количество источников света с минимальным влиянием на производительность на современном аппаратном обеспечении."
LightsMaximumDistance: "Дальность отображения источников света" LightsMaximumDistance: "Дальность отображения источников света"
LightsMaximumDistanceValue: "Дальность отображения источников света ({value, number, :: group-off})"
LightsMaximumDistanceTooltip: "Значение по умолчанию: 8192\nМаксимальное расстояние, на котором будут отображаться источники света (во внутриигровых единицах измерения).\n\nЕсли 0, то расстояние не ограничено." LightsMaximumDistanceTooltip: "Значение по умолчанию: 8192\nМаксимальное расстояние, на котором будут отображаться источники света (во внутриигровых единицах измерения).\n\nЕсли 0, то расстояние не ограничено."
LightsMinimumInteriorBrightness: "Минимальный уровень освещения в помещениях" LightsMinimumInteriorBrightness: "Минимальный уровень освещения в помещениях"
LightsMinimumInteriorBrightnessValue: "Минимальный уровень освещения в помещениях ({value, number, ::.00})"
LightsMinimumInteriorBrightnessTooltip: "Значение по умолчанию: 0.08\nМинимальный уровень фонового освещения в помещениях.\n\nУвеличьте значение, если помещения в игре кажутся слишком темными. Эта настройка не имеет эффекта, если используется классическое угасание." LightsMinimumInteriorBrightnessTooltip: "Значение по умолчанию: 0.08\nМинимальный уровень фонового освещения в помещениях.\n\nУвеличьте значение, если помещения в игре кажутся слишком темными. Эта настройка не имеет эффекта, если используется классическое угасание."
MatchSunlightToSun: "Свет солнца идет от солнца" MatchSunlightToSun: "Свет солнца идет от солнца"
MatchSunlightToSunTooltip: |- MatchSunlightToSunTooltip: |-
@ -149,6 +157,7 @@ MatchSunlightToSunTooltip: |-
Настройка делает так, чтобы направление света от солнца соответствовало его положению. Настройка делает так, чтобы направление света от солнца соответствовало его положению.
MaxLights: "Макс. кол-во источников света" MaxLights: "Макс. кол-во источников света"
MaxLightsValue: "Макс. кол-во источников света ({value, number, ::.00})"
MaxLightsTooltip: "Значение по умолчанию: 8\nМаксимальное количество источников света для каждого объекта.\n\nНизкие числа (близкие к значению по умолчанию) приводят к резким перепадам освещения, как при устаревшем методе освещения." MaxLightsTooltip: "Значение по умолчанию: 8\nМаксимальное количество источников света для каждого объекта.\n\nНизкие числа (близкие к значению по умолчанию) приводят к резким перепадам освещения, как при устаревшем методе освещения."
MenuHelpDelay: "Задержка всплывающих подсказок" MenuHelpDelay: "Задержка всплывающих подсказок"
MenuTransparency: "Прозрачность меню" MenuTransparency: "Прозрачность меню"
@ -199,6 +208,8 @@ TogglePostProcessorHUD: "Меню настроек постобработки"
TransparencyFull: "Прозрачное" TransparencyFull: "Прозрачное"
TransparencyNone: "Непрозрачное" TransparencyNone: "Непрозрачное"
ViewDistance: "Дальность обзора" ViewDistance: "Дальность обзора"
ViewDistanceValue: "Дальность обзора ({value, number, ::.00})"
ViewDistanceValueCells: "Дальность обзора (×{cells, number, ::.00})"
Video: "Видео" Video: "Видео"
VSync: "Вертикальная синхронизация" VSync: "Вертикальная синхронизация"
VSyncAdaptive: "Адаптивная" VSyncAdaptive: "Адаптивная"

View File

@ -12,7 +12,7 @@ PhysicsProfiler: "Fysikprofilerare"
# Messages # Messages
AskLoadLastSave: "Den senaste sparfilen är '%s'. Vill du ladda den?" AskLoadLastSave: "Den senaste sparfilen är ''{save}''. Vill du ladda den?"
BuildingNavigationMesh: "Bygger navigeringsmesh" BuildingNavigationMesh: "Bygger navigeringsmesh"
InitializingData: "Initialiserar data..." InitializingData: "Initialiserar data..."
LoadingExterior: "Laddar område" LoadingExterior: "Laddar område"
@ -30,7 +30,7 @@ QuitGameConfirmation: "Avsluta spelet?"
SaveGameDenied: "Spelet kan inte sparas just nu." SaveGameDenied: "Spelet kan inte sparas just nu."
SavingInProgress: "Sparar..." SavingInProgress: "Sparar..."
ScreenshotFailed: "Misslyckades att spara skärmdump" ScreenshotFailed: "Misslyckades att spara skärmdump"
ScreenshotMade: "%s har sparats" ScreenshotMade: "{file} har sparats"
# Save game menu # Save game menu
@ -65,7 +65,9 @@ SelectCharacter: "Välj spelfigur..."
# Settings menu # Settings menu
ActorsProcessingRange: "Processavstånd för figurer" ActorsProcessingRange: "Processavstånd för figurer"
ActorsProcessingRangeValue: "Processavstånd för figurer ({value, number, :: group-off})"
Anisotropy: "Anisotropi" Anisotropy: "Anisotropi"
AnisotropyValue: "Anisotropi ({value})"
Audio: "Ljud" Audio: "Ljud"
AudioEffects: "Effekter" AudioEffects: "Effekter"
AudioFootsteps: "Fotsteg" AudioFootsteps: "Fotsteg"
@ -98,12 +100,14 @@ DelayLow: "Snabbt"
DelayHigh: "Långsamt" DelayHigh: "Långsamt"
DetailLevel: "Detaljnivå" DetailLevel: "Detaljnivå"
Difficulty: "Svårighetsgrad" Difficulty: "Svårighetsgrad"
DifficultyValue: "Svårighetsgrad ({value})"
DifficultyEasy: "Lätt" DifficultyEasy: "Lätt"
DifficultyHard: "Svårt" DifficultyHard: "Svårt"
DistanceHigh: "Långt" #Unsure in what context this goes DistanceHigh: "Långt" #Unsure in what context this goes
DistanceLow: "Nära" #Unsure in what context this goes DistanceLow: "Nära" #Unsure in what context this goes
EnableController: "Aktivera handkontroll" EnableController: "Aktivera handkontroll"
FieldOfView: "Synfält" FieldOfView: "Synfält"
FieldOfViewValue: "Synfält ({value, number, ::.00})"
FieldOfViewLow: "Låg" FieldOfViewLow: "Låg"
FieldOfViewHigh: "Hög" FieldOfViewHigh: "Hög"
ForcePerPixelLighting: "Per-pixelljussättning" ForcePerPixelLighting: "Per-pixelljussättning"
@ -132,16 +136,20 @@ LightingMethodShadersCompatibility: "Shader (kompatibilitet)"
LightingResetToDefaults: "Återställer till ursprungliga värden, vill du fortsätta? Ändringar till ljussättningsmetod kräver omstart." LightingResetToDefaults: "Återställer till ursprungliga värden, vill du fortsätta? Ändringar till ljussättningsmetod kräver omstart."
Lights: "Ljus" Lights: "Ljus"
LightsBoundingSphereMultiplier: "Gränssfärsmultiplikator" LightsBoundingSphereMultiplier: "Gränssfärsmultiplikator"
LightsBoundingSphereMultiplierValue: "Gränssfärsmultiplikator ({value, number, ::.00})"
LightsBoundingSphereMultiplierTooltip: "Förvalt: 1.65\nMultiplikator för ljusens gränssfär.\nHögre värden ger mjukare minskning av gränssfären, men kräver högre värde i Max antal ljuskällor.\n\nPåverkar inte ljusstyrkan." LightsBoundingSphereMultiplierTooltip: "Förvalt: 1.65\nMultiplikator för ljusens gränssfär.\nHögre värden ger mjukare minskning av gränssfären, men kräver högre värde i Max antal ljuskällor.\n\nPåverkar inte ljusstyrkan."
LightsFadeStartMultiplier: "Blekningsstartmultiplikator" LightsFadeStartMultiplier: "Blekningsstartmultiplikator"
LightsFadeStartMultiplierValue: "Blekningsstartmultiplikator ({value, number, ::.00})"
LightsFadeStartMultiplierTooltip: "Förvalt: 0.85\nFraktion av det maximala avståndet från vilket ljuskällor börjar blekna.\n\nVälj lågt värde för långsammare övergång eller högre värde för snabbare övergång." LightsFadeStartMultiplierTooltip: "Förvalt: 0.85\nFraktion av det maximala avståndet från vilket ljuskällor börjar blekna.\n\nVälj lågt värde för långsammare övergång eller högre värde för snabbare övergång."
LightsLightingMethodTooltip: "Välj intern hantering av ljuskällor.\n\n LightsLightingMethodTooltip: "Välj intern hantering av ljuskällor.\n\n
\"Gammaldags\" använder alltid max 8 ljuskällor per objekt och ger ljussättning likt ett gammaldags spel.\n\n \"Gammaldags\" använder alltid max 8 ljuskällor per objekt och ger ljussättning likt ett gammaldags spel.\n\n
\"Shader (kompatibilitet)\" tar bort begränsningen med max 8 ljuskällor per objekt. Detta läge aktiverar också ljus på marktäckning. Rekommenderas för äldre hårdvara tillsammans med en ljusbegränsning nära 8.\n\n \"Shader (kompatibilitet)\" tar bort begränsningen med max 8 ljuskällor per objekt. Detta läge aktiverar också ljus på marktäckning. Rekommenderas för äldre hårdvara tillsammans med en ljusbegränsning nära 8.\n\n
\"Shader\" har alla fördelar som \"Shader (kompatibilitet)\" har, med med ett modernt förhållningssätt som möjliggör fler maximalt antal ljuskällor med liten eller ingen prestandaförlust på modern hårdvara." \"Shader\" har alla fördelar som \"Shader (kompatibilitet)\" har, med med ett modernt förhållningssätt som möjliggör fler maximalt antal ljuskällor med liten eller ingen prestandaförlust på modern hårdvara."
LightsMaximumDistance: "Maximalt ljusavstånd" LightsMaximumDistance: "Maximalt ljusavstånd"
LightsMaximumDistanceValue: "Maximalt ljusavstånd ({value, number, :: group-off})"
LightsMaximumDistanceTooltip: "Förvalt: 8192\nMaximala avståndet där ljuskällor syns (mätt i enheter).\n\nVärdet 0 ger oändligt avstånd." LightsMaximumDistanceTooltip: "Förvalt: 8192\nMaximala avståndet där ljuskällor syns (mätt i enheter).\n\nVärdet 0 ger oändligt avstånd."
LightsMinimumInteriorBrightness: "Minsta ljusstyrka i interiörer" LightsMinimumInteriorBrightness: "Minsta ljusstyrka i interiörer"
LightsMinimumInteriorBrightnessValue: "Minsta ljusstyrka i interiörer ({value, number, ::.00})"
LightsMinimumInteriorBrightnessTooltip: "Förvalt: 0.08\nMinsta omgivande ljusstyrka i interiörer.\n\nÖka värdet om du anser att interiörer är för mörka.\n\nDetta har ingen effekt om klassiskt ljusavtagande används." LightsMinimumInteriorBrightnessTooltip: "Förvalt: 0.08\nMinsta omgivande ljusstyrka i interiörer.\n\nÖka värdet om du anser att interiörer är för mörka.\n\nDetta har ingen effekt om klassiskt ljusavtagande används."
MatchSunlightToSun: "Matcha solljus med solen" MatchSunlightToSun: "Matcha solljus med solen"
MatchSunlightToSunTooltip: |- MatchSunlightToSunTooltip: |-
@ -150,6 +158,7 @@ MatchSunlightToSunTooltip: |-
Detta alternativ gör att solljuskällans position matchar solens synliga position. Detta alternativ gör att solljuskällans position matchar solens synliga position.
MaxLights: "Max antal ljuskällor" MaxLights: "Max antal ljuskällor"
MaxLightsValue: "Max antal ljuskällor ({value, number, ::.00})"
MaxLightsTooltip: "Förvalt: 8\nMaximalt antal ljuskällor per objekt.\n\nEtt lågt tal nära det förvalda kommer orsaka att ljuskällor poppar upp som vid ljussättningsmetoden Gammaldags." MaxLightsTooltip: "Förvalt: 8\nMaximalt antal ljuskällor per objekt.\n\nEtt lågt tal nära det förvalda kommer orsaka att ljuskällor poppar upp som vid ljussättningsmetoden Gammaldags."
MenuHelpDelay: "Menyhjälp, fördröjning" #Unsure in what context this goes MenuHelpDelay: "Menyhjälp, fördröjning" #Unsure in what context this goes
MenuTransparency: "Menytransparens" MenuTransparency: "Menytransparens"
@ -201,6 +210,8 @@ TransparencyFull: "Full"
TransparencyNone: "Ingen" TransparencyNone: "Ingen"
Video: "Bild" Video: "Bild"
ViewDistance: "Siktavstånd" ViewDistance: "Siktavstånd"
ViewDistanceValue: "Siktavstånd ({value, number, ::.00})"
ViewDistanceValueCells: "Siktavstånd (×{cells, number, ::.00})"
VSync: "VSynk" VSync: "VSynk"
VSyncAdaptive: "Adaptiv" VSyncAdaptive: "Adaptiv"
Water: "Vatten" Water: "Vatten"

View File

@ -62,7 +62,7 @@
<UserString key="SettingMin" value="-100"/> <UserString key="SettingMin" value="-100"/>
<UserString key="SettingMax" value="100"/> <UserString key="SettingMax" value="100"/>
<UserString key="SettingLabelWidget" value="DifficultyText"/> <UserString key="SettingLabelWidget" value="DifficultyText"/>
<UserString key="SettingLabelCaption" value="#{OMWEngine:Difficulty} (%s)"/> <UserString key="SettingLabelCaption" value="DifficultyValue"/>
</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="#{OMWEngine:DifficultyEasy}"/> <Property key="Caption" value="#{OMWEngine:DifficultyEasy}"/>
@ -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="#{OMWEngine:ActorsProcessingRange} (%s)"/> <UserString key="SettingLabelCaption" value="ActorsProcessingRangeValue"/>
</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="#{OMWEngine:DistanceLow}"/> <Property key="Caption" value="#{OMWEngine:DistanceLow}"/>
@ -339,7 +339,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="#{OMWEngine:FieldOfView} (%s)"/> <UserString key="SettingLabelCaption" value="FieldOfViewValue"/>
</Widget> </Widget>
<Widget type="TextBox" skin="SandText" position="0 286 352 18" align="Left Top"> <Widget type="TextBox" skin="SandText" position="0 286 352 18" align="Left Top">
<Property key="Caption" value="#{OMWEngine:FieldOfViewLow}"/> <Property key="Caption" value="#{OMWEngine:FieldOfViewLow}"/>
@ -394,7 +394,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="#{OMWEngine:Anisotropy} (%s)"/> <UserString key="SettingLabelCaption" value="AnisotropyValue"/>
</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">
@ -410,7 +410,7 @@
<UserString key="SettingMin" value="2500"/> <UserString key="SettingMin" value="2500"/>
<UserString key="SettingMax" value="7168"/> <UserString key="SettingMax" value="7168"/>
<UserString key="SettingLabelWidget" value="RenderDistanceLabel"/> <UserString key="SettingLabelWidget" value="RenderDistanceLabel"/>
<UserString key="SettingLabelCaption" value="#{OMWEngine:ViewDistance} (%s)"/> <UserString key="SettingLabelCaption" value="ViewDistanceValue"/>
</Widget> </Widget>
<Widget type="ScrollBar" skin="MW_HScroll" position="0 126 352 18" align="HStretch Top" name="LargeRenderingDistanceSlider"> <Widget type="ScrollBar" skin="MW_HScroll" position="0 126 352 18" align="HStretch Top" name="LargeRenderingDistanceSlider">
<Property key="Range" value="79421"/> <Property key="Range" value="79421"/>
@ -422,7 +422,7 @@
<UserString key="SettingMin" value="2500"/> <UserString key="SettingMin" value="2500"/>
<UserString key="SettingMax" value="81920"/> <UserString key="SettingMax" value="81920"/>
<UserString key="SettingLabelWidget" value="RenderDistanceLabel"/> <UserString key="SettingLabelWidget" value="RenderDistanceLabel"/>
<UserString key="SettingLabelCaption" value="#{OMWEngine:ViewDistance} (x%s)"/> <UserString key="SettingLabelCaption" value="ViewDistanceValueCells"/>
</Widget> </Widget>
<Widget type="TextBox" skin="SandText" position="0 148 352 18" align="Left Top"> <Widget type="TextBox" skin="SandText" position="0 148 352 18" align="Left Top">
<Property key="Caption" value="#{OMWEngine:DistanceLow}"/> <Property key="Caption" value="#{OMWEngine:DistanceLow}"/>
@ -585,7 +585,7 @@
<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="#{OMWEngine:MaxLights} (%s)"/> <UserString key="SettingLabelCaption" value="MaxLightsValue"/>
</Widget> </Widget>
<Widget type="ComboBox" skin="MW_ComboBox" position="258 28 250 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"/>
@ -659,7 +659,7 @@
<UserString key="SettingName" value="maximum light distance"/> <UserString key="SettingName" value="maximum light distance"/>
<UserString key="SettingValueType" value="Float"/> <UserString key="SettingValueType" value="Float"/>
<UserString key="SettingLabelWidget" value="MaxLightDistanceText"/> <UserString key="SettingLabelWidget" value="MaxLightDistanceText"/>
<UserString key="SettingLabelCaption" value="#{OMWEngine:LightsMaximumDistance} (%s)"/> <UserString key="SettingLabelCaption" value="LightsMaximumDistanceValue"/>
</Widget> </Widget>
<!-- Light Fade Multiplier --> <!-- Light Fade Multiplier -->
<Widget type="TextBox" skin="NormalText" position="0 182 500 18" align="Left Top" name="LightFadeMultiplierText"> <Widget type="TextBox" skin="NormalText" position="0 182 500 18" align="Left Top" name="LightFadeMultiplierText">
@ -677,7 +677,7 @@
<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="#{OMWEngine:LightsFadeStartMultiplier} (%s)"/> <UserString key="SettingLabelCaption" value="LightsFadeStartMultiplierValue"/>
</Widget> </Widget>
<!-- Bounding Sphere Multiplier --> <!-- Bounding Sphere Multiplier -->
<Widget type="TextBox" skin="NormalText" position="0 230 500 18" align="Left Top" name="BoundingSphereMultText"> <Widget type="TextBox" skin="NormalText" position="0 230 500 18" align="Left Top" name="BoundingSphereMultText">
@ -695,7 +695,7 @@
<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="#{OMWEngine:LightsBoundingSphereMultiplier} (%s)"/> <UserString key="SettingLabelCaption" value="LightsBoundingSphereMultiplierValue"/>
</Widget> </Widget>
<!-- Minimum Ambient Brightness --> <!-- Minimum Ambient Brightness -->
<Widget type="TextBox" skin="NormalText" position="0 278 500 18" align="Left Top" name="MinimumBrightnessText"> <Widget type="TextBox" skin="NormalText" position="0 278 500 18" align="Left Top" name="MinimumBrightnessText">
@ -711,7 +711,7 @@
<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="#{OMWEngine:LightsMinimumInteriorBrightness} (%s)"/> <UserString key="SettingLabelCaption" value="LightsMinimumInteriorBrightnessValue"/>
</Widget> </Widget>
<Widget type="AutoSizedButton" skin="MW_Button" position="0 336 0 0" align="Top Left" name="LightsResetButton"> <Widget type="AutoSizedButton" skin="MW_Button" position="0 336 0 0" align="Top Left" name="LightsResetButton">
<Property key="Caption" value="#{Interface:Reset}"/> <Property key="Caption" value="#{Interface:Reset}"/>