Manuale MediaWiki/Estensioni/Manuali/Estensione MultiLanguageManager

Da Naturpedia.

altre wiki: navigazione, ricerca

Torna a: Manuali: Elenco.

esempio di testo

Indice

L'estensione MultiLanguageManager, vi permette di aggiungere capacità multi-lingue al vostro Wiki. È possibile definire un elenco di lingue disponibili, impostare la lingua di un articolo e l'elenco delle traduzioni disponibili per quell'articolo.

Attraverso una nuova linguetta "lingua" è possibile visualizzare e modificare le proprietà di "traduzione" di un articolo: impostare la lingua di default dell'articolo, e indicare e collegare quali articoli traducano l'articolo in questione, in altre lingue.

Quando un articolo dispone di traduzioni in altre lingue, è possibile accedere ad esse semplicemente cliccando, nella colonna di sinistra, sulla bandierina della lingua corrispondente. Qualora non esistessero traduzioni nella lingua richiesta, al di sotto della bandierina appare l'avviso "L'articolo a cui vuoi accedere non è ancora stato tradotto".


[modifica] Utilizzo dell'Estensione

Per Tradurre gli Articoli da una lingua all'altra, si procede così:

  1. Creare o scegliere la voce che si vuole tradurre.
  2. Creare una nuova voce, dal Titolo Tradotto (per esempio: "cane" sarà "dog"; "Natura", "Nature", ecc).
  3. Andare infine sulla "Linguetta" delle "lingue", presente in alto a destra su ogni voce, e "impostarvi ivi la Lingua, verso la quale si è tradotto".
  4. Poi, "collegare" sempre da lì, la voce tradotta all'articolo italiano.
  5. Unica precauzione IMPORTANTE, da tenere a mente, è QUESTA: se si traduce un articolo o una voce in più di un linguaggio, bisognerà mettere, come "collegamento" su ognuna (nelle "linguette"), la "voce italiana" che rimane quella "principale" essendo l'italiano la lingua di default di questo wiki.


[modifica] Esempio

Supponiamo che io voglia tradurre la voce italiana "Gatto domestico", nelle tre lingue usate in questo wiki, da questa estensione:

  • il francese,
  • l'inglese,
  • e lo spagnolo.


Inizio col creare tre voci, sulla mia wiki, tradotte, dal titolo corrispondente:

  • "Chat domestique",
  • "Domestic Cat",
  • e, "Gato doméstico".


