Wikipedia:Lua/Modul/ISO3166/de

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

ISO3166 – Modul mit Funktionen zur Konvertierung von Codes gemäß ISO 3166 für Territorien.

Historische Staaten können nur selten erfasst werden, da es die Codes erst seit den 1970er Jahren gibt und diese teilweise später erneut vergeben wurden. Aufteilungen von Staaten verweisen nicht auf aktuelle Teilstaaten, jedoch Vereinigungen. Es sind nur ISO-bekannte oder reservierte Codes erfasst, nicht aber fremder Organisationen wie IOC, da diese oft kollidieren.

Funktionen für Vorlagen

[Quelltext bearbeiten]
f
Standardfunktion: Abfrage des konvertierten Codes
  • 1 – zu konvertierender Code (Pflichtparameter)
  • 2 – gewünschtes Format für Ergebnis
    • A2 oder A3 oder NUM oder A4
    • Vorgabe: A3
  • 3 – nicht in aktuelles Territorium weiterleiten
    • 1 – historisches Gebiet
    • Vorgabe: 0 – aktueller Staat
failsafe
Versionsbezeichnung (lokal): 2019-10-14
Optionaler Zusatzparameter:
  • 1 – Mindestversionsbezeichnung oder wikidata oder ~
{{#invoke:ISO3166|failsafe}} ergibt 2019-10-14
Mit Angabe eines Parameters als Datum im ISO-Format wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
  • {{#invoke:ISO3166|failsafe|2001-01-01}} ergibt: »2019-10-14«
  • {{#invoke:ISO3166|failsafe|2099-01-01}} ergibt: »« – leer, falls Mindestversionsbezeichnung nicht erfüllt
Ist dieser Zusatzparameter das Schlüsselwort wikidata, so ist der Wert die auf Wikidata registrierte Versionsbezeichnung (2019-10-14) oder lokal, falls dort keine gefunden.
  • Ist der Zusatzparameter das Zeichen ~, so ist das Ergebnis leer, falls Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung besteht ().
Rückgabewert:
  • Leer, falls Mindestversionsbezeichnung nicht erfüllt, oder Übereinstimmung mit Wikidata
  • Versionsbezeichnung (auf Wikidata registriert:2019-10-14) bei wikidata, oder lokal falls dort keine gefunden, bzw. leer wenn synchronisiert

Beispiele (Testseite)

[Quelltext bearbeiten]

Eine Testseite illustriert praktische Beispiele.

Funktionen für Lua-Module

[Quelltext bearbeiten]

Alle oben dokumentierten Funktionen können auch über require() in andere Module eingebunden werden:

local lucky, ISO3166 = pcall( require, "Module:ISO3166" )
if type( ISO3166 ) == "table" then
    ISO3166 = ISO3166.ISO3166()
else
    -- Fehlerfall; ISO3166 enthält Fehlermeldung
    return "<span class=\"error\">" .. ISO3166 .. "</span>"
end

Danach stehen zur Verfügung:

ISO3166.f( access, alter, ancient )
  1. access – zu konvertierender Code, string
  2. alter – gewünschtes Format für Ergebnis, string, optional, A3
  3. ancient – nicht in aktuelles Territorium weiterleiten, boolean, optional, false
Rückgabewert: Code als string oder false
ISO3166.fetch( alert )
(intern) Abruf der mw.loadData(), Objekt erweitern
  1. alert – true für Abbruch mit error()
    • Vorgabe: false – leere table einfügen
ISO3166.failsafe( atleast )
  1. atleast
    optional
    nil oder Mindestversion oder Wert für "wikidata" oder ~ für Synchronisation

Interne Untermodule

[Quelltext bearbeiten]

Die globalen Daten werden pro dargestellter Seite einmalig bei Bedarf in eine table konvertiert, die über mw.loadData() der dargestellten Seite zugeordnet wird. Die Komponenten sind:

  • codes – enthält die Zuordnung von A2-Code auf Leerzeichen-getrennte Liste zugehöriger Codes des analogen Territoriums
  • reverse – enthält die Zuordnung aller Codes auf zugehörigen A2-Code
  • failsafe – Versionsbezeichnung

Intern – zur Generierung von commons:Data:ISO3166/reverse.tab genutzer Code.

ISO3166.factory()
Rückgabewert: JSON code, string
ISO3166.failsafe( atleast )

#invoke-Funktionen für Vorlagenprogrammierung:

Globale Daten

[Quelltext bearbeiten]
commons:Data:ISO3166/codes.tab
Abbildung von A2-Code auf Leerzeichen-getrennte Liste zugehöriger Codes des analogen Territoriums; wichtigster Code im Format (A2/A3/NUM) jeweis zuerst.
Verfügbar als mw.loadData()-/loadData.codes
commons:Data:ISO3166/reverse.tab
Abbildung aller Codes auf zugehörigen A2-Code
Verfügbar als mw.loadData()-/loadData.reverse
Generiert durch /maintain

Die Daten stehen zentral und aktuell allen Wikis zur Verfügung.

Nach Änderung der Codes in commons:Data:ISO3166/codes.tab Aktualisierung durch Test/maintain.

Installation auf anderen Projekten

[Quelltext bearbeiten]

Siehe englischsprachige Dokumentation.

Allgemeine Bibliothek; nicht eingegrenzt.

Abhängigkeiten

[Quelltext bearbeiten]

Keine, abgesehen von eigenen Untermodulen.