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