Согласитесь со своим видением мышления.
В предыдущем проекте мы делали то же самое (сохраняли значения I18N в БД), в дополнение к традиционному I18N (файлы ресурсов в решении).
Причиной этого были специальные динамические данные (не статические строки), которые требовали перевода. У нас были спортивные состязания - такие как "Футбол", который нужно было перевести на их описание для конкретного языка.
Для этого у нас была простая справочная таблица с колонками (LCID - int, SportID - int, Description - nvarchar(256)
).
Хранимые процедуры / функции принимали языковой стандарт как целое число (например, испанский - 3082), тогда SQL возвращал бы соответствующее чувствительное к культуре описание на основе языкового стандарта. Таким образом, код веб-сервера не знал об этом за кулисами.
Таким образом, у вас могут быть следующие несколько строк:
Lcid SportID Description
3081 1 Soccer
3082 1 Futbol
Затем вы просто присоединяетесь к этой таблице в своем SQL, чтобы упростить I18N.
Небольшой недостаток этого метода заключается в том, что вашему SQL SP нужно запрашивать LCID в качестве параметра из кода веб-сервера.
Спорт были обновлены / импортированы с помощью массового импорта листов Excel, поэтому нам понадобился I18N в БД.
Это единственный способ, которым я могу представить возникновение основанного на БД I18N.