Module:TemplateHelpers: Difference between revisions
// via Wikitext Extension for VSCode |
// via Wikitext Extension for VSCode |
||
| Line 259: | Line 259: | ||
'<div style="display:none;">\n {{#set: Has region=' .. | '<div style="display:none;">\n {{#set: Has region=' .. | ||
region .. ' }}\n</div>' | region .. ' }}\n</div>' | ||
end | |||
end | |||
end | |||
return semanticOutput | |||
end | |||
-- Adds semantic properties for multiple languages with proper normalization | |||
-- This is a targeted helper that can be used within existing semantic property generation | |||
function p.addMultiLanguageSemanticProperties(languagesValue, semanticOutput) | |||
if not languagesValue or languagesValue == "" then return semanticOutput end | |||
local LanguageNormalization = require('Module:LanguageNormalization') | |||
-- Split by semicolons | |||
local languageCodes = p.splitSemicolonValues(languagesValue) | |||
-- Add each normalized language as a separate semantic property | |||
for _, langCode in ipairs(languageCodes) do | |||
-- Get canonical language name using the public normalize function | |||
local canonicalLang = LanguageNormalization.normalize(langCode) | |||
-- Only add if we got a valid canonical name | |||
if canonicalLang and canonicalLang ~= "" then | |||
if mw.smw then | |||
mw.smw.set({["Speaks language"] = canonicalLang}) | |||
else | |||
semanticOutput = semanticOutput .. "\n" .. | |||
'<div style="display:none;">\n {{#set: Speaks language=' .. | |||
canonicalLang .. ' }}\n</div>' | |||
end | end | ||
end | end | ||