|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-01-28 14:30 UTC] teejun at vallcom dot com
1) Just to show that gettext works in the system:
A script:
[teemu@jolly Test]$ cat loca2.sh
#!/bin/sh
LANG=fi
export LANG
TEXTDOMAINDIR=/usr/share/locale
export TEXTDOMAINDIR
TEXTDOMAIN=rpm
export TEXTDOMAIN
gettext "query package owning <file>"
echo
Run the script:
[teemu@jolly Test]$ sh loca2.sh
kysy pakettia, jonka omistuksessa <tiedosto> on
2) Try the same with PHP:
A script:
[teemu@jolly Test]$ cat loca2.php
<?php
putenv ("LANG=fi");
bindtextdomain ("rpm", "/usr/share/locale");
textdomain ("rpm");
print (gettext ("query package owning <file>"));
print ("\n");
?>
Running it:
[teemu@jolly Test]$ /var/www/cgi-bin/php loca2.php
X-Powered-By: PHP/4.0.4pl1
Content-type: text/html
query package owning <file>
3) My configure line:
[teemu@jolly Test]$ strings /var/www/cgi-bin/php | grep configure
'./configure' '--with-config-file-path=/etc/httpd/conf' '--enable-track-vars' '--enable-force-cgi-redirect' '--with-gettext'
4) I am using the php.ini-dist without modifications.
I have the same problem even if I try to use php-4.0.4pl1-3 (RedHat rpm)
and with php 4.0.2
I have installed my RedHat 7.0 about one month ago and I have run up2date several times.
I saw another report on gettext in problem #8444. The problem was fixed by reinstalling linux. I really don't feel for reinstalling my OS. And I am afraid that it would only fix the problem temporarily (untill I update my system).
Best regards,
Teemu Junnila
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 00:00:02 2025 UTC |
I have done a bit more testing. If I add: setlocale("LC_ALL", "fi_FI"); or just (for the messages): setlocale("LC_MESSAGES", "fi_FI"); Then the gettext function gives me the correct text in Finnish. It seems to be so that this has something to do with the latest updates (glibc?) for linux. The real problem is that if I need to make translations for languages I do not have any locales installed on the system it does not work. It used to, and it still should work. The "gettext" in linux distribution works by just defining LANG, it does not need the whole locale. IMHO: when I say: putenv("LANG=fi"); bindtextdomain("rpm", "/usr/share/local"); the gettext should look in /usr/share/local/fi/rpm.mo for the strings. When I trace the program I can see that it does not go further than: lstat ("/usr/share/locale",... I feel that it tries to find out the last directory name in /usr/lib/locale/fi/LC... which does not exist). Regards, Teemu Junnila