模組:Language/external links

文档图示 模块文档[查看] [编辑] [历史] [清除缓存]

該模塊將ISO 639代碼和語言標籤轉換為其等效的語言名稱(或說明)。它有三種模式:simple(簡單),fuzzy(模糊)和formal(正式)。在simple模式中,整個標籤需要完全匹配;在fuzzy模式,只有基礎ISO 639代碼需要完全匹配。例如,如果列表中沒有mn-Cyrl標籤,但是存在mn,則simple模式將無法找到匹配,而fuzzy則可以。 最後,在formal模式,腳本將嘗試通過語言、腳本(編寫系統)與區域來正確解碼標籤,並完整印出其名稱。 以下是三種模式如何處理zhzh-Hans-CN

{{#invoke:Language/name|simple|code=zh}} 中文
{{#invoke:Language/name|simple|code=zh-Hans-CN}}
{{#invoke:Language/name|fuzzy|code=zh-Hans-CN}} 中文
{{#invoke:Language/name|formal|code=zh-Hans-CN}} 中文 (Han (Simplified variant), China)

{{ISO 639 name}}Module:Language/text 使用了 fuzzy模式。輸入不區分大小寫。如果輸入被省略,該模塊將返回一個錯誤訊息;如果找不到匹配項,它將返回一個空字符串。它可以與維碼中的#if結構一起使用,例如 {{#if:{{ISO 639 name|{{{1}}}}}| ... }}.

數據從/data中提取。

有關語言標籤的信息,請參閱BCP 47, the IANA Language Subtag Registry, Richard Ishida's Language Subtag Lookup和維基百科上的IETF language tag

參見 编辑

local getArgs = require("Module:Arguments").getArgs
local getName = require("Module:ISO 639 name").fuzzy

return {
    main = function (frame)
        local args = getArgs(frame)
        local out  = {}

        for k, v in pairs(args) do
            local name = getName{code=v}

            table.insert(
                out,
                tostring(
                    mw.html.create("span")
                        :attr("style", "font-size: 0.95em; font-weight: bold; color: #555")
                        :wikitext("(" .. (name ~= "" and name or v) .. ")")
                )
            )
        end

        return table.concat(out, " ")
    end
}