Wikipedia:Lua/Modul/Multilingual
Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Multilingual
– Modul mit Funktionen im Zusammenhang mit Sprachen, Sprachcodes, Sprachnamen.
Funktionen für Vorlagen
Alle Funktionen haben zumindest einen unbenannten Parameter (sinnvollerweise anzugeben), und gelegentlich optional weitere. Dies ist tolerant gegenüber Leerzeichen vor oder nach dem Inhalt. Groß- und Kleinschreibung von Code-Segmenten wie de-AT
hat keine Bedeutung; Codes werden nur in Kleinschreibung zurückgegeben.
Der Rückgabewert ist eine leere Zeichenkette („nichts“), wenn der Parameterwert die Erwartung nicht erfüllt. Wenn ein Ergebnis vorhanden oder die Abfragebedingung wahr ist, resultiert mindestens ein Zeichen. Das Ergebnis beginnt oder endet nicht mit Leerzeichen.
- fair
- Formatierung des Codes gemäß RFC 5646 sowie Syntaxprüfung.
- Rückgabewert: Leer, falls ungültig.
- fallback
- Ist eine andere Sprache als Ersatz sinnvoll?
1
– Sprachcode, der eigentlich unterstützt werden soll2
– Alternativer Sprachcode als möglicher Ersatz- Ergebnis: nichts – wenn kein Ersatz bekannt; dann Englisch?
- findCode
- Ermittlung des Codes zu einem Sprachnamen (in aktueller Projektsprache).
- Ein Code selbst würde ebenfalls identifiziert werden.
- fix
- Reparaturversuch für ungültige Sprachcodes
1
– Sprachcode, der geprüft werden soll- Ergebnis: nichts – wenn unbeanstandet; sonst Vorschlag
- format
- Formatiere einen oder mehrere Sprachnamen.
1
– Sprachenliste oder Einzelspracheslang
– Sprache des Ergebnisses, wenn nicht in der jeweiligen Sprache selbst*
– eigene Sprache (Vorgabe)!
– aktuelle Projektsprache- Jeder gültige Code
shift
– Groß- und Kleinschreibungc
– Das erste Wort jeder Bezeichnung in Großschreibungd
– Alles in Kleinschreibungf
– Das erste Wort der Liste in Großschreibung, Rest Kleinschreibungm
– Das erste Wort jedes Listenelements in Kleinschreibung
link=1
– Sprachnamen verlinken, falls ermittelbarscream
– Titel einer Wartungskategorie im Fehlerfallsplit
– pattern zur Aufgliederung einer Liste; etwasplit=,
– andernfalls wird1
als Einzelsprache aufgefasstseparator
– Listentrennung bei der Ausgabe, sonstsplit
start
– Einem ersten Listenelement voranzustellende Zeichenkette (wirkungslos, wenn leere Liste resultiert)
- getBase
- Basissprache aus einem mutmaßlichen ISO-Code extrahieren.
- getName
- Welcher Name ist diesem Code zugeordnet?
2
– Sprache der Antwort*
– in der Sprache selbst (Vorgabe)!
– in der Projektsprache- Jeder ISO-Code.
- Der Rückgabewert entspricht dem der Parserfunktion
{{#language:welche|Darstellungssprache}}
.- Der momentane Wert dieser weltweiten Systemprogrammierung kann aber ggf. korrigiert sein durch Modul:Multilingual/names.
- int
- Systemnachricht in beliebige Sprache übersetzen
1
– Bezeichner der Systemnachricht2
– Sprachcode für die Übersetzung$1
,$2
, … – Parameter- Ergebnis: analog
{{int:}}
- isLang
- Kann das ein ISO-Code sein?
- Ergebnis: nichts – wenn nicht
- isLangWiki
- Kann das eine Wiki-Sprachversion sein?
- Ergebnis: nichts – wenn nicht
- isRTL
- Gehört dieser Code zu einer von rechts nach links geschriebenen Schrift?
- Ergebnis: nicht leer wenn rechts nach links
- message
- Versuche, einen mehrsprachigen Text bestmöglich in der Benutzersprache (momentan
⧼lang⧽
) darzustellenen
– englischsprachige Textversionde
– deutschsprachige Textversion…
– beliebige weitere Textversionen$1
– Parameterwert zur Ersetzung$2
– Parameterwert zur Ersetzung…
– …$9
– Parameterwert zur Ersetzung
- Ergebnis: bestmögliche Textversion mit Ersetzung von $-Platzhaltern, oder leer
- sitelink
- Verlinke lokale oder nächstmögliche fremde Seite zu einem Wikidata-Item
1
– Nummer des Items oder ID beginnend mit „Q“
- Ergebnis: Gemäß Benutzersprache bestmögliche Sprachversion, oder leer
- tabData
- Versuche, ein mehrsprachiges Textfragment aus den commons:Data:-Tabellen bestmöglich in der Benutzersprache (momentan
⧼lang⧽
) darzustellen1
– Seiten-Bezeichner auf commons:, vorangestelltesData:
und nachgestelltes.tab
sind nicht erforderlich.2
– Bezeichner des Textfragments innerhalb der Tabelle.alt
– (optional) Ersatztext, falls nichts gefunden.
- Von den Internationalisierungstabellen wird erwartet, dass sie folgende Bedingung erfüllen:
- Spalte: string, mit Bezeichner des Textfragments
- Spalte: localized, mit mehrsprachigen Textfragmenten
- userLang
- Versuche, die Benutzersprache (momentan
⧼lang⧽
) durch eine Anwendung zu unterstützen.1
– Leerzeichen-getrennte Liste der verfügbaren Codes gemäß ISO 639- Ergebnis:
- Wenn die aktuelle Benutzersprache nicht Element der Liste ist, wird auf das erste Element zurückgefallen.
- Wenn die aktuelle Benutzersprache eine Variante ist wie
de-AT
oderde-CH
und diese nicht explizit in der Liste genannt wird, wird ersatzweise die Basissprache (hierde
) versucht. - Wenn alles nicht passt und keine Liste vorgegeben wurde, ist die Ausgabe die Projektsprache (hier
bar
) und notfallsen
für Englisch.
- wikibase
- Zeige den Text zu einem Wikidata-Entity bestmöglich in der Benutzersprache (momentan
⧼lang⧽
)1
– Item-ID, beginnend mitQ
oderP
oderL
2
– (optional)1
oderdescriptions
; (Vorgabe)0
oderlabels
- Ergebnis: Hinterlegter Text, oder leer
- failsafe
- Versionsmanagement
Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung
- sicherzustellen, dass eine von einer Vorlage oder einem Modul benötigte Funktion in der lokalen Kopie eines Bibliotheksmoduls vorhanden ist, und ggf. auch in einer erforderlichen Mindestversion;
- die globale Aktualisierung und Verknüpfung von Modulen über Wikidata zu verwalten.
Die Failsafe-Schnittstelle liegt sowohl auf Ebene der Vorlagen wie auch in direktem Lua-Zugriff vor.
Die Funktionen sind im Einzelnen (nicht alle werden bereits überall in vollem Umfang unterstützt):
Wert | Ergebnis | aktuell |
---|---|---|
nichtsfalse
|
lokale Version | »2020-12-10« |
Mindestversion | Mindestversionsbezeichnung Datum im ISO-Format Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
|
|
wikidata
|
Versionsbezeichnung der globalen Mutter (d:Q47541920)
|
»2020-12-10« |
item
|
ID des Wikidata-Items
| |
~
|
Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
|
»« |
@
|
Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
|
»Q47541920« |
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false ; andernfalls die angegebene Zeichenkette.
|
Beispiele (Testseite)
Eine Testseite illustriert praktische Beispiele.
Allgemeine Hinweise zur Einbindung von Modulen
Eine Einbindung erfolgt jeweils im Format
{{#invoke: Multilingual |
Funktionsname | Wert1 | Wert2 | NameX=Wert … }}
Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.
Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=
Wert gearbeitet werden.
Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.
{{Lua-Vorlage}}
in der Dokumentationsseite eingebunden werden.
- Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
- Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
- Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.
Zu weiteren Informationen siehe Hilfe:Lua.
Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.