hoy en día se usa de todo, hay librerias que pretenden estandarizar la i18n, como intl, pero encontrarás hostings que no la soportan.
lo de los arrays es fácil, no es que tienes que busacar, no, simplemente creas un archivo con todos los mensajes:
es.php
Código PHP:
Ver original<?php
$lang['db_message_error'] = '¡Error en la base de datos!';
y lo llenas con los mensajes, lo copias y haces el de otro idioma:
en.php
Código PHP:
Ver original<?php
$lang['db_message_error'] = 'Database error!';
y a la hora de mostrar aplicas $lang['db_error_message'] donde se supone el texto.
y simplemente y dependiendo de como obtengas el idioma del usuario, almacenas "es" o "en" en una variable de sesión y cargas con include el idioma correspondiente, es la tecnica más simple, aunque existen
librerías i18n para PHP, solo tienes que investigar cual te convienen