- Home
- Categorie
- Coding e Sistemistica
- PHP
- Sito multilingua
-
basta utilizzare dei file per i testi in php e a seconda dell'utente fai includere uno dei due.
niente database andrebbero solo a rallentare l'esecuzione della pagina.
Ciao
-
Io ho creato un file ita.php e uno eng.php; all'interno di questo file c'è un array (stesso nome) con i testi nella lingua corrispondente.
A seconda della pagina, includo il file ita o eng, e richiamo i testi corrispondenti (avendo in pratica lo stesso array, strutturato uguale, c'è da cambiare solo l'include).Presi l'idea da questo forum, mi pare
Michele
-
Grazie ad entrambi per i suggerimenti.
Tuttavia la parte html del mio sito viene generata utilizzando una classe php.
In poche parole ho una classe 'layout' che genera l'html di base quando viene istanziata. Poi i vari metodi della stessa creano l'html caratteristico della singola pagina.Questo semplifica notevolmente il codice della singola pagina che se pur molto complessa, si riduce a 15/20 righe.
Avevo pensato ad un metodo della stessa classe che attingesse da un DB,ma se me lo sconsigliate direi che procedere come segue è la soluzione migliore.
Nella pagina faccio un include dell'array-->passo l'array al costruttore della classe 'layout'-->definisco gli attributi estraendoli dall'array passato-->uso gli attributi nei singoli metodi.
Che ne dite?
-
Azz... negativo...non riesco ad includere un filecome mi avete detto.
Come si fa ad includere un file in una classe?
-
Includi il file prima di includere la calsse e poi nella classe fai
global $nome_array_di_lingua;
-
Buon giorno a tutti, devo premettere che anche io ho lo stesso problema di dover fare un sito in quattro lingue.
Io avevo pensato, per non complicarmi la vita, visto che i testi me li devo scrivere in ogni caso, mi creo 4 cartelle sul server in ognuna delle quali vi è il sito nella lingua interessata. All'apertura del sito farei caricare una pagina che chieda all'utente in quale lingua voglia navigare e cliccando sulla lingua italiana (ad esempio) il link indirizza l'utente alla cartella della lingua italiana e naviga tranquillamente in quel sito. Quindi è come se ci fosse un sito con all'interno 4 siti.
Questa soluzione per me (visto che non sono un mostro in php) è la più semplice visto che i menu di navigazione li includo e tutto il testo dinamico lo faccio aggiornare al cliente.
Loris 3000
-
@Loris3000 said:
All'apertura del sito farei caricare una pagina che chieda all'utente in quale lingua voglia navigare e cliccando sulla lingua italiana (ad esempio) il link indirizza l'utente alla cartella della lingua italiana e naviga tranquillamente in quel sito. Quindi è come se ci fosse un sito con all'interno 4 siti.
però in questo modo se modifichi una pagina del sito (nella struttura) devi copiare la modifica in tutte le cartelle, mentre forse è più comodo fare le modifiche una sola votla, no?Michele
-
si hai ragione, ma io, visto che non sono tanto esperto, cerco di fare la grafica (menu, layout, immagini) tutte in pagine separate e dopo le includo nella pagina. Quindi se io modifico l'aspetto del menu lo cambio una sola volta per il sito italiano, dopo lo copio nelle altre cartelle e traduco solo le voci del menu. Però ti ripeto, io sto pensando di fare così anche perchè mi riesce più facile. Chiaramente lo capisco bene che sarebbe meglio utilizzare un db.
Loris3000
-
@Loris3000 said:
si hai ragione, ma io, visto che non sono tanto esperto, cerco di fare la grafica (menu, layout, immagini) tutte in pagine separate e dopo le includo nella pagina. Quindi se io modifico l'aspetto del menu lo cambio una sola volta per il sito italiano, dopo lo copio nelle altre cartelle e traduco solo le voci del menu. Però ti ripeto, io sto pensando di fare così anche perchè mi riesce più facile. Chiaramente lo capisco bene che sarebbe meglio utilizzare un db.
Loris3000no, niente db.
basta dichiarare un array, ad esempio :$WORDS = array( "ciao" => "hello", "chisono" => "i'm a pheego" ) ```sarà l'array nel file eng.php [nb: il codice è probabilmente sbagliato, ma la sostanza c'è]. nel file ita.php avrò:
$WORDS = array(
"ciao" => "ciao",
"chisono" => "sono un figo"
)Come scegliere il file? nella prossima lezione :p Io, ad esempio, mando una variabile GET alla fine dell'indirizzo nella pagina, variabile che si modifica cliccando sulla bandierina apposita. Michele
-
Grazie. Ho infatti adottato quella soluzione nel sito in firma.