Вы можете сделать представление на уровне БД, в котором выводите пост и все его переводы, т.е. умножение постов на языки + соединение по коду языка его перевода (тут можно так же сделать вывод текста по умолчанию, для перевода, которого нет).
Потом, просто делаете :
var posts = db.PostViews.AsNoTracking().Where(x=>x.LanguageCode == CurrentLanguageCode)
.ProjectTo<PostDto>();
где PostViews - это ваше представление в БД, с полями из post-а и, как минимум, кодом языка.