Barvna shema: Temna
Trenutno dejavna stran: start » de » 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 für mehrsprachige Inhalte:

  • Übersetzungs-Keys - Aus CSV-Datei
  • Inline-Übersetzungen - de:Text|en:Text
  • Config-Werte - Mit Mehrsprach-Parsing
  • Template-Werte - Mit Mehrsprach-Parsing

Anwendungsfaelle

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

Syntax

Übersetzungs-Key

Domov
Kontakt

Lädt den Wert aus der Übersetzungstabelle (siehe CSV-Format) für die aktuelle Sprache.

Explizite Sprache

Startseite
Home

Erzwingt eine bestimmte Sprache, unabhängig vom Browser.

Inline-Übersetzung

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

Direkte Übersetzung 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

Eigene Übersetzungen gehören in data/wki18n/i18n.csv (genau: <savedir>/wki18n/i18n.csv). Die Datei liegt außerhalb des Plugin-Ordners, übersteht jede Aktualisierung und wird vom Webserver nicht ausgeliefert:

key,de,en,sl
menu_home,Startseite,Home,Domov
menu_contact,Kontakt,Contact,Kontakt
button_save,Speichern,Save,Shrani

Das Plugin bringt in lib/plugins/wki18n/i18n.csv nur wenige allgemeine Schlüssel mit (menu_home, menu_contact, menu_back); diese Datei ersetzt jede Installation. Die eigene Tabelle wird danach gelesen und gewinnt je Schlüssel und Sprache: Eine Zeile dort überschreibt den mitgelieferten Wert in jeder Sprache, die sie füllt; eine leere Zelle lässt ihn stehen. Eine Zeile, die mit # beginnt, ist ein Kommentar.

Spalte Beschreibung
key Eindeutiger Schlüssel
de Deutsche Übersetzung
en Englische Übersetzung
… Weitere Sprachen

Spracherkennung

Die Sprache wird in folgender Reihenfolge ermittelt (helper.php, detectLanguage()):

  1. Ausdrückliche Wahl des Besuchers - ?lang=sl in der Anfrage, sonst die gemerkte Wahl aus einer früheren Anfrage (Cookie). Sie gilt erst nach einem bewussten Klick in einer Sprachwahl; wer nie wählt, merkt davon nichts.
  2. Namespace-Pfad - de:start → de
  3. Sprache des öffnenden Fensters - ein Fenster wie der Medien-Dialog behält die Sprache, in der es geöffnet wurde; sie wird nicht gemerkt
  4. Browser-Header - Accept-Language: de-DE → de
  5. DokuWiki-Sprache - $conf['lang']
  6. Plugin-Standard - defaultLang Konfiguration

Jeder Wert wird gegen die Liste languages geprüft; ein Kürzel, das dort nicht steht, wird übergangen.


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)

Der Standard ist der Wert, den das Plugin mitbringt. Auf dieser Instanz ist languages auf de,en,sl gesetzt.


Beispiele

Beispiel 1: Navigation

===== menu_navigation =====
  * [[..:start|Domov]]
  * [[..:docs:index|Projektna dokumentacija]]
  * [[..: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 Y 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 substition zurück (so schreibt der DokuWiki-Kern den Modus)
getSort() Gibt 1 zurück – vor internalmedia (320), damit ... nicht als Medienverweis gelesen wird
connectTo($mode) Registriert i18n Pattern
handle($match, …) Parst Syntax und extrahiert Content
render($mode, …) Gibt übersetzen Text zurück

Klasse: helper_plugin_wki18n

Datei: lib/plugins/wki18n/helper.php

Methode Beschreibung
get($key, $lang) Holt Übersetzung für 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 zurück
getContentDir() Gibt das Verzeichnis der eigenen Übersetzungstabelle zurück, <savedir>/wki18n

<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 · Zadnja sprememba: uporabnika 0.0.0.0