Как уже упоминалось, в комментариях вопрос кажется слишком широким.Там может быть много правильных ответов.Вот моя попытка дать одну точку зрения на то, как эта проблема может быть решена.
С точки зрения дизайна, я думаю, вам нужно учитывать одну вещь - локализация должна быть реализована на уровне пользовательского интерфейса, а не на уровне API.
Уровень пользовательского интерфейса должен иметь файлы локализации (resx), которые включают в себя различные сообщения, отображаемые пользователю.
API должен возвращать специальный объект, который имеет только код ошибки и другие свойства ошибки, но несообщение об ошибке.
Уровень пользовательского интерфейса может затем проанализировать ответ, чтобы увидеть, есть ли какой-либо код ошибки в ответе API.Если есть, то пользовательский интерфейс может иметь логику для преобразования кода ошибки в соответствующую строку resx на основе текущей культуры приложения UI.Затем эту строку resx следует отобразить пользователю.
Надеюсь, это поможет вам.