Многоязычные рекомендации по сочетаниям SQL Server, EF и MVC - PullRequest
1 голос
/ 31 декабря 2010

ASP.NET MVC, управление ресурсами выглядит достаточно для поддержки многоязычной поддержки приложений.

Но я удивляюсь практике в отношении данных.

Пользовательские истории;

  1. Пользователь установил культуру как en-US и видит все товары на английском языке.
  2. Пользователь установил культуру как fr-FR и увидел все товары на французском языке.
  3. Пользователь установил культуру как ru-RU и видит все товары на русском языке.
  4. Пользователь не имеет права изменять настройки культуры, и приложение никогда не будет обращаться к многоязычным ресурсам, оно будет использовать язык и культуру по умолчанию.

Ответы [ 2 ]

2 голосов
/ 31 декабря 2010

Я не уверен, что это именно то, о чем вы спрашиваете, но если вы хотите иметь локализацию на своем уровне БД, это можно сделать с помощью VIEW, которые полагаются на CONTEXT_INFO. Таким образом, вы всегда запрашиваете один и тот же VIEW, но он возвращает разные результаты на основе CONTEXT_INFO.

Подробнее об этом можно прочитать здесь: Локализация базы данных - списки поиска - более разумный способ

0 голосов
/ 31 декабря 2010

Может быть более элегантный способ сделать эту локализацию в базе данных, но я просто храню значения данных на разных языках в таблицах, например:

            WIDGETS
            widgetid
            widgetname nvarchar (default English)


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

А затем я либо создаю отдельные представлениянапример, view_WIDGETS_enus, view_WIDGETS_ruru), либо используйте код языка в предложении WHERE, либо передайте код языка пользователя в хранимую процедуру.Наши базы данных не должным образом «локализованы» в строгом смысле этого слова;у нас просто есть несколько различных переводов, доступных на основе основных родных языков нашей пользовательской базы: английский, испанский и французский.

Для дат мы всегда используем формат США, но с месяцемсокращенно: 15 марта 2010 года, вместо переключения между форматами дд / мм / ггггг и мм / дд / гггг.В нашей базе данных нет колонок с деньгами, поэтому мы не сталкиваемся с проблемами форматирования десятичной дроби или валюты.

...