Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

ISO15924 – Schriftsysteme gemäß ISO 15924 und Texte.

Siehe Wikipedia:Technik zu technischen Einzelheiten.

Funktionen für Vorlagen

Bearbeiten
getLanguageScript
Primäres Schriftsystem zu einer Sprache ermitteln
Ergebnis: Zeichenkette mit Schriftsystem-Code gemäß ISO 15924 oder Latn
isRTL
Gehört dieser Code zu einer von rechts nach links geschriebenen Schrift?
Ergebnis: nicht leer wenn rechts nach links
isScript
Gehören alle Zeichen des Textes zu einer vorgegebenen Schrift?
  • 1 – Schriftsystem-Code gemäß ISO 15924
  • 2 – Text
Ergebnis: nicht leer wenn gültig
isTrans
Passt ein Transkriptionssystem zu einer vorgegebenen Schrift?
  • 1 – Code eines Transkriptionssystems
  • 2 – Schriftsystem-Code gemäß ISO 15924 oder Sprachcode gemäß ISO 639
  • site(optional) Schriftsystem-Code des umgebenden Wiki
Ergebnis: nicht leer wenn gültig
scriptName
Bezeichnung des Schriftsystems, möglichst auf einen Artikel verlinkt
  • 1 – Schriftsystem-Code gemäß ISO 15924
  • 2(optional) Proprietäre Zusatzinformation
  • lang(optional) Sprache des Ergebnisses, Vorgabe: Projektsprache
Ergebnis: leer wenn ungültig oder zurzeit unbekannt
showScript
Zu einem einzelnen Zeichen das Schriftsystem ermitteln
  • 1 – Zeichen
    • Zeichen direkt; ΩGrek
    • Hexcode; U+03A9Grek
Ergebnis: leer wenn ungültig oder zurzeit unbekannt; sonst Code des Schriftsystems
showScripts
Zu jedem Zeichen des Textes den Zeichencode und das Schriftsystem beigeben
  • 1 – Text
