Mehrsprachigkeit



🏠Pro Seite

Das Modul Mehrsprachigkeit macht Beiträge und Seiten mehrsprachig: Inhalt steht in Sprachblöcken, oben erscheint automatisch ein Umschalter, und die gewählte Sprache gilt auf allen Seiten weiter. Bis Blog List 1.3.0 steckte das im Blog-Modul, das Modul About Page hatte eine eigene Kopie davon. Beides ist jetzt hier zusammengefasst.

Allgemein

Sprachblöcke und Umschalter


Jede Sprache bekommt einen eigenen Block, z. B. weinhold_languages_de und weinhold_languages_en. Hat eine Seite Blöcke in mindestens zwei Sprachen, setzt das Modul oben einen Umschalter ein (in Blog-Beiträgen in einer Zeile mit dem Zurück-Button). Die Wahl landet im Browser (localStorage, Schlüssel weinhold_languages) und gilt auf allen Seiten und Subdomains mit derselben Adresse.

Sprachen pro Seite


Unter Weinhold → Mehrsprachigkeit legt jede Site ihre Sprachen fest: Code (de, en, fr …), Beschriftung im Umschalter, Reihenfolge und Standardsprache. Ohne Einstellung gelten Deutsch und English mit Deutsch als Standard. Der Umschalter zeigt auf einer Seite nur die Sprachen, für die sie einen Block hat. Fehlt einer Seite die gewählte Sprache, zeigt sie die Standardsprache. Eine neue Sprache erfordert deshalb keine Änderung an bestehenden Beiträgen.

Feste Beschriftungen


Texte, die Module selbst ausgeben (z. B. Zurück, Alle zuklappen, Kern-Module), sind als Beschriftungen mit deutscher und englischer Vorgabe hinterlegt. Für weitere Sprachen trägt man die Übersetzung in derselben Admin-Seite ein, leere Felder nutzen die Vorgabe.

Profilseite


Die Startseite von weinify.de (früher Modul About Page) nutzt dieselben Sprachblöcke in einem Rahmen mit der Klasse weinhold-languages-profile: 900 px breit, Überschriften und Listenpunkte in der Akzentfarbe der Site.

Shortcodes

ShortcodeBeschreibung
weinhold_languages_de,weinhold_languages_enInhalt in einer Sprache; für jede Sprache der Site gibt es weinhold_languages_ plus Sprachcode (z. B. weinhold_languages_fr)
weinhold_languages_textKurzer Text in mehreren Sprachen innerhalb von Fließtext oder Überschriften, Attribute je Sprachcode, z. B. de="Regeln" en="Rules"
weinhold_languages_switchSprachauswahl mit allen Sprachen der Site an beliebiger Stelle

Frei geschriebenes HTML wird ebenfalls umgeschaltet: ganze Abschnitte mit der Klasse weinhold-languages-de, weinhold-languages-en usw., kurze Texte mit weinhold-languages-text-de, weinhold-languages-text-en usw. (pro Elternelement wird genau eine Sprache gezeigt).

Dateien

modules/languages.php – Sprachblock-Shortcodes, Umschalter (the_content-Filter), Sprach-JS, Admin-Seite für Sprachen und Beschriftungen.
includes/weinhold_languages.php – immer geladen, auch wenn das Modul aus ist: Sprachliste der Site, Erkennen von Sprachblöcken, mehrsprachige Spans, Beschriftungs-Tabelle und der Ersatz bei ausgeschaltetem Modul.
assets/weinhold_languages.css – Umschalter, Sprachblöcke und der Rahmen weinhold-languages-profile.

Für Entwickler

Funktionen für andere Module


