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
- Interfacce multilingue - Voci di menu, pulsanti, etichette
- Documentazione - Testi che devono apparire in più lingue
- Template - Elementi riutilizzabili con supporto linguistico
- Widget - Snippet con contenuto specifico per lingua
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):
- Home
- Documentazione
- Contatto
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:
- Footer multilingue
- Titoli sidebar
- Etichette switcher lingua
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
- Chiavi significative - Usare nomi descrittivi:
menu_homeinvece dim1 - File centrali - Usare file lingua per testi frequenti
- Inline per casi speciali - Usare inline per testi unici
- - Aggiungere a pagine con contenuto multilingue
Note sulla versione
| Versione | Data | Modifiche |
|---|---|---|
| 1.0.0 | 2026-01-06 | Prima pubblicazione |
Vedi anche
- WvdS.DokuWiki.Cond Plugin - Contenuti condizionali e redirect
- WvdS.DokuWiki.Snippet Plugin - Blocchi HTML riutilizzabili
- WvdS.DokuWiki.Flat Template - Template con supporto multilingue
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 |
Diskussion