- Home
- Categorie
- Coding e Sistemistica
- Coding
- Sito Multilingua
-
Puoi interpretare la questione con la massima liberta:
- tutte le pagine in una cartella
- creare una cartella per ogni argomento in cui le pagine si intitolano italiano.php, english.php, espanol.php...
Lo schema proposto da te è valido, poi la correttezza di qualunque soluzione di solito risiede nell'applicazione, e non nei principi.
Buon lavoro!
-
Se i diversi siti sono esattamente la copia uno dell'altro e l'unica cosa che cambia è la lingua ti consiglio di usare nel tuo codice delle etichette (le costanti PHP vanno bene) e poi nel database o in un file esterno definisci queste etichette a seconda della lingua del sito
Quindi nei tuoi file HTML avrai una cosa tipo
[HTML]<html>
<body>
<h1>
<?php echo ETICHETTA_H1 ?>
</h1>
</body>
</html>[/HTML]
per poi avere ad esempio diversi file della lingua tipo:italiano.php
[PHP]<?php
define('ETICHETTA_H1', 'H1 in italiano');
?>[/PHP]inglese.php
[PHP]<?php
define('ETICHETTA_H1', 'H1 in english');
?>[/PHP]...
Così il tuo codice "di base" non cambia mai e devi solo cambiare questi file (o una tabella nel db).
-
Si con la programmazione ad oggetti credo che sia più fattibile farlo evitando di fare copie di cartelle, perchè poi non so google come potrebbe vedere questa duplicazione.
Ma quello è valido ad esempio solo per il testo statico e non per gli articoli scritti in italiano giusto ?
Io dovrei fare un sito a più lingue, però il problema è che vengono scritta articoli al giorno in italiano, come faccio a farli diventare inglese ?
-
Beh per quelli puoi mettere un bottone "traduci con Google Translate" - trovi maggiori info qua: https://translate.google.com/manager/website/
-
Ma secondo voi, non è poco professionale ?
-
Eh beh direi! Ovviamente la soluzione migliore è avere articoli in italiano e in inglese (e in ogni altra lingua offerta, ovviamente), non tradotti automaticamente.
-
Io appunto questa cosa voglio capire.
A questo punto dovrei scrivere gli articoli sia in italiano che in inglese giusto ? e dovrei avere gli stessi file per le lingue diverse ? Immaginate una modifica ad un file....
-
Ma tu stai usando un qualche CMS (anche fatto in casa) o sono tutte pagine "statiche"?
-
CMS fatto in casa da me da zero. Quindi sono tutte pagine dinamiche.
-
Ok, e allora in questo caso puoi gestire le "etichette" come ti ho detto (ad esempio le voci dei menu, le pagine "statiche" tipo il chi siamo e altro) e avere due textarea per gli articoli dove metti la versione in italiano e in inglese. Poi a seconda della lingua scelta (tipo http://it.nomesito.com e http://en.nomesito.com, oppure http://nomesito.it e http://nomesito.com) scegli la lingua (e i file) giusti
-
Ok ti ringrazio per le risposte!
-

-
Io solitamente procedo così:
- creo un file it.php, en.php, etc...per ogni lingua che voglio creare. Dentro ogni file ho del codice tipo:
[PHP]
define('menu_contatti', 'Contatti');
[/PHP] - ogni url del mio sito sarà del tipo index.php?lang=it
- all'apertura del sito avrò un link del tipo index.php, allora nel file index.php effettuo un controllo:
[PHP]
if(isset($_GET['lang']){
$lang = $_GET['lang'];
} else{
//Lingua di dafault
$lang = 'it';
}
include($lang.'.php);
[/PHP]- In ogni link presente sul sito passerò la variabile $lang.
Spero sia stato utile.
- creo un file it.php, en.php, etc...per ogni lingua che voglio creare. Dentro ogni file ho del codice tipo:
-
@infosicurezza said:
Si con la programmazione ad oggetti credo che sia più fattibile farlo evitando di fare copie di cartelle, perchè poi non so google come potrebbe vedere questa duplicazione.
Dal lato SEO non credo ci siano problemi in una struttura degli url "a cartelle", dato che tutti i cms presentano degli indirizzi simili, e se non lo fanno in modo nativo è sempre auspicato trovare qualche plugin che lo implementa.