در حال ویرایش پودمان:Location map

هشدار: شما وارد نشده‌اید. نشانی آی‌پی شما برای عموم قابل مشاهده خواهد بود اگر هر تغییری ایجاد کنید. اگر وارد شوید یا یک حساب کاربری بسازید، ویرایش‌هایتان به نام کاربری‌تان نسبت داده خواهد شد، همراه با مزایای دیگر.

این ویرایش را می‌توان خنثی کرد. لطفاً تفاوت زیر را بررسی کنید تا تأیید کنید که این چیزی است که می‌خواهید انجام دهید، سپس تغییرات زیر را ذخیره کنید تا خنثی‌سازی ویرایش را به پایان ببرید.

نسخهٔ فعلی متن شما
خط ۴: خط ۴:


local getArgs = require('Module:Arguments').getArgs
local getArgs = require('Module:Arguments').getArgs
 
local converter = require("Module:Numeral converter")
local function round(n, decimals)
local function round(n, decimals)
local pow = 10^(decimals or 0)
local pow = 10^(decimals or 0)
خط ۲۸: خط ۲۸:
else
else
return mapData[name]
return mapData[name]
end
end
elseif mw.title.new('Template:Location map ' .. map).exists then
local cache = {}
if type(frame) ~= 'table' or type(frame.expandTemplate) ~= 'function' then
error('A frame must be provided when using a legacy location map')
end
return function(name, params)
if params then
return frame:expandTemplate{title = 'Location map ' .. map, args = { name, unpack(params) }}
else
if name == nil then
return 'Template:Location map ' .. map
elseif cache[name] == nil then
cache[name] = frame:expandTemplate{title = 'Location map ' .. map, args = { name }}
end
return cache[name]
end
end
end
end
else
else
error('Unable to find the specified location map definition: "Module:Location map/data/' .. map .. '" does not exist', 2)
error('Unable to find the specified location map definition. Neither "Module:Location map/data/' .. map .. '" nor "Template:Location map ' .. map .. '" exists', 2)
end
end
end
end
خط ۱۰۳: خط ۱۲۰:
-- Finds a parameter in a transclusion of {{Coord}}.
-- Finds a parameter in a transclusion of {{Coord}}.
local function coord2text(para,coord) -- this should be changed for languages which do not use Arabic numerals or the degree sign
local function coord2text(para,coord) -- this should be changed for languages which do not use Arabic numerals or the degree sign
-- خطوط زیر برای پشتیبانی از ارقام فارسی اضافه شده‌است.
coord = coord:gsub('%<span dir%="ltr"%>', "")
coord = coord:gsub('%<%/span%>', "")
coord = converter.convert("en", coord)
--- پایان بومی‌سازی
local result = mw.text.split(mw.ustring.match(coord,'%-?[%.%d]+°[NS] %-?[%.%d]+°[EW]') or '', '[ °]')
local result = mw.text.split(mw.ustring.match(coord,'%-?[%.%d]+°[NS] %-?[%.%d]+°[EW]') or '', '[ °]')
if para == 'longitude' then result = {result[3], result[4]} end
if para == 'longitude' then result = {result[3], result[4]} end
خط ۱۹۳: خط ۲۱۵:
end
end
local image = getContainerImage(args, map)
local image = getContainerImage(args, map)
local currentTitle = mw.title.getCurrentTitle()
retval = string.format(
retval = string.format(
'%s[[File:%s|%spx|%s%s]]',
'%s[[File:%s|%spx|%s%s]]',
خط ۱۹۹: خط ۲۲۰:
image,
image,
width,
width,
args.alt or ((args.label or currentTitle.text) .. ' is located in ' .. map('name')),
args.alt or ((args.label or mw.title.getCurrentTitle().text) .. ' در ' .. map('name') .. ' قرار گرفته‌است'),
args.maplink and ('|link=' .. args.maplink) or ''
args.maplink and ('|link=' .. args.maplink) or ''
)
)
if args.caption and args.caption ~= '' then
if args.caption and args.caption ~= '' then
if (currentTitle.namespace == 0) and mw.ustring.find(args.caption, '##') then
if mw.ustring.find(args.caption, '##') then
retval = retval .. '[[Category:Pages using location map with a double number sign in the caption]]'
retval = retval .. '[[Category:Pages using location map with a double number sign in the caption]]'
end
end
خط ۲۲۲: خط ۲۴۳:
end
end
local retval = '</div>'
local retval = '</div>'
local currentTitle = mw.title.getCurrentTitle()
if not args.caption or args.border == 'infobox' then
if not args.caption or args.border == 'infobox' then
if args.border then
if args.border then
خط ۲۳۰: خط ۲۵۱:
end
end
retval = retval
retval = retval
.. (args.caption or (args.label or currentTitle.text) .. ' (' .. map('name') .. ')')
.. (args.caption or (args.label or mw.title.getCurrentTitle().text) .. ' (' .. map('name') .. ')')
.. '</div>'
.. '</div>'
elseif args.caption ~= ''  then
elseif args.caption ~= ''  then
خط ۲۵۱: خط ۲۷۲:
end
end
mw.logObject(args, 'args')
mw.logObject(args, 'args')
if currentTitle.namespace == 0 then
retval = retval .. '[[رده:نقشه‌های موقعیت مکانی با خطاهای احتمالی|زیرنویس نامشخص]]'
    retval = retval .. '[[Category:Location maps with removed parameters|caption_undefined]]'
