I am building an ASP.Net site that will pull dynamic data from SQL server. The site will be built with localization/globalization foundations in anticipation that in a year or so the site will start holding translations for non-english speaking users. I already know how acomplish this in ASP.Net for the static content but I would like some suggestions on a DB design for the dynamic data. I have toyed with the following 3 ideas and would like some inpute on them and any thoughts on other ways.
1: Create a unique database for each language set and use ASP.Net to dynamicly change which DB the data comes from. 2. Create copies of each table appending the local code to hold the translated data (i.e. Table-en, Table-fr, Table1-en, Table1-fr) 3. Leave DB and table design intact (only adding a single column to hold the local code) and insert translated data as a new row entry.
-- If I get used to envying others... Those things about my self I pride will slowly fade away. -Stellvia
I'd go with 3. Assuming you also want to default to some kind of fallback translation (English, say) for entries that have not been translated, I'd recommend wrapping it all up in views and/or SPs such that the caller doesn't really know how it all works because it can get funky.