Если ты не можешь на это повлиять, то смирись. На самом деле, то что ты описал, и как ты это описал, должно делаться еще на уровне самого SQL запроса, и возвращаться должны готовые для употребления данные. Вот эти все сравнения идентификаторов должна делать субд на основе пришедшего к ней SQL запроса. А тебе должно быть достаточно сделать запрос вроде getMenu(params), где params это и локализация, и прочие нужные поля.
А так выходит что бэкенд это файл базы данных, а роль субд выполняет фронтенд.