Modul:ISO 3166-2
Dieses Modul ist getestet und für den projektweiten Gebrauch geeignet. Es kann in Vorlagen benutzt und auf Hilfeseiten erläutert werden. Entwicklungen an dem Modul sollten auf ISO 3166-2/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
Submodule
- Modul:ISO 3166-2/Params – enthält ein mehrdimensionales Array mit allen erlaubten Parametern für jede Funktion/Vorlage und ihre Standardbelegung.
Funktion
Dieses Modul enthält Funktionen zur Abfragen von Provinznamen und ihrem ISO 3166-2. Es kann ebenfalls zum Übersetzen von Provinznamen in andere Sprachen genutzt werden. Vorlagenprogrammierer können damit den deutschen oder englischen Provinznamen bei gegebenem ISO 3166-2-Code abfragen oder beispielsweise in Provinzartikel automatisiert Karten (bei denen der Dateiname im Regelfall die englische Bezeichnung enthält) einbinden.
Verwendung in Vorlagen
- {{ISO 3166-2}} – Die allgemeine Funktion liefert den Namen einer Region in gewünschter Sprache zu einem ISO-Code und umgedreht. Auch die Übersetzung von einer Sprache in eine andere ist möglich.
- {{ISO 3166-2 nach DE}} – Liefert den deutschen Namen einer Region bei gegebenem ISO-Code
- {{ISO 3166-2 nach EN}} – Liefert den englischen Namen einer Region bei gegebenem ISO-Code
- {{BASEPAGENAME/<Sprachcode>}} und {{BASEPAGENAMEX/<Sprachcode>}} – Liefert den englischen Namen des Region, in deren Artikel die Vorlage eingebunden ist.
Allgemein gültige Parameter
Die allgemein gültigen Parameter kann man sowohl innerhalb der Vorlage in der Parserfunktion invoke
benutzen, als auch innerhalb des Artikels der Vorlage selbst übergeben. Der Paramter, der bei der Einbindung der Vorlage benutzt wird, hat dabei Vorrang. So kann man bestimmte Funktionalitäten für den generellen Gebrauch der Vorlage aktivieren (über invoke
) und im Einzelfall im Artikel abschalten (bei der Verwendung der Vorlage).
|ignore_errors=
auf 1 oder true gesetzt, werden die Ausgabe der Fehlermeldungen der Funktionen unterdrückt. Standardmäßig werden die Fehler angezeigt.|no_category=
auf 1 oder true gesetzt, werden die Artikel bei Fehlermeldungen des Moduls einer Fehlerkategorie zugeordnet. Standardmäßig werden Fehlermeldungen in die Kategorie Fehlerberichte des Moduls ISO 3166-2 eingefügt. Wurden unbekannte Parameter verwendet landen die Artikel zusätzlich in der Kategorie Vorlagen mit unbekannten Parametern.|error_category=
gibt den Namen einer Fehlerkategorie an, in der der Artikel bei auftretenden Fehlern einsortiert wird. Standardmäßig ist das Fehlerberichte des Moduls ISO 3166-2.
Benötigte weitere Module
- Die obige Dokumentation wurde aus der Seite Modul:ISO 3166-2/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
local check = require('Modul:Check2')
local p = {}
function p.arguments ( paraFrame , paraParams, paraOption )
argsParent = paraFrame:getParent().args
argsFrame = paraFrame.args
local value = argsParent[paraOption]
if value == nil then value = argsFrame[paraOption] end
if value == nil then value = paraParams[paraOption] end
return value
end
function p.translateBasic ( isoSet, region, from, to )
local result = {}
result[1] = false
result[2] = 'Kein Eintrag für Region ' .. region .. ' gefunden'
for key,value in pairs ( isoSet ) do
if ( value[from] == region ) then
if ( value[to] ~= nil ) then
result[1] = true
result[2] = value[to]
else
result[1] = false
result[2] = 'Eintrag gefunden, aber Sprache ' .. to .. ' ist nicht definiert.'
end
end
end
return result
end
function p.translate ( frame )
-- zulässige Parameter einlesen
params = mw.loadData('Modul:ISO 3166-2/Params')
funcParams = params['translate']
-- Argumente holen, die der Vorlage übergeben wurden
args = frame:getParent().args
-- Argumente auswerten, auf Vorhandensein prüfen und ggf. mit Standardwerten belegen
local tld = string.lower ( p.arguments ( frame, funcParams, 'tld') )
local region = p.arguments ( frame, funcParams, 'region')
local from = p.arguments ( frame, funcParams, 'von')
local to = p.arguments ( frame, funcParams, 'nach')
-- ISO-Angabe in Großbuchstaben wandeln
if ( from == 'ISO3166-2' ) then region = string.upper ( region ) end
-- Variable für die Ausgabe erzeugen
local display = ''
local errorStr = ''
local resultSet = {}
local success, countryList = pcall(mw.loadData, 'Modul:ISO 3166-2/' .. tld)
if not success then
-- return check._error ( 'Landesinfo zu ' .. tld .. ' existiert nicht. Bitte [[Modul:ISO 3166-2/' .. tld .. ']] anlegen.', 'ISO 3166-2' )
return 'Landesinfo zu ' .. tld .. ' existiert nicht. Bitte [[Modul:ISO 3166-2/' .. tld .. ']] anlegen.'
else
resultSet = p.translateBasic ( countryList, region, from, to )
if resultSet[1] then
display = resultSet[2]
else
errorStr = errorStr .. check._error ( resultSet[2], 'ISO 3166-2' )
end
-- Fehlertext und Ausgabe zurückgeben
return errorStr .. check._testParams ( args, funcParams, 'ISO 3166-2' ) .. display
end
end
function p.codetable ( frame )
-- zulässige Parameter einlesen
params = mw.loadData('Modul:ISO 3166-2/Params')
funcParams = params['translate']
-- Argumente holen, die der Vorlage übergeben wurden
args = frame:getParent().args
-- Argumente auswerten, auf Vorhandensein prüfen und ggf. mit Standardwerten belegen
local tld = string.lower ( p.arguments ( frame, funcParams, 'tld') )
-- Variable für die Ausgabe erzeugen
local display = ''
local errorStr = ''
local thead = true
local success, countryList = pcall(mw.loadData, 'Modul:ISO 3166-2/' .. tld)
if not success then
-- return check._error ( 'Landesinfo zu ' .. tld .. ' existiert nicht. Bitte [[Modul:ISO 3166-2/' .. tld .. ']] anlegen.', 'ISO 3166-2' )
return 'Landesinfo zu ' .. tld .. ' existiert nicht. Bitte [[Modul:ISO 3166-2/' .. tld .. ']] anlegen.'
else
display = '<table id="iso3166-2_' .. tld .. '" class="prettytable sortable">'
for key,value in pairs ( countryList ) do
if thead then
display = display .. '<tr>'
for key2,value2 in pairs ( value ) do
display = display .. '<th>' .. key2 .. '</th>'
end
display = display .. '</tr>'
for key2,value2 in pairs ( value ) do
display = display .. '<td>' .. value2 .. '</td>'
end
thead = false
else
display = display .. '<tr>'
for key2,value2 in pairs ( value ) do
display = display .. '<td>' .. value2 .. '</td>'
end
display = display .. '</tr>'
end
end
display = display .. '</table>'
-- Fehlertext und Ausgabe zurückgeben
return errorStr .. check._testParams ( args, funcParams, 'ISO 3166-2' ) .. display
end
-- Fehlertext und Ausgabe zurückgeben
return errorStr .. check._testParams ( args, funcParams, 'ISO 3166-2' ) .. display
end
return p