I have an asp.net web application which I want have multilingual support now. For some reasons, the management is not ready to use satellite assemblies or resource file. They want to have it table driven. So I created tables to store the text for each part of the page. I don't want to make a call to db every time the page control loads. Ex: if my page has 10 labels, I don't want to call my db 10 times to fetch the appropriate label text. Instead I want to load the labels only once and store it in memory and access from it thereafter.
What are the best approaches to do this? Where should I store it? In the Application variable? or the Application cache? What data structure is best for handling this? A list of custom LabelText class? I am confused.
I'd were you, i'd really really push for management to pay for a license of the WestWind WebToolkit. It contains a database driven resource manager that lets you edit everything resource-related in your app. You can even export the data to resource files if you're so inclined.
I've managed to have our current project use it, and it's been a real time saver.
Even if you don't want to/can't buy it, Rick Strahl based an article about this very subject, which you can find here and which is very interesting.
edit: for the record, i'm not affiliated to Rick Strahl in any way, except being a satisfied customer :)