1

Hi I've just upgraded to 1.9.3.6 from an earlier version and I'm getting this error now.

line 146 says this:

Mage::app()->getTranslator()->init($this->_code);

Things I've tried:

When I do var_dump(Mage::app()->getTranslator()) it returns false, so I think it might be a problem there?

I have re-uploaded the entirety of the /app/code/core folder to no avail

Here's Area.php:

<?php
class Mage_Core_Model_App_Area
{
 const AREA_GLOBAL = 'global';
 const AREA_FRONTEND = 'frontend';
 const AREA_ADMIN = 'admin';
 const AREA_ADMINHTML = 'adminhtml';
 const PART_CONFIG = 'config';
 const PART_EVENTS = 'events';
 const PART_TRANSLATE = 'translate';
 const PART_DESIGN = 'design';
 /**
 * Array of area loaded parts
 *
 * @var array
 */
 protected $_loadedParts;
 /**
 * Area code
 *
 * @var string
 */
 protected $_code;
 /**
 * Area application
 *
 * @var Mage_Core_Model_App
 */
 protected $_application;
 public function __construct($areaCode, $application)
 {
 $this->_code = $areaCode;
 $this->_application = $application;
 }
 /**
 * Retrieve area application
 *
 * @return Mage_Core_Model_App
 */
 public function getApplication()
 {
 return $this->_application;
 }
 /**
 * Load area data
 *
 * @param string|null $part
 * @return Mage_Core_Model_App_Area
 */
 public function load($part=null)
 {
 if (is_null($part)) {
 $this->_loadPart(self::PART_CONFIG)
 ->_loadPart(self::PART_EVENTS)
 ->_loadPart(self::PART_DESIGN)
 ->_loadPart(self::PART_TRANSLATE);
 }
 else {
 $this->_loadPart($part);
 }
 return $this;
 }
 /**
 * Loading part of area
 *
 * @param string $part
 * @return Mage_Core_Model_App_Area
 */
 protected function _loadPart($part)
 {
 if (isset($this->_loadedParts[$part])) {
 return $this;
 }
 Varien_Profiler::start('mage::dispatch::controller::action::predispatch::load_area::'.$this->_code.'::'.$part);
 switch ($part) {
 case self::PART_CONFIG:
 $this->_initConfig();
 break;
 case self::PART_EVENTS:
 $this->_initEvents();
 break;
 case self::PART_TRANSLATE:
 $this->_initTranslate();
 break;
 case self::PART_DESIGN:
 $this->_initDesign();
 break;
 }
 $this->_loadedParts[$part] = true;
 Varien_Profiler::stop('mage::dispatch::controller::action::predispatch::load_area::'.$this->_code.'::'.$part);
 return $this;
 }
 protected function _initConfig()
 {
 }
 protected function _initEvents()
 {
 Mage::app()->addEventArea($this->_code);
 #Mage::app()->getConfig()->loadEventObservers($this->_code);
 return $this;
 }
 protected function _initTranslate()
 {
 Mage::app()->getTranslator()->init($this->_code);
 return $this;
 }
 protected function _initDesign()
 {
 if (Mage::app()->getRequest()->isStraight()) {
 return $this;
 }
 $designPackage = Mage::getSingleton('core/design_package');
 if ($designPackage->getArea() != self::AREA_FRONTEND)
 return;
 $currentStore = Mage::app()->getStore()->getStoreId();
 $designChange = Mage::getSingleton('core/design')
 ->loadChange($currentStore);
 if ($designChange->getData()) {
 $designPackage->setPackageName($designChange->getPackage())
 ->setTheme($designChange->getTheme());
 }
 }
}

I'm not too au fait Magento expert so I'm not sure where to look to debug this. There isn't an init() function in this class. It seems like a core file though so I'm a little worried.

Happy to provide more code and update the question, but I'll need guidance!

asked Sep 22, 2017 at 18:42

3 Answers 3

1

This issue indicates that somehow Magento core files are missing or something weird happened in your system after the upgrade.

In this case Magento complains that, it cannot find the core translator file. ie the class Mage_Core_Model_Translate which you can find at app\code\core\Mage\Core\Model\Translate.php. So please check whether this file exists or not. If yes, then compare it with old translate file for any changes.

answered Sep 22, 2017 at 18:52
2
  • Excellent, I'll have a look and see. A lot of weird things happend in the upgrade - various failed backups mainly Commented Sep 22, 2017 at 18:56
  • I'm still getting the same error, even though I've re-uploaded the app/code/core/Mage in its entirety. The class in Translate.php definitely has an init() function too... Commented Sep 22, 2017 at 19:26
0

So apparently on a botched/failed upgrade it's a good idea to clear the cache in /var/cache/

Deleting the contents of this fixed my error

answered Sep 22, 2017 at 20:00
0

The error occurs when the cache is corrupted. Mage::app()->getTranslator() returns false because down the chain Mage::getConfig()->getModelInstance() calls $config->getGroupedClassName() which can't find correct class name for given 'core/translate' group name.

Unfortunately without knowing what exactly is inside the config cache when the error occurs It's hard to tell what the root cause is.

answered Jun 1, 2020 at 15:20

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.