Прежде, чем вносить какие-либо изменения в данный модуль, просьба оттестировать их в /песочнице и проверить результат на странице с /контрольными примерами. Изменения могут быть внесены после этого в данный модуль всего одной правкой.
Модуль возвращает ссылку на братские проекты согласно информации из Викиданных:
если есть русская ссылка, возвращается она
если есть ссылка на родном языке писателя (см. передаваемый аргумент), то используется она. Поддерживаются multiple значения для языка
если ничего из этого нет, используется случайная ссылка
localp={};functionp.getWikibooksLink()returnp.getSisterProjectLink('b','wikibooks');endfunctionp.getWikiquoteLink()returnp.getSisterProjectLink('q','wikiquote');endfunctionp.getWikisourceLink()returnp.getSisterProjectLink('s','wikisource');endfunctionp.getWikipediaLink()returnp.getSisterProjectLink('w','wiki');endfunctionp.getWiktionaryLink()returnp.getSisterProjectLink('wikt','wiktionary');endfunctionp.getSisterProjectLink(projectInterwikiLettter,projectName)-- По умолчанию старается достать ссылку на русском, иначе - на родном (P103)localwbStatus,entity=pcall(mw.wikibase.getEntityObject)ifwbStatus~=trueornotentityornotentity.sitelinksthenreturn''endifentity.sitelinks['ru'..projectName]thenreturnprojectInterwikiLettter..':'..entity.sitelinks['ru'..projectName].titleendifentity.claimsthenlocalpropValues=entity.claims['P103']ifpropValuesthenlocalcodes=mw.loadData('Module:Wikidata:Dictionary/P424');fori,propClaiminpairs(propValues)doifpropClaim.mainsnakandpropClaim.mainsnak.datavalueandpropClaim.mainsnak.datavalue.valueandpropClaim.mainsnak.datavalue.value["numeric-id"]thenlocallanguageWikidataId='Q'..propClaim.mainsnak.datavalue.value["numeric-id"]localcodesById=codes[languageWikidataId];if(codesById)thenforj,codeinpairs(codesById)dolocalsitelink=entity.sitelinks[code..projectName]ifsitelinkthenreturnprojectInterwikiLettter..':'..code..':'..sitelink.titleendendendendendendendreturn''endreturnp;