Modül:Dil
Gezinti kısmına atla
Arama kısmına atla
Lua hatası: Dahili hata: Mesajın kodu çözülemedi. Lua hatası: Dahili hata: Mesajın kodu çözülemedi.
Betik hatası: Lua hatası: Dahili hata: Mesajın kodu çözülemedi.
local dilTablosu = require("Modül:Dil/veri") --bu fonksiyon girilen bir yazıda birinci değeri bulup --onu ikinci değer ile değiştirmeye yarar local function bulvedeg(yazi, bir, iki) return mw.ustring.sub( mw.ustring.gsub(yazi, bir, iki), 1, -1 ) end local function dilGetir(dilKodu) local dil = dilTablosu[dilKodu] and dilKodu or bulvedeg( dilKodu, "%-.*", "" ) return dilTablosu[dil] or error("Girilen dil kodu veritabanında bulunamadı. Lütfen Modül:Dil/veri'yi kontrol edin.") end --Dil adlarına ek geldiğinde bu ekleri Türkçe yazım kurallarına göre ayarla. local function dilDuzenle(dil) -- Girilen dil parametresinin son kelimesi "dili" ile bitiyorsa onu belirt, çünkü dilden sonra gelecek ek buna göre ayarlanacaktır. local sonHece1 = mw.ustring.sub( dil, -4 ) -- Girilen dil parametresinin son iki hecesini ayırt et, çünkü dilden sonra gelecek ek buna göre ayarlanacaktır. local sonHece2 = mw.ustring.sub( dil, -2 ) -- Daha önceden son heceleri/kelimesi ayırt edilen dil adlarının sonrasına "de", "da", "nde", "nda" eklerini ekle. local ekliDil = "" -- Son iki harfi "si" ile biten (Örneğin: İskoç İngilizcesi) veya son kelimesi "dili" olan (Örneğin: İdo dili) dil adlarından sonra "nde" ekini ekle. if dil and sonHece1 == "dili" or sonHece2 == "si" then ekliDil = ekliDil .. dil .. "nin" -- Son iki harfi "sı" ile (Örneğin: İsviçre Almancası) dil adlarından sonra "nda" ekini ekle. elseif dil and sonHece2 == "sı" then ekliDil = ekliDil .. dil .. "nın" -- Son iki harfi "ce" ile (Örneğin: İngilizce) veya "çe" ile biten (Örneğin: Türkçe) dil adlarından sonra "de" ekini ekle. elseif dil and sonHece2 == "ce" or sonHece2 == "çe" then ekliDil = ekliDil .. dil .. "nin" -- Son iki harfi "ca" ile (Örneğin: Almanca) veya "ça" ile biten (Örneğin: Başkça) dil adlarından sonra "da" ekini ekle. elseif dil and sonHece2 == "ca" or sonHece2 == "ça" then ekliDil = ekliDil .. dil .. "nın" end return ekliDil end --IPA yazılışları için kullanılan fonksiyon local function IPA(frame) --parametre tanımlayıcı local args = frame:getParent().args --burada sonuçta çıktısını vereceğimiz satırı başlat local IPA = "" if args["başlık"] ~= nil then IPA = IPA .. "<small>" .. args["başlık"] .. " </small>" else --eğer ilk parametreye "-" ifadesi girilirse bir dil kodu varsayılmadığını algıla if args[1] == "-" then else --eğer yukarıdaki başlıklardan hiçbiri belirtilmemişse girilen dil kodunun adını çıkart IPA = IPA .. "<small>" .. dilGetir(args[1])[1] .. " telaffuz: </small>" end end --ikinci parametrede "[]" ifadeleri varsa bunları temizle, çünkü modül bunları otomatik ekliyor if mw.ustring.find(args[2], "^%[") then args[2] = string.sub( args[2], 2, -1 ) end if mw.ustring.find(args[2], "%]$") then args[2] = mw.ustring.sub( args[2], 1, -2 ) end local parAc = mw.ustring.find(args[2], "^%/") and "" or "[" local parKapa = mw.ustring.find(args[2], "%/$") and "" or "]" --küçük yazılacak kısmın kapanış etiketini ekle --daha sonra da IPA okunuşu kısmını ekle IPA = IPA .. "<span title='IPA Söylenişi' class='IPA'>" .. (args["b"] == "yok" and "" or "[[Yardım:IPA|") .. parAc .. args[2] .. parKapa .. (args["b"] == "yok" and "" or "]]") .. "</span>" --eğer bir ses dosyası girilirse onu da en sona ekle if args.medya ~= nil then IPA = IPA .. "<small> ([[Dosya:Speaker Icon.svg|13px|link=|alt=]] [[:Media:" .. args.medya .. "|dinle]])</small>" end --son çıktı return IPA end local function dil(frame, moduleArgs) --parametre tanımlayıcı local args = frame and frame:getParent().args or nil --eğer farklı bir modülden çağırılıyorsa, --modül parametrelerini kullan if moduleArgs then args = moduleArgs end local yazi = args[2] or args['yazı'] or "" local romanizasyon = "romanizasyon" if args[1] == "rtl" or args[1] == "ltr" then if args[1] == "rtl" then args['yön'] = "rtl" elseif args[1] == "ltr" then args['yön'] = "ltr" end yazi = args[3] or args['yazı'] or "" args[1] = args[2] end --sonuçtaki çıktıyı başlat local dil = "" local dil_prm = args['dil_adı'] or args['da'] --dilin adını tablodan kod yardımıyla bul ve o dilin sınıfında bir span oluştur if dil_prm ~= 'hayır' then dil = dil .. "[[" .. dilGetir(args[1])[1] .. "]]: " end --eğer girilmiş bir yön varsa onu span'ın özelliklerine ekle --son olarak da yazıyı span'ın içerisine yerleştir dil = dil .. "<span class='lang-"..args[1].."' lang='"..args[1].."' dir='"..(args['yön'] and args['yön'] or "ltr").."'>" .. yazi .. "</span>" --çeviri parametresi girildiyse çeviriyi yazıdan sonra ekle if mw.title.new(dilDuzenle(dilGetir(args[1])[1]).." romanizasyonu").exists then romanizasyon = dilDuzenle(dilGetir(args[1])[1]).." romanizasyonu" or romanizasyon end if args['çeviri'] then dil = dil .. ", <small>[["..romanizasyon.."|romanize]]: ''<span class='lang-"..args[1].." transcription' lang='"..args[1].."-Latn'>" ..args['çeviri'].."</span></small>''" end return dil end local function dilRomanizasyon(frame, moduleArgs) --parametre tanımlayıcı local args = frame and frame:getParent().args or nil --eğer farklı bir modülden çağırılıyorsa, --modül parametrelerini kullan if moduleArgs then args = moduleArgs end return '<span lang="' .. args[1] .. '-Latn" style="font-style: normal;" title="' .. dilGetir(args[1])[1] .. ' harf çevirisi">' .. args[2] .. "</span>" end --yerel ad şablonunun fonksiyonu local function yerelAd(frame) --parametre tanımlayıcı local args = frame:getParent().args --her şeyden önce hata çıkmasına karşın çıktıyı başlatalım local yerelAd = "" --eğer ikinci parametre girilmediyse modül hata vermesin, bunun yerine izleyici kategori eklesin if args[2] then yerelAd = yerelAd .. (args["italik"] and args[2] or "''" .. args[2] .. "''") else yerelAd = yerelAd .. "[[Kategori:Yerel adı girilmemiş yerel adı şablonu kullanan maddeler]]" end --eğer şablona dil kodu girilmediyse modül hatası değil de izleme kategorisi ekle if dilGetir(args[1])[1] then yerelAd = yerelAd .. "  <small>" .. (args["parantez"] and "" or "(") .. (args["bağ_yok"] and "" or "[[") .. dilGetir(args[1])[1] .. (args["bağ_yok"] and "" or "]]") .. (args["parantez"] and "" or ")") .. "</small>" else yerelAd = yerelAd .. "[[Kategori:Dil kodu girilmemiş yerel adı şablonu kullanan maddeler]]" end return yerelAd end return { IPA = IPA, dil = dil, yerelAd = yerelAd, dilRomanizasyon = dilRomanizasyon }