database driven localization resource file?

I'm going to be honest I'm not even sure if I am formulating my title right at this point and what the searches I've been doing for the past hour point to ASP specific work so here goes.

I'm in the process of rebuilding some of our in house software because it's all in VB6 with an MS Access database as its back end. It's going to be rebuilt from the ground up in VB.Net with MS SQL Server as a back end and if I have my way an entirely rebuilt table structure with at least a little bit of data normalization as right now it's, well... not.

One of the requirements that I have to take into consideration is Localization as we're expending into territories that would prefer if they could use their own language as well as have their own cultural settings when it comes to currency and such.

I've been looking up the Localization feature of VB.NET as well as CultureInfo and I get the gist of it but what I can't seem to put my finger on is whether or not this can be database driven and copied/added on the fly as I'm really not keen on creating new resource files, adding code and recompiling every time a new language is introduced to the company.

What I have right now is a set of tables which I call the Lexicon which basically has;

  • An that says what and where the thing is.

  • Which "Company" it belongs to

  • The Language Code

  • The Translation

So as a quick sample

+-------------------+-----------+-------------+-----------------------------------------------+
| LexID             | CompanyID | LangCode    | Description                 
+-------------------+-----------+-------------+-----------------------------------------------+
| P109              |        1  |         en  |         PREPAID VANILLA CARD 3.95 FEE         |
| P109              |        1  |         fr  |         FRAIS CARTE PRE-PAYE VANILLE 3.95     |
| P110              |        1  |         en  |         PREPAID VANILLA CARD 4.50 FEE         |
| P110              |        1  |         fr  |         FRAIS CARTE PRE-PAYE VANILLE 4.50 FEE |
+-------------------+-----------+-------------+-----------------------------------------------+

This is from the product lexicon as I'm not really done building the interface lexicon table yet.

Anyway, what I'm trying to get a handle on is whether or not it's possible on program load to go.

Read the DB, and see what cultures are configured for this "Company", Add those Cultures on top of the "Default" and then duplicate the default language resource files into memory(as from what I've found so far it doesn't seem like the embedded resource language file is actually editable), do the same with the whole interface lexicon and just swap strings around based on selected language.

Any input on how to proceed or if there's another way I need to approach database driven translation and culture modification/addition at run time would be greatly appreciated as I'd really like to set this project up properly from the beginning.

Thank you.