Use CCDirector::replaceScene instead of CCDirector::pushScene, then your MenuScene will be released when SettingScene pop out. After your config the language, replaceScene again to re-create & re-init MenuScene, call MyConfigSingleton::getInstance()~~>getLanguage to adjudge and create new sprites/menu items.
But if I’m doing this job, I may use CCLayer for this setting dialog, cover on the top of MenuLayer. When player change the language, I will write the codes in SettingLayer just like this
MenuLayer* layer = this~~>getParent()~~>getChildByTag;
layer~~>recreateItems( MyConfigSingleton::getInstance()->getLanguageSetting() );