Para los mensajes de base de datos y mensajes personalizados creo que no tengo problema, me hago en la BD una tabla con los mensajes, y cada vez que un procedimiento de base de datos debe dar algún mensaje pues busco en la tabla el idioma correspondiente y ok...
El problema es para los rótulos de los formularios y los mensajes de la parte de ASP. Porque, lo que se me ocurre es hacer una función con un array (GIGAAAAANTEEEE) con todos los mensajes y rótulos, entonces cada vez que me toque hacer Response.Write('Nombre: ') en vez de eso hago Response.Write(Mensaje[142], idioma))
Pero esa alternativa no me convence, porque para una web de dimensiones más bien grandes, el array de rótulos se puede hacer enorme y la búsqueda dentro de esa array muy lenta, aparte de que me parece un poco engorroso de mantener, ¿como saber si ya he metido una palabra o las estoy metiendo 3 veces?
¿Sabéis como se suelen hacer esats cosas? ¿Tenéis alguna idea?

Gracias