Vikigezgin trwikivoyage https://tr.wikivoyage.org/wiki/Anasayfa MediaWiki 1.47.0-wmf.9 first-letter Ortam Özel Tartışma Kullanıcı Kullanıcı mesaj Vikigezgin Vikigezgin tartışma Dosya Dosya tartışma MediaWiki MediaWiki tartışma Şablon Şablon tartışma Yardım Yardım tartışma Kategori Kategori tartışma TimedText TimedText talk Modül Modül tartışma Event Event talk Modül:Tanımlanmayan parametre denetimi 828 725 16889 4048 2026-06-30T15:03:45Z Lionel Cristiano 1662 trwiki'den kopyalandı 16889 Scribunto text/plain -- This module may be used to compare the arguments passed to the parent -- with a list of arguments, returning a specified result if an argument is -- not on the list local p = {} local function trim(s) return s:match('^%s*(.-)%s*$') end local function isnotempty(s) return s and s:match('%S') end local function clean(text) -- Return text cleaned for display and truncated if too long. -- Strip markers are replaced with dummy text representing the original wikitext. local pos, truncated local function truncate(text) if truncated then return '' end if mw.ustring.len(text) > 25 then truncated = true text = mw.ustring.sub(text, 1, 25) .. '...' end return mw.text.nowiki(text) end local parts = {} for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do pos = remainder table.insert(parts, truncate(before) .. '&lt;' .. tag .. '&gt;...&lt;/' .. tag .. '&gt;') end table.insert(parts, truncate(text:sub(pos or 1))) return table.concat(parts) end function p._check(args, pargs) if type(args) ~= "table" or type(pargs) ~= "table" then -- TODO: error handling return end -- create the list of known args, regular expressions, and the return string local knownargs = {} local regexps = {} for k, v in pairs(args) do if type(k) == 'number' then v = trim(v) knownargs[v] = 1 elseif k:find('^regexp[1-9][0-9]*$') then table.insert(regexps, '^' .. v .. '$') end end -- loop over the parent args, and make sure they are on the list local ignoreblank = isnotempty(args['ignoreblank']) local showblankpos = isnotempty(args['showblankpositional']) local values = {} for k, v in pairs(pargs) do if type(k) == 'string' and knownargs[k] == nil then local knownflag = false for _, regexp in ipairs(regexps) do if mw.ustring.match(k, regexp) then knownflag = true break end end if not knownflag and ( not ignoreblank or isnotempty(v) ) then table.insert(values, clean(k)) end elseif type(k) == 'number' and knownargs[tostring(k)] == nil then local knownflag = false for _, regexp in ipairs(regexps) do if mw.ustring.match(tostring(k), regexp) then knownflag = true break end end if not knownflag and ( showblankpos or isnotempty(v) ) then table.insert(values, k .. ' = ' .. clean(v)) end end end -- add results to the output tables local res = {} if #values > 0 then local unknown_text = args['unknown'] or 'Found _VALUE_, ' if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then local preview_text = args['preview'] if isnotempty(preview_text) then preview_text = require('Modül:If preview')._warning({preview_text}) elseif preview == nil then preview_text = unknown_text end unknown_text = preview_text end for _, v in pairs(values) do -- Fix odd bug for | = which gets stripped to the empty string and -- breaks category links if v == '' then v = ' ' end -- avoid error with v = 'example%2' ("invalid capture index") local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v}) table.insert(res, r) end end return table.concat(res) end function p.check(frame) local args = frame.args local pargs = frame:getParent().args return p._check(args, pargs) end return p iwg4zs5yqxoi8amppf7qwjdrlr74jvx Vikigezgin:Değişiklik sayılarına göre Vikiçelebiler listesi 4 1566 16892 16871 2026-06-30T21:00:19Z YBot 1043 Güncelleme 16892 wikitext text/x-wiki {{/begin}} <center> {| class="wikitable" ! # ! Kullanıcı ! Değişiklik sayısı ! Kullanıcı grupları |- | 1 | [[Kullanıcı:Victor Trevor|Victor Trevor]] | align="center" | 1.818 | geri döndürücü |- | 2 | [[Kullanıcı:Kadı|Kadı]] | align="center" | 1.096 | hizmetli |- | 3 | [[Kullanıcı:Zemxer|Zemxer]] | align="center" | 1.052 | geri döndürücü |- | 4 | [[Kullanıcı:Anerka|Anerka]] | align="center" | 809 | arayüz yöneticisi, hizmetli |- | 5 | [[Kullanıcı:Axis09|Axis09]] | align="center" | 800 | geri döndürücü |- | 6 | [[Kullanıcı:Prof.Bilmiş|Prof.Bilmiş]] | align="center" | 472 | |- | 7 | [[Kullanıcı:Brightt11|Brightt11]] | align="center" | 425 | |- | 8 | [[Kullanıcı:Evrifaessa|Evrifaessa]] | align="center" | 377 | |- | 9 | [[Kullanıcı:Sp1dey|Sp1dey]] | align="center" | 359 | |- | 10 | [[Kullanıcı:Ornek11222|Ornek11222]] | align="center" | 359 | |- | 11 | [[Kullanıcı:Lionel Cristiano|Lionel Cristiano]] | align="center" | 228 | geri döndürücü |- | 12 | [[Kullanıcı:ToprakM|ToprakM]] | align="center" | 201 | |- | 13 | [[Kullanıcı:Mereyü|Mereyü]] | align="center" | 179 | |- | 14 | [[Kullanıcı:Kurmanbek|Kurmanbek]] | align="center" | 174 | |- | 15 | [[Kullanıcı:LisafBia|LisafBia]] | align="center" | 162 | geri döndürücü |- | 16 | [[Kullanıcı:Modern primat|Modern primat]] | align="center" | 160 | |- | 17 | [[Kullanıcı:Bircan3438|Bircan3438]] | align="center" | 128 | |- | 18 | [[Kullanıcı:Wooze|Wooze]] | align="center" | 113 | geri döndürücü |- | 19 | [[Kullanıcı:Nintendofan885|Nintendofan885]] | align="center" | 89 | |- | 20 | [[Kullanıcı:Vikiolog|Vikiolog]] | align="center" | 85 | |- | 21 | [[Kullanıcı:Stultiwikia|Stultiwikia]] | align="center" | 83 | |- | 22 | [[Kullanıcı:BSRF|BSRF]] | align="center" | 78 | |- | 23 | [[Kullanıcı:Nabbegat|Nabbegat]] | align="center" | 72 | |- | 24 | [[Kullanıcı:EkremBey58444|EkremBey58444]] | align="center" | 70 | |- | 25 | [[Kullanıcı:UcuncuUlus|UcuncuUlus]] | align="center" | 60 | |- | 26 | [[Kullanıcı:BennTheResearcher|BennTheResearcher]] | align="center" | 55 | |- | 27 | [[Kullanıcı:Vincent Vega|Vincent Vega]] | align="center" | 54 | |- | 28 | [[Kullanıcı:Vikiçelebici|Vikiçelebici]] | align="center" | 51 | |- | 29 | [[Kullanıcı:Uncitoyen|Uncitoyen]] | align="center" | 50 | |- | 30 | [[Kullanıcı:InternetArchiveBot|InternetArchiveBot]] | align="center" | 50 | |- | 31 | [[Kullanıcı:Huluxsi|Huluxsi]] | align="center" | 42 | |- | 32 | [[Kullanıcı:YG1|YG1]] | align="center" | 32 | geri döndürücü |- | 33 | [[Kullanıcı:CommonsDelinker|CommonsDelinker]] | align="center" | 29 | |- | 34 | [[Kullanıcı:MathXplore|MathXplore]] | align="center" | 29 | |- | 35 | [[Kullanıcı:Basak|Basak]] | align="center" | 23 | |- | 36 | [[Kullanıcı:Dokuz sekiz|Dokuz sekiz]] | align="center" | 20 | |- | 37 | [[Kullanıcı:Sarı Saçlı|Sarı Saçlı]] | align="center" | 20 | |- | 38 | [[Kullanıcı:Vikiyılmaz|Vikiyılmaz]] | align="center" | 16 | |- | 39 | [[Kullanıcı:Zkarapatlak|Zkarapatlak]] | align="center" | 16 | |- | 40 | [[Kullanıcı:Bluetime93|Bluetime93]] | align="center" | 15 | |- | 41 | [[Kullanıcı:DreamRimmer|DreamRimmer]] | align="center" | 15 | |- | 42 | [[Kullanıcı:Aadaulas gmail.co\m|Aadaulas gmail.co\m]] | align="center" | 15 | |- | 43 | [[Kullanıcı:SAİT71|SAİT71]] | align="center" | 14 | |- | 44 | [[Kullanıcı:~2026-11236-70|~2026-11236-70]] | align="center" | 14 | |- | 45 | [[Kullanıcı:EvrifaessaTest|EvrifaessaTest]] | align="center" | 13 | |- | 46 | [[Kullanıcı:Tester Muster|Tester Muster]] | align="center" | 13 | |- | 47 | [[Kullanıcı:Gufo46|Gufo46]] | align="center" | 13 | |- | 48 | [[Kullanıcı:Anon0004|Anon0004]] | align="center" | 13 | |- | 49 | [[Kullanıcı:~2025-50465-6|~2025-50465-6]] | align="center" | 13 | |- | 50 | [[Kullanıcı:Superyetkin|Superyetkin]] | align="center" | 12 | |} </center> k5wofcqolb9i77cjxcmmetg076mcxc1 Şablon:Çoklu resim 10 4725 16886 2026-06-30T14:55:13Z Lionel Cristiano 1662 /* */ trwiki'den kopyalandı 16886 wikitext text/x-wiki {{#invoke:Çoklu resim|render}}<noinclude>{{belgeleme}}</noinclude> ts64ev8j72xtgycsj34dxr02qrxadlx Modül:Çoklu resim 828 4726 16887 2026-06-30T14:57:33Z Lionel Cristiano 1662 trwiki'den kopyalandı 16887 Scribunto text/plain -- implements [[Şablon:Çoklu resim]] local p = {} local autoscaledimages local nonautoscaledimages local function isnotempty(s) return s and s:match( '^%s*(.-)%s*$' ) ~= '' end local function removepx(s) return tostring(s or ''):match('^(.*)[Pp][Xx]%s*$') or s end local function getdimensions(s, w, h) if tonumber(w) and tonumber(h) then nonautoscaledimages = true return tonumber(w), tonumber(h) end local file = s and mw.title.new('Dosya:' .. mw.uri.decode(mw.ustring.gsub(s,'%|.*$',''), 'WIKI')) file = file and file.file or {width = 0, height = 0} w = tonumber(file.width) or 0 h = tonumber(file.height) or 0 autoscaledimages = true return w, h end local function renderImageCell(image, width, height, link, alt, thumbtime, caption, class, textalign, istyle, border, tcolor) local root = mw.html.create('') local altstr = '' local classstr = class and ('|class=' .. class) or '' local linkstr = link and ('|link=' .. link) or '' local widthstr = '|' .. tostring(width) .. 'px' local thumbtimestr = '' if isnotempty( alt ) then altstr = '|alt=' .. alt end if widthstr == '|-nanpx' then widthstr = '' end if isnotempty( thumbtime ) then thumbtimestr = '|thumbtime=' .. thumbtime end local imagediv = root:tag('div') imagediv:addClass((border ~= 'infobox') and 'thumbimage' or nil) imagediv:cssText(istyle) if( height ) then imagediv:css('height', tostring(height) .. 'px') imagediv:css('overflow', 'hidden') end imagediv:wikitext('[[Dosya:' .. image .. classstr .. widthstr .. linkstr .. altstr .. thumbtimestr .. ']]') if isnotempty(caption) then local captiondiv = root:tag('div') captiondiv:addClass((border ~= 'infobox') and 'thumbcaption' or nil) if isnotempty(textalign) then captiondiv:addClass('text-align-' .. textalign) end if( tcolor ~= '' ) then captiondiv:css('color', tcolor) end captiondiv:wikitext(caption) end return tostring(root) end local function getWidth(w1, w2) local w if isnotempty(w1) then w = tonumber(w1) elseif isnotempty(w2) then w = tonumber(w2) end return w or 200 end local function getPerRow(pstr, ic) -- split string into array using any non-digit as a dilimiter local pr = mw.text.split(pstr or '', '[^%d][^%d]*') -- if split failed, assume a single row if (#pr < 1) then pr = {tostring(ic)} end -- convert the array of strings to an array of numbers, -- adding any implied/missing numbers at the end of the array local r = 1 local thisrow = tonumber(pr[1] or ic) or ic local prownum = {} while( ic > 0 ) do prownum[r] = thisrow ic = ic - thisrow r = r + 1 -- use the previous if the next is missing and -- make sure we don't overstep the number of images thisrow = math.min(tonumber(pr[r] or thisrow) or ic, ic) end return prownum end local function renderMultipleImages(frame) local pargs = frame:getParent().args local args = frame.args local width = removepx(pargs['width'] or pargs['boyut'] or '') local dir = pargs['direction'] or pargs['yön'] or '' local border = pargs['border'] or args['border'] or '' local align = pargs['align'] or args['align'] or pargs['hiza'] or (border == 'infobox' and 'center' or '') local capalign = pargs['caption_align'] or args['caption_align'] or pargs['altyazıhizası'] or args['altyazıhizası'] or '' local totalwidth = removepx(pargs['total_width'] or args['total_width'] or '') local imgstyle = pargs['image_style'] or args['image_style'] local header = pargs['header'] or pargs['title'] or pargs['başlık'] or '' local footer = pargs['footer'] or pargs['altlık'] or '' local imagegap = tonumber(pargs['image_gap'] or '1') or 1 local perrow = nil local thumbclass = { ["left"] = 'tleft', ["none"] = 'tnone', ["center"] = 'tnone', ["centre"] = 'tnone', ["right"] = 'tright' } -- find all the nonempty images local imagenumbers = {} local imagecount = 0 for k, v in pairs( pargs ) do local i = tonumber(tostring(k):match( '^%s*image([%d]+)%s*$' ) or '0') if( i > 0 and isnotempty(v) ) then table.insert( imagenumbers, i) imagecount = imagecount + 1 end end -- sort the imagenumbers table.sort(imagenumbers) -- create an array with the number of images per row perrow = getPerRow(dir == 'vertical' and '1' or pargs['perrow'], imagecount) -- compute the number of rows local rowcount = #perrow -- store the image widths and compute row widths and maximum row width local heights = {} local widths = {} local widthmax = 0 local widthsum = {} local k = 0 for r=1,rowcount do widthsum[r] = 0 for c=1,perrow[r] do k = k + 1 if( k <= imagecount ) then local i = imagenumbers[k] if( isnotempty(totalwidth) ) then widths[k], heights[k] = getdimensions((pargs['image' .. i] or pargs['resim' .. i]), (pargs['width' .. i] or pargs['boyut' .. i]), pargs['height' .. i]) else widths[k] = getWidth(width, (pargs['width' .. i] or pargs['boyut' .. i])) end widthsum[r] = widthsum[r] + widths[k] end end widthmax = math.max(widthmax, widthsum[r]) end -- make sure the gap is non-negative if imagegap < 0 then imagegap = 0 end -- if total_width has been specified, rescale the image widths if( isnotempty(totalwidth) ) then totalwidth = tonumber(totalwidth) widthmax = 0 local k = 0 for r=1,rowcount do local koffset = k local tw = totalwidth - (3 + imagegap) * (perrow[r] - 1) - 12 local ar = {} local arsum = 0 for j=1,perrow[r] do k = k + 1 if(k<=imagecount) then local i = imagenumbers[k] local h = heights[k] or 0 if (h > 0) then ar[j] = widths[k] / h heights[k] = h else ar[j] = widths[k] / 100 end arsum = arsum + ar[j] end end local ht = tw / arsum local ws = 0 k = koffset for j=1,perrow[r] do k = k + 1 if(k<=imagecount) then local i = imagenumbers[k] widths[k] = math.floor(ar[j] * ht + 0.5) ws = ws + widths[k] if heights[k] then heights[k] = math.floor(ht) end end end widthsum[r] = ws widthmax = math.max(widthmax, widthsum[r]) end end -- start building the array of images, if there are images if( imagecount > 0 ) then -- compute width of outer div local bodywidth = 0 for r=1,rowcount do if( widthmax == widthsum[r] ) then bodywidth = widthmax + (3 + imagegap) * (perrow[r] - 1) + 12 end end -- The body has a min-width of 100, which needs to be taken into account on specific widths bodywidth = math.max(100, bodywidth - 8); local tc = pargs['color'] or pargs['text_color'] or '' local bg = pargs['bg_color'] or pargs['background_color'] or pargs['background color'] or '' -- create the array of images local root = mw.html.create('div') root:addClass('thumb') root:addClass('tmulti') root:addClass(thumbclass[align] or 'tright') if(align == 'center' or align == 'centre') then root:addClass('center') end if( tc ~= '' ) then root:css('color', tc) end local div = root:tag('div') div:addClass((border ~= 'infobox') and 'thumbinner multiimageinner' or 'multiimageinner') div:css('width', tostring(bodywidth) .. 'px') :css('max-width', tostring(bodywidth) .. 'px') if( bg ~= '' ) then div:css('background-color', bg) end if( tc ~= '' ) then div:css('color', tc) end if( border == 'infobox' or border == 'none' ) then div:css('border', 'none') end -- add the header if( isnotempty(header) ) then div:tag('div') :addClass('trow') :tag('div') :addClass('theader') :css('text-align', pargs['header_align'] or pargs['başlıkhizası'] or 'center') :css('background-color', (pargs['header_background'] ~= '' and pargs['header_background']) or (pargs['başlıkarkaplanı'] ~= '' and pargs['başlıkarkaplanı']) or nil) :wikitext(header) end -- loop through the images local k = 0 for r=1,rowcount do local rowdiv = div:tag('div'):addClass('trow'); for j=1,perrow[r] do k = k + 1 if( k <= imagecount ) then local imagediv = rowdiv:tag('div') imagediv:addClass('tsingle') if bg ~= '' then imagediv:css('background-color', bg); end if imagegap > 1 and k < imagecount then if dir == 'vertical' then imagediv:css('margin-bottom', tostring(imagegap) .. 'px') elseif j < perrow[r] then imagediv:css('margin-right', tostring(imagegap) .. 'px') end end local i = imagenumbers[k] local img = pargs['image' .. i] local w = widths[k] imagediv:css('width', tostring(2 + w) .. 'px') :css('max-width', tostring(2 + w) .. 'px') imagediv:wikitext(renderImageCell(img, w, heights[k], pargs['link' .. i], pargs['alt' .. i], pargs['thumbtime' .. i], pargs['caption' .. i], pargs['class' .. i], capalign, imgstyle, border, tc)) end end end -- add the footer if( isnotempty(footer) ) then local falign = string.lower(pargs['footer_align'] or args['footer_align'] or pargs['altlıkhizası'] or args['altlıkhizası'] or 'left') falign = (falign == 'centre') and 'center' or falign div:tag('div') :addClass('trow') :css('display', (falign ~= '') and 'flow-root' or 'flex') :tag('div') :addClass((border ~= 'infobox') and 'thumbcaption' or nil) :css('text-align', (falign ~= '') and falign or nil) :css('background-color', (pargs['footer_background'] ~= '' and pargs['footer_background']) or (pargs['altlıkarkaplanı'] ~= '' and pargs['altlıkarkaplanı']) or nil) :css('color', (tc ~= '') and tc or nil) :wikitext(footer) end return tostring(root) end return '' end function p.render(frame) autoscaledimages = false nonautoscaledimages = false local check = require('Module:Check for unknown parameters')._check local tracking = check({ ['unknown'] = frame:expandTemplate{ title = 'main other', args = {'[[Kategori:Tanımlanmamış parametreler içeren çoklu resim kullanılan sayfalar|_VALUE_ ]]'} }, ['preview'] = 'Sayfada, tanımlanmamış parametreler içeren [[Şablon:Çoklu resim]] kullanılmakta "_VALUE_"', ['ignoreblank'] = 'y', regexp1 = 'image%d+', regexp2 = 'width%d+', regexp3 = 'height%d+', regexp4 = 'class%d+', regexp5 = 'alt%d+', regexp6 = 'link%d+', regexp7 = 'thumbtime%d+', regexp8 = 'caption%d+', regexp9 = 'boyut%d+', regexp10 = 'resim%d+', 'align', 'direction', 'header_background', 'header_align', 'header', 'width', 'total_width', 'caption_align', 'footer_background', 'footer_align', 'footer', 'perrow', 'title', 'image_gap', 'border', 'image_style', 'color', 'text_color', 'bg_color', 'background_color', 'background color', -- Türkçe parametre takma adları 'yön', 'hiza', 'başlık', 'altlık', 'boyut', 'altyazıhizası', 'başlıkhizası', 'başlıkarkaplanı', 'altlıkhizası', 'altlıkarkaplanı' }, frame:getParent().args) return frame:extensionTag{name = 'templatestyles', args = {src = 'Çoklu resim/biçim.css', wrapper = ".tmulti"}} .. renderMultipleImages(frame) .. (autoscaledimages and '[[Kategori:Otomatik boyutlandırılan çoklu resim kullanılan sayfalar]]' or '') .. (nonautoscaledimages and '[[Kategori:Elle boyutlandırılan çoklu resim kullanılan sayfalar]]' or '') .. tracking end p[''] = function(frame) return p.render(frame:newChild{title = frame:getTitle()}) end return p 0b3xxkfqm3azj8i9v579w5hn2irl5hd Modül:Check for unknown parameters 828 4727 16888 2026-06-30T15:00:29Z Lionel Cristiano 1662 + 16888 Scribunto text/plain return require('Modül:Tanımlanmayan parametre denetimi') raa89jv1cfos7ztngc3elx3l3ra6pwu Şablon:Multiple image 10 4728 16890 2026-06-30T15:18:29Z Lionel Cristiano 1662 + 16890 wikitext text/x-wiki #YÖNLENDİRME [[Şablon:Çoklu resim]] a1pp5axszb1zgjj4za43miblyxuywgs Şablon:Çoklu resim/biçim.css 10 4729 16891 2026-06-30T15:21:44Z Lionel Cristiano 1662 trwiki'den kopyalandı 16891 sanitized-css text/css /* this is a block */ .multiimageinner { display: flex; flex-direction: column; } .trow { display: flex; flex-direction: row; clear: left; flex-wrap: wrap; width: 100%; box-sizing: border-box; } /* this is a cell */ .tsingle { margin: 1px; float: left; } .theader { clear: both; font-weight: bold; text-align: center; align-self: center; background-color: transparent; width: 100%; } .thumbcaption { background-color: transparent; } .text-align-left { text-align: left; } .text-align-right { text-align: right; } .text-align-center { text-align: center; } @media all and ( max-width: 720px ) { .thumbinner { /* not !important usage can be removed when these are no longer inline styles inside Template:Multiple image and media query using min-width is introduced */ width: 100% !important; box-sizing: border-box; max-width: none !important; align-items: center; } .trow { justify-content: center; } .tsingle { /* not !important usage can be removed when these are no longer inline styles inside Template:Multiple image and media query using min-width is introduced */ float: none !important; max-width: 100% !important; box-sizing: border-box; text-align: center; } .tsingle .thumbcaption { text-align: left; } .trow > .thumbcaption { text-align: center; } } @media screen { .multiimageinner .thumbimage { background-color: inherit; } html.skin-theme-clientpref-night .multiimageinner .thumbimage:not([style*="background-color"]) span:not(.skin-invert-image):not(.skin-invert):not(.bg-transparent) img, html.skin-theme-clientpref-day .multiimageinner .thumbimage:not([style*="background-color"]) span:not(.bg-transparent) img { background-color: white; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .multiimageinner .thumbimage:not([style*="background-color"]) span:not(.skin-invert-image):not(.skin-invert):not(.bg-transparent) img { background-color: white; } } lvzog1h8zwpsr7a02hpjxehor6277m2 Kullanıcı mesaj:Samsuncitycar 3 4730 16893 2026-06-30T21:00:23Z YBot 1043 Hoş geldiniz! 16893 wikitext text/x-wiki == Hoş geldiniz Samsuncitycar! == Merhaba, özgür seyahat rehberi Vikigezgin'in '''Türkçe''' sürümüne '''[[Vikigezgin:Hoş geldiniz|hoş geldiniz]]'''! Vikigezgin tamamen gönüllü katılımcıların çabalarıyla hazırlanır. Tartışma ve kullanıcı mesaj sayfalarında iletilerinizin sonuna '''"<code><nowiki>~~~~</nowiki></code>"''' koduyla imza atabilirsiniz. Hata yapmaktan korkmayın, katkıda bulunmaktan çekinmeyin ve '''[[Vikigezgin:Yürüyün ileriye|cesur olun]]'''! Kolay gelsin. --[[Kullanıcı:YBot|YBot]] ([[Kullanıcı mesaj:YBot|mesaj]]) 21.00, 30 Haziran 2026 (UTC) d6psmm15fqqlzjqtg1mrhpt5z9658xg Kullanıcı mesaj:Morkoz 3 4731 16894 2026-06-30T21:00:26Z YBot 1043 Hoş geldiniz! 16894 wikitext text/x-wiki == Hoş geldiniz Morkoz! == Merhaba, özgür seyahat rehberi Vikigezgin'in '''Türkçe''' sürümüne '''[[Vikigezgin:Hoş geldiniz|hoş geldiniz]]'''! Vikigezgin tamamen gönüllü katılımcıların çabalarıyla hazırlanır. Tartışma ve kullanıcı mesaj sayfalarında iletilerinizin sonuna '''"<code><nowiki>~~~~</nowiki></code>"''' koduyla imza atabilirsiniz. Hata yapmaktan korkmayın, katkıda bulunmaktan çekinmeyin ve '''[[Vikigezgin:Yürüyün ileriye|cesur olun]]'''! Kolay gelsin. --[[Kullanıcı:YBot|YBot]] ([[Kullanıcı mesaj:YBot|mesaj]]) 21.00, 30 Haziran 2026 (UTC) oy26n3ytwwufhgfxg3k8nihmthbmush