Kentor
Kentor

Reputation: 657

php string variables in gettext (forgot one case scenario)

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

Upvotes: 1

Views: 1522

Answers (1)

Alix Axel
Alix Axel

Reputation: 154691

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.

Upvotes: 1

Related Questions