<?php

declare(strict_types=1);

namespace App;


use Illuminate\Support\Facades\Http;

/**
 * @author:dc
 * @time 2022/11/16 17:48
 * Class Fun
 * @package App
 */
class Fun {


    /**
     * lang
     * @return string[]
     * @author:dc
     * @time 2022/11/16 14:35
     */
    public static function lang()
    {
        return [
            'en' => 'English',
            'fr' => 'French',
            'de' => 'German',
            'pt' => 'Portuguese',
            'es' => 'Spanish',
            'ru' => 'Russian',
            'ja' => 'Japanese',
            'ko' => 'Korean',
            'ar' => 'Arabic',
            'ga' => 'Irish',
            'el' => 'Greek',
            'tr' => 'Turkish',
            'it' => 'Italian',
            'da' => 'Danish',
            'ro' => 'Romanian',
            'id' => 'Indonesian',
            'cs' => 'Czech',
            'af' => 'Afrikaans',
            'sv' => 'Swedish',
            'pl' => 'Polish',
            'eu' => 'Basque',
            'ca' => 'Catalan',
            'eo' => 'Esperanto',
            'hi' => 'Hindi',
            'lo' => 'Lao',
            'sq' => 'Albanian',
            'am' => 'Amharic',
            'hy' => 'Armenian',
            'az' => 'Azerbaijani',
            'be' => 'Belarusian',
            'bn' => 'Bengali',
            'bs' => 'Bosnian',
            'bg' => 'Bulgarian',
            'ceb' => 'Cebuano',
            'ny' => 'Chichewa',
            'co' => 'Corsican',
            'hr' => 'Croatian',
            'nl' => 'Dutch',
            'et' => 'Estonian',
            'tl' => 'Filipino',
            'fi' => 'Finnish',
            'fy' => 'Frisian',
            'gl' => 'Galician',
            'ka' => 'Georgian',
            'gu' => 'Gujarati',
            'ht' => 'Haitian',
            'ha' => 'Hausa',
            'haw' => 'Hawaiian',
            'iw' => 'Hebrew',
            'hmn' => 'Hmong',
            'hu' => 'Hungarian',
            'is' => 'Icelandic',
            'ig' => 'Igbo',
            'jw' => 'Javanese',
            'kn' => 'Kannada',
            'kk' => 'Kazakh',
            'km' => 'Khmer',
            'ku' => 'Kurdish',
            'ky' => 'Kyrgyz',
            'la' => 'Latin',
            'lv' => 'Latvian',
            'lt' => 'Lithuanian',
            'lb' => 'Luxembou..',
            'mk' => 'Macedonian',
            'mg' => 'Malagasy',
            'ms' => 'Malay',
            'ml' => 'Malayalam',
            'mt' => 'Maltese',
            'mi' => 'Maori',
            'mr' => 'Marathi',
            'mn' => 'Mongolian',
            'my' => 'Burmese',
            'ne' => 'Nepali',
            'no' => 'Norwegian',
            'ps' => 'Pashto',
            'fa' => 'Persian',
            'pa' => 'Punjabi',
            'sr' => 'Serbian',
            'st' => 'Sesotho',
            'si' => 'Sinhala',
            'sk' => 'Slovak',
            'sl' => 'Slovenian',
            'so' => 'Somali',
            'sm' => 'Samoan',
            'gd' => 'Scots Gaelic',
            'sn' => 'Shona',
            'sd' => 'Sindhi',
            'su' => 'Sundanese',
            'sw' => 'Swahili',
            'tg' => 'Tajik',
            'ta' => 'Tamil',
            'te' => 'Telugu',
            'th' => 'Thai',
            'uk' => 'Ukrainian',
            'ur' => 'Urdu',
            'uz' => 'Uzbek',
            'vi' => 'Vietnamese',
            'cy' => 'Welsh',
            'xh' => 'Xhosa',
            'yi' => 'Yiddish',
            'yo' => 'Yoruba',
            'zu' => 'Zulu',
            'rw' => 'Kinyarwanda',
            'tt' => 'Tatar',
            'or' => 'Oriya',
            'tk' => 'Turkmen',
            'ug' => 'Uyghur',



//            'fr'=>'Françai',
//            'es'=>'Español',
//            'de'=>'Deutsch',
//            'ro'=>'Română',
//            'ar'=>'العربية',
//            'ko'=>'한국어',
//            'ja'=>'日本語',
//            'it'=>'Italiano',
//            'pt'=>'Português',
//            'ga'=>'Gaeilge',
//            'da'=>'Dansk',
//            'cs'=>'Čeština',
//            'ru'=>'Русский',
//            'af'=>'Afrikaans',
//            'eu'=>'Euskara',
//            'ca'=>'Català',
//            'eo'=>'Esperanto',
//            'hi'=>'हिन्दी',
//            'el'=>'Ελληνικά',
//            'ms'=>'Bahasa Melayu',
//            'pl'=>'Polski',
//            'sr'=>'Српски',
//            'sw'=>'Kiswahili',
//            'th'=>'ภาษาไทย',
//            'vi'=>'Tiếng Việt',
//            'tr'=>'Türkçe',
//            'sv'=>'Svenska',
//            'cy'=>'Cymraeg',
//            'sk'=>'Slovenčina',
//            'lv'=>'Latviešu',
//            'mt'=>'Malti',
//            'hu'=>'Magyar',
//            'gl'=>'Galego',
//            'gu'=>'ગુજરાતી',
//            'et'=>'Eesti Keel',
//            'bn'=>'বাংলা',
//            'sq'=>'Shqip',
//            'be'=>'беларуская мова',
//            'nl'=>'Nederlands',
//            'tl'=>'Tagalog',
//            'ka'=>'ქართული',
//            'is'=>'Íslenska',
//            'ht'=>'Kreyòl Ayisyen',
//            'lt'=>'Lietuvių',
//            'no'=>'Norsk‎',
//            'sl'=>'slovenščina',
//            'ta'=>'தமிழ்',
//            'uk'=>'Українська',
//            'yi'=>'ײִדיש',
//            'ur'=>'',
//            'te'=>'తెలుగు',
//            'fa'=>'فارسی',
//            'mk'=>'македонски',
//            'kn'=>'ಕನ್ನಡ',
//            'id'=>'Bahasa Indonesia',
//            'iw'=>'עברית',
//            'fi'=>'Suomi',
//            'hr'=>'Hrvatski',
//            'bg'=>'Български',
//            'az'=>'Azerbaijani',

        ];
    }



    /**
     * 翻译
     * @param $texts
     * @param $tls
     * @return string
     * @author:dc
     * @time 2022/11/16 17:43
     */
    public static function translate($texts, $tls){

        static $langs = [];

        if(!empty($langs[$texts])){
            return $langs[$texts];
        }


        // 缓存的语言文件
        $file = resource_path('lang/auto/'.$tls.'.php');
        if(!is_file($file)){
            @mkdir(dirname($file),0775,true);
            file_put_contents($file,"<?php".PHP_EOL);
        }

        require_once $file;

        // 已翻译过的
        $langs = $_lang??[];

        if(!empty($langs[$texts])){
            return $langs[$texts];
        }

        $response = Http::post('https://translate.hbb618.cn/translates', [
            'texts' => [$texts],
            'sl' => 'en',
            'tls' => [$tls],
        ])->json();

        $response = $response[0]['texts']??'';

        $langs[$texts] = $response;

        // 写入文件
        file_put_contents($file,"\$_lang['".str_replace("'","\'",$texts)."'] = '".str_replace("'","\'",$response)."';".PHP_EOL,FILE_APPEND);

        return $response;
    }

}