🌟 | 現在、 鉄壁ヘッドショットには対応済みです。 鉄壁HSは通常HSと同じダメージになります。LMG及びDMR、チャージライフル、ハンマーポイント弾を除き、すべてのダメージ値が一致していることを確認しています。 |
「モジュール:LanguageTable」の版間の差分
ナビゲーションに移動
検索に移動
(フルネーム仕様の関数呼び出しに差し替え) |
(武器以外の表示に対応) |
||
(同じ利用者による、間の3版が非表示) | |||
2行目: | 2行目: | ||
local cfg = mw.loadData('Module:LanguageTable/configuration') | local cfg = mw.loadData('Module:LanguageTable/configuration') | ||
local aw = require('Module:Utility/Library') | |||
local nu = require('Module:Utility/Name') | local nu = require('Module:Utility/Name') | ||
local getArgs -- lazily initialized | local getArgs -- lazily initialized | ||
local function | local function renderLanguageTable(args) | ||
local cfglang = cfg[args.lang] | local cfglang = cfg[args.lang] | ||
local mode = args.mode or 'weapon' | |||
local tbl = mw.html.create('table') | local tbl = mw.html.create('table') | ||
:addClass('wikitable') | :addClass('wikitable') | ||
:addClass('langtable') | |||
:tag('tr') | :tag('tr') | ||
:tag('th'):wikitext(cfglang.language):done() | :tag('th'):wikitext(cfglang.language):done() | ||
:tag('th'):wikitext(cfglang.name):done() | :tag('th'):wikitext(cfglang.name):done() | ||
:done() | :done() | ||
for lang, langname in pairs(cfglang.items) do | if mode == 'weapon' then | ||
local getEmphasizableText = aw.getEmphasizableTextFunc('\'\'\'%s\'\'\'') | |||
for lang, langname in pairs(cfglang.items) do | |||
local shortname = nu.weaponname(args.key, lang) | |||
local longname = nu.weaponfullname(args.key, lang) | |||
local suitablename = getEmphasizableText(longname, shortname) | |||
tbl:tag('tr') | |||
:tag('td') | |||
:wikitext(langname) | |||
:done() | |||
:tag('td') | |||
:attr('lang', lang) | |||
:wikitext(suitablename) | |||
end | |||
else | |||
for lang, langname in pairs(cfglang.items) do | |||
local name = nu[mode](args.key, lang) | |||
tbl:tag('tr') | |||
:tag('td') | |||
:wikitext(langname) | |||
:done() | |||
:tag('td') | |||
:attr('lang', lang) | |||
:wikitext(name) | |||
end | |||
end | end | ||
return string.format('== %s ==\n', cfglang.title) .. tostring(tbl) | return string.format('== %s ==\n', cfglang.title) .. tostring(tbl) | ||
35行目: | 55行目: | ||
end | end | ||
function p. | function p._main(args) | ||
return | return renderLanguageTable(args) | ||
end | end | ||
function p. | function p.main(frame) | ||
local args = preload(frame) | local args = preload(frame) | ||
return p. | return p._main(args) | ||
end | end | ||
return p | return p |
2021年5月17日 (月) 16:46時点における最新版
このモジュールについての説明文ページを モジュール:LanguageTable/doc に作成できます
local p = {} local cfg = mw.loadData('Module:LanguageTable/configuration') local aw = require('Module:Utility/Library') local nu = require('Module:Utility/Name') local getArgs -- lazily initialized local function renderLanguageTable(args) local cfglang = cfg[args.lang] local mode = args.mode or 'weapon' local tbl = mw.html.create('table') :addClass('wikitable') :addClass('langtable') :tag('tr') :tag('th'):wikitext(cfglang.language):done() :tag('th'):wikitext(cfglang.name):done() :done() if mode == 'weapon' then local getEmphasizableText = aw.getEmphasizableTextFunc('\'\'\'%s\'\'\'') for lang, langname in pairs(cfglang.items) do local shortname = nu.weaponname(args.key, lang) local longname = nu.weaponfullname(args.key, lang) local suitablename = getEmphasizableText(longname, shortname) tbl:tag('tr') :tag('td') :wikitext(langname) :done() :tag('td') :attr('lang', lang) :wikitext(suitablename) end else for lang, langname in pairs(cfglang.items) do local name = nu[mode](args.key, lang) tbl:tag('tr') :tag('td') :wikitext(langname) :done() :tag('td') :attr('lang', lang) :wikitext(name) end end return string.format('== %s ==\n', cfglang.title) .. tostring(tbl) end local function preload(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end local args = getArgs(frame) args.lang = args.lang or 'ja' return args end function p._main(args) return renderLanguageTable(args) end function p.main(frame) local args = preload(frame) return p._main(args) end return p