FunktionZweck
weinhold_languages_codes()Sprachen der Site, Standardsprache zuerst (Modul aus: nur die Standardsprache)
weinhold_languages_default()Standardsprache der Site
weinhold_languages_current()Sprache des Blocks, der gerade gerendert wird
weinhold_languages_extract_blocks()Sprachblöcke eines Inhalts als Liste Sprachcode zu Inhalt (escapte Beispiele werden ignoriert)
weinhold_languages_html()Text je Sprache als umschaltbare weinhold-languages-text-Spans
weinhold_languages_register_string()Feste Beschriftung mit Vorgaben registrieren (Schlüssel, Texte je Sprache, Beschreibung)
weinhold_languages_string(),weinhold_languages_string_html()Beschriftung in einer Sprache bzw. als umschaltbare Spans

Hooks


Filter weinhold_languages_toggle_bar bekommt das Umschalter-HTML und die Sprachen der Seite; Blog List setzt darüber den Zurück-Button in dieselbe Zeile. Action weinhold_languages_needs_assets läuft, sobald eine Seite Sprachblöcke oder Spans ausgibt; Blog List lädt darüber sein CSS (Farben und Schriften der Site).

JavaScript


window.weinholdLanguages.apply(code) schaltet um, window.weinholdLanguages.current() liefert die angezeigte Sprache. Nach jedem Umschalten feuert das Event weinhold:languages auf document.

Optionen


weinhold_languages_settings (Sprachen und Standardsprache) und weinhold_languages_strings (gepflegte Beschriftungen), jeweils pro Site.

Besonderheiten

Ist das Modul aus, zeigen alle Sprachblöcke nur die Standardsprache, ohne Umschalter und ohne JavaScript. Rohe Shortcodes erscheinen nie, auch nicht für Sprachen wie weinhold_languages_fr.

Blog List speichert Caption und Kurzbeschreibung je Sprache (_weinhold_blog_caption_ bzw. _weinhold_blog_summary_ plus Sprachcode), auch solange das Modul aus ist. Tag-Übersetzungen pflegt Blog List je Sprache, der Tag-Name selbst gilt für die Standardsprache.

Der localStorage-Schlüssel weinhold_languages ist derselbe wie vor dem Modul, eine früher gewählte Sprache bleibt also erhalten.

Versionshistorie

VersionDatumÄnderung
1.4.007.11.2026Auch Shortcodes, Hilfsfunktionen und Hooks mit vollem Namen: [weinhold_languages_de], [weinhold_languages_text], [weinhold_languages_switch], Helfer weinhold_languages_* in includes/weinhold_languages.php, Hooks weinhold_languages_toggle_bar und weinhold_languages_needs_assets, Speicherschlüssel weinhold_languages (eine früher gespeicherte Sprachwahl wird einmalig übernommen). Alle Beiträge, Seiten und die Header-/Footer-Beschriftungen wurden umgestellt.
1.3.007.11.2026Einheitliche Namen mit vollem Präfix: Klassen weinhold-languages-* statt weinhold-lang-* (Sprachblöcke, Umschalter, kurze Texte weinhold-languages-text-de usw.), Startseiten-Rahmen weinhold-languages-profile, data-Attribut data-weinhold-languages-lang, JavaScript window.weinholdLanguages und Event weinhold:languages. Shortcodes, Hilfsfunktionen und die gespeicherte Sprachwahl blieben in dieser Version noch unverändert. Bestehende Inhalte wurden mit umgestellt.
1.2.107.11.2026Nutzt die neuen Variablennamen von Blog List 1.9.0 (--weinhold-blog-list-* statt --wbl-*).
1.1.005.11.2026Sprachblöcke nur noch als weinhold_languages plus Sprachcode (alte Namen entfernt, alle Beiträge umgestellt); Klassen heißen weinhold-languages-de, weinhold-languages-text-de usw., weinhold-languages-toggle und weinhold-languages-profile.
1.0.005.11.2026Erste Veröffentlichung: Sprachlogik aus Blog List 1.3.0 und About Page 1.0.0 zusammengeführt, beliebig viele Sprachen pro Site, feste Beschriftungen, Rahmen für die Startseite.