精华内容
下载资源
问答
  • golang多语言支持

    千次阅读 多人点赞 2021-02-13 16:23:45
    beego中设置全局变量如下: Translation i18n.IL ...初始化多语言函数: func InitLang(){ beego.Translation:=i18n.NewLocale() beego.Translation.LoadPath(beego.LangPath) beego.Translation.SetLocale

    专注后台开发相关技术,广度深度并存,干货情怀同在。
    微信搜索【盼盼编程】关注这个不一样的程序员。

    ❤️强烈推荐人工智能学习网站❤️
     

    beego中设置全局变量如下:

    Translation i18n.IL  
    Lang        string  //设置语言包,zh、en
    LangPath    string  //设置语言包所在位置
    

    初始化多语言函数:

    func InitLang(){
        beego.Translation:=i18n.NewLocale()
        beego.Translation.LoadPath(beego.LangPath)
        beego.Translation.SetLocale(beego.Lang)
    }
    

    为了方便在模板中直接调用多语言包,我们设计了三个函数来处理响应的多语言:

    beegoTplFuncMap["Trans"] = i18n.I18nT
    beegoTplFuncMap["TransDate"] = i18n.I18nTimeDate
    beegoTplFuncMap["TransMoney"] = i18n.I18nMoney
    
    func I18nT(args ...interface{}) string {
        ok := false
        var s string
        if len(args) == 1 {
            s, ok = args[0].(string)
        }
        if !ok {
            s = fmt.Sprint(args...)
        }
        return beego.Translation.Translate(s)
    }
    
    func I18nTimeDate(args ...interface{}) string {
        ok := false
        var s string
        if len(args) == 1 {
            s, ok = args[0].(string)
        }
        if !ok {
            s = fmt.Sprint(args...)
        }
        return beego.Translation.Time(s)
    }   
    
    func I18nMoney(args ...interface{}) string {
        ok := false
        var s string
        if len(args) == 1 {
            s, ok = args[0].(string)
        }
        if !ok {
            s = fmt.Sprint(args...)
        }
        return beego.Translation.Money(s)
    }
    

    多语言开发使用

    1. 设置语言以及语言包所在位置,然后初始化i18n对象:

      beego.Lang = "zh"
      beego.LangPath = "views/lang"
      beego.InitLang()
      
    2. 设计多语言包

      上面讲了如何初始化多语言包,现在设计多语言包,多语言包是json文件,如第十章介绍的一样,我们需要把设计的文件放在LangPath下面,例如zh.json或者en.json

      # zh.json
      
      {
      "zh": {
          "submit": "提交",
          "create": "创建"
          }
      }
      
      #en.json
      
      {
      "en": {
          "submit": "Submit",
          "create": "Create"
          }
      }
      
    3. 使用语言包

      我们可以在controller中调用翻译获取响应的翻译语言,如下所示:

      func (this *MainController) Get() {
          this.Data["create"] = beego.Translation.Translate("create")
          this.TplNames = "index.tpl"
      }
      

      我们也可以在模板中直接调用响应的翻译函数:

      //直接文本翻译
      {{.create | Trans}}
      
      //时间翻译
      {{.time | TransDate}}   
      
      //货币翻译
      {{.money | TransMoney}} 

     


     ❤️强烈推荐人工智能学习网站❤️

    专注后台开发相关技术,广度深度并存,干货情怀同在。
    微信搜索【盼盼编程】关注这个不一样的程序员。

    展开全文
  • JWT原理&多语言实现

    千次阅读 2021-05-09 23:39:06
    result['error'] = '非法的token' return result if __name__ == '__main__': token = create_token({'uid': 1, 'username': 'sinmu'},3).decode('utf-8') res = parse_payload(token) print(res) Java实现jwt ...

    JWT基础概念

    JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。基于token的身份验证可以替代传统的cookie+session身份验证方法。

    代码来自网络,亲测有效,所以记录一下

    JWT由三个部分组成:header.payload.signature

    header部分

    该字段为json格式,alg字段指生成signature的算法,默认值为HS256,typ默认值为JWT

    {
      "alg": "HS256",
      "typ": "JWT"
    }
    

    payload

    该字段为json格式,表明用户身份的数据,可以根据业务需求自行定义

    {
        "username": "admin",          //该JWT的签发者
        "exp": 1535974630,        //过期时间,系统当前时间*
    }
    

    signature部分:

    签名算法,一般为HS256,其他的算法怎么整,具体长啥样儿我也不知道,没有找到,郁闷

    jwt生成详解:

    以加密方式为HS256为例

    header进行base64UrlEncode加密后的字符串–字符串1

    base64UrlEncode(header)

    payload的内容进行base64UrlEncode加密后的字符串–字符串2

    base64UrlEncode(payload)

    字符串1+'.'+字符串2拼接成一个新的字符串–字符串3

    base64UrlEncode(header)+’.’+base64UrlEncode(payload)

    通过header中的指定的算法来对字符串3 和一个密钥secret进行HMacSHA256()进行加密得到一个新的字符串就是jwt的主要内容

    //java  
    //HMACSHA256签名   https://jwt.io/introduction  中HMACSHA
    HMacSHA256(
    	base64UrlEncode(header) + '.'
    	+ base64UrlEncode(payload)
    	+ secret)
    

    实现

    python代码实现

    主要是用pyjwt这个包来实现加解密

    # pip3 install pyjwt
    import jwt
    import datetime
    from jwt import exceptions
    
    JWT_SALT = 'ashlkdjfhoawhe;kfjnasdlkfjlasdhfoiuahsdvlajksnd'
    
    
    def create_token(payload, timeout=20):
        """
        :param payload:  例如:{'user_id':1,'username':'sinmu'}用户信息
        :param timeout: token的过期时间,默认20s
        :return:
        """
        headers = {
            'typ': 'jwt',
            'alg': 'HS256'
        }
        payload['exp'] = datetime.datetime.utcnow() + datetime.timedelta(seconds=timeout)
        tmp = jwt.encode(payload=payload, key=JWT_SALT, algorithm="HS256", headers=headers)
        result = tmp.encode('utf-8')
        return result
    
    
    def parse_payload(token):
        """
        对token进行和发行校验并获取payload
        :param token:
        :return:
        """
        result = {'status': False, 'data': None, 'error': None}
        try:
            verified_payload = jwt.decode(token, JWT_SALT, algorithms="HS256")
            result['status'] = True
            result['data'] = verified_payload
        except exceptions.ExpiredSignatureError:
            result['error'] = 'token已失效'
        except jwt.DecodeError:
            result['error'] = 'token认证失败'
        except jwt.InvalidTokenError:
            result['error'] = '非法的token'
        return result
    
    
    if __name__ == '__main__':
        token = create_token({'uid': 1, 'username': 'sinmu'},3).decode('utf-8')
        res = parse_payload(token)
        print(res)
    
    

    Java实现jwt

    
    import io.jsonwebtoken.*;
    import java.util.Date;
    
    public class JwtUtils {
    
    	private long expire=7200;
    	private String secret="dwhidhkwhdkdiwhd232323dwdadwdw2a";
    	private String header="Authorization";
    
    	// 生成jwt
    	public String generateToken(String username) {
    
    		Date nowDate = new Date();
    		Date expireDate = new Date(nowDate.getTime() + 1000 * expire);
    
    		return Jwts.builder()
    				.setHeaderParam("typ", "JWT")
    				.setSubject(username)
    				.setIssuedAt(nowDate)
    				.setExpiration(expireDate)// 两小时过期
    				.signWith(SignatureAlgorithm.HS512, secret)
    				.compact();
    	}
    
    	// 解析jwt
    	public Claims getClaimByToken(String jwt) {
    		try {
    			return Jwts.parser()
    					.setSigningKey(secret)
    					.parseClaimsJws(jwt)
    					.getBody();
    		} catch (Exception e) {
    			return null;
    		}
    	}
    
    	// jwt是否过期
    	public boolean isTokenExpired(Claims claims) {
    		return claims.getExpiration().before(new Date());
    	}
    
    }
    
    

    PHP实现JWT

    <?php
    /**
     * PHP实现jwt
     */
    class Jwt {
    
        //头部
        private static $header=array(
            'alg'=>'HS256', //生成signature的算法
            'typ'=>'JWT'    //类型
        );
    
        //使用HMAC生成信息摘要时所使用的密钥
        private static $key='123456';
    
    
        /**
         * 获取jwt token
         * @param array $payload jwt载荷   格式如下非必须
         * [
         *  'iss'=>'jwt_admin',  //该JWT的签发者
         *  'iat'=>time(),  //签发时间
         *  'exp'=>time()+7200,  //过期时间
         *  'nbf'=>time()+60,  //该时间之前不接收处理该Token
         *  'sub'=>'www.admin.com',  //面向的用户
         *  'jti'=>md5(uniqid('JWT').time())  //该Token唯一标识
         * ]
         * @return bool|string
         */
        public static function getToken(array $payload)
        {
            if(is_array($payload))
            {
                $base64header=self::base64UrlEncode(json_encode(self::$header,JSON_UNESCAPED_UNICODE));
                $base64payload=self::base64UrlEncode(json_encode($payload,JSON_UNESCAPED_UNICODE));
                $token=$base64header.'.'.$base64payload.'.'.self::signature($base64header.'.'.$base64payload,self::$key,self::$header['alg']);
                return $token;
            }else{
                return false;
            }
        }
    
    
        /**
         * 验证token是否有效,默认验证exp,nbf,iat时间
         * @param string $Token 需要验证的token
         * @return bool|string
         */
        public static function verifyToken(string $Token)
        {
            $tokens = explode('.', $Token);
            if (count($tokens) != 3)
                return false;
    
            list($base64header, $base64payload, $sign) = $tokens;
    
            //获取jwt算法
            $base64decodeheader = json_decode(self::base64UrlDecode($base64header), JSON_OBJECT_AS_ARRAY);
            if (empty($base64decodeheader['alg']))
                return false;
    
            //签名验证
            if (self::signature($base64header . '.' . $base64payload, self::$key, $base64decodeheader['alg']) !== $sign)
                return false;
    
            $payload = json_decode(self::base64UrlDecode($base64payload), JSON_OBJECT_AS_ARRAY);
    
            //签发时间大于当前服务器时间验证失败
            if (isset($payload['iat']) && $payload['iat'] > time())
                return false;
    
            //过期时间小宇当前服务器时间验证失败
            if (isset($payload['exp']) && $payload['exp'] < time())
                return false;
    
            //该nbf时间之前不接收处理该Token
            if (isset($payload['nbf']) && $payload['nbf'] > time())
                return false;
    
            return $payload;
        }
    
    
    
    
        /**
         * base64UrlEncode   https://jwt.io/  中base64UrlEncode编码实现
         * @param string $input 需要编码的字符串
         * @return string
         */
        private static function base64UrlEncode(string $input)
        {
            return str_replace('=', '', strtr(base64_encode($input), '+/', '-_'));
        }
    
        /**
         * base64UrlEncode  https://jwt.io/  中base64UrlEncode解码实现
         * @param string $input 需要解码的字符串
         * @return bool|string
         */
        private static function base64UrlDecode(string $input)
        {
            $remainder = strlen($input) % 4;
            if ($remainder) {
                $addlen = 4 - $remainder;
                $input .= str_repeat('=', $addlen);
            }
            return base64_decode(strtr($input, '-_', '+/'));
        }
    
        /**
         * HMACSHA256签名   https://jwt.io/  中HMACSHA256签名实现
         * @param string $input 为base64UrlEncode(header).".".base64UrlEncode(payload)
         * @param string $key
         * @param string $alg   算法方式
         * @return mixed
         */
        private static function signature(string $input, string $key, string $alg = 'HS256')
        {
            $alg_config=array(
                'HS256'=>'sha256'
            );
            # HS256=> HASH_HMAC(SHA256,string,secret,true)
            return self::base64UrlEncode(hash_hmac($alg_config[$alg], $input, $key,true));
        }
    }
    
        //测试和官网是否匹配begin
        $payload=array('uid'=>1,'name'=>'sinmu','iat'=>1516239022);
        $jwt=new Jwt;
        $token=$jwt->getToken($payload);
        echo "<pre>";
        echo $token;
      
        //对token进行验证签名
        $getPayload=$jwt->verifyToken($token);
        echo "<br><br>";
        var_dump($getPayload);
        echo "<br><br>";
        //测试和官网是否匹配end
        
    
        //自己使用测试begin
        $payload_test=array('iss'=>'admin','iat'=>time(),'exp'=>time()+7200,'nbf'=>time(),'sub'=>'www.admin.com','jti'=>md5(uniqid('JWT').time()));;
        $token_test=Jwt::getToken($payload_test);
        echo "<pre>";
        echo $token_test;
        
        //对token进行验证签名
        $getPayload_test=Jwt::verifyToken($token_test);
        echo "<br><br>";
        var_dump($getPayload_test);
        echo "<br><br>";
        //自己使用时候end
    
    
    展开全文
  • 安装插件 $ cnpm i vue-i18n -S main.js 引入 import VueI18n from 'vue-i18n'... locale: 'zh', // 语言标识 messages: { 'zh': require('./assets/lang/zh.js'), 'en': require('./assets/lang/en.js') } }) /

    安装插件

    $ cnpm i vue-i18n -S
    

    main.js 引入

    import Vue from 'vue'
    import VueI18n from 'vue-i18n' // 引入
    Vue.use(VueI18n)
    // 创建实例
    const i18n = new VueI18n({
        locale: 'zh', // 语言标识
        messages: {
            'zh': require('./assets/lang/zh.js'), 
            'en': require('./assets/lang/en.js')
        }
    })
    
    // 挂载vue 实例
    new Vue({
        router,
        i18n,
        store,
        render: h => h(App)
    }).$mount('#app')
    
    // 其余页面 用 this.$t('') 来代替之前的文字即可实现国际化。
    

    vue-i18n挂载到实例上 会在全局的this上也会挂载相应的对象和方法
    this.$t(‘key’) =》 对应的是不同语言包相同的key值

    this.$i18n.locale 代表当前的语言主题 可以判断赋值
    如下demo vue文件

    <template>
      <div id="app">
        <p>{{this.$t('apple')}}</p>
       <button @click="switchLang">{{this.$t('switch')}}</button>
      </div>
    </template>
    
    <script>
    
    export default {
      name: 'App',
      components: {
      },
      methods: {
        switchLang() {
          if ( this.$i18n.locale === "zh") {
            this.$i18n.locale = "en"
          } else {
            this.$i18n.locale = "zh"
          }
        }
        
      }
    }
    </script>
    
    <style>
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    </style>
    
    

    elementUI增加国际化

    Vue.use(ElementUI, {
      i18n: (key, value) => i18n.t(key, value) // 在注册Element时设置i18n的处理方法 给分页器增加国际化
    })
    

    然后去语言包里增加相应的中英版本

    el:{
          pagination:{
          goto:'前往',
          pagesize:'条/页',
          total:'共{total}条',
          pageClassifier:'页'
          }
    },
    

    main.js 里写入

    // 自己写的语言包
    import zhLocal from './assets/lang/zh.js'
    import enLocal from './assets/lang/en.js'
    // elemet自带的语言包
    import elementZhLocal from 'element-ui/lib/locale/lang/zh-CN'
    import elementEnLocal from 'element-ui/lib/locale/lang/en'
    
    const i18n = new VueI18n({
        locale: 'zh', // 语言标识
        messages: {
            'zh': {
              ...zhLocal,
              ...elementZhLocal
            },
            'en': {
              ...enLocal,
              ...elementEnLocal
            }
        }
    });
    
    展开全文
  • 匿名用户1级2019-04-14 回答A选项,对。java中类之间只能够实现单继承,即就是说一个类只能有一个父类,但允许多层继承,即就是一个类有...但,类对于接口的话,类可以实现多个接口,即使不同接口有相同的抽象方法,...

    匿名用户

    1级

    2019-04-14 回答

    A选项,对。java中类之间只能够实现单继承,即就是说一个类只能有一个父类,但允许多层继承,即就是一个类有一个父类,该父类还可以有自己的一个父类。举个例子:假如A能够继承类B和C,但当B,C中有相同的方法时,让A来调用,那么,A到底调用的父类中谁的方法呢?所以,java中类只能够实现单继承。

    但,类对于接口的话,类可以实现多个接口,即使不同接口有相同的抽象方法,子类默认也只会实现一个。

    B选项,对。抽象类可以没有抽象方法。但是有抽象方法的类一定是抽象类。

    C选项,不对。不对是因为前半句,实现抽象类和接口的如果是非抽象类的话,该非抽象类就必须实现其中所有的抽象方法,而不是所有方法,因为抽象类还可以有其他方法体跟实现。

    但假如实现抽象类和接口的是抽象类的话,那么抽象类就可以不用实现所有方法(所有方法包括父类或接口的所有抽象方法)(意思就是,该抽象类需要哪个抽象方法了就去实现,不需要了就不用去实现)。

    后半句正确,接口和抽象类中的抽象方法只有声明(即定义方法)不能有实现,这些抽象方法存在目的是让子类重写。

    因为接口中只能定义抽象方法,故而C选项说的接口中的方法都不能被实现,是对的。

    但抽象类可以有非抽象的方法和其方法的具体的方法,比如抽象类的构造方法(只是该构造方法不能被new实例化)。

    D选项,对。解释下D选项,接口中需要定义成员变量时,该成员变量必须定义为常量,然而定义常量那就必须用final来修饰,再者,该常量对于实现接口的所有实现类只能有一份,故而必须用静态的static来修饰,再加上接口必须要具体类来实现才有意义,所以必须是public来修饰。并且,在定义该成员变量时必须进行直接赋初始值!如:public static final int age = 10;而不是像只由final修饰的成员变量那样,即可以直接赋值,也可以在构造方法里面赋值。同时,既然被final修饰了,那么该变量已经成为最终变量了,那么该值当然是不可变的,也是不可以被重新定义的了。

    E选项,对。接口必须要具体类来实现才有意义,所以必须是用public来修饰接口中的抽象方法的,同时,省略不写public的时候,默认还是public修饰符。

    同时,实现接口的子类,在定义重写子类方法的访问级别不能低于父类相应方法的访问级别。

    展开全文
  • C 语言实现计算器(可视化界面和功能)

    千次阅读 多人点赞 2021-05-29 23:32:08
    在大学期间,C 语言或者数据结构等课程,老师会要求学生编写一个小项目练手,或者期末编写一个小软件等课程设计。今天在电脑看到大一学C语言时,实验课上写的计算器功能,挺有意思。所以在此分享给学C语言的学弟学妹...
  • 再谈编程语言设计和实现

    千次阅读 2021-02-13 14:08:56
    事实 过一段时间,我就鼓励自己一下,做一会儿梦,虽然我真的希望推广自己的 语言,但是最重要是为了鼓励自己继续—— 群里实现了编程语言的人很,大家都学会了,但是为什么大家都没有推广 自己的语言。...
  • 你想实现全平台,包括windows/linux/嵌入式设备等等所有设备上实现离线OCR吗?而且只要三行代码(核心代码)。 代码如下: BPHANDLE Handle= BPOcrInit(szDetModelPath,szClsModelPath,szRecModelPath,...
  • R语言实现GO分析

    千次阅读 2020-12-20 11:25:05
    链客,专为开发者而生,有问必答!...今天就跟大家介绍下如何利用R语言实现GO的流程化分析。我们需要以下三个包:GO.db是GO分析的数据基础它包含了GO的基本分层信息;topGO是基因的功能富集分析包...
  • 雨课堂: 循环结构可以使用Python语言中( )语句实现。答:while单向受力状态下,混凝土的强度与以下()因素有关。答:水灰比 混凝土级配 混凝土龄期 试件大小、形状 试验机加载速率利润表的作用主要有( )。答:ABC双...
  • 在过去的几年里,我一直从事于各种领域定义语言的设计,包含 unflow、guarding、datum、forming 等。在我刚入门这个领域的时候,我从《领域特定语言》、《编程语言实现模式...
  • 因子分析模型R语言实现

    千次阅读 热门讨论 2021-05-21 23:15:29
    目录一、模型介绍二、分析步骤2.1 KMO检验和Barlette检验2.2 确定公因子个数2.3 正交旋转2.4 因子得分更 一、模型介绍 二、分析步骤 2.1 KMO检验和Barlette检验 2.2 确定公因子个数 2.3 正交旋转 2.4 因子得分 更...
  • R语言实现46种距离算法

    千次阅读 2020-12-24 14:01:22
    随着越来越的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。要成为有理想的极客,我们不能停留在语法上,要掌握牢固...
  • (文中我使用的 Java 语言实现的) 首先,来看一下我们需要解析的代码段内容: function sayHello() { println("Hello World!"); } sayHello(); 以上代码,可以很简单的读懂,定义了一个函数 sayHello, 在这个函数...
  • 【实用案例】R语言gdm函数实现地理探测器分析

    千次阅读 热门讨论 2021-02-24 23:26:33
    R语言实现地理探测器分析R语言实现地理探测器分析碎碎念查看官网例子代码 R语言实现地理探测器分析 碎碎念 最近由于学习需要,接触了地理探测器。地理探测器有Excel版和R语言版,起初我是用Excel试着做,地理探测器...
  • 近期在做一个背单词APP来作为毕业设计,在app里面想设计一个切换语言为英语的功能,记录一下本次实现的效果以及步骤。
  • 什么是emoji emoji就是一些意形符号。 emoji的实现 首先,你必须能够区分unicode、utf8和字符之间的区别: ...因为是一种实现,所以不同平台实现的各不一样。以ok表情为例,各平台的实现如下: emoji分类 Basic_Emo
  • C# Winform多语言切换

    千次阅读 2021-11-10 17:29:35
    Winform中英文语言切换 开发环境: 开发工具: Visual Studio 2013 .NET Framework版本:4.5 实现步骤: 1.在项目下新建一个Resource文件夹,然后创建两个资源文件,分别命名为:Resource_en.resx和...
  • JAVA:一个类实现多个接口

    千次阅读 2021-02-12 16:54:17
    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制。它们之间区别:接口是公开的,里面不能有私有的方法或变量,而抽象类是可以有私有方法或私有变量的;代码演示:接口Apublic interface A {...
  • 浏览器app封装了Webview,然后实现实现长按Webview页面文字自定义复制、全选、分享、搜索、翻译功能(支持多语言),都在自己的浏览器app里面进行搜索和翻译,不跳到系统浏览器里面去 效果爆照如下,oppo手机效果...
  • 为了提高这个开发效率突然想到可以在应用上增加一个悬浮窗组件然后实现主题切换和语言切换的功能,这样在任意一个页面就可以快速的查看效果。不用来回切换到设置页面内去进行切换了。 二、 实现的效果 悬浮窗组件...
  • 基于java jsp+mybatis+Spring+的SSM二手交易网站设计实现

    万次阅读 多人点赞 2021-06-15 09:28:13
    PRIMARY KEY (`goods_id`) ) 相关系统设计实现推荐: 基于java springboot+mybatis电影售票网站管理系统前台+后台设计和实现 基于java ssm springboot+mybatis酒庄内部管理系统设计和实现 基于JAVA springboot+...
  • 用Python实现ax²+by的图灵机
  • 多人协同编辑的实现

    千次阅读 2021-02-22 15:50:09
    monaco-editor是微软开源的一款web端文本编辑器,也就是vscode内置的编辑器,扩展性很强,原生暴露了很用于代码提示、高亮显示等API 仅为核心编辑器部分,不包含vscode的插件系统、文件数及terminal 基本用法 ...
  • 如果编程语言是一门武功绝学

    万次阅读 多人点赞 2021-05-22 16:30:06
    在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很,如同拥有内功后,习得其他武功也会轻松很。 如果编程语言是一门武功绝学,各语言分别...
  • 购物网站的设计与实现论文

    千次阅读 2021-10-24 22:10:14
    摘要 随着信息技术的发展,信息技术使用传递速度突破了时间和地域性的局限,网络化与全球化成为一种不可...相对于一个网站页面的标准化,美观化是更为重要的,CSS是最主要的表现标准化的语言。在本论文将通过对网友需
  • 网站管理员可以实现歌曲与专辑管理、前后台用户管理、栏目分类管理、页面生成管理以及用户的注册登录、个人信息修改、歌曲试听下载等功能,基本满足用户对普通音乐网站的需要。 1.3 系统的技术架构 本课题实现的音乐...
  • [vue] 你有使用过vue开发多语言项目吗?说说你的做法? 使用Vue-i18n 加载不同的语言配置文件, 重要是初始化时,判断当前语言环境,要想好存储方案 采用i18n来解决国际化问题,关于语言环境的存储方案,看到有同学...
  • 点击上方↑↑↑蓝字[协议分析与还原]关注我们“扬长避短,发挥各自优势,建立多语言和谐共存的大好局面,介绍多语言的混合开发。”好久没有更新,深感抱歉,还有几天就要过年了,先在这里提前祝大家...
  • R语言如何实现主成分分析(PCA),最全详细教材

    万次阅读 多人点赞 2021-04-05 17:47:49
    R语言也有“一步到位”的函数,如prcomp()和princomp(),基本上都是输入数据直接出结果。为了理解PCA的原理,我们利用自编函数的方法进行学习。 主成分分析详解主成分分析过程分解1.数据标准化2.计算相关系数...
  • 聚类分析原理及R语言实现过程

    千次阅读 2021-01-14 07:48:08
    在经济、管理、地质勘探、天气预报、生物分类、考古学、医学、心理学以及制定国家标准和区域标准等许多方面应用十分广泛,是国内外较为流行的变量统计分析方法之一,在机器学习中扮演重要角色。聚类分析的类型是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,097,730
精华内容 839,092
关键字:

多语言网站是怎么实现的