Jump to content

Gettext not passing values


chrisguk

Recommended Posts

Hi,

 

I have looked through the forum for a fix for this but I was unable to find one.

 

Basically the code I have provided below is not giving me the correct output in other words changing the text to German.

 

I am using an "Ubuntu" environment with Apache2 and php5 installed.  I have checked that php-gettext is installed.

 

I have also attached my .mo file  (I have added the .txt extension to upload here)

 

local.php

<?php

$locale = false;
if (isSet($_GET["locale"])){
$locale = $_GET["locale"];
setcookie("locale", $locale, time()+60*60*24*30, "/");// save a cookie
}
if (!$locale && isSet($_COOKIE["locale"])){
$locale = $_COOKIE["locale"];
}
putenv("LC_ALL=$locale");//needed on some systems
putenv("LANGUAGE=$locale");//needed on some systems
setlocale(LC_ALL, $locale);
bindtextdomain("messages", $_SERVER["DOCUMENT_ROOT"]."locale");
bind_textdomain_codeset("messages", "UTF-8");
textdomain("messages");

?>

 

test.php

<?php require_once "local.php";

echo $_SERVER["DOCUMENT_ROOT"]."locale";  //for testing
?>
<html><head></head>
<body>
<a href='?locale=en_US'>English</a> |
<a href='?locale=es_ES'>Spanish</a> |
<a href='?locale=de_DE'>German</a>
<br>
<?php echo _("Hello World!");?><br>
<p><?php echo _("My name is");?> Bob.</p>
</body>
</html>

Link to comment
https://forums.phpfreaks.com/topic/261669-gettext-not-passing-values/
Share on other sites

found this in the php gettext manual hope it works 8)

 

it said it works without having to reboot the apache or window server.

 

<?php
$gettext_domain = 'sk'; // change by language
setlocale(LC_ALL, 'sk_SK.UTF-8'); // change by language, directory name sk_SK, not sk_SK.UTF-8
bindtextdomain($gettext_domain, "lang");
textdomain($gettext_domain);
bind_textdomain_codeset($gettext_domain, 'UTF-8');
?>

Hi,

 

Here it is:

 

<?php

$gettext_domain = 'de'; // change by language

setlocale(LC_ALL, 'de_DE.UTF-8'); // change by language, directory name sk_SK, not sk_SK.UTF-8

bindtextdomain($gettext_domain, "lang");

textdomain($gettext_domain);

bind_textdomain_codeset($gettext_domain, 'UTF-8');

 

$locale = "de_DE";

if (isSet($_GET["locale"])) $locale = $_GET["locale"];

putenv("LC_ALL=$locale");

setlocale(LC_ALL, $locale);

bindtextdomain("messages", "locale");

bind_textdomain_codeset("messages", 'UTF-8');

textdomain("messages");

?>

 

test.php

<?php require_once "local.php";

 

?>

<html><head></head>

<body>

<a href='?locale=en_US'>English</a> |

<a href='?locale=es_ES'>Spanish</a> |

<a href='?locale=de_DE'>German</a>

<br>

<?php echo _("Hello World!");?><br>

<?php

$world = 'world';

 

printf(gettext("Hello %s!"), $world); ?>

<p><?php echo _("My name is");?> Bob.</p>

</body>

</html>

Hi dark,

 

Unfortunately that has not resolved the issue.  I have made a final amendment to the code below, if you can figure out the issue you are a better man than me lol:

 

<?php

$gettext_domain = 'sk'; // change by language

setlocale(LC_ALL, 'sk_SK.UTF-8'); // change by language, directory name sk_SK, not sk_SK.UTF-8

bindtextdomain($gettext_domain, "lang");

textdomain($gettext_domain);

bind_textdomain_codeset($gettext_domain, 'UTF-8');

 

local.php

$locale = false;
if (isSet($_GET["locale"])){
$locale = $_GET["locale"];
setcookie("locale", $locale, time()+60*60*24*30, "/");// save a cookie
}
if (!$locale && isSet($_COOKIE["locale"])){
$locale = $_COOKIE["locale"];
}
putenv("LC_ALL=$locale");//needed on some systems
putenv("LANGUAGE=$locale");//needed on some systems
setlocale(LC_ALL, $locale);
bindtextdomain("messages", $_SERVER['DOCUMENT_ROOT']. "locale");
bind_textdomain_codeset("messages", "UTF-8");
textdomain("messages");
?>

 

test.php

<?php require_once "local.php";?>
<html><head></head>
<body>
<a href="?locale=en_US">English</a> |
<a href="?locale=es_ES">Spanish</a> |
<a href="?locale=de_DE">German</a>
<br>
<?php echo _("Hello World!");?><br>
<p><?php echo _("My name is");?> Bob.</p>
</body>
</html>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.