Hola,
puedes usar varios métodos pero hay uno que me gusta mas a mi.
Crea un archivo con el idioma osea "es_MX.php" o "es_US.php"
y le agregamos funciones de define osea quedaria mas a o menos a si.
Código PHP:
<?php
//php5
define('VALOR','Este es el valor que se va remplazar');
define('VALOR1','Este es el valor que se va remplazar 1');
//php7
define('VALOR', array('Valor 1','Valor 2'));
?>
Una vez que tengas eso, tienes que leerlo en tu index o en cada archivo que lo necesites.
index.php
Código PHP:
<?php
//te voy a mostrar un ejemplo de como mando a llamar el idioma desde la base de datos luego lo lo mando a llamar.
$sql = mysqli_query($con, "SELECT idioma FROM tabla");
$res = mysqli_fetch_array($sql);
if(isset($res['idioma'])){
//si trae informacion lo almaceno en la variable
$idioma = $res['idioma'];
}else{
//si no trae nada, tomo el default
$idioma = "es_MX";
}
//llamamos el archivo del idioma
include('./idioma/'.$idioma.'.php');
// leemos los valores
//php5
echo VALOR;
echo VALOR1;
//php7
echo VALOR[1];
?>
y listo a si tienes un sistema de idiomas y no solo uno si no puede integrar varios idiomas y solo cambias el valor del idioma en la base de datos!
Yo manejo un sistema modular, a si que solo mando a llamar el idioma desde mi index y toda la pagina se afecta!
Saludos.