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] j...@php.net Patch by Tomas Kuliavas: http://www.topolis.lt/php/#35050 ------------------------------------------------------------------------ [2005-11-15 13:39:07] der...@php.net 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] der...@php.net 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