Traduzione in italiano di Oscailt
Introduzione
Siamo convinti che tradurre da soli la propria installazione di Oscailt sia un buon metodo per prendere confidenza con questo CMS, per vedere cosa offre, cosa c'\xE8, avere un'idea di quali moduli sono presenti, ecc.
Inoltre la traduzione di certe parti potrebbe non essere in linea con la policy del proprio IMC, o non essere di gradimento, o che cazzo ne so.
Introduzione tecnica
La traduzione del sito non avviene semplicemente copiando dei file tradotti nella directory apposita.
I file tradotti sono in xml, e vanno importati. L'operazione di
Import, agisce oltre che sul disco, anche nel database.
In altre parole va importato un template, come quelli proposti in fase di installazione. Tale template \xE8 stato ricavato facendo un
Export dal sito toscano.
Import ed
Export sono operazioni che si effettuano dal pannello di amministrazione web.
Cosa fare
Attenzione: io personalmente non sono riuscito ad importare questo
template in un sito
gi\xE0 installato. Cos\xEC facendo mi si sono "duplicati" tutti i moduli. Comunque non ho insistito pi\xF9 di tanto.
Quindi per farla semplice, queste operazioni vanno fatte nella
fase iniziale, al momento dell'installazione di Oscailt, prima di lanciare
http://yourhost.i.o/install.php
1. Decomprimere
questo file e copiarne il contenuto (la directory
italiano_toscana/
e il file
italiano_toscana.xml
) nella directory
/var/www/oscailt/xmldata/imports
(dove /var/www/oscailt/ \xE8 la tua document root)
2. Lanciare l'installazione (
http://yourhost.i.o/install.php
).
3. Al momento di selezionare il template da importare, scegliere
italiano_toscana
Altro
Questo template contiene sia i moduli in inglese che le loro traduzioni in italiano.
Ricordare che nella cartella
tools
del pacchetto di Oscailt, ci sono due script php:
uninstall.php
e
wipedb.php
. Copiali nella root del tuo spazio web, e se qualcosa va male, puoi razzare tutto puntando il tuo browser a
uninstall.php
e ripartire da zero. (NB: ricordati di cancellare questi due script una volta terminate le prove!).
Dopo
Ovviamente vanno adattate tutte le traduzioni dei moduli al proprio sito (per esempio molti moduli contengono la dicitura Toscana), fra cui sicuramente i documenti statici.
IMPORTANTE IMPORTANTE IMPORTANTE IMPORTANTE
Sembra che l'importazione scazzi per quanto riguarda gli ID dei tipi (type_id), ovvero ce ne mette di arbitrari. E sarebbe poco male, se non che nei vari script PHP ci sono sezioni dove viene fatto il controllo se il type_id==1.
Il type ID
1 corrisponde alle Feature!
Questo problema comporta la visualizzazione in prima pagina di tutti i tipi di notizia (notizie, opinioni, comunicati) mescolati, e non solo le feature.
Per risolvere la cosa basta (con per esempio phpmyadmin) intervenire sulla tabella blabla_types e associare l'id "1" al tipo "Feature".
Stessa cosa vale per gli "Eventi", deve avere l'id "5".
Traduzione interfaccia di admin
Questi due file vanno a finire in
/var/www/oscailt/xmldata
e traducono (alcune parti) l'interfaccia di admin:
Altre parti traducibili, altra roba
Per tradurre alcune sezioni del sito (es. Agenda, Archivio, Ricerche, ecc.) bisogna agire direttamente dentro i file php in
/var/www/oscailt/objects
Calendario
Vanno tradotti, nei punti opportuni, i file
objects/calendar.inc
e
objects/indyruntime/eventsdisplay.inc
Nel secondo, va anche modificata la riga
627
: mettendo
strftime("%a %e",$adjusted_time);
per formattare la data.
Charset, locale, ecc.
Vanno fatte delle prove.
Per esempio
objects/utilities.inc
sembra avere problemi, non riesce a individuare (quando fa
if(setlocale(LC_ALL, $loc)
ecc.) il locale del sistema (nostro caso), perci\xF2 lo abbiamo
forzato all'inizio del file
config/systemconfig.php
con
setlocale(LC_ALL, 'it_IT.UTF-8');
.
1 comment,
2 comments, ... in italiano ci vanno messe la
o e la
i 
.
Bisogna agire nel file
/objects/indyruntime/newswiredisplay.inc
, all'interno della funzione
writeCommentDetails
.
Esempio:
function writeCommentDetails(&$story)
{
global $system_config;
if($story->comments_amount > 0)
{
$time_format = $this->getDisplayOption('storydate_format');
if($time_format == "") $time_format = $system_config->default_strftime_format;
$this->write_attachment_detail_seperator();
$cmt = 'comment';
// case - italianizzato
if($story->comments_amount>1) {
$cmt .= 'i';
} else {
$cmt .= 'o';
}
$cmtlnk = '<a class="category-text" href="'.$this->getStoryLink().'#comments">'.$story->comments_amount." ".$cmt."</a>";
echo $story->getIconTag("comment");
echo " ".$cmtlnk;
// case - italianizzato
echo " (ultimo - ". strtolower(strftime($time_format,$story->time_last_comment_posted+$system_config->timezone_offset)).") ";
}
}
Solo italiano
Per afre in modo che anche visualizzando il sito con un browser in inglese, appaia tutto quanto in italiano, bisogna disattivare la Lingua inglese nell'apposito men\xF9 di configurazione del pannello di amministrazione (Modifica Lingua).
Per togliere il riquadro in fondo a ogni post (Visualizza questa pagina in Italiano Inglese) bisogna impostare
$oscailt_basic_config['show_page_translations_box'] = false;
nel file
config/systemconfig.php
.
Avvertenze
Non garantiamo il successo dell'importazione. Non garantiamo la corretta traduzione delle varie parti. :-)
Vengono importati anche dei moduli che potrebbero non funzionare o non servirvi: quelli che si occupano della visualizzazione dei post nascosti, e quelli della sezione Selezione nel newswire
Ringraziamenti
si ringrazia indyabruzzo per le prove
si ringrazia psylocibe di indycalabria per la soluzione al problema del type_id=1