Sie befinden sich hier: start » de » Interne Dokumentation » DokuWiki-Erweiterungen (WvdS) » WvdS Internationalization (i18n)

WvdS Internationalization (i18n)

i18n macht Seiteninhalt mehrsprachig, ohne die Seite zu vervielfachen: die Marke schluessel setzt an Ort und Stelle den Text der aktuellen Sprache ein — aus einer CSV-Tabelle, einer Einstellung oder unmittelbar aus der Marke. Gedacht ist das Paket für Autoren, die Menüs, Schaltflächen und Bausteine in mehreren Sprachen führen, und für Vorlagen-Entwickler, die dieselben Texte aus PHP heraus brauchen.

Erste Schritte

Häufige Aufgaben

Was Sie wollen Für wen Wo Sie das tun Anleitung
einen übersetzten Text einsetzen Autor Marke schluessel Übersetzungs-Key
eine Übersetzung ohne Tabelle schreiben Autor Marke mit Sprachpaaren Inline-Übersetzung
einen Text in einer festen Sprache erzwingen Autor Marke mit Sprachangabe Explizite Sprache
einen Konfigurationswert anzeigen Autor Marke auf einen Config-Wert Config-Wert
Übersetzungen pflegen Autor CSV-Tabelle CSV-Format
verstehen, welche Sprache gewählt wird alle Spracherkennung
dieselben Texte aus PHP verwenden Entwickler Integration in Vorlagen

Definition

Das wki18n Plugin bietet Internationalisierungs-Funktionen fuer mehrsprachige Inhalte:

  • Uebersetzungs-Keys - Aus CSV-Datei
  • Inline-Uebersetzungen - de:Text|en:Text
  • Config-Werte - Mit Mehrsprach-Parsing
  • Template-Werte - Mit Mehrsprach-Parsing

Anwendungsfaelle

  • Mehrsprachige Navigation - Menu-Texte in verschiedenen Sprachen
  • Uebersetzbare UI-Elemente - Buttons, Labels, Hinweise
  • Template-Integrationen - Sidebar, Footer, Header
  • Zentralisierte Uebersetzungen - Alle Texte in einer CSV-Datei

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/wki18n/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):

  • Startseite
  • Projekt-Dokumentation
  • Kontakt

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:

  • Sprachen: Startseite | Home | Domov

Integration in Templates

PHP-Nutzung

<?php
// Helper laden
$helper = plugin_load('helper', 'wki18n');
 
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 (wki18n) 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: {{wk:lang>
Neu: {{wk:i18n>

Alt: {{wk:lang:
Neu: {{wk:i18n:

Versionshinweise

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

Siehe auch


Technische Referenz

Klasse: syntax_plugin_wki18n

Datei: lib/plugins/wki18n/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_wki18n

Datei: lib/plugins/wki18n/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

<wk:audit stack=„doku“ title=„wki18n Plugin“>

<wk:include ref="code:qualitaet" critical="true">[x][x][x][x]</wk:include>
<wk:include ref="stacks:dokuwiki-php">[x][x][x][x][x]</wk:include>
<wk:include ref="sicherheit:kritis" critical="true">[x][x][x][x][x]</wk:include>

</wk:audit>

DISCUSSION

Paketangaben

Plugin: wki18n
Version: 1.0.0
Namespace: lib/plugins/wki18n/
Autor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
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).
de/wiki/dwe/wki18n/start.txt · Zuletzt geändert: von 0.0.0.0