option('type'));
        switch ($type) {
            case 'laravel':
                $this->laravelResources();
                break;
            default:
                $this->flutterResources();
                break;
        }
    }
    private function laravelResources()
    {
        $resources = $this->getResources();
        foreach ($resources as $key => $val) {
            $transKey = "texts.{$key}";
            if (trans($transKey) == $transKey) {
                echo "'$key' => '$val',\n";
            }
        }
    }
    private function flutterResources()
    {
        $languages = cache('languages');
        $resources = $this->getResources();
        foreach ($languages as $language) {
            if ($language->locale == 'en') {
                continue;
            }
            echo "'{$language->locale}': {\n";
            foreach ($resources as $key => $val) {
                $text = trim(addslashes(trans("texts.{$key}", [], $language->locale)));
                if (substr($text, 0, 6) == 'texts.') {
                    $text = $resources->$key;
                }
                $text = str_replace(array('', ''), '', $text);
                $text = str_replace(array('', ''), '', $text);
                $text = str_replace(array('', ''), '', $text);
                echo "'$key': '$text',\n";
            }
            echo "},\n";
        }
    }
    private function getResources()
    {
        $url = 'https://raw.githubusercontent.com/invoiceninja/flutter-client/develop/lib/utils/i18n.dart';
        $data = CurlUtils::get($url);
        $start = strpos($data, 'do not remove comment') + 25;
        $end = strpos($data, '},', $start);
        $data = substr($data, $start, $end - $start - 5);
        $data = str_replace("\n", "", $data);
        $data = str_replace("\"", "\'", $data);
        $data = str_replace("'", "\"", $data);
        return json_decode('{' . rtrim($data, ',') . '}');
    }
    protected function getOptions()
    {
        return [
            ['type', null, InputOption::VALUE_OPTIONAL, 'Type', null],
        ];
    }
}