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