end
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('Removed parameter used in map definition ' .. map())
if currentTitle.namespace == 0 then
local key = (map('skew') ~= '' and 'skew' or '') ..
    local key = (map('skew') ~= '' and 'skew' or '') ..
(map('lat_skew') ~= '' and 'lat_skew' or '') ..
(map('lat_skew') ~= '' and 'lat_skew' or '') ..
(map('crosses180') ~= '' and 'crosses180' or '') ..
(map('crosses180') ~= '' and 'crosses180' or '') ..
(map('type') ~= '' and 'type' or '')
(map('type') ~= '' and 'type' or '')
    retval = retval .. '[[Category:Location maps with removed parameters|' .. key .. ' ]]'
retval = retval .. '[[رده:نقشه‌های موقعیت مکانی با خطاهای احتمالی|' .. key .. ' ]]'
end
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('Pipe used in name of map definition ' .. map())
if currentTitle.namespace == 0 then
retval = retval .. '[[رده:نقشه‌های موقعیت مکانی با خطاهای احتمالی]]'
  retval = retval .. '[[Category:Location maps with a name containing a pipe]]'
end
end
end
if args.float == 'center' then
if args.float == 'center' then
خط ۲۹۰: خط ۳۰۵:
if marksize ~= 0 then
if marksize ~= 0 then
builder:wikitext(string.format(
builder:wikitext(string.format(
'[[File:%s|%dx%dpx|%s|link=%s%s]]',
'[[پرونده:%s|%dx%dpx|%s|link=%s%s]]',
mark,
mark,
marksize,
marksize,
خط ۳۷۷: خط ۳۹۲:
return table.concat(outputs, '#PlaceList#') .. '#PlaceList#'
return table.concat(outputs, '#PlaceList#') .. '#PlaceList#'
end
end
-- خطوط زیر برای پشتیبانی از ارقام فارسی اضافه شده‌است.
for k,v in pairs(args) do
if k ~= "label" and k ~= "mark" and k ~= "link" then
args[k] = converter.convert("en", v)
args[k] = converter.convert_cordination(args[k])
end
end
-- پایان بومی‌سازی
local x, y, longitude, latitude
local x, y, longitude, latitude
longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude')
longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude')
خط ۳۹۰: خط ۴۱۳:
end
end
local builder = mw.html.create()
local currentTitle = mw.title.getCurrentTitle()
if args.coordinates then
if args.coordinates then
-- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]]
-- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]]
خط ۴۰۶: خط ۴۲۷:
local value = entity.claims.P625[1].mainsnak.datavalue.value
local value = entity.claims.P625[1].mainsnak.datavalue.value
longitude, latitude = value.longitude, value.latitude
longitude, latitude = value.longitude, value.latitude
end
if args.link and (currentTitle.namespace == 0) then
builder:wikitext('[[Category:Location maps with linked markers with coordinates from Wikidata]]')
end
end
end
end
خط ۴۱۶: خط ۴۳۴:
error('No value was provided for latitude')
error('No value was provided for latitude')
end
end
if currentTitle.namespace > 0 then
local builder = mw.html.create()
if (not args.lon_deg) ~= (not args.lat_deg) then
if (not args.lon_deg) ~= (not args.lat_deg) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Degrees]]')
builder:wikitext('[[رده:نقشه‌های موقعیت مکانی با دقت طول و عرض جغرافیایی متفاوت|درجه]]')
elseif (not args.lon_min) ~= (not args.lat_min) then
elseif (not args.lon_min) ~= (not args.lat_min) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Minutes]]')
builder:wikitext('[[رده:نقشه‌های موقعیت مکانی با دقت طول و عرض جغرافیایی متفاوت|دقیقه]]')
elseif (not args.lon_sec) ~= (not args.lat_sec) then
elseif (not args.lon_sec) ~= (not args.lat_sec) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Seconds]]')
builder:wikitext('[[رده:نقشه‌های موقعیت مکانی با دقت طول و عرض جغرافیایی متفاوت|ثانیه]]')
elseif (not args.lon_dir) ~= (not args.lat_dir) then
elseif (not args.lon_dir) ~= (not args.lat_dir) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Hemisphere]]')
builder:wikitext('[[رده:نقشه‌های موقعیت مکانی با دقت طول و عرض جغرافیایی متفاوت|نیم‌کره]]')
elseif (not args.long) ~= (not args.lat) then
elseif (not args.long) ~= (not args.lat) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Decimal]]')
builder:wikitext('[[رده:نقشه‌های موقعیت مکانی با دقت طول و عرض جغرافیایی متفاوت|اعشاری]]')
end
end
end
if args.skew or args.lon_shift or args.markhigh then
if args.skew or args.lon_shift or args.markhigh then
خط ۴۳۶: خط ۴۵۳:
end
end
mw.logObject(args, 'args')
mw.logObject(args, 'args')
if currentTitle.namespace == 0 then
local key = (args.skew and 'skew' or '') ..
local key = (args.skew and 'skew' or '') ..
(args.lon_shift and 'lon_shift' or '') ..
(args.lon_shift and 'lon_shift' or '') ..
(args.markhigh and 'markhigh' or '')
(args.markhigh and 'markhigh' or '')
builder:wikitext('[[رده:نقشه‌های موقعیت مکانی با خطاهای احتمالی|صفحه‌ای که از پارامتر حذف‌شده استفاده می‌کند]]')
builder:wikitext('[[Category:Location maps with removed parameters|' .. key ..' ]]')
end
end
end
if map('x') ~= '' then
if map('x') ~= '' then
خط ۴۶۰: خط ۴۷۵:
end
end
mw.logObject(args, 'args')
mw.logObject(args, 'args')
if currentTitle.namespace == 0 then
local key = frame:preprocess('{{FULLPAGENAME}}')
local key = frame:preprocess('{{FULLPAGENAME}}')
builder:wikitext('[[رده:نقشه‌های موقعیت مکانی با خطاهای احتمالی|' .. key .. ' ]]')
builder:wikitext('[[Category:Location maps with marks outside map and outside parameter not set|' .. key .. ' ]]')
end
end
end
local mark = args.mark or map('mark')
local mark = args.mark or map('mark')
خط ۴۹۳: خط ۵۰۶:
args = getArgs(frame, {wrappers = 'Template:Location map', valueFunc = p.valueFunc})
args = getArgs(frame, {wrappers = 'Template:Location map', valueFunc = p.valueFunc})
end
end
-- خطوط زیر برای پشتیبانی از ارقام فارسی اضافه شده‌است.
for k,v in pairs(args) do
if k ~= "label" and k ~= "mark" and k ~= "link" then
args[k] = converter.convert("en", v)
args[k] = converter.convert_cordination(args[k])
end
end
-- پایان بومی‌سازی
if args.useWikidata == nil then
if args.useWikidata == nil then
args.useWikidata = true
args.useWikidata = true
لطفاً توجه داشته‌باشید که همهٔ مشارکت‌ها در ویکی حج منتشرشده تحت Creative Commons Attribution-NonCommercial-ShareAlike در نظر گرفته‌می‌شوند (برای جزئیات بیش‌تر ویکی حج:حق تکثیر را ببینید). اگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش و توزیع شوند؛ بنابراین، آنها را اینجا ارائه نکنید.
شما همچنین به ما تعهد می‌کنید که خودتان این را نوشته‌اید یا آن را از یک منبع با مالکیت عمومی یا مشابه آزاد آن برداشته‌اید (برای جزئیات بیش‌تر ویکی حج:حق تکثیر را ببینید). کارهای دارای حق تکثیر را بدون اجازه ارائه نکنید!
لغو راهنمای ویرایش‌کردن (در پنجرهٔ تازه باز می‌شود)

الگوی به‌کاررفته در این صفحه: