Посмотрите это
https://www.php.net/manual/ru/function.gettext.php
БД не нужна для этого потому что используются файлы, но тут зависит от вашего проекта, если у вас есть данные в БД которые надо тоже переводить, то нужно будет или отдельные таблицы для переводов делать, или делать импорт в .po файл (и генерить из него .mo)