Hombre, las opciones son:
1) Traducir la web en los 3 idiomas, haciendo 3 webs distintas (3 carpetas, es eng y fr por ejemplo) y pones que la main sea en español, y luego las tipicas banderitas o los idiomas en el header o donde quieras, y si le clica ahi pues se carga la carpeta con el idioma y ya esta. Esto es lo que hace la gran mayoria de gente.
2) Mas sofisticado es hacer un index normal, y como dices en una BBDD meter todo el texto, en funcion del idioma seleccionado carga unos u otros (tabla ES, tabla ENG, tabla FR, etc.), es basicamente lo de la opcion 1) pero con BBDD, engorroso o no, pues es igual, es mas comodo hacer 3 carpetas con 3 webs enteras, pero claro si las webs son muy gordas puede ocupar mucho...
3) Y para mi la mas ordenada que se me ocurre:
- Te montas un index que mediante script vea de donde es el cliente. En una BBDD metes todo el texto y carga en funcion de campos. Luego el script carga en funcion de la localizacion una tabla con el idioma u otra, por ejemplo te metes desde españa pues carga el ES, desde francia pues el FR, y luego desde cualquier otro lado o inglaterra pues el ENG.
Esto no es dificil pero es lo mas costoso, claro, eso tendras que valorarlo en funcion de lo que te van a pagar.
Yo como dev de webs tambien, normalmente te pagan poco o menos por traducir, asi que montas lo tipico de las banderitas para clicar y que cargue otra web en otro idioma y pista.