Jump to content

Recommended Posts

Hello

I have a problem.

Altough I got gettext working under a remote server environment, I have not got it working yet under a XAMPP installation. I have made sure that gettext is enabled by going to http://localhost and looking into phpinfo.

 

The code is really simple:

<?
Header( "HTTP/1.1 301 Moved Permanently" ); 
Header( "Location: http://www.arreglaordenador.com" ); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
$language="es_ES";
putenv("LC_ALL=$language");
setlocale(LC_ALL, $language);
bindtextdomain("messages", "./locale");
textdomain("messages");
print "<p>"._("This website is written in English")."</p>\n";
?>
</body>
</html>

Any idea?

Thanks

Link to comment
https://forums.phpfreaks.com/topic/198268-gettext-and-poedit-under-xampp/
Share on other sites

Sorry, I just realized that I had not described the problem accurately. The problem is that I have this simple code

<?
Header( "HTTP/1.1 301 Moved Permanently" ); 
Header( "Location: http://www.arreglaordenador.com" ); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
$language="fr_FR";
putenv("LC_ALL=$language");
setlocale(LC_ALL, $language);
bindtextdomain("messages", "./locale");
textdomain("messages");
print "<p>"._("hi! This website is written in English.")."</p>\n";
?>
</body>
</html>

and no matter what string I set the variable $language with that gettext will always look for a translation in the folder locale\es_ES\LC_MESSAGES whether the language is Spanish (es_ES) or not. For example, in the above code, gettext will not look for the French translation as it should in

locale\fr_FR\LC_MESSAGES but it will look for the translation into the folder corresponding to Spanish language, that is to say, locale\es_ES\LC_MESSAGES.

 

Moreover, if gettext does not find the folder locale\es_ES\LC_MESSAGES then

it will display the string in the original language(English) even if $language equals "fr_FR" and at the same time there is a locale\fr_FR\LC_MESSAGES folder created and the corresponding messages.mo and messages.po files created in this folder.

 

 

 

I made sure that I re-run Apache and MySql under Xampp whenever I change anything in the code but it keeps having this behaviour anyways.

 

Do you have any idea about why only translations in .po files in the Spanish folder locale\es_ES\LC_MESSAGES are considered and not those translations corresponding to other languages and other folders?

 

Thanks in advance.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.