[TYPO3-core] RFC: Fix Bug 6428 - strtoupper doesn't work with turkish i

Steffen Kamper steffen at sk-typo3.de
Mon Oct 29 10:21:17 CET 2007


"Steffen Kamper" <steffen at sk-typo3.de> schrieb im Newsbeitrag 
news:mailman.1.1193574840.31071.typo3-team-core at lists.netfielders.de...
>
> "Ernesto Baschny [cron IT]" <ernst at cron-it.de> schrieb im Newsbeitrag 
> news:mailman.1.1193570491.28448.typo3-team-core at lists.netfielders.de...
>
>>
>> A nice idea would be to have a t3lib_div::asciiToUpper($string) method
>> which will only handle 7bit characters but will ignore current locale
>> (doing tr/a..z/A..Z/ for example). I think there are many extensions
>> which do a strtoupper for internal purposes without thinking about the
>> implication with other locales. Even I didn't know about that
>> restriction in turkish. I thought a-z was "alphabetic" characters in all
>> languages. :)
>>
>> Cheers,
>> Ernesto
>
> indeed that would be the best solution. I start to try this but was 
> unlucky for now.
>
> btw - in php6 this will be corrected, but not for php5:
> http://bugs.php.net/bug.php?id=42063
>
> vg  Steffen
>

any comments on using a function like that?

function asciiToCase($string,$case) {
 if($GLOBALS['TSFE']->tmpl->setup['config.']['locale_all']) {
  $tmp=$GLOBALS['TSFE']->tmpl->setup['config.']['locale_all'];
  setlocale(LC_CTYPE,'en');
  $caseString=$case=='upper' ? strtoupper($string) : strtolower($string);
  setlocale(LC_CTYPE,$tmp);
 } else
  $caseString=$case=='upper' ? strtoupper($string) : strtolower($string);
 return $caseString;
}

maybe it should also take care of BE.

vg  Steffen 




More information about the TYPO3-team-core mailing list