public function refresh($langcode = null)
    {
        $result = null;
        $this->hook->attach('translation.refresh.before', $langcode, $result, $this);

        if (isset($result)) {
            return $result;
        }

        gplcart_file_empty($this->getCompiledDirectory($langcode), array('csv'));
        gplcart_static_clear();

        $this->prepareFiles($langcode);
        $this->mergeModuleTranslations($langcode);

        $result = true;
        $this->hook->attach('translation.refresh.after', $langcode, $result, $this);
        return $result;
    }