строковые переменные php в gettext (забыл один сценарий)

StackOverflow https://stackoverflow.com/questions/1351259

Вопрос

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

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

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

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

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

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

$foo = $xmlData -> titleText;

а потом

echo _($foo); 

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

$finalVar = _($foo);

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

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

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

Саймон

Это было полезно?

Решение

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

Редактировать:Рассматривали ли вы другой подход?

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

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

echo $foo;

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top