Есть четыре момента при создании мультиязычного сайта:
1) База
Нужно создать таблицу "language" в которой будут перечислены языки.
Для каждой таблицы в которой содержится переводимый текст нужно создать связующую таблицу к примеру для таблицы article создать article_lang в которой будут поля с текстом и связь указывающая на article_id и language_id
2) Статический текст на сайте.
Нужно создать функцию которая будет принимать на вход текст по умолчанию и в зависимости от текущего языка возвращать ее перевод. Перевод можно организовать или в php или в ini файлах к примеру.
3) Все ссылки на сайте обернуть в функцию. К примеру за место
<a href="/article/123">статья</a>
писать
<a href="<?=urlToRoute('/article/123')?>">статья</a>
И сделать так чтобы в зависимости от сегмента строки (или параметра) lang, переделывать ссылку
4) Сделать функцию currentLang которая возвращает текущий язык из сегмента адресной строки (или параметра). На основе нее будут получаться данные из базы и из функции urlToRoute
Примерно так.