Editing Module:LangGive feedback
Jump to navigation
Jump to search
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
| Latest revision | Your text | ||
| Line 7: | Line 7: | ||
-- the expected key does not have a localization entry | -- the expected key does not have a localization entry | ||
local KEY_OVERRIDES = { | local KEY_OVERRIDES = { | ||
MoveSlowPercent_label = 'MovementSlow_label', | MoveSlowPercent_label = 'MovementSlow_label', | ||
BonusHealthRegen_label = 'HealthRegen_label', | BonusHealthRegen_label = 'HealthRegen_label', | ||
| Line 19: | Line 17: | ||
EvasionChance_label = 'EvasionChance_Label', | EvasionChance_label = 'EvasionChance_Label', | ||
DelayBetweenShots_label = 'DelayBetweenShots_Label', | DelayBetweenShots_label = 'DelayBetweenShots_Label', | ||
} | } | ||
| Line 54: | Line 32: | ||
if not text or type(text) ~= "string" then return text end | if not text or type(text) ~= "string" then return text end | ||
-- Replace "n with newline character | -- Replace "n with newline character | ||
return text:gsub('"n', ' | return text:gsub('"n', '\n') | ||
end | end | ||
| Line 61: | Line 39: | ||
local replacements = { | local replacements = { | ||
SpiritIcon = {icon='{{Icon/Purple|[[File:AttributeIconTechShieldHealth.png|link=Spirit Damage|12px]]}}', link='Spirit Damage'}, | |||
SpiritDamage = {icon='{{Icon/Purple|[[File:AttributeIconTechShieldHealth.png|link=Spirit Damage|12px]]}}', label_color='#bc8ee8', link='Spirit Damage'}, | |||
SpiritResist = {icon='{{Icon/Purple|[[File:Spirit_Armor.png|link=Damage_Resistance|20px]]}}', label_color='#bc8ee8', link='Damage_Resistance'}, | |||
FireRate = {icon='{{Icon/White|[[File:Fire_Rate.png|link=Fire Rate|20px]]}}', label_color='#ffefd7', link='Fire Rate'}, | FireRate = {icon='{{Icon/White|[[File:Fire_Rate.png|link=Fire Rate|20px]]}}', label_color='#ffefd7', link='Fire Rate'}, | ||
ReducedFireRate = {icon='{{Icon/White|[[File:Fire_Rate.png|link=Fire Rate|20px]]}}', label_color='#ffefd7', link='Fire Rate'}, | |||
MeleeDamage = {icon='{{Icon/Brown|[[File:Melee damage.png|link=Melee Damage|20px]]}}', label_color='#ec981a', link='Melee Damage'}, | MeleeDamage = {icon='{{Icon/Brown|[[File:Melee damage.png|link=Melee Damage|20px]]}}', label_color='#ec981a', link='Melee Damage'}, | ||
WeaponDamage = {icon='{{Icon/Brown|[[File:Damage.png|link=Weapon Damage|20px]]}}', label_color='#ec981a', link='Weapon Damage'}, | |||
BulletResist = {icon='{{Icon/Brown|[[File:Bullet_Armor.png|link=Damage_Resistance|20px]]}}', label_color='#ec981a', link='Damage_Resistance'}, | |||
CombatBarrier = {icon='{{Icon/White|[[File:Bullet_Armor.png|link=Damage_Resistance|20px]]}}', label_color='#ffefd7', link='Barrier'}, | |||
BonusWeaponDamage = {icon='{{Icon/Brown|[[File:Damage.png|link=Weapon Damage|20px]]}}', label_color='#ec981a', link='Weapon Damage'}, | |||
MoveSpeed = {icon='{{Icon/White|[[File:Move_speed.png|link=Move speed|20px]]}}', label_color='#ffefd7', link='Move speed'}, | |||
BonusSpiritDamage = {icon='{{Icon/Purple|[[File:AttributeIconTechShieldHealth.png|link=Spirit Damage|12px]]}}', label_color='#bc8ee8', link='Spirit Damage'}, | |||
BonusFireRate = {icon='{{Icon/White|[[File:Fire_Rate.png|link=Fire Rate|20px]]}}', label_color='#ffefd7', link='Fire Rate'}, | |||
Heal = {icon='{{Icon/Green|[[File:Health_regen.png|link=Health_Regen|20px]]}}', label_color='#13f278', link='Health_Regen'}, | |||
BonusMoveSpeed = {icon='{{Icon/White|[[File:Move_speed.png|link=Move speed|20px]]}}', label_color='#ffefd7', link='Move speed'}, | |||
Spirit = {icon='{{Icon/NoColor|[[File:Spirit_icon.png|link=Spirit Power|20px]]}}', label_color='#bc8ee8', link='Spirit Power'}, | |||
Stun = {icon='{{Icon/White|[[File:Status_Stun.png|link=Stun|20px]]}}', link='Stun'}, | |||
SpiritDPS = {icon='{{Icon/Purple|[[File:AttributeIconTechShieldHealth.png|link=Spirit Damage|12px]]}}', label_color='#bc8ee8', link='Spirit Damage'}, | |||
Healing = {icon='{{Icon/Green|[[File:Health_regen.png|link=Healing|20px]]}}', label_color='#13f278', link='Healing'}, | |||
Regen = {icon='{{Icon/Green|[[File:Health_regen.png|link=Health_Regen|20px]]}}', label_color='#13f278', link='Health_Regen'}, | |||
Slow = {icon='{{Icon/White|[[File:MoveSlow.png|link=Movement_Slow|20px]]}}', label_color='#ffefd7', link='Movement_Slow'}, | Slow = {icon='{{Icon/White|[[File:MoveSlow.png|link=Movement_Slow|20px]]}}', label_color='#ffefd7', link='Movement_Slow'}, | ||
SlowResistance = {icon='{{Icon/White|[[File:MoveSlow.png|link=Movement_Slow#Movement_Slow_Resist|20px]]}}', label_color='#ffefd7', link='Movement_Slow#Movement_Slow_Resist'}, | SlowResistance = {icon='{{Icon/White|[[File:MoveSlow.png|link=Movement_Slow#Movement_Slow_Resist|20px]]}}', label_color='#ffefd7', link='Movement_Slow#Movement_Slow_Resist'}, | ||
Immobilize = {icon='{{Icon/White|[[File:Immobilize.png|link=Status Effects#Immobilized|20px]]}}', label_color='#ffefd7', link='Status Effects#Immobilized'}, | |||
} | } | ||
| Line 116: | Line 67: | ||
text = text:gsub('<span class="highlight">(.-)</span>', "<span style= font-weight:bold>%1</span>") | text = text:gsub('<span class="highlight">(.-)</span>', "<span style= font-weight:bold>%1</span>") | ||
text = text:gsub('<span class="highlight_spirit">(.-)</span>', '<span style="font-weight:bold; color:#bc8ee8">%1</span>') | text = text:gsub('<span class="highlight_spirit">(.-)</span>', '<span style="font-weight:bold; color:#bc8ee8">%1</span>') | ||
text = text:gsub('<span class="diminish">(.-)</span>', '<span style="font-style: italic;color:#C0C0C0">%1</span>') | text = text:gsub('<span class="diminish">(.-)</span>', '<span style="font-style: italic;color:#C0C0C0">%1</span>') | ||
text = text:gsub('<span class=".-">(.-)</span>', '%1') | text = text:gsub('<span class=".-">(.-)</span>', '%1') | ||
-- Process | -- Process panels | ||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_tech_damage\">', '{{Icon/Purple|[[File:AttributeIconTechShieldHealth.png|link=Spirit Damage|12px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_slow\">', '{{Icon/White|[[File:MoveSlow.png|link=Movement_Slow|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_move_speed\">', '{{Icon/White|[[File:Move_speed.png|link=Move speed|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_damage\">', '{{Icon/Brown|[[File:Damage.png|link=Weapon Damage|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_cooldown\">', '{{Icon/White|[[File:AttributeIconTechDuration.png|link=Ability Cooldown|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_bullet_damage\">', '{{Icon/Brown|[[File:Damage.png|link=Weapon Damage|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_fire_rate\">', '{{Icon/White|[[File:Fire_Rate.png|link=Fire Rate|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_stun\">', '{{Icon/White|[[File:Stun.png|link=Fire Rate|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_invisible\">', '{{Icon/White|[[File:Invisible.png|link=|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_cast\">', '{{Icon/White|[[File:Cast.png|link=|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_silence\">', '{{Icon/White|[[File:Silence.png|link=|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_revealed\">', '{{Icon/White|[[File:Revealed.png|link=|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_StatDesc_TechPower\">', '{{Icon/Purple|[[File:AttributeIconTechShieldHealth.png|link=Spirit Damage|12px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_bullet_armor_up\">', '{{Icon/White|[[File:Barrier.png|link=Barrier|20px]]}}') | |||
text = text:gsub('<Panel class=\"AbilityPropertyIcon prop_tech_armor_up\">', '{{Icon/White|[[File:Barrier.png|link=Barrier|20px]]}}') | |||
-- Process citadel_inline_attribute tags | -- Process citadel_inline_attribute tags | ||
text = text:gsub("{g:citadel_inline_attribute:'(.-)'}", function(key) | |||
local replacement = replacements[key] | |||
if replacement then | |||
local label_color = replacement.label_color or 'inherit' | |||
local icon = replacement.icon or '' | |||
local link = replacement.link or '' | |||
-- pre-process string, then check to omit link if the string is empty | |||
local translated = frame:preprocess('{{#invoke:Lang|get_string|InlineAttribute_' .. key .. '}}') | |||
if translated == '' then | |||
return string.format('<span class="no-blue-link" style="text-wrap:nowrap; font-weight:bold; color:%s;">%s</span>', label_color, icon) | |||
else | else | ||
return '<span style=" | return string.format('<span class="no-blue-link" style="text-wrap:nowrap; font-weight:bold; color:%s;">%s [[%s|%s]]</span>', | ||
label_color, | |||
icon, | |||
link, | |||
translated) | |||
end | end | ||
else | |||
return '<span style="color:red;font-weight:bold;border-bottom:1px dotted red;" title="Missing attribute definition - Add \''..key..'\' to local replacements in [Module:Lang]">['..key..']</span>' | |||
end | |||
end) | |||
return frame:preprocess(text) | |||
end | end | ||
| Line 204: | Line 119: | ||
local frame | local frame | ||
if type(key) == "table" and key.args then | if type(key) == "table" and key.args then | ||
frame = | frame = key | ||
key = frame.args[1] | |||
lang_code_override = frame.args["lang_code_override"] | |||
fallback_str = frame.args["fallback_str"] | |||
lang_code_override = args["lang_code_override"] | remove_var_index = frame.args["remove_var_index"] | ||
fallback_str = args["fallback_str"] | item_name = frame.args["item_name"] | ||
remove_var_index = args["remove_var_index"] | |||
item_name = args["item_name"] | |||
else | else | ||
frame = mw.getCurrentFrame() | frame = mw.getCurrentFrame() | ||
| Line 230: | Line 143: | ||
-- Localize | -- Localize | ||
local label = data[KEY_OVERRIDES[key] or key] | local label = data[KEY_OVERRIDES[key] or key] | ||
if (label == nil) then | if (label == nil) then | ||
-- Apply fallback (without HTML processing for fallback) | -- Apply fallback (without HTML processing for fallback) | ||
| Line 253: | Line 159: | ||
end | end | ||
-- Apply remove_var | -- Apply remove_var | ||
if (remove_var_index ~= nil) then | if (remove_var_index ~= nil) then | ||
| Line 279: | Line 173: | ||
-- If value exists, remove non-number symbols (but keep + and -) | -- If value exists, remove non-number symbols (but keep + and -) | ||
if value then | if value then | ||
value = value:gsub("[^0-9+- | value = value:gsub("[^0-9+-]", "") | ||
-- Return empty string if nothing left, otherwise return the filtered value | -- Return empty string if nothing left, otherwise return the filtered value | ||
return value ~= "" and value or variable_name | return value ~= "" and value or variable_name | ||