模块:Language/external links
外观
此模块已评为alpha版,可接受第三方输入,并可用于少量页面以检查是否存在问题,但需要受到检查。欢迎提供新功能或修改其输入输出机制的建议。 |
该模块将ISO 639代码和语言标签转换为其等效的语言名称(或说明)。它有三种模式:simple(简单),fuzzy(模糊)和formal(正式)。在simple模式中,整个标签需要完全匹配;在fuzzy模式,只有基础ISO 639代码需要完全匹配。例如,如果列表中没有mn-Cyrl
标签,但是存在mn
,则simple模式将无法找到匹配,而fuzzy则可以。
最后,在formal模式,脚本将尝试通过语言、脚本(编写系统)与区域来正确解码标签,并完整印出其名称。 以下是三种模式如何处理zh
和 zh-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。
参见
[编辑]- Module:Language/external links
- Module:Language/text
- Module:Language/name/data
- Module:Language/data/names
- Special:PrefixIndex/Module:Language/data/, notably:
- language subtags
- script subtags
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
}