El error más grave que cometes es querer realizar una consulta por cada texto que uses, mal ahí.
Lo correcto sería inicializar sólo una ves al inicio de toda tu aplicación todas las cadenas de texto, porque vamos, no creo que cambie de un momento a otro.
Si pudieras centralizar todo en una función reutilizable sería lo mejor:
Código PHP:
Ver originalfunction lang($key, $base) {
static $cached;
// no hay nada en $cached así que inicializamos todo
$sql = "SELECT * FROM language_strings";
$cached = [];
// creamos un registro en $cached con cada palabra y variante
$cached[$row->texto] = [
'es' => $row->texto_es,
'en' => $row->texto_en,
];
}
}
// usamos el caché en lugar de hacer una consulta nueva
return $cached[$key][$base];
}
// uso
echo lang('usuarios', 'es'); // usuarios
echo lang('usuarios', 'en'); // users
Bueno, a mi se me ocurre algo así.
¿Se entiende la idea?