Может быть более элегантный способ сделать эту локализацию в базе данных, но я просто храню значения данных на разных языках в таблицах, например:
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 года, вместо переключения между форматами дд / мм / ггггг и мм / дд / гггг.В нашей базе данных нет колонок с деньгами, поэтому мы не сталкиваемся с проблемами форматирования десятичной дроби или валюты.