Лично я бы, вероятно, оставил коды EmployeeStatus в БД и перенес бы всю логику локализации в клиент. Если это веб-приложение (ASP.NET или ASP.NET MVC), вы должны использовать код EmployeeStatus в качестве ключа в файле ресурсов, а затем использовать UICulture = "Auto" и Culture = "Auto", чтобы сообщить ASP .NET, чтобы подобрать нужные ресурсы на основе HTTP-заголовка «Accept-Language».
Вы бы предоставили ресурсы по умолчанию (без учета культуры), встроенные в ваше приложение, и позволили бы сборкам саталитов переопределять значения по умолчанию там, где они были необходимы.
Для меня проблема с добавлением локализации в БД заключается в том, что вы вначале сталкиваетесь с гораздо более сложными запросами, вы должны продолжать накачивать локаль в каждый из этих запросов и не можете кэшировать выходные данные запросы так широко. Во-вторых, у вас есть смесь таблиц с сущностями и таблиц с локализацией. Наконец, для выполнения локализации требуется администратор базы данных.
В идеале вы хотите, чтобы кто-то, кто понимает, как переводить текст, выполнял локализацию, и чтобы он использовал какой-то инструмент, который им удобен. Существует множество инструментов .resx и приложений, которые позволяют языковым экспертам «делать свое дело».
Если вы застряли с таблицами БД для локализации, потому что «так оно и есть», то, возможно, вам следует запросить поиски по отдельности к реальным данным и соединить их в пользовательском интерфейсе. Это как минимум даст вам «путь обновления» до .RESX в будущем.
Вам следует ознакомиться с книгой Гая Смита-Ферье на i18n, если вы заинтересованы в этой области:
http://www.amazon.co.uk/NET-Internationalization-Developers-Guide-Building/dp/0321341384/ref=sr_1_1?ie=UTF8&s=books&qid=1239106912&sr=8-1