строковые переменные php в gettext (забыли один случай) - PullRequest
1 голос
/ 29 августа 2009

Я вчера отправил вопрос, но я только что понял, что ответ, кажется, не работает для определенной ситуации. Пост был строковые переменные php в gettext , и вот что я спросил:

Здравствуйте,

Как gettext переводит строку переменные? Кажется, он не хочет сделай это .. допустим, у меня есть $ предложение = "Привет, мир"; а потом хочу эхо ($ Предложение); ... как я могу сделать это так что я могу перевести то, что внутри $ предложение в Poedit? Я могу использовать -> эхо sprintf (("% s test"), $ предложение) и это напечатает «Hello World test» в браузер, но он будет отображаться как "% s тест "в Poedit, и я не получу переведенная версия Hello World внутри Poedit. Так как я могу использовать строковые переменные внутри Poedit? Спасибо!

Это было решено.

Проблема возникает, если я хочу получить данные из файла XML и перевести их.

Я хочу иметь возможность сделать следующее:

$foo = $xmlData -> titleText;

, а затем

echo _($foo); 

или что-то вроде

$finalVar = _($foo);

Если я посмотрю файл php в браузере, то увижу содержимое $ foo на странице, но Poedit не подхватывает строку внутри $ foo, поэтому я могу перевести ее.

(Я полагаю, что эта проблема также возникает при переводе информации в js-файлах)

Спасибо за помощь,

Simon

1 Ответ

1 голос
/ 29 августа 2009

Очевидно, вы не можете заставить Poedit понимать PHP.

РЕДАКТИРОВАТЬ : Вы рассматривали другой подход?

if (true) {
    $foo = _('variable holds true');
}

else {
    $foo = _('variable holds false');
}

echo $foo;

Вы можете сгенерировать PHP, совместимый с gettext, XML и в отношении базы данных. Я считаю, что лучшим решением является сохранение перевода в самой БД, однако вы также можете создать скрипт для выгрузки всех ключей и значений из базы данных и используйте на нем gettext.

...