Scrivo qui la "guida all'uso" per
DarwinNE così spiego anche i miei lavori e se qualcuno ha voglia può partire da qui per future migliorie al sito, facendo la sua fork del progetto.
COME HO IMPOSTATO IL SITO IN MULTILINGUAPer trasformare il sito originale in inglese, in uno multilingua (per ora ho tradotto solo in italiano) ho applicato lo standard dell'industria ed eseguito le seguenti operazioni.

Ogni pagina HTML è stata trasformata in una pagina PHP

Tutti i testi (visibili o meno) delle pagine sono stati sostituiti da costanti PHP che vengono richiamate in linea all'originale codice HTML.

Siccome PHP non è supportato dalla piattaforma che ospita il sito, l'ho utilizzato solo come linguaggio intermedio, da lanciare su un server simulato sul proprio PC e ricavarne il codice HTML da pubblicare. Questo in virtù del fatto che il mancato supporto di PHP può in futuro essere implementato anche da github.

tutte le definizioni della lingua (le costanti), vengono ospitate nelle cartelle multilanguage_tool/languages/* vi è una cartella per ogni lingua.

In ogni cartella della lingua si trovano file nominati come le pagine, contenenti tutto il testo della pagina suddiviso e ordinato.

Si aggiungono due pagine header.php e footer.php che contengono la traduzione di questi elementi della pagina web. Essendo comuni a tutte le pagine, è molto più semplice tradurli una sola volta.

Nella cartella multilanguage_tool vi sono tutti i file .php delle pagine, quelli che attingono alle definizioni di lingua nelle cartelle languagges/*

Le suddette pagine .php forniscono la versione della lingua che gli si richiede tramite parametro URL, ad esempio per visualizzare la pagina download.php in inglese, sarà necessario digitare dowload.php?lang=en. Per l'italiano download.php?lang=it.

Ne ho approfittato anche per aggiungere un file contenente in maniera centralizzata alcune informazioni ricorrenti sul sito. Questo file è config.php e contiene i link per il dowload, la versione di FidoCadJ e cose di questo tipo. Modificando un elemento in questo file, lo si trova aggiornato per tutto il sito. Comodo, no?

config.php contiene anche la data dell'ultimo aggiornamento visualizzata in ogni pagina.

Come scrivevo il PHP è usato come linguaggio intermedio e a noi servono pagine in HTML puro da pubblicare. In pratica è come se avessimo un codice da compilare e lo facciamo tramite gli script PHP che ho inserito.

Si potrebbe chiaramente interrogare a mano ogni pagina PHP e salvare il codice sorgente HTML, poi pubblicarlo. Ma siccome voglio bene a
DarwinNE, ho approntato un sistema automatico contenuto nella pagina upadate_page_content.php

Navigando su questa pagina si avvia uno script che interroga tutte le pagine presenti in multilanguage_tool/ per ogni lingua e ne salva automaticamente l'output nella cartella php_to_html_outpu/* relativa alla lingua.

Lato utente vi sono le semplici bandierine della lingua che spostano nelle cartelle di navigazione.

Siccome il sito principale è ormai ben posizionato, in inglese, non l'ho spostato. Mentre le altre lingue vivranno nella cartella lang/*

quando si clicca sulla bandierina italiana ad esempio, ci si sposta nella cartella lang/it e tutta la navigazione procederà in quell'ambito perché i link interni al sito sono relativi alla posizione e nella cartella lang/it è riprodotta l'intera struttura.

tutta la cartella multilanguage_tool, che probabilmente verrà pubblicata, è comunque schermata dal file robots.txt all'analisi da parte dei motori di ricerca.
PICCOLO MANUALE PRATICO PER DARWINDue righe operative per
DarwinNE o per chi in futuro si troverà a lavorare con il sito.
NUOVA VERSIONE DI FIDOCADJSe esce una nuova versione di FidoCadJ, basta modificarla nel file config.php alla voce "CURRENT_VERSION" e lanciare la pagina update_page_content.php per trasferire tutte le informazioni nel codice HTML.
Poi devi prendere i file contenuti nelle cartelle della lingua e sostituirli a quelli originali. Il file nella cartella multilanguage_tool/languages/italian/ vanno copiati nella cartella lang/it , mentre quelli nella cartella multilanguage_tool/languages/english/ li devi copiare nella directory principale del sito.
Tutto qua. Come scrivevo questa operazione del passaggio ti permette di verificare che i file prodotti dal sistema automatico siano corretti prima di renderli "pubblici". La elimineremo se tutto fila liscio.
MODIFICHE AL CONTENUTO DEL SITOSe le modifiche riguardano solo il testo, devi andare nei file di definizione della lingua in multilanguage_tool/languages/*
Dopo ogni modifica procedi come sopra dal lancio della pagina update_page_content.php in poi.
MODIFICHE ALLA STRUTTURA DEL SITOqueste modifiche, che non dipendono dalla lingua, puoi farle nelle pagine all'interno di multilanguage_tool/
AGGIUNTA DI NUOVE LINGUEIo ho tradotto solo in italiano, ma chiaramente si potranno aggiungere altre lingue. Per farlo è necessario aggiornare i seguenti elementi:

aggiungere la cartella che ospiterà le pagine in lingua nella directory lang/

aggiungere ad ogni pagina .php nella cartella multilanguage_tool la lingua nel primo controllo switch

aggiungere la bandierina nella cartella images/flags/ di formato 40x27 pixel - jpg. Tale bandierina va anche aggiunta al menu come quella italiana, nelle pagine all'interno della cartella multilanguage_tool

aggiungere alla cartella languages/ la cartella contenente tutti i file delle definizioni linguistiche nella nuova lingua

aggiungere una cartella di destinazione nella cartella php_to_html_output

replicare la riga 9 e 10 di codice del file update_page_content.php per la nuova lingua
NOTA: mi sembra di ricordare che hai qualche esperienza con il PHP e sono sicuro non avrai problemi a far girare in locale il sito, altrimenti chiedi pure.
