Было бы лучше, если бы таблица langs
содержала столбец language
с одной строкой для каждого перевода. Это позволяет вам добавить другой язык позже и применять изменения данных (а не переписывать запросы).
Как вы уже подразумевали, выполнение левого соединения и возврат к языку по умолчанию, который содержится непосредственно в таблице menus
, также является хорошей идеей (в этом случае вам не нужно держать перевод, например, для en
в таблице langs
, так как английская версия будет всегда доступна).
Вы также можете рассмотреть вопрос о сохранении переводов для конкретной страны (если, скажем, существует несколько говорящих по-испански стран, в которых переводы могут быть разными), и следуйте альтернативной стратегии поиска: language-country
, language
, English
переводов.