Inhaltsverzeichnis

WvdS.DokuWiki.i18n Plugin

Plugin: wvdsi18n
Version: 1.0.0
Namespace: lib/plugins/wvdsi18n/
Autor: Wolfgang van der Stille zeljko.petrusic@outlook.de
Lizenz: GPL 2


Migration von wvdslang: Dieses Plugin ersetzt das alte wvdslang Plugin. Die Redirect-Funktionalitaet wurde in das wvdscond Plugin verschoben (Separation of Concerns).

Definition

Das wvdsi18n Plugin bietet Internationalisierungs-Funktionen fuer mehrsprachige Inhalte:

Anwendungsfaelle


Syntax

Uebersetzungs-Key

Startseite
Kontakt

Laedt den Wert aus i18n.csv basierend auf der aktuellen Sprache.

Explizite Sprache

Startseite
Home

Erzwingt eine bestimmte Sprache, unabhaengig vom Browser.

Inline-Uebersetzung

de:Ja|en:Yes|sl:Da
de:Speichern|en:Save|sl:Shrani

Direkte Uebersetzung ohne CSV-Datei.

Config-Wert

conf:title
conf:tagline

Liest DokuWiki-Konfiguration mit Mehrsprach-Parsing.

Template-Config

tpl:footerText
tpl:topSidebarTitle

Liest Template-Konfiguration mit Mehrsprach-Parsing.


CSV-Format

Die Uebersetzungen werden in lib/plugins/wvdsi18n/i18n.csv gespeichert:

key,de,en,sl,it,hr
menu_home,Startseite,Home,Domov,Home,Pocetna
menu_contact,Kontakt,Contact,Kontakt,Contatto,Kontakt
button_save,Speichern,Save,Shrani,Salva,Spremi
Spalte Beschreibung
key Eindeutiger Schluessel
de Deutsche Uebersetzung
en Englische Uebersetzung
Weitere Sprachen

Spracherkennung

Die Sprache wird in folgender Reihenfolge ermittelt:

  1. Namespace-Pfad - de:start → de
  2. Browser-Header - Accept-Language: de-DE → de
  3. DokuWiki-Sprache - $conf['lang']
  4. Plugin-Standard - defaultLang Konfiguration

Konfiguration

Option Standard Beschreibung
enabled 1 Plugin aktivieren
languages de,en,sl,it,hr Verfuegbare Sprachen
defaultLang en Standard-Sprache (Fallback)
langPosition 0 Sprach-Position im Namespace (0 = erste Ebene)

Beispiele

Beispiel 1: Navigation

===== menu_navigation =====
  * [[.:start|Startseite]]
  * [[.:docs:index|Projekt-Dokumentation]]
  * [[.:contact|Kontakt]]

Ergebnis (Browser: de):

Beispiel 2: Inline in Buttons

<button>de:Absenden|en:Submit|sl:Pošlji</button>

Beispiel 3: Footer mit Template-Config

<footer>
tpl:footerText
</footer>
Sprachen: [[.:de:start|Startseite]] |
          [[.:en:start|Home]] |
          [[.:sl:start|Domov]]

Ergebnis:


Integration in Templates

PHP-Nutzung

<?php
// Helper laden
$helper = plugin_load('helper', 'wvdsi18n');
 
if ($helper) {
    // Uebersetzung holen
    echo hsc($helper->get('menu_home'));
 
    // Explizite Sprache
    echo hsc($helper->get('menu_home', 'en'));
 
    // Inline parsen
    echo hsc($helper->parseMultilang('de:Ja|en:Yes'));
 
    // Template-Config
    echo hsc($helper->getTplConfig('footerText'));
}
?>

Migration von wvdslang

Alt (wvdslang) Neu (wvdsi18n) Status
lang_key key Syntax geaendert
de_key key Syntax geaendert
en:Y X Syntax geaendert
redirect redirect Zu wvdscond verschoben

Such-und-Ersetzen

Alt: {{wvds:lang>
Neu: {{wvds:i18n>

Alt: {{wvds:lang:
Neu: {{wvds:i18n:

Versionshinweise

Version Datum Aenderungen
1.0.0 2026-01-29 Erstveroeffentlichung (Nachfolger von wvdslang)

Siehe auch


Technische Referenz

Klasse: syntax_plugin_wvdsi18n

Datei: lib/plugins/wvdsi18n/syntax.php

Methode Beschreibung
getType() Gibt substitution zurück
getSort() Gibt 100 zurueck
connectTo($mode) Registriert i18n Pattern
handle($match, …) Parst Syntax und extrahiert Content
render($mode, …) Gibt uebersetzen Text zurueck

Klasse: helper_plugin_wvdsi18n

Datei: lib/plugins/wvdsi18n/helper.php

Methode Beschreibung
get($key, $lang) Holt Uebersetzung fuer Key
parseMultilang($value, $lang) Parst de:X|en:Y Format
getConfig($key, $lang) Holt DokuWiki-Config mit Parsing
getTplConfig($key, $lang) Holt Template-Config mit Parsing
detectLanguage() Erkennt aktuelle Sprache
getLanguages() Gibt konfigurierte Sprachen zurueck

wvdsi18n PluginAudit bestanden • 2026-03-30