$whole_word = $get_option('whole_word') ? '\\b' : '';
$case_sensitive = $get_option('case_sensitive') ? '' : 'i';
if ($get_option('perfect_match')) {
    $regex = '~' . $whole_word . trim('^' . preg_quote($initial_search, '~') . '$') . $whole_word . '~' . $case_sensitive . 'u';
    if ($request->parameters[2] == 'entities') {
        $entities = ShowResults::searchEntities($source_strings, $regex);
        $source_strings = array_intersect_key($source_strings, array_flip($entities));
    } else {
        $source_strings = preg_grep($regex, $source_strings);
        $entities = array_keys($source_strings);
    }
} else {
    foreach (Utils::uniqueWords($initial_search) as $word) {
        $regex = '~' . $whole_word . preg_quote($word, '~') . $whole_word . '~' . $case_sensitive . 'u';
        if ($request->parameters[2] == 'entities') {
            $entities = ShowResults::searchEntities($source_strings, $regex);
            $source_strings = array_intersect_key($source_strings, array_flip($entities));
        } else {
            $source_strings = preg_grep($regex, $source_strings);
            $entities = array_keys($source_strings);
        }
    }
}
// We have our list of filtered source strings, get corresponding target locale strings
$target_strings = array_intersect_key(Utils::getRepoStrings($request->parameters[5], $request->parameters[3]), array_flip($entities));
// We sort arrays by key before array_splice() to keep matching keys
ksort($source_strings);
ksort($target_strings);
// Limit results to 200
array_splice($source_strings, 200);
array_splice($target_strings, 200);
Exemplo n.º 2
0
// We loop through all repositories searched and merge results
foreach ($repositories as $repository) {
    $source_strings = Utils::getRepoStrings($request->parameters[4], $repository);
    if ($search->isPerfectMatch()) {
        if ($request->parameters[2] == 'entities') {
            $entities = ShowResults::searchEntities($source_strings, $search->getRegex());
            $source_strings = array_intersect_key($source_strings, array_flip($entities));
        } else {
            $source_strings = preg_grep($search->getRegex(), $source_strings);
            $entities = array_keys($source_strings);
        }
    } else {
        foreach (Utils::uniqueWords($initial_search) as $word) {
            $search->setRegexSearchTerms($word);
            if ($request->parameters[2] == 'entities') {
                $entities = ShowResults::searchEntities($source_strings, $search->getRegex());
                $source_strings = array_intersect_key($source_strings, array_flip($entities));
            } else {
                $source_strings = preg_grep($search->getRegex(), $source_strings);
                $entities = array_keys($source_strings);
            }
        }
    }
    // We have our list of filtered source strings, get corresponding target locale strings
    $target_strings = array_intersect_key(Utils::getRepoStrings($request->parameters[5], $repository), array_flip($entities));
    $source_strings_merged = array_merge($source_strings, $source_strings_merged);
    $target_strings_merged = array_merge($target_strings, $target_strings_merged);
    $entities_merged = array_merge($entities, $entities_merged);
}
// We sort arrays by key before array_splice() to keep matching keys
ksort($source_strings_merged);
Exemplo n.º 3
0
<?php

namespace Transvision;

// RTL support
$direction1 = RTLSupport::getDirection($source_locale);
$direction2 = RTLSupport::getDirection($locale);
if ($url['path'] == '3locales') {
    $direction3 = RTLSupport::getDirection($locale2);
    $extra_column_header = "<th>{$locale2}</th>";
} else {
    $extra_column_header = '';
}
$entities = ShowResults::searchEntities($tmx_source, $search->getRegex());
// Display a search hint for the closest string we have if we have no search results
if (count($entities) == 0) {
    $merged_strings = [];
    $best_matches = Strings::getSimilar($initial_search, array_keys($tmx_source), 3);
    include VIEWS . 'results_similar.php';
    return;
}
<?php

namespace Transvision;

// rtl support
$direction1 = RTLSupport::getDirection($source_locale);
$direction2 = RTLSupport::getDirection($locale);
if ($url['path'] == '3locales') {
    $direction3 = RTLSupport::getDirection($locale2);
    $extra_column_header = "<th>{$locale2}</th>";
} else {
    $extra_column_header = '';
}
$entities = ShowResults::searchEntities($tmx_source, $main_regex);
// Display a search hint for the closest string we have if we have no search results
if (count($entities) == 0) {
    $merged_strings = [];
    $best_matches = Strings::getSimilar($initial_search, array_keys($tmx_source), 3);
    include VIEWS . 'results_similar.php';
    return;
}