Salut,
Pour ma part pour avoir plusieurs langues j'ai créer une classe Language dans mon dossier de config.
Dans cette classe j'ai mis des tableaux static comportant le mot dans les différentes langues (français et anglais).
Par exemple :
<?php 'home' => array('en' => 'Home', 'fr' => 'Accueil')?>
Ensuite je me sers d'une variable de session ($_SESSION'lang']) que j'initialise à 'en' dans Session.php si elle est vide.
Ainsi quand j'ai besoin d'afficher les textes j'appel mon tableau comme ceci :
<?php echo Language::$words'home']$_SESSION'lang']] ?>
Voilà je ne suis pas sûr que ça soit optimisé au maximum mais ça me permet de concentrer tout les mots dans une même classe et je trouve ça plus facile à éditer.
Après pour les long textes je te conseil plutôt de les enregistrer dans ta BDD et de les appelés en te servant de ta variable de session.
J'espère que j'ai pu t'aider un peu ;)