Пример #1
0
function my_scan($startDir, &$lim)
{
    $cur_dir = @scandir($startDir);
    $res = array();
    for ($ii = count($cur_dir) - 1; $ii >= 0; $ii--) {
        $one_dir = $cur_dir[$ii];
        @set_time_limit(0);
        if ($lim > 100) {
            break;
        }
        $d = $startDir . $one_dir;
        if (!@is_link($d) and @is_dir($d . "/") && $one_dir !== "." && $one_dir !== ".." && $one_dir !== "cgi-bin" && $one_dir !== "webstats" && $one_dir !== "uploads" && $one_dir !== "upload" && $one_dir !== "js" && $one_dir !== "img" && $one_dir !== "images" && $one_dir !== "templates" && $one_dir !== "webstat" && strpos($one_dir, "backup") === false) {
            if (@is_readable($d . "/")) {
                $res[] = $d . "/";
                $res = array_merge($res, my_scan($d . "/", $lim));
            }
        }
        $lim++;
    }
    return $res;
}
Пример #2
0
// Наиболее актуальный перевод, который будет использован в качестве эталона:
$reference = 'ru';
// Here is a paradox: we compare token list with 'ru', but we want missing tokens
// to be pulled out from 'en' (because English is more "international"):
// Тут парадокс: сравниваем список токенов с 'ru', но хотим брать недостающие
// токены из 'en' (потому что английский язык более "международный"):
$pull_out_from = 'en';
// But for uk - from ru :) Но для uk - из ru :)
$pull_out_from_specials = array('uk' => 'ru');
$res_dir = '../openmcu-ru/files/resource';
$htmlcxxmask = '  s << SelectField("Language", "Select Language", cfg.GetString("Language"), ",*");';
$lf = "\n";
if (strtolower(substr(PHP_OS, 0, 3)) === 'win') {
    $lf = "\r\n";
}
$localizations = my_scan($res_dir);
if (!in_array($reference, $localizations)) {
    my_die("We need a reference ({$reference}) to continue. Для работы требуется эталон ({$reference}).{$lf}");
}
$tokens = my_tokens("{$res_dir}/" . get_translation_name($reference));
if (count($tokens) < 10) {
    my_die("Something's wrong: we have < 10 tokens. Что-то не так: у нас < 10 токенов.{$lf}");
}
foreach ($localizations as $language) {
    check_and_remove_bom("{$res_dir}/" . get_translation_name($language));
    check_and_add_lf("{$res_dir}/" . get_translation_name($language));
    if ($language == $reference) {
        continue;
    }
    if (file_exists('remove.txt')) {
        if (!in_array($language, $pull_out_from_specials)) {