php string variables in gettext (forgot one case scenario)

北城以北 提交于 2019-12-11 04:49:00

问题


I've posted a question yesterday but I just realized that the answer doesn't seem to be working for a certain situation. The post was php string variables in gettext and here is what I asked about:

Hello,

How does gettext translate string variables? It doesn't seem to want to do it.. lets say I have $sentence = "Hello World"; and then I want to echo ($sentence); ... how can I do that so that I can translate what's inside $sentence in Poedit?I can use -> echo sprintf(("%s test"), $sentence) and this will print "Hello World test" in the browser but it will appear as "%s test" in Poedit and I won't get the translated version of Hello World inside of Poedit. So how can I use string variables inside Poedit? Thanks!

This has been solved.

The problem occurs if I want to grab data from an XML file and translate it.

I want to be able to do the following:

$foo = $xmlData -> titleText;

and then

echo _($foo); 

or something like

$finalVar = _($foo);

If I look at the php file in the browser I can see the content of $foo on the page but Poedit doesn't pick up the string inside $foo so I can translate it.

(I believe this problem will also occur when translating info within js files)

Thank you for your help,

Simon


回答1:


Obviously you can't make Poedit understand PHP.

EDIT: Have you considered a different approach?

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

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

echo $foo;

You can have PHP generated the gettext compatible XML and regarding the database, I believe the best solution is to store the translation in the DB itself, however you can also create a script to dump all the keys and values from the database and use gettext on it.



来源:https://stackoverflow.com/questions/1351259/php-string-variables-in-gettext-forgot-one-case-scenario

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!