মডিউল:স্থানাঙ্ক/খেলাঘর: সংশোধিত সংস্করণের মধ্যে পার্থক্য

বিষয়বস্তু বিয়োগ হয়েছে বিষয়বস্তু যোগ হয়েছে
Johnuniq (আলোচনা | অবদান)
clean whitespace to reduce size of next diff
Johnuniq (আলোচনা | অবদান)
use direction2bn for consistent naming
(২ জন ব্যবহারকারী দ্বারা সম্পাদিত ৫টি মধ্যবর্তী সংশোধন দেখানো হচ্ছে না)
১৯ নং লাইন:
 
require('Module:No globals')
local convert = require( "মডিউল:Numeral converter/খেলাঘর" ).convert;
local math_mod = require("Module:Math")
local coordinates = {};
২৬ ⟶ ২৫ নং লাইন:
local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' );
local coord_link = '//tools.wmflabs.org/geohack/geohack.php?language=bn&pagename=' .. page_name .. '&params='
 
local function banglaCharsdirection2bn(enChartext)
text = text:gsub('[NSEW]', {
returnN "= ' উত্তর"',
returnS "= ' দক্ষিণ"',
returnE "= ' পূর্ব"',
returnW "= ' পশ্চিম"',
})
return text
end
 
local function translate2bn(text)
text = text:gsub('%d', {
['0'] = '০',
['1'] = '১',
['2'] = '২',
['3'] = '৩',
['4'] = '৪',
['5'] = '৫',
['6'] = '৬',
['7'] = '৭',
['8'] = '৮',
['9'] = '৯',
})
return text
end
 
local function translate2en(text)
text = mw.ustring.gsub(text, '%d', {
['০'] = '0',
['১'] = '1',
['২'] = '2',
['৩'] = '3',
['৪'] = '4',
['৫'] = '5',
['৬'] = '6',
['৭'] = '7',
['৮'] = '8',
['৯'] = '9',
})
text = text
:gsub(' *উত্তর', 'N')
:gsub(' *দক্ষিণ', 'S')
:gsub(' *পূর্ব', 'E')
:gsub(' *পশ্চিম', 'W')
return text
end
 
--[[ Helper function, replacement for {{coord/display/title}} ]]
৫৩ ⟶ ৯৯ নং লাইন:
return function (frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Coord' -- TODO should this use the bn name? check Module:Arguments
})
for k, v in pairs(args) do
args[k] = translate2en(v)
end
return coordinates[funcName](args, frame)
end
১১২ ⟶ ১৬১ নং লাইন:
 
local geodmshtml = '<span class="geo-dms" title="এই অবস্থানের জন্য মানচিত্র, আকাশ থেকে তোলা চিত্র, এবং অন্যান্য তথ্য">'
.. '<span class="latitude">' .. converttranslate2bn("bn", coordinateSpec["dms-lat"]) .. '</span> '
.. '<span class="longitude">' .. converttranslate2bn("bn",coordinateSpec["dms-long"]) .. '</span>'
.. '</span>'
 
১৩৫ ⟶ ১৮৪ নং লাইন:
 
local geodechtml = '<span class="geo-dec" title="এই অবস্থানের জন্য মানচিত্র, আকাশ থেকে তোলা চিত্র, এবং অন্যান্য তথ্য">'
.. converttranslate2bn("bn", geodeclat) .. ' '
.. converttranslate2bn("bn", geodeclong)
.. '</span>'
 
৩৩১ ⟶ ৩৮০ নং লাইন:
 
local mode = coordinates.determineMode( lat, long );
coordinateSpec["dms-lat"] = convert_dec2dms( lat, " উত্তর", " দক্ষিণ", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}}
coordinateSpec["dms-long"] = convert_dec2dms( long, " পূর্ব", " পশ্চিম", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}}
 
if format then
৩৮০ ⟶ ৪২৯ নং লাইন:
end
 
coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. banglaCharsdirection2bn(lat_f)
local function banglaChars(enChar)
coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. banglaCharsdirection2bn(long_f)
if enChar == "W" then
return " পশ্চিম"
elseif enChar == "N" then
return " উত্তর"
elseif enChar == "S" then
return " দক্ষিণ"
elseif enChar == "E" then
return " পূর্ব"
end
end
 
coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. banglaChars(lat_f)
coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. banglaChars(long_f)
coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}}
coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}}
৬৮৭ ⟶ ৭২৪ নং লাইন:
{{#invoke:Coordinates | coord2text | {{Coord}} | parameter }}
 
Valid values for the second parameter are strings: lat (signed integer), long (signed integer), type, scale, dim, region, globe, source
 
]]
function coordinates.coord2text(frame)
iflocal frame.args[1]coord == '' or mw.text.trim(frame.args[21] ==or '' or not frame.args[2] then return nil end)
frame.args[2]local param = mw.text.trim(frame.args[2] or '')
if frame.args[2]coord == 'lat' or frame.args[2]param == 'long' then return nil end
coord = translate2en(coord)
local result, negative = mw.text.split((mw.ustring.match(frame.args[1],'[%.%d]+°[NS] [%.%d]+°[EW]') or ''), ' ')
if frame.args[2]param == 'lat' or param == 'long' then
local value, direction, long, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])')
result, negative = result[1], 'S'
if param == 'long' then value, direction = long, ew end
else
value = tonumber(value)
result, negative = result[2], 'W'
if enChar == "W"value then
if direction == 'S' or direction == 'W' then value = -value end
return tostring(value)
end
return result[1]nil
result = mw.text.split(result, '°')
if result[2] == negative then result[1] = '-'..result[1] end
return result[1]
else
return mw.ustring.coord:match(frame.args[1], 'params=.-_'..frame.args[2]param..':(.-)[ _]')
end
end