跳转到内容

Module:Documentation/config:修订间差异

勤求古训,博采众方
无编辑摘要
无编辑摘要
第72行: 第72行:


-- 错误消息
-- 错误消息
cfg['cfg-error-msg-type'] = i18n.format('cfg-error-msg-type')
-- 直接设置错误消息,确保它们始终有值
cfg['cfg-error-msg-empty'] = i18n.format('cfg-error-msg-empty')
cfg['cfg-error-msg-type'] = i18n.get('cfg-error-msg-type') or '配置错误: 消息类型必须是字符串。'
cfg['cfg-error-msg-empty'] = i18n.get('cfg-error-msg-empty') or '配置错误: 消息不能为空。'


cfg['templatestyles-scr'] = 'Module:Documentation/styles.css'
cfg['templatestyles-scr'] = 'Module:Documentation/styles.css'

2025年11月21日 (五) 16:22的版本

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['cfg-error-msg-type'] = i18n.get('cfg-error-msg-type') or '配置错误: 消息类型必须是字符串。'
cfg['cfg-error-msg-empty'] = i18n.get('cfg-error-msg-empty') or '配置错误: 消息不能为空。'

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