Я использую базу данных вместе с утилитой, которая генерирует файлы resx. База данных может хранить несколько языков, а служебное приложение генерирует все файлы resx для разных языков.
Затем я использую языковые настройки в браузере (переданные обратно как часть объекта Request, я считаю), чтобы решить, какой файл resx использовать.