Я знаю, что библиотека Gettext для настольных приложений делает нечто похожее на ваш пользовательский парсер. Gettext имеет модуль на PHP, но я не уверен, установлен ли он в большинстве установок PHP по умолчанию.
По сути, вы должны написать каждую строку с именем функции tr("How are you?")
.Затем создайте функцию для ее перевода:
include('lang.es.php');
function tr($txt) {
global $tr;
if(array_key_exists($txt,$tr)) {
return $tr($txt);
}
return $txt;
}
И в lang.es.php укажите:
$tr = array();
$tr["How are you?"] = "¿Como Estas?";
Возможно, вы захотите сделать printf(tr("How are you, %s?"), $name);
для переменных или правильносуществительные, которые не должны переводиться.