Bug #18556 [Csd]: Setting locale to 'tr_TR' lowercases class names

From: Date: Mon, 10 Sep 2012 06:22:46 +0000
Subject: Bug #18556 [Csd]: Setting locale to 'tr_TR' lowercases class names
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-173291@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=18556&edit=1

 ID:                 18556
 Updated by:         stas@php.net
 Reported by:        spud at nothingness dot org
 Summary:            Setting locale to 'tr_TR' lowercases class names
 Status:             Closed
 Type:               Bug
 Package:            Scripting Engine problem
 Operating System:   Linux (RedHat 7.2)
 PHP Version:        5CVS, 4CVS (2005-10-04)
 Assigned To:        stas
 Block user comment: N
 Private report:     N

 New Comment:

You should be using 5.5 (or master) branch of PHP. It is not fixed in 5.4 due to necessities of
binary APIs change which is not possible in stable version. Trunk does not announce itself as 5.4
but as 5.5, so there must be some mistake. 

However if you feel very adventurous, you can take 5.5 commit (it's marked with the bug #) and
cherry-pick it into your 5.4 branch.


Previous Comments:
------------------------------------------------------------------------
[2012-09-08 14:54:04] richlv at nakts dot net

hmm, i just tested trunk snapshot php-trunk-201209081330 which announces itself as 5.4.8-dev

trying to use turkish locale still fails with :
Fatal error: Class 'CInput' not found

(there's uppercase I in the name)

what am i doing wrong ?

------------------------------------------------------------------------
[2012-09-08 14:25:15] richlv at nakts dot net

which version is expected to have the fix ? looking at snapshots, is it trunk only (thus php 5.5 or
whichever will be the next version) ?

interesting bit - this bug was fixed just 9 days short of it's 10th birthday ;)
(submitted 2002-07-25, fixed 2012-07-16)

------------------------------------------------------------------------
[2012-07-16 14:21:36] me at ollieread dot com

I don't know how helpful this will be, but I've recently had an issue with the 
Turkish locale where I work.

I tried lots of different methods, but the main issue seems to be with LC_CTYPE, 
as although class/method declarations include I, it's added to the stack as i.

I've wrote a couple of fixes that hopefully approach all cases, be warned, they 
are however a bit hacky.

http://codeosaur.us/2012/07/16/php-and-the-tr_tr-utf8-locale/

You can simple explicitly set LC_CTYPE to your native language(eg en_US.utf8), 
but if you absolutely must have tr_TR.utf8 there, then you can use the magic of 
__autoload(), __call() and class_alias to handle it for you.

Hope this helps.

------------------------------------------------------------------------
[2012-07-14 22:59:37] stas@php.net

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.

 For Windows:

http://windows.php.net/snapshots/
 
Thank you for the report, and for helping us make PHP better.

Fixed in master.

------------------------------------------------------------------------
[2012-07-04 08:52:28] maarten@php.net

@ stormbyte, I just made 2 separate more explicit tests, one for tr_TR.iso8859-9 and one for
tr_TR.UTF-8 and they do have the same outcome:

tr_TR.iso8859-9 - http://3v4l.org/o5YCk
tr_TR.UTF-8 - http://3v4l.org/F2gEb

3v4l.org uses a 'vanilla' PHP setup, be free to play with phpinfo() and the likes to see
for yourself.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=18556


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=18556&edit=1


Thread (68 messages)

« previous php.bugs (#173291) next »