Poi, vado su quest'ultime una per una e, cliccando sulla linguetta "lingua" posta in alto a destra, le "imposto" sulla loro lingua di traduzione; infine, metto SEMPRE il COLLEGAMENTO alla VOCE ITALIANA (dove dice: "Questo articolo e' la traduzione di:" e "Il titolo dell'articolo che vuoi aggiungere"). Ossia, che se io mettessi come "traduzione inglese" la voce tradotta francese, per esempio, mi apparirà un messaggio di errore. Perchè, la voce-fonte di "origine", dev'essere sempre quella italiana (o comunque, quella corrispondente di Default del vostro wiki. -Essa si sceglie al momento dell'installazione, ma può essere tranquillamente cambiata dal LocalSetting-).


Oppure, portarsi semplicemente sulla voce italiana e, da lì, sempre nella "Linguetta", aggiungere dove dice "Lista delle traduzioni disponibili per questo articolo", il titolo degli articoli tradotti, uno ad uno, cliccando su "aggiungi" ogni volta (in omonima sezione).


[modifica] Installazione

Per prima cosa, scaricate il file[1] dell'estensione e decomprimetelo nella vostra cartella estensioni.

Dovete poi, tramite phpMyAdmin, creare due nuove tabelle nel database [1], con questa struttura:

CREATE TABLE wiki_page_language (
  page_id int(8) NOT NULL,
  lang varchar(3) NOT NULL,
  PRIMARY KEY  (page_id)
) ENGINE=InnoDB;  
CREATE TABLE wiki_page_translation (
  `source` int(8) NOT NULL,
  translate int(8) NOT NULL,
  UNIQUE KEY source_2 (`source`,translate),
  KEY `source` (`source`),
  KEY translate (translate)
) ENGINE=InnoDB;

adeguando eventualmente il prefisso delle tabelle (variabile $wgDBprefix, in questo caso "wiki_") a quello del vostro database (oppure togliendolo, se non lo avete creato al momento dell'installazione), e assicurandovi che il tipo di tabella (in questo caso InnoDB) sia supportato dal vostro database. Noi, avendo testato il Manuale su Altervista e su Aruba, abbiamo cancellato solo i due pezzettini di: "wiki_", non avendo creato nessun prefisso per le nostre Tabelle, non essendo necessario lì. Cioè, abbiamo ricopiato la stringa modificata così:

CREATE TABLE page_language (
  page_id int(8) NOT NULL,
  lang varchar(3) NOT NULL,
  PRIMARY KEY  (page_id)
) ENGINE=InnoDB;  
CREATE TABLE page_translation (
  `source` int(8) NOT NULL,
  translate int(8) NOT NULL,
  UNIQUE KEY source_2 (`source`,translate),
  KEY `source` (`source`),
  KEY translate (translate)
) ENGINE=InnoDB;


[modifica] Da aggiungere nel LocalSettings.php

///ESTENSIONE MULTILINGUE///
require_once("$IP/extensions/MultiLanguageManager/MultiLanguageManager.php");
 
$mgAvailableLanguage=array(
   'it' => 'multilanguagemanager_it',
   'en' => 'multilanguagemanager_en',
   'fr' => 'multilanguagemanager_fr',
   'es' => 'multilanguagemanager_es');
 
$wgGroupPermissions['*'][$mgLanguagePermisionsKey] = true;
#$wgGroupPermissions['user'][$mgLanguagePermisionsKey] = false;

L'array $mgAvailableLanguage rappresenta l'elenco delle lingue che saranno disponibili sul vostro wiki, in questo caso abbiamo usato: l'inglese, il francese e l'italiano presenti di default, e aggiunto/creato poi noi, lo spagnolo.

RICORDATE che, le Bandierine di sinistra sulla vostra barra laterale, saranno visibili NELL'ESATTO ORDINE in cui le collocherete qui, in questa stringa del LocalSettings.

Mentre, il $wgGroupPermissions, vi permette di decidere chi può modificare o creare le traduzioni.

Se lasciato così, tutti potranno farlo, anche gli utenti anonimi. Togliere o mettere il simbolo #, o passare il valore da false a true, per concedere agli anonimi (['*']) e/o ai soli registrati (['user']) o ad entrambi, di poter contribuire alla politica di traduzioni.


[modifica] Modifica del Template

A questo punto dobbiamo anche modificare il template utilizzato dal nostro Wiki, per esempio il file MonoBook.php nel nostro caso [2], per permettere la selezione delle lingue, tramite l'inserimento di Bandierine sulla nostra Barra Laterale (sidebar).

Inseriamo quindi questo blocco di codice nel template:

<?php 
   $languageController=new MultiLanguageManager_controller();
   $myTitle=Title::newFromId($this->data['articleid']);
   echo $languageController->displaySelectLanguage($myTitle); 
?>

dobbiamo scegliere una posizione adeguata, per esempio in testa alla colonna di sinistra della "sidebar", in questo punto:

<?php
   /* begin Multilanguage related  */
   $languageController=new MultiLanguageManager_controller();
   $myTitle=Title::newFromId($this->data['articleid']);
   echo $languageController->displaySelectLanguage($myTitle);
   /* end Multilanguage related  */  
 
               $sidebar = $this->data['sidebar'];
               if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
               if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
               if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;

oppure, anche in fondo. Dove più, piace a voi.

Per esempio, qui:

<?php
		/* begin Multilanguage related  */
   $languageController=new MultiLanguageManager_controller();
   $myTitle=Title::newFromId($this->data['articleid']);
   echo $languageController->displaySelectLanguage($myTitle);
   /* end Multilanguage related  */ 
	}
	/*************************************************************************************************/
	function languageBox() {
		if( $this->data['language_urls'] ) {
?>

appena prima, del function languageBox() {. [3]


[modifica] Ulteriori aggiunte alla Sidebar

Per approfondire, vedi Come modificare la Barra Laterale di sinistra.

Le note precedenti sono state tradotte, in massima parte, dal Manuale inglese Mediawiki sull'estensione MultiLanguageManager. Gli appunti che seguono, invece, sono derivati dall'esperienza acquisita installando l'estensione sul nostro Wiki.

Può tornare utile personalizzare ulteriormente la colonna Mediawiki:Sidebar per adeguarla alla presenza delle nuove lingue.

In particolare è opportuno utilizzare per le voci standard, come "Ultime Modifiche" o "Pagine più recenti" le corrispondenti voci inglesi, reperibili nei file Messages_AbbreviazDellaLingua.php (esempio MessagesIt.php per l'italiano) che troviamo nella sottocartella languages/messages dell'installazione wiki.

Cerchiamo nel file (quasi all'inizio) l'array $specialPageAliases che contiene il nome inglese e italiano di tutte le pagine speciali.

Troveremo per esempio "Recentchanges" che corrisponde a "Ultime Modifiche" e che nel codice sorgente del Mediawiki:Sidebar è riportato come

recentchanges-url|recentchanges

Le principali voci standard sono già di solito in questa forma: questo permette al sistema di tradurre nella lingua corrente dell'articolo la voce corrispondente.

Mettiamo invece il caso di avere già inserito noi alcune voci aggiuntive nel Mediawiki:Sidebar, come per esempio queste:

Speciale:Esporta|Esporta pagine
Speciale:Importa|Importa pagine

queste voci, in italiano, sono corrette. Ma non vengono più tradotte dal sistema quando clicchiamo sulla bandierina di un'altra lingua.

Dobbiamo quindi trovare le corrispondenti voci inglesi nel file MessagesIt.php, come detto sopra, e modificare il Mediawiki:Sidebar in questo modo:

export-url|export
import-url|import

A questo punto, cliccando per esempio sulla bandierina francese, avremo le voci import e export tradotte.


[modifica] Tradurre le "voci sulla sidebar, create" da noi..

Rimane solo tradurre le voci "non presenti di default", ossia "create da noi" sulla barra laterale, tramite la pagina speciale MediaWiki:Sidebar (non esistenti quindi, nel file MessagesXx.php).


[modifica] Cambio grafica (Bandierine, ecc)

Per approfondire, vedi Gli Stili Grafici.


[modifica] Bandiere Laterali, e Stili Grafici (CSS)

Il metodo più rapido per cambiare la grafica delle Bandierine che vi appaiono a sinistra sulla vostra Barra Laterale, è quella di modificarne le singole immagini con un programma grafico tipo Gimp o Photoshop, per poi reinserirle modificate nella stessa cartella "images", dell'estensione. (Esisterebbe anche un'altra maniera per cambiarne la grafica: agendo sui CSS, ma le spiegazioni relative sul manuale inglese dell'estensione, sono alquanto nebulose e difficili da capire, almeno per me che sto iniziando questo Manuale). [4]


[modifica] Modificare Pagina Lingua ("linguetta", in alto)

Si agisce sul "modello del template" specifico, cioè sul file: MultiLanguageManager_template.php. E poi anche, sul: MultiLanguageManager_controller.php. Entrambi posti, nella Cartella dell'estensione [5].

Noi, per esempio, abbiamo voluto togliere il messaggio iniziale, perchè "ridondante" ai nostri fini; di modo che la gente, entrando, non si perda, e le salti subito all'occhio la traduzione, e il collegamento su come farla, ecc. Senza, inutili ripetizioni.

Se volete farlo come noi, vi specifichiamo qui sotto, i due pezzi di codice che abbiamo tolto, da questi due file.

Vai a: MultiLanguageManager/Grafica.


[modifica] Come aggiungere una Lingua Extra

Come Aggiungere una Lingua Extra, non presente di Default nel pacchetto installante; per esempio lo Spagnolo come abbiamo fatto noi.


[modifica] Aggiunta di alcune stringhe e traduzione

Vai a: MultiLanguageManager/Spagnolo.

Per prima cosa, si aggiunge il prefisso della lingua e si traduce il testo corrispondente, nel file: MultiLanguageManager.i18n.php. [6]

Va quindi, creata l'associazione con l'immagine della Bandierina corrispondente, nel file MultiLanguageManager_template.php.

Nel nostro caso, aggiungendo lo spagnolo, abbiamo scritto il codice così:

$this->availableLanguageFlag=array(
		  'it' => 'italian.png',
	 		'en' => 'english.png',
	 		'fr' => 'francais.png',
	 		'de' => 'deutsch.png',
	 		'es' => 'espanol.png',
	 		'nl' => 'nederland.png');
		$this->availableLanguageFlagIcon=array(
		  'it' => 'italian_icon.png',
	 		'en' => 'english_icon.png',
	 		'fr' => 'francais_icon.png',
	 		'de' => 'deutsch_icon.png',
	 		'es' => 'espanol_icon.png',
	 		'nl' => 'nederland_icon.png');
		$this->imageDirectory=dirname(__FILE__). "/images/";
		$this->imageUrl= $wgScriptPath."/extensions/MultiLanguageManager/images/"; 		
 	}


[modifica] Aggiunta Bandiere, nella "Cartella Images"

Poi, va aggiunta l'immagine della Bandierina nella Cartella "Images", copiandola dal Pc al Server, tramite un programma FTP, avendo l'accortezza che abbia ovviamente, lo stesso nome che abbiamo scritto, nel Codice di prima.


[modifica] BUGs (errori nel Codice)

Un lieve bug, è rappresentato dal fatto che in "Ultime Modifiche (la pagina speciale di RecentChanges)", non vengano registrati i cambi, quando uno collega le diverse traduzioni disponibili, di voci. Abbiamo inoltre appurato che, invece che nel LocalSettings.php, i cambi alle stringhe (per funzionare) a volte, debbano essere apportate direttamente sul file MultiLanguageManager_setup.php, nella cartella dell'estensione.


[modifica] Traduzioni laterali, visualizzate solo dagli anonimi?

Stiamo cercando di risolvere un altro piccolo bug: le voci delle linguette e della barra laterale sinistra come il testo sotto le bandierine (quel messaggio che avvisa che l'articolo o voce non è ancora stato tradotto) sembrano, infatti, venire visualizzate solo dagli utenti anonimi; quando ci si logga cioè, sia come utente che da amministratore, esso appare solo ed esclusivamente in italiano (mentre, per gli anonimi, appare nella lingua corrispondente). Questo, indipendentemente da quello che si scriva sul LocalSettings.php. Dev'essere il codice, scritto male in qualche suo punto. Speriamo di risolverlo a breve.

In verità, può darsi che, nelle intenzioni dello sviluppatore, questa misura sia stata studiata apposta per far leggere ai loggati solo la "propria lingua", quella delle impostazioni sulla propria utenza. Tuttavia, a noi appare molto limitante; sarebbe molto meglio non cercare d'imporlo, ma lasciarlo solo eventualmente come opzione.. .


[modifica] Link web


[modifica] Note

  1. ↑ Schiacciando, dove dice: SQL, o "Esegui la/le Query Sql"
  2. ↑ Lo trovate tramite un Programma FTP, sotto la Cartella "Skins", nella root dove avete installato il vostro mediawiki (vedi capitoli precedenti).
  3. ↑ Se volete mettere uno spazio, in Php, si scrive così: <?php echo "<br>"; . Oppure, una linea, così: <?php echo "<hr>"; . O, entrambi: <?php echo "<hr><br>"; -o anche solo <hr><br>, se lasciato al di fuori dei comandi Php (ossia, prima di <?php e dopo ?> ; tutto ciò che si trova al di fuori di questi simboli, viene infatti interpretato come normale html)-.
  4. ↑ Molte lacune, potrebbero anche derivare dal fatto che, il suo sviluppatore, sembra averla abbandonata; e la versione origiaria, era stata testata su mediawiki vers.10, e noi usiamo invece la .14 ..
  5. ↑ dentro Estensioni, dove avete installato il vostro mediawiki.
  6. ↑ Vedere sul Manuale Mediawiki inglese, per cercare e trovare i "prefissi internazionali" giusti da scriverci sopra.





Torna a: Manuali: Elenco.




Questa voce rappresenta un Articolo di Wikilibri scritto da voi lettori, o citato; non esprime quindi per forza il punto di vista enciclopedico in stile, tipico delle voci semplici. Per collaborare alla sua stesura, segui le linee guida appropriate per questo genere di voci.

Strumenti personali
to PDF
Visite
Crea un libro
Spagnolo
Non esiste ancora una traduzione in Spagnolo.
Inglese
Non esiste ancora una traduzione in Inglese.
Francese
Non esiste ancora una traduzione in Francese.