Modul:Landesbezeichnung
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 Landesbezeichnung/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
Dieses Modul enthält Funktionen für Vorlagen die Landesbezeichnungen verwenden. Man kann die Landesbezeichnungen einfach ausgeben oder sich für die Weiterverarbeitung in anderen Vorlagen und Modulen erzeugen lassen, um z.B. standardisierte Datei-, Artikel- und Kategoriennamen auf Wikivoyage oder Commons zu generieren.
Die Funktionen holen sich die Argumente aus der Vorlage und müssen beim Modulaufruf nicht nochmals übergeben werden. Vergessene Parameter werden mit Standardwerten belegt, unbekannte Parameter werden als Fehlermeldung zusätzlich mit im Artikel ausgegeben.
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 Landesbezeichnung 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 Landesbezeichnung.
Submodule
- Modul:Landesbezeichnung/Params – enthält ein mehrdimensionales Array mit allen erlaubten Parametern für jede Funktion/Vorlage und ihre Standardbelegung.
- Modul:Landesbezeichnung/de, Modul:Landesbezeichnung/en – Sie enthalten die Namen der Länder in den Landessprachen.
Funktionen
nameTLD
Die Funktion gibt den Landesnamen zu einer Top-Level-Domain aus. Sie erwartet von der aufrufenden Vorlage folgende Parameter:
|sprache=
Sprachcode für die Sprache, in der die Landesbezeichnungen ausgegeben werden (Standard: de)|tld=
Top-Level-Domain des Landes
Vorlagen
- Syntax:
{{Landesbezeichnung|sprache=Sprachcode|tld=Top-Level-Domain}}
- Lua-Funktion: p.nameTLD
Benötigte weitere Module
- Die obige Dokumentation wurde aus der Seite Modul:Landesbezeichnung/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 = {}
local nameList = {
de = 'deutsch',
en = 'englisch'
}
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.nameTLD ( frame )
-- zulässige Parameter einlesen
params = mw.loadData('Modul:Landesbezeichnung/Params')
funcParams = params['nameTLD']
-- Argumente holen, die der Vorlage übergeben wurden
args = frame:getParent().args
-- Argumente auswerten, auf Vorhandensein prüfen und ggf. mit Standardwerten belegen
local lang = p.arguments ( frame, funcParams, 'sprache')
local tld = p.arguments ( frame, funcParams, 'tld')
-- Variable für die Ausgabe erzeugen
local display = ''
local errorStr = ''
-- Ist die Namensliste bekannt?
if nameList[lang] == nil then
errorStr = check._error ('Landesbezeichungen sind für die Sprache ' .. lang .. ' nicht eingerichtet. Bitte [[Modul:Landesbezeichnung/' .. lang .. ']] anlegen.', 'Landesbezeichnung' )
end
-- Ausgabe der Landesbezeichnung
countryList = mw.loadData('Modul:Landesbezeichnung/'..lang)
countryName = countryList[tld];
if countryName == nil then
countryName = ''
-- Nochmal in den Provinzlisten nachsehen
local province = require('Modul:ISO 3166-2')
local country = string.lower ( string.sub(tld,1,2) )
local success, countryList = pcall(mw.loadData, 'Modul:ISO 3166-2/' .. country )
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 ' .. country .. ' existiert nicht. Bitte [[Modul:ISO 3166-2/' .. country .. ']] anlegen.'
else
local result = province.translateBasic ( countryList, string.upper ( tld ), 'ISO3166-2', lang )
if ( result[1] ) then
countryName = result[2]
else
errorStr = errorStr .. check._error ('Übergebene Top-Level-Domain ' .. tld .. ' ist nicht bekannt', 'Landesbezeichnung' )
errorStr = errorStr .. check._error (result[2] .. '(country=' .. country .. ', lang=' .. lang .. ')', 'ISO 3166-2' )
end
end
end
display = countryName
-- Fehlertext und Ausgabe zurückgeben
return errorStr .. check._testParams ( args, funcParams, 'Landesbezeichnung' ) .. display
end
return p