I'm working on a similar globalization, where there is much dynamic content stored in the database. The approach I'm taking to allow for multilingual dynamic data is like this: create table Item ( ItemID ,Sku ,Price ,Title -- invariant, fallback culture ) create table Item_Culture ( ItemID ,CultureCode -- ex: en-US, en-CA, fr-CA, en-UK, fr-FR, en, fr ,Title ) select i. ItemID, i.
Sku, i. Price, coalesce(ic. Title, i.
Title) as Title from Item I left outer join Item_Culture ic on ic. ItemID = i. ItemID and ic.
CultureCode = @CultureCode Where @CultureCode is a parameter passed in from your application, and a Culture table contains a list of your different languages/cultures for reference or to specify fallback language dependencies You can expand this for multiple fallback languages if need be. It's a bit of a hit on the database compared to a single language implementation, but will accommodate the dynamic nature of your data, and that's just a cost of a multilingual dynamic site. Caching will be your friend if you have data that doesn't change too rapidly to help reduce the added database load.
I'm working on a similar globalization, where there is much dynamic content stored in the database. The approach I'm taking to allow for multilingual dynamic data is like this: create table Item ( ItemID ,Sku ,Price ,Title -- invariant, fallback culture ) create table Item_Culture ( ItemID ,CultureCode -- ex: en-US, en-CA, fr-CA, en-UK, fr-FR, en, fr ,Title ) select i. ItemID, i.
Sku, i. Price, coalesce(ic. Title, i.
Title) as Title from Item I left outer join Item_Culture ic on ic. ItemID = i. ItemID and ic.
CultureCode = @CultureCode Where @CultureCode is a parameter passed in from your application, and a Culture table contains a list of your different languages/cultures for reference or to specify fallback language dependencies. You can expand this for multiple fallback languages if need be. It's a bit of a hit on the database compared to a single language implementation, but will accommodate the dynamic nature of your data, and that's just a cost of a multilingual dynamic site.
Caching will be your friend if you have data that doesn't change too rapidly to help reduce the added database load.
Think about how you retrive lists of objects are they cached are they filtered / sorted / paged are they searched are they accessed by other applications (reports, partners ) The answer determines how much of the translation logic can be in the application and how much can be in the database. The application I work on right now has lists of objects that are accessed only in the application. Only 2 properties are translated and I don't have to sort by these properties.
I load lists of objects and every object already has translations for all languages saved in a dictionary. The nice think is that my cache only has one entry per key. Thinks get more difficult if you need to search, filter and sort by translated properties.
I would try to have the logic in the database then.
As the public seeks answers about the future impacts of climate change, some climatologists are growing increasingly uneasy about the localized predictions they are being asked to make. By fred pearceNow that the world largely accepts our climate is changing, and that humans are to blame, we all want to know what the future holds for our own backyard. How bad will it get?
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.