Nosotros actualmente usamos la funcion gettext()
Hay que poner los textos entre _("Aqui el texto") y luego traducirlo a los idiomas que quieras, te dejo la info de la web oficial de php, es una de las mejores soluciones que hemos encontrado para nuestro caso, ya que la base de datos ya tiene suficientes peticiones y en nuestro caso es tontería hacer una petición por cada texto que tenemos en la web...
Pero claro, cada caso es un mundo ;)
http://php.net/manual/es/function.gettext.php