This db application is for a new social networking/dating website I am building. Basically english and spanish are the initial languages. I want people to be able to enter their info in their native language but I want their info queryable in another language, i.e. enter in spanish and someone speaking english can query your info and receive it in english....
I have to ask this - if some young lady has entered all her details in Spanish and I can only speak English then is there much point in me being able to read her details? or would you provide a translator for the initial date?
It would also be be very inefficient to search through tables while doing "on the fly" translations. Easiest to code would be having drop down lists for the things that people search for and then just store a code for each interest etc but store and display the correct translation for each language. This will be efficient but won't allow people to be very descriptive ie someone might be able to choose "I like animals" from a drop down but then probably won't be able to select "but I only like spiders".
Perhaps the drop down fields will be the only searchable fields while the text entry fields (in the users language) can be translated into other languages if a user wants to see them. You could also cache these translations so you don't have to translate them again.
Perhaps it would be better to translate everything the user types in into all the languages that the user can speak (no point showing the user to people who she can't communicate with). Then you could do searches on the translations.