Wikipedia:Technik/MediaWiki/Sprachen
Sprachcodes und Sprachnamen
Diese Projektseite stellt Informationen zur Lokalisierung innerhalb der MediaWiki-Software zusammen, die Sprachcodes oder Sprachnamen betreffen.
Sprachcodes
Grundsätzlich folgen die Sprachcodes der ISO 639.
Einsatzgebiete:
- Für mehrsprachige Wiki-Projekte (also mehrere Sprachen im selben Wiki; bei zentralen Projekten).
- Wikipedia:Sprachen – alle Sprachversionen von Wikipedia-Projekten (als jeweils einsprachiges Projekt).
- Für die Sprache der Benutzeroberfläche.
- Für den Inhalt ganzer Seiten.
- Mit Attribut
lang
von einzelnen HTML-Elementen in der Seite.
Dazu gehören mittels ISO 3166 vorgesehene Erweiterungen für landesspezifische Sprachvarianten. Bekannt sind zu den Wikis:
de-AT de-CH
en-CA en-GB en-US
kk-CN kk-KZ kk-TR
ko-KP
nds-NL
pt-BR
zh-CN zh-HK zh-MO zh-MY zh-SG zh-TW
Für Schriftsysteme wird die ISO 15924 angewendet. Sie legt Vier-Buchstaben-Codes fest, namentlich:
Latn
– LateinischCyrl
– Kyrillisch (modern)Grek
– GriechischArab
– ArabischHans
– Han (simplified)Hant
– Han (traditional)Jpan
– Han + Hiragana + KatakanaDeva
– Devanagari
Weitere Details unter Schriftsysteme.
Über ISO 639 hinaus gibt es sinngemäße Erweiterungen:[1]
- Eigene Sprachdefinitionen:
simple
– Einfaches Englischtokipona
– Toki Pona; seit Januar 2022 mittok
auch ein ISO-Code
- Eigene Sprachvarianten:
be-tarask
– Weißrussisch (Taraschkewiza) – lokalisierter Projektbezeichnerbe-x-old
– Weißrussisch (Taraschkewiza) – erster Projektbezeichnerlij-mc
- Monegassischpap-aw
- Papiamentu auf Arubazh-classical
– klassisches Chinesischzh-min-nan
– Min Nanzh-yue
– Kantonesisch
- Eigene Sprachversionen:
de-formal
– Formelles Deutsch (Anrede „Sie“); auch syntaktisch korrekt alsde-x-formal
es-formal
hu-formal
nl-informal
zh-classical
- Eigene Sprachcodes:
bat-smg
– Schemaitisch (eigentlichsgs
)cbk-zam
– Chavacano / Chabacanofiu-vro
– Võro (eigentlichvro
);fiu
: „Finno-ugrisch“map-bms
– Banyumasan (Javanisch)roa-rup
– Aromunisch (eigentlichrup
);roa
: „Romanische Sprachen“roa-tara
– Tarandíne;roa
: „Romanische Sprachen“
- Alternative Schriftsysteme:
ady-Cyrl
aeb-Arab aeb-Latn
ban-Bali
bbc-Latn
crh-Cyrl crh-Latn
gan-Hans gan-Hant
gom-Deva gom-Latn
hif-Latn
ike-Cans ike-Latn
ja-Hani
,ja-Hira
,ja-Hrkt
,ja-Kana
kbd-Cyrl
kk-Arab kk-Cyrl
ks-Arab ks-Deva
ku-Arab ku-Latn
ms-Arab
– Malaiisch, arabisches Schriftsystemnan-Hani
non-Runr
– Altnordisch (Runen-Schrift)osa-Latn
ruq-Cyrl ruq-Latn
se-FI se-NO se-SE
shi-Latn shi-Tfng
shy-Latn
skr-Arab
sr
– Serbischsr-EC
– Serbisch/Kyrillisch (wikipedianisch; EC=Kyrillisch-Ekavisch)sr-EL
– Serbisch/Lateinisch (wikipedianisch)
tg-Cyrl tg-Latn
tly-Cyrl
tt-Cyrl tt-Latn
ug-Arab ug-Latn
uz-Cyrl uz-Latn
zh-Hans zh-Hant
- Sonderfälle (
qq
ist für private Zwecke reservierter Code-Bereich):qqx
– Darstellung aller Systemnachrichten durch ihren Bezeichner statt des ersetzten Textesqqq
– Kurzbeschreibung zu einer Systemnachricht abrufen: translatewiki:MediaWiki:accmailtext/qqq
Bei allen Sprachen bedeutet eine unterstützte Variante formal
(wie de-formal
), dass mit „Sie“ angesprochen wird; Standard ist in der Regel das „Du“ (informal
).
In der Darstellung nach außen soll
- der Basiscode in Kleinbuchstaben notiert sein.
- Zusätze für Staaten (DE) nur in Großbuchstaben,
- Zusätze für Schriftsysteme beginnend mit Großbuchstaben geschrieben werden.
Inhaltlich sind Groß- und Kleinbuchstaben nicht bedeutungstragend; Software muss jede Notation erkennen und derselben Bedeutung zuordnen. Intern werden deshalb oft ausschließlich Kleinbuchstaben verwendet, und beim Zugriff auf ein Element dann vorsorglich alles in Kleinbuchstaben umgewandelt.
Listen häufiger Codes:
- Liste der ISO-639-1-Codes (≈184 Sprachencodes, 2 Buchstaben)
- Liste der ISO-639-2-Codes (≈502 Sprachencodes, 3 Buchstaben)
- Liste der ISO-639-5-Codes (≈115 Sprachfamiliencodes, 3 Buchstaben)
Konflikt
Betreffend des Codes als
gibt es zwei Interpretationen:
- gemäß ISO 639 Toskisch (albanisch Toskërishtja)
- bei der WMF als alemannisch – dies war vor der Standardisierung durch die ISO bereits festgelegt worden.
Sprachnamen
Die Sprachnamen („Deutsch“) werden im Wiki an mehreren Stellen sichtbar:
- Bei der Auswahl der Sprache der Benutzeroberfläche.
- In der Darstellung der Interlanguages, namentlich auf Wikidata.
- In der Parserfunktion
{{#language:welche|Darstellungssprache}}
Die Textbausteine für den Namen der Sprache speisen sich aus verschiedenen Quellen:
- languages/data/Names.php – Name der Sprache in ihrer eigenen Sprache selbst
- CldrNames – CLDR (mw:Extension:CLDR)
- CldrNames/CldrNamesDe.php – zurzeit 606 Namen auf deutsch
- LocalNames/LocalNamesEn.php – auch beachtenswert: LocalNames
Insgesamt sind fast 700 Zuordnungen von Codes und Sprachnamen bekannt; im Prinzip mehr, als es Sprachversionen der Wikis gibt oder die dem Incubator entschlüpft wären, zumal Varianten innerhalb derselben Wiki-Inhaltssprache auftreten können. Die kreuzweise Zuordnung ist jedoch nicht vollständig; bei exotischen Sprachen existiert oft nur wenig mehr als die englische und die Eigenbezeichnung.
CLDR
Allgemein wird die Definition bevorzugt über die nichtkommerzielle projektübergreifende Plattform Common Locale Data Repository (CLDR) bezogen.
- Jeder kann Anregungen zum CLDR einbringen.
- Die WMF ist Unicode Consortium Liaison Member und müsste bereits einen Contributor Account für CLDR haben, oder könnte leicht einen Status als Vorschlagender erhalten, womöglich auch den eines Redakteurs oder Reviewers zur verantwortlichen Prüfung von Vorschlägen.
- Upstream nennt man die Meldung eines Änderungswunsches aus der Wiki-Welt an CLDR.
- translatewiki:CLDR könnte daran beteiligt sein.
- phab:T39704 beschäftigt sich bereits mit dieser Angelegenheit.
- Wenn MW nicht willig ist, das gebündelt zu übernehmen und zuvor in den Wikis einen Review der internen Vorschläge abzuhalten, dann kann man das natürlich auch als Einzelperson machen: Anmelden
In gewissen Abständen wird der Bestand auf CLDR in die wirksame Definition auf den Wiki-Servern eingepflegt.
- CldrNames – alle momentan wirksamen Definitionen
- Das letzte bekannte Update war: CLDR 44, Januar 2024, Updates meist etwa halbjährlich.
- Beispiel:
de
– CldrNames/CldrNamesDe.php;f588bda
- Beispiel:
Aktuelle Werte
- Einige Übersichten: Alle Einzelsprachen
- Wer für eine noch nicht angelegte Sprache eine Übersicht haben möchte, kann eine entsprechende Seite anlegen und den Sprachcode gemäß Muster der anderen Seiten einfügen.
- Synopsis stellt die momentanen Werte und Änderungsvorschläge zusammen.
- Module:Multilingual/cldr – CLDR mirror
Pflege und Ausbau
- de icu-project.org = CLDR – 608 Namen
- Modul:Multilingual/names – Änderungsvorschläge
Seiteninhaltssprache
Anfang 2017 wurde ein Sprachcode pro Einzelseite (zunächst für mehrsprachige/zentrale Projekte) definiert.
- Bei einsprachigen Wikis ist die Vorgabe die Projektsprache.
- In zentralen Projekten ist das
en
(englisch). - Parserfunktion:
{{CONTENTLANGUAGE}}
- In zentralen Projekten ist das
- In zentralen mehrsprachigen Wikis werden Wikitext-Seiten spezifische Seiteninhaltssprachen zugewiesen.
- Entsprechenden Unterseiten im MediaWiki-Namensraum wird immer eine abweichende Seiteninhaltssprache zugewiesen, bei anderen Namensräumen ist das in einsprachigen Wikis bislang nicht der Fall.
- Seiten, die nicht dem Seiteninhaltsmodell
wikitext
entsprechen, also meist Programmcodes enthalten, erhalten die Seiteninhaltsspracheen
und bewirken dadurch ggf. lateinische Schrift von links nach rechts.
Die folgenden Funktionen ermöglichen die Nutzung der aktuellen Seiteninhaltssprache:
- Parserfunktion:
{{PAGELANGUAGE}}
- Lua:
mw.title.getCurrentTitle().pageLang
- Suche:
inlanguage:
In den Seiteninformationen (Basisinformationen) wird der jeweilige Status angezeigt.
Darstellung der Wiki-Seite
Es gibt zwei Möglichkeiten, wie sich das Erscheinungsbild einer Wiki-Seite (üblicherweise nur der Portal-Rahmen, gelegentlich auch Inhalte, insbesondere alle Spezialseiten) an Sprachen anpassen kann:
- Konto-Einstellung (Registerkarte „Benutzerdaten“)
- oder mit URL-Parameter
uselang=
an die URL angehängt.
Im Fall der Konto-Einstellung kann in jedem Wiki mit der Spezialseite Special:MyLanguage/
Seitenname versucht werden, eine der bevorzugten Sprache angepasste Seitenversion zu erhalten. Ist diese nicht vorhanden, wird die Basis-Version in der Standardsprache des Projektes angezeigt.
In der Programmierung werden alle Sprachcodes nur in ihrer auf Kleinbuchstaben standardisierten Form benutzt. Dadurch werden unbemerkt fehlschlagende Vergleiche vermieden. Zur Darstellung für Menschen werden hingegen Abwandlungen durch Ländercodes in Großbuchstaben (wie auch der erste Buchstabe eines Schriftbezeichners) präsentiert.
Es gibt die nachfolgenden Techniken, um sich an die aktuell angeforderte Seitensprache anzupassen:
- Unterseiten je nach Sprachcode
- Der Sprachcode kann an den Namen jeder Wikitext-Seite angehängt werden.
- Wikipedia:Anfragen/en ist eine Variante für englischsprachige Benutzer. Sie wird bei Verlinkung von Special:MyLanguage/Wikipedia:Anfragen angezeigt, falls das Konto für „englisch“ konfiguriert wurde.
- Parserfunktion
{{int:}}
für vorhandene Systemnachrichten - Lua-Bibliothek
mw.message
zur analogen Auswertung auch beliebig konstruierter Nachrichten
Die lokalen Systemnachrichten können die Methodik der Unterseiten nutzen, um sprachabhängige Alternativen zu zeigen.
- MediaWiki:Sp-contributions-footer/en ist eine englischsprachig angepasste Version der Fußleiste auf Spezial:Beiträge/Beispielnutzer (Test).
- Fundamentale Elemente der Seitennavigation stellen wir auch englischsprachig bereit.
- Im Projekt translatewiki:, das für alle Wikis alle Standard-Übersetzungen bereitstellt,[2] wird die Unterseiten-Methodik ebenfalls benutzt:
- translatewiki:MediaWiki:Jan – abgekürzter Monatsname „Januar“ (englischsprachige Basisversion, damit eigentlich von January)
- translatewiki:MediaWiki:Jan/de-at – österreichisch, von „Jänner“
- translatewiki:MediaWiki:Jan/ru – russisch, in kyrillischer Schrift
- translatewiki:MediaWiki:Jan/de – deutsch textgleich mit englisch, jedoch mit einem Abkürzungspunkt
Die nachstehenden Sprachcodes sind für unsere Bedienung relevant:
de
– Standardde-at
– österreichisch (Menü-Auswahl:de-AT
)de-ch
– schweizerisch (Menü-Auswahl:de-CH
)de-formal
– mit Anrede „Sie“ (Menü-Auswahl in jüngerer Zeit jedoch:de-x-formal
)en
– englischsprachig, für wesentliche Informationen
Dabei wird für eine Sprachvariante de-xx
in der nachstehenden Reihenfolge in den Systemnachrichten nach einer Spezifikation gesucht („Fallback“),[3] und der erste Treffer verwendet:
- MediaWiki:-Unterseite
/de-xx
- translatewiki-Unterseite
/de-xx
- MediaWiki:-Stammseite (bei uns also deutschsprachig)
- translatewiki-Unterseite
/de
- translatewiki-Stammseite (englischsprachig)
- Bezeichner der Nachricht in spitzen Klammern (fehlende Spezifikation)
Um nur kleine Abwandlungen des deutschen Grundtextes umzusetzen, ist es günstiger, auf einer einzigen Seite zu bleiben und mit geeigneten Vorlagen den einheitlichen Text anzupassen. Andernfalls besteht das Risiko, dass es zu inhaltlichen Klaffungen bis hin zu Darstellungsfehlern kommt, falls im Zuge von Veränderungen die Unterseiten vergessen werden.
Lokale Anpassungen sind dann sinnvoll, wenn die für alle Wikis (auch außerhalb der WMF) wirksamen Texte auf translatewiki für unsere Zwecke nicht passen; insbesondere wenn auf hiesige Projektseiten, Hilfeseiten oder spezielle Vorgehensweisen Bezug genommen wird. Andernfalls sollte immer die textgleiche globale Systemnachricht genutzt werden und eine lokale Dublette gelöscht werden.
Bei uns, auf Commons sowie auf einigen anderen Wikis wurde ein besonderes Feature realisiert: MediaWiki:lang
- Damit wird bewirkt, dass der jeweilige Sprachcode des Kontos als sein eigener Sprachcode angezeigt wird.
- Dadurch kann das Ergebnis von
{{int:lang}}
in Abfragen ausgewertet werden. - In enzyklopädischen Artikeln ist das jedoch strikt unerwünscht. Lediglich in der Programmierung des Projekts, in einigen Vorlagen, bei zentralen Projektseiten sowie an internationale Gäste adressierte Seiten usw. wird davon Gebrauch gemacht.
- Insbesondere sind definiert:
- MediaWiki:lang/de-at –
{{int:lang}}
liefert bei entsprechender Einstellungde-at
- MediaWiki:lang/de-ch –
{{int:lang}}
liefert bei entsprechender Einstellungde-ch
- MediaWiki:lang/de-formal –
{{int:lang}}
liefert bei entsprechender Einstellungde-formal
- MediaWiki:lang/de-at –
- Weitere Sprachcodes sind definiert. Bei Bedarf können auf WP:A/A zusätzliche Codes gewünscht werden.
In der Seite aktive JavaScript-Programme haben weitere Möglichkeiten, bevorzugte Sprachversionen zu detektieren und Texte frei zu generieren.
Verwendung
- Wikipedia:Technik/Skin/JS/mw#.cldr – JavaScript-Modul/Objekt
Weitere Informationen
- Hilfe:Parserfunktionen/Multilingual
- Hilfe:Parserfunktionen/Text #FORMAL – Abfrage auf formale Sprachvariante
- Hilfe:Lua/Umgebung – Lua-Bibliotheken mit weiteren Funktionen zu Sprachen und Systemnachrichten.
- Wikipedia:Lua/Modul/Multilingual/maintain – Unterstützung für Wartungszwecke
- meta:Language codes (englisch)
- RFC – Tags for Identifying Languages [Errata: RFC 5646]. September 2009 – Standard: [BCP] (löst ab, englisch).
- RFC – Update to the Language Subtag Registry. September 2009 (englisch).
- Language Subtag Registry – IANA (≈8500 gültige Sprachcodes)
- Schriftsysteme
- Spezial:Interwikitabelle #interwikitable-language
Anmerkungen
- ↑ Ursprünglich sahen die Namen der Domains von Sprach-Wikis ggf. nur Unterstreichungsstriche
_
vor; in jüngerer Zeit wird dies aber umgeleitet auf Bindestriche-
wie in der ISO-Notation. - ↑ Allgemeine Projektbeschreibung
- ↑ In dieser speziellen Abfolge seit Anfang Juli 2023; phab:T229992