Другие варианты есть.
1) Переводы хранить в поле типа json
. То есть будет одно поле name
на таблицу. Дополнительные таблицы не нужны. Только не советую в шаблонах выводить данные из поля напрямую, что-то типа $name->ru
. Лучше написать хелпер и выводить через него (или трейт для модели). В нем же тогда можно использовать замену из языка по умолчанию если для используемого сейчас языка нет перевода. Будет что-то типа t($name, 'ru')
2) Из основной таблицы убираем все поля для которых нужны переводы в отдельную таблицу переводов для этой таблицы. У нее следующая структура. id, field_name, lang_name( или id), value. Придется писать много кода для реализации удобного сохранение/чтения используя текущую работу с моделями (или как они там в yii2 называются).
По мне лучше первый вариант.