Hola.
Otra opción es utilizar un mismo array para cada idioma, divididos en 2 archivos diferentes y, definido por una variable de sesión php, mostrar uno u otro.
Un ejemplo puede ser el siguiente:
Español (es.php)
Código PHP:
<?php
$lang = array();
$lang['idioma'] = 'Español';
$lang['menu_inicio'] = 'Inicio';
$lang['menu_servicios'] = 'Servicios';
$lang['menu_servicios_instalaciones'] = 'Instalaciones';
$lang['menu_servicios_plano'] = 'Plano';
?>
Inglés (en.php)
Código PHP:
<?php
$lang = array();
$lang['idioma'] = 'English';
$lang['menu_inicio'] = 'Home';
$lang['menu_servicios'] = 'Services';
$lang['menu_servicios_instalaciones'] = 'Facilities';
$lang['menu_servicios_plano'] = 'Map';
?>
Y lo controlas por una variable de sesión en el principio de cada página de esta manera:
Código PHP:
<?php
session_start();
if( !$_SESSION['lang'] ){ $_SESSION['lang'] = 'es'; }
$root = $_SERVER['DOCUMENT_ROOT'];
include($root.'/languages/'.$_SESSION['lang'].'.php');
?>
Luego, donde vaya el texto correspondiente, utilizas el array <?php echo $lang['menu_inicio']; ?> y, según la variable de sesión se mostrará en un idioma u otro. De esta manera ahorras el uso de una base de datos y, bueno, para gustos. A mi me es más fácil tener los lenguajes en un array divido en 2 archivos. Creo que es más útil.
Saludos.