View Issue Details

IDProjectCategoryView StatusLast Update
0004020OXID eShop (all versions)4.06. Language and translationspublic2012-06-08 14:15
Status resolvedResolutionfixed 
Product Version4.6.0 revision 44406 
Target VersionFixed in Version4.6.1 revision 45706 
Summary0004020: problem by processing lang files (oxeec_langcache_1_0_1_azure_default.txt)
Descriptionin core/oxlang.php fnc:_getLanguageFileData() within the foreach-loop in line 873 the variable $aSeoReplaceChars is not reinitialized therefore each loop encodes the existing arrayKeys.
Result of this behaviour is multiple-encoding of the arrayKeys and the array is getting bigger within each loop.
Result in tmp/oxeec_langcache_1_0_1_azure_default.txt file with this result
'_aSeoReplaceChars' =>
  array (
    'ä' => 'ae',
    'ö' => 'oe',
    'ü' => 'ue',
    'Ä' => 'AE',
    'Ö' => 'OE',
    'Ü' => 'UE',
    'ß' => 'ss',
    'À' => 'ae', // second file double encoded
    'ö' => 'oe', // ""
    'ÃŒ' => 'ue',
    'Ã?' => 'AE',
    'Ã?' => 'OE',
    'Ã?' => 'UE',
    'Ã?' => 'ss',
    'Ã?â?¬' => 'ae', // third file tripple encoded
    'Ã?¶' => 'oe',
    'Ã?Å?' => 'ue',
    'Ã?Â?' => 'AE',
    'Ã?Â?' => 'OE',
    'Ã?Â?' => 'UE',
    'Ã?Â?' => 'ss',
    'Ã?Â?âÂ?¬' => 'ae',
    'Ã?Â?Ã?¶' => 'oe',
    'Ã?Â?Ã?Â?' => 'ue',
    'Ã?Â?Ã?Â?' => 'AE',
    'Ã?Â?Ã?Â?' => 'OE',
    'Ã?Â?Ã?Â?' => 'UE',
    'Ã?Â?Ã?Â?' => 'ss',
    'Ã?Â?Ã?Â?Ã?¢Ã?Â?Ã?¬' => 'ae',
    'Ã?Â?Ã?Â?Ã?Â?Ã?¶' => 'oe',
    'Ã?Â?Ã?Â?Ã?Â?Ã?Â?' => 'ue',
    'Ã?Â?Ã?Â?Ã?Â?Ã?Â?' => 'AE',
    'Ã?Â?Ã?Â?Ã?Â?Ã?Â?' => 'OE',
    'Ã?Â?Ã?Â?Ã?Â?Ã?Â?' => 'UE',
    'Ã?Â?Ã?Â?Ã?Â?Ã?Â?' => 'ss',

So in the basic shop with 3 langfiles its no problem, but in a shop with about 22 files you get a file 120MB of size and the shop crashes!
Additional Informationto fix this issue, just set $aSeoReplaceChars = array(); at end of every loop step.
TagsNo tags attached.
PHP Versionany
MySQL Versionany



2012-05-23 18:29

reporter   ~0006677

No duplicated keys will be added


2012-06-08 14:15

reporter   ~0006819

NOTE: To workaround this issue add empty $aSeoReplaceChars = array(); to all language files without url transliteratio.