Независимо от вашего подхода, вам нужно будет хранить все ваши выведенные строки в отдельном ресурсе.Плоские файлы с массивами были бы самыми быстрыми, хотя база данных SQLite была бы более гибкой.
Если бы вы использовали массивы, вы бы просто сделали несколько языковых файлов, таких как english.php:
$lang = array(
'I am a language.' => 'I am a language.'
);
... и french.php:
$lang = array(
'I am a language.' => 'Je suis une langue.'
);
Затем вы можете создать статический класс Language, который будет импортировать соответствующий языковой файл и возвращать переведенные строки на основе массива в этом файле.,Например:
Language::init('french');
...
echo Language::get('I am a language.'); // outputs Je suis une langue.