Има няколко начина за справяне с това. Никой от тях не е "най-добрият начин" и всички имат проблеми в краткосрочен или дългосрочен план. Първото нещо, което трябва да се каже, е, че многоезичните сайтове не са лесни, преводачи и прекрасни хора, но са трудни за работа и повечето програмисти виждат проблема само като технически. Има и друго измерение, извън обхвата на този отговор, по отношение на това дали превеждате или локализирате. Това включва разглеждане на културните нрави на целевата аудитория и след това приспособяване на език, стил, оформление, цвят, шрифт и т.н. към тази култура. И накрая, не използвайте MT, машинен превод, за нещо сериозно или ако трябва да бъде точен и при придобиване на преводачи се уверете, че превеждат от чужд език на родния си език, което означава, че разбират всички нюанси на целевия език.
правилно. Решения. Въз основа на това, че не искате да пренапишете сайта, просто клонирайте сайта, който имате, и преведете копията на целевия език. Ако приемем, че кодовата база е стабилна, можете да използвате VCS за управление на всякакви промени в кода. Можете да настроите отделни части на сайта, за да отговарят на целевия език, например френският текст е средно с 30% по-голям от еквивалентния английски текст, така че използването на един сайт за предоставяне на това означава, че може (ще) имате проблеми с форматирането и ще трябва да размените различни css файл във и изход в зависимост от езика. Може да изглежда тромав начин да го направите, но тогава колко дълго ще съществуват сайтовете? Разходите за управление, ако го направите по този начин, може да са по-малко от другите опции.
Втори начин без възстановяване. Заменете цялото съдържание в текущия сайт с тагове и след това поставете различния език във файлови или db таблици, подушете желания език на потребителите (имате ли регистрирани потребители, които могат да направят предпочитание или искате да получите етикета за език на браузъра, или е това ще бъде URL dot-com dot-fr, dot-de, които правят избора) и след това заменете етикетите с целевия език. След това трябва да разгледате поотделно проблемите с оразмеряването и проблемите с изображението. Това решение е в сила, когато рамки като Symfony и Zend прилагат l10n.
След това бихте могли да изградите отново с рамка или с gettext и вероятно да имате по-чисто решение, но не забравяйте, че рамки са проектирани да решават други проблеми, а не превод и компонентът за превод е влязъл в рамката като частично решение, а не като пълно.
Големият проблем с всички решения е текущата поддръжка. Защото не само имате кодова база, но и множество езикови бази, които да поддържате. Освен ако всички в едно решение не сте наистина умни и ефективни, тогава текущата задача ще бъде трудна.