「モジュール:Coordinates」の版間の差分
ナビゲーションに移動
検索に移動
翻訳開始
template>Fryed-peach (en:Module:Coordinates 2013年3月13日 (水) 21:36 (UTC) より移入) |
template>Fryed-peach (翻訳開始) |
||
21行目: | 21行目: | ||
--[[ Helper function, replacement for {{coord/display/title}} ]] | --[[ Helper function, replacement for {{coord/display/title}} ]] | ||
function displaytitle (s, notes) | function displaytitle (s, notes) | ||
local l = "[[ | local l = "[[地理座標系|座標]]: " .. s | ||
local co = '<span id="coordinates">' .. l .. notes .. '</span>'; | local co = '<span id="coordinates">' .. l .. notes .. '</span>'; | ||
return '<span style="font-size: small;">' .. co .. '</span>'; | return '<span style="font-size: small;">' .. co .. '</span>'; | ||
113行目: | 113行目: | ||
errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); | errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); | ||
if long_d == nil or long_d == "" then | if long_d == nil or long_d == "" then | ||
table.insert(errors, {"parseDMS", " | table.insert(errors, {"parseDMS", "経度が指定されていません" }) | ||
end | end | ||
153行目: | 153行目: | ||
if uriComponents == "" then | if uriComponents == "" then | ||
-- RETURN error, should never be empty or nil | -- RETURN error, should never be empty or nil | ||
return " | return "エラー: param が空です" | ||
end | end | ||
if args["name"] ~= "" and args["name"] ~= nil then | if args["name"] ~= "" and args["name"] ~= nil then | ||
159行目: | 159行目: | ||
end | end | ||
local geodmshtml = '<span class="geo-dms" title=" | local geodmshtml = '<span class="geo-dms" title="この位置の地図や航空写真などにリンクするページを表示します">' | ||
.. '<span class="latitude">' .. coordinateSpec["dms-lat"] .. '</span> ' | .. '<span class="latitude">' .. coordinateSpec["dms-lat"] .. '</span> ' | ||
.. '<span class="longitude">' ..coordinateSpec["dms-long"] .. '</span>' | .. '<span class="longitude">' ..coordinateSpec["dms-long"] .. '</span>' | ||
167行目: | 167行目: | ||
if lat < 0 then | if lat < 0 then | ||
-- FIXME this breaks the pre-existing precision | -- FIXME this breaks the pre-existing precision | ||
geodeclat = coordinateSpec["dec-lat"]:sub(2) .. " | geodeclat = "南緯" .. coordinateSpec["dec-lat"]:sub(2) .. "度" | ||
else | else | ||
geodeclat = (coordinateSpec["dec-lat"] or 0) .. " | geodeclat = "北緯" .. (coordinateSpec["dec-lat"] or 0) .. "度" | ||
end | end | ||
175行目: | 175行目: | ||
if long < 0 then | if long < 0 then | ||
-- FIXME does not handle unicode minus | -- FIXME does not handle unicode minus | ||
geodeclong = coordinateSpec["dec-long"]:sub(2) .. " | geodeclong = "西経" .. coordinateSpec["dec-long"]:sub(2) .. "度" | ||
else | else | ||
geodeclong = (coordinateSpec["dec-long"] or 0) .. " | geodeclong = "東経" .. (coordinateSpec["dec-long"] or 0) .. "度" | ||
end | end | ||
local geodechtml = '<span class="geo-dec" title=" | local geodechtml = '<span class="geo-dec" title="この位置の地図や航空写真などにリンクするページを表示します">' | ||
.. geodeclat .. ' ' | .. geodeclat .. ' ' | ||
.. geodeclong | .. geodeclong | ||
206行目: | 206行目: | ||
return '<span class="plainlinks nourlexpansion">' .. globalFrame:preprocess( | return '<span class="plainlinks nourlexpansion">' .. globalFrame:preprocess( | ||
'[http://toolserver.org/~geohack/geohack.php?pagename={{FULLPAGENAMEE}}¶ms=' .. | '[http://toolserver.org/~geohack/geohack.php?language=ja&pagename={{FULLPAGENAMEE}}¶ms=' .. | ||
uriComponents .. ' ' .. inner .. ']') .. '</span>' | uriComponents .. ' ' .. inner .. ']') .. '</span>' | ||
end | end | ||
216行目: | 216行目: | ||
local result = "" | local result = "" | ||
for i,v in ipairs(errors) do | for i,v in ipairs(errors) do | ||
local errorHTML = '<strong class="error"> | local errorHTML = '<strong class="error">座標: ' .. v[2] .. '</strong>' | ||
result = result .. errorHTML .. "<br />" | result = result .. errorHTML .. "<br />" | ||
end | end | ||
251行目: | 251行目: | ||
if args[1] == "" then | if args[1] == "" then | ||
-- no lat logic | -- no lat logic | ||
return errorPrinter( {{"formatTest", " | return errorPrinter( {{"formatTest", "緯度が指定されていません"}} ) | ||
elseif args[4] == "" and args[5] == "" and args[6] == "" then | elseif args[4] == "" and args[5] == "" and args[6] == "" then | ||
-- dec logic | -- dec logic | ||
266行目: | 266行目: | ||
args[6], args[7], args[8], args[9] } , '_' ); | args[6], args[7], args[8], args[9] } , '_' ); | ||
if args[10] ~= '' then | if args[10] ~= '' then | ||
table.insert( errors, { 'formatTest', ' | table.insert( errors, { 'formatTest', '座標オプションが認識できません' } ); | ||
end | end | ||
elseif dmsTest(args[3], args[6]) then | elseif dmsTest(args[3], args[6]) then | ||
275行目: | 275行目: | ||
args[6], args[7] } , '_' ); | args[6], args[7] } , '_' ); | ||
if args[8] ~= '' then | if args[8] ~= '' then | ||
table.insert( errors, { 'formatTest', ' | table.insert( errors, { 'formatTest', '座標オプションが認識できません' } ); | ||
end | end | ||
elseif dmsTest(args[2], args[4]) then | elseif dmsTest(args[2], args[4]) then | ||
283行目: | 283行目: | ||
result.param = table.concat( { args[1], args[2], args[3], args[4], args[5] } , '_' ); | result.param = table.concat( { args[1], args[2], args[3], args[4], args[5] } , '_' ); | ||
if args[6] ~= '' then | if args[6] ~= '' then | ||
table.insert( errors, { 'formatTest', ' | table.insert( errors, { 'formatTest', '座標オプションが認識できません' } ); | ||
end | end | ||
else | else | ||
-- Error | -- Error | ||
return errorPrinter( {{"formatTest", " | return errorPrinter( {{"formatTest", "引数の形式が認識できません"}} ) | ||
end | end | ||
result.name = args["name"] | result.name = args["name"] | ||
294行目: | 294行目: | ||
for _, v in ipairs( extra_param ) do | for _, v in ipairs( extra_param ) do | ||
if (args[v] or '') ~= '' then | if (args[v] or '') ~= '' then | ||
table.insert( errors, {'formatTest', ' | table.insert( errors, {'formatTest', '引数: "' .. v .. '=" は "' .. v .. ':" という形式でなければいけません' } ); | ||
end | end | ||
end | end | ||
301行目: | 301行目: | ||
return specPrinter( args, result ) | return specPrinter( args, result ) | ||
else | else | ||
return specPrinter( args, result ) .. " " .. errorPrinter(errors) .. '[[Category: | return specPrinter( args, result ) .. " " .. errorPrinter(errors) .. '[[Category:座標タグに誤りがあるページ]]'; | ||
end | end | ||
end | end | ||
398行目: | 398行目: | ||
if strong then | if strong then | ||
if lat_d < 0 then | if lat_d < 0 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "緯度が0度を下回っていますが南北が指定されています"}) | ||
end | end | ||
if long_d < 0 then | if long_d < 0 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "経度が0度を下回っていますが南北が指定されています"}) | ||
end | end | ||
--[[ | --[[ | ||
410行目: | 410行目: | ||
if long_d > 180 then | if long_d > 180 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "経度が180度を上回っていますが南北が指定されています"}) | ||
end | end | ||
]] | ]] | ||
416行目: | 416行目: | ||
if lat_d > 90 then | if lat_d > 90 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "緯度の度が90を上回っています"}) | ||
end | end | ||
if lat_d < -90 then | if lat_d < -90 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "緯度の度が-90を下回っています"}) | ||
end | end | ||
if lat_m >= 60 then | if lat_m >= 60 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "緯度の分が60以上です"}) | ||
end | end | ||
if lat_m < 0 then | if lat_m < 0 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "緯度の分が0を下回っています"}) | ||
end | end | ||
if lat_s >= 60 then | if lat_s >= 60 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "緯度の秒が60以上です"}) | ||
end | end | ||
if lat_s < 0 then | if lat_s < 0 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "緯度の秒が0を下回っています"}) | ||
end | end | ||
if long_d >= 360 then | if long_d >= 360 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "経度の度が360以上です"}) | ||
end | end | ||
if long_d <= -360 then | if long_d <= -360 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "経度の度が-360以下です"}) | ||
end | end | ||
if long_m >= 60 then | if long_m >= 60 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "経度の分が60以上です"}) | ||
end | end | ||
if long_m < 0 then | if long_m < 0 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "経度の分が0を下回っています"}) | ||
end | end | ||
if long_s >= 60 then | if long_s >= 60 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "経度の秒が60以上です"}) | ||
end | end | ||
if long_s < 0 then | if long_s < 0 then | ||
table.insert(errors, {source, " | table.insert(errors, {source, "経度の秒が0を下回っています"}) | ||
end | end | ||