Wikipedia:Technik/MediaWiki/Sprachen
Sprachcodes und Sprachnamen
Diese Projektseite stellt Informationen zur Lokalisierung innerhalb der MediaWiki-Software zusammen, die Sprachcodes oder Sprachnamen betreffen.
Sprachcodes
[Quelltext bearbeiten]Grundsätzlich folgen die Sprachcodes der ISO 639; bzw. BCP 47.
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 in den Wikis:
de-AT de-CH
en-AU en-CA en-GB en-IN en-JM en-NZ en-UK en-US
crh-RO
es-ES es-MX
fa-AF
fr-CA fr-CH
gsw-FR
ha-NE
kk-CN kk-KZ kk-TR
ko-KP
lij-MC
nds-NL
nl-BE
nrf-GG nrf-JE
pap-AW
pt-BR
pt-PT
ro-MD
se-FI se-NO se-SE
sr-ME
sw-CD
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
– ArabischHebr
– HebräischHani
– Chinesische Schrift (Hanzi, Kanji, Hanja)Hans
– Han (simplified)Hant
– Han (traditional)Hira
– HiraganaKana
– KatakanaJpan
– Han + Hiragana + KatakanaDeva
– DevanagariGujr
– GujaratiGuru
– GurmukhiBeng
– BengaliTibt
– TibetischBrah
– BrahmiBali
– BalinesischCham
– ChamKhar
– KharoshthiKhoj
– KhojkiKthi
– KaithiNagm
– Nag MundariOrya
– OryaSidd
– SiddhamSind
– KhudabadiTakr
– TakriRohg
– Hanifi RohingyaTfng
– TifinaghCans
– kanadische SilbenschriftXsux
– KeilschriftPiqd
– Klingonisch
Weitere Details unter Schriftsysteme.
Über ISO 639 hinaus gibt es sinngemäße Erweiterungen:[1]
- Eigene Sprachdefinitionen:
simple
– Einfaches Englisch; korrekt alsen-simple
tokipona
– 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 Projektbezeichnerzh-classical
– klassisches Chinesischzh-min-nan
– Min Nan; mittlerweile mitnan
auch ein eigener ISO-Codezh-yue
– Kantonesisch; mittlerweile mityue
auch ein eigener ISO-Code
- Besondere Sprachvarianten:
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:
abq-Latn
ady-Cyrl
aeb-Arab aeb-Latn
akk-Latn akk-Xsux
ary-Arab ary-Latn
az-Cyrl
bal-Latn
ban-Bali
bbc-Latn
bft-Tibt
bfz-Deva bfz-Takr
bgc-Arab bgc-Deva
bgq-Arab bgq-Deva
bhd-Deva bhd-Takr
brh-Latn
ccp-Beng
cdo-Hani cdo-Hant cdo-Latn
cja-Arab cja-Cham cja-Latn
cjm-Arab cjm-Cham cjm-Latn
cjy-Hans cjy-Hant
(vereinfachte und traditionelle Han-Schrift)ckb-Arab ckb-Latn
cpx-Hans cpx-Hant cpx-Latn
crh-Cyrl crh-Latn
gan-Hans gan-Hant
gbk-Deva gbk-Takr
gju-Arab gju-Deva
gom-Deva gom-Latn
ha-Arab
hak-Hans hak-Hant hak-Latn
hi-Kthi hi-Latn
hif-Latn
hit-Latn hit-Xsux
hsn-Hans hsn-Hant
ike-Cans ike-Latn
isv-Latn
ja-Hani ja-Hira ja-Hrkt ja-Kana
kbd-Cyrl
kk-Arab kk-Cyrl kk-Latn
kls-Arab kls-Latn
kmr-Arab kmr-Latn
ko-Hani ko-Kore
ks-Arab ks-Deva
ku-Arab ku-Latn
lad-Hebr
mn-Mong
mnc-Latn mnc-Mong
ms-Arab
– Malaiisch, arabisches Schriftsystemmvi-Hira
nan-Hani nan-Hant nan-Latn-pehoeji nan-Latn-tailo
(Min Nan in Han-Schrift, traditioneller Han-Schrift, Pe̍h-ōe-jī, Tâi-lô)non-Runr
– Altnordisch (Runen-Schrift)ojp-Hani ojp-Hira
osa-Latn
pal-Phli pal-Phlp pal-Phlv
pgd-Arab pgd-Deva pgd-Khar
phn-Latn phn-Phnx
pi-Sidd
psu-Arab psu-Brah psu-Deva psu-Guru
rhg-Arab rhg-Rohg
ruq-Cyrl ruq-Latn
rys-Hira
ryu-Hira
sa-Sidd
sat-Beng sat-Latn sat-Orya
sd-Deva sd-Gujr sd-Arab sd-Khoj sd-Sind
sdh-Arab sdh-Latn
shi-Latn shi-Tfng
shy-Latn
skr-Arab
sr
– Serbischsr-EC
– Serbisch/Kyrillisch (wikipedianisch; EC=Kyrillisch-Ekavisch); standardisiert:sr-Cyrl
sr-EL
– Serbisch/Lateinisch (wikipedianisch); standardisiert:sr-Latn
sux-Latn sux-Xsux
syl-Beng
tg-Cyrl tg-Latn
tlh-Latn tlh-Piqd
tly-Cyrl
tt-Cyrl tt-Latn
ug-Arab ug-Latn
unr-Deva unr-Nagm
uz-Cyrl uz-Latn
vi-Hani
wuu-Hans wuu-Hant
xnr-Deva xnr-Takr
yoi-Hira
yox-Hira
yue-Hans yue-Hant
zgh-Latn
zh-Hans zh-Hant
- Besondere Varianten
ar-001
– Modernes Hocharabischde-1901
– Deutsch vor Duden-Rechtschreibreformes-419
– Lateinamerikanisches Spanischeo-hsistemo
/eo-xsistemo
– Esperanto in h- oder x-Schreibungnn-hognorsk
– Norwegisch (nynorsk) als Høgnorskpt-ao1990
/pt-colb1945
– Portugiesisch in Rechtschreibung von 1990 bzw. 1945- Rätoromanisch in Varianten:
rm-puter
– Oberengadinischrm-rumgr
– Rumantsch Grischunrm-surmiran
– Surmeirischrm-sursilv
– Surselvischrm-sutsilv
– Sutselvischrm-vallader
– Vallader
- 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
[Quelltext bearbeiten]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 für:
Sprachnamen
[Quelltext bearbeiten]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 1188 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
[Quelltext bearbeiten]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
[Quelltext bearbeiten]- 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
[Quelltext bearbeiten]- de icu-project.org = CLDR – 608 Namen
- Modul:Multilingual/names – Änderungsvorschläge
Seiteninhaltssprache
[Quelltext bearbeiten]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
[Quelltext bearbeiten]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
[Quelltext bearbeiten]- Wikipedia:Technik/Skin/JS/mw#.cldr – JavaScript-Modul/Objekt
Weitere Informationen
[Quelltext bearbeiten]- 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: [BCP47] (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
[Quelltext bearbeiten]- ↑ 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