def refresh(self):
        """
        Reloads the contents for this box based on the parameters.
        
        :return     <bool>
        """
        self.setDirty(False)
        self.blockSignals(True)
        self.setUpdatesEnabled(False)
        self.clear()
        
        locales = self._availableLocales
        if not locales:
            locales = self.allLocales()
        
        if not self.showLanguage():
            if self.isTranslated():
                sorter = lambda x: x.get_territory_name(base)
            else:
                sorter = lambda x: x.get_territory_name()
        else:
            if self.isTranslated():
                sorter = lambda x: x.get_language_name(base)
            else:
                sorter = lambda x: x.get_language_name()
        
        locales = sorted(locales, key=sorter)
        index = 0
        for i, locale in enumerate(locales):
            babel_locale = babel.Locale.parse(locale)
            code = '{0}_{1}'.format(babel_locale.language,
                                    babel_locale.territory)
            keys = {}
            if self.isTranslated():
                keys['lang'] = babel_locale.get_language_name(base)
                keys['territory'] = babel_locale.get_territory_name(base)
                keys['script'] = babel_locale.get_script_name(base)
            else:
                keys['lang'] = babel_locale.get_language_name()
                keys['territory'] = babel_locale.get_territory_name()
                keys['script'] = babel_locale.get_script_name()
            
            if self.showLanguage():
                opts = ''
                if self.showScriptName() and keys['script']:
                    opts += keys['script']
                if self.showTerritory() and keys['territory']:
                    if opts:
                        opts += ', '
                    opts += keys['territory']
                if opts:
                    opts = ' (' + opts + ')'
                
                label = keys['lang'] + opts
                
            elif self.showTerritory():
                label = keys['territory']
            else:
                label = code
            
            self.addItem(label)
            self.setItemData(i, wrapVariant(str(code)))
            
            name = babel_locale.territory.lower()
            ico = 'img/flags/{0}.png'.format(name)
            flag = QtGui.QIcon(resources.find(ico))
            if flag.isNull():
                ico = 'img/flags/_United Nations.png'
                flag = QtGui.QIcon(resources.find(ico))
            
            self.setItemIcon(i, flag)
            if code == self.baseLocale():
                index = i
        
        self.setCurrentIndex(index)
        self.setUpdatesEnabled(True)
        self.blockSignals(False)
Reloads the contents for this box based on the parameters.
        
        :return     <bool>