Modul:Infobox mapframe/lokal
| Dokumentatioun vum Modul:Infobox mapframe/lokal | [liesen] [änneren] [Versioune weisen] |
D'Dokumentatioun fir dëst Modul steet hei ënnendrënner an ass vun der Säit Modul:Infobox mapframe/lokal/doc hei agebonne ginn. Kuckt och: Hëllef:Moduler.
Dëse Modul ass eng lokal Erweiderung vum synchroniséierte Modul:Infobox mapframe.
E rifft de synchroniséierte Modul op an ergänzt lokal Funktiounen, déi an der Schabloun:Infobox Uertschaft Lëtzebuerg gebraucht ginn.
De Modul soll verhënneren, datt lokal Ännerunge bei enger Synchronisatioun vum Haaptmodul iwwerschriwwe ginn.
Funktiounen
[Quelltext änneren]main
[Quelltext änneren]{{#invoke:Infobox mapframe/lokal|main}}
Rifft d'Funktioun main aus dem synchroniséierte Modul:Infobox mapframe op.
Dobäi ginn déi englesch Ënnerhaltskategorien duerch lokal Kategorien ersat:
[[Category:Pages using infobox mapframe with missing coordinates]]
→ [[Kategorie:Säiten, déi Infobox mapframe ouni Koordinate benotzen]]
[[Category:Pages using infobox mapframe with no geometry]]
→ [[Kategorie:Säiten, déi Infobox mapframe ouni Geometrie benotzen]]
[[Category:Pages using infobox mapframe with forced centering]]
→ [[Kategorie:Säiten, déi Infobox mapframe mat forcéierter Zentréierung benotzen]]
[[Category:Pages using infobox mapframe without shape links in Wikidata]]
→ [[Kategorie:Säiten, déi Infobox mapframe ouni Shape-Linken op Wikidata benotzen]]
Dës Funktioun gëtt an der Infobox esou opgeruff:
| data25 = {{#invoke:Infobox mapframe/lokal|main}}
hasShape
[Quelltext änneren]{{#invoke:Infobox mapframe/lokal|hasShape}}
Kontrolléiert, ob am verlinkte Wikidata-Element op d'mannst eng vun dëse Wikidata-Eegenschaften disponibel ass:
D'Funktioun gëtt follgend Resultater zeréck:
| Resultat | Bedeitung |
|---|---|
yes
|
P402 oder P3896 ass disponibel. |
| eidele Wäert | Et ass keng Shape-Angab disponibel. |
showStaticMap
[Quelltext änneren]{{#invoke:Infobox mapframe/lokal|showStaticMap
|Kaart=
}}
Bestëmmt, ob nieft der interaktiver Kaart och eng statesch Kaart mat der Lag ugewise soll ginn.
Aktuell gëlle follgend Reegelen:
| Situatioun | Resultat |
|---|---|
De Parameter Kaart ass lokal ausgefëllt
|
yes
|
| P402 oder P3896 ass op Wikidata disponibel | eidele Wäert |
| Et ass keng Shape-Angab disponibel | yes
|
Dat bedeit:
- eng Kaart, déi lokal agesat ass, gëtt ëmmer ugewisen;
- bei enger Shape iwwer P402 oder P3896 gëtt déi automatesch statesch Kaart ënnerdréckt;
- bei enger einfacher Punktkaart iwwer P625 kann déi statesch Kaart weider ugewise ginn.
Beispill aus der Infobox:
{{#ifeq:
{{#invoke:Infobox mapframe/lokal|showStaticMap
|Kaart={{{Kaart|}}}
}}
|yes
|<!-- statesch Kaart -->
}}
label
[Quelltext änneren]{{#invoke:Infobox mapframe/lokal|label|fr}}
Gëtt de Label vum Wikidata-Element dee verlinkt ass an enger bestëmmter Sprooch (Däitsch oder Franséisch) zeréck.
Den éischten onbenannte Parameter ass de Sproochecode.
Beispiller:
{{#invoke:Infobox mapframe/lokal|label|fr}}
{{#invoke:Infobox mapframe/lokal|label|de}}
Wann an där Sprooch kee Label existéiert oder d'Säit net mat engem Wikidata-Element verlinkt ass, gëtt en eidele Wäert zeréckginn.
otherLanguageName
[Quelltext änneren]{{#invoke:Infobox mapframe/lokal|otherLanguageName
|Sproochecode
|lokalen Numm
|lëtzebuergeschen Numm
}}
Bestëmmt den Numm vun enger Uertschaft an enger anerer Sprooch.
D'Funktioun:
- benotzt als éischt den Numm, dee lokal agesat ass;
- benotzt, wann dee feelt, de Wikidata-Label an der gewielter Sprooch;
- läscht iwwerschësseg Sputten um Ufank an um Enn;
- vergläicht de friemsproochegen Numm mam lëtzebuergeschen Numm;
- gëtt nëmmen en Numm zeréck, wann en net eidel an net identesch mam lëtzebuergeschen Numm ass.
Parameteren
[Quelltext änneren]| Positioun | Parameter | Beschreiwung |
|---|---|---|
| 1 | Sproochecode | Zum Beispill fr oder de.
|
| 2 | Lokalen Numm | Wäert aus dem Infobox-Parameter, zum Beispill
|
| 3 | Lëtzebuergeschen Numm | Numm, mat deem de friemsproochegen Numm verglach gëtt. |
Beispill:
{{#invoke:Infobox mapframe/lokal|otherLanguageName
|fr
|{{{Numm (Franséisch)|}}}
|{{If empty|{{{Numm|}}}|{{PAGENAMEBASE}}}}
}}
Wann de lokale franséischen Numm eidel ass, gëtt de franséische Wikidata-Label benotzt.
Wann de franséischen Numm identesch mam lëtzebuergeschen Numm ass, gëtt näischt zeréckginn.
Dës Funktioun gëtt an der Infobox benotzt, fir déi franséisch an däitsch Nimm nëmmen dann unzeweisen, wa se wierklech vum lëtzebuergeschen Numm ofwäichen.
Wikidata-Eegenschaften
[Quelltext änneren]De Modul benotzt oder kontrolléiert dës Wikidata-Eegenschaften:
| Eegenschaft | Benotzung |
|---|---|
| P402 | OpenStreetMap-Relatioun als Shape-Quell. |
| P3896 | Geoshape. |
| P625 | Gëtt vum synchroniséierte Mapframe-Modul fir Punktkaarte benotzt. |
D'Sproochelabele ginn direkt aus de Labele vum verlinkte Wikidata-Element gelies.
Ofhängegkeeten
[Quelltext änneren]De Modul hänkt vun dësem Modul of:
Déi lokal Funktioune ginn ënner anerem an dëser Schabloun benotzt:
Ënnerhalt
[Quelltext änneren]De synchroniséierte Modul:Infobox mapframe soll net lokal geännert ginn, well déi Ännerunge bei enger neier Synchronisatioun verluer goe kënnen.
Lokal Upassunge sollen an dësem Wrapper-Modul gemaach ginn.
Wann d'Reegelen iwwer d'Unweise vun der statescher Kaart geännert ginn, soll haaptsächlech d'Funktioun showStaticMap ugepasst ginn.
local p = {}
-- Mat der Hëllef vun ChatGPT entwéckelt; manuell iwwerpréift a getest (Juli 2026).
-- Kontrolléiert, ob eng Wikidata-Eegenschaft e brauchbare Wäert huet.
local function hasProperty(itemId, property)
if not itemId then
return false
end
local statements = mw.wikibase.getBestStatements(itemId, property)
for _, statement in ipairs(statements or {}) do
local snak = statement.mainsnak
if snak
and snak.snaktype == 'value'
and snak.datavalue
and snak.datavalue.value ~= nil
then
return true
end
end
return false
end
-- Gëtt true zeréck, wann P402 oder P3896 disponibel ass.
local function itemHasShape(itemId)
return hasProperty(itemId, 'P402')
or hasProperty(itemId, 'P3896')
end
-- Rifft de synchroniséierten Haaptmodul op an ersetzt
-- déi englesch Tracking-Kategorien duerch lokal Kategorien.
function p.main(frame)
local output = require('Module:Infobox mapframe').main(frame)
if type(output) == 'string' then
output = output:gsub(
'%[%[Category:Pages using infobox mapframe with missing coordinates%]%]',
'[[Kategorie:Säiten, déi Infobox mapframe ouni Koordinate benotzen]]'
)
output = output:gsub(
'%[%[Category:Pages using infobox mapframe with no geometry%]%]',
'[[Kategorie:Säiten, déi Infobox mapframe ouni Geometrie benotzen]]'
)
output = output:gsub(
'%[%[Category:Pages using infobox mapframe with forced centering%]%]',
'[[Kategorie:Säiten, déi Infobox mapframe mat forcéierter Zentréierung benotzen]]'
)
output = output:gsub(
'%[%[Category:Pages using infobox mapframe without shape links in Wikidata%]%]',
'[[Kategorie:Säiten, déi Infobox mapframe ouni Shape-Linken op Wikidata benotzen]]'
)
end
return output
end
-- Kann an enger Schabloun benotzt ginn, fir festzestellen,
-- ob P402 oder P3896 am Wikidata-Element steet.
--
-- Resultat:
-- yes = Shape disponibel
-- eidel = kee Shape disponibel
function p.hasShape(frame)
local itemId = frame.args.id
if not itemId or itemId == '' then
itemId = mw.wikibase.getEntityIdForCurrentPage()
end
if itemHasShape(itemId) then
return 'yes'
end
return ''
end
-- Bestëmmt, ob déi statesch Kaart gewise soll ginn.
--
-- Aktuell Reegelen:
-- 1. Eng lokal |Kaart= ass aginn:
-- Déi statesch Kaart gëtt ëmmer gewisen.
--
-- 2. P402 oder P3896 ass disponibel:
-- Déi statesch Kaart gëtt net gewisen.
--
-- 3. Kee Shape disponibel:
-- Déi statesch Kaart gëtt gewisen.
--
-- Resultat:
-- yes = statesch Kaart weisen
-- eidel = statesch Kaart net weisen
function p.showStaticMap(frame)
local localMap = mw.text.trim(frame.args.Kaart or frame.args.map or '')
if localMap ~= '' then
return 'yes'
end
local itemId = frame.args.id
if not itemId or itemId == '' then
itemId = mw.wikibase.getEntityIdForCurrentPage()
end
if itemHasShape(itemId) then
return ''
end
return 'yes'
end
-- Gëtt de Wikidata-Label an enger bestëmmter Sprooch zeréck.
function p.label(frame)
local lang = mw.text.trim(frame.args[1] or '')
local itemId = mw.wikibase.getEntityIdForCurrentPage()
if lang == '' or not itemId then
return ''
end
local entity = mw.wikibase.getEntity(itemId)
if not entity
or not entity.labels
or not entity.labels[lang]
then
return ''
end
return entity.labels[lang].value or ''
end
function p.labelsDiffer(frame)
local lang = mw.text.trim(frame.args[1] or '')
local localName = mw.text.trim(frame.args[2] or '')
if lang == '' then
return ''
end
local itemId = mw.wikibase.getEntityIdForCurrentPage()
if not itemId then
return ''
end
local entity = mw.wikibase.getEntity(itemId)
if not entity or not entity.labels or not entity.labels[lang] then
return ''
end
local label = mw.text.trim(entity.labels[lang].value or '')
if label == '' then
return ''
end
if label == localName then
return ''
end
return label
end
function p.otherLanguageName(frame)
local lang = mw.text.trim(frame.args[1] or '')
local manualName = mw.text.trim(frame.args[2] or '')
local luxName = mw.text.trim(frame.args[3] or '')
if lang == '' then
return ''
end
local foreignName = manualName
-- Wann näischt lokal aginn ass, gëtt de Wikidata-Label benotzt.
if foreignName == '' then
local itemId = mw.wikibase.getEntityIdForCurrentPage()
if not itemId then
return ''
end
local entity = mw.wikibase.getEntity(itemId)
if not entity
or not entity.labels
or not entity.labels[lang]
then
return ''
end
foreignName = mw.text.trim(entity.labels[lang].value or '')
end
-- Näischt weisen, wann de frieme Numm eidel oder identesch ass.
if foreignName == '' or foreignName == luxName then
return ''
end
return foreignName
end
return p
