Module:Documentation/config:修订间差异
外观
小无编辑摘要 |
小无编辑摘要 |
||
| 第7行: | 第7行: | ||
---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ||
local | local i18nData = mw.loadData('Module:Documentation/i18n') | ||
local cfg = {} -- 请勿编辑此行。 | local cfg = {} -- 请勿编辑此行。 | ||
-- 获取当前语言设置 | |||
local function getCurrentLang() | |||
-- 尝试获取MediaWiki语言设置 | |||
local success, lang = pcall(function() | |||
return mw.language.getContentLanguage():getCode() | |||
end) | |||
if success and lang then | |||
-- 语言映射 | |||
local langMap = { | |||
['zh'] = 'zh-hans', -- 默认简体中文 | |||
['zh-cn'] = 'zh-hans', -- 中国大陆 | |||
['zh-sg'] = 'zh-hans', -- 新加坡 | |||
['zh-tw'] = 'zh-hant', -- 台湾 | |||
['zh-hk'] = 'zh-hant', -- 香港 | |||
['zh-mo'] = 'zh-hant' -- 澳门 | |||
} | |||
-- 处理大小写和空格 | |||
lang = mw.ustring.lower(mw.text.trim(lang)) | |||
if not lang or lang == '' then | |||
return 'zh-hans' -- 空语言代码时默认简体中文 | |||
end | |||
return langMap[lang] or lang | |||
else | |||
-- 默认返回简体中文 | |||
return 'zh-hans' | |||
end | |||
end | |||
-- 获取翻译文本 | |||
local function getI18nText(key, lang) | |||
-- 获取语言代码,允许传入自定义语言 | |||
local langCode = lang or getCurrentLang() | |||
-- 确保使用支持的语言代码 | |||
local supportedLang = (langCode == 'zh-hans' or langCode == 'zh-hant') and langCode or 'zh-hans' | |||
-- 返回翻译,如果不存在则返回键名本身 | |||
return i18nData[supportedLang][key] or key | |||
end | |||
-- 模拟TNT.format功能,用于参数替换 | |||
local function i18nFormat(key, ...) | |||
local text = getI18nText(key) | |||
local args = {...} | |||
-- 替换$1, $2等占位符 | |||
for i, arg in ipairs(args) do | |||
text = mw.ustring.gsub(text, '$' .. i, arg) | |||
end | |||
return text | |||
end | |||
-- 创建i18n对象供配置使用 | |||
local i18n = { | |||
format = i18nFormat, | |||
get = getI18nText, | |||
getCurrentLang = getCurrentLang | |||
} | |||
cfg['templatestyles-scr'] = 'Module:Documentation/styles.css' | cfg['templatestyles-scr'] = 'Module:Documentation/styles.css' | ||
2025年11月21日 (五) 16:15的版本
package.lua第80行Lua错误:module 'Module:Documentation/i18n' not found
----------------------------------------------------------------------------------------------------
--
-- Module:Documentation 配置文件
--
-- 在这里您可以设置 Module:Documentation 中使用的参数和消息值,
-- 以将其本地化到您的维基和语言。除非另有说明,否则此处给出的值应为字符串值。
----------------------------------------------------------------------------------------------------
local i18nData = mw.loadData('Module:Documentation/i18n')
local cfg = {} -- 请勿编辑此行。
-- 获取当前语言设置
local function getCurrentLang()
-- 尝试获取MediaWiki语言设置
local success, lang = pcall(function()
return mw.language.getContentLanguage():getCode()
end)
if success and lang then
-- 语言映射
local langMap = {
['zh'] = 'zh-hans', -- 默认简体中文
['zh-cn'] = 'zh-hans', -- 中国大陆
['zh-sg'] = 'zh-hans', -- 新加坡
['zh-tw'] = 'zh-hant', -- 台湾
['zh-hk'] = 'zh-hant', -- 香港
['zh-mo'] = 'zh-hant' -- 澳门
}
-- 处理大小写和空格
lang = mw.ustring.lower(mw.text.trim(lang))
if not lang or lang == '' then
return 'zh-hans' -- 空语言代码时默认简体中文
end
return langMap[lang] or lang
else
-- 默认返回简体中文
return 'zh-hans'
end
end
-- 获取翻译文本
local function getI18nText(key, lang)
-- 获取语言代码,允许传入自定义语言
local langCode = lang or getCurrentLang()
-- 确保使用支持的语言代码
local supportedLang = (langCode == 'zh-hans' or langCode == 'zh-hant') and langCode or 'zh-hans'
-- 返回翻译,如果不存在则返回键名本身
return i18nData[supportedLang][key] or key
end
-- 模拟TNT.format功能,用于参数替换
local function i18nFormat(key, ...)
local text = getI18nText(key)
local args = {...}
-- 替换$1, $2等占位符
for i, arg in ipairs(args) do
text = mw.ustring.gsub(text, '$' .. i, arg)
end
return text
end
-- 创建i18n对象供配置使用
local i18n = {
format = i18nFormat,
get = getI18nText,
getCurrentLang = getCurrentLang
}
cfg['templatestyles-scr'] = 'Module:Documentation/styles.css'
----------------------------------------------------------------------------------------------------
-- 保护模板配置
----------------------------------------------------------------------------------------------------
-- cfg['protection-template']
-- 显示保护图标的模板名称(在英文维基上是一个挂锁图标)。
cfg['protection-template'] = 'pp-template'
-- cfg['protection-reason-edit']
-- 传递给 [[Module:Protection banner]] 的编辑保护模板的保护原因。
cfg['protection-reason-edit'] = 'template'
--[[
-- cfg['protection-template-args']
-- 发送给保护模板的任何参数。这应该是一个 Lua 表。
-- 例如,如果保护模板是 "pp-template",而维基文本模板调用
-- 看起来像 "{{pp-template|docusage=yes}}",那么这个表应该看起来像 "{docusage = 'yes'}"。
--]]
cfg['protection-template-args'] = {docusage = 'yes'}
--[[
----------------------------------------------------------------------------------------------------
-- 沙盒通知配置
--
-- 在沙盒页面上,该模块可以显示一个模板,通知用户当前页面是一个
-- 沙盒,以及测试用例页面的位置等。模块根据 cfg['sandbox-subpage'] 的值决定页面是否为
-- 沙盒。以下设置配置通知中包含的消息。
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- 沙盒通知中显示的图像。
cfg['sandbox-notice-image'] = '[[File:Edit In Sandbox Icon - Color.svg|40px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- 沙盒页面的页面类型。显示的消息取决于当前主题命名空间。
-- 此消息用于 cfg['sandbox-notice-blurb'] 或 cfg['sandbox-notice-diff-blurb']。
--]]
cfg['sandbox-notice-pagetype-template'] = i18n.format('sandbox-notice-pagetype-template')
cfg['sandbox-notice-pagetype-module'] = i18n.format('sandbox-notice-pagetype-module')
cfg['sandbox-notice-pagetype-other'] = i18n.format('sandbox-notice-pagetype-other')
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- cfg['sandbox-notice-blurb'] 或 cfg['sandbox-notice-diff-blurb'] 是沙盒通知的开头句子。
-- 后者有一个差异链接,但前者没有。$1 是页面类型,根据我们所在的命名空间,
-- 可以是 cfg['sandbox-notice-pagetype-template']、cfg['sandbox-notice-pagetype-module'] 或 cfg['sandbox-notice-pagetype-other']。
-- $2 是指向主模板页面的链接,$3 是沙盒和主模板之间的差异链接。
-- 差异链接的显示值由 cfg['sandbox-notice-compare-link-display'] 设置。
--]]
cfg['sandbox-notice-blurb'] = i18n.format('sandbox-notice-blurb')
cfg['sandbox-notice-diff-blurb'] = i18n.format('sandbox-notice-diff-blurb')
cfg['sandbox-notice-compare-link-display'] = i18n.format('sandbox-notice-compare-link-display')
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] 是通知用户有一个与此沙盒对应的测试用例页面
-- 他们可以编辑的句子。$1 是指向测试用例页面的链接。
-- cfg['sandbox-notice-testcases-link-display'] 是该链接的显示值。
-- cfg['sandbox-notice-testcases-run-blurb'] 是通知用户有一个与此沙盒对应的测试用例页面
-- 他们可以编辑,并带有运行它的链接的句子。$1 是指向测试用例页面的链接,
-- $2 是指向运行它的页面的链接。
-- cfg['sandbox-notice-testcases-run-link-display'] 是运行测试用例的链接的显示值。
--]]
cfg['sandbox-notice-testcases-blurb'] = i18n.format('sandbox-notice-testcases-blurb')
cfg['sandbox-notice-testcases-link-display'] = i18n.format('sandbox-notice-testcases-link-display')
cfg['sandbox-notice-testcases-run-blurb'] = i18n.format('sandbox-notice-testcases-run-blurb')
cfg['sandbox-notice-testcases-run-link-display'] = i18n.format('sandbox-notice-testcases-run-link-display')
-- cfg['sandbox-category']
-- 添加到所有模板沙盒的类别。
cfg['sandbox-category'] = 'Template sandboxes'
----------------------------------------------------------------------------------------------------
-- 起始框配置
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- 模板顶部显示的图标的维基文本。
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=Documentation icon]]'
----------------------------------------------------------------------------------------------------
-- 链接框(结束框)配置
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- 当文档从另一个页面嵌入时显示的通知。$1 是指向该页面的维基链接。
cfg['transcluded-from-blurb'] = i18n.format('transcluded-from-blurb')
--[[
-- cfg['create-module-doc-blurb']
-- 当文档子页面不存在时,在模块命名空间中显示的通知。
-- $1 是创建文档页面的链接,预加载 cfg['module-preload'],显示 cfg['create-link-display']。
--]]
cfg['create-module-doc-blurb'] = i18n.format('create-module-doc-blurb')
----------------------------------------------------------------------------------------------------
-- 实验说明配置
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- 实验说明是邀请编辑者在沙盒和测试用例页面中进行实验的文本。
-- 它仅在模板和模块命名空间中显示。使用默认的英文设置,它可能如下所示:
--
-- 编辑者可以在此模板的沙盒(编辑 | 差异)和测试用例(编辑)页面中进行实验。
--
-- 在此示例中,"sandbox"、"edit"、"diff"、"testcases" 和 "edit" 都将是链接。
--
-- 有两个版本,cfg['experiment-blurb-template'] 和 cfg['experiment-blurb-module'],取决于
-- 我们所在的命名空间。
--
-- 参数:
--
-- $1 是指向沙盒页面的链接。如果沙盒存在,其格式如下:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- 如果沙盒不存在,其格式为:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- cfg['sandbox-create-link-display'] 链接预加载页面,使用 cfg['template-sandbox-preload']
-- 或 cfg['module-sandbox-preload'],取决于当前命名空间。cfg['mirror-link-display'] 链接
-- 加载 cfg['mirror-edit-summary'] 的默认编辑摘要。
--
-- $2 是指向测试用例页面的链接。如果测试用例页面存在,其格式如下:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'])
--
-- 如果测试用例页面不存在,其格式为:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- 如果测试用例页面不存在,cfg['testcases-create-link-display'] 链接预加载页面,
-- 使用 cfg['template-testcases-preload'] 或 cfg['module-testcases-preload'],取决于当前命名空间。
--]]
cfg['experiment-blurb-template'] = i18n.format('experiment-blurb-template')
cfg['experiment-blurb-module'] = i18n.format('experiment-blurb-module')
----------------------------------------------------------------------------------------------------
-- 沙盒链接配置
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- 通常用于沙盒的模板子页面名称。
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- 模板沙盒页面的预加载文件。
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Lua 模块沙盒页面的预加载文件。
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- "沙盒"链接的显示文本。
cfg['sandbox-link-display'] = i18n.format('sandbox-link-display')
-- cfg['sandbox-edit-link-display']
-- 沙盒"编辑"链接的显示文本。
cfg['sandbox-edit-link-display'] = i18n.format('sandbox-edit-link-display')
-- cfg['sandbox-create-link-display']
-- 沙盒"创建"链接的显示文本。
cfg['sandbox-create-link-display'] = i18n.format('sandbox-create-link-display')
-- cfg['compare-link-display']
-- "比较"链接的显示文本。
cfg['compare-link-display'] = i18n.format('compare-link-display')
-- cfg['mirror-edit-summary']
-- 当用户点击"镜像"链接时使用的默认编辑摘要。$1 是指向模板页面的维基链接。
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- "镜像"链接的显示文本。
cfg['mirror-link-display'] = i18n.format('mirror-link-display')
-- cfg['mirror-link-preload']
-- 当用户点击"镜像"链接时预加载的页面。
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- 测试用例链接配置
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- 通常用于测试用例的模板子页面名称。
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- 模板测试用例页面的预加载文件。
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Lua 模块测试用例页面的预加载文件。
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- "测试用例"链接的显示文本。
cfg['testcases-link-display'] = i18n.format('testcases-link-display')
-- cfg['testcases-edit-link-display']
-- 测试用例"编辑"链接的显示文本。
cfg['testcases-edit-link-display'] = i18n.format('testcases-edit-link-display')
-- cfg['testcases-create-link-display']
-- 测试用例"创建"链接的显示文本。
cfg['testcases-create-link-display'] = i18n.format('testcases-create-link-display')
----------------------------------------------------------------------------------------------------
-- 添加类别说明配置
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- 指导用户向 /doc 子页面添加类别的文本。如果设置了 "content" 或 "docname fed"
-- 参数,则不使用,因为此时不清楚在哪里添加类别。$1 是指向 /doc 子页面的链接,
-- 显示值为 cfg['doc-link-display']。
--]]
cfg['add-categories-blurb'] = i18n.format('add-categories-blurb')
-- cfg['doc-link-display']
-- 链接到 /doc 子页面时显示的文本。
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- 子页面链接配置
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- "此模板的子页面"说明。$1 是指向主模板子页面的链接,显示值为 cfg['subpages-link-display']。
-- 在英文版本中,此说明只是链接后跟一个句点,链接显示提供实际文本。
--]]
cfg['subpages-blurb'] = i18n.format('subpages-blurb')
--[[
-- cfg['subpages-link-display']
-- "此页面的子页面"链接的显示文本。$1 是 cfg['template-pagetype']、
-- cfg['module-pagetype'] 或 cfg['default-pagetype'],取决于当前页面是否在
-- 模板命名空间、模块命名空间或另一个命名空间中。
--]]
cfg['subpages-link-display'] = i18n.format('subpages-link-display')
-- cfg['template-pagetype']
-- 模板页面显示的页面类型。
cfg['template-pagetype'] = i18n.format('template-pagetype')
-- cfg['module-pagetype']
-- Lua 模块页面显示的页面类型。
cfg['module-pagetype'] = i18n.format('module-pagetype')
-- cfg['default-pagetype']
-- 非模板或 Lua 模块的页面显示的页面类型。
cfg['default-pagetype'] = i18n.format('default-pagetype')
----------------------------------------------------------------------------------------------------
-- 文档链接配置
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- 通常用于文档页面的子页面名称。
cfg['doc-subpage'] = 'doc'
-- cfg['file-docpage-preload']
-- 文件命名空间中文档页面的预加载文件。
cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace'
-- cfg['docpage-preload']
-- 所有命名空间中模板文档页面的预加载文件。
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Lua 模块文档页面的预加载文件。
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- 打印版本配置
----------------------------------------------------------------------------------------------------
-- cfg['print-subpage']
-- 用于打印版本的模板子页面名称。
cfg['print-subpage'] = 'Print'
-- cfg['print-link-display']
-- 链接到 /Print 子页面时显示的文本。
cfg['print-link-display'] = '/Print'
-- cfg['print-blurb']
-- 如果存在 /Print 子页面,则显示的文本。$1 是指向子页面的链接,显示值为 cfg['print-link-display']。
cfg['print-blurb'] = i18n.format('print-blurb')
-- cfg['display-print-category']
-- 如果存在 /Print 子页面,则设置为 true 以启用 cfg['print-category'] 的输出。
-- 这应该是一个布尔值(true 或 false)。
cfg['display-print-category'] = true
-- cfg['print-category']
-- 如果 cfg['display-print-category'] 设置为 true 并且存在 /Print 子页面,则输出的类别。
cfg['print-category'] = 'Templates with print versions'
----------------------------------------------------------------------------------------------------
-- HTML 和 CSS 配置
----------------------------------------------------------------------------------------------------
-- cfg['main-div-id']
-- 主 HTML "div" 标签的 "id" 属性。
cfg['main-div-id'] = 'template-documentation'
-- cfg['main-div-classes']
-- 添加到主 HTML "div" 标签的 CSS 类。
cfg['main-div-class'] = 'ts-doc-doc'
cfg['header-div-class'] = 'ts-doc-header'
cfg['heading-div-class'] = 'ts-doc-heading'
cfg['content-div-class'] = 'ts-doc-content'
cfg['footer-div-class'] = 'ts-doc-footer plainlinks'
cfg['sandbox-class'] = 'ts-doc-sandbox'
-- cfg['start-box-linkclasses']
-- 起始框中 [查看][编辑][历史] 或 [创建] 链接使用的 CSS 类。
cfg['start-box-linkclasses'] = 'ts-tlinks-tlinks mw-editsection-like plainlinks'
-- cfg['start-box-link-id']
-- 起始框中链接的 HTML "id" 属性。
cfg['start-box-link-id'] = 'doc_editlinks'
----------------------------------------------------------------------------------------------------
-- 跟踪类别配置
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- 如果模块在 /doc 子页面或 /testcases 子页面上使用,则设置为 true 以启用 cfg['strange-usage-category'] 的输出。
-- 这应该是一个布尔值(true 或 false)。
cfg['display-strange-usage-category'] = false
-- cfg['strange-usage-category']
-- 如果 cfg['display-strange-usage-category'] 设置为 true 并且模块在 /doc 子页面或 /testcases 子页面上使用,
-- 则输出的类别。
cfg['strange-usage-category'] = 'Pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- 配置结束
--
-- 请勿编辑此行以下的内容。
----------------------------------------------------------------------------------------------------
--]]
return cfg