سؤال

ASP.NET MVC, resource management is look like enough for application multlingual multiculture support.

But I am wondering practices about data.

User stories;

  1. User set culture as en-US and see all product items in English.
  2. User set culture as fr-FR and see all product items in French.
  3. User set culture as ru-RU and see all product items in Russian.
  4. User doesn't have right change culture settings and application never reach multilingual resources, it will use default language and culture.
هل كانت مفيدة؟

المحلول

I'm not sure this is exactly what you're asking about, but if you want to have localization in your DB-level, it can be done using VIEWs that rely on CONTEXT_INFO. This way you always query the same VIEW, but it would return different results based on the CONTEXT_INFO.

You can read more about this here: Database Localization - Lookup lists - smarter way

نصائح أخرى

There may be a more elegant way to do this localization in the database, but I just store the different-language data values in tables like this:

            WIDGETS
            widgetid
            widgetname nvarchar (default English)


            WIDGETSLOCAL
            widgetid      foreign key references WIDGETS(widgetid)
            language_code
            widgetname  nvarchar
            unique composite index on (widgetid, language_code)

And then I either create separate views (e.g. view_WIDGETS_enus, view_WIDGETS_ruru) or use the language code in the WHERE-clause, or pass the user's language code to a stored-procedure. Our databases are not properly "localized" in the strict sense of the word; we just have several different translations available based on the primary native languages of our user-base, which happen to be English, Spanish, and French.

For dates, we always use the US-format but with the month abbreviated: 15 MAR 2010 rather than switching between dd/mm/yyyyy and mm/dd/yyyy formats. Our database does not contain any money columns so we don't encounter decimal or currency formatting issues.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top