Istnieje wiele sposobów radzenia sobie z tym problemem. Żaden z nich nie jest „najlepszy sposób” i wszyscy mają problemy w perspektywie krótko- lub długoterminowej. Pierwszą rzeczą do powiedzenia jest to, że strony wielojęzyczne nie są łatwe, tłumacze i wspaniali ludzie, ale ciężko się z nimi pracuje, a większość programistów postrzega problem wyłącznie jako techniczny. Istnieje również inny wymiar, poza zakresem tej odpowiedzi, dotyczący tego, czy tłumaczysz, czy lokalizujesz. Obejmuje to przyjrzenie się obyczajom kulturowym docelowych odbiorców, a następnie dostosowanie języka, stylu, układu, koloru, kroju pisma itp. do tej kultury. Wreszcie, nie używaj MT, tłumaczenia maszynowego, do niczego poważnego lub jeśli musi być dokładne, a pozyskując tłumaczy, upewnij się, że tłumaczą z języka obcego na swój język ojczysty, co oznacza, że rozumieją wszystkie niuanse języka docelowego.
Prawidłowy. Rozwiązania. Zakładając, że nie chcesz przepisywać witryny, po prostu sklonuj witrynę, którą masz i przetłumacz jej kopie na język docelowy. Zakładając, że baza kodu jest stabilna, możesz użyć VCS do zarządzania wszelkimi zmianami w kodzie. Możesz dostosować poszczególne części witryny, aby pasowały do języka docelowego, na przykład tekst francuski jest średnio o 30% większy niż odpowiednik tekstu w języku angielskim, więc korzystanie z jednej witryny do dostarczania tego oznacza, że możesz (będzie) mieć problemy z formatowaniem i będziesz musiał zamienić różne pliki css wchodzące i wychodzące w zależności od języka. Może się to wydawać niezręcznym sposobem, ale jak długo będą istnieć witryny? Narzut kierownictwa związany z robieniem tego w ten sposób może być mniejszy niż w przypadku innych opcji.
Drugi sposób bez przebudowy. Zastąp całą zawartość bieżącej witryny tagami, a następnie umieść inny język w plikach lub tabelach bazy danych, powąchaj żądany język użytkownika (czy masz zarejestrowanych użytkowników, którzy mogą wybrać preferencje, czy chcesz uzyskać tag języka przeglądarki, czy będzie to adres URL kropka-com kropka-fr, kropka-de, które dokonują wyboru), a następnie zastąp tagi językiem docelowym. Następnie musisz osobno zająć się problemami z rozmiarami i obrazami. To rozwiązanie działa, gdy frameworki takie jak Symfony i Zend robią, aby zaimplementować l10n.
Następnie możesz przebudować za pomocą frameworka lub za pomocą gettexta i być może uzyskać czystsze rozwiązanie, ale pamiętaj, że frameworki zostały zaprojektowane do rozwiązywania innych problemów, a nie tłumaczenia, a komponent translacji pojawił się we frameworku jako rozwiązanie częściowe, a nie pełne.
Dużym problemem wszystkich rozwiązań jest ciągła konserwacja. Ponieważ nie tylko masz bazę kodu, ale także wiele baz językowych do utrzymania. O ile wszystko w jednym rozwiązaniu nie jest naprawdę sprytne i skuteczne, to bieżące zadanie będzie trudne.