Ergebnis: Zeichenweiser Text jeweils mit Codepoint und Schriftsystem
failsafe
Versionsbezeichnung (lokal): 2020-03-10
Optionaler Zusatzparameter:
  • 1 – Mindestversionsbezeichnung oder wikidata oder ~
{{#invoke:ISO15924|failsafe}} ergibt 2020-03-10
Mit Angabe eines Parameters als Datum im ISO-Format wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
  • {{#invoke:ISO15924|failsafe|2001-01-01}} ergibt: »2020-03-10«
  • {{#invoke:ISO15924|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 (2020-03-10) 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:2020-03-10) bei wikidata, oder lokal falls dort keine gefunden, bzw. leer wenn synchronisiert

Übersichtstabellen

Bearbeiten

Funktionen für Lua-Module

Bearbeiten

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

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

Danach stehen zur Verfügung:

ISO15924.getLanguageScript( ask )
Rückgabewert: Zeichenkette
ISO15924.getScripts( analyse )
  • analyse – Zeichenkette
Rückgabewert: sequence table aus jeweils sequence table aus Codepoint und Scriptname
ISO15924.isRTL( ask )
Rückgabewert: Boolesch
ISO15924.isScript( assume, analyse )
Gehören alle Zeichen des Textes zu einer vorgegebenen Schrift?
  • assume – Schriftsystem-Code gemäß ISO 15924
  • analyse – Text als Zeichenkette oder numerischen Codepoint oder table der Einzelzeichen
Rückgabewerte: Boolesch und table
  1. Zulässig
  2. Umsetzung der Einzelzeichen von analyse
ISO15924.isTrans( ask, assign, about )
Passt ein Transkriptionssystem zu einer vorgegebenen Schrift?
  • ask – Code eines Transkriptionssystems
  • assign – Schriftsystem-Code gemäß ISO 15924 oder Sprachcode gemäß ISO 639
  • about – (optional) Schriftsystem-Code des umgebenden Wiki
Rückgabewert: Boolesch
ISO15924.scriptName( assigned, alien, add )
Bezeichnung des Schriftsystems, möglichst auf einen Artikel verlinkt
  • assigned – Schriftsystem-Code gemäß ISO 15924
  • alien – (optional) Sprache des Ergebnisses, Vorgabe: Projektsprache
  • add – (optional) Proprietäre Zusatzinformation
Rückgabewert: Zeichenkette
ISO15924.showScript( analyse )
Zum ersten Zeichen des Textes das Schriftsystem ermitteln
  • analyse – Text als Zeichenkette oder numerischen Codepoint oder table der Einzelzeichen
Rückgabewert: Zeichenkette (4 Buchstaben) oder false
ISO15924.showScripts( analyse )
Zu jedem Zeichen des Textes das Schriftsystem beigeben
  • analyse – Text als Zeichenkette oder numerischen Codepoint oder table der Einzelzeichen
Rückgabewert: Zeichenkette
ISO15924.testScripts( assume, analyse )
Wie viele Zeichen des Textes gehören zu einer vorgegebenen Schrift?
  • assume – Schriftsystem-Code gemäß ISO 15924
  • analyse – Text als Zeichenkette oder numerischen Codepoint oder table der Einzelzeichen
Rückgabewerte: Zwei Zahlen
  1. Anzahl der explizit übereinstimmenden Zeichen
  2. Anzahl der verletzenden Zeichen
ISO15924.failsafe( atleast )
  • atleastoptional
    nil oder Mindestversion oder "wikidata" oder ~ für Synchronisation
Rückgabewert: Boolesch oder Zeichenkette

Interne Untermodule

Bearbeiten

loadData

Bearbeiten

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

Dabei gibt es zwei Zugriffsarten:

  1. Modul:ISO15924/commons
    • Live-Generierung aus den globalen Daten auf Commons; bedarf ggf. eines purge.
  2. Modul:ISO15924/codes
    • Gleiche Informationen, jedoch eingefrorener Schnappschuss.
    • Bessere Performance.

Datenstruktur:

  • Der Nutzinhalt sind Komponenten mit jeweils einer table als Zuordnung:
    • cjkboolean wenn CJK
    • iso639scripttable mit beliebig vielen string – Schriftsysteme, die zu diesem Sprachcode üblicherweise passen
    • rtlboolean wenn rechts nach links
    • transtable mit beliebig vielen string – Transkriptionssysteme, die zu diesem Schriftsystem oder Sprachcode üblicherweise passen
    • unicodestable mit Unicode-Bereichen (table aus zwei Zahlen), die für ein Schriftsystem oder eine Gruppe von Sonderzeichen vorgesehen sind
    • reversetable mit zwei Zahlen als Codepoints und table mit beliebig vielen string
  • failsafestring mit lokaler Versionsbezeichnung
  • lastboolean, true falls aktuell

/maintain

Bearbeiten

Intern – zur Generierung abgeleiteter Daten etc. genutzte Funktionen.

Globale Daten

Bearbeiten
commons:Data:ISO15924.tab
Auflistung einzelner Code-Tabellen auf commons:Data:
commons:Data:ISO15924/cjk.tab
Gehört Schriftsystem zu den CJK-Sprachen?
Verfügbar als loadData .cjk
commons:Data:ISO15924/iso639script.tab
In welchen Schriftsystemen wird diese Sprache üblicherweise geschrieben?
Verfügbar als loadData .iso639script
commons:Data:ISO15924/rtl.tab
Wird Schriftsystem von rechts nach links geschrieben?
Verfügbar als loadData .rtl
commons:Data:ISO15924/trans.tab
Transkriptionssysteme, die für ein Schriftsystem oder eine Sprache vorgesehen sind
Verfügbar als loadData .trans
commons:Data:ISO15924/unicodes.tab
Unicode-Bereiche, die für ein Schriftsystem vorgesehen sind
Verfügbar als loadData .unicodes
commons:Data:ISO15924/reverse.tab
Abbildung aller Unicode-Bereiche auf zugehörige Schriftsysteme
Verfügbar als loadData .reverse
Generiert durch /maintain

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

Projektkonfiguration

Bearbeiten

Auf Modul:ISO15924/config kann optional das lokale Projekt konfiguriert werden.

table mit Komponenten:

live
true – Benutze commons → commons:Data:
Vorgabe: Schnappschuss
tmplLang
Muster für Vorlage im lokalen Projekt zur Anzeige eines Sprachnamens
table mit Komponenten:
  • title – einheitlicher Name der Vorlage
  • namePatpattern für den Name der Vorlage, mit %s für Code nach ISO 639
  • param – Parametername, für Code nach ISO 639
Beispiel: enwiki → { namePat = "lang-%s" }

Installation auf anderen Projekten

Bearbeiten

Siehe englischsprachige Dokumentation.

Verwendung

Bearbeiten

Allgemeine Bibliothek; nicht eingegrenzt.

Abhängigkeiten

Bearbeiten

Keine, abgesehen von eigenen Untermodulen.