protected function generateJavaScriptLabels($path)
    {
        $i18n = self::loadI18NFiles($path);
        $regedit = regedit::getInstance();
        $modulesList = $regedit->getList('//modules');
        foreach ($modulesList as $moduleName) {
            list($moduleName) = $moduleName;
            if (!isset($i18n['module-' . $moduleName])) {
                $i18n['module-' . $moduleName] = self::getLabel('module-' . $moduleName, $moduleName);
            }
        }
        $result = <<<INITJS
function getLabel(key, str) {if(setLabel.langLabels[key]) {var res = setLabel.langLabels[key];if(str) {res = res.replace("%s", str);}return res;} else {return "[" + key + "]";}}
function setLabel(key, label) {setLabel.langLabels[key] = label;}setLabel.langLabels = new Array();


INITJS;
        foreach ($i18n as $i => $v) {
            if (substr($i, 0, 3) == "js-" || strpos($i, "module-") === 0 || strpos($i, "error-") === 0) {
                $i = self::filterOutputString($i);
                $v = self::filterOutputString($v);
                $result .= "setLabel('{$i}', '{$v}');\n";
            }
        }
        umiBaseStream::$allowTimeMark = false;
        return $result;
    }