「モジュール: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 = "[[Geographic coordinate system|Coordinates]]: " .. s
     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", "Missing longitude" })
         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 "ERROR param was empty"
         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="Maps, aerial photos, and other data for this location">'
     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) .. "°S"
         geodeclat = "南緯" .. coordinateSpec["dec-lat"]:sub(2) .. ""
     else
     else
         geodeclat = (coordinateSpec["dec-lat"] or 0) .. "°N"
         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) .. "°W"
         geodeclong = "西経" .. coordinateSpec["dec-long"]:sub(2) .. ""
     else
     else
         geodeclong = (coordinateSpec["dec-long"] or 0) .. "°E"
         geodeclong = "東経" .. (coordinateSpec["dec-long"] or 0) .. ""
     end
     end
      
      
     local geodechtml = '<span class="geo-dec" title="Maps, aerial photos, and other data for this location">'
     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}}&params=' ..
         '[http://toolserver.org/~geohack/geohack.php?language=ja&pagename={{FULLPAGENAMEE}}&params=' ..
         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">Coordinates: ' .. v[2] .. '</strong>'
         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", "Missing latitude"}} )
         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', 'Extra unexpected parameters' } );
             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', 'Extra unexpected parameters' } );
             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', 'Extra unexpected parameters' } );
             table.insert( errors, { 'formatTest', '座標オプションが認識できません' } );
         end         
         end         
     else
     else
         -- Error
         -- Error
         return errorPrinter( {{"formatTest", "Unknown argument format"}} )
         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', 'Parameter: "' .. v .. '=" should be "' .. v .. ':"' } );
             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:Pages with malformed coordinate tags]]';  
         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, "latitude degrees < 0 with hemisphere flag"})
             table.insert(errors, {source, "緯度が0度を下回っていますが南北が指定されています"})
         end
         end
         if long_d < 0 then
         if long_d < 0 then
             table.insert(errors, {source, "longitude degrees < 0 with hemisphere flag"})
             table.insert(errors, {source, "経度が0度を下回っていますが南北が指定されています"})
         end
         end
         --[[  
         --[[  
410行目: 410行目:
          
          
         if long_d > 180 then
         if long_d > 180 then
             table.insert(errors, {source, "longitude degrees > 180 with hemisphere flag"})
             table.insert(errors, {source, "経度が180度を上回っていますが南北が指定されています"})
         end
         end
         ]]
         ]]
416行目: 416行目:
          
          
     if lat_d > 90 then
     if lat_d > 90 then
         table.insert(errors, {source, "latitude degrees > 90"})
         table.insert(errors, {source, "緯度の度が90を上回っています"})
     end
     end
     if lat_d < -90 then
     if lat_d < -90 then
         table.insert(errors, {source, "latitude degrees < -90"})
         table.insert(errors, {source, "緯度の度が-90を下回っています"})
     end
     end
     if lat_m >= 60 then
     if lat_m >= 60 then
         table.insert(errors, {source, "latitude minutes >= 60"})
         table.insert(errors, {source, "緯度の分が60以上です"})
     end
     end
     if lat_m < 0 then
     if lat_m < 0 then
         table.insert(errors, {source, "latitude minutes < 0"})
         table.insert(errors, {source, "緯度の分が0を下回っています"})
     end
     end
     if lat_s >= 60 then
     if lat_s >= 60 then
         table.insert(errors, {source, "latitude seconds >= 60"})
         table.insert(errors, {source, "緯度の秒が60以上です"})
     end
     end
     if lat_s < 0 then
     if lat_s < 0 then
         table.insert(errors, {source, "latitude seconds < 0"})
         table.insert(errors, {source, "緯度の秒が0を下回っています"})
     end
     end
     if long_d >= 360 then
     if long_d >= 360 then
         table.insert(errors, {source, "longitude degrees >= 360"})
         table.insert(errors, {source, "経度の度が360以上です"})
     end
     end
     if long_d <= -360 then
     if long_d <= -360 then
         table.insert(errors, {source, "longitude degrees <= -360"})
         table.insert(errors, {source, "経度の度が-360以下です"})
     end
     end
     if long_m >= 60 then
     if long_m >= 60 then
         table.insert(errors, {source, "longitude minutes >= 60"})
         table.insert(errors, {source, "経度の分が60以上です"})
     end
     end
     if long_m < 0 then
     if long_m < 0 then
         table.insert(errors, {source, "longitude minutes < 0"})
         table.insert(errors, {source, "経度の分が0を下回っています"})
     end
     end
     if long_s >= 60 then
     if long_s >= 60 then
         table.insert(errors, {source, "longitude seconds >= 60"})
         table.insert(errors, {source, "経度の秒が60以上です"})
     end
     end
     if long_s < 0 then
     if long_s < 0 then
         table.insert(errors, {source, "longitude seconds < 0"})
         table.insert(errors, {source, "経度の秒が0を下回っています"})
     end
     end
      
      
匿名利用者