Насколько я понял у Вас проблема с самим алгоритмом. На одном из наших проектов мультиязычность делается следующим образом: при первом заходе посетителя определяется язык браузера по заголовкам, если такой язык есть в списке поддерживаемых языков то это значение записывается либо в куки, либо в сессию и используется уже в дальнейшем, если такого языка нет, то используется заранее выбранный язык по умолчанию. В базе есть доп.поле Lang для статей и другой информации, которая будет меняться в зависимости от языка, это поле редактируется из админки. Шаблон сайта, точнее тексты из шаблона - хранятся в языковых файлах, это просто файлы в которых ассоциативные массивы с разными названиями (типа ru, en) и одинаковыми ключами и соответствующими значениями и в шаблоне прописаны значения из массивов, где имя массива динамическое. И самое главное - есть два пути передачи языка через ГЕТ, либо вообще убрать ссылки без языка, либо ссылки без языка должны иметь заранее заданный язык по умолчанию. Резюмирую: при первом заходе определяем язык и записываем куда-то его (куки, сессия и прочее) и показываем страницу, где в шаблоне все фразы вызываются динамически в зависимости от языка и выводится основной текст (новость или содержание страницы) из базы по ключу Lang в соответствующей таблице. Как-то так