Sorry for the confusion... In the modules there are two types of data. First we have text label which are populated from the localization resources (This is what I call static) ie: The “Add new event” button that allows user to add a new event.
The second type of data comes from the database (This one is what I call dynamic). This data is utilized to populate the module content. Ie. Event module will have events information that is stored and retrieve from the DB.
So if we have a system that supports two languages, we usually store all the static content in the localization resources per language. When we switch language, the app loads the proper localization resources and the translation is applied. Therefore all buttons, label etc… are translated. But the content within the module itself is not translated because it will only display what was stored in the DB. So if it was stored in English you will have a French interface with an English events.
To have a fully bilingual system, you need to store the representation of an event in both languages within the DB. So when ever you switch language, the interface is fully translated. To do this, all DB table have field duplication in various language. Ie Events.DescriptionEnglish and Events.DescriptionFrench. The input screens, provides both field to be populated. For retrieval and display of the data, we can either resolve it within the SPOC by passing in a language parameter. Another way is to return both languages to the .net application and resolve the proper language to display from the middle tier. This makes a fully bilingual system :)
Hope I this clarifies my first request.
Joel