「モジュール:Location map」の版間の差分

モジュール:Location map/sandbox 2016-07-24T15:59:36‎ UTC (←継承元: en:Module:Location map 2016年7月4日 (月) 16:32(UTC)より) の版より。 WP:AN/PE (差分) に基づく。
template>Rxy
(「モジュール:Location map」を保護しました: 影響が特に大きいテンプレート: 現時点で 22654 ページからの読み込み ([編集=管理者のみに許可] (無期限) [移動=管理者のみに許可] (無...)
template>Rxy
(モジュール:Location map/sandbox 2016-07-24T15:59:36‎ UTC (←継承元: en:Module:Location map 2016年7月4日 (月) 16:32(UTC)より) の版より。 WP:AN/PE (差分) に基づく。)
12行目: 12行目:
function p.getMapParams(map, frame)
function p.getMapParams(map, frame)
if not map then
if not map then
error('The name of the location map definition to use must be specified', 2)
error('Location mapの名前は必ず指定しなければなりません。', 2)
end
end
local moduletitle = mw.title.new('Module:Location map/data/' .. map)
local moduletitle = mw.title.new('Module:Location map/data/' .. map)
if not moduletitle then
if not moduletitle then
error('"' .. map .. '" is not a valid name for a location map definition', 2)
error(string.format('%qはLocation mapの名前として無効です。', map), 2)
elseif moduletitle.exists then
elseif moduletitle.exists then
local mapData = mw.loadData('Module:Location map/data/' .. map)
local mapData = mw.loadData('Module:Location map/data/' .. map)
33行目: 33行目:
local cache = {}
local cache = {}
if type(frame) ~= 'table' or type(frame.expandTemplate) ~= 'function' then
if type(frame) ~= 'table' or type(frame.expandTemplate) ~= 'function' then
error('A frame must be provided when using a legacy location map')
error('古いLocation mapを使うときにフレームが存在しなければなりません。')
end
end
return function(name, params)
return function(name, params)
48行目: 48行目:
end
end
else
else
error('Unable to find the specified location map definition. Neither "Module:Location map/data/' .. map .. '" nor "Template:Location map ' .. map .. '" exists', 2)
error('Location mapのモジュール「"Module:Location map/data/' .. map .. '"」もしくはテンプレート「"Template:Location map ' .. map .. '"」が作成されていません。', 2)
end
end
end
end
76行目: 76行目:
if decimal then
if decimal then
if degrees then
if degrees then
error('Decimal and DMS degrees cannot both be provided for ' .. direction, 2)
error(direction .. 'において10進数形式と度分秒は両方指定できません。', 2)
elseif minutes then
elseif minutes then
error('Minutes can only be provided with DMS degrees for ' .. direction, 2)
error(direction .. 'において分は度分秒方式でのみ指定してください。', 2)
elseif seconds then
elseif seconds then
error('Seconds can only be provided with DMS degrees for ' .. direction, 2)
error(direction .. 'において秒は度分秒方式でのみ指定してください。', 2)
elseif hemisphere then
elseif hemisphere then
error('A hemisphere can only be provided with DMS degrees for ' .. direction, 2)
error(direction .. 'において半球は度分秒方式でのみ指定してください。', 2)
end
end
local retval = tonumber(decimal)
local retval = tonumber(decimal)
88行目: 88行目:
return retval
return retval
end
end
error('The value "' .. decimal .. '" provided for ' .. direction .. ' is not valid', 2)
error(direction .. 'の値"' .. decimal .. '"は無効です。', 2)
elseif seconds and not minutes then
elseif seconds and not minutes then
error('Seconds were provided for ' .. direction .. ' without minutes also being provided', 2)
error(direction .. 'の秒を指定する時は分も指定してください。', 2)
elseif not degrees then
elseif not degrees then
if minutes then
if minutes then
error('Minutes were provided for ' .. direction .. ' without degrees also being provided', 2)
error(direction .. 'の分を指定する時は度も指定してください。', 2)
elseif hemisphere then
elseif hemisphere then
error('A hemisphere was provided for ' .. direction .. ' without degrees also being provided', 2)
error(direction .. 'の半球を指定する時は度も指定してください。', 2)
end
end
return nil
return nil
101行目: 101行目:
decimal = tonumber(degrees)
decimal = tonumber(degrees)
if not decimal then
if not decimal then
error('The degree value "' .. degrees .. '" provided for ' .. direction .. ' is not valid', 2)
error(direction .. 'の度の値"' .. degrees .. '"は無効です。', 2)
elseif minutes and not tonumber(minutes) then
elseif minutes and not tonumber(minutes) then
error('The minute value "' .. minutes .. '" provided for ' .. direction .. ' is not valid', 2)
error(direction .. 'の分の値"' .. minutes .. '"は無効です。', 2)
elseif seconds and not tonumber(seconds) then
elseif seconds and not tonumber(seconds) then
error('The second value "' .. seconds .. '" provided for ' .. direction .. ' is not valid', 2)
error(direction .. 'の秒の値"' .. seconds .. '"は無効です。', 2)
end
end
decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600
decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600
111行目: 111行目:
local multiplier = hemisphereMultipliers[direction][hemisphere]
local multiplier = hemisphereMultipliers[direction][hemisphere]
if not multiplier then
if not multiplier then
error('The hemisphere "' .. hemisphere .. '" provided for ' .. direction .. ' is not valid', 2)
error(direction .. 'の半球である"' .. hemisphere .. '"は無効です。', 2)
end
end
decimal = decimal * multiplier
decimal = decimal * multiplier
234行目: 234行目:
retval = retval .. '</div></div>'
retval = retval .. '</div></div>'
if args.caption_undefined then
if args.caption_undefined then
mw.log('Removed parameter caption_undefined used.')
mw.log('caption_undefinedは廃止されたパラメータです。')
local parent = frame:getParent()
local parent = frame:getParent()
if parent then
if parent then
243行目: 243行目:
end
end
if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then
if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then
mw.log('Removed parameter used in map definition ' .. map())
mw.log(map() .. 'において廃止されたパラメータです。')
retval = retval .. ''
retval = retval .. ''
end
end
if string.find(map('name'), '|', 1, true) then
if string.find(map('name'), '|', 1, true) then
mw.log('Pipe used in name of map definition ' .. map())
mw.log(map() .. 'のLocation map名でパイプを使用しています。')
retval = retval .. ''
retval = retval .. ''
end
end
346行目: 346行目:
end
end
if not longitude then
if not longitude then
error('No value was provided for longitude')
error('緯度の値が指定されていません。')
end
end
if not latitude then
if not latitude then
error('No value was provided for latitude')
error('経度の値が指定されていません。')
end
end
local builder = mw.html.create()
local builder = mw.html.create()
364行目: 364行目:
end
end
if args.skew or args.lon_shift or args.markhigh then
if args.skew or args.lon_shift or args.markhigh then
mw.log('Removed parameter used in invocation.')
mw.log('呼び出しにおいて廃止されたパラメータです。')
local parent = frame:getParent()
local parent = frame:getParent()
if parent then
if parent then
mw.log('Parent is ' .. parent:getTitle())
mw.log(parent:getTitle() .. 'の親です。')
end
end
mw.logObject(args, 'args')
mw.logObject(args, 'args')
383行目: 383行目:
end
end
if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then
if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then
mw.log('Mark placed outside map boundaries without outside flag set. x = ' .. x .. ', y = ' .. y)
mw.log('外部フラグ設定無しに地図外にマークが置かれました。 x = ' .. x .. ', y = ' .. y)
local parent = frame:getParent()
local parent = frame:getParent()
if parent then
if parent then
mw.log('Parent is ' .. parent:getTitle())
mw.log(parent:getTitle() .. 'の親です。')
end
end
mw.logObject(args, 'args')
mw.logObject(args, 'args')
402行目: 402行目:
end
end
return builder:node(markOuterDiv(x, y, imageDiv, labelDiv))
return builder:node(markOuterDiv(x, y, imageDiv, labelDiv))
end
local function switcherSeparate(s)
if s == nil then return {} end
local retval = {}
for i in string.gmatch(s .. '#', '([^#]*)#') do
i = mw.text.trim(i)
retval[#retval + 1] = (i ~= '' and i)
end
return retval
end
end


423行目: 433行目:
end
end
if type(map) == 'table' then
if type(map) == 'table' then
local altmaps = switcherSeparate(args.AlternativeMap)
if #altmaps > #map then
error(string.format('%dのAlternativeMapsが提供されていますが、%dの地図のみの提供になります。', #altmaps, #map))
end
local overlays = switcherSeparate(args.overlay_image)
if #overlays > #map then
error(string.format('%dのoverlay_imagesが提供されていますが、%dの地図のみの提供になります。', #overlays, #map))
end
local outputs = {}
local outputs = {}
args.autoSwitcherLabel = true
args.autoSwitcherLabel = true
for k,v in ipairs(map) do
for k,v in ipairs(map) do
args.AlternativeMap = altmaps[k]
args.overlay_image = overlays[k]
outputs[k] = p.main(frame, args, v)
outputs[k] = p.main(frame, args, v)
end
end
匿名利用者