Inhaltsverzeichnis

WvdS.DokuWiki.I18n Plugin

Plugin: wvdsi18n
Versione: 1.0.0
Namespace: lib/plugins/wvdsi18n/
Autore: Wolfgang van der Stille zeljko.petrusic@outlook.de
Licenza: GPL 2


Definizione

Il plugin wvdsi18n fornisce un sistema di traduzione multilingue per pagine DokuWiki. Supporta sia file di lingua centrali che traduzioni inline, con rilevamento automatico della lingua basato sul namespace.

Casi d'uso


Sintassi

Chiave da file lingua

key
conf:title

Traduzione inline

de:Testo tedesco|en:Testo inglese|it:Testo italiano

Lingua forzata

key
intro_text

Parametri

Sintassi chiave

Sintassi Descrizione
key Cerca chiave nei file di lingua
conf:key Accede a valori di configurazione DokuWiki
de:X|en:Y Traduzione inline con codice lingua

Lingua forzata

Sintassi Descrizione
... Forza output tedesco
... Forza output inglese
... Forza output italiano

File di lingua

Posizione

lib/plugins/wvdsi18n/lang/
├── de/
│   └── translations.php
├── en/
│   └── translations.php
├── sl/
│   └── translations.php
├── hr/
│   └── translations.php
└── it/
    └── translations.php

Formato

lib/plugins/wvdsi18n/lang/it/translations.php:

<?php
$lang['menu_home'] = 'Home';
$lang['menu_docs'] = 'Documentazione';
$lang['menu_contact'] = 'Contatto';
$lang['menu_back'] = 'Indietro';
$lang['greeting'] = 'Benvenuto nella nostra documentazione';

Esempi

Esempio 1: Voci di menu

  * [[start|Home]]
  * [[docs:start|Documentazione progetto]]
  * [[contatto|Contatto]]

Risultato (pagina italiana):

Esempio 2: Traduzione inline

de:Willkommen|en:Welcome|it:Benvenuto|hr:Dobrodošli

Risultato: Visualizza il testo nella lingua del namespace corrente.

Esempio 3: In snippet HTML

File: lib/plugins/wvdssnippet/snippets/footer.html

<footer>
    <p>de:Alle Rechte vorbehalten|en:All rights reserved|it:Tutti i diritti riservati</p>
</footer>

Esempio 4: Lingua forzata

La versione inglese è: greeting

Visualizza sempre il testo in inglese, indipendentemente dal namespace corrente.


Rilevamento lingua

Rilevamento automatico

La lingua viene determinata dalla posizione nel namespace:

de:docs:start     → Tedesco
en:docs:start     → Inglese
it:docs:start     → Italiano
hr:docs:start     → Croato
sl:docs:start     → Sloveno

Priorità di fallback

1. Lingua del namespace corrente
2. Lingua predefinita (configurazione)
3. Prima lingua disponibile nella traduzione inline
4. Chiave come fallback (per debug)

Configurazione

Impostazioni amministratore

Tramite Admin → Configurazione → wvdsi18n:

Impostazione Tipo Default Descrizione
defaultLanguage Testo de Lingua predefinita
langPosition Numero 0 Posizione del codice lingua nel namespace (0 = primo)

Integrazione

Con wvdssnippet

Snippet possono usare tag i18n:

<nav>
    <a href="?id=start">Home</a>
    <a href="?id=docs">Documentazione progetto</a>
</nav>

Con flat Template

Il template usa l'helper i18n per:


Gestione errori

Scenario Comportamento
Chiave non trovata Restituisce la chiave stessa (utile per debug)
Lingua non disponibile Fallback su defaultLanguage
Traduzione inline vuota Usa prima lingua disponibile
File lingua mancante Usa chiave come fallback

Best practice


Note sulla versione

Versione Data Modifiche
1.0.0 2026-01-06 Prima pubblicazione

Vedi anche


Riferimento tecnico

Classe: syntax_plugin_wvdsi18n

File: lib/plugins/wvdsi18n/syntax.php

Metodo Descrizione
getType() Restituisce substition
getSort() Restituisce 305 (prima di wvdssnippet)
connectTo($mode) Registra pattern \\{\\{wvds:i18n[^}]*>[^}]+\\}\\}
handle($match, …) Analizza sintassi, estrae chiave/traduzioni
render($mode, …) Restituisce testo tradotto

Classe: helper_plugin_wvdsi18n

File: lib/plugins/wvdsi18n/helper.php

Metodo Parametri Ritorno Descrizione
detectLanguage() - string Rileva lingua dal namespace
get() $key, $lang string Restituisce traduzione
parseInline() $text string Analizza formato de:X|en:Y

wvdsi18n PluginAudit bestanden • 2026-03-30