Edit report at http://bugs.php.net/bug.php?id=35050&edit=1
ID: 35050
Comment by: sweiss at stylesight dot com
Reported by: satanistlav at mail dot ru
Summary: Capital "I" letters in func/class method names do not
work with turkish locale
Status: Wont fix
Type: Bug
Package: Scripting Engine problem
Operating System: Linux
PHP Version: 5CVS-2005-11-01 (cvs)
New Comment:
Requesting a fix for this... this has been going on for almost 5 years,
yet the
proper fix for the problem also only takes that many lines of code,
according to
a different bug report, which was rejected on a technicality. The
"workaround"
suggested means that none of my turkish is capitalized correctly. This
is
really not going over well. Please, please, please, at least make the
fix
listed in Bug #35050 an option that we can set in the php.ini or ideally
with
ini_set or *something*, if it causes problems for other programmers, and
if it
doesn't, can it just be fixed already? It is not going to be pretty
when I have
to go tell them that the turkish translation they've made is going to be
permanently crippled until PHP 6 is released, and our code is updated to
support
it... and it looks like PHP 6 just went back to square one so this could
be
quite a long time.
Previous Comments:
------------------------------------------------------------------------
[2007-09-06 11:22:42] [email protected]
Patch by Tomas Kuliavas:
http://www.topolis.lt/php/#35050
------------------------------------------------------------------------
[2005-11-15 13:39:07] [email protected]
We discussed it and this will not be addressed in PHP 5, but only from
PHP 6 and higher. Please make sure your set the correct locale before
starting the script - or before including files that define elements
that contain upper case I's.
------------------------------------------------------------------------
[2005-11-01 15:17:54] satanistlav at mail dot ru
I have uploaded your code to the server and I still have the same error!
http://www.yda.com.tr/test.php
------------------------------------------------------------------------
[2005-11-01 15:14:14] satanistlav at mail dot ru
I have multilingual site. Locales are set to en_US.ISO-8859-1 in Enlgish
side of the site and tr_TR.ISO-8859-9 in Turkish for LC_ALL
------------------------------------------------------------------------
[2005-11-01 15:12:29] [email protected]
I can reproduce this with the following short script:
<?php
class foo
{
function IsHere()
{
echo "here\n";
}
}
echo setlocale(LC_ALL, 'tr_TR'), "\n";
$f = new foo();
$f->IsHere();
?>
(You need to have the tr_TR locale installed for this).
It does work properly with PHP 5.1 actually, and it has to to with the
zend_str_tolower() function which uses the tolower() libc call, which
uses the locale. As in Turkish the I does not lowercase to i you can get
weird things. This is why we should get rid of case insensitive function
names.
It also works with normal function names (instead of classes' methods)
------------------------------------------------------------------------
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
http://bugs.php.net/bug.php?id=35050
--
Edit this bug report at http://bugs.php.net/bug.php?id=35050&edit=1