function updateLanguageFiles($ini)
{
    $c = new manageconfig();
    $codes = array();
    $keys = array('language', 'language_de');
    $codes = getLangCodesByKeys($keys);
    $langcodes = getLangCodes();
    foreach ($langcodes as $code => $lid) {
        $ldat = explode('_', $code);
        if (isset($codes[$ldat[0]])) {
            $count = count($codes[$ldat[0]]);
            if (in_array('', $codes[$ldat[0]])) {
                $count--;
            }
        } else {
            $count = -1;
        }
        if (isset($codes[$ldat[0]]) && !empty($ldat[1]) && in_array($ldat[1], $codes[$ldat[0]])) {
            // Nehme Original
            $src = 'language_' . $code;
        } elseif (isset($codes[$ldat[0]]) && in_array('', $codes[$ldat[0]])) {
            // Nehme gleichen Langcode, aber ohne Countrycode
            $src = 'language_' . $ldat[0];
        } elseif (isset($codes[$ldat[0]]) && $count > 0) {
            // Nehme gleichen Langcode, aber falchen Countrycode
            $src = 'language_' . $ldat[0] . '_' . reset($codes[$ldat[0]]);
        } else {
            // Nehme Standard
            $src = 'language';
        }
        foreach ($ini as $file => $data) {
            if (!isset($data[$src])) {
                continue;
            }
            $c->getdata("language/{$lid}/{$file}.lng.php", 'lang');
            foreach ($data[$src] as $varname => $text) {
                if ($text === null) {
                    $c->delete($varname);
                } else {
                    $c->updateconfig($varname, str, $text);
                }
            }
            $c->savedata();
        }
    }
}
Esempio n. 2
0
        }
        $c->getdata("language/{$id}/modules.lng.php", 'lang');
        $c->updateconfig($varname, str, $t);
        $c->savedata();
    }
    if (file_exists("modules/{$data['id']}/plugin.ini")) {
        $ini = $myini->read("modules/{$data['id']}/plugin.ini");
    } else {
        $ini = array();
    }
    if (!isset($ini['language']) || !is_array($ini['language']) || is_array($ini['language']) && count($ini['language']) == 0) {
        $ini['language'] = array();
    }
    $ini['language'][$varname] = $text;
    $dirs = array();
    $langcodes = getLangCodes();
    foreach ($langcodes as $code => $lid) {
        $langdata = return_array('modules', $lid);
        $langdata = array_intersect_key($langdata, $ini['language']);
        if ($lid == $config['langdir']) {
            $ini['language'] = $langdata;
        } else {
            $ini['language_' . $code] = $langdata;
        }
    }
    $myini->write("modules/{$data['id']}/plugin.ini", $ini);
    ok('admin.php?action=packages&job=plugins_language&id=' . $data['id']);
} elseif ($job == 'plugins_language_delete') {
    echo head();
    $id = $gpc->get('id', int);
    $delete = $gpc->get('delete', arr_str);