Plugin: wvdsi18n
Versione: 1.0.0
Namespace: lib/plugins/wvdsi18n/
Autore: Wolfgang van der Stille zeljko.petrusic@outlook.de
Licenza: GPL 2
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.
key conf:title
de:Testo tedesco|en:Testo inglese|it:Testo italiano
key intro_text
| 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 |
| Sintassi | Descrizione |
|---|---|
... | Forza output tedesco |
... | Forza output inglese |
... | Forza output italiano |
lib/plugins/wvdsi18n/lang/
├── de/
│ └── translations.php
├── en/
│ └── translations.php
├── sl/
│ └── translations.php
├── hr/
│ └── translations.php
└── it/
└── translations.php
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';
* [[start|Home]] * [[docs:start|Documentazione progetto]] * [[contatto|Contatto]]
Risultato (pagina italiana):
de:Willkommen|en:Welcome|it:Benvenuto|hr:Dobrodošli
Risultato: Visualizza il testo nella lingua del namespace corrente.
File: lib/plugins/wvdssnippet/snippets/footer.html
<footer> <p>de:Alle Rechte vorbehalten|en:All rights reserved|it:Tutti i diritti riservati</p> </footer>
La versione inglese è: greeting
Visualizza sempre il testo in inglese, indipendentemente dal namespace corrente.
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
1. Lingua del namespace corrente 2. Lingua predefinita (configurazione) 3. Prima lingua disponibile nella traduzione inline 4. Chiave come fallback (per debug)
Tramite Admin → Configurazione → wvdsi18n:
| Impostazione | Tipo | Default | Descrizione |
|---|---|---|---|
defaultLanguage | Testo | de | Lingua predefinita |
langPosition | Numero | 0 | Posizione del codice lingua nel namespace (0 = primo) |
Snippet possono usare tag i18n:
<nav> <a href="?id=start">Home</a> <a href="?id=docs">Documentazione progetto</a> </nav>
Il template usa l'helper i18n per:
| 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 |
menu_home invece di m1| Versione | Data | Modifiche |
|---|---|---|
| 1.0.0 | 2026-01-06 | Prima pubblicazione |
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 |
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 |