@vGrabko99
html, css, js, php, golang, mysql

Как реализовать функцию «улучшить перевод»?

Добрый день. Сейчас я перевожу интерфейс на "лету" с помощью API яндекс переводчика. Переведённый шаблон сохраняю в директирии в которой хранятся все шаблоны для данной локализации
function TemplateCompile($str) {
    global $langs;

    preg_match_all("|\@@([^)]+?)\@@|", $str, $arr);
    foreach ($arr[1] as $row) {
        $str = str_replace("@@" . $row . "@@", file_get_contents('app/storage/template/include/' . $row . '.html'), $str);
    }
    preg_match_all("|\{{([^)]+?)\}}|", $str, $arro);
    foreach ($arro[1] as $row) {
//тут перевожу
         $translete TransleteYandexApi($row);
        $str = str_replace("{{" . $row . "}}",  $translete $str);
    }

    $reg_lang = '';
    foreach ($langs as $key => $value) {
        $reg_lang .='|' . $key;
    }
    $str = preg_replace("~href='(?!/(?:af$reg_lang)/)([^']+)~", "href='/$lang.$1", $str);

    //Оптимизирует шаблон
    $search = array('/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s');
    $replace = array('>', '<', '\\1');
    $str = preg_replace($search, $replace, $str);

    return $str;
}

function TemplateGet($template,  $lang = 'ru',$array = 'null') {
    if (!@include'app/storage/template_compile/' . $lang . '/' . $template . '.html') {

        if (file_exists('app/storage/template_compile/' . $lang)) {
            echo '*';
            $temp = TemplateCompile(file_get_contents('app/storage/template/' . $template . '.html'));

            $f = fopen('app/storage/template_compile/' . $lang . '/' . $template . '.html', 'w');
            flock($f, LOCK_EX);
            fwrite($f, $temp);
            flock($f, LOCK_UN);
            fclose($f);

            include 'app/storage/template_compile/' . $lang . '/' . $template . '.html';
        } else {

            mkdir('app/storage/template_compile/' . $lang);
            $temp = TemplateCompile(file_get_contents('app/storage/template/' . $template . '.html'));

            $f = fopen('app/storage/template_compile/' . $lang . '/' . $template . '.html', 'w');
            flock($f, LOCK_EX);
            fwrite($f, $temp);
            flock($f, LOCK_UN);
            fclose($f);

            include 'app/storage/template_compile/' . $lang . '/' . $template . '.html';
        }
    }
}

В итоге я имею файлик с версткой и переведённым интерфейсом только вот не могу понять как реализовать улучшение перевод без кучи запросов к бд или файловой системе. Зарание спасибо
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы