Я же Вам ответил в вопросе про mapping.
Вы делаете представление, в нем так же должен быть еще и язык.
Уже к коде своего решения делаете фильтрацию по языку и выборку страницы.
Вариант с процедурой тоже нормальный, но он сложный. Во-первых, Вам нужно в процедуру добавить Limit и offset, для выборки постраничных данных. Во-вторых, он очень не удобен, если вам потребуется фильтрация данной выборки, Вам придется городить дополнительные структуры фильтров, чтобы передавать их потом в фильтры.
У Вас какой ЯП? Если C#, то проще все же использовать подход, когда вы делаете что-то такое:
public static class ViewPostExt
{
public static IQueryable<ViewPost> GetViewPosts(this DbContext db)
{
var currLang = GetCurrentNeutralCulture();
return db.Set<ViewPost>().AsNoTracking().Where(x=>x.LangCode == currLang);
}
private static string GetCurrentNeutralCulture()
{
return Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
}
}
и затем,
var posts = (from p in db.GetViewPosts()).Skip(PagesToSkip).Take(Limit).ProjectTo<PostDto>().ToList();
В целом, подобный подход возможен в той или иной степени на большинстве ЯП.