Как организовать логику перевода текстов из БД, которая зависит от запроса и заполненности полей?
Имеется справочник, являющийся сущностью Doctrine.
У справочника в колонках хранятся переводы названия на разные языки.
Пользователь может увидеть контент на дефолтном для своей страны языке, а если контент на этом языке не заполнен, то выводится текст на базовом языке (базовых языков несколько, для каждой страны - свой).
Собственно вопрос: куда поместить эту логику выбора перевода, если учесть, что справочников довольно много.
Бонус-трек - как научить формы выбирать перевод по такому же принципу? Насколько я понимаю, query_builder для типа entity здесь не подходит? Нужно делать свой тип, наследовать его от choice и вручную собирать choiсes в buildForm? Или есть какой-то более правильный способ? Опять же, справочников много, не хотелось бы дублировать логику в каждый тип.
Завел базовый класс для справочников и там в методах получения из БД выбирал язык пользователя по умолчанию и базовый и сразу же выбирал нужный перевод. Но это сильная связанность получается, все в куче, хотелось бы более правильной архитектуры