Module:GetVerseTranslations: Difference between revisions

From Bodhicitta
((by SublimeText.Mediawiker))
Tag: Blanking
((by SublimeText.Mediawiker))
Line 1: Line 1:
local p = {}


function p.main(frame)
local outputVerseTrans = ''
local pargs = frame:getParent().args
local verse = ''
if pargs.verse then
verse = pargs.verse
else
verse = mw.title.getCurrentTitle().subpageText
end
local TransVersesData = mw.smw.ask( '[[Category:Translation Memories]][[SegmentFormat::Root]][[RootTextVerseNumPadmaK::' .. verse .. ']]|?#-=page|?TransMemID|?RootTextChapVerseNum|?TranslationWikiPage#|?ShortTitle|?TranslationCitation|?English|?SegmentOrder|sort=TransMemID,SegmentOrder|order=asc,asc|limit=10000' )
if TransVersesData and #TransVersesData then
local transTbl = {}
local pages = ''
local englishContent = ''
local tmid = ''
for num, trVerseData in ipairs( TransVersesData ) do
tmid = trVerseData.TransMemID
if type(transTbl[tmid]) == 'table' then else
transTbl[tmid] = {}
end
if transTbl[tmid]['page'] then
pages = transTbl[tmid]['page'] .. ';' .. trVerseData.page
else
pages = trVerseData.page
end
if transTbl[tmid]['english'] then
englishContent = transTbl[tmid]['english'] .. '\n' .. trVerseData.English
else
englishContent = trVerseData.English
end
transTbl[tmid] = {
page = pages ,
shorttitle = trVerseData.ShortTitle ,
english = englishContent ,
source = trVerseData.TranslationWikiPage
}
end
outputVerseTrans = outputVerseTrans .. '<div class="row mx-0 align-content-start"><div class="visibility-controls col-lg-4 py-2 pb-lg-4 mb-0 px-0 d-flex flex-column">'
for id, transData in pairs(transTbl) do
outputVerseTrans = outputVerseTrans .. frame:expandTemplate{
title = 'SingleVisibilityToggle',
args = {
id = id .. '-translation' ,
label = transData.shorttitle ,
wikipage = transData.source
}
}
end
outputVerseTrans = outputVerseTrans .. '</div><div class="col-lg-8 py-2 pb-4 px-0 pr-lg-3 pl-lg-4 d-flex flex-column">'
for id, transData in pairs(transTbl) do
local tmButton = frame:expandTemplate{
title = 'InternalLink',
args = {
wikipage = transData.page ,
label = 'TM <i class="fa-duotone fa-angle-right fa-sm"></i>'
}
}
tmButton = '<span class="tsdwiki-top-actions text-70 pl-4 font-style-normal">' .. tmButton .. '</span>'
local order = ''
if id == '001-Tsadra-BCA-Root-Padmakara' or id == '005-Tsadra-BCA-Root-Dunhuang' then
order = 'order-first'
end
outputVerseTrans = outputVerseTrans .. frame:expandTemplate{
title = 'VersionContent',
args = {
content = transData.english ,
source = transData.source,
tmButton =  tmButton,
id = id .. '-translation',
shorttitle = transData.shorttitle,
order = order
}
}
end
outputVerseTrans = outputVerseTrans .. '</div></div>'
end
outputVerseTrans = outputVerseTrans .. '</div>'
return outputVerseTrans
end
return p

Revision as of 18:18, 4 April 2025

Documentation for this module may be created at Module:GetVerseTranslations/doc

local p = {}

function p.main(frame)

	local outputVerseTrans = ''

	local pargs = frame:getParent().args

	local verse = ''
	if pargs.verse then
		verse = pargs.verse
	else
		verse = mw.title.getCurrentTitle().subpageText
	end

	local TransVersesData = mw.smw.ask( '[[Category:Translation Memories]][[SegmentFormat::Root]][[RootTextVerseNumPadmaK::' .. verse .. ']]|?#-=page|?TransMemID|?RootTextChapVerseNum|?TranslationWikiPage#|?ShortTitle|?TranslationCitation|?English|?SegmentOrder|sort=TransMemID,SegmentOrder|order=asc,asc|limit=10000' )

	if TransVersesData and #TransVersesData then

		local transTbl = {}
		local pages = ''
		local englishContent = ''
		local tmid = ''

		for num, trVerseData in ipairs( TransVersesData ) do

			tmid = trVerseData.TransMemID
			if type(transTbl[tmid]) == 'table' then else
				transTbl[tmid] = {}
			end
			if transTbl[tmid]['page'] then
				pages = transTbl[tmid]['page'] .. ';' .. trVerseData.page
			else
				pages = trVerseData.page
			end

			if transTbl[tmid]['english'] then
				englishContent = transTbl[tmid]['english'] .. '\n' .. trVerseData.English
			else
				englishContent = trVerseData.English
			end

			transTbl[tmid] = {
				page = pages ,
				shorttitle = trVerseData.ShortTitle ,
				english = englishContent ,
				source = trVerseData.TranslationWikiPage
			}

		end

		outputVerseTrans = outputVerseTrans .. '<div class="row mx-0 align-content-start"><div class="visibility-controls col-lg-4 py-2 pb-lg-4 mb-0 px-0 d-flex flex-column">'

		for id, transData in pairs(transTbl) do
			outputVerseTrans = outputVerseTrans .. frame:expandTemplate{ 
				title = 'SingleVisibilityToggle', 
				args = { 
					id = id .. '-translation' , 
					label = transData.shorttitle ,
					wikipage = transData.source

				} 
			}
		end

		outputVerseTrans = outputVerseTrans .. '</div><div class="col-lg-8 py-2 pb-4 px-0 pr-lg-3 pl-lg-4 d-flex flex-column">'	
		
		for id, transData in pairs(transTbl) do

			local tmButton = frame:expandTemplate{ 
				title = 'InternalLink', 
				args = { 
					wikipage = transData.page , 
					label = 'TM <i class="fa-duotone fa-angle-right fa-sm"></i>'
				} 
			}
			tmButton = '<span class="tsdwiki-top-actions text-70 pl-4 font-style-normal">' .. tmButton .. '</span>'

			local order = ''
			if id == '001-Tsadra-BCA-Root-Padmakara' or id == '005-Tsadra-BCA-Root-Dunhuang' then
				order = 'order-first'
			end

			outputVerseTrans = outputVerseTrans .. frame:expandTemplate{ 
				title = 'VersionContent', 
				args = { 
					content = transData.english , 
					source = transData.source,
					tmButton =  tmButton,
					id = id .. '-translation',
					shorttitle = transData.shorttitle,
					order = order
				}
			}

		end

		outputVerseTrans = outputVerseTrans .. '</div></div>'

	end

	outputVerseTrans = outputVerseTrans .. '</div>'	

	return outputVerseTrans

end

return p