From f7ad7a8263002240bacedfba93d50ed15452059c Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Mon, 24 Nov 2025 20:11:07 +0100 Subject: [PATCH] Replace string.format with l10n in playerskillhandlers --- files/data-mw/CMakeLists.txt | 3 +++ files/data-mw/l10n/Mechanics/gmst.yaml | 17 +++++++++++++++++ .../data-mw/scripts/omw/playerskillhandlers.lua | 16 ++++++---------- 3 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 files/data-mw/l10n/Mechanics/gmst.yaml diff --git a/files/data-mw/CMakeLists.txt b/files/data-mw/CMakeLists.txt index fd36d6d314..41924315c5 100644 --- a/files/data-mw/CMakeLists.txt +++ b/files/data-mw/CMakeLists.txt @@ -15,6 +15,9 @@ set(BUILTIN_DATA_MW_FILES # Generic UI messages that can be reused by mods l10n/Interface/gmst.yaml + # L10n for game-specific mechanics + l10n/Mechanics/gmst.yaml + # L10n for OpenMW menus and non-game-specific messages l10n/OMWEngine/gmst.yaml diff --git a/files/data-mw/l10n/Mechanics/gmst.yaml b/files/data-mw/l10n/Mechanics/gmst.yaml new file mode 100644 index 0000000000..d672e1d4b1 --- /dev/null +++ b/files/data-mw/l10n/Mechanics/gmst.yaml @@ -0,0 +1,17 @@ +ReleasedFromPrison: + pattern: |- + {days, plural, + one{{gmst:sNotifyMessage42}} + other{{gmst:sNotifyMessage43}} + } + variables: + - ["days"] + - ["days"] +SkillIncreasedTo: + pattern: "{gmst:sNotifyMessage39}" + variables: + - ["skill", "level"] +SkillDecreasedTo: + pattern: "{gmst:sNotifyMessage44}" + variables: + - ["skill", "level"] diff --git a/files/data-mw/scripts/omw/playerskillhandlers.lua b/files/data-mw/scripts/omw/playerskillhandlers.lua index d070dd0311..14fc1c6bbf 100644 --- a/files/data-mw/scripts/omw/playerskillhandlers.lua +++ b/files/data-mw/scripts/omw/playerskillhandlers.lua @@ -8,6 +8,7 @@ local NPC = types.NPC local Actor = types.Actor local ui = require('openmw.ui') local auxUtil = require('openmw_aux.util') +local mechanicsL10n = core.l10n('Mechanics') local function tableHasValue(table, value) for _, v in pairs(table) do @@ -99,7 +100,7 @@ local function skillLevelUpHandler(skillid, source, params) ambient.playSound("skillraise") - local message = string.format(core.getGMST('sNotifyMessage39'),skillRecord.name,skillStat.base) + local message = mechanicsL10n('SkillIncreasedTo', { skill = skillRecord.name, level = skillStat.base }) if source == I.SkillProgression.SKILL_INCREASE_SOURCES.Book then message = '#{sBookSkillMessage}\n'..message @@ -134,21 +135,16 @@ local function jailTimeServed(days) I.SkillProgression.skillLevelUp(skillid, I.SkillProgression.SKILL_INCREASE_SOURCES.Jail) end - local message = '' - if days == 1 then - message = string.format(core.getGMST('sNotifyMessage42'), days) - else - message = string.format(core.getGMST('sNotifyMessage43'), days) - end + local message = mechanicsL10n('ReleasedFromPrison', { days = days }); for skillid, skillStat in pairs(NPC.stats.skills) do local diff = skillStat(self).base - oldSkillLevels[skillid] if diff ~= 0 then - local skillMsg = core.getGMST('sNotifyMessage39') + local skillMsg = 'SkillIncreasedTo' if diff < 0 then - skillMsg = core.getGMST('sNotifyMessage44') + skillMsg = 'SkillDecreasedTo' end local skillRecord = Skill.record(skillid) - message = message..'\n'..string.format(skillMsg, skillRecord.name, skillStat(self).base) + message = message..'\n'..mechanicsL10n(skillMsg, { skill = skillRecord.name, level = skillStat(self).base }) end end