Ci sono diversi modi per affrontare questo problema. Nessuno di loro "il modo migliore" e tutti con problemi a breve oa lungo termine. La prima cosa da dire è che i siti multilingue non sono facili, i traduttori e le persone adorabili ma difficili da lavorare e la maggior parte dei programmatori vede il problema solo come tecnico. C'è anche un'altra dimensione, al di fuori dell'ambito di questa risposta, se stai traducendo o localizzando. Ciò implica guardare i costumi culturali del pubblico target e quindi adattare linguaggio, stile, layout, colore, carattere tipografico ecc. a quella cultura. Infine, non utilizzare la traduzione automatica, la traduzione automatica, per qualcosa di serio o se deve essere accurato e quando acquisisci traduttori assicurati che stiano traducendo da una lingua straniera nella loro lingua madre, il che significa che capiscono tutte le sfumature della lingua di destinazione.
Destra. Soluzioni. Sulla base del fatto che non vuoi riscrivere il sito, clona semplicemente il sito che hai e traduci le copie nella lingua di destinazione. Supponendo che la base di codice sia stabile, puoi utilizzare un VCS per gestire eventuali modifiche al codice. Puoi modificare singole parti del sito per adattarle alla lingua di destinazione, ad esempio il testo francese è in media il 30% più grande del testo inglese equivalente, quindi utilizzare un sito per fornire questo significa che potresti (avrai) problemi di formattazione e devi scambiare un file CSS diversi in entrata e in uscita a seconda della lingua. Potrebbe sembrare un modo goffo per farlo, ma per quanto tempo esisteranno i siti? Il sovraccarico di gestione di farlo in questo modo potrebbe essere inferiore rispetto ad altre opzioni.
Seconda via senza ricostruire. Sostituisci tutto il contenuto del sito corrente con i tag e poi metti la lingua diversa in file o tabelle db, annusa la lingua desiderata dagli utenti (hai utenti registrati che possono dare una preferenza o vuoi ottenere il tag della lingua del browser, oppure è sarà l'URL dot-com dot-fr, dot-de che effettua la scelta) e quindi sostituire i tag con la lingua di destinazione. Quindi è necessario affrontare i problemi di dimensionamento e i problemi di immagine separatamente. Questa soluzione è in vigore quando framework come Symfony e Zend implementano l10n.
Quindi potresti ricostruire con un framework o con gettext e possibilmente avere una soluzione più pulita, ma ricorda che i framework sono stati progettati per risolvere altri problemi, non per la traduzione e il componente di traduzione è entrato nel framework come soluzione parziale e non completa.
Il grosso problema con tutte le soluzioni è la manutenzione continua. Perché non solo hai una base di codice, ma anche più basi linguistiche da mantenere. A meno che tu tutto in un'unica soluzione non sia davvero intelligente ed efficace, sarà difficile svolgere un'attività in corso.