Я лично перевожу свои полные взгляды. Таким образом, у вас будет такая структура файла:
application/
someScript.php
views/
de/
someView.php
en/
someView.php
models/
someModel.php
И затем, как предлагает Олафур, сохраните язык в переменной сеанса и сделайте что-то вроде этого.
session_start(); //dont forget to call this somewhere
$_SESSION['lang'] = 'en';
//and then in somewehere else:
include 'views/'.$_SESSION['lang'].'/someView.php'; //or whatever method is used to include views.
EDIT
Вы должны отделить свой вывод от вашего сценария. Таким образом, у вас будет скрипт, который выполняет некоторые скриптовые функции, такие как получение точной метки времени UNIX, это будет someScript.php в приведенном выше примере:
//someScript.php
$timestamp = time();
Теперь мы могли бы добавить все выходные данные непосредственно под этим, но это усложнило бы поддержку, поэтому мы делаем вывод в другом файле, который здесь будет файлом someView.php. Таким образом, someView.php в папке 'en' будет выглядеть так:
<html>
<head>
<title>Currect UNIX timestamp!</title>
</head>
<body>
<p>The current UNIX timestamp is: <?php echo $timestamp; ?> seconds</p>
</body></html>
И в папке 'de' это будет практически тот же файл, но со всем текстом на немецком языке.
Теперь все, что нам нужно сделать, это включить эти выходные файлы в наш someScript.php, поэтому мы добавляем следующую строку в конец этого скрипта:
include '../views/'.$_SESSION['lang'].'/someView.php';
Вы должны прочитать больше о MVC здесь: http://www.onlamp.com/pub/a/php/2005/09/15/mvc_intro.html
Примечание: То, что этот пример не является строгим MVC, но это должно дать вам представление.