Exemplo n.º 1
0
    $previousEntries = null;
    if (file_exists($output)) {
        $previousEntries = $po->read($output);
    }
    echo Colors::colorize('Translating : %b' . count($entries) . '%n entries from ' . $from . ' to ' . $to . PHP_EOL);
    $progress = new Bar('Translate status ', count($entries));
    foreach ($entries as $entry => $data) {
        $translate = "";
        $skipped = "";
        if (isset($previousEntries) && !empty($previousEntries[$entry]['msgstr'][0])) {
            $skipped = "(skipped)";
            $translate = $previousEntries[$entry]['msgstr'][0];
        } else {
            $translate = $translator->translate($entry, $from, $to);
        }
        $po->update_entry($entry, $translate);
        if ($verbose) {
            echo $verbose ? " {$entry} => {$translate} {$skipped}" . PHP_EOL : null;
        } else {
            $progress->tick();
        }
    }
    if (!$verbose) {
        $progress->finish();
    }
    echo 'Save output to: ' . $output . PHP_EOL;
    $po->write($output);
} catch (\DownloadException $e) {
    $response = @json_decode($e->getResponse());
    if (isset($response->error->errors[0]->reason) && $response->error->errors[0]->reason === 'keyInvalid') {
        die(Colors::colorize('%rInvalid Google Translate API key%n' . PHP_EOL));