Question

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

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top